From 6787c28df85b2c4bc1074dcd06790aa6fcc9b889 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 16 Apr 2026 14:53:56 +0000 Subject: [PATCH 1/7] chore: bootstrap WXT React TypeScript foundation Co-authored-by: Dion Grendelman --- .gitignore | 7 +- package-lock.json | 5989 +++++++++++++++++++++++++ package.json | 30 + public/.gitkeep | 1 + src/entrypoints/.gitkeep | 1 + src/entrypoints/background.ts | 3 + src/entrypoints/main.content.ts | 13 + src/entrypoints/theme-init.content.ts | 12 + src/types/assets.d.ts | 1 + tsconfig.json | 17 + wxt.config.ts | 55 + 11 files changed, 6128 insertions(+), 1 deletion(-) create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/.gitkeep create mode 100644 src/entrypoints/.gitkeep create mode 100644 src/entrypoints/background.ts create mode 100644 src/entrypoints/main.content.ts create mode 100644 src/entrypoints/theme-init.content.ts create mode 100644 src/types/assets.d.ts create mode 100644 tsconfig.json create mode 100644 wxt.config.ts diff --git a/.gitignore b/.gitignore index 3e35ece..bd3e97a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,9 @@ .vscode *.zip update_notes.txt -.codex \ No newline at end of file +.codex +node_modules/ +.wxt/ +.output/ +dist/ +coverage/ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..76fa88c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5989 @@ +{ + "name": "cleanplaats", + "version": "2.0.7", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cleanplaats", + "version": "2.0.7", + "hasInstallScript": true, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5" + }, + "devDependencies": { + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@wxt-dev/module-react": "^1.2.2", + "typescript": "^6.0.2", + "vitest": "^4.1.4", + "wxt": "^0.20.22" + } + }, + "node_modules/@1natsu/wait-element": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@1natsu/wait-element/-/wait-element-4.2.0.tgz", + "integrity": "sha512-Om0Q+WE9mNrpY4AwMTvkFiYHv8VM7TML3PvOqXy+w6kAjLjKhGYHYX+305+a6J8RVpds9s7IF2Z5aOPYwULFNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "many-keys-map": "^3.0.0" + } + }, + "node_modules/@aklinker1/rollup-plugin-visualizer": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@aklinker1/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", + "integrity": "sha512-X24LvEGw6UFmy0lpGJDmXsMyBD58XmX1bbwsaMLhNoM+UMQfQ3b2RtC+nz4b/NoRK5r6QJSKJHBNVeUdwqybaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@aklinker1/rollup-plugin-visualizer/node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@aklinker1/rollup-plugin-visualizer/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@aklinker1/rollup-plugin-visualizer/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aklinker1/rollup-plugin-visualizer/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@aklinker1/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@devicefarmer/adbkit": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit/-/adbkit-3.3.8.tgz", + "integrity": "sha512-7rBLLzWQnBwutH2WZ0EWUkQdihqrnLYCUMaB44hSol9e0/cdIhuNFcqZO0xNheAU6qqHVA8sMiLofkYTgb+lmw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@devicefarmer/adbkit-logcat": "^2.1.2", + "@devicefarmer/adbkit-monkey": "~1.2.1", + "bluebird": "~3.7", + "commander": "^9.1.0", + "debug": "~4.3.1", + "node-forge": "^1.3.1", + "split": "~1.0.1" + }, + "bin": { + "adbkit": "bin/adbkit" + }, + "engines": { + "node": ">= 0.10.4" + } + }, + "node_modules/@devicefarmer/adbkit-logcat": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-logcat/-/adbkit-logcat-2.1.3.tgz", + "integrity": "sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@devicefarmer/adbkit-monkey": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@devicefarmer/adbkit-monkey/-/adbkit-monkey-1.2.1.tgz", + "integrity": "sha512-ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.10.4" + } + }, + "node_modules/@emnapi/core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz", + "integrity": "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/filesystem": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz", + "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/filewriter": "*" + } + }, + "node_modules/@types/filewriter": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz", + "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/har-format": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.16.tgz", + "integrity": "sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.19.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", + "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.7" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.4.tgz", + "integrity": "sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.4", + "@vitest/utils": "4.1.4", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.4.tgz", + "integrity": "sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.4.tgz", + "integrity": "sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.4.tgz", + "integrity": "sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.4", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.4.tgz", + "integrity": "sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.4", + "@vitest/utils": "4.1.4", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.4.tgz", + "integrity": "sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.4.tgz", + "integrity": "sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.4", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@webext-core/fake-browser": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@webext-core/fake-browser/-/fake-browser-1.3.4.tgz", + "integrity": "sha512-nZcVWr3JpwpS5E6hKpbAwAMBM/AXZShnfW0F76udW8oLd6Kv0nbW6vFS07md4Na/0ntQonk3hFnlQYGYBAlTrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.merge": "^4.6.2" + } + }, + "node_modules/@webext-core/isolated-element": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@webext-core/isolated-element/-/isolated-element-1.1.5.tgz", + "integrity": "sha512-4m6oP8Vzm/68YO1QmkUOZqqUcmyBtA53tji2g00/nYXE3E3IceYgeub7eIqvXDV2Z7xU6cm6qO1IMt4XFVwtvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-potential-custom-element-name": "^1.0.1" + } + }, + "node_modules/@webext-core/match-patterns": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@webext-core/match-patterns/-/match-patterns-1.0.3.tgz", + "integrity": "sha512-NY39ACqCxdKBmHgw361M9pfJma8e4AZo20w9AY+5ZjIj1W2dvXC8J31G5fjfOGbulW9w4WKpT8fPooi0mLkn9A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@wxt-dev/browser": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/@wxt-dev/browser/-/browser-0.1.40.tgz", + "integrity": "sha512-h2/v/Hpkj5sz//h84ProqBaAcTsDFRKp9b/JVHOK/r7LT0XLE+ZDs5YN1BnFLUEHdM7G3fUjTyBG84cayXQshQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/filesystem": "*", + "@types/har-format": "*" + } + }, + "node_modules/@wxt-dev/module-react": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@wxt-dev/module-react/-/module-react-1.2.2.tgz", + "integrity": "sha512-+lRLi1r9dAXpLySWSIWHLJ1h/nFzR20iQnx3RNrKyA6oJg4+ClOluVXozHjfPg9Okfy/umtffiOopGayASrg6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitejs/plugin-react": "^4.4.1 || ^5.0.0 || ^6.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/wxt-dev" + }, + "peerDependencies": { + "vite": "^5.4.19 || ^6.3.4 || ^7.0.0 || ^8.0.0-0", + "wxt": ">=0.19.16" + } + }, + "node_modules/@wxt-dev/storage": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@wxt-dev/storage/-/storage-1.2.8.tgz", + "integrity": "sha512-GWCFKgF5+d7eslOxUDFC70ypA9njupmJb1nQM8uZoX0J3sWT2BO5xJLzb1sYahWAfID9p2BMtnUBN1lkWxPsbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@wxt-dev/browser": "^0.1.37", + "async-mutex": "^0.5.0", + "dequal": "^2.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/wxt-dev" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.17.tgz", + "integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-differ": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz", + "integrity": "sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/atomically": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.1.tgz", + "integrity": "sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stubborn-fs": "^2.0.0", + "when-exit": "^2.1.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boxen": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/boxen/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/c12": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz", + "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "confbox": "^0.2.4", + "defu": "^6.1.6", + "dotenv": "^17.3.1", + "exsolve": "^1.0.8", + "giget": "^3.2.0", + "jiti": "^2.6.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "rc9": "^3.0.1" + }, + "peerDependencies": { + "magicast": "*" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/cac": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", + "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chrome-launcher": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.2.0.tgz", + "integrity": "sha512-JbuGuBNss258bvGil7FT4HKdC3SC2K7UAEUqiPy3ACS3Yxo3hAW6bvFpCu2HsIJLgTqxgEX6BkujvzZfLpUD0Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^2.0.1" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.cjs" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chrome-launcher/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chrome-launcher/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", + "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^8.0.0", + "string-width": "^8.2.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/configstore": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz", + "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "atomically": "^2.0.3", + "dot-prop": "^9.0.0", + "graceful-fs": "^4.2.11", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^4.18.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.3.tgz", + "integrity": "sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/filesize": { + "version": "11.0.15", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-11.0.15.tgz", + "integrity": "sha512-30TpbYxQxCpi4XdVjkwXYQ37CzZltV38+P7MYroQ+4NK/Dmx9mxixFNrolzcmEIBsjT/uowC9T7kiy2+C12r1A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.8.0" + } + }, + "node_modules/firefox-profile": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.7.0.tgz", + "integrity": "sha512-aGApEu5bfCNbA4PGUZiRJAIU6jKmghV2UVdklXAofnNtiDjqYw0czLS46W7IfFqVKgKhFB8Ao2YoNGHY4BoIMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "adm-zip": "~0.5.x", + "fs-extra": "^11.2.0", + "ini": "^4.1.3", + "minimist": "^1.2.8", + "xml2js": "^0.6.2" + }, + "bin": { + "firefox-profile": "lib/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/form-data-encoder": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz", + "integrity": "sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/formdata-node": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", + "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/fx-runner": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/fx-runner/-/fx-runner-1.4.0.tgz", + "integrity": "sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "commander": "2.9.0", + "shell-quote": "1.7.3", + "spawn-sync": "1.0.15", + "when": "3.7.7", + "which": "1.2.4", + "winreg": "0.0.12" + }, + "bin": { + "fx-runner": "bin/fx-runner" + } + }, + "node_modules/fx-runner/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-port-please": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.2.0.tgz", + "integrity": "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/giget": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-3.2.0.tgz", + "integrity": "sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==", + "dev": true, + "license": "MIT", + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-directory/node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", + "dev": true, + "license": "MIT" + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/is-absolute": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", + "integrity": "sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-in-ci": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-1.0.0.tgz", + "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==", + "dev": true, + "license": "MIT", + "bin": { + "is-in-ci": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz", + "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-primitive": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz", + "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", + "integrity": "sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "integrity": "sha512-d2eJzK691yZwPHcv1LbeAOa91yMJ9QmfTgSO1oXB65ezVhXQsxBac2vEB4bMVms9cGzaA99n6V2viHMq82VLDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ky": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.3.tgz", + "integrity": "sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, + "node_modules/latest-version": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-9.0.0.tgz", + "integrity": "sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^10.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lighthouse-logger": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.2.tgz", + "integrity": "sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.1", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/linkedom": { + "version": "0.18.12", + "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.18.12.tgz", + "integrity": "sha512-jalJsOwIKuQJSeTvsgzPe9iJzyfVaEJiEXl+25EkKevsULHvMJzpNqwvj1jOESWdmgKDiXObyjOYwlUqG7wo1Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "css-select": "^5.1.0", + "cssom": "^0.5.0", + "html-escaper": "^3.0.3", + "htmlparser2": "^10.0.0", + "uhyphen": "^0.2.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "canvas": ">= 2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/listr2": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-10.2.1.tgz", + "integrity": "sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.2.0", + "eventemitter3": "^5.0.4", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^10.0.0" + }, + "engines": { + "node": ">=22.13.0" + } + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", + "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/many-keys-map": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/many-keys-map/-/many-keys-map-3.0.3.tgz", + "integrity": "sha512-1DiZmDHPXMBgMRjeUtHy1q1VYmeJscHxhIAexX9z/zjRMP80+0ETuPfssi8z+kMY4DwUgsKuHqpjxgmeA9gBNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/fregante" + } + }, + "node_modules/marky": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/multimatch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-6.0.0.tgz", + "integrity": "sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.5", + "array-differ": "^4.0.0", + "array-union": "^3.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nano-spawn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.1.0.tgz", + "integrity": "sha512-yTW+2okrElHiH4fsiz/+/zc0EDo9BDDoC3iKk8dpv1GeRc9nUWzUZHx6TofMWErchhUQR8hY9/Eu1Uja9x1nqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanospinner": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.2.2.tgz", + "integrity": "sha512-Zt/AmG6qRU3e+WnzGGLuMCEAO/dAu45stNbHY223tUxldaDAeE+FxSPsd9Q+j+paejmm0ZbrNVs5Sraqy3dRxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-notifier": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", + "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.5", + "shellwords": "^0.1.1", + "uuid": "^8.3.2", + "which": "^2.0.2" + } + }, + "node_modules/node-notifier/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/node-notifier/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-notifier/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/node-notifier/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nypm": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.5.tgz", + "integrity": "sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.2.0", + "pathe": "^2.0.3", + "tinyexec": "^1.0.2" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/package-json": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-10.0.1.tgz", + "integrity": "sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ky": "^1.2.0", + "registry-auth-token": "^5.0.2", + "registry-url": "^6.0.1", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/parse-json": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", + "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pino": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.7.0.tgz", + "integrity": "sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^5.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz", + "integrity": "sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==", + "dev": true, + "license": "MIT" + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/process-warning": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "node_modules/promise-toolbox": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/promise-toolbox/-/promise-toolbox-0.21.0.tgz", + "integrity": "sha512-NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==", + "dev": true, + "license": "ISC", + "dependencies": { + "make-error": "^1.3.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/publish-browser-extension": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/publish-browser-extension/-/publish-browser-extension-4.0.5.tgz", + "integrity": "sha512-EePAn3VIHJS/jqCuvs1NgPgoecCT8+RsES76hbgYe2Ze1dyvB0tX60C1PCrV8Z8fv56mW3E59s9Gd/GwWiw7dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "consola": "^3.4.2", + "dotenv": "^17.2.4", + "form-data-encoder": "^4.1.0", + "formdata-node": "^6.0.3", + "jsonwebtoken": "^9.0.3", + "listr2": "^10.1.0", + "ofetch": "^1.5.1", + "zod": "3.25.76 || ^4.3.6" + }, + "bin": { + "publish-extension": "bin/publish-extension.mjs" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/publish-browser-extension/node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pupa": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "dev": true, + "license": "MIT" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rc9": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.0.1.tgz", + "integrity": "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.6", + "destr": "^2.0.5" + } + }, + "node_modules/react": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.5" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/registry-auth-token": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", + "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^3.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.124.0", + "@rolldown/pluginutils": "1.0.0-rc.15" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-value": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", + "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/jonschlinkert", + "https://paypal.me/jonathanschlinkert", + "https://jonschlinkert.dev/sponsor" + ], + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "is-primitive": "^3.0.1" + }, + "engines": { + "node": ">=11.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "license": "MIT" + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slice-ansi": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", + "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.3", + "is-fullwidth-code-point": "^5.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/sonic-boom": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz", + "integrity": "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^1.4.7", + "os-shim": "^0.1.2" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", + "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-bom": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-5.0.0.tgz", + "integrity": "sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.2.tgz", + "integrity": "sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/stubborn-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz", + "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "stubborn-utils": "^1.0.1" + } + }, + "node_modules/stubborn-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz", + "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==", + "dev": true, + "license": "MIT" + }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/uhyphen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz", + "integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==", + "dev": true, + "license": "ISC" + }, + "node_modules/undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/unimport": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-6.1.0.tgz", + "integrity": "sha512-ocgNKyiqj7Hw7oHt7A7D3za3fq28eShe1EloL6hsoQgn7CF51Y4CqFT9ISG3rEy0JpA8CCz/sY5h5OovOn62VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "pathe": "^2.0.3", + "picomatch": "^4.0.4", + "pkg-types": "^2.3.0", + "scule": "^1.3.0", + "strip-literal": "^3.1.0", + "tinyglobby": "^0.2.16", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.0.0.tgz", + "integrity": "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/update-notifier": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.3.1.tgz", + "integrity": "sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^8.0.1", + "chalk": "^5.3.0", + "configstore": "^7.0.0", + "is-in-ci": "^1.0.0", + "is-installed-globally": "^1.0.0", + "is-npm": "^6.0.0", + "latest-version": "^9.0.0", + "pupa": "^3.1.0", + "semver": "^7.6.3", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vite": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.15", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.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 + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-6.0.0.tgz", + "integrity": "sha512-oj4PVrT+pDh6GYf5wfUXkcZyekYS8kKPfLPXVl8qe324Ec6l4K2DUKNadRbZ3LQl0qGcDz+PyOo7ZAh00Y+JjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^7.0.0", + "es-module-lexer": "^2.0.0", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "vite": "^8.0.0" + }, + "bin": { + "vite-node": "dist/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://opencollective.com/antfu" + } + }, + "node_modules/vitest": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.4.tgz", + "integrity": "sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.4", + "@vitest/mocker": "4.1.4", + "@vitest/pretty-format": "4.1.4", + "@vitest/runner": "4.1.4", + "@vitest/snapshot": "4.1.4", + "@vitest/spy": "4.1.4", + "@vitest/utils": "4.1.4", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.4", + "@vitest/browser-preview": "4.1.4", + "@vitest/browser-webdriverio": "4.1.4", + "@vitest/coverage-istanbul": "4.1.4", + "@vitest/coverage-v8": "4.1.4", + "@vitest/ui": "4.1.4", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } + } + }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/web-ext-run": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/web-ext-run/-/web-ext-run-0.2.4.tgz", + "integrity": "sha512-rQicL7OwuqWdQWI33JkSXKcp7cuv1mJG8u3jRQwx/8aDsmhbTHs9ZRmNYOL+LX0wX8edIEQX8jj4bB60GoXtKA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@babel/runtime": "7.28.2", + "@devicefarmer/adbkit": "3.3.8", + "chrome-launcher": "1.2.0", + "debounce": "1.2.1", + "es6-error": "4.1.1", + "firefox-profile": "4.7.0", + "fx-runner": "1.4.0", + "multimatch": "6.0.0", + "node-notifier": "10.0.1", + "parse-json": "7.1.1", + "pino": "9.7.0", + "promise-toolbox": "0.21.0", + "set-value": "4.1.0", + "source-map-support": "0.5.21", + "strip-bom": "5.0.0", + "strip-json-comments": "5.0.2", + "tmp": "0.2.5", + "update-notifier": "7.3.1", + "watchpack": "2.4.4", + "zip-dir": "2.0.0" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/when": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.7.tgz", + "integrity": "sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==", + "dev": true, + "license": "MIT" + }, + "node_modules/when-exit": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz", + "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.4.tgz", + "integrity": "sha512-zDRAqDSBudazdfM9zpiI30Fu9ve47htYXcGi3ln0wfKu2a7SmrT6F3VDoYONu//48V8Vz4TdCRNPjtvyRO3yBA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-absolute": "^0.1.7", + "isexe": "^1.1.1" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/winreg": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz", + "integrity": "sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==", + "dev": true, + "license": "BSD" + }, + "node_modules/wrap-ansi": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-10.0.0.tgz", + "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.3", + "string-width": "^8.2.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wxt": { + "version": "0.20.22", + "resolved": "https://registry.npmjs.org/wxt/-/wxt-0.20.22.tgz", + "integrity": "sha512-njFI77H0dAbK/bQCN8u8QYiusg6GKDPMtsQDCqIfrh1oGHMHgrMEMgeGOlqAltG9OOGGB1DvFYDzTvxqfEKVKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@1natsu/wait-element": "^4.1.2", + "@aklinker1/rollup-plugin-visualizer": "5.12.0", + "@webext-core/fake-browser": "^1.3.4", + "@webext-core/isolated-element": "^1.1.3", + "@webext-core/match-patterns": "^1.0.3", + "@wxt-dev/browser": "^0.1.40", + "@wxt-dev/storage": "^1.0.0", + "async-mutex": "^0.5.0", + "c12": "^3.3.3", + "cac": "^6.7.14 || ^7.0.0", + "chokidar": "^5.0.0", + "ci-info": "^4.4.0", + "consola": "^3.4.2", + "defu": "^6.1.4", + "dotenv-expand": "^12.0.3", + "esbuild": "^0.27.1", + "filesize": "^11.0.15", + "get-port-please": "^3.2.0", + "giget": "^1.2.3 || ^2.0.0 || ^3.0.0", + "hookable": "^6.1.0", + "import-meta-resolve": "^4.2.0", + "is-wsl": "^3.1.1", + "json5": "^2.2.3", + "jszip": "^3.10.1", + "linkedom": "^0.18.12", + "magicast": "^0.5.2", + "nano-spawn": "^2.0.0", + "nanospinner": "^1.2.2", + "normalize-path": "^3.0.0", + "nypm": "^0.6.5", + "ohash": "^2.0.11", + "open": "^11.0.0", + "perfect-debounce": "^2.1.0", + "picomatch": "^4.0.3", + "prompts": "^2.4.2", + "publish-browser-extension": "^2.3.0 || ^3.0.2 || ^4.0.4", + "scule": "^1.3.0", + "tinyglobby": "^0.2.15", + "unimport": "^3.13.1 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "vite": "^5.4.19 || ^6.3.4 || ^7.0.0 || ^8.0.0-0", + "vite-node": "^3.2.4 || ^5.0.0 || ^6.0.0", + "web-ext-run": "^0.2.4" + }, + "bin": { + "wxt": "bin/wxt.mjs", + "wxt-publish-extension": "bin/wxt-publish-extension.mjs" + }, + "engines": { + "bun": ">=1.2.0", + "node": ">=20.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/wxt-dev" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/zip-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/zip-dir/-/zip-dir-2.0.0.tgz", + "integrity": "sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.0", + "jszip": "^3.2.2" + } + }, + "node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6fb3f86 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "cleanplaats", + "description": "Cleanplaats browser extension rewritten with WXT + React + TypeScript", + "private": true, + "version": "2.0.7", + "type": "module", + "scripts": { + "dev": "wxt", + "dev:firefox": "wxt -b firefox", + "build": "wxt build", + "build:firefox": "wxt build -b firefox", + "zip": "wxt zip", + "zip:firefox": "wxt zip -b firefox", + "compile": "tsc --noEmit", + "test": "vitest run", + "postinstall": "wxt prepare" + }, + "dependencies": { + "react": "^19.2.5", + "react-dom": "^19.2.5" + }, + "devDependencies": { + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@wxt-dev/module-react": "^1.2.2", + "typescript": "^6.0.2", + "vitest": "^4.1.4", + "wxt": "^0.20.22" + } +} diff --git a/public/.gitkeep b/public/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/public/.gitkeep @@ -0,0 +1 @@ + diff --git a/src/entrypoints/.gitkeep b/src/entrypoints/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/entrypoints/.gitkeep @@ -0,0 +1 @@ + diff --git a/src/entrypoints/background.ts b/src/entrypoints/background.ts new file mode 100644 index 0000000..9ba1f12 --- /dev/null +++ b/src/entrypoints/background.ts @@ -0,0 +1,3 @@ +export default defineBackground(() => { + console.log('Cleanplaats background initialized.'); +}); diff --git a/src/entrypoints/main.content.ts b/src/entrypoints/main.content.ts new file mode 100644 index 0000000..8d112d4 --- /dev/null +++ b/src/entrypoints/main.content.ts @@ -0,0 +1,13 @@ +import '../styles/content.css'; + +export default defineContentScript({ + matches: [ + '*://*.marktplaats.nl/*', + '*://*.2dehands.be/*', + '*://*.2ememain.be/*', + ], + runAt: 'document_end', + main() { + console.log('Cleanplaats: main content script bootstrap loaded'); + }, +}); diff --git a/src/entrypoints/theme-init.content.ts b/src/entrypoints/theme-init.content.ts new file mode 100644 index 0000000..cae22aa --- /dev/null +++ b/src/entrypoints/theme-init.content.ts @@ -0,0 +1,12 @@ +export default defineContentScript({ + matches: [ + '*://*.marktplaats.nl/*', + '*://*.2dehands.be/*', + '*://*.2ememain.be/*', + ], + runAt: 'document_start', + allFrames: true, + main() { + // Placeholder entrypoint; will be replaced by typed theme init logic. + }, +}); diff --git a/src/types/assets.d.ts b/src/types/assets.d.ts new file mode 100644 index 0000000..35306c6 --- /dev/null +++ b/src/types/assets.d.ts @@ -0,0 +1 @@ +declare module '*.css'; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..0cdad0c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "./.wxt/tsconfig.json", + "compilerOptions": { + "allowImportingTsExtensions": true, + "jsx": "react-jsx", + "strict": true, + "noUncheckedIndexedAccess": true, + "exactOptionalPropertyTypes": true + }, + "include": [ + "entrypoints", + "src", + ".wxt/wxt.d.ts", + "tests", + "wxt.config.ts" + ] +} diff --git a/wxt.config.ts b/wxt.config.ts new file mode 100644 index 0000000..e38d7f9 --- /dev/null +++ b/wxt.config.ts @@ -0,0 +1,55 @@ +import { defineConfig } from 'wxt'; + +const HOST_MATCH_PATTERNS = [ + '*://*.marktplaats.nl/*', + '*://*.2dehands.be/*', + '*://*.2ememain.be/*', +]; + +export default defineConfig({ + modules: ['@wxt-dev/module-react'], + srcDir: 'src', + manifest: { + manifest_version: 3, + name: 'Cleanplaats - Marktplaats zonder spam', + version: '2.0.7', + description: 'Zelf in de hand wat je wel én niet wil zien op Marktplaats door te filteren', + permissions: [ + 'storage', + 'scripting', + 'tabs', + 'webNavigation', + 'declarativeNetRequest', + 'alarms', + ], + host_permissions: HOST_MATCH_PATTERNS, + action: { + default_title: 'Cleanplaats', + default_icon: { + '16': 'icons/icon16.png', + '48': 'icons/icon48.png', + '128': 'icons/icon128.png', + }, + }, + icons: { + '16': 'icons/icon16.png', + '48': 'icons/icon48.png', + '128': 'icons/icon128.png', + }, + web_accessible_resources: [ + { + resources: ['icons/*', 'dark-mode.css'], + matches: HOST_MATCH_PATTERNS, + }, + ], + browser_specific_settings: { + gecko: { + id: 'cleanplaats@cleanplaats.dev', + strict_min_version: '121.0', + }, + gecko_android: { + strict_min_version: '121.0', + }, + }, + }, +}); From dd3fcd9b7a145ab61a6da787756372e3c118b275 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 16 Apr 2026 15:33:58 +0000 Subject: [PATCH 2/7] feat(content): WXT React panel, typed runtime, cleanup and theme init - Add shared settings storage/repository and content runtime store with React sync - Port cleanup, observers, theme, blacklist injection, and notifications to TS modules - Implement CleanplaatsPanel in React with modals, stats, and marketplace sort sync - Wire main.content.ts bootstrap; theme-init applies early dark mode + storage sync - Fix strict TS typings in background listeners for noImplicitAny compatibility Co-authored-by: Dion Grendelman --- src/background/index.ts | 40 + .../runtime-background-bootstrap-legacy.js | 17 + .../runtime-background-keepalive-legacy.js | 69 + .../runtime-background-lifecycle-legacy.js | 142 + .../runtime-background-messages-legacy.js | 73 + .../runtime-background-shared-legacy.js | 47 + .../runtime-background-theme-legacy.js | 10 + .../runtime-background-url-rules-legacy.js | 148 + src/background/services/hash-url.ts | 91 + src/background/services/keepalive.ts | 91 + src/background/services/listeners.ts | 240 ++ src/background/services/navigation.ts | 86 + src/background/services/rules.ts | 97 + src/background/services/settings.ts | 27 + src/background/types.ts | 41 + src/content/bootstrap.ts | 117 + src/content/constants/ui.ts | 5 + src/content/locale/panel-text.ts | 189 + src/content/panel/CleanplaatsPanel.tsx | 919 +++++ src/content/panel/mount.tsx | 36 + src/content/panel/panel-view.ts | 155 + src/content/panel/use-cleanplaats-store.ts | 12 + .../runtime/content-blacklist-legacy.js | 469 +++ .../runtime/content-bootstrap-legacy.js | 9 + src/content/runtime/content-cleanup-legacy.js | 524 +++ src/content/runtime/content-init-legacy.js | 157 + .../runtime/content-notifications-legacy.js | 513 +++ .../runtime/content-observers-legacy.js | 189 + src/content/runtime/content-shared-legacy.js | 389 ++ src/content/runtime/content-storage-legacy.js | 102 + src/content/runtime/content-theme-legacy.js | 199 + src/content/runtime/content-ui-legacy.js | 830 +++++ src/content/runtime/store.ts | 191 + src/content/runtime/theme-init-legacy.js | 190 + src/content/services/background-wake.ts | 59 + src/content/services/blacklist-inject.ts | 248 ++ src/content/services/blacklist-terms.ts | 19 + src/content/services/cleanup.ts | 505 +++ src/content/services/notifications.ts | 566 +++ src/content/services/observers.ts | 193 + src/content/services/sort-sync.ts | 45 + src/content/services/theme.ts | 178 + src/content/theme/early-dark-mode-css.ts | 118 + src/content/utils/site.ts | 40 + src/content/utils/sort.ts | 18 + src/entrypoints/background.ts | 4 +- src/entrypoints/main.content.ts | 17 +- src/entrypoints/theme-init.content.ts | 81 +- src/shared/constants/domains.ts | 28 + src/shared/constants/manifest-legacy.json | 88 + src/shared/constants/settings.ts | 58 + src/shared/constants/sort.ts | 24 + src/shared/constants/storage.ts | 9 + src/shared/constants/update-notes.ts | 36 + src/shared/messages/runtime.ts | 30 + src/shared/storage/repository.ts | 144 + src/shared/types/state.ts | 177 + src/shared/utils/selectors.ts | 9 + src/shared/utils/seller-age.ts | 56 + src/shared/utils/serialization.ts | 45 + src/shared/utils/settings-normalization.ts | 150 + src/styles/content.css | 1891 ++++++++++ src/styles/dark-mode.css | 3238 +++++++++++++++++ src/types/assets.d.ts | 7 + 64 files changed, 14482 insertions(+), 13 deletions(-) create mode 100644 src/background/index.ts create mode 100644 src/background/runtime-background-bootstrap-legacy.js create mode 100644 src/background/runtime-background-keepalive-legacy.js create mode 100644 src/background/runtime-background-lifecycle-legacy.js create mode 100644 src/background/runtime-background-messages-legacy.js create mode 100644 src/background/runtime-background-shared-legacy.js create mode 100644 src/background/runtime-background-theme-legacy.js create mode 100644 src/background/runtime-background-url-rules-legacy.js create mode 100644 src/background/services/hash-url.ts create mode 100644 src/background/services/keepalive.ts create mode 100644 src/background/services/listeners.ts create mode 100644 src/background/services/navigation.ts create mode 100644 src/background/services/rules.ts create mode 100644 src/background/services/settings.ts create mode 100644 src/background/types.ts create mode 100644 src/content/bootstrap.ts create mode 100644 src/content/constants/ui.ts create mode 100644 src/content/locale/panel-text.ts create mode 100644 src/content/panel/CleanplaatsPanel.tsx create mode 100644 src/content/panel/mount.tsx create mode 100644 src/content/panel/panel-view.ts create mode 100644 src/content/panel/use-cleanplaats-store.ts create mode 100644 src/content/runtime/content-blacklist-legacy.js create mode 100644 src/content/runtime/content-bootstrap-legacy.js create mode 100644 src/content/runtime/content-cleanup-legacy.js create mode 100644 src/content/runtime/content-init-legacy.js create mode 100644 src/content/runtime/content-notifications-legacy.js create mode 100644 src/content/runtime/content-observers-legacy.js create mode 100644 src/content/runtime/content-shared-legacy.js create mode 100644 src/content/runtime/content-storage-legacy.js create mode 100644 src/content/runtime/content-theme-legacy.js create mode 100644 src/content/runtime/content-ui-legacy.js create mode 100644 src/content/runtime/store.ts create mode 100644 src/content/runtime/theme-init-legacy.js create mode 100644 src/content/services/background-wake.ts create mode 100644 src/content/services/blacklist-inject.ts create mode 100644 src/content/services/blacklist-terms.ts create mode 100644 src/content/services/cleanup.ts create mode 100644 src/content/services/notifications.ts create mode 100644 src/content/services/observers.ts create mode 100644 src/content/services/sort-sync.ts create mode 100644 src/content/services/theme.ts create mode 100644 src/content/theme/early-dark-mode-css.ts create mode 100644 src/content/utils/site.ts create mode 100644 src/content/utils/sort.ts create mode 100644 src/shared/constants/domains.ts create mode 100644 src/shared/constants/manifest-legacy.json create mode 100644 src/shared/constants/settings.ts create mode 100644 src/shared/constants/sort.ts create mode 100644 src/shared/constants/storage.ts create mode 100644 src/shared/constants/update-notes.ts create mode 100644 src/shared/messages/runtime.ts create mode 100644 src/shared/storage/repository.ts create mode 100644 src/shared/types/state.ts create mode 100644 src/shared/utils/selectors.ts create mode 100644 src/shared/utils/seller-age.ts create mode 100644 src/shared/utils/serialization.ts create mode 100644 src/shared/utils/settings-normalization.ts create mode 100644 src/styles/content.css create mode 100644 src/styles/dark-mode.css diff --git a/src/background/index.ts b/src/background/index.ts new file mode 100644 index 0000000..adb752d --- /dev/null +++ b/src/background/index.ts @@ -0,0 +1,40 @@ +import { + createBackgroundRuntimeState, + type BackgroundState, + type BackgroundRuntime, +} from '@/background/types'; +import { DEFAULT_SETTINGS } from '@/shared/constants/settings'; +import { KeepAliveService } from '@/background/services/keepalive'; +import { SettingsRepository } from '@/shared/storage/repository'; +import { createListenerController } from '@/background/services/listeners'; + +export async function initializeBackground(): Promise { + const state: BackgroundState = { + resultsPerPage: String(DEFAULT_SETTINGS.resultsPerPage), + defaultSortMode: DEFAULT_SETTINGS.defaultSortMode, + sortPreferenceSource: DEFAULT_SETTINGS.sortPreferenceSource, + }; + const runtimeState = createBackgroundRuntimeState(); + const runtime: BackgroundRuntime = { + wakeupNavigationFilters: runtimeState.wakeupNavigationFilters, + }; + const keepAlive = new KeepAliveService(runtimeState); + const settingsRepository = new SettingsRepository(); + + const listenerController = createListenerController({ + browserApi: browser, + state, + runtime, + keepAlive, + settingsRepository, + updateDarkModeStartupScript: async (_enabled) => { + // theme-init is loaded statically via manifest content scripts. + // Keep async hook as no-op to preserve prior behavior. + }, + }); + + await listenerController.initialize(); + listenerController.registerRuntimeListeners(); + keepAlive.setup(); +} + diff --git a/src/background/runtime-background-bootstrap-legacy.js b/src/background/runtime-background-bootstrap-legacy.js new file mode 100644 index 0000000..a5186d4 --- /dev/null +++ b/src/background/runtime-background-bootstrap-legacy.js @@ -0,0 +1,17 @@ +/** + * Cleanplaats background bootstrap. + */ + +importScripts( + 'background/shared.js', + 'background/url-rules.js', + 'background/theme.js', + 'background/messages.js', + 'background/keepalive.js', + 'background/lifecycle.js' +); + +initialize(); +setupKeepAlive(); + +console.log('Cleanplaats background.js: Script execution finished initial top-level setup.', new Date().toISOString()); diff --git a/src/background/runtime-background-keepalive-legacy.js b/src/background/runtime-background-keepalive-legacy.js new file mode 100644 index 0000000..4adbd4a --- /dev/null +++ b/src/background/runtime-background-keepalive-legacy.js @@ -0,0 +1,69 @@ +/** + * Background Firefox keep-alive management. + */ + +function setupKeepAlive() { + if (typeof browser !== 'undefined') { + console.log('Cleanplaats: Setting up smart Firefox keep-alive mechanism'); + + browserAPI.alarms.create('cleanplaats-keepalive', { + delayInMinutes: 2, + periodInMinutes: 2 + }); + + if (!browserAPI.alarms.onAlarm.hasListener(handleKeepAliveAlarm)) { + browserAPI.alarms.onAlarm.addListener(handleKeepAliveAlarm); + } + + if (browserAPI.webNavigation && browserAPI.webNavigation.onBeforeNavigate) { + browserAPI.webNavigation.onBeforeNavigate.addListener((details) => { + if (details.frameId === 0 && + (details.url.includes('marktplaats.nl') || details.url.includes('2dehands.be') || details.url.includes('2ememain.be'))) { + lastMarktplaatsActivity = Date.now(); + console.log('Cleanplaats: Marktplaats activity detected, updating timestamp'); + } + }); + } + } +} + +function handleKeepAliveAlarm(alarm) { + if (alarm.name === 'cleanplaats-keepalive') { + const timeSinceActivity = Date.now() - lastMarktplaatsActivity; + const minutesSinceActivity = timeSinceActivity / (1000 * 60); + + console.log(`Cleanplaats: Keep-alive check - ${minutesSinceActivity.toFixed(1)} minutes since last Marktplaats activity`); + + if (minutesSinceActivity > 30) { + console.log('Cleanplaats: User inactive for 30+ minutes, switching to low-frequency mode'); + browserAPI.alarms.clear('cleanplaats-keepalive'); + browserAPI.alarms.create('cleanplaats-keepalive', { + delayInMinutes: 10, + periodInMinutes: 10 + }); + } else if (minutesSinceActivity > 10) { + console.log('Cleanplaats: User inactive for 10+ minutes, switching to medium-frequency mode'); + browserAPI.alarms.clear('cleanplaats-keepalive'); + browserAPI.alarms.create('cleanplaats-keepalive', { + delayInMinutes: 5, + periodInMinutes: 5 + }); + } else { + console.log('Cleanplaats: User recently active, maintaining normal frequency'); + } + } +} + +function resetKeepAliveToActiveMode() { + if (typeof browser !== 'undefined') { + lastMarktplaatsActivity = Date.now(); + + browserAPI.alarms.clear('cleanplaats-keepalive'); + browserAPI.alarms.create('cleanplaats-keepalive', { + delayInMinutes: 2, + periodInMinutes: 2 + }); + + console.log('Cleanplaats: Reset keep-alive to active mode'); + } +} diff --git a/src/background/runtime-background-lifecycle-legacy.js b/src/background/runtime-background-lifecycle-legacy.js new file mode 100644 index 0000000..abe1bbc --- /dev/null +++ b/src/background/runtime-background-lifecycle-legacy.js @@ -0,0 +1,142 @@ +/** + * Background lifecycle and listener registration. + */ + +async function handleStorageChanges(changes, areaName) { + if (areaName !== 'local' || !changes.cleanplaatsSettings) return; + + console.log('Cleanplaats: handleStorageChanges triggered.', changes.cleanplaatsSettings); + try { + const newSettingsData = JSON.parse(changes.cleanplaatsSettings.newValue || '{}'); + const newResultsPerPage = newSettingsData.resultsPerPage?.toString() || '30'; + const newDefaultSortMode = newSettingsData.defaultSortMode || 'standard'; + const newSortPreferenceSource = newSettingsData.sortPreferenceSource || 'cleanplaats'; + const darkModeEnabled = Boolean(newSettingsData.darkMode); + + let settingsActuallyChanged = false; + if (newResultsPerPage !== resultsPerPage) { + console.log(`Cleanplaats: Results per page changed from ${resultsPerPage} to ${newResultsPerPage}`); + resultsPerPage = newResultsPerPage; + settingsActuallyChanged = true; + } + if (newDefaultSortMode !== defaultSortMode) { + console.log(`Cleanplaats: Default sort mode changed from ${defaultSortMode} to ${newDefaultSortMode}`); + defaultSortMode = newDefaultSortMode; + settingsActuallyChanged = true; + } + if (newSortPreferenceSource !== sortPreferenceSource) { + console.log(`Cleanplaats: Sort preference source changed from ${sortPreferenceSource} to ${newSortPreferenceSource}`); + sortPreferenceSource = newSortPreferenceSource; + settingsActuallyChanged = true; + } + + await updateDarkModeStartupScript(darkModeEnabled); + + if (settingsActuallyChanged) { + await updateApiRequestRules(resultsPerPage, defaultSortMode); + } + } catch (error) { + console.error('Cleanplaats: Error parsing settings in handleStorageChanges:', error); + } +} + +async function initialize() { + console.log('Cleanplaats background.js: initialize() called.', new Date().toISOString()); + + browserAPI.storage.local.get(['cleanplaatsSettings'], async (result) => { + if (browserAPI.runtime.lastError) { + console.error('Cleanplaats: Error loading settings during initialize:', browserAPI.runtime.lastError); + } else { + console.log('Cleanplaats: Settings loaded from storage:', result.cleanplaatsSettings); + try { + if (result.cleanplaatsSettings) { + const settings = JSON.parse(result.cleanplaatsSettings); + resultsPerPage = settings.resultsPerPage?.toString() || '30'; + defaultSortMode = settings.defaultSortMode || 'standard'; + sortPreferenceSource = settings.sortPreferenceSource || 'cleanplaats'; + await updateDarkModeStartupScript(Boolean(settings.darkMode)); + } else { + await updateDarkModeStartupScript(false); + } + } catch (error) { + console.error('Cleanplaats: Error parsing stored settings:', error, '. Using default settings.'); + await updateDarkModeStartupScript(false); + } + } + + console.log(`Cleanplaats: Initialized with settings - RPP: ${resultsPerPage}, Sort: ${defaultSortMode}, SortSource: ${sortPreferenceSource}`); + + await updateApiRequestRules(resultsPerPage, defaultSortMode); + + if (browserAPI.webRequest) { + try { + if (typeof browserAPI.webRequest.onBeforeRequest.hasListener === 'function') { + if (browserAPI.webRequest.onBeforeRequest.hasListener(rewriteHashRequests_MV2_compat)) { + browserAPI.webRequest.onBeforeRequest.removeListener(rewriteHashRequests_MV2_compat); + } + if (browserAPI.webRequest.onBeforeRequest.hasListener(rewriteApiRequests_MV2_compat)) { + browserAPI.webRequest.onBeforeRequest.removeListener(rewriteApiRequests_MV2_compat); + } + } + } catch (e) { + console.warn('Cleanplaats: Could not remove old webRequest listeners.', e); + } + } + + try { + if (browserAPI.storage.onChanged.hasListener(handleStorageChanges)) { + browserAPI.storage.onChanged.removeListener(handleStorageChanges); + } + browserAPI.storage.onChanged.addListener(handleStorageChanges); + console.log('Cleanplaats: Added storage.onChanged listener.'); + } catch (error) { + console.error('Cleanplaats: Error setting up storage listener:', error); + } + + try { + if (browserAPI.webNavigation.onBeforeNavigate.hasListener(handleHashNavigation)) { + browserAPI.webNavigation.onBeforeNavigate.removeListener(handleHashNavigation); + } + browserAPI.webNavigation.onBeforeNavigate.addListener(handleHashNavigation, { + url: WAKEUP_NAVIGATION_FILTERS + }); + console.log('Cleanplaats: Added webNavigation.onBeforeNavigate listener with wakeup filters.'); + } catch (error) { + console.error('Cleanplaats: Error setting up onBeforeNavigate listener:', error); + } + + try { + if (browserAPI.webNavigation.onHistoryStateUpdated.hasListener(handleHistoryStateUpdated)) { + browserAPI.webNavigation.onHistoryStateUpdated.removeListener(handleHistoryStateUpdated); + } + browserAPI.webNavigation.onHistoryStateUpdated.addListener(handleHistoryStateUpdated, { + url: WAKEUP_NAVIGATION_FILTERS + }); + console.log('Cleanplaats: Added webNavigation.onHistoryStateUpdated listener with wakeup filters.'); + } catch (error) { + console.error('Cleanplaats: Error setting up onHistoryStateUpdated listener:', error); + } + + console.log('Cleanplaats: All listeners registered. Ready.'); + }); +} + +browserAPI.runtime.onInstalled.addListener(async (details) => { + console.log('Cleanplaats: runtime.onInstalled event triggered, reason: ', details.reason); + if (details.reason === 'install' || details.reason === 'update') { + console.log('Cleanplaats: Extension installed or updated. Clearing old declarativeNetRequest rules.'); + try { + const existingRules = await browserAPI.declarativeNetRequest.getDynamicRules(); + const ruleIdsToRemove = existingRules.map(rule => rule.id); + if (ruleIdsToRemove.length > 0) { + await browserAPI.declarativeNetRequest.updateDynamicRules({ removeRuleIds: ruleIdsToRemove }); + console.log('Cleanplaats: Successfully cleared old dynamic rules.'); + } + } catch (error) { + console.error('Cleanplaats: Error clearing dynamic rules on install/update:', error); + } + } +}); + +function rewriteHashRequests_MV2_compat() {} +function rewriteApiRequests_MV2_compat() {} diff --git a/src/background/runtime-background-messages-legacy.js b/src/background/runtime-background-messages-legacy.js new file mode 100644 index 0000000..008d972 --- /dev/null +++ b/src/background/runtime-background-messages-legacy.js @@ -0,0 +1,73 @@ +/** + * Background message handling and settings refresh. + */ + +function messageListener(message, sender, sendResponse) { + console.log('Cleanplaats: messageListener received message: ', message); + + if (message.action === 'keepAlive') { + console.log('Cleanplaats: Background script woken up by content script'); + resetKeepAliveToActiveMode(); + sendResponse({ status: 'acknowledged', timestamp: Date.now() }); + refreshSettingsAndRules(); + return true; + } + + if (message.action === 'forceRefresh') { + console.log('Cleanplaats: Force refresh requested'); + resetKeepAliveToActiveMode(); + refreshSettingsAndRules(); + sendResponse({ status: 'refreshed' }); + return true; + } + + return true; +} + +async function refreshSettingsAndRules() { + try { + const result = await new Promise((resolve) => { + browserAPI.storage.local.get(['cleanplaatsSettings'], resolve); + }); + + if (result.cleanplaatsSettings) { + const settings = JSON.parse(result.cleanplaatsSettings); + const newResultsPerPage = settings.resultsPerPage?.toString() || '30'; + const newDefaultSortMode = settings.defaultSortMode || 'standard'; + const newSortPreferenceSource = settings.sortPreferenceSource || 'cleanplaats'; + const darkModeEnabled = Boolean(settings.darkMode); + + let settingsChanged = false; + if (newResultsPerPage !== resultsPerPage) { + console.log(`Cleanplaats: Refreshing RPP from ${resultsPerPage} to ${newResultsPerPage}`); + resultsPerPage = newResultsPerPage; + settingsChanged = true; + } + if (newDefaultSortMode !== defaultSortMode) { + console.log(`Cleanplaats: Refreshing sort mode from ${defaultSortMode} to ${newDefaultSortMode}`); + defaultSortMode = newDefaultSortMode; + settingsChanged = true; + } + if (newSortPreferenceSource !== sortPreferenceSource) { + console.log(`Cleanplaats: Refreshing sort source from ${sortPreferenceSource} to ${newSortPreferenceSource}`); + sortPreferenceSource = newSortPreferenceSource; + settingsChanged = true; + } + + await updateDarkModeStartupScript(darkModeEnabled); + + if (settingsChanged) { + await updateApiRequestRules(resultsPerPage, defaultSortMode); + console.log('Cleanplaats: Settings and rules refreshed after wake-up'); + } + } + } catch (error) { + console.error('Cleanplaats: Error refreshing settings:', error); + } +} + +if (browserAPI.runtime.onMessage) { + if (!browserAPI.runtime.onMessage.hasListener(messageListener)) { + browserAPI.runtime.onMessage.addListener(messageListener); + } +} diff --git a/src/background/runtime-background-shared-legacy.js b/src/background/runtime-background-shared-legacy.js new file mode 100644 index 0000000..d988eef --- /dev/null +++ b/src/background/runtime-background-shared-legacy.js @@ -0,0 +1,47 @@ +/** + * Cleanplaats background shared state and constants. + */ + +console.log('Cleanplaats background.js: Script execution started/restarted.', new Date().toISOString()); + +var browserAPI = typeof browser !== 'undefined' ? browser : chrome; + +var resultsPerPage = '30'; +var defaultSortMode = 'standard'; +var sortPreferenceSource = 'cleanplaats'; +var lastMarktplaatsActivity = Date.now(); + +var SORT_MODES = { + standard: { sortBy: 'OPTIMIZED', sortOrder: 'DECREASING' }, + date_new_old: { sortBy: 'SORT_INDEX', sortOrder: 'DECREASING' }, + date_old_new: { sortBy: 'SORT_INDEX', sortOrder: 'INCREASING' }, + price_low_high: { sortBy: 'PRICE', sortOrder: 'INCREASING' }, + price_high_low: { sortBy: 'PRICE', sortOrder: 'DECREASING' }, + distance: { sortBy: 'LOCATION', sortOrder: 'INCREASING' } +}; + +var API_RULE_ID = 1; +var HASH_URL_PATTERNS = [ + 'https://www.marktplaats.nl/l/', + 'https://www.marktplaats.nl/q/', + 'https://www.2dehands.be/l/', + 'https://www.2dehands.be/q/', + 'https://www.2ememain.be/l/', + 'https://www.2ememain.be/q/' +]; +var API_URL_PATTERNS = [ + 'https://www.marktplaats.nl/lrp/api/search*', + 'https://www.2dehands.be/lrp/api/search*', + 'https://www.2ememain.be/lrp/api/search*' +]; +var THEME_INIT_SCRIPT_ID = 'cleanplaats-theme-init'; +var THEME_MATCH_PATTERNS = [ + '*://*.marktplaats.nl/*', + '*://*.2dehands.be/*', + '*://*.2ememain.be/*' +]; +var WAKEUP_NAVIGATION_FILTERS = [ + { hostSuffix: 'marktplaats.nl' }, + { hostSuffix: '2dehands.be' }, + { hostSuffix: '2ememain.be' } +]; diff --git a/src/background/runtime-background-theme-legacy.js b/src/background/runtime-background-theme-legacy.js new file mode 100644 index 0000000..9e63cbf --- /dev/null +++ b/src/background/runtime-background-theme-legacy.js @@ -0,0 +1,10 @@ +/** + * Background theme-init registration. + */ + +async function updateDarkModeStartupScript(enabled) { + // theme-init.js is now loaded statically via manifest.json at document_start. + // Keeping this async hook as a no-op avoids browser-specific timing issues + // with runtime content-script registration, especially in Firefox. + console.log(`Cleanplaats: Startup dark-mode script is manifest-driven (${enabled ? 'enabled' : 'disabled'}).`); +} diff --git a/src/background/runtime-background-url-rules-legacy.js b/src/background/runtime-background-url-rules-legacy.js new file mode 100644 index 0000000..34dc4e2 --- /dev/null +++ b/src/background/runtime-background-url-rules-legacy.js @@ -0,0 +1,148 @@ +/** + * Background URL rewriting and DNR rule management. + */ + +function parseHashOptions(hashStr) { + const options = {}; + if (!hashStr || hashStr.length < 2) return options; + const hashKeysValues = hashStr.substring(1).split('|'); + for (let i = 0; i < hashKeysValues.length; ++i) { + const keyValue = hashKeysValues[i].split(':'); + if (keyValue.length !== 2) continue; + options[keyValue[0]] = keyValue[1]; + } + return options; +} + +function buildHashOptions(options) { + const entries = Object.entries(options).filter(([_, v]) => v && v !== ''); + if (entries.length === 0) return ''; + let hashStr = '#'; + for (const key in options) { + if (options[key] && options[key] !== '') { + hashStr += key + ':' + options[key] + '|'; + } + } + if (hashStr.endsWith('|')) { + hashStr = hashStr.substring(0, hashStr.length - 1); + } + return hashStr; +} + +function getModifiedUrlIfNeeded(urlString, currentResultsPerPage, currentDefaultSortMode, currentSortPreferenceSource) { + const url = new URL(urlString); + const options = parseHashOptions(url.hash); + let needsRewrite = false; + const hasExplicitSort = Boolean(options.sortBy && options.sortOrder); + const shouldApplyCleanplaatsSort = currentSortPreferenceSource !== 'marketplace'; + + if (!Object.prototype.hasOwnProperty.call(options, 'limit') || options.limit !== currentResultsPerPage) { + options.limit = currentResultsPerPage; + needsRewrite = true; + } + + if (shouldApplyCleanplaatsSort && currentDefaultSortMode !== 'standard') { + const sortConfig = SORT_MODES[currentDefaultSortMode]; + if (sortConfig && (!hasExplicitSort || options.sortBy !== sortConfig.sortBy || options.sortOrder !== sortConfig.sortOrder)) { + options.sortBy = sortConfig.sortBy; + options.sortOrder = sortConfig.sortOrder; + needsRewrite = true; + } + } else if (shouldApplyCleanplaatsSort && currentDefaultSortMode === 'standard' && hasExplicitSort) { + delete options.sortBy; + delete options.sortOrder; + needsRewrite = true; + } + + if (needsRewrite) { + url.hash = buildHashOptions(options); + return url.href; + } + return null; +} + +async function updateApiRequestRules(currentResultsPerPage, currentDefaultSortMode) { + console.log(`Cleanplaats: updateApiRequestRules called with RPP: ${currentResultsPerPage}, Sort: ${currentDefaultSortMode}`); + const rulesToRemove = [API_RULE_ID]; + const rulesToAdd = []; + const shouldModifyApi = currentResultsPerPage !== '30'; + + if (shouldModifyApi) { + const rule = { + id: API_RULE_ID, + priority: 1, + action: { type: 'redirect', redirect: { transform: { queryTransform: { removeParams: [], addOrReplaceParams: [] } } } }, + condition: { urlFilter: API_URL_PATTERNS.map(p => p.replace('*', '')).join('|'), resourceTypes: ['xmlhttprequest'] } + }; + if (currentResultsPerPage !== '30') { + rule.action.redirect.transform.queryTransform.addOrReplaceParams.push({ key: 'limit', value: currentResultsPerPage }); + } + rulesToAdd.push(rule); + console.log('Cleanplaats: Adding declarativeNetRequest rule:', JSON.parse(JSON.stringify(rule))); + } else { + console.log('Cleanplaats: Removing declarativeNetRequest rule as settings are default.'); + } + try { + await browserAPI.declarativeNetRequest.updateDynamicRules({ removeRuleIds: rulesToRemove, addRules: rulesToAdd }); + console.log('Cleanplaats: declarativeNetRequest rules updated successfully.'); + } catch (error) { + console.error('Cleanplaats: Error updating declarativeNetRequest rules:', error, JSON.stringify(rulesToAdd)); + } +} + +function handleHashNavigation(details) { + if (details.frameId !== 0 || details.parentFrameId !== -1) return; + + console.log('Cleanplaats: handleHashNavigation triggered.', `URL: ${details.url}`, `Transition: ${details.transitionType}`); + + const urlMatches = HASH_URL_PATTERNS.some(pattern => details.url.startsWith(pattern)); + if (!urlMatches) { + console.log('Cleanplaats: handleHashNavigation - URL does not match HASH_URL_PATTERNS, skipping.', details.url); + return; + } + + const newUrl = getModifiedUrlIfNeeded(details.url, resultsPerPage, defaultSortMode, sortPreferenceSource); + console.log(`Cleanplaats: handleHashNavigation - Original URL: ${details.url}, Processed newUrl: ${newUrl}`); + + if (newUrl && newUrl !== details.url) { + console.log(`Cleanplaats: Rewriting URL via onBeforeNavigate from ${details.url} to ${newUrl}`); + browserAPI.tabs.update(details.tabId, { url: newUrl }); + if (details.transitionType === undefined) { + console.log(`Cleanplaats: TransitionType was undefined. Attempting follow-up reload for ${newUrl}`); + setTimeout(() => { + browserAPI.tabs.get(details.tabId, (tab) => { + if (browserAPI.runtime.lastError) { + console.warn(`Cleanplaats: Error getting tab ${details.tabId} for reload: ${browserAPI.runtime.lastError.message}`); + return; + } + if (tab && tab.url === newUrl) { + console.log(`Cleanplaats: Tab ${details.tabId} URL matches, proceeding with reload.`); + browserAPI.tabs.reload(details.tabId); + } else { + console.log(`Cleanplaats: Tab ${details.tabId} URL changed or tab closed (current: ${tab ? tab.url : 'N/A'}), skipping reload.`); + } + }); + }, 150); + } + } +} + +function handleHistoryStateUpdated(details) { + if (details.frameId !== 0 || details.parentFrameId !== -1) return; + + console.log('Cleanplaats: handleHistoryStateUpdated triggered.', `URL: ${details.url}`, `Transition: ${details.transitionType}`); + + const urlMatches = HASH_URL_PATTERNS.some(pattern => details.url.startsWith(pattern)); + if (!urlMatches) { + console.log('Cleanplaats: handleHistoryStateUpdated - URL does not match HASH_URL_PATTERNS, skipping.', details.url); + return; + } + + const newUrl = getModifiedUrlIfNeeded(details.url, resultsPerPage, defaultSortMode, sortPreferenceSource); + console.log(`Cleanplaats: handleHistoryStateUpdated - Original URL: ${details.url}, Processed newUrl: ${newUrl}`); + + if (newUrl && newUrl !== details.url) { + console.log(`Cleanplaats: Correcting URL via onHistoryStateUpdated from ${details.url} to ${newUrl}`); + browserAPI.tabs.update(details.tabId, { url: newUrl }); + } +} diff --git a/src/background/services/hash-url.ts b/src/background/services/hash-url.ts new file mode 100644 index 0000000..deb1f4d --- /dev/null +++ b/src/background/services/hash-url.ts @@ -0,0 +1,91 @@ +import { SORT_MODES } from '@/shared/constants/settings'; +import type { SortMode, SortPreferenceSource } from '@/shared/types/state'; + +export function parseHashOptions(hashStr: string): Record { + const options: Record = {}; + if (!hashStr || hashStr.length < 2) { + return options; + } + + const hashKeysValues = hashStr.substring(1).split('|'); + for (const hashKeyValue of hashKeysValues) { + const keyValue = hashKeyValue.split(':'); + if (keyValue.length !== 2) { + continue; + } + + const [key, value] = keyValue; + if (!key || !value) { + continue; + } + + options[key] = value; + } + + return options; +} + +export function buildHashOptions(options: Record): string { + const entries = Object.entries(options).filter(([, value]) => Boolean(value && value !== '')); + if (entries.length === 0) { + return ''; + } + + const serialized = entries + .map(([key, value]) => `${key}:${value}`) + .join('|'); + + return `#${serialized}`; +} + +export type ModifyUrlInput = { + urlString: string; + resultsPerPage: string; + defaultSortMode: SortMode; + sortPreferenceSource: SortPreferenceSource; +}; + +export function getModifiedUrlIfNeeded({ + urlString, + resultsPerPage, + defaultSortMode, + sortPreferenceSource, +}: ModifyUrlInput): string | null { + const url = new URL(urlString); + const options = parseHashOptions(url.hash); + let needsRewrite = false; + const hasExplicitSort = Boolean(options.sortBy && options.sortOrder); + const shouldApplyCleanplaatsSort = sortPreferenceSource !== 'marketplace'; + + if (!Object.prototype.hasOwnProperty.call(options, 'limit') || options.limit !== resultsPerPage) { + options.limit = resultsPerPage; + needsRewrite = true; + } + + if (shouldApplyCleanplaatsSort && defaultSortMode !== 'standard') { + const sortConfig = SORT_MODES[defaultSortMode]; + if ( + sortConfig + && ( + !hasExplicitSort + || options.sortBy !== sortConfig.sortBy + || options.sortOrder !== sortConfig.sortOrder + ) + ) { + options.sortBy = sortConfig.sortBy; + options.sortOrder = sortConfig.sortOrder; + needsRewrite = true; + } + } else if (shouldApplyCleanplaatsSort && defaultSortMode === 'standard' && hasExplicitSort) { + delete options.sortBy; + delete options.sortOrder; + needsRewrite = true; + } + + if (needsRewrite) { + url.hash = buildHashOptions(options); + return url.href; + } + + return null; +} diff --git a/src/background/services/keepalive.ts b/src/background/services/keepalive.ts new file mode 100644 index 0000000..4b8461a --- /dev/null +++ b/src/background/services/keepalive.ts @@ -0,0 +1,91 @@ +import { WAKEUP_NAVIGATION_FILTERS } from '@/shared/constants/domains'; +import type { BackgroundRuntimeState } from '@/background/types'; + +type BrowserApi = typeof browser; +type WebNavigationDetails = Parameters< + BrowserApi['webNavigation']['onBeforeNavigate']['addListener'] +>[0] extends (details: infer Details) => unknown + ? Details + : never; +type AlarmDetails = Parameters[0] extends ( + alarm: infer Alarm, +) => unknown + ? Alarm + : never; + +export class KeepAliveService { + private readonly browserApi = browser; + + private alarmName = 'cleanplaats-keepalive'; + + constructor(private readonly state: BackgroundRuntimeState) {} + + setup(): void { + if (typeof browser === 'undefined') { + return; + } + + this.browserApi.alarms.create(this.alarmName, { + delayInMinutes: 2, + periodInMinutes: 2, + }); + + if (!this.browserApi.alarms.onAlarm.hasListener(this.handleAlarm)) { + this.browserApi.alarms.onAlarm.addListener(this.handleAlarm); + } + + if (this.browserApi.webNavigation?.onBeforeNavigate) { + this.browserApi.webNavigation.onBeforeNavigate.addListener( + this.handleNavigationActivity, + { url: [...WAKEUP_NAVIGATION_FILTERS] }, + ); + } + } + + resetToActiveMode = (): void => { + if (typeof browser === 'undefined') { + return; + } + + this.state.lastMarketplaceActivity = Date.now(); + this.browserApi.alarms.clear(this.alarmName); + this.browserApi.alarms.create(this.alarmName, { + delayInMinutes: 2, + periodInMinutes: 2, + }); + }; + + private handleNavigationActivity = ( + details: WebNavigationDetails, + ): void => { + if (details.frameId !== 0) { + return; + } + this.state.lastMarketplaceActivity = Date.now(); + }; + + private handleAlarm = (alarm: AlarmDetails): void => { + if (alarm.name !== this.alarmName) { + return; + } + + const minutesSinceActivity = (Date.now() - this.state.lastMarketplaceActivity) / (1000 * 60); + + if (minutesSinceActivity > 30) { + this.browserApi.alarms.clear(this.alarmName); + this.browserApi.alarms.create(this.alarmName, { + delayInMinutes: 10, + periodInMinutes: 10, + }); + return; + } + + if (minutesSinceActivity > 10) { + this.browserApi.alarms.clear(this.alarmName); + this.browserApi.alarms.create(this.alarmName, { + delayInMinutes: 5, + periodInMinutes: 5, + }); + } + }; +} diff --git a/src/background/services/listeners.ts b/src/background/services/listeners.ts new file mode 100644 index 0000000..0e99daf --- /dev/null +++ b/src/background/services/listeners.ts @@ -0,0 +1,240 @@ +import { RUNTIME_MESSAGE_ACTIONS } from '@/shared/messages/runtime'; +import { SettingsRepository } from '@/shared/storage/repository'; +import type { + BackgroundState, + BackgroundRuntime, + KeepAliveController, + SettingsSnapshot, +} from '@/background/types'; +import { refreshSettingsIntoState } from '@/background/services/settings'; +import { updateApiRequestRules } from '@/background/services/rules'; +import { + createNavigationHandlers, + type NavigationHandlers, +} from '@/background/services/navigation'; + +type BrowserApi = typeof browser; + +type StorageChange = { + oldValue?: unknown; + newValue?: unknown; +}; + +type Dependencies = { + browserApi: BrowserApi; + state: BackgroundState; + runtime: BackgroundRuntime; + keepAlive: KeepAliveController; + settingsRepository: SettingsRepository; + updateDarkModeStartupScript: (enabled: boolean) => Promise; +}; + +export type ListenerController = { + initialize: () => Promise; + registerRuntimeListeners: () => void; +}; + +const parseStoredSettings = (raw: string | undefined): SettingsSnapshot => { + const parsed = raw ? (JSON.parse(raw) as Partial) : {}; + return { + resultsPerPage: + typeof parsed.resultsPerPage === 'number' || typeof parsed.resultsPerPage === 'string' + ? String(parsed.resultsPerPage) + : '30', + defaultSortMode: + parsed.defaultSortMode === 'date_new_old' + || parsed.defaultSortMode === 'date_old_new' + || parsed.defaultSortMode === 'price_low_high' + || parsed.defaultSortMode === 'price_high_low' + || parsed.defaultSortMode === 'distance' + || parsed.defaultSortMode === 'standard' + ? parsed.defaultSortMode + : 'standard', + sortPreferenceSource: parsed.sortPreferenceSource === 'marketplace' ? 'marketplace' : 'cleanplaats', + darkMode: Boolean(parsed.darkMode), + }; +}; + +type StorageOnChangedParameters = Parameters< + BrowserApi['storage']['onChanged']['addListener'] +>[0] extends (changes: infer TChanges, areaName: infer TAreaName) => unknown + ? { changes: TChanges; areaName: TAreaName } + : { changes: Record; areaName: string }; + +const updateStateFromSnapshot = ( + state: BackgroundState, + snapshot: SettingsSnapshot, +): boolean => { + let changed = false; + + if (state.resultsPerPage !== snapshot.resultsPerPage) { + state.resultsPerPage = snapshot.resultsPerPage; + changed = true; + } + + if (state.defaultSortMode !== snapshot.defaultSortMode) { + state.defaultSortMode = snapshot.defaultSortMode; + changed = true; + } + + if (state.sortPreferenceSource !== snapshot.sortPreferenceSource) { + state.sortPreferenceSource = snapshot.sortPreferenceSource; + changed = true; + } + + return changed; +}; + +export const createListenerController = (dependencies: Dependencies): ListenerController => { + const { + browserApi, + keepAlive, + runtime, + settingsRepository, + state, + updateDarkModeStartupScript, + } = dependencies; + + let navigationHandlers: NavigationHandlers | null = null; + + const ensureNavigationHandlers = (): NavigationHandlers => { + if (navigationHandlers) { + return navigationHandlers; + } + + navigationHandlers = createNavigationHandlers({ + browserApi, + state, + }); + return navigationHandlers; + }; + + const refreshSettingsAndRules = async (): Promise => { + try { + const rawSettings = await settingsRepository.getRawSettingsValue(); + const snapshot = parseStoredSettings(rawSettings); + + const changed = updateStateFromSnapshot(state, snapshot); + await updateDarkModeStartupScript(snapshot.darkMode); + + if (changed) { + await updateApiRequestRules(state.resultsPerPage); + } + } catch (error) { + console.error('Cleanplaats: Error refreshing settings in background', error); + } + }; + + const handleStorageChanges = async ( + changes: StorageOnChangedParameters['changes'], + areaName: StorageOnChangedParameters['areaName'], + ): Promise => { + if (areaName !== 'local' || !changes.cleanplaatsSettings) { + return; + } + + try { + const snapshot = parseStoredSettings( + typeof changes.cleanplaatsSettings.newValue === 'string' + ? changes.cleanplaatsSettings.newValue + : undefined, + ); + + const changed = updateStateFromSnapshot(state, snapshot); + await updateDarkModeStartupScript(snapshot.darkMode); + + if (changed) { + await updateApiRequestRules(state.resultsPerPage); + } + } catch (error) { + console.error('Cleanplaats: Error handling storage change', error); + } + }; + + const registerMessageListener = (): void => { + browserApi.runtime.onMessage.addListener( + (message: unknown, _sender: unknown, sendResponse: (response?: unknown) => void): boolean => { + const action = (message as { action?: string })?.action; + + if (action === RUNTIME_MESSAGE_ACTIONS.keepAlive) { + keepAlive.resetToActiveMode(); + void refreshSettingsAndRules(); + sendResponse({ status: 'acknowledged', timestamp: Date.now() }); + return true; + } + + if (action === RUNTIME_MESSAGE_ACTIONS.forceRefresh) { + keepAlive.resetToActiveMode(); + void refreshSettingsAndRules(); + sendResponse({ status: 'refreshed', timestamp: Date.now() }); + return true; + } + + sendResponse({ status: 'ignored' }); + return true; + }, + ); + }; + + const registerStorageListener = (): void => { + browserApi.storage.onChanged.addListener( + (changes: Record, areaName: string) => { + void handleStorageChanges(changes, areaName); + }, + ); + }; + + const registerNavigationListeners = (): void => { + const handlers = ensureNavigationHandlers(); + const filter = { url: [...runtime.wakeupNavigationFilters] }; + + browserApi.webNavigation.onBeforeNavigate.addListener( + handlers.handleBeforeNavigate, + filter, + ); + browserApi.webNavigation.onHistoryStateUpdated.addListener( + handlers.handleHistoryStateUpdated, + filter, + ); + }; + + const setupInstallListener = (): void => { + browserApi.runtime.onInstalled.addListener(async (details: { reason: string }) => { + if (details.reason !== 'install' && details.reason !== 'update') { + return; + } + + try { + const existingRules = await browserApi.declarativeNetRequest.getDynamicRules(); + if (!existingRules.length) return; + + await browserApi.declarativeNetRequest.updateDynamicRules({ + removeRuleIds: existingRules.map((rule: { id: number }) => rule.id), + }); + } catch (error) { + console.error('Cleanplaats: Failed clearing dynamic rules on install/update', error); + } + }); + }; + + const initialize = async (): Promise => { + await refreshSettingsIntoState(state, settingsRepository); + const rawSettings = await settingsRepository.getRawSettingsValue(); + const snapshot = parseStoredSettings(rawSettings); + + await updateDarkModeStartupScript(Boolean(snapshot.darkMode)); + await updateApiRequestRules(state.resultsPerPage); + }; + + const registerRuntimeListeners = (): void => { + registerMessageListener(); + registerStorageListener(); + registerNavigationListeners(); + setupInstallListener(); + }; + + return { + initialize, + registerRuntimeListeners, + }; +}; diff --git a/src/background/services/navigation.ts b/src/background/services/navigation.ts new file mode 100644 index 0000000..dea4bd6 --- /dev/null +++ b/src/background/services/navigation.ts @@ -0,0 +1,86 @@ +import type { BackgroundState } from '@/background/types'; +import { HASH_URL_PATTERNS } from '@/shared/constants/domains'; +import { getModifiedUrlIfNeeded } from '@/background/services/hash-url'; + +type BrowserApi = typeof browser; +type BeforeNavigateDetails = Parameters< + BrowserApi['webNavigation']['onBeforeNavigate']['addListener'] +>[0] extends (details: infer Details) => unknown + ? Details + : never; +type HistoryStateUpdatedDetails = Parameters< + BrowserApi['webNavigation']['onHistoryStateUpdated']['addListener'] +>[0] extends (details: infer Details) => unknown + ? Details + : never; + +export type NavigationHandlers = { + handleBeforeNavigate: (details: BeforeNavigateDetails) => void; + handleHistoryStateUpdated: (details: HistoryStateUpdatedDetails) => void; +}; + +type Dependencies = { + browserApi: BrowserApi; + state: BackgroundState; +}; + +const isTopFrame = (details: { frameId: number; parentFrameId: number }): boolean => + details.frameId === 0 && details.parentFrameId === -1; + +const isSupportedHashNavigation = (url: string): boolean => + HASH_URL_PATTERNS.some((pattern) => url.startsWith(pattern)); + +const rewriteUrlIfNeeded = ( + browserApi: BrowserApi, + details: BeforeNavigateDetails | HistoryStateUpdatedDetails, + state: BackgroundState, +): void => { + if (!isTopFrame(details)) return; + if (!isSupportedHashNavigation(details.url)) return; + + const rewrittenUrl = getModifiedUrlIfNeeded({ + urlString: details.url, + resultsPerPage: state.resultsPerPage, + defaultSortMode: state.defaultSortMode, + sortPreferenceSource: state.sortPreferenceSource, + }); + + if (!rewrittenUrl || rewrittenUrl === details.url) { + return; + } + + void browserApi.tabs.update(details.tabId, { url: rewrittenUrl }); + + if ( + 'transitionType' in details && + typeof details.transitionType === 'undefined' + ) { + setTimeout(() => { + void browserApi.tabs + .get(details.tabId) + .then((tab: { url?: string }) => { + if (tab?.url === rewrittenUrl) { + void browserApi.tabs.reload(details.tabId); + } + }) + .catch((error: unknown) => { + console.warn('Cleanplaats: Failed checking tab before reload', error); + }); + }, 150); + } +}; + +export const createNavigationHandlers = ( + dependencies: Dependencies, +): NavigationHandlers => { + const { browserApi, state } = dependencies; + + return { + handleBeforeNavigate: (details) => { + rewriteUrlIfNeeded(browserApi, details, state); + }, + handleHistoryStateUpdated: (details) => { + rewriteUrlIfNeeded(browserApi, details, state); + }, + }; +}; diff --git a/src/background/services/rules.ts b/src/background/services/rules.ts new file mode 100644 index 0000000..730ebe2 --- /dev/null +++ b/src/background/services/rules.ts @@ -0,0 +1,97 @@ +import { API_RULE_ID, API_URL_PATTERNS } from '@/shared/constants/domains'; + +const browserApi = browser; +type DynamicRule = { + id: number; + priority: number; + action: { + type: 'redirect'; + redirect: { + transform: { + queryTransform: { + removeParams: string[]; + addOrReplaceParams: Array<{ key: string; value: string }>; + }; + }; + }; + }; + condition: { + urlFilter: string; + resourceTypes: Array<'xmlhttprequest'>; + }; +}; + +export function shouldModifyApiRules(resultsPerPage: string): boolean { + return resultsPerPage !== '30'; +} + +function buildUrlFilter(patterns: readonly string[]): string { + return patterns.map((pattern) => pattern.replace('*', '')).join('|'); +} + +export function buildDynamicRules(resultsPerPage: string): DynamicRule[] { + if (!shouldModifyApiRules(resultsPerPage)) { + return []; + } + + const rule: DynamicRule = { + id: API_RULE_ID, + priority: 1, + action: { + type: 'redirect', + redirect: { + transform: { + queryTransform: { + removeParams: [], + addOrReplaceParams: [], + }, + }, + }, + }, + condition: { + urlFilter: buildUrlFilter(API_URL_PATTERNS), + resourceTypes: ['xmlhttprequest'], + }, + }; + + rule.action.redirect.transform.queryTransform.addOrReplaceParams.push({ + key: 'limit', + value: resultsPerPage, + }); + + return [rule]; +} + +export async function updateApiRequestRules(resultsPerPage: string): Promise { + const removeRuleIds = [API_RULE_ID]; + const addRules = buildDynamicRules(resultsPerPage); + + try { + await browserApi.declarativeNetRequest.updateDynamicRules({ + removeRuleIds, + addRules, + } as never); + console.info('Cleanplaats: Dynamic API rules updated', { + resultsPerPage, + ruleCount: addRules.length, + }); + } catch (error) { + console.error('Cleanplaats: Failed to update dynamic API rules', { + resultsPerPage, + error, + }); + } +} + +export async function clearAllDynamicRules(): Promise { + const existingRules = await browserApi.declarativeNetRequest.getDynamicRules(); + const removeRuleIds = existingRules.map((rule: { id: number }) => rule.id); + + if (!removeRuleIds.length) { + return; + } + + await browserApi.declarativeNetRequest.updateDynamicRules({ + removeRuleIds, + } as never); +} diff --git a/src/background/services/settings.ts b/src/background/services/settings.ts new file mode 100644 index 0000000..792bf3f --- /dev/null +++ b/src/background/services/settings.ts @@ -0,0 +1,27 @@ +import { SettingsRepository } from '@/shared/storage/repository'; +import type { CleanplaatsSettings } from '@/shared/types/state'; +import { DEFAULT_SETTINGS } from '@/shared/constants/settings'; +import type { BackgroundState } from '@/background/types'; + +export async function loadInitialSettings( + repository: SettingsRepository, +): Promise { + try { + const { settings } = await repository.load(undefined); + return settings; + } catch (error) { + console.error('Cleanplaats: Failed to load initial background settings', error); + return { ...DEFAULT_SETTINGS }; + } +} + +export async function refreshSettingsIntoState( + state: BackgroundState, + repository: SettingsRepository, +): Promise { + const settings = await loadInitialSettings(repository); + state.resultsPerPage = String(settings.resultsPerPage); + state.defaultSortMode = settings.defaultSortMode; + state.sortPreferenceSource = settings.sortPreferenceSource; +} + diff --git a/src/background/types.ts b/src/background/types.ts new file mode 100644 index 0000000..a997152 --- /dev/null +++ b/src/background/types.ts @@ -0,0 +1,41 @@ +import type { CleanplaatsSortMode, SortPreferenceSource } from '@/shared/types/state'; +import type { WAKEUP_NAVIGATION_FILTERS } from '@/shared/constants/domains'; + +export type BackgroundState = { + resultsPerPage: string; + defaultSortMode: CleanplaatsSortMode; + sortPreferenceSource: SortPreferenceSource; +}; + +export type BackgroundRuntime = { + wakeupNavigationFilters: typeof WAKEUP_NAVIGATION_FILTERS; +}; + +export type BackgroundRuntimeState = BackgroundState & { + lastMarketplaceActivity: number; + wakeupNavigationFilters: typeof WAKEUP_NAVIGATION_FILTERS; +}; + +export type KeepAliveController = { + setup: () => void; + resetToActiveMode: () => void; +}; + +export type SettingsSnapshot = { + resultsPerPage: string; + defaultSortMode: CleanplaatsSortMode; + sortPreferenceSource: SortPreferenceSource; + darkMode: boolean; +}; + +export const createBackgroundRuntimeState = (): BackgroundRuntimeState => ({ + resultsPerPage: '30', + defaultSortMode: 'standard', + sortPreferenceSource: 'cleanplaats', + lastMarketplaceActivity: Date.now(), + wakeupNavigationFilters: [ + { hostSuffix: 'marktplaats.nl' }, + { hostSuffix: '2dehands.be' }, + { hostSuffix: '2ememain.be' }, + ] as const, +}); diff --git a/src/content/bootstrap.ts b/src/content/bootstrap.ts new file mode 100644 index 0000000..dbea83a --- /dev/null +++ b/src/content/bootstrap.ts @@ -0,0 +1,117 @@ +import { bindBlacklistRepository, injectBlacklistButtons } from '@/content/services/blacklist-inject'; +import { wakeUpBackground, setupPeriodicWakeUp } from '@/content/services/background-wake'; +import { + performCleanup, + performInitialCleanup, + removePersistentGoogleAds, + resetPreviousChanges, +} from '@/content/services/cleanup'; +import { + bindNotificationsRepository, + checkForEmptyPage, + getExtensionVersion, + showOnboarding, + scheduleSellerAgeWarningCheck, +} from '@/content/services/notifications'; +import { setupAllObservers } from '@/content/services/observers'; +import { setupMarketplaceSortSync } from '@/content/services/sort-sync'; +import { applyDarkModeToDocument, setupWebchatCollisionAvoidance } from '@/content/services/theme'; +import { + getState, + loadInitialState, + patchSettings, + registerSettingsStorageSync, + saveSettings, +} from '@/content/runtime/store'; +import { mountControlPanel } from '@/content/panel/mount'; +import { SettingsRepository } from '@/shared/storage/repository'; + +const applyDarkModeFromSync = (enabled: boolean): void => { + patchSettings({ darkMode: enabled }); + const panel = document.getElementById('cleanplaats-panel'); + applyDarkModeToDocument(enabled, panel, getState().settings); +}; + +export const initCleanplaats = async (): Promise => { + console.log('Cleanplaats: Initializing...'); + + const repository = new SettingsRepository(); + bindNotificationsRepository(repository); + bindBlacklistRepository(repository); + + await loadInitialState(repository); + + applyDarkModeToDocument(getState().settings.darkMode, null, getState().settings); + + registerSettingsStorageSync(applyDarkModeFromSync); + + wakeUpBackground(); + setupPeriodicWakeUp(); + + const currentVersion = getExtensionVersion(); + + mountControlPanel({ + repository, + onMounted: (panel) => { + applyDarkModeToDocument(getState().settings.darkMode, panel, getState().settings); + }, + }); + + const stateAfterMount = getState(); + const { observer: webchatObserver } = setupWebchatCollisionAvoidance(stateAfterMount.observers.webchat); + stateAfterMount.observers.webchat = webchatObserver; + + setupAllObservers(); + setupMarketplaceSortSync(repository); + + void saveSettings(repository) + .then(() => { + applyDarkModeToDocument( + getState().settings.darkMode, + document.getElementById('cleanplaats-panel'), + getState().settings, + ); + resetPreviousChanges(getState()); + performCleanup(getState()); + }) + .catch((error) => { + console.error('Cleanplaats: Failed to apply settings', error); + }); + + scheduleSellerAgeWarningCheck({ resetState: true }); + showOnboarding(currentVersion); + + const tryCleanup = (): void => { + if (document.querySelector('.hz-Listing') || document.querySelector('#adsense-container')) { + performInitialCleanup(getState()); + injectBlacklistButtons(); + setTimeout(checkForEmptyPage, 300); + + let attempts = 0; + const maxAttempts = 10; + const interval = window.setInterval(() => { + removePersistentGoogleAds(getState()); + + document.querySelectorAll('#banner-top-dt').forEach((banner) => { + if (banner.parentNode) { + banner.parentNode.removeChild(banner); + } + }); + + document.body.offsetHeight; + attempts++; + if ( + (!document.querySelector('#banner-right-container') + && !document.querySelector('#banner-top-dt')) + || attempts >= maxAttempts + ) { + clearInterval(interval); + } + }, 80); + } else { + setTimeout(tryCleanup, 60); + } + }; + + tryCleanup(); +}; diff --git a/src/content/constants/ui.ts b/src/content/constants/ui.ts new file mode 100644 index 0000000..98ca46d --- /dev/null +++ b/src/content/constants/ui.ts @@ -0,0 +1,5 @@ +export const CLEANPLAATS_DARK_MODE_CLASS = 'cleanplaats-dark-mode'; +export const CLEANPLAATS_TWH_SITE_CLASS = 'cleanplaats-site-twh'; +export const CLEANPLAATS_FLOATING_OFFSET_VAR = '--cleanplaats-floating-offset'; +export const CLEANPLAATS_DARK_LOGO_PATH = 'icons/marktplaats-logo-darkmode.svg'; +export const MARKTPLAATS_DESKTOP_LOGO_MATCH = /\/tenant--nlnl(?:\.[a-z0-9]+)?\.svg$/i; diff --git a/src/content/locale/panel-text.ts b/src/content/locale/panel-text.ts new file mode 100644 index 0000000..4223ea7 --- /dev/null +++ b/src/content/locale/panel-text.ts @@ -0,0 +1,189 @@ +import type { CleanplaatsLocaleText } from '@/shared/types/state'; +import { is2ememainLocale } from '@/content/utils/site'; + +export const getPanelLocaleText = (): CleanplaatsLocaleText => { + if (is2ememainLocale()) { + return { + feedbackLabel: 'Retour', + feedbackText: 'Issues GitHub', + feedbackAriaLabel: + 'Ouvrir GitHub issues pour les demandes de fonctionnalité, modifications et bugs', + reviewAriaLabel: (linkLabel) => `Laisser un avis sur Cleanplaats sur ${linkLabel}`, + supportTitle: 'Soutenir Cleanplaats', + supportButton: 'Soutenir Cleanplaats', + optionsTitle: 'Options de filtrage', + topAdLabel: 'Pub au top', + topAdTooltip: "Masque les annonces marquées 'Pub au top'", + topAdTooltipTwh: "Masque les annonces marquées 'Pub au top'", + dagtoppersLabel: 'Tops du jour', + dagtoppersTooltip: "Supprime les annonces marquées 'Top du jour'", + promotedListingsLabel: 'Annonces professionnelles', + promotedListingsTooltip: + "Masque les annonces de boutiques et d'entreprises, y compris sur la page d'accueil dans 'Pour vous' et 'Près de chez vous'", + stickersLabel: 'Autocollants promotionnels', + stickersTooltip: 'Supprime les annonces avec des autocollants promotionnels', + reservedLabel: 'Réservées', + reservedTooltip: "Masque les annonces marquées 'Réservé'", + favoriteRelatedAdsLabel: 'Annonces similaires dans les favoris', + favoriteRelatedAdsTooltip: + 'Masque la liste des annonces similaires affichée dans les favoris', + sellerAgeWarningLabel: 'Alerte compte vendeur récent', + sellerAgeWarningTooltip: + "Affiche un avertissement sur une page d'annonce si le compte vendeur est plus récent que votre seuil.", + sellerAgeWarningThresholdLabel: 'Avertir en dessous de', + sellerAgeWarningThresholdValueAriaLabel: 'Valeur seuil pour le compte vendeur récent', + sellerAgeWarningThresholdUnitAriaLabel: 'Unité seuil pour le compte vendeur récent', + sellerAgeWarningThresholdUnits: { + days: 'jours', + weeks: 'semaines', + months: 'mois', + years: 'ans', + }, + sellerAgeWarningToastTitle: 'Compte vendeur récent', + sellerAgeWarningToastMessage: (sellerName, sellerAgeText, thresholdLabel) => + `${sellerName} est sur la plateforme depuis ${sellerAgeText}. Votre seuil est ${thresholdLabel}.`, + preferencesLabel: 'Préférences', + backLabel: '← Retour', + preferencesIntro: '', + darkModeLabel: 'Mode sombre', + darkModeTooltip: + 'Active un thème sombre pour 2ememain et le panneau Cleanplaats. Expérimental: si la visibilité pose problème, désactivez-le.', + resultsPerPageLabel: 'Résultats par page :', + defaultSortLabel: 'Tri par défaut :', + sortOptions: { + standard: 'Standard', + date_new_old: 'Plus récentes', + date_old_new: 'Plus anciennes', + price_low_high: 'Prix ↑', + price_high_low: 'Prix ↓', + distance: 'Distance', + }, + statsTitle: 'Éléments supprimés', + statsTop: 'Top :', + statsDagtoppers: 'Tops du jour :', + statsBusiness: 'Professionnel :', + statsStickers: 'Autocollants :', + statsOther: 'Autres :', + statsTotal: 'Total :', + manageTerms: 'Gérer les termes masqués dans le titre', + manageSellers: 'Gérer les vendeurs masqués', + termsModalTitle: 'Termes masqués', + termsEmpty: 'Aucun terme ajouté', + hiddenButton: 'Masqué', + unhideButton: 'Afficher', + termInputPlaceholder: 'Saisissez un terme', + termInputHelp: 'Les annonces sont masquées si ce terme apparaît dans le titre.', + addButton: 'Ajouter', + closeButton: 'Fermer', + sellersModalTitle: 'Vendeurs masqués', + sellersEmpty: 'Aucun vendeur ajouté', + sellerInputPlaceholder: 'ex. Catawiki', + sellerInputHelp: + 'Vous voulez ajouter plusieurs noms à la fois ? Séparez-les avec des virgules ou des points-virgules.', + hideSellerButton: 'Masquer le vendeur', + hiddenSellerButton: 'Vendeur masqué', + hideSellerButtonAriaLabel: 'Masquer ce vendeur', + blacklistToastHint: 'Gérez les vendeurs masqués via le panneau', + blacklistToastHiddenSuffix: 'masqué', + blacklistToastHiddenPluralSuffix: 'vendeurs masqués', + blacklistToastShownSuffix: "n'est plus masqué", + blacklistToastShownHint: 'Ce vendeur est à nouveau visible dans les résultats', + termToastHidden: (term) => + `Toutes les annonces contenant le terme '${term}' sont désormais masquées.`, + termToastShown: (term) => + `Les annonces contenant le terme '${term}' sont à nouveau affichées.`, + }; + } + + const is2dehands = location.hostname.includes('2dehands.be'); + + return { + feedbackLabel: 'Feedback', + feedbackText: 'GitHub issues', + feedbackAriaLabel: 'Open GitHub issues voor functieverzoeken, wijzigingen en bugs', + reviewAriaLabel: (linkLabel) => `Laat een review achter voor Cleanplaats op ${linkLabel}`, + supportTitle: 'Steun Cleanplaats met een kleine bijdrage', + supportButton: 'Steun Cleanplaats', + optionsTitle: 'Filteropties', + topAdLabel: 'Topadvertenties', + topAdTooltip: is2dehands + ? "Verbergt 'Topadvertentie' en 'Topzoekertje' listings" + : "Verwijdert betaalde 'Topadvertentie' advertenties", + topAdTooltipTwh: "Verbergt 'Topadvertentie' en 'Topzoekertje' listings", + dagtoppersLabel: 'Dagtoppers', + dagtoppersTooltip: "Verwijdert 'Dagtopper' advertenties", + promotedListingsLabel: 'Bedrijfsadvertenties', + promotedListingsTooltip: + "Verbergt advertenties van bedrijven en winkels, zoals Catawiki, ook op de homepage bij 'Voor jou' en 'In je buurt'", + stickersLabel: 'Opvalstickers', + stickersTooltip: 'Verwijdert advertenties met opvalstickers', + reservedLabel: 'Gereserveerde', + reservedTooltip: "Verbergt advertenties die 'Gereserveerd' zijn", + favoriteRelatedAdsLabel: 'Gerelateerde advertenties bij favorieten', + favoriteRelatedAdsTooltip: + 'Verbergt het blok met gerelateerde advertenties op de favorietenpagina', + sellerAgeWarningLabel: 'Waarschuwing voor nieuwe verkoperaccounts', + sellerAgeWarningTooltip: + 'Toont op een advertentiepagina een waarschuwing als het verkopersaccount jonger is dan jouw ingestelde grens.', + sellerAgeWarningThresholdLabel: 'Waarschuwen onder', + sellerAgeWarningThresholdValueAriaLabel: 'Drempelwaarde voor waarschuwing nieuwe verkoperaccounts', + sellerAgeWarningThresholdUnitAriaLabel: 'Drempeleenheid voor waarschuwing nieuwe verkoperaccounts', + sellerAgeWarningThresholdUnits: { + days: 'dagen', + weeks: 'weken', + months: 'maanden', + years: 'jaar', + }, + sellerAgeWarningToastTitle: 'Nieuw verkoperaccount', + sellerAgeWarningToastMessage: (sellerName, sellerAgeText, thresholdLabel) => + `${sellerName} zit pas ${sellerAgeText}. Jouw grens staat op ${thresholdLabel}. Verberg verkoper via de knop onder de naam.`, + preferencesLabel: 'Voorkeuren', + backLabel: '← Terug', + preferencesIntro: '', + darkModeLabel: 'Donkere modus', + darkModeTooltip: + 'Schakelt een donker thema in voor Marktplaats en het Cleanplaats-paneel. Experimenteel: werkt meestal goed, maar zet het uit als iets slecht leesbaar is.', + resultsPerPageLabel: 'Resultaten per pagina:', + defaultSortLabel: 'Standaard sortering:', + sortOptions: { + standard: 'Standaard', + date_new_old: 'Nieuw eerst', + date_old_new: 'Oud eerst', + price_low_high: 'Prijs ↑', + price_high_low: 'Prijs ↓', + distance: 'Afstand', + }, + statsTitle: 'Verwijderde items', + statsTop: 'Top:', + statsDagtoppers: 'Dagtoppers:', + statsBusiness: 'Bedrijf:', + statsStickers: 'Stickers:', + statsOther: 'Overig:', + statsTotal: 'Totaal:', + manageTerms: 'Beheer blacklist-termen in titels', + manageSellers: 'Beheer verborgen verkopers', + termsModalTitle: 'Blacklist termen', + termsEmpty: 'Geen termen toegevoegd', + hiddenButton: 'Verborgen', + unhideButton: 'Opheffen', + termInputPlaceholder: 'Voer een term in', + termInputHelp: 'Advertenties worden verborgen als deze term in de titel voorkomt.', + addButton: 'Toevoegen', + closeButton: 'Sluiten', + sellersModalTitle: 'Verborgen verkopers', + sellersEmpty: 'Geen verkopers toegevoegd', + sellerInputPlaceholder: 'bijv. Catawiki', + sellerInputHelp: + "Wil je meerdere namen tegelijk toevoegen? Scheid ze dan met komma's of puntkomma's.", + hideSellerButton: 'Verkoper verbergen', + hiddenSellerButton: 'Verkoper verborgen', + hideSellerButtonAriaLabel: 'Verberg deze verkoper', + blacklistToastHint: 'Beheer verborgen verkopers via het paneel', + blacklistToastHiddenSuffix: 'verborgen', + blacklistToastHiddenPluralSuffix: 'verkopers verborgen', + blacklistToastShownSuffix: 'niet meer verborgen', + blacklistToastShownHint: 'Deze verkoper is weer zichtbaar in de resultaten', + termToastHidden: (term) => `Alle advertenties met de term '${term}' zijn nu verborgen.`, + termToastShown: (term) => `Advertenties met de term '${term}' worden weer getoond.`, + }; +}; diff --git a/src/content/panel/CleanplaatsPanel.tsx b/src/content/panel/CleanplaatsPanel.tsx new file mode 100644 index 0000000..a83b95d --- /dev/null +++ b/src/content/panel/CleanplaatsPanel.tsx @@ -0,0 +1,919 @@ +import { + useCallback, + useEffect, + useLayoutEffect, + useRef, + useState, + type FormEvent, +} from 'react'; +import { getPanelLocaleText } from '@/content/locale/panel-text'; +import { getState, patchPanelState, patchSettings, saveSettings } from '@/content/runtime/store'; +import { useCleanplaatsStore } from '@/content/panel/use-cleanplaats-store'; +import { setActivePanelViewDom } from '@/content/panel/panel-view'; +import { + addSellersToBlacklist, + removeSellerFromBlacklist, +} from '@/content/services/blacklist-inject'; +import { + performCleanup, + resetPreviousChanges, +} from '@/content/services/cleanup'; +import { unhideListingsByTerm } from '@/content/services/blacklist-terms'; +import { + applyDarkModeToDocument, + updateCollapsedPanelIcon, +} from '@/content/services/theme'; +import { + checkForEmptyPage, + clearBubbleNotification, + scheduleSellerAgeWarningCheck, + showBlacklistTermToast, + showUnblacklistTermToast, + showUnblacklistToast, +} from '@/content/services/notifications'; +import { wakeUpBackground } from '@/content/services/background-wake'; +import { getReviewCTAConfig, isSearchResultsPage } from '@/content/utils/site'; +import type { CleanplaatsPanelState, CleanplaatsSettings, SortMode } from '@/shared/types/state'; +import type { SettingsRepository } from '@/shared/storage/repository'; +import { CLEANPLAATS_DARK_MODE_CLASS } from '@/content/constants/ui'; + +type Props = { + repository: SettingsRepository; + onMounted?: (panel: HTMLDivElement) => void; +}; + +const SORT_MODES: SortMode[] = [ + 'standard', + 'date_new_old', + 'date_old_new', + 'price_low_high', + 'price_high_low', + 'distance', +]; + +export function CleanplaatsPanel({ repository, onMounted }: Props) { + const { settings, panelState, featureFlags, stats } = useCleanplaatsStore(); + const panelRef = useRef(null); + const filtersRef = useRef(null); + const preferencesRef = useRef(null); + const viewsRef = useRef(null); + const tooltipRef = useRef(null); + + const [termsOpen, setTermsOpen] = useState(false); + const [sellersOpen, setSellersOpen] = useState(false); + const [termInput, setTermInput] = useState(''); + const [sellerInput, setSellerInput] = useState(''); + + const panelText = getPanelLocaleText(); + const reviewCTA = getReviewCTAConfig(); + + useLayoutEffect(() => { + if (panelRef.current) { + onMounted?.(panelRef.current); + } + }, [onMounted]); + + useEffect(() => { + const panel = panelRef.current; + const tooltip = tooltipRef.current; + if (!panel || !tooltip) return; + + const showTip = (text: string, icon: HTMLElement): void => { + tooltip.textContent = text; + tooltip.style.display = 'block'; + const rect = icon.getBoundingClientRect(); + const tooltipRect = tooltip.getBoundingClientRect(); + let left = rect.left + rect.width / 2 - tooltipRect.width / 2; + left = Math.max(8, Math.min(left, window.innerWidth - tooltipRect.width - 8)); + let top = rect.top - tooltipRect.height - 8; + if (top < 8) { + top = rect.bottom + 8; + } + tooltip.style.left = `${left}px`; + tooltip.style.top = `${top}px`; + tooltip.style.opacity = '1'; + }; + + const hideTip = (): void => { + tooltip.style.opacity = '0'; + tooltip.style.display = 'none'; + }; + + const onEnter = (e: MouseEvent): void => { + const target = e.target as HTMLElement | null; + const icon = target?.closest?.('.cleanplaats-tooltip-icon') as HTMLElement | null; + if (!icon) return; + const text = icon.getAttribute('data-tooltip'); + if (!text) return; + showTip(text, icon); + }; + + const onLeave = (): void => { + hideTip(); + }; + + panel.addEventListener('mouseenter', onEnter, true); + panel.addEventListener('mouseleave', onLeave, true); + return () => { + panel.removeEventListener('mouseenter', onEnter, true); + panel.removeEventListener('mouseleave', onLeave, true); + }; + }, []); + + const persist = useCallback(async (): Promise => { + await saveSettings(repository); + }, [repository]); + + const setView = useCallback( + (view: CleanplaatsPanelState['activeView'], animated = true): void => { + const current = getState().panelState.activeView; + patchPanelState({ activeView: view }); + setActivePanelViewDom({ + activeView: current, + nextView: view, + filtersView: filtersRef.current, + preferencesView: preferencesRef.current, + viewsContainer: viewsRef.current, + animated, + onComplete: () => { + void persist(); + }, + }); + }, + [persist], + ); + + useEffect(() => { + const panel = panelRef.current; + if (!panel) return; + const collapsed = featureFlags.autoCollapse || panelState.isCollapsed; + panel.classList.toggle('collapsed', collapsed); + if (collapsed) { + panel.classList.add('collapsed-ready'); + updateCollapsedPanelIcon(panel, settings); + } else { + panel.classList.remove('collapsed-ready'); + updateCollapsedPanelIcon(panel, settings); + } + }, [featureFlags.autoCollapse, panelState.isCollapsed, settings]); + + const handlePanelClick = (e: React.MouseEvent): void => { + const panel = panelRef.current; + if (!panel || panel.classList.contains('animating')) return; + + const isPanelCollapsed = panel.classList.contains('collapsed'); + let canToggle = false; + + if (isPanelCollapsed) { + if (e.target === panel) { + canToggle = true; + } + } else { + const header = document.getElementById('cleanplaats-header'); + const target = e.target as Node; + if (header?.contains(target)) { + if ( + (e.target as HTMLElement).id === 'cleanplaats-toggle' + || !(e.target as HTMLElement).closest?.('input, button, a, .cleanplaats-tooltip, .cleanplaats-switch') + ) { + canToggle = true; + } + } + } + + if (!canToggle) return; + + e.preventDefault(); + e.stopPropagation(); + + setTermsOpen(false); + setSellersOpen(false); + + panel.classList.remove('collapsed-ready'); + updateCollapsedPanelIcon(panel, settings); + panel.classList.add('animating'); + + const nextCollapsed = !getState().panelState.isCollapsed; + patchPanelState({ isCollapsed: nextCollapsed }); + panel.classList.toggle('collapsed', nextCollapsed); + + const toggle = document.getElementById('cleanplaats-toggle'); + if (toggle) { + toggle.textContent = nextCollapsed ? '▲' : '▼'; + } + + const fallbackTimeout = window.setTimeout(() => { + panel.classList.remove('animating'); + if (nextCollapsed) { + panel.classList.add('collapsed-ready'); + updateCollapsedPanelIcon(panel, getState().settings); + } + }, 600); + + const onTransitionEnd = (event: TransitionEvent): void => { + if (nextCollapsed && event.propertyName === 'width') { + panel.classList.add('collapsed-ready'); + updateCollapsedPanelIcon(panel, getState().settings); + panel.classList.remove('animating'); + panel.removeEventListener('transitionend', onTransitionEnd); + clearTimeout(fallbackTimeout); + } else if (!nextCollapsed && event.propertyName === 'max-height') { + panel.classList.remove('animating'); + updateCollapsedPanelIcon(panel, getState().settings); + panel.removeEventListener('transitionend', onTransitionEnd); + clearTimeout(fallbackTimeout); + } + }; + panel.addEventListener('transitionend', onTransitionEnd); + + void persist(); + }; + + const handleThemeToggle = (): void => { + const next = !settings.darkMode; + patchSettings({ darkMode: next }); + applyDarkModeToDocument(next, panelRef.current, getState().settings); + void persist().catch((error) => { + console.error('Cleanplaats: Failed to apply dark mode', error); + patchSettings({ darkMode: !next }); + applyDarkModeToDocument(!next, panelRef.current, getState().settings); + }); + }; + + const applyFilterSetting = async (key: keyof CleanplaatsSettings, value: boolean): Promise => { + patchSettings({ [key]: value } as Partial); + if (key === 'sellerAgeWarningEnabled') { + getState().runtime.lastSellerAgeWarningKey = ''; + } + try { + await persist(); + if (key === 'sellerAgeWarningEnabled') { + scheduleSellerAgeWarningCheck({ force: true }); + return; + } + resetPreviousChanges(getState()); + performCleanup(getState()); + clearBubbleNotification(); + checkForEmptyPage(); + } catch (error) { + console.error('Cleanplaats: Failed to apply setting', error); + } + }; + + const handleCheckbox = + (key: keyof CleanplaatsSettings) => (e: React.ChangeEvent) => { + void applyFilterSetting(key, e.target.checked); + }; + + const handleResultsChange = (e: React.ChangeEvent): void => { + const value = Number.parseInt(e.target.value, 10) as CleanplaatsSettings['resultsPerPage']; + patchSettings({ resultsPerPage: value }); + wakeUpBackground(); + void persist().then(() => { + if (isSearchResultsPage()) { + setTimeout(() => window.location.reload(), 1000); + } + }); + }; + + const handleSortChange = (e: React.ChangeEvent): void => { + const value = e.target.value as SortMode; + patchSettings({ defaultSortMode: value, sortPreferenceSource: 'cleanplaats' }); + wakeUpBackground(); + void persist().then(() => { + if (isSearchResultsPage()) { + setTimeout(() => window.location.reload(), 1000); + } + }); + }; + + const handleThresholdChange = (): void => { + const valueInput = document.getElementById( + 'cleanplaats-seller-age-threshold-value', + ) as HTMLInputElement | null; + const unitSelect = document.getElementById( + 'cleanplaats-seller-age-threshold-unit', + ) as HTMLSelectElement | null; + if (!valueInput || !unitSelect) return; + + const nextValue = Math.min(99, Math.max(1, Number.parseInt(valueInput.value, 10) || 1)); + valueInput.value = String(nextValue); + patchSettings({ + sellerAgeWarningThresholdValue: nextValue, + sellerAgeWarningThresholdUnit: unitSelect.value as CleanplaatsSettings['sellerAgeWarningThresholdUnit'], + }); + getState().runtime.lastSellerAgeWarningKey = ''; + void persist().then(() => { + scheduleSellerAgeWarningCheck({ force: true }); + }); + }; + + const handleThresholdInput = (e: React.FormEvent): void => { + const raw = String(e.currentTarget.value || '').replace(/\D/g, ''); + if (!raw) return; + const nextValue = Math.min(99, Math.max(1, Number.parseInt(raw, 10) || 1)); + e.currentTarget.value = String(nextValue); + patchSettings({ sellerAgeWarningThresholdValue: nextValue }); + getState().runtime.lastSellerAgeWarningKey = ''; + void persist(); + }; + + const addTerm = (e?: FormEvent): void => { + e?.preventDefault(); + const term = termInput.trim(); + if (!term || settings.blacklistedTerms.includes(term)) return; + patchSettings({ blacklistedTerms: [...settings.blacklistedTerms, term] }); + setTermInput(''); + void persist().then(() => { + performCleanup(getState()); + showBlacklistTermToast(term); + }); + }; + + const removeTerm = (term: string): void => { + patchSettings({ + blacklistedTerms: settings.blacklistedTerms.filter((t) => t !== term), + }); + void persist().then(() => { + unhideListingsByTerm(term); + performCleanup(getState()); + showUnblacklistTermToast(term); + }); + }; + + const addSellersFromInput = (): void => { + const names = sellerInput + .split(/[;,]+/) + .map((n) => n.trim()) + .filter(Boolean); + if (names.length === 0) return; + setSellerInput(''); + void addSellersToBlacklist(names); + }; + + const removeSeller = (sellerName: string): void => { + showUnblacklistToast(sellerName); + void removeSellerFromBlacklist(sellerName); + }; + + const logoUrl = browser.runtime.getURL('icons/icon128.png'); + + return ( + <> +
+
+
+

+ + Cleanplaats +

+
+ + +
+
+ +
+ +
+
+
+ { + e.stopPropagation(); + }} + > + + {panelText.supportButton} + +
+
{panelText.optionsTitle}
+ + {( + [ + ['removeTopAds', panelText.topAdLabel, panelText.topAdTooltip], + ['removeDagtoppers', panelText.dagtoppersLabel, panelText.dagtoppersTooltip], + ['removePromotedListings', panelText.promotedListingsLabel, panelText.promotedListingsTooltip], + ['removeOpvalStickers', panelText.stickersLabel, panelText.stickersTooltip], + ['removeReservedListings', panelText.reservedLabel, panelText.reservedTooltip], + ] as const + ).map(([id, label, tip]) => ( +
+ + +
+ ))} + + + +
+ + +
+ +
+ + +
+
+ + {featureFlags.showStats ? ( +
+
{panelText.statsTitle}
+
+ {panelText.statsTop} + + {stats.topAdsRemoved} + +
+
+ {panelText.statsDagtoppers} + + {stats.dagtoppersRemoved} + +
+
+ {panelText.statsBusiness} + + {stats.promotedListingsRemoved} + +
+
+ {panelText.statsStickers} + + {stats.opvalStickersRemoved} + +
+
+ {panelText.statsOther} + + {stats.otherAdsRemoved} + +
+
+ {panelText.statsTotal} + + {stats.totalRemoved} + +
+
+ ) : null} + + + +
+ +
+
+
+ +
{panelText.preferencesLabel}
+
+
+
+
+ + +
+ +
+
+ + +
+
+ + e.stopPropagation()} + /> + +
+
+
+
+
+ +
e.stopPropagation()} + > + {sellersOpen ? ( +
+

{panelText.sellersModalTitle}

+
    + {settings.blacklistedSellers.length === 0 ? ( +
  • + {panelText.sellersEmpty} +
  • + ) : ( + settings.blacklistedSellers.map((seller) => ( +
  • + {seller} + +
  • + )) + )} +
+
+ setSellerInput(e.target.value)} + onKeyDown={(e) => { + if (e.key === 'Enter') { + e.preventDefault(); + addSellersFromInput(); + } + }} + /> + +
+
{panelText.sellerInputHelp}
+ +
+ ) : null} +
+ +
e.stopPropagation()} + > + {termsOpen ? ( +
+

{panelText.termsModalTitle}

+
    + {settings.blacklistedTerms.length === 0 ? ( +
  • + {panelText.termsEmpty} +
  • + ) : ( + settings.blacklistedTerms.map((term) => ( +
  • + {term} + +
  • + )) + )} +
+
+ setTermInput(e.target.value)} + /> + +
+
{panelText.termInputHelp}
+ +
+ ) : null} +
+
+
+ +
+ + ); +} diff --git a/src/content/panel/mount.tsx b/src/content/panel/mount.tsx new file mode 100644 index 0000000..b8d7135 --- /dev/null +++ b/src/content/panel/mount.tsx @@ -0,0 +1,36 @@ +import { createRoot, type Root } from 'react-dom/client'; +import { createPortal } from 'react-dom'; +import { CleanplaatsPanel } from '@/content/panel/CleanplaatsPanel'; +import type { SettingsRepository } from '@/shared/storage/repository'; + +import '@/styles/dark-mode.css'; + +export type MountOptions = { + repository: SettingsRepository; + onMounted?: (panel: HTMLDivElement) => void; +}; + +let root: Root | null = null; + +export const mountControlPanel = (options: MountOptions): void => { + if (document.getElementById('cleanplaats-panel')) { + return; + } + + const container = document.createElement('div'); + container.id = 'cleanplaats-panel-root'; + document.body.appendChild(container); + + root = createRoot(container); + const panelProps = + options.onMounted === undefined + ? { repository: options.repository } + : { repository: options.repository, onMounted: options.onMounted }; + root.render(createPortal(, document.body)); +}; + +export const unmountControlPanel = (): void => { + root?.unmount(); + root = null; + document.getElementById('cleanplaats-panel-root')?.remove(); +}; diff --git a/src/content/panel/panel-view.ts b/src/content/panel/panel-view.ts new file mode 100644 index 0000000..a024430 --- /dev/null +++ b/src/content/panel/panel-view.ts @@ -0,0 +1,155 @@ +import type { CleanplaatsPanelState } from '@/shared/types/state'; + +type PanelView = CleanplaatsPanelState['activeView']; + +const clearPanelViewAnimationState = (viewElement: HTMLElement | null): void => { + if (!viewElement) { + return; + } + viewElement.classList.remove( + 'active', + 'is-entering', + 'is-leaving', + 'is-entering-down', + 'is-entering-up', + 'is-leaving-down', + 'is-leaving-up', + ); +}; + +const getPanelViewDirection = (fromView: PanelView, toView: PanelView): 'up' | 'down' | 'none' => { + if (fromView === toView) { + return 'none'; + } + return toView === 'preferences' ? 'down' : 'up'; +}; + +const syncPanelViewContainerHeight = (viewsContainer: HTMLElement | null, activeView: HTMLElement | null): void => { + if (!viewsContainer || !activeView) { + return; + } + viewsContainer.style.height = `${activeView.scrollHeight}px`; +}; + +const measurePanelViewHeight = ( + viewElement: HTMLElement, + viewsContainer: HTMLElement, +): number => { + const clone = viewElement.cloneNode(true) as HTMLElement; + const measurementWrapper = document.createElement('div'); + clone.removeAttribute('id'); + clone.querySelectorAll('[id]').forEach((element) => { + element.removeAttribute('id'); + }); + + clearPanelViewAnimationState(clone); + clone.classList.add('active'); + clone.setAttribute('aria-hidden', 'true'); + clone.style.position = 'relative'; + clone.style.visibility = 'hidden'; + clone.style.pointerEvents = 'none'; + clone.style.opacity = '0'; + clone.style.transform = 'translateY(0)'; + + measurementWrapper.setAttribute('aria-hidden', 'true'); + measurementWrapper.style.position = 'absolute'; + measurementWrapper.style.top = '0'; + measurementWrapper.style.right = '0'; + measurementWrapper.style.left = '0'; + measurementWrapper.style.visibility = 'hidden'; + measurementWrapper.style.pointerEvents = 'none'; + measurementWrapper.style.opacity = '0'; + measurementWrapper.style.overflow = 'visible'; + + measurementWrapper.appendChild(clone); + viewsContainer.appendChild(measurementWrapper); + const height = clone.getBoundingClientRect().height; + measurementWrapper.remove(); + + return height; +}; + +export const setActivePanelViewDom = (options: { + activeView: PanelView; + nextView: PanelView; + filtersView: HTMLElement | null; + preferencesView: HTMLElement | null; + viewsContainer: HTMLElement | null; + animated: boolean; + onComplete: (nextView: PanelView) => void; +}): void => { + const { + activeView: currentView, + nextView, + filtersView, + preferencesView, + viewsContainer, + animated, + onComplete, + } = options; + + if (!filtersView || !preferencesView || !viewsContainer) { + return; + } + + const currentElement = currentView === 'preferences' ? preferencesView : filtersView; + const nextElement = nextView === 'preferences' ? preferencesView : filtersView; + + if (currentView === nextView) { + clearPanelViewAnimationState(filtersView); + clearPanelViewAnimationState(preferencesView); + nextElement.classList.add('active'); + syncPanelViewContainerHeight(viewsContainer, nextElement); + onComplete(nextView); + return; + } + + if (!animated) { + clearPanelViewAnimationState(filtersView); + clearPanelViewAnimationState(preferencesView); + nextElement.classList.add('active'); + syncPanelViewContainerHeight(viewsContainer, nextElement); + onComplete(nextView); + return; + } + + const direction = getPanelViewDirection(currentView, nextView); + const fromHeight = currentElement.scrollHeight; + const nextHeight = measurePanelViewHeight(nextElement, viewsContainer); + + clearPanelViewAnimationState(filtersView); + clearPanelViewAnimationState(preferencesView); + + currentElement.classList.add( + 'active', + 'is-leaving', + direction === 'down' ? 'is-leaving-up' : 'is-leaving-down', + ); + nextElement.classList.add( + 'active', + 'is-entering', + direction === 'down' ? 'is-entering-down' : 'is-entering-up', + ); + + viewsContainer.style.height = `${fromHeight}px`; + void viewsContainer.offsetHeight; + + requestAnimationFrame(() => { + viewsContainer.style.height = `${nextHeight}px`; + currentElement.classList.remove(direction === 'down' ? 'is-leaving-up' : 'is-leaving-down'); + nextElement.classList.remove(direction === 'down' ? 'is-entering-down' : 'is-entering-up'); + }); + + window.clearTimeout( + (viewsContainer as HTMLElement & { _cleanplaatsViewAnimationTimer?: number }) + ._cleanplaatsViewAnimationTimer, + ); + (viewsContainer as HTMLElement & { _cleanplaatsViewAnimationTimer?: number })._cleanplaatsViewAnimationTimer = + window.setTimeout(() => { + clearPanelViewAnimationState(currentElement); + clearPanelViewAnimationState(nextElement); + nextElement.classList.add('active'); + syncPanelViewContainerHeight(viewsContainer, nextElement); + onComplete(nextView); + }, 340); +}; diff --git a/src/content/panel/use-cleanplaats-store.ts b/src/content/panel/use-cleanplaats-store.ts new file mode 100644 index 0000000..dc8dc1b --- /dev/null +++ b/src/content/panel/use-cleanplaats-store.ts @@ -0,0 +1,12 @@ +import { useSyncExternalStore } from 'react'; +import { getStoreSnapshot, subscribe, type StoreListener } from '@/content/runtime/store'; +import type { CleanplaatsState } from '@/shared/types/state'; + +export const useCleanplaatsStore = (): CleanplaatsState => { + const snapshot = useSyncExternalStore( + subscribe as (onStoreChange: StoreListener) => () => void, + getStoreSnapshot, + getStoreSnapshot, + ); + return snapshot.state; +}; diff --git a/src/content/runtime/content-blacklist-legacy.js b/src/content/runtime/content-blacklist-legacy.js new file mode 100644 index 0000000..fd04af5 --- /dev/null +++ b/src/content/runtime/content-blacklist-legacy.js @@ -0,0 +1,469 @@ +/** + * Content-script seller and term blacklist management. + */ + +function showTermsModal() { + const modal = document.getElementById('cleanplaats-terms-modal'); + if (!modal) return; + const panelText = getPanelLocaleText(); + + const blacklistModal = document.getElementById('cleanplaats-blacklist-modal'); + if (blacklistModal) { + blacklistModal.style.display = 'none'; + } + + if (modal.style.display === 'block') { + modal.style.display = 'none'; + return; + } + + const terms = CLEANPLAATS.settings.blacklistedTerms; + + modal.innerHTML = DOMPurify.sanitize(` +
+

${panelText.termsModalTitle}

+
    + ${terms.length === 0 ? `
  • ${panelText.termsEmpty}
  • ` : terms.map(term => ` +
  • + ${term} + +
  • + `).join('')} +
+
+ + +
+
${panelText.termInputHelp}
+ +
+ `); + modal.style.display = 'block'; + + document.getElementById('cleanplaats-terms-close').onclick = () => { + modal.style.display = 'none'; + }; + + const addTerm = () => { + const input = document.getElementById('cleanplaats-term-input'); + const term = input.value.trim(); + if (term && !CLEANPLAATS.settings.blacklistedTerms.includes(term)) { + CLEANPLAATS.settings.blacklistedTerms.push(term); + saveSettings().then(() => { + input.value = ''; + updateTermsModal(); + performCleanup(); + showBlacklistTermToast(term); + }); + } + }; + + document.getElementById('cleanplaats-add-term').onclick = addTerm; + + document.getElementById('cleanplaats-term-input').addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + e.preventDefault(); + addTerm(); + } + }); + + setupTermsModalButtons(); +} + +function updateTermsModal() { + const modal = document.getElementById('cleanplaats-terms-modal'); + if (!modal || modal.style.display === 'none') return; + const panelText = getPanelLocaleText(); + + const terms = CLEANPLAATS.settings.blacklistedTerms; + const list = document.getElementById('cleanplaats-terms-list'); + + if (list) { + list.innerHTML = DOMPurify.sanitize( + terms.length === 0 + ? `
  • ${panelText.termsEmpty}
  • ` + : terms.map(term => ` +
  • + ${term} + +
  • + `).join('') + ); + + setupTermsModalButtons(); + } +} + +function setupTermsModalButtons() { + const panelText = getPanelLocaleText(); + document.querySelectorAll('.cleanplaats-unblacklist-term-btn').forEach(btn => { + btn.onmouseover = () => { + btn.style.background = 'green'; + btn.textContent = panelText.unhideButton; + }; + btn.onmouseout = () => { + btn.style.background = '#ff4d4d'; + btn.textContent = panelText.hiddenButton; + }; + btn.style.background = '#ff4d4d'; + btn.style.color = 'white'; + btn.onclick = () => { + const term = btn.dataset.term; + CLEANPLAATS.settings.blacklistedTerms = CLEANPLAATS.settings.blacklistedTerms.filter(t => t !== term); + saveSettings().then(() => { + updateTermsModal(); + unhideListingsByTerm(term); + performCleanup(); + showUnblacklistTermToast(term); + }); + }; + }); +} + +function unhideListingsByTerm(term) { + document.querySelectorAll('.hz-Link').forEach(link => { + const title = getListingTitleText(link); + if (title.includes(term.toLowerCase())) { + const listingEl = link.closest('.hz-StructuredListing') || link; + listingEl.removeAttribute('data-cleanplaats-hidden'); + listingEl.style.display = ''; + } + }); + document.querySelectorAll('.hz-Listing').forEach(listing => { + const title = getListingTitleText(listing); + if (title.includes(term.toLowerCase())) { + listing.removeAttribute('data-cleanplaats-hidden'); + listing.style.display = ''; + } + }); +} + +function addSellerToBlacklist(sellerName) { + addSellersToBlacklist([sellerName]); +} + +function addSellersToBlacklist(sellerNames) { + const normalizedSellerNames = sellerNames + .map(name => name.trim()) + .filter(Boolean) + .filter((name, index, arr) => arr.indexOf(name) === index) + .filter(name => !CLEANPLAATS.settings.blacklistedSellers.includes(name)); + + if (normalizedSellerNames.length === 0) return; + + CLEANPLAATS.settings.blacklistedSellers.push(...normalizedSellerNames); + saveSettings().then(() => { + performCleanup(); + injectBlacklistButtons(); + updateBlacklistModal(); + + if (normalizedSellerNames.length === 1) { + showBlacklistToast(normalizedSellerNames[0]); + return; + } + + showBulkBlacklistToast(normalizedSellerNames.length); + }); +} + +function removeSellerFromBlacklist(sellerName) { + CLEANPLAATS.settings.blacklistedSellers = CLEANPLAATS.settings.blacklistedSellers.filter(s => s !== sellerName); + saveSettings().then(() => { + document.querySelectorAll('.hz-Listing').forEach(listing => { + const sellerNameEl = listing.querySelector('.hz-Listing-seller-name, .hz-Listing-seller-name-new, .hz-Listing-seller-link, .hz-Listing-sellerName, .hz-Listing-sellerName-new'); + if (!sellerNameEl) return; + if (sellerNameEl.textContent.trim() === sellerName) { + listing.removeAttribute('data-cleanplaats-hidden'); + listing.style.display = ''; + } + }); + performCleanup(); + injectBlacklistButtons(); + updateBlacklistModal(); + }); +} + +function injectProductDetailBlacklistButton() { + const panelText = getPanelLocaleText(); + const sellerRoot = document.querySelector('.SellerInfoSmall-root'); + const sellerNameElement = sellerRoot?.querySelector('.SellerInfoSmall-name a, .SellerInfoSmall-name'); + const existingRow = document.querySelector('.cleanplaats-detail-blacklist-row'); + + if (!isProductDetailPage() || !sellerRoot || !sellerNameElement) { + existingRow?.remove(); + return; + } + + const sellerName = sellerNameElement.textContent?.trim(); + if (!sellerName) { + existingRow?.remove(); + return; + } + + const isBlacklisted = CLEANPLAATS.settings.blacklistedSellers.includes(sellerName); + const detailRow = existingRow || document.createElement('div'); + detailRow.className = 'cleanplaats-detail-blacklist-row'; + + const button = document.createElement('button'); + button.className = 'cleanplaats-blacklist-btn cleanplaats-detail-blacklist-btn'; + button.type = 'button'; + button.tabIndex = 0; + button.textContent = isBlacklisted ? panelText.hiddenSellerButton : panelText.hideSellerButton; + button.disabled = isBlacklisted; + button.setAttribute('aria-disabled', isBlacklisted ? 'true' : 'false'); + + if (!isBlacklisted) { + button.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + addSellerToBlacklist(sellerName); + }); + } + + detailRow.replaceChildren(button); + + if (!existingRow) { + sellerRoot.insertAdjacentElement('afterend', detailRow); + } +} + +function injectBlacklistButtons() { + const panelText = getPanelLocaleText(); + document.querySelectorAll('.hz-Listing').forEach(listing => { + const oldBtn = listing.querySelector('.cleanplaats-blacklist-btn-row'); + const oldTopRight = listing.querySelector('.cleanplaats-seller-topright-mobile'); + const oldInlineBtn = listing.querySelector('.cleanplaats-inline-btn'); + + let sellerName = listing.dataset.cleanplaatsSellerName || null; + let sellerElement = null; + let isCarAdvert = false; + + const carSellerElement = listing.querySelector('.hz-Listing-sellerName, .hz-Listing-sellerName-new'); + if (carSellerElement) { + sellerName = carSellerElement.textContent.trim(); + sellerElement = carSellerElement; + isCarAdvert = true; + } else { + const sellerNameEl = listing.querySelector('.hz-Listing-seller-name, .hz-Listing-seller-name-new'); + if (sellerNameEl) { + sellerName = sellerNameEl.textContent.trim(); + const sellerLink = sellerNameEl.closest('a'); + sellerElement = sellerLink ? (sellerLink.parentElement || sellerLink) : sellerNameEl; + isCarAdvert = false; + } + } + + if (sellerName) { + listing.dataset.cleanplaatsSellerName = sellerName; + } + + if (!sellerName) return; + + if (CLEANPLAATS.settings.blacklistedSellers.includes(sellerName)) { + listing.setAttribute('data-cleanplaats-hidden', 'true'); + listing.style.display = 'none'; + return; + } + + if (window.innerWidth < 700) { + if (oldTopRight && oldTopRight.dataset.cleanplaatsSellerName === sellerName) { + return; + } + + if (oldBtn) oldBtn.remove(); + if (oldInlineBtn) oldInlineBtn.remove(); + if (oldTopRight) oldTopRight.remove(); + + const topRow = document.createElement('div'); + topRow.className = 'cleanplaats-seller-topright-mobile'; + topRow.dataset.cleanplaatsSellerName = sellerName; + topRow.innerHTML = DOMPurify.sanitize(` + ${sellerName} + + `); + const content = listing.querySelector('.hz-Listing-listview-content, .hz-Listing-listview-content-new'); + if (content && content.firstChild) { + content.insertBefore(topRow, content.firstChild); + } else if (content) { + content.appendChild(topRow); + } + topRow.querySelector('.cleanplaats-blacklist-btn-mobile').onclick = (e) => { + e.preventDefault(); + e.stopPropagation(); + if (confirm(`Wil je alle advertenties van ${sellerName} verbergen?`)) { + addSellerToBlacklist(sellerName); + } + }; + return; + } + + if (!sellerElement) return; + + if (oldBtn) oldBtn.remove(); + if (oldTopRight) oldTopRight.remove(); + if (oldInlineBtn) oldInlineBtn.remove(); + + if (isCarAdvert) { + carSellerElement.style.display = 'inline-flex'; + carSellerElement.style.alignItems = 'center'; + carSellerElement.style.gap = '8px'; + + const btn = document.createElement('button'); + btn.className = 'cleanplaats-blacklist-btn cleanplaats-inline-btn'; + btn.textContent = panelText.hideSellerButton; + btn.type = 'button'; + btn.tabIndex = 0; + btn.style.marginLeft = '8px'; + + btn.addEventListener('click', (e) => { + e.preventDefault(); + e.stopPropagation(); + addSellerToBlacklist(sellerName); + }); + + carSellerElement.appendChild(btn); + } else { + const btnRow = document.createElement('div'); + btnRow.className = 'cleanplaats-blacklist-btn-row'; + + const btn = document.createElement('button'); + btn.className = 'cleanplaats-blacklist-btn'; + btn.textContent = panelText.hideSellerButton; + btn.type = 'button'; + btn.tabIndex = 0; + + btn.addEventListener('click', (e) => { + e.preventDefault(); + e.stopPropagation(); + addSellerToBlacklist(sellerName); + }); + + btnRow.appendChild(btn); + + if (sellerElement.parentNode) { + sellerElement.parentNode.insertBefore(btnRow, sellerElement.nextSibling); + } + } + }); + + injectProductDetailBlacklistButton(); +} + +function showBlacklistModal() { + const modal = document.getElementById('cleanplaats-blacklist-modal'); + if (!modal) return; + const panelText = getPanelLocaleText(); + + const termsModal = document.getElementById('cleanplaats-terms-modal'); + if (termsModal) { + termsModal.style.display = 'none'; + } + + if (modal.style.display === 'block') { + modal.style.display = 'none'; + return; + } + + const sellers = CLEANPLAATS.settings.blacklistedSellers; + + modal.innerHTML = DOMPurify.sanitize(` +
    +

    ${panelText.sellersModalTitle}

    +
      + ${sellers.length === 0 ? `
    • ${panelText.sellersEmpty}
    • ` : sellers.map(seller => ` +
    • + ${seller} + +
    • + `).join('')} +
    +
    + + +
    +
    ${panelText.sellerInputHelp}
    + +
    + `); + modal.style.display = 'block'; + + document.getElementById('cleanplaats-blacklist-close').onclick = () => { + modal.style.display = 'none'; + }; + + const addSeller = () => { + const input = document.getElementById('cleanplaats-seller-input'); + const sellerNames = input.value + .split(/[;,]+/) + .map(name => name.trim()) + .filter(Boolean); + + if (sellerNames.length === 0) return; + + addSellersToBlacklist(sellerNames); + input.value = ''; + }; + + document.getElementById('cleanplaats-add-seller').onclick = addSeller; + + document.getElementById('cleanplaats-seller-input').addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + e.preventDefault(); + addSeller(); + } + }); + + setupBlacklistModalButtons(); +} + +function updateBlacklistModal() { + const modal = document.getElementById('cleanplaats-blacklist-modal'); + if (!modal || modal.style.display === 'none') return; + const panelText = getPanelLocaleText(); + + const sellers = CLEANPLAATS.settings.blacklistedSellers; + const list = document.getElementById('cleanplaats-blacklist-list'); + + if (list) { + list.innerHTML = DOMPurify.sanitize( + sellers.length === 0 + ? `
  • ${panelText.sellersEmpty}
  • ` + : sellers.map(seller => ` +
  • + ${seller} + +
  • + `).join('') + ); + + setupBlacklistModalButtons(); + } +} + +function setupBlacklistModalButtons() { + const panelText = getPanelLocaleText(); + document.querySelectorAll('.cleanplaats-unblacklist-btn').forEach(btn => { + btn.onmouseover = () => { + btn.style.background = 'green'; + btn.textContent = panelText.unhideButton; + }; + btn.onmouseout = () => { + btn.style.background = '#ff4d4d'; + btn.textContent = panelText.hiddenButton; + }; + btn.style.background = '#ff4d4d'; + btn.style.color = 'white'; + btn.onclick = () => { + const sellerName = btn.dataset.seller; + showUnblacklistToast(sellerName); + removeSellerFromBlacklist(sellerName); + }; + }); +} diff --git a/src/content/runtime/content-bootstrap-legacy.js b/src/content/runtime/content-bootstrap-legacy.js new file mode 100644 index 0000000..0da49c5 --- /dev/null +++ b/src/content/runtime/content-bootstrap-legacy.js @@ -0,0 +1,9 @@ +/** + * Cleanplaats content bootstrap. + */ + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initCleanplaats); +} else { + initCleanplaats(); +} diff --git a/src/content/runtime/content-cleanup-legacy.js b/src/content/runtime/content-cleanup-legacy.js new file mode 100644 index 0000000..021602e --- /dev/null +++ b/src/content/runtime/content-cleanup-legacy.js @@ -0,0 +1,524 @@ +/** + * Content-script cleanup and filtering routines. + */ + +function getListingTitleElement(container) { + if (!(container instanceof Element)) return null; + + return container.querySelector([ + '.hz-StructuredListing-title', + '.hz-Listing-title', + '.hz-Listing-group--title-description', + '.hz-StructuredListing-body', + '[class*="ListingTitle_hz-Listing-title"]', + '[class*="ListingTitle_hz-StructuredListing-title"]' + ].join(', ')); +} + +function getListingTitleText(container) { + const titleElement = getListingTitleElement(container); + return titleElement?.textContent?.trim().toLowerCase() || ''; +} + +function updateStatsDisplay() { + if (!CLEANPLAATS.featureFlags.showStats) return; + + const stats = CLEANPLAATS.stats; + + updateElementText('cleanplaats-topads-count', stats.topAdsRemoved); + updateElementText('cleanplaats-dagtoppers-count', stats.dagtoppersRemoved); + updateElementText('cleanplaats-promoted-count', stats.promotedListingsRemoved); + updateElementText('cleanplaats-stickers-count', stats.opvalStickersRemoved); + updateElementText('cleanplaats-otherads-count', stats.otherAdsRemoved); + + const total = stats.topAdsRemoved + stats.dagtoppersRemoved + stats.promotedListingsRemoved + stats.opvalStickersRemoved + stats.otherAdsRemoved; + stats.totalRemoved = total; + + updateElementText('cleanplaats-total-count-stats', total); + // Header total-removed badge disabled for now. + // updateElementText('cleanplaats-total-count', total); +} + +function updateElementText(id, value) { + const element = document.getElementById(id); + if (element) { + element.textContent = value; + } +} + +function performInitialCleanup() { + try { + performCleanup(); + } catch (error) { + console.error('Cleanplaats: Initial cleanup failed', error); + } +} + +function performCleanup() { + removeAllAds(); + removePersistentGoogleAds(); + if (CLEANPLAATS.settings.removeFavoriteRelatedAds) removeSimilarAdsSections(); + removeNonFeatureBuyerBanner(); + + if (CLEANPLAATS.settings.removeTopAds) removeTopAdvertisements(); + if (CLEANPLAATS.settings.removeDagtoppers) removeDagtoppers(); + if (CLEANPLAATS.settings.removePromotedListings) removePromotedListings(); + if (CLEANPLAATS.settings.removeOpvalStickers) removeOpvalStickerListings(); + if (CLEANPLAATS.settings.removeReservedListings) removeReservedListings(); + + document.querySelectorAll('.hz-Listing').forEach(listing => { + const sellerNameEl = listing.querySelector('.hz-Listing-seller-name, .hz-Listing-seller-name-new, .hz-Listing-seller-link, .hz-Listing-sellerName, .hz-Listing-sellerName-new'); + if (!sellerNameEl) return; + const sellerName = sellerNameEl.textContent.trim(); + if (CLEANPLAATS.settings.blacklistedSellers.includes(sellerName)) { + listing.setAttribute('data-cleanplaats-hidden', 'true'); + listing.style.display = 'none'; + } + }); + + document.querySelectorAll('.hz-Link').forEach(link => { + const title = getListingTitleText(link); + if (!title) return; + CLEANPLAATS.settings.blacklistedTerms.forEach(term => { + if (title.includes(term.toLowerCase())) { + const listingEl = link.closest('.hz-StructuredListing') || link; + listingEl.setAttribute('data-cleanplaats-hidden', 'true'); + listingEl.style.display = 'none'; + } + }); + }); + + document.querySelectorAll('.hz-Listing').forEach(listing => { + const title = getListingTitleText(listing); + if (!title) return; + CLEANPLAATS.settings.blacklistedTerms.forEach(term => { + if (title.includes(term.toLowerCase())) { + listing.setAttribute('data-cleanplaats-hidden', 'true'); + listing.style.display = 'none'; + } + }); + }); + + updateStatsDisplay(); +} + +function resetPreviousChanges() { + resetStats(); + + document.querySelectorAll('[data-cleanplaats-hidden]').forEach(el => { + try { + el.style.cssText = el.getAttribute('data-original-style') || ''; + el.removeAttribute('data-cleanplaats-hidden'); + el.removeAttribute('data-original-style'); + } catch (error) { + console.error('Cleanplaats: Error restoring element', error); + } + }); +} + +function removeTopAdvertisements() { + const is2dehands = location.hostname.includes('2dehands.be'); + const is2ememain = location.hostname.includes('2ememain.be'); + const labels = is2ememain ? ['Pub au top'] : is2dehands ? ['Topzoekertje', 'Topadvertentie'] : ['Topadvertentie']; + const priorityBadgeSelector = [ + '.hz-Listing-priority span', + '.hz-Listing-priority-new', + '[class*="hz-Listing-priority-new"]' + ].join(', '); + const removedCount = labels.reduce((total, label) => { + return total + findAndHideListings(priorityBadgeSelector, label); + }, 0); + CLEANPLAATS.stats.topAdsRemoved += removedCount; +} + +function removeDagtoppers() { + const priorityBadgeSelector = [ + '.hz-Listing-priority span', + '.hz-Listing-priority-new', + '[class*="hz-Listing-priority-new"]' + ].join(', '); + const removedCount = findAndHideListings(priorityBadgeSelector, 'Dagtopper'); + CLEANPLAATS.stats.dagtoppersRemoved += removedCount; +} + +function removePromotedListings() { + let count = 0; + const visitWebsiteLabels = location.hostname.includes('2ememain.be') + ? ['Visiter le site internet'] + : ['Bezoek website']; + + const selectors = [ + '.hz-Listing-seller-link', + '.hz-Listing-seller-external-link' + ]; + + selectors.forEach(selector => { + document.querySelectorAll(selector).forEach(sellerLink => { + try { + const hasVisitWebsite = Array.from(sellerLink.querySelectorAll('span, a')) + .some(el => visitWebsiteLabels.includes(el.textContent?.trim())); + + if (hasVisitWebsite) { + const listing = sellerLink.closest('.hz-Listing'); + if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { + count++; + } + } + } catch (error) { + console.error('Cleanplaats: Error processing promoted listing', error); + } + }); + }); + + document.querySelectorAll('.hz-StructuredListing').forEach(listing => { + try { + if (listing.hasAttribute('data-cleanplaats-hidden') || !isHomepagePartnerListing(listing)) { + return; + } + + if (hideElement(listing)) { + count++; + } + } catch (error) { + console.error('Cleanplaats: Error processing homepage partner listing', error); + } + }); + + CLEANPLAATS.stats.promotedListingsRemoved += count; +} + +function isHomepagePartnerListing(listing) { + const hrefs = Array.from(listing.querySelectorAll('a[href]')) + .map(link => link.href || link.getAttribute('href') || '') + .filter(Boolean); + + return hrefs.some(href => /\/a\d+(?:[-/?]|$)/i.test(href)); +} + +function removeOpvalStickerListings() { + let count = 0; + const stickerSelectors = [ + '.hz-Listing-Opvalsticker-wrapper, .hz-Listing-Opvalsticker-wrapper-new', + '[data-testid="listing-opval-sticker"]' + ]; + + stickerSelectors.forEach(selector => { + document.querySelectorAll(selector).forEach(sticker => { + try { + const listing = sticker.closest('.hz-Listing'); + if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { + count++; + } + } catch (error) { + console.error('Cleanplaats: Error processing sticker listing', error); + } + }); + }); + + CLEANPLAATS.stats.opvalStickersRemoved += count; +} + +function removeReservedListings() { + const count = findAndHideListings('.hz-Listing-price, [class*="ListingPrice_hz-Listing-price"]', [ + 'gereserveerd', + 'réservé' + ]); + CLEANPLAATS.stats.otherAdsRemoved += count; +} + +function removeAllAds() { + let count = 0; + const marktplaatsMarketingBannerSelector = '.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]'; + const marktplaatsMarketingBannerWrapperSelector = 'div[role="button"][tabindex]'; + const getMarktplaatsMarketingBannerContainer = element => { + if (!(element instanceof Element)) { + return null; + } + + const bannerCard = element.closest('.MpCard-mpCardBanner'); + if (bannerCard) { + const bannerWrapper = bannerCard.closest(marktplaatsMarketingBannerWrapperSelector); + if (bannerWrapper?.querySelector(marktplaatsMarketingBannerSelector)) { + return bannerWrapper; + } + + return bannerCard; + } + + const bannerWrapper = element.closest(marktplaatsMarketingBannerWrapperSelector); + if (bannerWrapper?.querySelector(marktplaatsMarketingBannerSelector)) { + return bannerWrapper; + } + + return element.closest('img[alt="Marktplaats Marketing Banner"]'); + }; + const isMarktplaatsSponsoredNotice = element => { + if (!element) return false; + + const text = (element.textContent || '').replace(/\s+/g, ' ').trim().toLowerCase(); + return text.includes('de volgorde van de resultaten wordt mede bepaald door betaalde opvalmogelijkheden'); + }; + const isMarktplaatsMarketingBanner = element => { + if (!element) return false; + + if ( + element.matches?.('.MpCard-mpCardBanner') || + element.querySelector?.(marktplaatsMarketingBannerSelector) + ) { + return true; + } + + const bannerImage = element.querySelector?.('img[alt="Marktplaats Marketing Banner"]'); + return Boolean(bannerImage); + }; + + function safeHide(selector) { + try { + const elements = document.querySelectorAll(selector); + elements.forEach(el => { + if (!el.hasAttribute('data-cleanplaats-hidden') && hideElement(el)) { + count++; + } + + const parentLi = el.closest('li.bannerContainerLoading'); + if (parentLi && !parentLi.hasAttribute('data-cleanplaats-hidden')) { + hideElement(parentLi); + } + + const feedBanner = el.closest('.hz-FeedBannerBlock, .Banners-bannerFeedItem'); + if (feedBanner && !feedBanner.hasAttribute('data-cleanplaats-hidden')) { + hideElement(feedBanner); + } + + const topBanner = el.closest('.BannerTop-root, #top-banner-root'); + if (topBanner && !topBanner.hasAttribute('data-cleanplaats-hidden')) { + hideElement(topBanner); + } + }); + } catch (error) { + console.log('Cleanplaats: Error hiding ads', error); + } + } + + document.querySelectorAll('.hz-Listing-imageOverlayLabel').forEach(overlay => { + if (overlay.textContent.trim() === 'Homepagina-advertentie') { + const link = overlay.closest('.hz-Link.hz-Link--block'); + if (link && !link.hasAttribute('data-cleanplaats-hidden')) { + hideElement(link); + count++; + } + } + }); + + const adSelectors = [ + '#adsense-root', + '#adsense-container', + '#adsense-container-bottom-lazy', + '#similar-items-root', + '.AdmarktSimilarItemsContainer', + '.AdmarktSimilarItems-root', + '.AdmarktSimilarItems-headerTitle', + '#adBlock', + '.ndfc-wrapper[data-testid="ndfc-generic-text"]', + '[data-testid="ndfc-close"]', + '.MpCard-mpCardBanner', + 'div[role="button"][tabindex] > .MpCard-mpCardBanner', + 'img[alt="Marktplaats Marketing Banner"]', + '.hz-Banner', + '.hz-Banner--fluid', + '.BannerTop-root', + '#banner-rubrieks-dt', + '#banner-top-dt', + '#banner-top-dt-container', + '#top-banner-root', + '[data-google-query-id]', + '[id*="google_ads_iframe"]', + '[id*="google_ads_top_frame"]', + '[aria-label="Advertisement"]', + '[title="3rd party ad content"]', + '.i_.div', + '[data-ad-container]', + '[data-bg="true"]', + '[class*="adsbygoogle"]', + 'ins.adsbygoogle', + 'iframe[src*="googleads"]', + 'iframe[src*="doubleclick"]', + '[id*="div-gpt-ad"]', + '.hz-Listings__container--cas[data-testid="BottomBlockLazyListings"]', + '[class*="creative"]', + '#google_ads_top_frame', + '.creative', + 'li.bannerContainerLoading', + '.bannerContainerLoading', + '.bannerContainerLoading .hz-Banner', + '.bannerContainerLoading .hz-Banner--fluid' + ]; + + adSelectors.forEach(selector => { + safeHide(selector); + }); + + document.querySelectorAll('.ndfc-wrapper, [data-testid="ndfc-generic-text"]').forEach(notice => { + if (isMarktplaatsSponsoredNotice(notice) && hideElement(notice)) { + count++; + } + }); + + document.querySelectorAll('.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]').forEach(banner => { + const bannerCard = getMarktplaatsMarketingBannerContainer(banner) || banner; + if (isMarktplaatsMarketingBanner(bannerCard) && hideElement(bannerCard)) { + count++; + } + + const bannerWrapper = bannerCard.parentElement; + if ( + bannerWrapper instanceof Element && + bannerWrapper !== bannerCard && + bannerWrapper.childElementCount === 1 && + !bannerWrapper.hasAttribute('data-cleanplaats-hidden') + ) { + hideElement(bannerWrapper); + } + }); + + CLEANPLAATS.stats.otherAdsRemoved += count; +} + +function removePersistentGoogleAds() { + let count = 0; + + document.querySelectorAll('#adsense-root, .creative, div[id^="google_ads_iframe"], div[data-google-query-id], div[aria-label="Advertisement"]').forEach(ad => { + try { + const gridItem = ad.closest('.hz-Link.hz-Link--block'); + if (gridItem && gridItem.parentNode) { + gridItem.parentNode.removeChild(gridItem); + count++; + return; + } + if (ad.parentNode) { + ad.parentNode.removeChild(ad); + count++; + } + } catch (error) { + console.error('Cleanplaats: Error removing persistent ad', error); + } + }); + + document.querySelectorAll('#banner-right-container').forEach(banner => { + if (banner.parentNode) { + banner.parentNode.removeChild(banner); + count++; + } + }); + + document.querySelectorAll('#banner-top-dt-container').forEach(container => { + if (container.parentNode) { + container.parentNode.removeChild(container); + count++; + } + }); + + document.querySelectorAll('.BannerTop-root').forEach(banner => { + const hasAdContent = banner.querySelector( + '.hz-Banner, .hz-Banner--fluid, iframe, [data-google-query-id], [id*="google_ads_iframe"], ins.adsbygoogle' + ); + if (!hasAdContent && banner.parentNode) { + banner.parentNode.removeChild(banner); + count++; + } + }); + + document.querySelectorAll('#top-banner-root').forEach(container => { + const hasVisibleContent = Array.from(container.children).some(child => child.offsetParent !== null); + if (!hasVisibleContent && container.parentNode) { + container.parentNode.removeChild(container); + count++; + } + }); + + document.querySelectorAll('.hz-FeedBannerBlock, .Banners-bannerFeedItem').forEach(banner => { + if ( + banner.childElementCount === 0 || + Array.from(banner.children).every(child => child.offsetParent === null) + ) { + if (banner.parentNode) { + banner.parentNode.removeChild(banner); + count++; + } + } + }); + + CLEANPLAATS.stats.otherAdsRemoved += count; +} + +function removeSimilarAdsSections() { + let count = 0; + + document.querySelectorAll('.SimilarAdsList-related-ads-section').forEach(section => { + if (hideElement(section)) { + count++; + } + }); + + CLEANPLAATS.stats.otherAdsRemoved += count; +} + +function removeNonFeatureBuyerBanner() { + let count = 0; + + document.querySelectorAll( + '#notifications-root, .NonFeatureBuyerBanner-root, .feature-banner[data-testid="50-percent-off-banner"]' + ).forEach(element => { + const banner = element.id === 'notifications-root' + ? element + : element.closest('#notifications-root') + || element.closest('.feature-banner[data-testid="50-percent-off-banner"]') + || element; + + if (hideElement(banner)) { + count++; + } + }); + + CLEANPLAATS.stats.otherAdsRemoved += count; +} + +function findAndHideListings(selector, textContent) { + let count = 0; + const expectedTexts = Array.isArray(textContent) + ? textContent.map(text => text.trim().toLowerCase()) + : [textContent.trim().toLowerCase()]; + + try { + document.querySelectorAll(selector).forEach(el => { + const elementText = el.textContent?.trim().toLowerCase(); + if (elementText && expectedTexts.includes(elementText)) { + const listing = el.closest('.hz-Listing'); + if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { + count++; + } + } + }); + } catch (error) { + console.error(`Cleanplaats: Error finding "${textContent}" listings`, error); + } + + return count; +} + +function hideElement(element) { + if (!element || element.hasAttribute('data-cleanplaats-hidden')) { + return false; + } + + try { + element.setAttribute('data-original-style', element.style.cssText); + element.setAttribute('data-cleanplaats-hidden', 'true'); + element.style.display = 'none !important'; + + return true; + } catch (error) { + console.error('Cleanplaats: Error hiding element', error); + return false; + } +} diff --git a/src/content/runtime/content-init-legacy.js b/src/content/runtime/content-init-legacy.js new file mode 100644 index 0000000..cc336ea --- /dev/null +++ b/src/content/runtime/content-init-legacy.js @@ -0,0 +1,157 @@ +/** + * Content-script initialization and background wake-up. + */ + +function wakeUpBackground() { + try { + browserAPI.runtime.sendMessage({ action: 'keepAlive' }, (response) => { + if (browserAPI.runtime.lastError) { + console.log('Cleanplaats: Background script not responding, this is normal if it was sleeping'); + setTimeout(() => { + try { + browserAPI.runtime.sendMessage({ action: 'forceRefresh' }, () => { + if (!browserAPI.runtime.lastError) { + console.log('Cleanplaats: Background script force-refreshed successfully'); + } + }); + } catch (e) { + console.log('Cleanplaats: Force refresh also failed:', e); + } + }, 100); + } else { + console.log('Cleanplaats: Background script is awake', response); + } + }); + } catch (error) { + console.log('Cleanplaats: Could not wake background script:', error); + } +} + +function setupPeriodicWakeUp() { + if (typeof browser !== 'undefined') { + console.log('Cleanplaats: Setting up periodic background wake-up for Firefox'); + + setInterval(() => { + if (isSearchResultsPage()) { + wakeUpBackground(); + } + }, 30000); + + ['click', 'scroll', 'keydown'].forEach(eventType => { + document.addEventListener(eventType, () => { + if (isSearchResultsPage()) { + clearTimeout(window.cleanplaatsWakeUpTimeout); + window.cleanplaatsWakeUpTimeout = setTimeout(wakeUpBackground, 1000); + } + }, { passive: true }); + }); + } +} + +function checkFirstRun() { + return new Promise(resolve => { + browserAPI.storage.local.get('firstRun', (items) => { + if (browserAPI.runtime.lastError) { + console.error('Cleanplaats: Error checking first run:', browserAPI.runtime.lastError); + resolve(true); + return; + } + + let isFirstRun; + if (items.firstRun === undefined) { + isFirstRun = true; + } else { + isFirstRun = items.firstRun; + } + + if (isFirstRun) { + browserAPI.storage.local.set({ firstRun: false }, () => { + if (browserAPI.runtime.lastError) { + console.error('Cleanplaats: Error setting first run flag:', browserAPI.runtime.lastError); + } + resolve(isFirstRun); + }); + } else { + resolve(isFirstRun); + } + }); + }); +} + +function getExtensionVersion() { + try { + if (browserAPI?.runtime?.getManifest) { + const manifest = browserAPI.runtime.getManifest(); + if (manifest && typeof manifest.version === 'string') { + return manifest.version; + } + } + } catch (error) { + console.error('Cleanplaats: Failed to read extension version', error); + } + + return ''; +} + +function initCleanplaats() { + console.log('Cleanplaats: Initializing...'); + + const currentVersion = getExtensionVersion(); + + wakeUpBackground(); + setupPeriodicWakeUp(); + + loadSettings() + .then(() => { + registerSettingsStorageSync(); + applyDarkModeToDocument(CLEANPLAATS.settings.darkMode); + + checkFirstRun() + .then(isFirstRun => { + CLEANPLAATS.featureFlags.firstRun = isFirstRun; + + createControlPanel(); + setupWebchatCollisionAvoidance(); + setupAllObservers(); + applySettings(); + scheduleSellerAgeWarningCheck({ resetState: true }); + showOnboarding(currentVersion); + + const tryCleanup = () => { + if (document.querySelector('.hz-Listing') || document.querySelector('#adsense-container')) { + performInitialCleanup(); + injectBlacklistButtons(); + setTimeout(checkForEmptyPage, 300); + setTimeout(updateStatsDisplay, 500); + + let attempts = 0; + const maxAttempts = 10; + const interval = setInterval(() => { + removePersistentGoogleAds(); + + document.querySelectorAll('#banner-top-dt').forEach(banner => { + if (banner.parentNode) { + banner.parentNode.removeChild(banner); + } + }); + + document.body.offsetHeight; + attempts++; + if ( + (!document.querySelector('#banner-right-container') && !document.querySelector('#banner-top-dt')) || + attempts >= maxAttempts + ) { + clearInterval(interval); + } + }, 80); + } else { + setTimeout(tryCleanup, 60); + } + }; + tryCleanup(); + }); + }) + .catch(error => { + console.error('Cleanplaats: Initialization failed', error); + }); +} diff --git a/src/content/runtime/content-notifications-legacy.js b/src/content/runtime/content-notifications-legacy.js new file mode 100644 index 0000000..51bd569 --- /dev/null +++ b/src/content/runtime/content-notifications-legacy.js @@ -0,0 +1,513 @@ +/** + * Content-script notifications, onboarding, and lightweight feedback UI. + */ + +function showFirstTimeOnboarding() { + const onboarding = document.createElement('div'); + onboarding.className = 'cleanplaats-onboarding'; + onboarding.id = 'cleanplaats-onboarding'; + + onboarding.innerHTML = DOMPurify.sanitize(` +
    +
    +

    🎉 Welkom bij Cleanplaats!

    + +
    +
    +
    + 1 +

    Cleanplaats verwijdert automatisch advertenties en promotionele content

    +
    +
    + 2 +

    Gebruik het configuratiescherm rechtsonder om de filtering aan te passen. Je opent en sluit het paneel via het pijltje bovenin.

    +
    +
    + 3 +

    Bekijk statistieken over verwijderde items in het configuratiescherm

    +
    +
    + +
    + `); + + document.body.appendChild(onboarding); + + ['cleanplaats-onboarding-close', 'cleanplaats-onboarding-got-it'].forEach(id => { + document.getElementById(id)?.addEventListener('click', () => { + onboarding.classList.add('cleanplaats-fade-out'); + setTimeout(() => onboarding.remove(), 300); + }); + }); + + setTimeout(() => { + if (onboarding.parentNode) { + onboarding.classList.add('cleanplaats-fade-out'); + setTimeout(() => onboarding.remove(), 300); + } + }, 15000); +} + +function shouldShowUpdatePopup(currentVersion) { + if (!currentVersion) { + return false; + } + + return CLEANPLAATS.panelState.lastSeenVersion !== currentVersion; +} + +function showUpdatePopup(version) { + const existingPopup = document.getElementById('cleanplaats-update-popup'); + if (existingPopup) { + existingPopup.remove(); + } + + const updateContent = CLEANPLAATS_UPDATE_NOTES[version] || { + intro: 'Cleanplaats heeft een nieuwe update gekregen met verbeteringen en onderhoud aan de extensie.', + highlights: [ + 'Diverse verbeteringen en fixes voor de huidige resultaatpagina’s.', + 'Kleine verfijningen aan het paneel en de filtering.', + 'Onderhoudswerk om Cleanplaats stabiel te houden op nieuwe sitewijzigingen.' + ], + note: 'Zie je een probleem of heb je een idee? Gebruik de GitHub-link in het paneel.' + }; + + const popup = document.createElement('div'); + popup.className = 'cleanplaats-info-overlay cleanplaats-info-overlay--visible'; + popup.id = 'cleanplaats-update-popup'; + popup.setAttribute('role', 'dialog'); + popup.setAttribute('aria-modal', 'true'); + popup.setAttribute('aria-hidden', 'false'); + + const stepsMarkup = updateContent.highlights + .map(step => `
  • ${step}
  • `) + .join(''); + + popup.innerHTML = DOMPurify.sanitize(` +
    +
    + + Nieuwe update +

    Wat is er nieuw? (${version})

    +

    ${updateContent.intro}

    +
    +
      ${stepsMarkup}
    +

    ${updateContent.note}

    + +
    + `); + + const closePopup = () => { + popup.classList.remove('cleanplaats-info-overlay--visible'); + popup.setAttribute('aria-hidden', 'true'); + setTimeout(() => popup.remove(), 200); + document.removeEventListener('keydown', handleKeydown); + }; + + const handleKeydown = (event) => { + if (event.key === 'Escape') { + closePopup(); + } + }; + + popup.addEventListener('click', (event) => { + if (event.target === popup) { + closePopup(); + } + }); + + document.addEventListener('keydown', handleKeydown); + document.body.appendChild(popup); + const popupLogo = document.getElementById('cleanplaats-update-popup-logo'); + if (popupLogo) { + popupLogo.src = browserAPI.runtime.getURL('icons/icon128.png'); + } + document.getElementById('cleanplaats-update-popup-close')?.addEventListener('click', () => { + closePopup(); + showBubbleNotification(`Veel plezier met ${version}`); + }); +} + +function showWelcomeToast() { + if (CLEANPLAATS.panelState.hasShownWelcomeToast || + location.pathname !== '/' || + location.hostname !== 'www.marktplaats.nl') { + return; + } + + const toast = document.createElement('div'); + toast.className = 'cleanplaats-toast'; + toast.id = 'cleanplaats-toast'; + + const totalRemoved = CLEANPLAATS.stats.totalRemoved; + const message = totalRemoved > 0 + ? `Cleanplaats is actief (${totalRemoved} items verwijderd)` + : 'Cleanplaats is actief'; + + toast.innerHTML = DOMPurify.sanitize(` +
    + + ${message} +
    + `); + + document.body.appendChild(toast); + setTimeout(() => toast.classList.add('visible'), 100); + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); + + CLEANPLAATS.panelState.hasShownWelcomeToast = true; +} + +function showOnboarding(currentVersion = '') { + if (CLEANPLAATS.featureFlags.firstRun) { + if (currentVersion) { + CLEANPLAATS.panelState.lastSeenVersion = currentVersion; + saveSettings().catch(error => { + console.error('Cleanplaats: Failed to store initial version state', error); + }); + } + showFirstTimeOnboarding(); + } else if (shouldShowUpdatePopup(currentVersion)) { + CLEANPLAATS.panelState.lastSeenVersion = currentVersion; + saveSettings().catch(error => { + console.error('Cleanplaats: Failed to store seen update version', error); + }); + showUpdatePopup(currentVersion); + } else { + showWelcomeToast(); + } +} + +function checkForEmptyPage() { + clearTimeout(notificationTimeout); + + notificationTimeout = setTimeout(() => { + performCleanup(); + + const visibleListings = document.querySelectorAll('.hz-Listing:not([data-cleanplaats-hidden])'); + const totalListings = document.querySelectorAll('.hz-Listing'); + const hiddenCount = totalListings.length - visibleListings.length; + + if (hiddenCount === 0) return; + + clearAllNotifications(); + + if (visibleListings.length === 0) { + showBubbleNotification('De pagina is leeg omdat deze helemaal uit advertenties bestond! Probeer een volgende pagina of wijzig de filters.'); + } else if (visibleListings.length < 5) { + const listingWord = visibleListings.length === 1 ? 'resultaat' : 'resultaten'; + const removedWord = hiddenCount === 1 ? 'advertentie' : 'advertenties'; + showBubbleNotification(`Er ${visibleListings.length === 1 ? 'is' : 'zijn'} nog ${visibleListings.length} ${listingWord} over nadat Cleanplaats ${hiddenCount} ${removedWord} heeft verwijderd.`); + } + }, 1000); +} + +function showBubbleNotification(message) { + let toast = document.getElementById('cleanplaats-bubble-notification'); + + if (toast) { + const messageElement = toast.querySelector('.cleanplaats-toast-message span'); + if (messageElement) { + messageElement.textContent = message; + } + } else { + toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + toast.id = 'cleanplaats-bubble-notification'; + + toast.innerHTML = DOMPurify.sanitize(` +
    + +
    + ${message} +
    +
    + `); + + document.body.appendChild(toast); + setTimeout(() => requestAnimationFrame(() => toast.classList.add('visible')), 0); + } + + if (toast.timeoutId) { + clearTimeout(toast.timeoutId); + } + + toast.timeoutId = setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => { + if (toast) { + toast.remove(); + } + }, 300); + }, 5000); +} + +function clearSellerAgeWarningToast() { + const toast = document.getElementById('cleanplaats-seller-age-warning-toast'); + if (toast) { + toast.classList.remove('visible'); + setTimeout(() => { + toast.remove(); + }, 300); + } +} + +function getSellerAgeWarningThresholdLabel() { + const panelText = getPanelLocaleText(); + const value = Math.max(1, parseInt(CLEANPLAATS.settings.sellerAgeWarningThresholdValue, 10) || 1); + const unit = CLEANPLAATS.settings.sellerAgeWarningThresholdUnit; + const unitLabel = panelText.sellerAgeWarningThresholdUnits[unit] || panelText.sellerAgeWarningThresholdUnits.months; + + return `${value} ${unitLabel}`; +} + +function getSellerAgeInfoFromPage() { + const sellerRows = Array.from(document.querySelectorAll('.SellerInfoSmall-root .SellerInfoSmall-row')); + const sellerAgeRow = sellerRows.find(row => parseSellerAgeToDays(row.textContent) !== null); + const sellerNameElement = document.querySelector('.SellerInfoSmall-root .SellerInfoSmall-name a, .SellerInfoSmall-root .SellerInfoSmall-name'); + const sellerAgeText = sellerAgeRow?.textContent?.trim() || ''; + const sellerName = sellerNameElement?.textContent?.trim() || 'Deze verkoper'; + const sellerAgeDays = parseSellerAgeToDays(sellerAgeText); + + if (!sellerAgeText || sellerAgeDays === null) { + return null; + } + + return { + sellerName, + sellerAgeText, + sellerAgeDays + }; +} + +function showSellerAgeWarningToast({ sellerName, sellerAgeText }) { + const panelText = getPanelLocaleText(); + const thresholdLabel = getSellerAgeWarningThresholdLabel(); + + clearSellerAgeWarningToast(); + + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast cleanplaats-blacklist-toast-warning'; + toast.id = 'cleanplaats-seller-age-warning-toast'; + + toast.innerHTML = DOMPurify.sanitize(` +
    + ! +
    + ${panelText.sellerAgeWarningToastTitle} + ${panelText.sellerAgeWarningToastMessage(sellerName, sellerAgeText, thresholdLabel)} +
    +
    + `); + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + toast.timeoutId = setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 5200); +} + +function maybeShowSellerAgeWarning(options = {}) { + const force = options.force === true; + + if (!isProductDetailPage()) { + clearSellerAgeWarningToast(); + return; + } + + if (!CLEANPLAATS.settings.sellerAgeWarningEnabled) { + clearSellerAgeWarningToast(); + return; + } + + const sellerAgeInfo = getSellerAgeInfoFromPage(); + if (!sellerAgeInfo) { + clearSellerAgeWarningToast(); + return; + } + + const thresholdDays = getSellerAgeWarningThresholdDays(); + if (sellerAgeInfo.sellerAgeDays >= thresholdDays) { + clearSellerAgeWarningToast(); + return; + } + + const warningKey = `${location.pathname}|${sellerAgeInfo.sellerAgeText}|${thresholdDays}`; + if (!force && CLEANPLAATS.runtime.lastSellerAgeWarningKey === warningKey) { + return; + } + + CLEANPLAATS.runtime.lastSellerAgeWarningKey = warningKey; + showSellerAgeWarningToast(sellerAgeInfo); +} + +function scheduleSellerAgeWarningCheck(options = {}) { + const force = options.force === true; + const resetState = options.resetState === true; + + if (resetState) { + CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; + } + + window.clearTimeout(CLEANPLAATS.runtime.sellerAgeCheckTimer); + CLEANPLAATS.runtime.sellerAgeCheckTimer = window.setTimeout(() => { + maybeShowSellerAgeWarning({ force }); + }, 180); +} + +function clearAllNotifications() { + const notifications = document.querySelectorAll('[id^="cleanplaats-"]'); + notifications.forEach(notification => { + if (notification.classList.contains('cleanplaats-empty-notification') || + notification.id === 'cleanplaats-loading' || + notification.id === 'cleanplaats-seller-age-warning-toast') { + notification.remove(); + } + }); + notificationVisible = false; +} + +function clearBubbleNotification() { + const toast = document.getElementById('cleanplaats-bubble-notification'); + if (toast) { + toast.classList.remove('visible'); + setTimeout(() => { + if (toast) { + toast.remove(); + } + }, 300); + } +} + +function showSettingFeedback() { + return; +} + +function showBlacklistToast(sellerName) { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + + toast.innerHTML = DOMPurify.sanitize(` +
    + 👁 +
    + ${sellerName} ${panelText.blacklistToastHiddenSuffix} + ${panelText.blacklistToastHint} +
    +
    + `); + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +} + +function showBulkBlacklistToast(count) { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + + toast.innerHTML = DOMPurify.sanitize(` +
    + 👁 +
    + ${count} ${panelText.blacklistToastHiddenPluralSuffix} + ${panelText.blacklistToastHint} +
    +
    + `); + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +} + +function showUnblacklistToast(sellerName) { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + + toast.innerHTML = DOMPurify.sanitize(` +
    + 👁 +
    + ${sellerName} ${panelText.blacklistToastShownSuffix} + ${panelText.blacklistToastShownHint} +
    +
    + `); + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +} + +function showBlacklistTermToast(term) { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + toast.innerHTML = DOMPurify.sanitize(` +
    + 🔎 +
    + '${term}' ${panelText.blacklistToastHiddenSuffix} + ${panelText.termToastHidden(term)} +
    +
    + `); + document.body.appendChild(toast); + setTimeout(() => { requestAnimationFrame(() => toast.classList.add('visible')); }, 50); + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +} + +function showUnblacklistTermToast(term) { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + toast.innerHTML = DOMPurify.sanitize(` +
    + 🔎 +
    + '${term}' ${panelText.blacklistToastShownSuffix} + ${panelText.termToastShown(term)} +
    +
    + `); + document.body.appendChild(toast); + setTimeout(() => { requestAnimationFrame(() => toast.classList.add('visible')); }, 50); + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +} diff --git a/src/content/runtime/content-observers-legacy.js b/src/content/runtime/content-observers-legacy.js new file mode 100644 index 0000000..d1c6a9c --- /dev/null +++ b/src/content/runtime/content-observers-legacy.js @@ -0,0 +1,189 @@ +/** + * Content-script observers and navigation handling. + */ + +function performCleanupAndCheckForEmptyPage() { + const existingNotification = document.getElementById('cleanplaats-empty-notification'); + if (existingNotification) { + existingNotification.remove(); + notificationVisible = false; + } + + clearBubbleNotification(); + scheduleSellerAgeWarningCheck({ resetState: true }); + + const checkContentLoaded = setInterval(() => { + if (document.querySelector('.hz-Listing') || document.querySelector('#adsense-container')) { + clearInterval(checkContentLoaded); + console.log('Cleanplaats: Running cleanup after navigation'); + performCleanup(); + injectBlacklistButtons(); + + setTimeout(checkForEmptyPage, 500); + } + }, 100); +} + +function setupObservers() { + let lastUrl = location.href; + + if (CLEANPLAATS.observers.mutation) { + CLEANPLAATS.observers.mutation.disconnect(); + } + + const observer = new MutationObserver(mutations => { + if (lastUrl !== location.href) { + console.log('Cleanplaats: URL changed from', lastUrl, 'to', location.href); + lastUrl = location.href; + CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; + performCleanupAndCheckForEmptyPage(); + } + + let shouldCleanup = false; + let shouldSyncHeaderLogo = false; + + for (const mutation of mutations) { + if (mutation.type === 'childList' && mutation.addedNodes.length) { + const listingMutationTarget = mutation.target?.nodeType === Node.ELEMENT_NODE + ? mutation.target.closest?.('.hz-Listing') + : null; + + if (window.innerWidth < 700 && listingMutationTarget) { + shouldCleanup = true; + break; + } + + for (const node of mutation.addedNodes) { + if (node.nodeType === Node.ELEMENT_NODE) { + if ( + node.classList?.contains('hz-Header-logo-desktop') || + node.classList?.contains('mp-Header-logo') || + node.querySelector?.('.hz-Header-logo-desktop, .mp-Header-logo') + ) { + shouldSyncHeaderLogo = true; + } + + if ( + node.classList?.contains('SellerInfoSmall-root') || + node.querySelector?.('.SellerInfoSmall-root') + ) { + scheduleSellerAgeWarningCheck(); + } + + if ( + node.classList?.contains('hz-Listing') || + node.querySelector?.('.hz-Listing') || + node.classList?.contains('MpCard-mpCardBanner') || + node.querySelector?.('.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]') || + node.classList?.contains('SimilarAdsList-related-ads-section') || + node.querySelector?.('.SimilarAdsList-related-ads-section') || + node.id === 'notifications-root' || + node.classList?.contains('NonFeatureBuyerBanner-root') || + node.classList?.contains('feature-banner') || + node.querySelector?.('#notifications-root, .NonFeatureBuyerBanner-root, .feature-banner[data-testid="50-percent-off-banner"]') || + node.id?.includes('ad') || + node.id === 'similar-items-root' || + node.querySelector?.('#similar-items-root, .AdmarktSimilarItemsContainer, .AdmarktSimilarItems-root') || + node.classList?.contains('hz-Banner') || + node.querySelector?.('[data-google-query-id]') || + node.classList?.contains('hz-FeedBannerBlock') || + node.classList?.contains('Banners-bannerFeedItem') || + node.id === 'banner-top-dt-container' || + node.querySelector?.('#banner-top-dt, #banner-top-dt-container') + ) { + shouldCleanup = true; + break; + } + } + } + } + + if (mutation.type === 'attributes') { + const target = mutation.target; + if ( + target?.classList?.contains('SellerInfoSmall-root') + ) { + scheduleSellerAgeWarningCheck(); + } + + if ( + target?.classList?.contains('hz-FeedBannerBlock') || + target?.classList?.contains('Banners-bannerFeedItem') || + target?.classList?.contains('MpCard-mpCardBanner') || + target?.classList?.contains('SimilarAdsList-related-ads-section') || + target?.classList?.contains('NonFeatureBuyerBanner-root') || + target?.classList?.contains('feature-banner') || + target?.classList?.contains('AdmarktSimilarItemsContainer') || + target?.classList?.contains('AdmarktSimilarItems-root') || + target?.id === 'notifications-root' || + target?.id === 'similar-items-root' || + target?.id === 'banner-right-container' || + target?.id === 'banner-top-dt-container' + ) { + shouldCleanup = true; + } + } + + if (shouldCleanup) break; + } + + if (CLEANPLAATS.settings.darkMode && shouldSyncHeaderLogo) { + syncHeaderLogoForDarkMode(true); + } + + if (shouldCleanup) { + performCleanup(); + injectBlacklistButtons(); + } + }); + + observer.observe(document, { + childList: true, + subtree: true, + attributes: true, + attributeFilter: ['class', 'style', 'hidden', 'aria-hidden'] + }); + + CLEANPLAATS.observers.mutation = observer; +} + +function handleNavigation() { + wakeUpBackground(); + window.dispatchEvent(new Event('navigation')); +} + +function setupNavigationDetection() { + window.addEventListener('popstate', handleNavigation); + + const originalPushState = history.pushState; + history.pushState = function () { + originalPushState.apply(this, arguments); + }; + + const originalReplaceState = history.replaceState; + history.replaceState = function () { + originalReplaceState.apply(this, arguments); + }; + + document.addEventListener('click', (e) => { + const link = e.target.closest('a[href]'); + if (link && link.hostname === window.location.hostname) { + setTimeout(() => handleNavigation(), 100); + } + }); +} + +function setupAllObservers() { + setupObservers(); + setupNavigationDetection(); +} + +function isSearchResultsPage() { + const url = window.location.href; + return url.includes('marktplaats.nl/l/') || + url.includes('marktplaats.nl/q/') || + url.includes('2dehands.be/l/') || + url.includes('2dehands.be/q/') || + url.includes('2ememain.be/l/') || + url.includes('2ememain.be/q/'); +} diff --git a/src/content/runtime/content-shared-legacy.js b/src/content/runtime/content-shared-legacy.js new file mode 100644 index 0000000..774e7dd --- /dev/null +++ b/src/content/runtime/content-shared-legacy.js @@ -0,0 +1,389 @@ +/** + * Cleanplaats shared content-script state and locale helpers. + */ + +var browserAPI = typeof browser !== 'undefined' ? browser : chrome; +var CLEANPLAATS_DARK_MODE_CLASS = 'cleanplaats-dark-mode'; +var CLEANPLAATS_TWH_SITE_CLASS = 'cleanplaats-site-twh'; +var CLEANPLAATS_THEME_STORAGE_KEY = 'cleanplaats:darkMode'; +var CLEANPLAATS_FLOATING_OFFSET_VAR = '--cleanplaats-floating-offset'; +var MARKTPLAATS_DESKTOP_LOGO_MATCH = /\/tenant--nlnl(?:\.[a-z0-9]+)?\.svg$/i; +var CLEANPLAATS_DARK_LOGO_PATH = 'icons/marktplaats-logo-darkmode.svg'; +var cleanplaatsStorageSyncRegistered = false; +var notificationTimeout; +var notificationVisible = false; + +function getReviewCTAConfig() { + const runtimeUrl = browserAPI?.runtime?.getURL ? browserAPI.runtime.getURL('') : ''; + const isFirefox = runtimeUrl.startsWith('moz-extension://') || navigator.userAgent.includes('Firefox'); + + if (isFirefox) { + return { + linkLabel: 'Firefox Add-ons', + url: 'https://addons.mozilla.org/nl/firefox/addon/cleanplaats-marktplaats-filter/reviews/' + }; + } + + return { + linkLabel: 'Chrome Web Store', + url: 'https://chromewebstore.google.com/detail/cleanplaats-marktplaats-z/peebdbeclpkljmfocjifjpjlngfpfhjp/reviews' + }; +} + +function is2ememainLocale() { + return location.hostname.includes('2ememain.be'); +} + +function is2dehandsFamilySite() { + return location.hostname.includes('2dehands.be') || location.hostname.includes('2ememain.be'); +} + +function isMarktplaatsSite() { + return location.hostname.includes('marktplaats.nl'); +} + +function isProductDetailPage() { + return /\/v\//.test(window.location.pathname); +} + +function normalizeSellerAgeText(text) { + return (text || '') + .trim() + .toLowerCase() + .replace(/\s+/g, ' '); +} + +function parseSellerAgeToDays(text) { + const normalizedText = normalizeSellerAgeText(text); + const match = normalizedText.match(/(\d+)\s+(dag|dagen|day|days|jour|jours|week|weken|maand|maanden|jaar|jaren|month|months|year|years|mois|an|ans|semaine|semaines)\b/); + + if (!match) { + return null; + } + + const amount = parseInt(match[1], 10); + const unit = match[2]; + + if (!Number.isFinite(amount) || amount < 0) { + return null; + } + + if (unit === 'dag' || unit === 'dagen' || unit === 'day' || unit === 'days' || unit === 'jour' || unit === 'jours') { + return amount; + } + + if (unit === 'week' || unit === 'weken' || unit === 'semaine' || unit === 'semaines') { + return amount * 7; + } + + if (unit === 'maand' || unit === 'maanden' || unit === 'month' || unit === 'months' || unit === 'mois') { + return amount * 30; + } + + if (unit === 'jaar' || unit === 'jaren' || unit === 'year' || unit === 'years' || unit === 'an' || unit === 'ans') { + return amount * 365; + } + + return null; +} + +function getSellerAgeWarningThresholdDays() { + const value = Math.max(1, parseInt(CLEANPLAATS.settings.sellerAgeWarningThresholdValue, 10) || 1); + const unit = CLEANPLAATS.settings.sellerAgeWarningThresholdUnit; + + if (unit === 'days') { + return value; + } + + if (unit === 'weeks') { + return value * 7; + } + + if (unit === 'years') { + return value * 365; + } + + return value * 30; +} + +function getPanelLocaleText() { + if (is2ememainLocale()) { + return { + feedbackLabel: 'Retour', + feedbackText: 'Issues GitHub', + feedbackAriaLabel: 'Ouvrir GitHub issues pour les demandes de fonctionnalité, modifications et bugs', + reviewAriaLabel: linkLabel => `Laisser un avis sur Cleanplaats sur ${linkLabel}`, + supportTitle: 'Soutenir Cleanplaats', + supportButton: 'Soutenir Cleanplaats', + optionsTitle: 'Options de filtrage', + topAdLabel: 'Pub au top', + topAdTooltip: "Masque les annonces marquées 'Pub au top'", + dagtoppersLabel: 'Tops du jour', + dagtoppersTooltip: "Supprime les annonces marquées 'Top du jour'", + promotedListingsLabel: 'Annonces professionnelles', + promotedListingsTooltip: "Masque les annonces de boutiques et d'entreprises, y compris sur la page d'accueil dans 'Pour vous' et 'Près de chez vous'", + stickersLabel: 'Autocollants promotionnels', + stickersTooltip: 'Supprime les annonces avec des autocollants promotionnels', + reservedLabel: 'Réservées', + reservedTooltip: "Masque les annonces marquées 'Réservé'", + favoriteRelatedAdsLabel: 'Annonces similaires dans les favoris', + favoriteRelatedAdsTooltip: 'Masque la liste des annonces similaires affichée dans les favoris', + sellerAgeWarningLabel: 'Alerte compte vendeur récent', + sellerAgeWarningTooltip: "Affiche un avertissement sur une page d'annonce si le compte vendeur est plus récent que votre seuil.", + sellerAgeWarningThresholdLabel: 'Avertir en dessous de', + sellerAgeWarningThresholdValueAriaLabel: 'Valeur seuil pour le compte vendeur récent', + sellerAgeWarningThresholdUnitAriaLabel: 'Unité seuil pour le compte vendeur récent', + sellerAgeWarningThresholdUnits: { + days: 'jours', + weeks: 'semaines', + months: 'mois', + years: 'ans' + }, + sellerAgeWarningToastTitle: 'Compte vendeur récent', + sellerAgeWarningToastMessage: (sellerName, sellerAgeText, thresholdLabel) => `${sellerName} est sur la plateforme depuis ${sellerAgeText}. Votre seuil est ${thresholdLabel}.`, + preferencesLabel: 'Préférences', + backLabel: '← Retour', + preferencesIntro: '', + darkModeLabel: 'Mode sombre', + darkModeTooltip: 'Active un thème sombre pour 2ememain et le panneau Cleanplaats. Expérimental: si la visibilité pose problème, désactivez-le.', + resultsPerPageLabel: 'Résultats par page :', + defaultSortLabel: 'Tri par défaut :', + sortOptions: { + standard: 'Standard', + date_new_old: 'Plus récentes', + date_old_new: 'Plus anciennes', + price_low_high: 'Prix ↑', + price_high_low: 'Prix ↓', + distance: 'Distance' + }, + statsTitle: 'Éléments supprimés', + statsTop: 'Top :', + statsDagtoppers: 'Tops du jour :', + statsBusiness: 'Professionnel :', + statsStickers: 'Autocollants :', + statsOther: 'Autres :', + statsTotal: 'Total :', + manageTerms: 'Gérer les termes masqués dans le titre', + manageSellers: 'Gérer les vendeurs masqués', + termsModalTitle: 'Termes masqués', + termsEmpty: 'Aucun terme ajouté', + hiddenButton: 'Masqué', + unhideButton: 'Afficher', + termInputPlaceholder: 'Saisissez un terme', + termInputHelp: 'Les annonces sont masquées si ce terme apparaît dans le titre.', + addButton: 'Ajouter', + closeButton: 'Fermer', + sellersModalTitle: 'Vendeurs masqués', + sellersEmpty: 'Aucun vendeur ajouté', + sellerInputPlaceholder: 'ex. Catawiki', + sellerInputHelp: 'Vous voulez ajouter plusieurs noms à la fois ? Séparez-les avec des virgules ou des points-virgules.', + hideSellerButton: 'Masquer le vendeur', + hiddenSellerButton: 'Vendeur masqué', + hideSellerButtonAriaLabel: 'Masquer ce vendeur', + blacklistToastHint: 'Gérez les vendeurs masqués via le panneau', + blacklistToastHiddenSuffix: 'masqué', + blacklistToastHiddenPluralSuffix: 'vendeurs masqués', + blacklistToastShownSuffix: "n'est plus masqué", + blacklistToastShownHint: 'Ce vendeur est à nouveau visible dans les résultats', + termToastHidden: term => `Toutes les annonces contenant le terme '${term}' sont désormais masquées.`, + termToastShown: term => `Les annonces contenant le terme '${term}' sont à nouveau affichées.` + }; + } + + return { + feedbackLabel: 'Feedback', + feedbackText: 'GitHub issues', + feedbackAriaLabel: 'Open GitHub issues voor functieverzoeken, wijzigingen en bugs', + reviewAriaLabel: linkLabel => `Laat een review achter voor Cleanplaats op ${linkLabel}`, + supportTitle: 'Steun Cleanplaats met een kleine bijdrage', + supportButton: 'Steun Cleanplaats', + optionsTitle: 'Filteropties', + topAdLabel: 'Topadvertenties', + topAdTooltip: location.hostname.includes('2dehands.be') + ? "Verbergt 'Topadvertentie' en 'Topzoekertje' listings" + : "Verwijdert betaalde 'Topadvertentie' advertenties", + dagtoppersLabel: 'Dagtoppers', + dagtoppersTooltip: "Verwijdert 'Dagtopper' advertenties", + promotedListingsLabel: 'Bedrijfsadvertenties', + promotedListingsTooltip: "Verbergt advertenties van bedrijven en winkels, zoals Catawiki, ook op de homepage bij 'Voor jou' en 'In je buurt'", + stickersLabel: 'Opvalstickers', + stickersTooltip: 'Verwijdert advertenties met opvalstickers', + reservedLabel: 'Gereserveerde', + reservedTooltip: "Verbergt advertenties die 'Gereserveerd' zijn", + favoriteRelatedAdsLabel: 'Gerelateerde advertenties bij favorieten', + favoriteRelatedAdsTooltip: 'Verbergt het blok met gerelateerde advertenties op de favorietenpagina', + sellerAgeWarningLabel: 'Waarschuwing voor nieuwe verkoperaccounts', + sellerAgeWarningTooltip: 'Toont op een advertentiepagina een waarschuwing als het verkopersaccount jonger is dan jouw ingestelde grens.', + sellerAgeWarningThresholdLabel: 'Waarschuwen onder', + sellerAgeWarningThresholdValueAriaLabel: 'Drempelwaarde voor waarschuwing nieuwe verkoperaccounts', + sellerAgeWarningThresholdUnitAriaLabel: 'Drempeleenheid voor waarschuwing nieuwe verkoperaccounts', + sellerAgeWarningThresholdUnits: { + days: 'dagen', + weeks: 'weken', + months: 'maanden', + years: 'jaar' + }, + sellerAgeWarningToastTitle: 'Nieuw verkoperaccount', + sellerAgeWarningToastMessage: (sellerName, sellerAgeText, thresholdLabel) => `${sellerName} zit pas ${sellerAgeText}. Jouw grens staat op ${thresholdLabel}. Verberg verkoper via de knop onder de naam.`, + preferencesLabel: 'Voorkeuren', + backLabel: '← Terug', + preferencesIntro: '', + darkModeLabel: 'Donkere modus', + darkModeTooltip: 'Schakelt een donker thema in voor Marktplaats en het Cleanplaats-paneel. Experimenteel: werkt meestal goed, maar zet het uit als iets slecht leesbaar is.', + resultsPerPageLabel: 'Resultaten per pagina:', + defaultSortLabel: 'Standaard sortering:', + sortOptions: { + standard: 'Standaard', + date_new_old: 'Nieuw eerst', + date_old_new: 'Oud eerst', + price_low_high: 'Prijs ↑', + price_high_low: 'Prijs ↓', + distance: 'Afstand' + }, + statsTitle: 'Verwijderde items', + statsTop: 'Top:', + statsDagtoppers: 'Dagtoppers:', + statsBusiness: 'Bedrijf:', + statsStickers: 'Stickers:', + statsOther: 'Overig:', + statsTotal: 'Totaal:', + manageTerms: 'Beheer blacklist-termen in titels', + manageSellers: 'Beheer verborgen verkopers', + termsModalTitle: 'Blacklist termen', + termsEmpty: 'Geen termen toegevoegd', + hiddenButton: 'Verborgen', + unhideButton: 'Opheffen', + termInputPlaceholder: 'Voer een term in', + termInputHelp: 'Advertenties worden verborgen als deze term in de titel voorkomt.', + addButton: 'Toevoegen', + closeButton: 'Sluiten', + sellersModalTitle: 'Verborgen verkopers', + sellersEmpty: 'Geen verkopers toegevoegd', + sellerInputPlaceholder: 'bijv. Catawiki', + sellerInputHelp: "Wil je meerdere namen tegelijk toevoegen? Scheid ze dan met komma's of puntkomma's.", + hideSellerButton: 'Verkoper verbergen', + hiddenSellerButton: 'Verkoper verborgen', + hideSellerButtonAriaLabel: 'Verberg deze verkoper', + blacklistToastHint: 'Beheer verborgen verkopers via het paneel', + blacklistToastHiddenSuffix: 'verborgen', + blacklistToastHiddenPluralSuffix: 'verkopers verborgen', + blacklistToastShownSuffix: 'niet meer verborgen', + blacklistToastShownHint: 'Deze verkoper is weer zichtbaar in de resultaten', + termToastHidden: term => `Alle advertenties met de term '${term}' zijn nu verborgen.`, + termToastShown: term => `Advertenties met de term '${term}' worden weer getoond.` + }; +} + +var CLEANPLAATS = { + settings: { + removeTopAds: true, + removeDagtoppers: true, + removePromotedListings: true, + removeOpvalStickers: true, + removeReservedListings: false, + removeFavoriteRelatedAds: false, + sellerAgeWarningEnabled: false, + sellerAgeWarningThresholdValue: 3, + sellerAgeWarningThresholdUnit: 'days', + darkMode: false, + blacklistedSellers: [], + blacklistedTerms: [], + resultsPerPage: 30, + defaultSortMode: 'standard', + sortPreferenceSource: 'cleanplaats' + }, + + stats: { + topAdsRemoved: 0, + dagtoppersRemoved: 0, + promotedListingsRemoved: 0, + opvalStickersRemoved: 0, + otherAdsRemoved: 0, + totalRemoved: 0 + }, + + observers: { + mutation: null, + ads: null, + webchat: null, + sellerAge: null + }, + + runtime: { + lastSellerAgeWarningKey: '', + sellerAgeCheckTimer: 0 + }, + + featureFlags: { + showStats: true, + autoCollapse: false, + firstRun: true + }, + + panelState: { + isCollapsed: false, + hasShownWelcomeToast: false, + lastSeenVersion: '', + activeView: 'filters' + } +}; + +var CLEANPLAATS_UPDATE_NOTES = { + '2.0.7': { + intro: 'Cleanplaats 2.0.7 voegt een extra veiligheidswaarschuwing toe op advertentiepagina’s en maakt het verbergen van verkopers duidelijker en handiger.', + highlights: [ + 'Je kunt nu een waarschuwing krijgen bij nieuwe verkoperaccounts. Deze instelling vind je onder het tabje "Voorkeuren" in het paneel, waar je zelf kiest vanaf hoeveel dagen, weken, maanden of jaren je zo’n melding wilt zien.', + 'Op advertentiepagina’s staat nu ook een knop onder de verkopernaam om in één keer alle advertenties van die verkoper te verbergen.', + 'De knop om een verkoper te verbergen is nu ook netjes vertaald op 2ememain.' + ], + note: 'Zie je een verkoper die je niet vertrouwt? Dan kun je die nu direct vanaf de advertentiepagina verbergen.' + }, + '2.0.6': { + intro: 'Cleanplaats 2.0.6 herstelt een paar dingen op Favorieten en lost een vervelende fout op die sommige filters uit beeld haalde.', + highlights: [ + 'De filters voor categorie en afstand zijn weer terug waar ze horen.', + 'Gerelateerde advertenties in Favorieten worden niet meer standaard verborgen. Via de nieuwe knop "Voorkeuren" kun je dit nu zelf aan of uit zetten.', + 'Niet-beschikbare advertenties in Favorieten zien er in dark mode nu weer duidelijk anders uit dan actieve advertenties.' + ], + note: 'Excuses voor de bug waardoor categorie en afstand ineens konden verdwijnen. Bedankt aan iedereen die dit zo snel heeft gemeld via Reddit en GitHub issues. Jullie hulp en betrokkenheid maken Cleanplaats tot het succes dat het is.' + }, + '2.0.5': { + intro: 'Cleanplaats 2.0.5 werkt Marktplaats verder bij met vooral meer dark mode-ondersteuning en een rustigere interface op meerdere pagina’s.', + highlights: [ + 'Dark mode is verder uitgebreid op onder meer "Mijn advertenties", account- en plaats advertentie-pagina’s, tabelweergaven en onderdelen rond eigen advertenties.', + 'Ook losse interface-elementen zoals "Deal gesloten?", voorstel- en leveringsmenu’s nemen nu beter het donkere thema over.', + 'Storende banners en promotieblokken zijn op meerdere plekken verborgen, waaronder "gerelateerde advertenties" in Favorieten.', + 'Een visuele flicker bij het laden in dark mode is aangepakt, waardoor pagina’s rustiger en consistenter openen.', + "Marktplaats banner voor 'koop je auto bij autobedrijven' weggehaald" + ], + note: "Zie je nog een onderdeel of licht onderdeel dat door de dark mode heen glipt in veel gebruikte pagina's? Meld het via GitHub issues in het paneel." + } +}; + +var MARKTPLAATS_SORT_LABEL_TO_MODE = { + 'standaard': 'standard', + 'datum (nieuw-oud)': 'date_new_old', + 'datum (oud-nieuw)': 'date_old_new', + 'prijs (laag-hoog)': 'price_low_high', + 'prijs (hoog-laag)': 'price_high_low', + 'afstand': 'distance' +}; + +function normalizeSortLabel(label) { + return (label || '').trim().toLowerCase(); +} + +function getSortModeFromLabel(label) { + return MARKTPLAATS_SORT_LABEL_TO_MODE[normalizeSortLabel(label)] || null; +} + +function isMarketplaceSortDropdown(element) { + if (!(element instanceof HTMLSelectElement)) return false; + + const ariaLabel = normalizeSortLabel(element.getAttribute('aria-label')); + if (ariaLabel === 'sorteer op') return true; + + return Array.from(element.options || []).some(option => { + return normalizeSortLabel(option.textContent) === 'datum (nieuw-oud)'; + }); +} diff --git a/src/content/runtime/content-storage-legacy.js b/src/content/runtime/content-storage-legacy.js new file mode 100644 index 0000000..9d3d180 --- /dev/null +++ b/src/content/runtime/content-storage-legacy.js @@ -0,0 +1,102 @@ +/** + * Content-script storage and state persistence. + */ + +function registerSettingsStorageSync() { + if (cleanplaatsStorageSyncRegistered || !browserAPI?.storage?.onChanged?.addListener) { + return; + } + + browserAPI.storage.onChanged.addListener((changes, areaName) => { + if (areaName !== 'local' || !changes.cleanplaatsSettings?.newValue) { + return; + } + + try { + const nextSettings = JSON.parse(changes.cleanplaatsSettings.newValue); + const darkModeEnabled = Boolean(nextSettings?.darkMode); + + if (CLEANPLAATS.settings.darkMode !== darkModeEnabled) { + CLEANPLAATS.settings.darkMode = darkModeEnabled; + applyDarkModeToDocument(darkModeEnabled); + syncDarkModeToggle(darkModeEnabled); + } else { + persistDarkModePreference(darkModeEnabled); + } + } catch (error) { + console.error('Cleanplaats: Failed to sync dark mode from storage', error); + } + }); + + cleanplaatsStorageSyncRegistered = true; +} + +function loadSettings() { + return new Promise((resolve, reject) => { + browserAPI.storage.local.get(['cleanplaatsSettings', 'panelState'], (items) => { + if (browserAPI.runtime.lastError) { + console.error('Cleanplaats: Failed to load settings from storage', browserAPI.runtime.lastError); + reject(browserAPI.runtime.lastError); + return; + } + + try { + const storedSettings = items.cleanplaatsSettings; + const storedPanelState = items.panelState; + + if (storedSettings) { + const settings = JSON.parse(storedSettings); + Object.assign(CLEANPLAATS.settings, settings); + } + + try { + const storedDarkMode = window.localStorage.getItem(CLEANPLAATS_THEME_STORAGE_KEY); + if (storedDarkMode === 'true' || storedDarkMode === 'false') { + CLEANPLAATS.settings.darkMode = storedDarkMode === 'true'; + } + } catch (error) { + console.warn('Cleanplaats: Failed to read dark mode from localStorage', error); + } + + if (storedPanelState) { + CLEANPLAATS.panelState = JSON.parse(storedPanelState); + } + + resolve(); + } catch (error) { + console.error('Cleanplaats: Failed to parse settings from storage', error); + reject(error); + } + }); + }); +} + +function saveSettings() { + return new Promise((resolve, reject) => { + try { + persistDarkModePreference(Boolean(CLEANPLAATS.settings.darkMode)); + browserAPI.storage.local.set({ + cleanplaatsSettings: JSON.stringify(CLEANPLAATS.settings), + panelState: JSON.stringify(CLEANPLAATS.panelState) + }, () => { + if (browserAPI.runtime.lastError) { + console.error('Cleanplaats: Failed to save settings to storage', browserAPI.runtime.lastError); + reject(browserAPI.runtime.lastError); + return; + } + resolve(); + }); + } catch (error) { + console.error('Cleanplaats: Failed to save settings to storage', error); + reject(error); + } + }); +} + +function resetStats() { + Object.keys(CLEANPLAATS.stats).forEach(key => { + CLEANPLAATS.stats[key] = 0; + }); + + updateStatsDisplay(); +} diff --git a/src/content/runtime/content-theme-legacy.js b/src/content/runtime/content-theme-legacy.js new file mode 100644 index 0000000..ca63c34 --- /dev/null +++ b/src/content/runtime/content-theme-legacy.js @@ -0,0 +1,199 @@ +/** + * Content-script dark mode and sort synchronization helpers. + */ + +function persistDarkModePreference(enabled) { + try { + window.localStorage.setItem(CLEANPLAATS_THEME_STORAGE_KEY, enabled ? 'true' : 'false'); + } catch (error) { + console.warn('Cleanplaats: Failed to persist dark mode in localStorage', error); + } +} + +function syncSiteThemeClass() { + document.documentElement.classList.toggle(CLEANPLAATS_TWH_SITE_CLASS, is2dehandsFamilySite()); +} + +function syncCleanplaatsSortMode(sortMode) { + if (!sortMode) return; + + const modeChanged = CLEANPLAATS.settings.defaultSortMode !== sortMode; + const sourceChanged = CLEANPLAATS.settings.sortPreferenceSource !== 'marketplace'; + if (!modeChanged && !sourceChanged) return; + + CLEANPLAATS.settings.defaultSortMode = sortMode; + CLEANPLAATS.settings.sortPreferenceSource = 'marketplace'; + + const cleanplaatsDropdown = document.getElementById('cleanplaats-sort-dropdown'); + if (cleanplaatsDropdown && cleanplaatsDropdown.value !== sortMode) { + cleanplaatsDropdown.value = sortMode; + } + + wakeUpBackground(); + saveSettings().catch(error => { + console.error('Cleanplaats: Failed to sync sort mode from page selection', error); + }); +} + +function setupMarketplaceSortSync() { + if (document.body?.dataset.cleanplaatsSortSyncBound === 'true') return; + if (document.body) { + document.body.dataset.cleanplaatsSortSyncBound = 'true'; + } + + document.addEventListener('change', (event) => { + const target = event.target; + if (!isMarketplaceSortDropdown(target)) return; + + const selectedOption = target.options[target.selectedIndex]; + const sortMode = getSortModeFromLabel(selectedOption?.textContent || target.value); + syncCleanplaatsSortMode(sortMode); + }, true); +} + +function applyDarkModeToDocument(enabled) { + const isEnabled = Boolean(enabled); + syncSiteThemeClass(); + document.documentElement.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, isEnabled); + persistDarkModePreference(isEnabled); + syncHeaderLogoForDarkMode(isEnabled); + + const panel = document.getElementById('cleanplaats-panel'); + if (panel) { + panel.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, isEnabled); + updateCollapsedPanelIcon(panel); + } +} + +function getCollapsedPanelIconUrl() { + const iconPath = CLEANPLAATS.settings.darkMode ? 'icons/darkmode_icon_128.png' : 'icons/icon128.png'; + return browserAPI.runtime.getURL(iconPath); +} + +function syncHeaderLogoForDarkMode(enabled) { + document.querySelectorAll('.hz-Header-logo-desktop').forEach(img => { + if (!(img instanceof HTMLImageElement)) return; + + const currentSource = img.getAttribute('src') || ''; + const originalSource = img.dataset.cleanplaatsOriginalSrc || currentSource; + + if (!img.dataset.cleanplaatsOriginalSrc) { + img.dataset.cleanplaatsOriginalSrc = currentSource; + } + + if (!MARKTPLAATS_DESKTOP_LOGO_MATCH.test(originalSource)) { + return; + } + + const nextSource = enabled + ? browserAPI.runtime.getURL(CLEANPLAATS_DARK_LOGO_PATH) + : originalSource; + + if (currentSource !== nextSource) { + img.setAttribute('src', nextSource); + } + }); + + document.querySelectorAll('.mp-Header-logo').forEach(link => { + if (!(link instanceof HTMLElement)) return; + + if (enabled && isMarktplaatsSite()) { + link.style.backgroundImage = `url("${browserAPI.runtime.getURL(CLEANPLAATS_DARK_LOGO_PATH)}")`; + link.style.backgroundRepeat = 'no-repeat'; + link.style.backgroundPosition = 'center'; + link.style.backgroundSize = 'contain'; + return; + } + + link.style.removeProperty('background-image'); + link.style.removeProperty('background-repeat'); + link.style.removeProperty('background-position'); + link.style.removeProperty('background-size'); + }); +} + +function updateCollapsedPanelIcon(panel = document.getElementById('cleanplaats-panel')) { + if (!panel) return; + + if (panel.classList.contains('collapsed-ready')) { + panel.style.backgroundImage = `url('${getCollapsedPanelIconUrl()}')`; + return; + } + + panel.style.backgroundImage = ''; +} + +function syncDarkModeToggle(enabled) { + const toggle = document.getElementById('cleanplaats-theme-toggle'); + if (!toggle) return; + + const isEnabled = Boolean(enabled); + toggle.setAttribute('aria-pressed', isEnabled ? 'true' : 'false'); + toggle.setAttribute('aria-checked', isEnabled ? 'true' : 'false'); + toggle.dataset.theme = isEnabled ? 'dark' : 'light'; +} + +function isElementVisuallyVisible(element) { + if (!(element instanceof Element)) return false; + + const style = window.getComputedStyle(element); + if ( + style.display === 'none' || + style.visibility === 'hidden' || + style.opacity === '0' + ) { + return false; + } + + const rect = element.getBoundingClientRect(); + return rect.width > 0 && + rect.height > 0 && + rect.bottom > 0 && + rect.right > 0 && + rect.top < window.innerHeight && + rect.left < window.innerWidth; +} + +function updateFloatingUiOffsetForWebchat() { + const webchatToggle = document.querySelector( + '[data-cognigy-webchat-toggle="true"], #webchatWindowToggleButton' + ); + + let offset = 0; + + if (isElementVisuallyVisible(webchatToggle)) { + const rect = webchatToggle.getBoundingClientRect(); + const gap = 16; + offset = Math.max(0, Math.ceil(rect.height + gap)); + } + + document.documentElement.style.setProperty(CLEANPLAATS_FLOATING_OFFSET_VAR, `${offset}px`); +} + +function setupWebchatCollisionAvoidance() { + updateFloatingUiOffsetForWebchat(); + + if (CLEANPLAATS.observers.webchat) { + CLEANPLAATS.observers.webchat.disconnect(); + } + + let rafId = 0; + const scheduleOffsetUpdate = () => { + if (rafId) return; + rafId = window.requestAnimationFrame(() => { + rafId = 0; + updateFloatingUiOffsetForWebchat(); + }); + }; + + const observer = new MutationObserver(scheduleOffsetUpdate); + observer.observe(document.body, { + childList: true, + subtree: true, + attributes: true, + attributeFilter: ['style', 'class', 'hidden', 'aria-hidden'] + }); + + window.addEventListener('resize', scheduleOffsetUpdate, { passive: true }); + CLEANPLAATS.observers.webchat = observer; +} diff --git a/src/content/runtime/content-ui-legacy.js b/src/content/runtime/content-ui-legacy.js new file mode 100644 index 0000000..e9b8325 --- /dev/null +++ b/src/content/runtime/content-ui-legacy.js @@ -0,0 +1,830 @@ +/** + * Content-script control panel rendering and UI event handling. + */ + +function createControlPanel() { + if (document.getElementById('cleanplaats-panel')) return; + + const panel = document.createElement('div'); + panel.id = 'cleanplaats-panel'; + panel.className = 'cleanplaats-panel'; + panel.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, CLEANPLAATS.settings.darkMode); + + if (CLEANPLAATS.featureFlags.autoCollapse || CLEANPLAATS.panelState.isCollapsed) { + panel.classList.add('collapsed'); + panel.classList.add('collapsed-ready'); + updateCollapsedPanelIcon(panel); + } + + const panelText = getPanelLocaleText(); + const reviewCTA = getReviewCTAConfig(); + + panel.innerHTML = DOMPurify.sanitize(` +
    +
    +

    + + Cleanplaats + +

    +
    + + +
    +
    + +
    +
    +
    +
    + + + ${panelText.supportButton} + +
    +
    ${panelText.optionsTitle}
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    + + +
    +
    + + +
    +
    + + ${CLEANPLAATS.featureFlags.showStats ? ` +
    +
    ${panelText.statsTitle}
    +
    + ${panelText.statsTop} + 0 +
    +
    + ${panelText.statsDagtoppers} + 0 +
    +
    + ${panelText.statsBusiness} + 0 +
    +
    + ${panelText.statsStickers} + 0 +
    +
    + ${panelText.statsOther} + 0 +
    +
    + ${panelText.statsTotal} + 0 +
    +
    + ` : ''} + + + +
    +
    +
    +
    + +
    ${panelText.preferencesLabel}
    +
    + ${panelText.preferencesIntro ? ` +
    + ${panelText.preferencesIntro} +
    + ` : ''} +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + +
    +
    +
    +
    +
    + + +
    + `); + + document.body.appendChild(panel); + const logoImg = panel.querySelector('#cleanplaats-header-logo'); + if (logoImg) { + logoImg.src = browserAPI.runtime.getURL('icons/icon128.png'); + } + panel.querySelectorAll('.cleanplaats-external-link').forEach(link => { + link.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + window.open(link.href, '_blank', 'noopener,noreferrer'); + }); + }); + setupEventListeners(); + syncDarkModeToggle(CLEANPLAATS.settings.darkMode); + + document.getElementById('cleanplaats-manage-blacklist').addEventListener('click', (e) => { + e.preventDefault(); + showBlacklistModal(); + }); + + document.getElementById('cleanplaats-manage-terms').addEventListener('click', (e) => { + e.preventDefault(); + showTermsModal(); + }); + + if (!document.getElementById('cleanplaats-global-tooltip')) { + const tooltip = document.createElement('div'); + tooltip.id = 'cleanplaats-global-tooltip'; + tooltip.className = 'cleanplaats-global-tooltip'; + tooltip.style.display = 'none'; + document.body.appendChild(tooltip); + } + + setupGlobalTooltip(); + setActivePanelView(getStoredPanelView(), { persist: false, animated: false }); +} + +function getStoredPanelView() { + return CLEANPLAATS.panelState.activeView === 'preferences' ? 'preferences' : 'filters'; +} + +function getPanelViewDirection(fromView, toView) { + if (fromView === toView) { + return 'none'; + } + return toView === 'preferences' ? 'down' : 'up'; +} + +function clearPanelViewAnimationState(viewElement) { + if (!viewElement) { + return; + } + viewElement.classList.remove( + 'active', + 'is-entering', + 'is-leaving', + 'is-entering-down', + 'is-entering-up', + 'is-leaving-down', + 'is-leaving-up' + ); +} + +function syncPanelViewContainerHeight(activeView) { + const viewsContainer = document.getElementById('cleanplaats-panel-views'); + if (!viewsContainer || !activeView) { + return; + } + + viewsContainer.style.height = `${activeView.scrollHeight}px`; +} + +function measurePanelViewHeight(viewElement) { + const viewsContainer = document.getElementById('cleanplaats-panel-views'); + if (!viewElement || !viewsContainer) { + return 0; + } + + const clone = viewElement.cloneNode(true); + const measurementWrapper = document.createElement('div'); + clone.removeAttribute('id'); + clone.querySelectorAll('[id]').forEach((element) => { + element.removeAttribute('id'); + }); + + clearPanelViewAnimationState(clone); + clone.classList.add('active'); + clone.setAttribute('aria-hidden', 'true'); + clone.style.position = 'relative'; + clone.style.visibility = 'hidden'; + clone.style.pointerEvents = 'none'; + clone.style.opacity = '0'; + clone.style.transform = 'translateY(0)'; + + measurementWrapper.setAttribute('aria-hidden', 'true'); + measurementWrapper.style.position = 'absolute'; + measurementWrapper.style.top = '0'; + measurementWrapper.style.right = '0'; + measurementWrapper.style.left = '0'; + measurementWrapper.style.visibility = 'hidden'; + measurementWrapper.style.pointerEvents = 'none'; + measurementWrapper.style.opacity = '0'; + measurementWrapper.style.overflow = 'visible'; + + measurementWrapper.appendChild(clone); + viewsContainer.appendChild(measurementWrapper); + const height = clone.getBoundingClientRect().height; + measurementWrapper.remove(); + + return height; +} + +function setActivePanelView(view, options = {}) { + const persist = options.persist !== false; + const nextView = view === 'preferences' ? 'preferences' : 'filters'; + const animated = options.animated !== false; + const viewsContainer = document.getElementById('cleanplaats-panel-views'); + const filtersView = document.getElementById('cleanplaats-view-filters'); + const preferencesView = document.getElementById('cleanplaats-view-preferences'); + + if (!filtersView || !preferencesView || !viewsContainer) { + return; + } + + const currentView = CLEANPLAATS.panelState.activeView === 'preferences' ? 'preferences' : 'filters'; + const currentElement = currentView === 'preferences' ? preferencesView : filtersView; + const nextElement = nextView === 'preferences' ? preferencesView : filtersView; + + if (currentView === nextView) { + clearPanelViewAnimationState(filtersView); + clearPanelViewAnimationState(preferencesView); + nextElement.classList.add('active'); + syncPanelViewContainerHeight(nextElement); + CLEANPLAATS.panelState.activeView = nextView; + + if (persist) { + saveSettings().catch(error => { + console.error('Cleanplaats: Failed to store active panel view', error); + }); + } + return; + } + + if (!animated) { + clearPanelViewAnimationState(filtersView); + clearPanelViewAnimationState(preferencesView); + nextElement.classList.add('active'); + syncPanelViewContainerHeight(nextElement); + CLEANPLAATS.panelState.activeView = nextView; + + if (persist) { + saveSettings().catch(error => { + console.error('Cleanplaats: Failed to store active panel view', error); + }); + } + return; + } + + const direction = getPanelViewDirection(currentView, nextView); + const fromHeight = currentElement.scrollHeight; + const nextHeight = measurePanelViewHeight(nextElement); + + clearPanelViewAnimationState(filtersView); + clearPanelViewAnimationState(preferencesView); + + currentElement.classList.add('active', 'is-leaving', direction === 'down' ? 'is-leaving-up' : 'is-leaving-down'); + nextElement.classList.add('active', 'is-entering', direction === 'down' ? 'is-entering-down' : 'is-entering-up'); + + viewsContainer.style.height = `${fromHeight}px`; + void viewsContainer.offsetHeight; + + requestAnimationFrame(() => { + viewsContainer.style.height = `${nextHeight}px`; + currentElement.classList.remove(direction === 'down' ? 'is-leaving-up' : 'is-leaving-down'); + nextElement.classList.remove(direction === 'down' ? 'is-entering-down' : 'is-entering-up'); + }); + + window.clearTimeout(viewsContainer._cleanplaatsViewAnimationTimer); + viewsContainer._cleanplaatsViewAnimationTimer = window.setTimeout(() => { + clearPanelViewAnimationState(currentElement); + clearPanelViewAnimationState(nextElement); + nextElement.classList.add('active'); + syncPanelViewContainerHeight(nextElement); + }, 340); + + CLEANPLAATS.panelState.activeView = nextView; + + if (persist) { + saveSettings().catch(error => { + console.error('Cleanplaats: Failed to store active panel view', error); + }); + } +} + +function setupGlobalTooltip() { + const tooltip = document.getElementById('cleanplaats-global-tooltip'); + if (!tooltip) return; + document.querySelectorAll('.cleanplaats-tooltip-icon').forEach(icon => { + icon.addEventListener('mouseenter', function () { + const text = icon.getAttribute('data-tooltip'); + if (!text) return; + tooltip.textContent = text; + tooltip.style.display = 'block'; + const rect = icon.getBoundingClientRect(); + const tooltipRect = tooltip.getBoundingClientRect(); + let left = rect.left + (rect.width / 2) - (tooltipRect.width / 2); + left = Math.max(8, Math.min(left, window.innerWidth - tooltipRect.width - 8)); + let top = rect.top - tooltipRect.height - 8; + if (top < 8) { + top = rect.bottom + 8; + } + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + tooltip.style.opacity = '1'; + }); + icon.addEventListener('mouseleave', function () { + tooltip.style.opacity = '0'; + tooltip.style.display = 'none'; + }); + }); +} + +function syncSellerAgeThresholdControlsState() { + const controls = document.getElementById('cleanplaats-seller-age-threshold-controls'); + const valueInput = document.getElementById('cleanplaats-seller-age-threshold-value'); + const unitSelect = document.getElementById('cleanplaats-seller-age-threshold-unit'); + const isEnabled = Boolean(CLEANPLAATS.settings.sellerAgeWarningEnabled); + + if (controls) { + controls.classList.toggle('is-disabled', !isEnabled); + } + + if (valueInput) { + valueInput.disabled = !isEnabled; + } + + if (unitSelect) { + unitSelect.disabled = !isEnabled; + } +} + +function handleSellerAgeThresholdChange() { + const valueInput = document.getElementById('cleanplaats-seller-age-threshold-value'); + const unitSelect = document.getElementById('cleanplaats-seller-age-threshold-unit'); + + if (!valueInput || !unitSelect) { + return; + } + + const nextValue = Math.min(99, Math.max(1, parseInt(valueInput.value, 10) || 1)); + valueInput.value = String(nextValue); + CLEANPLAATS.settings.sellerAgeWarningThresholdValue = nextValue; + CLEANPLAATS.settings.sellerAgeWarningThresholdUnit = unitSelect.value; + CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; + + saveSettings() + .then(() => { + showSettingFeedback(); + scheduleSellerAgeWarningCheck({ force: true }); + }) + .catch(error => { + console.error('Cleanplaats: Failed to save seller age threshold', error); + }); +} + +function handleSellerAgeThresholdInput() { + const valueInput = document.getElementById('cleanplaats-seller-age-threshold-value'); + if (!valueInput) { + return; + } + + const rawValue = String(valueInput.value || '').replace(/[^\d]/g, ''); + if (!rawValue) { + return; + } + + const nextValue = Math.min(99, Math.max(1, parseInt(rawValue, 10) || 1)); + valueInput.value = String(nextValue); + CLEANPLAATS.settings.sellerAgeWarningThresholdValue = nextValue; + CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; + + saveSettings() + .then(() => { + // Persist immediately so refreshes don't lose the typed value, + // but avoid re-triggering the warning toast on every keystroke. + }) + .catch(error => { + console.error('Cleanplaats: Failed to store seller age threshold value during input', error); + }); +} + +function setupEventListeners() { + const panel = document.getElementById('cleanplaats-panel'); + const toggle = document.getElementById('cleanplaats-toggle'); + const openPreferencesButton = document.getElementById('cleanplaats-open-preferences'); + const backToFiltersButton = document.getElementById('cleanplaats-back-to-filters'); + + if (panel) { + panel.addEventListener('click', (e) => { + if (panel.classList.contains('animating')) { + return; + } + + const isPanelCollapsed = panel.classList.contains('collapsed'); + let canToggle = false; + + if (isPanelCollapsed) { + if (e.target === panel) { + canToggle = true; + } + } else { + const header = document.getElementById('cleanplaats-header'); + if (header && header.contains(e.target)) { + if ( + e.target.id === 'cleanplaats-toggle' || + !e.target.closest('input, button, a, .cleanplaats-tooltip, .cleanplaats-switch') + ) { + canToggle = true; + } + } + } + + if (canToggle) { + e.preventDefault(); + e.stopPropagation(); + + const blacklistModal = document.getElementById('cleanplaats-blacklist-modal'); + const termsModal = document.getElementById('cleanplaats-terms-modal'); + if (blacklistModal && blacklistModal.style.display === 'block') { + blacklistModal.style.display = 'none'; + } + if (termsModal && termsModal.style.display === 'block') { + termsModal.style.display = 'none'; + } + + panel.classList.remove('collapsed-ready'); + updateCollapsedPanelIcon(panel); + panel.classList.add('animating'); + + CLEANPLAATS.panelState.isCollapsed = !CLEANPLAATS.panelState.isCollapsed; + panel.classList.toggle('collapsed', CLEANPLAATS.panelState.isCollapsed); + + if (toggle) { + toggle.textContent = CLEANPLAATS.panelState.isCollapsed ? '▲' : '▼'; + } + + const fallbackTimeout = setTimeout(() => { + panel.classList.remove('animating'); + if (CLEANPLAATS.panelState.isCollapsed) { + panel.classList.add('collapsed-ready'); + updateCollapsedPanelIcon(panel); + } + }, 600); + + const onTransitionEnd = (event) => { + if (CLEANPLAATS.panelState.isCollapsed && event.propertyName === 'width') { + panel.classList.add('collapsed-ready'); + updateCollapsedPanelIcon(panel); + panel.classList.remove('animating'); + panel.removeEventListener('transitionend', onTransitionEnd); + clearTimeout(fallbackTimeout); + } else if (!CLEANPLAATS.panelState.isCollapsed && event.propertyName === 'max-height') { + panel.classList.remove('animating'); + updateCollapsedPanelIcon(panel); + panel.removeEventListener('transitionend', onTransitionEnd); + clearTimeout(fallbackTimeout); + } + }; + panel.addEventListener('transitionend', onTransitionEnd); + + saveSettings(); + } + }); + } + + openPreferencesButton?.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + setActivePanelView('preferences'); + }); + + backToFiltersButton?.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + setActivePanelView('filters'); + }); + + ['removeTopAds', 'removeDagtoppers', 'removePromotedListings', + 'removeOpvalStickers', 'removeReservedListings', 'removeFavoriteRelatedAds', 'sellerAgeWarningEnabled'].forEach(id => { + const checkbox = document.getElementById(id); + if (checkbox) { + checkbox.addEventListener('change', handleCheckboxChange); + } + }); + + const sellerAgeThresholdValue = document.getElementById('cleanplaats-seller-age-threshold-value'); + const sellerAgeThresholdUnit = document.getElementById('cleanplaats-seller-age-threshold-unit'); + sellerAgeThresholdValue?.addEventListener('input', handleSellerAgeThresholdInput); + sellerAgeThresholdValue?.addEventListener('change', handleSellerAgeThresholdChange); + sellerAgeThresholdUnit?.addEventListener('change', handleSellerAgeThresholdChange); + syncSellerAgeThresholdControlsState(); + + const themeToggle = document.getElementById('cleanplaats-theme-toggle'); + if (themeToggle) { + themeToggle.addEventListener('click', handleThemeToggle); + themeToggle.addEventListener('keydown', (event) => { + if (event.key !== 'Enter' && event.key !== ' ') return; + event.preventDefault(); + handleThemeToggle(); + }); + } + + setupResultsDropdownListener(); + setupSortDropdownListener(); + setupMarketplaceSortSync(); +} + +function handleThemeToggle() { + const nextValue = !CLEANPLAATS.settings.darkMode; + CLEANPLAATS.settings.darkMode = nextValue; + applyDarkModeToDocument(nextValue); + syncDarkModeToggle(nextValue); + + saveSettings() + .then(() => { + showSettingFeedback(); + }) + .catch(error => { + console.error('Cleanplaats: Failed to apply dark mode', error); + CLEANPLAATS.settings.darkMode = !nextValue; + applyDarkModeToDocument(!nextValue); + syncDarkModeToggle(!nextValue); + }); +} + +function handleCheckboxChange(event) { + const setting = event.target.id; + const value = event.target.checked; + + CLEANPLAATS.settings[setting] = value; + + if (setting === 'sellerAgeWarningEnabled') { + CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; + syncSellerAgeThresholdControlsState(); + } + + saveSettings() + .then(() => { + if (setting === 'darkMode') { + applyDarkModeToDocument(value); + showSettingFeedback(); + return; + } + + if (setting === 'sellerAgeWarningEnabled') { + showSettingFeedback(); + scheduleSellerAgeWarningCheck({ force: true }); + return; + } + + resetPreviousChanges(); + performCleanup(); + + clearBubbleNotification(); + showSettingFeedback(); + checkForEmptyPage(); + updateStatsDisplay(); + }) + .catch(error => { + console.error('Cleanplaats: Failed to apply setting', error); + event.target.checked = !value; + if (setting === 'darkMode') { + CLEANPLAATS.settings[setting] = !value; + applyDarkModeToDocument(!value); + } + }); +} + +function applySettings() { + saveSettings() + .then(() => { + applyDarkModeToDocument(CLEANPLAATS.settings.darkMode); + resetPreviousChanges(); + performCleanup(); + }) + .catch(error => { + console.error('Cleanplaats: Failed to apply settings', error); + }); +} + +function setupResultsDropdownListener() { + const dropdown = document.getElementById('cleanplaats-results-dropdown'); + if (!dropdown) return; + + dropdown.addEventListener('change', (e) => { + const value = parseInt(e.target.value, 10); + + CLEANPLAATS.settings.resultsPerPage = value; + wakeUpBackground(); + + saveSettings().then(() => { + showSettingFeedback(); + + if (isSearchResultsPage()) { + setTimeout(() => { + window.location.reload(); + }, 1000); + } + }); + }); +} + +function setupSortDropdownListener() { + const dropdown = document.getElementById('cleanplaats-sort-dropdown'); + if (!dropdown) return; + + dropdown.addEventListener('change', (e) => { + const value = e.target.value; + + CLEANPLAATS.settings.defaultSortMode = value; + CLEANPLAATS.settings.sortPreferenceSource = 'cleanplaats'; + wakeUpBackground(); + + saveSettings().then(() => { + showSettingFeedback(); + + if (isSearchResultsPage()) { + setTimeout(() => { + window.location.reload(); + }, 1000); + } + }); + }); +} diff --git a/src/content/runtime/store.ts b/src/content/runtime/store.ts new file mode 100644 index 0000000..e4d5cfc --- /dev/null +++ b/src/content/runtime/store.ts @@ -0,0 +1,191 @@ +import { LOCAL_STORAGE_KEYS, STORAGE_KEYS } from '@/shared/constants/storage'; +import { DEFAULT_PANEL_STATE, DEFAULT_SETTINGS } from '@/shared/constants/settings'; +import { SettingsRepository } from '@/shared/storage/repository'; +import type { + CleanplaatsPanelState, + CleanplaatsSettings, + CleanplaatsState, +} from '@/shared/types/state'; + +export type StoreListener = () => void; + +const createInitialRuntimeState = (): CleanplaatsState => ({ + settings: { ...DEFAULT_SETTINGS }, + stats: { + topAdsRemoved: 0, + dagtoppersRemoved: 0, + promotedListingsRemoved: 0, + opvalStickersRemoved: 0, + otherAdsRemoved: 0, + totalRemoved: 0, + }, + observers: { + mutation: null, + ads: null, + webchat: null, + sellerAge: null, + }, + runtime: { + lastSellerAgeWarningKey: '', + sellerAgeCheckTimer: 0, + }, + featureFlags: { + showStats: true, + autoCollapse: false, + firstRun: true, + }, + panelState: { ...DEFAULT_PANEL_STATE }, +}); + +let state: CleanplaatsState = createInitialRuntimeState(); +let storeVersion = 0; +const listeners = new Set(); + +export const getStoreVersion = (): number => storeVersion; + +let cachedStoreSnapshot: { version: number; state: CleanplaatsState } | null = null; + +/** Snapshot for React `useSyncExternalStore` (stable reference until version bumps). */ +export const getStoreSnapshot = (): { version: number; state: CleanplaatsState } => { + if (!cachedStoreSnapshot || cachedStoreSnapshot.version !== storeVersion) { + cachedStoreSnapshot = { version: storeVersion, state }; + } + return cachedStoreSnapshot; +}; + +export const getState = (): CleanplaatsState => state; + +export const subscribe = (listener: StoreListener): (() => void) => { + listeners.add(listener); + return () => { + listeners.delete(listener); + }; +}; + +export const emit = (): void => { + storeVersion += 1; + listeners.forEach((listener) => { + listener(); + }); +}; + +export const resetStats = (): void => { + const stats = state.stats; + stats.topAdsRemoved = 0; + stats.dagtoppersRemoved = 0; + stats.promotedListingsRemoved = 0; + stats.opvalStickersRemoved = 0; + stats.otherAdsRemoved = 0; + stats.totalRemoved = 0; + emit(); +}; + +export const updateTotalRemoved = (): void => { + const s = state.stats; + s.totalRemoved = + s.topAdsRemoved + + s.dagtoppersRemoved + + s.promotedListingsRemoved + + s.opvalStickersRemoved + + s.otherAdsRemoved; +}; + +export const patchSettings = (partial: Partial): void => { + state.settings = { ...state.settings, ...partial }; + emit(); +}; + +export const patchPanelState = (partial: Partial): void => { + state.panelState = { ...state.panelState, ...partial }; + emit(); +}; + +export const setFirstRunFlag = (firstRun: boolean): void => { + state.featureFlags.firstRun = firstRun; + emit(); +}; + +let storageSyncRegistered = false; + +export const registerSettingsStorageSync = ( + onDarkModeFromSync: (enabled: boolean) => void, +): void => { + if (storageSyncRegistered || !browser.storage.onChanged.addListener) { + return; + } + + browser.storage.onChanged.addListener( + (changes: Record, areaName: string) => { + if (areaName !== 'local' || !changes[STORAGE_KEYS.settings]?.newValue) { + return; + } + + try { + const newValue = changes[STORAGE_KEYS.settings]?.newValue; + const nextSettings = + typeof newValue === 'string' ? (JSON.parse(newValue) as { darkMode?: boolean }) : {}; + const darkModeEnabled = Boolean(nextSettings?.darkMode); + + if (state.settings.darkMode !== darkModeEnabled) { + patchSettings({ darkMode: darkModeEnabled }); + onDarkModeFromSync(darkModeEnabled); + } else { + persistDarkModeFromStore(); + } + } catch (error) { + console.error('Cleanplaats: Failed to sync dark mode from storage', error); + } + }, + ); + + storageSyncRegistered = true; +}; + +const persistDarkModeFromStore = (): void => { + try { + window.localStorage.setItem( + LOCAL_STORAGE_KEYS.darkMode, + state.settings.darkMode ? 'true' : 'false', + ); + } catch { + /* ignore */ + } +}; + +export const notifyStatsChanged = (): void => { + updateTotalRemoved(); + emit(); +}; + +export const saveSettings = async (repository: SettingsRepository): Promise => { + await repository.saveSettings(state.settings, state.panelState); + emit(); +}; + +export const loadInitialState = async (repository: SettingsRepository): Promise => { + const raw = (await browser.storage.local.get([ + STORAGE_KEYS.settings, + STORAGE_KEYS.panelState, + STORAGE_KEYS.firstRun, + ])) as Record; + + const loaded = await repository.load(); + state.settings = loaded.settings; + state.panelState = loaded.panelState; + + const firstRunKeyPresent = Object.prototype.hasOwnProperty.call(raw, STORAGE_KEYS.firstRun); + if (!firstRunKeyPresent) { + await repository.markFirstRunCompleted(); + state.featureFlags.firstRun = true; + } else { + state.featureFlags.firstRun = loaded.firstRun; + } + + emit(); +}; + +export const markFirstRunCompleted = async (repository: SettingsRepository): Promise => { + await repository.markFirstRunCompleted(); + state.featureFlags.firstRun = false; + emit(); +}; diff --git a/src/content/runtime/theme-init-legacy.js b/src/content/runtime/theme-init-legacy.js new file mode 100644 index 0000000..432a71b --- /dev/null +++ b/src/content/runtime/theme-init-legacy.js @@ -0,0 +1,190 @@ +(() => { + const browserAPI = typeof browser !== 'undefined' ? browser : chrome; + const DARK_MODE_CLASS = 'cleanplaats-dark-mode'; + const TWH_SITE_CLASS = 'cleanplaats-site-twh'; + const THEME_STORAGE_KEY = 'cleanplaats:darkMode'; + const STORAGE_KEY = 'cleanplaatsSettings'; + const EARLY_STYLE_ID = 'cleanplaats-early-dark-mode'; + const EARLY_DARK_MODE_CSS = ` +html.cleanplaats-dark-mode, +html.cleanplaats-dark-mode body, +html.cleanplaats-dark-mode .hz-Page, +html.cleanplaats-dark-mode .hz-Page-body, +html.cleanplaats-dark-mode .hz-Page-element, +html.cleanplaats-dark-mode #main-container, +html.cleanplaats-dark-mode #footer-container, +html.cleanplaats-dark-mode mp-header, +html.cleanplaats-dark-mode .mp-Header, +html.cleanplaats-dark-mode .hz-Header, +html.cleanplaats-dark-mode .hz-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-ribbonBottom, +html.cleanplaats-dark-mode .mp-Nav-dropdown-menu, +html.cleanplaats-dark-mode .mp-HamburgerMenu, +html.cleanplaats-dark-mode .mymp, +html.cleanplaats-dark-mode .mymp .mp-Topbar, +html.cleanplaats-dark-mode .mymp .mp-Tab-bar, +html.cleanplaats-dark-mode .mymp .canvas, +html.cleanplaats-dark-mode .mymp .table.ad-listing-container, +html.cleanplaats-dark-mode .mymp .sticky, +html.cleanplaats-dark-mode .mymp #table-filters, +html.cleanplaats-dark-mode .mymp .table-body, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .row, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cells, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cell, +html.cleanplaats-dark-mode .mymp .filter-option.input, +html.cleanplaats-dark-mode .mymp .filter-option.select, +html.cleanplaats-dark-mode .mymp .wrapper.mp-Select.custom, +html.cleanplaats-dark-mode .mymp #tableActionPanel, +html.cleanplaats-dark-mode .mymp #select-all-container, +html.cleanplaats-dark-mode .mymp #scroll-under-top-border, +html.cleanplaats-dark-mode .mymp .overlay-loader.overlayed, +html.cleanplaats-dark-mode .mymp .bubble-help.info { + background: #11161d !important; + color: #e4ebf3 !important; +} + +html.cleanplaats-dark-mode .hz-Header-navBar, +html.cleanplaats-dark-mode mp-header, +html.cleanplaats-dark-mode .mp-Header, +html.cleanplaats-dark-mode .mp-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-ribbonBottom, +html.cleanplaats-dark-mode .mymp .mp-Topbar, +html.cleanplaats-dark-mode .mymp .mp-Tab-bar, +html.cleanplaats-dark-mode .mymp #table-filters, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .row, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cells, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cell, +html.cleanplaats-dark-mode .mymp #scroll-under-top-border, +html.cleanplaats-dark-mode .mymp .overlay-loader.overlayed, +html.cleanplaats-dark-mode .mymp .bubble-help.info { + border-color: rgba(120, 143, 166, 0.16) !important; +} + +html.cleanplaats-dark-mode .mymp .query.mp-Input, +html.cleanplaats-dark-mode .mymp select, +html.cleanplaats-dark-mode .mymp input[type="text"] { + background: #1f2a36 !important; + color: #e4ebf3 !important; + border: 1px solid rgba(120, 143, 166, 0.22) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .mymp .query.mp-Input::placeholder, +html.cleanplaats-dark-mode .mymp input::placeholder { + color: #9aa8b8 !important; +} + +html.cleanplaats-dark-mode .mymp .filter-title, +html.cleanplaats-dark-mode .mymp .filter-option.selected, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact span, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact a, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact button, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact label { + color: #e4ebf3 !important; +} + +html.cleanplaats-dark-mode .Skeleton-noShadow, +html.cleanplaats-dark-mode .Skeleton-border, +html.cleanplaats-dark-mode .Skeleton-base, +html.cleanplaats-dark-mode .Skeleton-base.Skeleton-text, +html.cleanplaats-dark-mode [class*="Skeleton"], +html.cleanplaats-dark-mode [class*="Skeleton-"], +html.cleanplaats-dark-mode .hz-StructuredListing.Skeleton-noShadow, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-StructuredListing-image.Skeleton-border, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-Image-container, +html.cleanplaats-dark-mode .hz-Listing .hz-Image-container { + background: rgba(31, 42, 54, 0.52) !important; + background-color: rgba(31, 42, 54, 0.52) !important; + background-image: none !important; + border-color: rgba(120, 143, 166, 0.16) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .Skeleton-base::before, +html.cleanplaats-dark-mode .Skeleton-base.Skeleton-withAnimation::before, +html.cleanplaats-dark-mode [class*="Skeleton-base"]::before, +html.cleanplaats-dark-mode [class*="Skeleton-withAnimation"]::before { + background: linear-gradient( + 90deg, + rgba(31, 42, 54, 0) 0, + rgba(49, 65, 82, 0.45) 50%, + rgba(31, 42, 54, 0.52) 100% + ) !important; + background-color: rgba(31, 42, 54, 0.52) !important; + background-image: linear-gradient( + 90deg, + rgba(31, 42, 54, 0) 0, + rgba(49, 65, 82, 0.45) 50%, + rgba(31, 42, 54, 0.52) 100% + ) !important; +} +`; + + function ensureEarlyDarkModeStyle(enabled) { + const existing = document.getElementById(EARLY_STYLE_ID); + + if (!enabled) { + existing?.remove(); + return; + } + + if (existing) { + return; + } + + const style = document.createElement('style'); + style.id = EARLY_STYLE_ID; + style.textContent = EARLY_DARK_MODE_CSS; + (document.head || document.documentElement).appendChild(style); + } + + function syncSiteThemeClass() { + const isTwhSite = location.hostname.includes('2dehands.be') || location.hostname.includes('2ememain.be'); + document.documentElement.classList.toggle(TWH_SITE_CLASS, isTwhSite); + } + + function applyDarkMode(enabled) { + const isEnabled = Boolean(enabled); + syncSiteThemeClass(); + document.documentElement.classList.toggle(DARK_MODE_CLASS, isEnabled); + ensureEarlyDarkModeStyle(isEnabled); + } + + function readDarkModePreference() { + try { + const storedDarkMode = window.localStorage.getItem(THEME_STORAGE_KEY); + if (storedDarkMode === 'true' || storedDarkMode === 'false') { + return storedDarkMode === 'true'; + } + } catch (error) { + console.warn('Cleanplaats: Failed to read dark mode from localStorage during startup', error); + } + + return false; + } + + function registerStorageSync() { + if (!browserAPI?.storage?.onChanged?.addListener) { + return; + } + + browserAPI.storage.onChanged.addListener((changes, areaName) => { + if (areaName !== 'local' || !changes[STORAGE_KEY]) { + return; + } + + try { + const settings = JSON.parse(changes[STORAGE_KEY].newValue || '{}'); + applyDarkMode(settings?.darkMode); + } catch (error) { + console.error('Cleanplaats: Failed to sync startup dark mode', error); + } + }); + } + + applyDarkMode(readDarkModePreference()); + registerStorageSync(); +})(); diff --git a/src/content/services/background-wake.ts b/src/content/services/background-wake.ts new file mode 100644 index 0000000..0100cc7 --- /dev/null +++ b/src/content/services/background-wake.ts @@ -0,0 +1,59 @@ +import { isSearchResultsPage } from '@/content/utils/site'; + +declare global { + interface Window { + cleanplaatsWakeUpTimeout?: number; + } +} + +export const wakeUpBackground = (): void => { + try { + browser.runtime.sendMessage({ action: 'keepAlive' }, (response: unknown) => { + if (browser.runtime.lastError) { + console.log( + 'Cleanplaats: Background script not responding, this is normal if it was sleeping', + ); + setTimeout(() => { + try { + browser.runtime.sendMessage({ action: 'forceRefresh' }, () => { + if (!browser.runtime.lastError) { + console.log('Cleanplaats: Background script force-refreshed successfully'); + } + }); + } catch (e) { + console.log('Cleanplaats: Force refresh also failed:', e); + } + }, 100); + } else { + console.log('Cleanplaats: Background script is awake', response); + } + }); + } catch (error) { + console.log('Cleanplaats: Could not wake background script:', error); + } +}; + +export const setupPeriodicWakeUp = (): void => { + if (typeof browser === 'undefined') return; + + console.log('Cleanplaats: Setting up periodic background wake-up for Firefox'); + + setInterval(() => { + if (isSearchResultsPage()) { + wakeUpBackground(); + } + }, 30000); + + ['click', 'scroll', 'keydown'].forEach((eventType) => { + document.addEventListener( + eventType, + () => { + if (isSearchResultsPage()) { + clearTimeout(window.cleanplaatsWakeUpTimeout); + window.cleanplaatsWakeUpTimeout = window.setTimeout(wakeUpBackground, 1000); + } + }, + { passive: true }, + ); + }); +}; diff --git a/src/content/services/blacklist-inject.ts b/src/content/services/blacklist-inject.ts new file mode 100644 index 0000000..f28cac0 --- /dev/null +++ b/src/content/services/blacklist-inject.ts @@ -0,0 +1,248 @@ +import { getPanelLocaleText } from '@/content/locale/panel-text'; +import { getState, patchSettings, saveSettings } from '@/content/runtime/store'; +import { performCleanup } from '@/content/services/cleanup'; +import { + showBlacklistToast, + showBulkBlacklistToast, +} from '@/content/services/notifications'; +import type { SettingsRepository } from '@/shared/storage/repository'; +import { isProductDetailPage } from '@/content/utils/site'; + +let repositoryRef!: SettingsRepository; + +export const bindBlacklistRepository = (repository: SettingsRepository): void => { + repositoryRef = repository; +}; + +export const addSellersToBlacklist = async (sellerNames: string[]): Promise => { + const { settings } = getState(); + const normalizedSellerNames = sellerNames + .map((name) => name.trim()) + .filter(Boolean) + .filter((name, index, arr) => arr.indexOf(name) === index) + .filter((name) => !settings.blacklistedSellers.includes(name)); + + if (normalizedSellerNames.length === 0) return; + + patchSettings({ + blacklistedSellers: [...settings.blacklistedSellers, ...normalizedSellerNames], + }); + await saveSettings(repositoryRef); + performCleanup(getState()); + injectBlacklistButtons(); + + if (normalizedSellerNames.length === 1) { + showBlacklistToast(normalizedSellerNames[0] ?? ''); + return; + } + + showBulkBlacklistToast(normalizedSellerNames.length); +}; + +export const injectProductDetailBlacklistButton = (): void => { + const panelText = getPanelLocaleText(); + const sellerRoot = document.querySelector('.SellerInfoSmall-root'); + const sellerNameElement = sellerRoot?.querySelector( + '.SellerInfoSmall-name a, .SellerInfoSmall-name', + ); + const existingRow = document.querySelector('.cleanplaats-detail-blacklist-row'); + + if (!isProductDetailPage() || !sellerRoot || !sellerNameElement) { + existingRow?.remove(); + return; + } + + const sellerName = sellerNameElement.textContent?.trim(); + if (!sellerName) { + existingRow?.remove(); + return; + } + + const { settings } = getState(); + const isBlacklisted = settings.blacklistedSellers.includes(sellerName); + const detailRow = existingRow ?? document.createElement('div'); + detailRow.className = 'cleanplaats-detail-blacklist-row'; + + const button = document.createElement('button'); + button.className = 'cleanplaats-blacklist-btn cleanplaats-detail-blacklist-btn'; + button.type = 'button'; + button.tabIndex = 0; + button.textContent = isBlacklisted ? panelText.hiddenSellerButton : panelText.hideSellerButton; + button.disabled = isBlacklisted; + button.setAttribute('aria-disabled', isBlacklisted ? 'true' : 'false'); + + if (!isBlacklisted) { + button.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + void addSellersToBlacklist([sellerName]); + }); + } + + detailRow.replaceChildren(button); + + if (!existingRow) { + sellerRoot.insertAdjacentElement('afterend', detailRow); + } +}; + +export const injectBlacklistButtons = (): void => { + const panelText = getPanelLocaleText(); + const { settings } = getState(); + + document.querySelectorAll('.hz-Listing').forEach((listingEl) => { + const listing = listingEl as HTMLElement; + const oldBtn = listing.querySelector('.cleanplaats-blacklist-btn-row'); + const oldTopRight = listing.querySelector('.cleanplaats-seller-topright-mobile'); + const oldInlineBtn = listing.querySelector('.cleanplaats-inline-btn'); + + let sellerName: string | null = listing.dataset.cleanplaatsSellerName || null; + let sellerElement: Element | null = null; + let isCarAdvert = false; + + const carSellerElement = listing.querySelector( + '.hz-Listing-sellerName, .hz-Listing-sellerName-new', + ); + if (carSellerElement) { + sellerName = carSellerElement.textContent?.trim() ?? null; + sellerElement = carSellerElement; + isCarAdvert = true; + } else { + const sellerNameEl = listing.querySelector( + '.hz-Listing-seller-name, .hz-Listing-seller-name-new', + ); + if (sellerNameEl) { + sellerName = sellerNameEl.textContent?.trim() ?? null; + const sellerLink = sellerNameEl.closest('a'); + sellerElement = sellerLink ? sellerLink.parentElement || sellerLink : sellerNameEl; + isCarAdvert = false; + } + } + + if (sellerName) { + listing.dataset.cleanplaatsSellerName = sellerName; + } + + if (!sellerName) return; + + if (settings.blacklistedSellers.includes(sellerName)) { + listing.setAttribute('data-cleanplaats-hidden', 'true'); + listing.style.display = 'none'; + return; + } + + if (window.innerWidth < 700) { + if (oldTopRight && (oldTopRight as HTMLElement).dataset.cleanplaatsSellerName === sellerName) { + return; + } + + if (oldBtn) oldBtn.remove(); + if (oldInlineBtn) oldInlineBtn.remove(); + if (oldTopRight) oldTopRight.remove(); + + const topRow = document.createElement('div'); + topRow.className = 'cleanplaats-seller-topright-mobile'; + topRow.dataset.cleanplaatsSellerName = sellerName; + topRow.innerHTML = ` + ${sellerName} + + `; + const content = listing.querySelector( + '.hz-Listing-listview-content, .hz-Listing-listview-content-new', + ); + if (content?.firstChild) { + content.insertBefore(topRow, content.firstChild); + } else if (content) { + content.appendChild(topRow); + } + topRow.querySelector('.cleanplaats-blacklist-btn-mobile')?.addEventListener('click', (e) => { + e.preventDefault(); + e.stopPropagation(); + if (window.confirm(`Wil je alle advertenties van ${sellerName} verbergen?`)) { + void addSellersToBlacklist([sellerName]); + } + }); + return; + } + + if (!sellerElement) return; + + if (oldBtn) oldBtn.remove(); + if (oldTopRight) oldTopRight.remove(); + if (oldInlineBtn) oldInlineBtn.remove(); + + if (isCarAdvert && carSellerElement) { + const carEl = carSellerElement as HTMLElement; + carEl.style.display = 'inline-flex'; + carEl.style.alignItems = 'center'; + carEl.style.gap = '8px'; + + const btn = document.createElement('button'); + btn.className = 'cleanplaats-blacklist-btn cleanplaats-inline-btn'; + btn.textContent = panelText.hideSellerButton; + btn.type = 'button'; + btn.tabIndex = 0; + (btn as HTMLElement).style.marginLeft = '8px'; + + btn.addEventListener('click', (e) => { + e.preventDefault(); + e.stopPropagation(); + void addSellersToBlacklist([sellerName]); + }); + + carSellerElement.appendChild(btn); + } else { + const btnRow = document.createElement('div'); + btnRow.className = 'cleanplaats-blacklist-btn-row'; + + const btn = document.createElement('button'); + btn.className = 'cleanplaats-blacklist-btn'; + btn.textContent = panelText.hideSellerButton; + btn.type = 'button'; + btn.tabIndex = 0; + + btn.addEventListener('click', (e) => { + e.preventDefault(); + e.stopPropagation(); + void addSellersToBlacklist([sellerName]); + }); + + btnRow.appendChild(btn); + + if (sellerElement.parentNode) { + sellerElement.parentNode.insertBefore(btnRow, sellerElement.nextSibling); + } + } + }); + + injectProductDetailBlacklistButton(); +}; + +export const removeSellerFromBlacklist = async (sellerName: string): Promise => { + const { settings } = getState(); + patchSettings({ + blacklistedSellers: settings.blacklistedSellers.filter((s) => s !== sellerName), + }); + await saveSettings(repositoryRef); + + document.querySelectorAll('.hz-Listing').forEach((listingEl) => { + const listing = listingEl as HTMLElement; + const sellerNameEl = listing.querySelector( + '.hz-Listing-seller-name, .hz-Listing-seller-name-new, .hz-Listing-seller-link, .hz-Listing-sellerName, .hz-Listing-sellerName-new', + ); + if (!sellerNameEl) return; + if (sellerNameEl.textContent?.trim() === sellerName) { + listing.removeAttribute('data-cleanplaats-hidden'); + listing.style.display = ''; + } + }); + performCleanup(getState()); + injectBlacklistButtons(); +}; diff --git a/src/content/services/blacklist-terms.ts b/src/content/services/blacklist-terms.ts new file mode 100644 index 0000000..66c18f6 --- /dev/null +++ b/src/content/services/blacklist-terms.ts @@ -0,0 +1,19 @@ +import { getListingTitleText } from '@/shared/utils/selectors'; + +export const unhideListingsByTerm = (term: string): void => { + document.querySelectorAll('.hz-Link').forEach((link) => { + const title = getListingTitleText(link); + if (title.includes(term.toLowerCase())) { + const listingEl = link.closest('.hz-StructuredListing') || link; + listingEl.removeAttribute('data-cleanplaats-hidden'); + (listingEl as HTMLElement).style.display = ''; + } + }); + document.querySelectorAll('.hz-Listing').forEach((listing) => { + const title = getListingTitleText(listing); + if (title.includes(term.toLowerCase())) { + listing.removeAttribute('data-cleanplaats-hidden'); + (listing as HTMLElement).style.display = ''; + } + }); +}; diff --git a/src/content/services/cleanup.ts b/src/content/services/cleanup.ts new file mode 100644 index 0000000..d949233 --- /dev/null +++ b/src/content/services/cleanup.ts @@ -0,0 +1,505 @@ +import { notifyStatsChanged } from '@/content/runtime/store'; +import { getListingTitleText } from '@/shared/utils/selectors'; +import type { CleanplaatsState } from '@/shared/types/state'; + +export const hideElement = (element: Element): boolean => { + if (!element || element.hasAttribute('data-cleanplaats-hidden')) { + return false; + } + + try { + element.setAttribute('data-original-style', (element as HTMLElement).style.cssText); + element.setAttribute('data-cleanplaats-hidden', 'true'); + (element as HTMLElement).style.display = 'none !important'; + + return true; + } catch (error) { + console.error('Cleanplaats: Error hiding element', error); + return false; + } +}; + +const findAndHideListings = (selector: string, textContent: string | string[]): number => { + let count = 0; + const expectedTexts = Array.isArray(textContent) + ? textContent.map((text) => text.trim().toLowerCase()) + : [textContent.trim().toLowerCase()]; + + try { + document.querySelectorAll(selector).forEach((el) => { + const elementText = el.textContent?.trim().toLowerCase(); + if (elementText && expectedTexts.includes(elementText)) { + const listing = el.closest('.hz-Listing'); + if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { + count++; + } + } + }); + } catch (error) { + console.error(`Cleanplaats: Error finding "${String(textContent)}" listings`, error); + } + + return count; +}; + +const isHomepagePartnerListing = (listing: Element): boolean => { + const hrefs = Array.from(listing.querySelectorAll('a[href]')) + .map((link) => (link as HTMLAnchorElement).href || link.getAttribute('href') || '') + .filter(Boolean); + + return hrefs.some((href) => /\/a\d+(?:[-/?]|$)/i.test(href)); +}; + +const removeTopAdvertisements = (state: CleanplaatsState): void => { + const is2dehands = location.hostname.includes('2dehands.be'); + const is2ememain = location.hostname.includes('2ememain.be'); + const labels = is2ememain + ? ['Pub au top'] + : is2dehands + ? ['Topzoekertje', 'Topadvertentie'] + : ['Topadvertentie']; + const priorityBadgeSelector = [ + '.hz-Listing-priority span', + '.hz-Listing-priority-new', + '[class*="hz-Listing-priority-new"]', + ].join(', '); + const removedCount = labels.reduce( + (total, label) => total + findAndHideListings(priorityBadgeSelector, label), + 0, + ); + state.stats.topAdsRemoved += removedCount; +}; + +const removeDagtoppers = (state: CleanplaatsState): void => { + const priorityBadgeSelector = [ + '.hz-Listing-priority span', + '.hz-Listing-priority-new', + '[class*="hz-Listing-priority-new"]', + ].join(', '); + const removedCount = findAndHideListings(priorityBadgeSelector, 'Dagtopper'); + state.stats.dagtoppersRemoved += removedCount; +}; + +const removePromotedListings = (state: CleanplaatsState): void => { + let count = 0; + const visitWebsiteLabels = location.hostname.includes('2ememain.be') + ? ['Visiter le site internet'] + : ['Bezoek website']; + + const selectors = ['.hz-Listing-seller-link', '.hz-Listing-seller-external-link']; + + selectors.forEach((selector) => { + document.querySelectorAll(selector).forEach((sellerLink) => { + try { + const hasVisitWebsite = Array.from(sellerLink.querySelectorAll('span, a')).some((el) => + visitWebsiteLabels.includes(el.textContent?.trim() ?? ''), + ); + + if (hasVisitWebsite) { + const listing = sellerLink.closest('.hz-Listing'); + if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { + count++; + } + } + } catch (error) { + console.error('Cleanplaats: Error processing promoted listing', error); + } + }); + }); + + document.querySelectorAll('.hz-StructuredListing').forEach((listing) => { + try { + if (listing.hasAttribute('data-cleanplaats-hidden') || !isHomepagePartnerListing(listing)) { + return; + } + + if (hideElement(listing)) { + count++; + } + } catch (error) { + console.error('Cleanplaats: Error processing homepage partner listing', error); + } + }); + + state.stats.promotedListingsRemoved += count; +}; + +const removeOpvalStickerListings = (state: CleanplaatsState): void => { + let count = 0; + const stickerSelectors = [ + '.hz-Listing-Opvalsticker-wrapper, .hz-Listing-Opvalsticker-wrapper-new', + '[data-testid="listing-opval-sticker"]', + ]; + + stickerSelectors.forEach((selector) => { + document.querySelectorAll(selector).forEach((sticker) => { + try { + const listing = sticker.closest('.hz-Listing'); + if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { + count++; + } + } catch (error) { + console.error('Cleanplaats: Error processing sticker listing', error); + } + }); + }); + + state.stats.opvalStickersRemoved += count; +}; + +const removeReservedListings = (state: CleanplaatsState): void => { + const count = findAndHideListings('.hz-Listing-price, [class*="ListingPrice_hz-Listing-price"]', [ + 'gereserveerd', + 'réservé', + ]); + state.stats.otherAdsRemoved += count; +}; + +const removeAllAds = (state: CleanplaatsState): void => { + let count = 0; + const marktplaatsMarketingBannerSelector = '.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]'; + const marktplaatsMarketingBannerWrapperSelector = 'div[role="button"][tabindex]'; + const getMarktplaatsMarketingBannerContainer = (element: Element | null): Element | null => { + if (!(element instanceof Element)) { + return null; + } + + const bannerCard = element.closest('.MpCard-mpCardBanner'); + if (bannerCard) { + const bannerWrapper = bannerCard.closest(marktplaatsMarketingBannerWrapperSelector); + if (bannerWrapper?.querySelector(marktplaatsMarketingBannerSelector)) { + return bannerWrapper; + } + + return bannerCard; + } + + const bannerWrapper = element.closest(marktplaatsMarketingBannerWrapperSelector); + if (bannerWrapper?.querySelector(marktplaatsMarketingBannerSelector)) { + return bannerWrapper; + } + + return element.closest('img[alt="Marktplaats Marketing Banner"]'); + }; + + const isMarktplaatsSponsoredNotice = (element: Element | null): boolean => { + if (!element) return false; + + const text = (element.textContent || '').replace(/\s+/g, ' ').trim().toLowerCase(); + return text.includes('de volgorde van de resultaten wordt mede bepaald door betaalde opvalmogelijkheden'); + }; + + const isMarktplaatsMarketingBanner = (element: Element | null): boolean => { + if (!element) return false; + + if ( + element.matches?.('.MpCard-mpCardBanner') + || element.querySelector?.(marktplaatsMarketingBannerSelector) + ) { + return true; + } + + const bannerImage = element.querySelector?.('img[alt="Marktplaats Marketing Banner"]'); + return Boolean(bannerImage); + }; + + const safeHide = (selector: string): void => { + try { + const elements = document.querySelectorAll(selector); + elements.forEach((el) => { + if (!el.hasAttribute('data-cleanplaats-hidden') && hideElement(el)) { + count++; + } + + const parentLi = el.closest('li.bannerContainerLoading'); + if (parentLi && !parentLi.hasAttribute('data-cleanplaats-hidden')) { + hideElement(parentLi); + } + + const feedBanner = el.closest('.hz-FeedBannerBlock, .Banners-bannerFeedItem'); + if (feedBanner && !feedBanner.hasAttribute('data-cleanplaats-hidden')) { + hideElement(feedBanner); + } + + const topBanner = el.closest('.BannerTop-root, #top-banner-root'); + if (topBanner && !topBanner.hasAttribute('data-cleanplaats-hidden')) { + hideElement(topBanner); + } + }); + } catch (error) { + console.log('Cleanplaats: Error hiding ads', error); + } + }; + + document.querySelectorAll('.hz-Listing-imageOverlayLabel').forEach((overlay) => { + if (overlay.textContent?.trim() === 'Homepagina-advertentie') { + const link = overlay.closest('.hz-Link.hz-Link--block'); + if (link && !link.hasAttribute('data-cleanplaats-hidden')) { + hideElement(link); + count++; + } + } + }); + + const adSelectors = [ + '#adsense-root', + '#adsense-container', + '#adsense-container-bottom-lazy', + '#similar-items-root', + '.AdmarktSimilarItemsContainer', + '.AdmarktSimilarItems-root', + '.AdmarktSimilarItems-headerTitle', + '#adBlock', + '.ndfc-wrapper[data-testid="ndfc-generic-text"]', + '[data-testid="ndfc-close"]', + '.MpCard-mpCardBanner', + 'div[role="button"][tabindex] > .MpCard-mpCardBanner', + 'img[alt="Marktplaats Marketing Banner"]', + '.hz-Banner', + '.hz-Banner--fluid', + '.BannerTop-root', + '#banner-rubrieks-dt', + '#banner-top-dt', + '#banner-top-dt-container', + '#top-banner-root', + '[data-google-query-id]', + '[id*="google_ads_iframe"]', + '[id*="google_ads_top_frame"]', + '[aria-label="Advertisement"]', + '[title="3rd party ad content"]', + '.i_.div', + '[data-ad-container]', + '[data-bg="true"]', + '[class*="adsbygoogle"]', + 'ins.adsbygoogle', + 'iframe[src*="googleads"]', + 'iframe[src*="doubleclick"]', + '[id*="div-gpt-ad"]', + '.hz-Listings__container--cas[data-testid="BottomBlockLazyListings"]', + '[class*="creative"]', + '#google_ads_top_frame', + '.creative', + 'li.bannerContainerLoading', + '.bannerContainerLoading', + '.bannerContainerLoading .hz-Banner', + '.bannerContainerLoading .hz-Banner--fluid', + ]; + + adSelectors.forEach((selector) => { + safeHide(selector); + }); + + document.querySelectorAll('.ndfc-wrapper, [data-testid="ndfc-generic-text"]').forEach((notice) => { + if (isMarktplaatsSponsoredNotice(notice) && hideElement(notice)) { + count++; + } + }); + + document.querySelectorAll('.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]').forEach((banner) => { + const bannerCard = getMarktplaatsMarketingBannerContainer(banner) || banner; + if (isMarktplaatsMarketingBanner(bannerCard) && hideElement(bannerCard)) { + count++; + } + + const bannerWrapper = bannerCard.parentElement; + if ( + bannerWrapper instanceof Element + && bannerWrapper !== bannerCard + && bannerWrapper.childElementCount === 1 + && !bannerWrapper.hasAttribute('data-cleanplaats-hidden') + ) { + hideElement(bannerWrapper); + } + }); + + state.stats.otherAdsRemoved += count; +}; + +export const removePersistentGoogleAds = (state: CleanplaatsState): void => { + let count = 0; + + document + .querySelectorAll( + '#adsense-root, .creative, div[id^="google_ads_iframe"], div[data-google-query-id], div[aria-label="Advertisement"]', + ) + .forEach((ad) => { + try { + const gridItem = ad.closest('.hz-Link.hz-Link--block'); + if (gridItem && gridItem.parentNode) { + gridItem.parentNode.removeChild(gridItem); + count++; + return; + } + if (ad.parentNode) { + ad.parentNode.removeChild(ad); + count++; + } + } catch (error) { + console.error('Cleanplaats: Error removing persistent ad', error); + } + }); + + document.querySelectorAll('#banner-right-container').forEach((banner) => { + if (banner.parentNode) { + banner.parentNode.removeChild(banner); + count++; + } + }); + + document.querySelectorAll('#banner-top-dt-container').forEach((container) => { + if (container.parentNode) { + container.parentNode.removeChild(container); + count++; + } + }); + + document.querySelectorAll('.BannerTop-root').forEach((banner) => { + const hasAdContent = banner.querySelector( + '.hz-Banner, .hz-Banner--fluid, iframe, [data-google-query-id], [id*="google_ads_iframe"], ins.adsbygoogle', + ); + if (!hasAdContent && banner.parentNode) { + banner.parentNode.removeChild(banner); + count++; + } + }); + + document.querySelectorAll('#top-banner-root').forEach((container) => { + const hasVisibleContent = Array.from(container.children).some( + (child) => (child as HTMLElement).offsetParent !== null, + ); + if (!hasVisibleContent && container.parentNode) { + container.parentNode.removeChild(container); + count++; + } + }); + + document.querySelectorAll('.hz-FeedBannerBlock, .Banners-bannerFeedItem').forEach((banner) => { + if ( + banner.childElementCount === 0 + || Array.from(banner.children).every((child) => (child as HTMLElement).offsetParent === null) + ) { + if (banner.parentNode) { + banner.parentNode.removeChild(banner); + count++; + } + } + }); + + state.stats.otherAdsRemoved += count; +}; + +const removeSimilarAdsSections = (state: CleanplaatsState): void => { + let count = 0; + + document.querySelectorAll('.SimilarAdsList-related-ads-section').forEach((section) => { + if (hideElement(section)) { + count++; + } + }); + + state.stats.otherAdsRemoved += count; +}; + +const removeNonFeatureBuyerBanner = (state: CleanplaatsState): void => { + let count = 0; + + document + .querySelectorAll( + '#notifications-root, .NonFeatureBuyerBanner-root, .feature-banner[data-testid="50-percent-off-banner"]', + ) + .forEach((element) => { + const banner = + element.id === 'notifications-root' + ? element + : element.closest('#notifications-root') + || element.closest('.feature-banner[data-testid="50-percent-off-banner"]') + || element; + + if (hideElement(banner)) { + count++; + } + }); + + state.stats.otherAdsRemoved += count; +}; + +const applyBlacklist = (state: CleanplaatsState): void => { + document.querySelectorAll('.hz-Listing').forEach((listing) => { + const sellerNameEl = listing.querySelector( + '.hz-Listing-seller-name, .hz-Listing-seller-name-new, .hz-Listing-seller-link, .hz-Listing-sellerName, .hz-Listing-sellerName-new', + ); + if (!sellerNameEl) return; + const sellerName = sellerNameEl.textContent?.trim() ?? ''; + if (state.settings.blacklistedSellers.includes(sellerName)) { + listing.setAttribute('data-cleanplaats-hidden', 'true'); + (listing as HTMLElement).style.display = 'none'; + } + }); + + document.querySelectorAll('.hz-Link').forEach((link) => { + const title = getListingTitleText(link); + if (!title) return; + state.settings.blacklistedTerms.forEach((term) => { + if (title.includes(term.toLowerCase())) { + const listingEl = link.closest('.hz-StructuredListing') || link; + listingEl.setAttribute('data-cleanplaats-hidden', 'true'); + (listingEl as HTMLElement).style.display = 'none'; + } + }); + }); + + document.querySelectorAll('.hz-Listing').forEach((listing) => { + const title = getListingTitleText(listing); + if (!title) return; + state.settings.blacklistedTerms.forEach((term) => { + if (title.includes(term.toLowerCase())) { + listing.setAttribute('data-cleanplaats-hidden', 'true'); + (listing as HTMLElement).style.display = 'none'; + } + }); + }); +}; + +export const performCleanup = (state: CleanplaatsState): void => { + removeAllAds(state); + removePersistentGoogleAds(state); + if (state.settings.removeFavoriteRelatedAds) removeSimilarAdsSections(state); + removeNonFeatureBuyerBanner(state); + + if (state.settings.removeTopAds) removeTopAdvertisements(state); + if (state.settings.removeDagtoppers) removeDagtoppers(state); + if (state.settings.removePromotedListings) removePromotedListings(state); + if (state.settings.removeOpvalStickers) removeOpvalStickerListings(state); + if (state.settings.removeReservedListings) removeReservedListings(state); + + applyBlacklist(state); + notifyStatsChanged(); +}; + +export const resetPreviousChanges = (state: CleanplaatsState): void => { + state.stats.topAdsRemoved = 0; + state.stats.dagtoppersRemoved = 0; + state.stats.promotedListingsRemoved = 0; + state.stats.opvalStickersRemoved = 0; + state.stats.otherAdsRemoved = 0; + state.stats.totalRemoved = 0; + notifyStatsChanged(); + + document.querySelectorAll('[data-cleanplaats-hidden]').forEach((el) => { + try { + (el as HTMLElement).style.cssText = el.getAttribute('data-original-style') ?? ''; + el.removeAttribute('data-cleanplaats-hidden'); + el.removeAttribute('data-original-style'); + } catch (error) { + console.error('Cleanplaats: Error restoring element', error); + } + }); +}; + +export const performInitialCleanup = (state: CleanplaatsState): void => { + try { + performCleanup(state); + } catch (error) { + console.error('Cleanplaats: Initial cleanup failed', error); + } +}; diff --git a/src/content/services/notifications.ts b/src/content/services/notifications.ts new file mode 100644 index 0000000..d50f309 --- /dev/null +++ b/src/content/services/notifications.ts @@ -0,0 +1,566 @@ +import { getPanelLocaleText } from '@/content/locale/panel-text'; +import { getState, patchPanelState, saveSettings } from '@/content/runtime/store'; +import { parseSellerAgeToDays, thresholdToDays } from '@/shared/utils/seller-age'; +import { CLEANPLAATS_UPDATE_NOTES } from '@/shared/constants/update-notes'; +import type { SettingsRepository } from '@/shared/storage/repository'; +import { isProductDetailPage } from '@/content/utils/site'; + +import { performCleanup } from '@/content/services/cleanup'; + +let notificationTimeout = 0; + +export const getExtensionVersion = (): string => { + try { + const manifest = browser.runtime.getManifest(); + if (manifest && typeof manifest.version === 'string') { + return manifest.version; + } + } catch (error) { + console.error('Cleanplaats: Failed to read extension version', error); + } + return ''; +}; + +const clearSellerAgeWarningToast = (): void => { + const toast = document.getElementById('cleanplaats-seller-age-warning-toast'); + if (toast) { + toast.classList.remove('visible'); + setTimeout(() => { + toast.remove(); + }, 300); + } +}; + +const getSellerAgeWarningThresholdLabel = (): string => { + const panelText = getPanelLocaleText(); + const { settings } = getState(); + const value = Math.max(1, parseInt(String(settings.sellerAgeWarningThresholdValue), 10) || 1); + const unit = settings.sellerAgeWarningThresholdUnit; + const unitLabel = + panelText.sellerAgeWarningThresholdUnits[unit] + ?? panelText.sellerAgeWarningThresholdUnits.months; + + return `${value} ${unitLabel}`; +}; + +const getSellerAgeInfoFromPage = () => { + const sellerRows = Array.from( + document.querySelectorAll('.SellerInfoSmall-root .SellerInfoSmall-row'), + ); + const sellerAgeRow = sellerRows.find((row) => parseSellerAgeToDays(row.textContent ?? '') !== null); + const sellerNameElement = document.querySelector( + '.SellerInfoSmall-root .SellerInfoSmall-name a, .SellerInfoSmall-root .SellerInfoSmall-name', + ); + const sellerAgeText = sellerAgeRow?.textContent?.trim() ?? ''; + const sellerName = sellerNameElement?.textContent?.trim() ?? 'Deze verkoper'; + const sellerAgeDays = parseSellerAgeToDays(sellerAgeText); + + if (!sellerAgeText || sellerAgeDays === null) { + return null; + } + + return { + sellerName, + sellerAgeText, + sellerAgeDays, + }; +}; + +const showSellerAgeWarningToast = ({ + sellerName, + sellerAgeText, +}: { + sellerName: string; + sellerAgeText: string; +}): void => { + const panelText = getPanelLocaleText(); + const thresholdLabel = getSellerAgeWarningThresholdLabel(); + + clearSellerAgeWarningToast(); + + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast cleanplaats-blacklist-toast-warning'; + toast.id = 'cleanplaats-seller-age-warning-toast'; + + toast.innerHTML = ` +
    + ! +
    + ${panelText.sellerAgeWarningToastTitle} + ${panelText.sellerAgeWarningToastMessage(sellerName, sellerAgeText, thresholdLabel)} +
    +
    + `; + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + window.setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 5200); +}; + +const maybeShowSellerAgeWarning = (options: { force?: boolean } = {}): void => { + const force = options.force === true; + const { settings, runtime } = getState(); + + if (!isProductDetailPage()) { + clearSellerAgeWarningToast(); + return; + } + + if (!settings.sellerAgeWarningEnabled) { + clearSellerAgeWarningToast(); + return; + } + + const sellerAgeInfo = getSellerAgeInfoFromPage(); + if (!sellerAgeInfo) { + clearSellerAgeWarningToast(); + return; + } + + const thresholdDays = thresholdToDays( + settings.sellerAgeWarningThresholdValue, + settings.sellerAgeWarningThresholdUnit, + ); + if (sellerAgeInfo.sellerAgeDays >= thresholdDays) { + clearSellerAgeWarningToast(); + return; + } + + const warningKey = `${location.pathname}|${sellerAgeInfo.sellerAgeText}|${String(thresholdDays)}`; + if (!force && runtime.lastSellerAgeWarningKey === warningKey) { + return; + } + + runtime.lastSellerAgeWarningKey = warningKey; + showSellerAgeWarningToast(sellerAgeInfo); +}; + +export const scheduleSellerAgeWarningCheck = (options: { + force?: boolean; + resetState?: boolean; +} = {}): void => { + const force = options.force === true; + const resetState = options.resetState === true; + const { runtime } = getState(); + + if (resetState) { + runtime.lastSellerAgeWarningKey = ''; + } + + window.clearTimeout(runtime.sellerAgeCheckTimer); + runtime.sellerAgeCheckTimer = window.setTimeout(() => { + maybeShowSellerAgeWarning({ force }); + }, 180); +}; + +export const clearAllNotifications = (): void => { + const notifications = document.querySelectorAll('[id^="cleanplaats-"]'); + notifications.forEach((notification) => { + if ( + notification.classList.contains('cleanplaats-empty-notification') + || notification.id === 'cleanplaats-loading' + || notification.id === 'cleanplaats-seller-age-warning-toast' + ) { + notification.remove(); + } + }); +}; + +export const clearBubbleNotification = (): void => { + const toast = document.getElementById('cleanplaats-bubble-notification'); + if (toast) { + toast.classList.remove('visible'); + setTimeout(() => { + toast.remove(); + }, 300); + } +}; + +export const showBubbleNotification = (message: string): void => { + let toast = document.getElementById('cleanplaats-bubble-notification'); + + if (toast) { + const messageElement = toast.querySelector('.cleanplaats-toast-message span'); + if (messageElement) { + messageElement.textContent = message; + } + } else { + toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + toast.id = 'cleanplaats-bubble-notification'; + + toast.innerHTML = ` +
    + +
    + ${message} +
    +
    + `; + + document.body.appendChild(toast); + setTimeout(() => requestAnimationFrame(() => toast?.classList.add('visible')), 0); + } + + const t = toast as HTMLElement & { timeoutId?: number }; + if (t.timeoutId) { + clearTimeout(t.timeoutId); + } + + t.timeoutId = window.setTimeout(() => { + toast?.classList.remove('visible'); + setTimeout(() => { + toast?.remove(); + }, 300); + }, 5000); +}; + +export const showBlacklistToast = (sellerName: string): void => { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + + toast.innerHTML = ` +
    + 👁 +
    + ${sellerName} ${panelText.blacklistToastHiddenSuffix} + ${panelText.blacklistToastHint} +
    +
    + `; + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +}; + +export const showBulkBlacklistToast = (count: number): void => { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + + toast.innerHTML = ` +
    + 👁 +
    + ${count} ${panelText.blacklistToastHiddenPluralSuffix} + ${panelText.blacklistToastHint} +
    +
    + `; + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +}; + +export const showUnblacklistToast = (sellerName: string): void => { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + + toast.innerHTML = ` +
    + 👁 +
    + ${sellerName} ${panelText.blacklistToastShownSuffix} + ${panelText.blacklistToastShownHint} +
    +
    + `; + + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +}; + +export const showBlacklistTermToast = (term: string): void => { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + toast.innerHTML = ` +
    + 🔎 +
    + '${term}' ${panelText.blacklistToastHiddenSuffix} + ${panelText.termToastHidden(term)} +
    +
    + `; + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +}; + +export const showUnblacklistTermToast = (term: string): void => { + const panelText = getPanelLocaleText(); + const toast = document.createElement('div'); + toast.className = 'cleanplaats-blacklist-toast'; + toast.innerHTML = ` +
    + 🔎 +
    + '${term}' ${panelText.blacklistToastShownSuffix} + ${panelText.termToastShown(term)} +
    +
    + `; + document.body.appendChild(toast); + setTimeout(() => { + requestAnimationFrame(() => toast.classList.add('visible')); + }, 50); + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); +}; + +const showFirstTimeOnboarding = (): void => { + const onboarding = document.createElement('div'); + onboarding.className = 'cleanplaats-onboarding'; + onboarding.id = 'cleanplaats-onboarding'; + + onboarding.innerHTML = ` +
    +
    +

    🎉 Welkom bij Cleanplaats!

    + +
    +
    +
    + 1 +

    Cleanplaats verwijdert automatisch advertenties en promotionele content

    +
    +
    + 2 +

    Gebruik het configuratiescherm rechtsonder om de filtering aan te passen. Je opent en sluit het paneel via het pijltje bovenin.

    +
    +
    + 3 +

    Bekijk statistieken over verwijderde items in het configuratiescherm

    +
    +
    + +
    + `; + + document.body.appendChild(onboarding); + + ['cleanplaats-onboarding-close', 'cleanplaats-onboarding-got-it'].forEach((id) => { + document.getElementById(id)?.addEventListener('click', () => { + onboarding.classList.add('cleanplaats-fade-out'); + setTimeout(() => onboarding.remove(), 300); + }); + }); + + setTimeout(() => { + if (onboarding.parentNode) { + onboarding.classList.add('cleanplaats-fade-out'); + setTimeout(() => onboarding.remove(), 300); + } + }, 15000); +}; + +const shouldShowUpdatePopup = (currentVersion: string): boolean => { + if (!currentVersion) { + return false; + } + + return getState().panelState.lastSeenVersion !== currentVersion; +}; + +const showUpdatePopup = (version: string): void => { + const existingPopup = document.getElementById('cleanplaats-update-popup'); + if (existingPopup) { + existingPopup.remove(); + } + + const updateContent = CLEANPLAATS_UPDATE_NOTES[version] ?? { + intro: + 'Cleanplaats heeft een nieuwe update gekregen met verbeteringen en onderhoud aan de extensie.', + highlights: [ + 'Diverse verbeteringen en fixes voor de huidige resultaatpagina’s.', + 'Kleine verfijningen aan het paneel en de filtering.', + 'Onderhoudswerk om Cleanplaats stabiel te houden op nieuwe sitewijzigingen.', + ], + note: 'Zie je een probleem of heb je een idee? Gebruik de GitHub-link in het paneel.', + }; + + const popup = document.createElement('div'); + popup.className = 'cleanplaats-info-overlay cleanplaats-info-overlay--visible'; + popup.id = 'cleanplaats-update-popup'; + popup.setAttribute('role', 'dialog'); + popup.setAttribute('aria-modal', 'true'); + popup.setAttribute('aria-hidden', 'false'); + + const stepsMarkup = updateContent.highlights.map((step) => `
  • ${step}
  • `).join(''); + + popup.innerHTML = ` +
    +
    + + Nieuwe update +

    Wat is er nieuw? (${version})

    +

    ${updateContent.intro}

    +
    +
      ${stepsMarkup}
    +

    ${updateContent.note}

    + +
    + `; + + const closePopup = (): void => { + popup.classList.remove('cleanplaats-info-overlay--visible'); + popup.setAttribute('aria-hidden', 'true'); + setTimeout(() => popup.remove(), 200); + document.removeEventListener('keydown', handleKeydown); + }; + + const handleKeydown = (event: KeyboardEvent): void => { + if (event.key === 'Escape') { + closePopup(); + } + }; + + popup.addEventListener('click', (event) => { + if (event.target === popup) { + closePopup(); + } + }); + + document.addEventListener('keydown', handleKeydown); + document.body.appendChild(popup); + const popupLogo = document.getElementById('cleanplaats-update-popup-logo'); + if (popupLogo instanceof HTMLImageElement) { + popupLogo.src = browser.runtime.getURL('icons/icon128.png'); + } + document.getElementById('cleanplaats-update-popup-close')?.addEventListener('click', () => { + closePopup(); + showBubbleNotification(`Veel plezier met ${version}`); + }); +}; + +const showWelcomeToast = (): void => { + const { panelState, stats } = getState(); + if ( + panelState.hasShownWelcomeToast + || location.pathname !== '/' + || location.hostname !== 'www.marktplaats.nl' + ) { + return; + } + + const toast = document.createElement('div'); + toast.className = 'cleanplaats-toast'; + toast.id = 'cleanplaats-toast'; + + const totalRemoved = stats.totalRemoved; + const message = + totalRemoved > 0 + ? `Cleanplaats is actief (${totalRemoved} items verwijderd)` + : 'Cleanplaats is actief'; + + toast.innerHTML = ` +
    + + ${message} +
    + `; + + document.body.appendChild(toast); + setTimeout(() => toast.classList.add('visible'), 100); + setTimeout(() => { + toast.classList.remove('visible'); + setTimeout(() => toast.remove(), 300); + }, 3000); + + patchPanelState({ hasShownWelcomeToast: true }); + void saveSettings(repositoryRef); +}; + +let repositoryRef!: SettingsRepository; + +export const bindNotificationsRepository = (repository: SettingsRepository): void => { + repositoryRef = repository; +}; + +export const showOnboarding = (currentVersion = ''): void => { + const { featureFlags } = getState(); + if (featureFlags.firstRun) { + if (currentVersion) { + patchPanelState({ lastSeenVersion: currentVersion }); + void saveSettings(repositoryRef).catch((error) => { + console.error('Cleanplaats: Failed to store initial version state', error); + }); + } + showFirstTimeOnboarding(); + } else if (shouldShowUpdatePopup(currentVersion)) { + patchPanelState({ lastSeenVersion: currentVersion }); + void saveSettings(repositoryRef).catch((error) => { + console.error('Cleanplaats: Failed to store seen update version', error); + }); + showUpdatePopup(currentVersion); + } else { + showWelcomeToast(); + } +}; + +export const checkForEmptyPage = (): void => { + clearTimeout(notificationTimeout); + + notificationTimeout = window.setTimeout(() => { + performCleanup(getState()); + + const visibleListings = document.querySelectorAll('.hz-Listing:not([data-cleanplaats-hidden])'); + const totalListings = document.querySelectorAll('.hz-Listing'); + const hiddenCount = totalListings.length - visibleListings.length; + + if (hiddenCount === 0) return; + + clearAllNotifications(); + + if (visibleListings.length === 0) { + showBubbleNotification( + 'De pagina is leeg omdat deze helemaal uit advertenties bestond! Probeer een volgende pagina of wijzig de filters.', + ); + } else if (visibleListings.length < 5) { + const listingWord = visibleListings.length === 1 ? 'resultaat' : 'resultaten'; + const removedWord = hiddenCount === 1 ? 'advertentie' : 'advertenties'; + showBubbleNotification( + `Er ${visibleListings.length === 1 ? 'is' : 'zijn'} nog ${visibleListings.length} ${listingWord} over nadat Cleanplaats ${hiddenCount} ${removedWord} heeft verwijderd.`, + ); + } + }, 1000); +}; diff --git a/src/content/services/observers.ts b/src/content/services/observers.ts new file mode 100644 index 0000000..2aee112 --- /dev/null +++ b/src/content/services/observers.ts @@ -0,0 +1,193 @@ +import { getState } from '@/content/runtime/store'; +import { performCleanup } from '@/content/services/cleanup'; +import { + checkForEmptyPage, + clearBubbleNotification, + scheduleSellerAgeWarningCheck, +} from '@/content/services/notifications'; +import { injectBlacklistButtons } from '@/content/services/blacklist-inject'; +import { syncHeaderLogoForDarkMode } from '@/content/services/theme'; +import { wakeUpBackground } from '@/content/services/background-wake'; + +let lastUrl = location.href; + +const performCleanupAndCheckForEmptyPage = (): void => { + const existingNotification = document.getElementById('cleanplaats-empty-notification'); + if (existingNotification) { + existingNotification.remove(); + } + + clearBubbleNotification(); + scheduleSellerAgeWarningCheck({ resetState: true }); + + const checkContentLoaded = window.setInterval(() => { + if (document.querySelector('.hz-Listing') || document.querySelector('#adsense-container')) { + clearInterval(checkContentLoaded); + console.log('Cleanplaats: Running cleanup after navigation'); + performCleanup(getState()); + injectBlacklistButtons(); + + setTimeout(checkForEmptyPage, 500); + } + }, 100); +}; + +export const setupObservers = (): void => { + const state = getState(); + + if (state.observers.mutation) { + state.observers.mutation.disconnect(); + } + + const observer = new MutationObserver((mutations) => { + if (lastUrl !== location.href) { + console.log('Cleanplaats: URL changed from', lastUrl, 'to', location.href); + lastUrl = location.href; + state.runtime.lastSellerAgeWarningKey = ''; + performCleanupAndCheckForEmptyPage(); + } + + let shouldCleanup = false; + let shouldSyncHeaderLogo = false; + + for (const mutation of mutations) { + if (mutation.type === 'childList' && mutation.addedNodes.length) { + const listingMutationTarget = + mutation.target?.nodeType === Node.ELEMENT_NODE + ? (mutation.target as Element).closest?.('.hz-Listing') + : null; + + if (window.innerWidth < 700 && listingMutationTarget) { + shouldCleanup = true; + break; + } + + for (const node of mutation.addedNodes) { + if (node.nodeType === Node.ELEMENT_NODE) { + const el = node as Element; + if ( + el.classList?.contains('hz-Header-logo-desktop') + || el.classList?.contains('mp-Header-logo') + || el.querySelector?.('.hz-Header-logo-desktop, .mp-Header-logo') + ) { + shouldSyncHeaderLogo = true; + } + + if ( + el.classList?.contains('SellerInfoSmall-root') + || el.querySelector?.('.SellerInfoSmall-root') + ) { + scheduleSellerAgeWarningCheck(); + } + + if ( + el.classList?.contains('hz-Listing') + || el.querySelector?.('.hz-Listing') + || el.classList?.contains('MpCard-mpCardBanner') + || el.querySelector?.('.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]') + || el.classList?.contains('SimilarAdsList-related-ads-section') + || el.querySelector?.('.SimilarAdsList-related-ads-section') + || el.id === 'notifications-root' + || el.classList?.contains('NonFeatureBuyerBanner-root') + || el.classList?.contains('feature-banner') + || el.querySelector?.( + '#notifications-root, .NonFeatureBuyerBanner-root, .feature-banner[data-testid="50-percent-off-banner"]', + ) + || el.id?.includes('ad') + || el.id === 'similar-items-root' + || el.querySelector?.( + '#similar-items-root, .AdmarktSimilarItemsContainer, .AdmarktSimilarItems-root', + ) + || el.classList?.contains('hz-Banner') + || el.querySelector?.('[data-google-query-id]') + || el.classList?.contains('hz-FeedBannerBlock') + || el.classList?.contains('Banners-bannerFeedItem') + || el.id === 'banner-top-dt-container' + || el.querySelector?.('#banner-top-dt, #banner-top-dt-container') + ) { + shouldCleanup = true; + break; + } + } + } + } + + if (mutation.type === 'attributes') { + const target = mutation.target as Element; + if (target?.classList?.contains('SellerInfoSmall-root')) { + scheduleSellerAgeWarningCheck(); + } + + if ( + target?.classList?.contains('hz-FeedBannerBlock') + || target?.classList?.contains('Banners-bannerFeedItem') + || target?.classList?.contains('MpCard-mpCardBanner') + || target?.classList?.contains('SimilarAdsList-related-ads-section') + || target?.classList?.contains('NonFeatureBuyerBanner-root') + || target?.classList?.contains('feature-banner') + || target?.classList?.contains('AdmarktSimilarItemsContainer') + || target?.classList?.contains('AdmarktSimilarItems-root') + || target?.id === 'notifications-root' + || target?.id === 'similar-items-root' + || target?.id === 'banner-right-container' + || target?.id === 'banner-top-dt-container' + ) { + shouldCleanup = true; + } + } + + if (shouldCleanup) break; + } + + if (state.settings.darkMode && shouldSyncHeaderLogo) { + syncHeaderLogoForDarkMode(true); + } + + if (shouldCleanup) { + performCleanup(state); + injectBlacklistButtons(); + } + }); + + observer.observe(document, { + childList: true, + subtree: true, + attributes: true, + attributeFilter: ['class', 'style', 'hidden', 'aria-hidden'], + }); + + state.observers.mutation = observer; +}; + +const handleNavigation = (): void => { + wakeUpBackground(); + window.dispatchEvent(new Event('navigation')); +}; + +export const setupNavigationDetection = (): void => { + window.addEventListener('popstate', handleNavigation); + + const originalPushState = history.pushState; + history.pushState = function pushStateWithHook(...args: Parameters) { + originalPushState.apply(this, args); + }; + + const originalReplaceState = history.replaceState; + history.replaceState = function replaceStateWithHook( + ...args: Parameters + ) { + originalReplaceState.apply(this, args); + }; + + document.addEventListener('click', (e) => { + const link = (e.target as Element | null)?.closest?.('a[href]'); + if (link instanceof HTMLAnchorElement && link.hostname === window.location.hostname) { + setTimeout(() => handleNavigation(), 100); + } + }); +}; + +export const setupAllObservers = (): void => { + setupObservers(); + setupNavigationDetection(); +}; diff --git a/src/content/services/sort-sync.ts b/src/content/services/sort-sync.ts new file mode 100644 index 0000000..a2790ec --- /dev/null +++ b/src/content/services/sort-sync.ts @@ -0,0 +1,45 @@ +import { wakeUpBackground } from '@/content/services/background-wake'; +import { getState, patchSettings, saveSettings } from '@/content/runtime/store'; +import { getSortModeFromLabel, isMarketplaceSortDropdown } from '@/content/utils/sort'; +import type { SettingsRepository } from '@/shared/storage/repository'; +import type { SortMode } from '@/shared/types/state'; + +export const syncCleanplaatsSortMode = async ( + sortMode: SortMode | null, + repository: SettingsRepository, +): Promise => { + if (!sortMode) return; + + const current = getState().settings; + const modeChanged = current.defaultSortMode !== sortMode; + const sourceChanged = current.sortPreferenceSource !== 'marketplace'; + if (!modeChanged && !sourceChanged) return; + + patchSettings({ defaultSortMode: sortMode, sortPreferenceSource: 'marketplace' }); + wakeUpBackground(); + try { + await saveSettings(repository); + } catch (error) { + console.error('Cleanplaats: Failed to sync sort mode from page selection', error); + } +}; + +export const setupMarketplaceSortSync = (repository: SettingsRepository): void => { + if (document.body?.dataset.cleanplaatsSortSyncBound === 'true') return; + if (document.body) { + document.body.dataset.cleanplaatsSortSyncBound = 'true'; + } + + document.addEventListener( + 'change', + (event) => { + const target = event.target; + if (!isMarketplaceSortDropdown(target)) return; + + const selectedOption = target.options[target.selectedIndex]; + const sortMode = getSortModeFromLabel(selectedOption?.textContent ?? target.value); + void syncCleanplaatsSortMode(sortMode, repository); + }, + true, + ); +}; diff --git a/src/content/services/theme.ts b/src/content/services/theme.ts new file mode 100644 index 0000000..ac7129c --- /dev/null +++ b/src/content/services/theme.ts @@ -0,0 +1,178 @@ +import { + CLEANPLAATS_DARK_LOGO_PATH, + CLEANPLAATS_DARK_MODE_CLASS, + CLEANPLAATS_FLOATING_OFFSET_VAR, + CLEANPLAATS_TWH_SITE_CLASS, + MARKTPLAATS_DESKTOP_LOGO_MATCH, +} from '@/content/constants/ui'; +import { is2dehandsFamilySite, isMarktplaatsSite } from '@/content/utils/site'; +import { LOCAL_STORAGE_KEYS } from '@/shared/constants/storage'; +import type { CleanplaatsSettings } from '@/shared/types/state'; + +export const persistDarkModePreference = (enabled: boolean): void => { + try { + window.localStorage.setItem(LOCAL_STORAGE_KEYS.darkMode, enabled ? 'true' : 'false'); + } catch (error) { + console.warn('Cleanplaats: Failed to persist dark mode in localStorage', error); + } +}; + +export const syncSiteThemeClass = (): void => { + document.documentElement.classList.toggle(CLEANPLAATS_TWH_SITE_CLASS, is2dehandsFamilySite()); +}; + +export const getCollapsedPanelIconUrl = (darkMode: boolean): string => { + const iconPath = darkMode ? 'icons/darkmode_icon_128.png' : 'icons/icon128.png'; + return browser.runtime.getURL(iconPath); +}; + +export const updateCollapsedPanelIcon = ( + panel: HTMLElement | null, + settings: CleanplaatsSettings, +): void => { + if (!panel) return; + + if (panel.classList.contains('collapsed-ready')) { + panel.style.backgroundImage = `url('${getCollapsedPanelIconUrl(settings.darkMode)}')`; + return; + } + + panel.style.backgroundImage = ''; +}; + +export const syncHeaderLogoForDarkMode = (enabled: boolean): void => { + document.querySelectorAll('.hz-Header-logo-desktop').forEach((img) => { + if (!(img instanceof HTMLImageElement)) return; + + const currentSource = img.getAttribute('src') || ''; + const originalSource = img.dataset.cleanplaatsOriginalSrc || currentSource; + + if (!img.dataset.cleanplaatsOriginalSrc) { + img.dataset.cleanplaatsOriginalSrc = currentSource; + } + + if (!MARKTPLAATS_DESKTOP_LOGO_MATCH.test(originalSource)) { + return; + } + + const nextSource = enabled + ? browser.runtime.getURL(CLEANPLAATS_DARK_LOGO_PATH) + : originalSource; + + if (currentSource !== nextSource) { + img.setAttribute('src', nextSource); + } + }); + + document.querySelectorAll('.mp-Header-logo').forEach((link) => { + if (!(link instanceof HTMLElement)) return; + + if (enabled && isMarktplaatsSite()) { + link.style.backgroundImage = `url("${browser.runtime.getURL(CLEANPLAATS_DARK_LOGO_PATH)}")`; + link.style.backgroundRepeat = 'no-repeat'; + link.style.backgroundPosition = 'center'; + link.style.backgroundSize = 'contain'; + return; + } + + link.style.removeProperty('background-image'); + link.style.removeProperty('background-repeat'); + link.style.removeProperty('background-position'); + link.style.removeProperty('background-size'); + }); +}; + +export const applyDarkModeToDocument = ( + enabled: boolean, + panel: HTMLElement | null, + settings: CleanplaatsSettings, +): void => { + const isEnabled = Boolean(enabled); + syncSiteThemeClass(); + document.documentElement.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, isEnabled); + persistDarkModePreference(isEnabled); + syncHeaderLogoForDarkMode(isEnabled); + + if (panel) { + panel.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, isEnabled); + updateCollapsedPanelIcon(panel, settings); + } +}; + +const isElementVisuallyVisible = (element: Element): boolean => { + if (!(element instanceof Element)) return false; + + const style = window.getComputedStyle(element); + if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') { + return false; + } + + const rect = element.getBoundingClientRect(); + return ( + rect.width > 0 + && rect.height > 0 + && rect.bottom > 0 + && rect.right > 0 + && rect.top < window.innerHeight + && rect.left < window.innerWidth + ); +}; + +export const updateFloatingUiOffsetForWebchat = (): void => { + const webchatToggle = document.querySelector( + '[data-cognigy-webchat-toggle="true"], #webchatWindowToggleButton', + ); + + let offset = 0; + + if (webchatToggle && isElementVisuallyVisible(webchatToggle)) { + const rect = webchatToggle.getBoundingClientRect(); + const gap = 16; + offset = Math.max(0, Math.ceil(rect.height + gap)); + } + + document.documentElement.style.setProperty(CLEANPLAATS_FLOATING_OFFSET_VAR, `${offset}px`); +}; + +export type WebchatObserverHandle = { + disconnect: () => void; +}; + +export const setupWebchatCollisionAvoidance = ( + existing: MutationObserver | null, +): { observer: MutationObserver; handle: WebchatObserverHandle } => { + updateFloatingUiOffsetForWebchat(); + + if (existing) { + existing.disconnect(); + } + + let rafId = 0; + const scheduleOffsetUpdate = (): void => { + if (rafId) return; + rafId = window.requestAnimationFrame(() => { + rafId = 0; + updateFloatingUiOffsetForWebchat(); + }); + }; + + const observer = new MutationObserver(scheduleOffsetUpdate); + observer.observe(document.body, { + childList: true, + subtree: true, + attributes: true, + attributeFilter: ['style', 'class', 'hidden', 'aria-hidden'], + }); + + window.addEventListener('resize', scheduleOffsetUpdate, { passive: true }); + + return { + observer, + handle: { + disconnect: () => { + observer.disconnect(); + window.removeEventListener('resize', scheduleOffsetUpdate); + }, + }, + }; +}; diff --git a/src/content/theme/early-dark-mode-css.ts b/src/content/theme/early-dark-mode-css.ts new file mode 100644 index 0000000..acd83fd --- /dev/null +++ b/src/content/theme/early-dark-mode-css.ts @@ -0,0 +1,118 @@ +/** Inlined critical dark-mode rules (same as legacy theme-init.js) for document_start paint. */ +export const EARLY_DARK_MODE_CSS = ` +html.cleanplaats-dark-mode, +html.cleanplaats-dark-mode body, +html.cleanplaats-dark-mode .hz-Page, +html.cleanplaats-dark-mode .hz-Page-body, +html.cleanplaats-dark-mode .hz-Page-element, +html.cleanplaats-dark-mode #main-container, +html.cleanplaats-dark-mode #footer-container, +html.cleanplaats-dark-mode mp-header, +html.cleanplaats-dark-mode .mp-Header, +html.cleanplaats-dark-mode .hz-Header, +html.cleanplaats-dark-mode .hz-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-ribbonBottom, +html.cleanplaats-dark-mode .mp-Nav-dropdown-menu, +html.cleanplaats-dark-mode .mp-HamburgerMenu, +html.cleanplaats-dark-mode .mymp, +html.cleanplaats-dark-mode .mymp .mp-Topbar, +html.cleanplaats-dark-mode .mymp .mp-Tab-bar, +html.cleanplaats-dark-mode .mymp .canvas, +html.cleanplaats-dark-mode .mymp .table.ad-listing-container, +html.cleanplaats-dark-mode .mymp .sticky, +html.cleanplaats-dark-mode .mymp #table-filters, +html.cleanplaats-dark-mode .mymp .table-body, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .row, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cells, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cell, +html.cleanplaats-dark-mode .mymp .filter-option.input, +html.cleanplaats-dark-mode .mymp .filter-option.select, +html.cleanplaats-dark-mode .mymp .wrapper.mp-Select.custom, +html.cleanplaats-dark-mode .mymp #tableActionPanel, +html.cleanplaats-dark-mode .mymp #select-all-container, +html.cleanplaats-dark-mode .mymp #scroll-under-top-border, +html.cleanplaats-dark-mode .mymp .overlay-loader.overlayed, +html.cleanplaats-dark-mode .mymp .bubble-help.info { + background: #11161d !important; + color: #e4ebf3 !important; +} + +html.cleanplaats-dark-mode .hz-Header-navBar, +html.cleanplaats-dark-mode mp-header, +html.cleanplaats-dark-mode .mp-Header, +html.cleanplaats-dark-mode .mp-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-ribbonBottom, +html.cleanplaats-dark-mode .mymp .mp-Topbar, +html.cleanplaats-dark-mode .mymp .mp-Tab-bar, +html.cleanplaats-dark-mode .mymp #table-filters, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .row, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cells, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact .cell, +html.cleanplaats-dark-mode .mymp #scroll-under-top-border, +html.cleanplaats-dark-mode .mymp .overlay-loader.overlayed, +html.cleanplaats-dark-mode .mymp .bubble-help.info { + border-color: rgba(120, 143, 166, 0.16) !important; +} + +html.cleanplaats-dark-mode .mymp .query.mp-Input, +html.cleanplaats-dark-mode .mymp select, +html.cleanplaats-dark-mode .mymp input[type="text"] { + background: #1f2a36 !important; + color: #e4ebf3 !important; + border: 1px solid rgba(120, 143, 166, 0.22) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .mymp .query.mp-Input::placeholder, +html.cleanplaats-dark-mode .mymp input::placeholder { + color: #9aa8b8 !important; +} + +html.cleanplaats-dark-mode .mymp .filter-title, +html.cleanplaats-dark-mode .mymp .filter-option.selected, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact span, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact a, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact button, +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact label { + color: #e4ebf3 !important; +} + +html.cleanplaats-dark-mode .Skeleton-noShadow, +html.cleanplaats-dark-mode .Skeleton-border, +html.cleanplaats-dark-mode .Skeleton-base, +html.cleanplaats-dark-mode .Skeleton-base.Skeleton-text, +html.cleanplaats-dark-mode [class*="Skeleton"], +html.cleanplaats-dark-mode [class*="Skeleton-"], +html.cleanplaats-dark-mode .hz-StructuredListing.Skeleton-noShadow, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-StructuredListing-image.Skeleton-border, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-Image-container, +html.cleanplaats-dark-mode .hz-Listing .hz-Image-container { + background: rgba(31, 42, 54, 0.52) !important; + background-color: rgba(31, 42, 54, 0.52) !important; + background-image: none !important; + border-color: rgba(120, 143, 166, 0.16) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .Skeleton-base::before, +html.cleanplaats-dark-mode .Skeleton-base.Skeleton-withAnimation::before, +html.cleanplaats-dark-mode [class*="Skeleton-base"]::before, +html.cleanplaats-dark-mode [class*="Skeleton-withAnimation"]::before { + background: linear-gradient( + 90deg, + rgba(31, 42, 54, 0) 0, + rgba(49, 65, 82, 0.45) 50%, + rgba(31, 42, 54, 0.52) 100% + ) !important; + background-color: rgba(31, 42, 54, 0.52) !important; + background-image: linear-gradient( + 90deg, + rgba(31, 42, 54, 0) 0, + rgba(49, 65, 82, 0.45) 50%, + rgba(31, 42, 54, 0.52) 100% + ) !important; +} +`; diff --git a/src/content/utils/site.ts b/src/content/utils/site.ts new file mode 100644 index 0000000..c85718c --- /dev/null +++ b/src/content/utils/site.ts @@ -0,0 +1,40 @@ +import type { ReviewCtaConfig } from '@/shared/types/state'; + +export const is2ememainLocale = (): boolean => location.hostname.includes('2ememain.be'); + +export const is2dehandsFamilySite = (): boolean => + location.hostname.includes('2dehands.be') || location.hostname.includes('2ememain.be'); + +export const isMarktplaatsSite = (): boolean => location.hostname.includes('marktplaats.nl'); + +export const isProductDetailPage = (): boolean => /\/v\//.test(window.location.pathname); + +export const isSearchResultsPage = (): boolean => { + const url = window.location.href; + return ( + url.includes('marktplaats.nl/l/') + || url.includes('marktplaats.nl/q/') + || url.includes('2dehands.be/l/') + || url.includes('2dehands.be/q/') + || url.includes('2ememain.be/l/') + || url.includes('2ememain.be/q/') + ); +}; + +export const getReviewCTAConfig = (): ReviewCtaConfig => { + const runtimeUrl = browser.runtime?.getURL ? browser.runtime.getURL('') : ''; + const isFirefox = + runtimeUrl.startsWith('moz-extension://') || navigator.userAgent.includes('Firefox'); + + if (isFirefox) { + return { + linkLabel: 'Firefox Add-ons', + url: 'https://addons.mozilla.org/nl/firefox/addon/cleanplaats-marktplaats-filter/reviews/', + }; + } + + return { + linkLabel: 'Chrome Web Store', + url: 'https://chromewebstore.google.com/detail/cleanplaats-marktplaats-z/peebdbeclpkljmfocjifjpjlngfpfhjp/reviews', + }; +}; diff --git a/src/content/utils/sort.ts b/src/content/utils/sort.ts new file mode 100644 index 0000000..7a99a33 --- /dev/null +++ b/src/content/utils/sort.ts @@ -0,0 +1,18 @@ +import { MARKTPLAATS_SORT_LABEL_TO_MODE } from '@/shared/constants/settings'; +import type { SortMode } from '@/shared/types/state'; + +export const normalizeSortLabel = (label: string): string => label.trim().toLowerCase(); + +export const getSortModeFromLabel = (label: string): SortMode | null => + MARKTPLAATS_SORT_LABEL_TO_MODE[normalizeSortLabel(label)] ?? null; + +export const isMarketplaceSortDropdown = (element: EventTarget | null): element is HTMLSelectElement => { + if (!(element instanceof HTMLSelectElement)) return false; + + const ariaLabel = normalizeSortLabel(element.getAttribute('aria-label') ?? ''); + if (ariaLabel === 'sorteer op') return true; + + return Array.from(element.options ?? []).some( + (option) => normalizeSortLabel(option.textContent ?? '') === 'datum (nieuw-oud)', + ); +}; diff --git a/src/entrypoints/background.ts b/src/entrypoints/background.ts index 9ba1f12..4b9d945 100644 --- a/src/entrypoints/background.ts +++ b/src/entrypoints/background.ts @@ -1,3 +1,5 @@ +import { initializeBackground } from '@/background'; + export default defineBackground(() => { - console.log('Cleanplaats background initialized.'); + initializeBackground(); }); diff --git a/src/entrypoints/main.content.ts b/src/entrypoints/main.content.ts index 8d112d4..19edd2a 100644 --- a/src/entrypoints/main.content.ts +++ b/src/entrypoints/main.content.ts @@ -1,13 +1,18 @@ import '../styles/content.css'; +import { initCleanplaats } from '@/content/bootstrap'; export default defineContentScript({ - matches: [ - '*://*.marktplaats.nl/*', - '*://*.2dehands.be/*', - '*://*.2ememain.be/*', - ], + matches: ['*://*.marktplaats.nl/*', '*://*.2dehands.be/*', '*://*.2ememain.be/*'], runAt: 'document_end', main() { - console.log('Cleanplaats: main content script bootstrap loaded'); + const start = (): void => { + void initCleanplaats(); + }; + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', start, { once: true }); + } else { + start(); + } }, }); diff --git a/src/entrypoints/theme-init.content.ts b/src/entrypoints/theme-init.content.ts index cae22aa..9f980d0 100644 --- a/src/entrypoints/theme-init.content.ts +++ b/src/entrypoints/theme-init.content.ts @@ -1,12 +1,81 @@ +import { EARLY_DARK_MODE_CSS } from '@/content/theme/early-dark-mode-css'; +import { LOCAL_STORAGE_KEYS, STORAGE_KEYS } from '@/shared/constants/storage'; +import { CLEANPLAATS_DARK_MODE_CLASS, CLEANPLAATS_TWH_SITE_CLASS } from '@/content/constants/ui'; + +const EARLY_STYLE_ID = 'cleanplaats-early-dark-mode'; + +const ensureEarlyDarkModeStyle = (enabled: boolean): void => { + const existing = document.getElementById(EARLY_STYLE_ID); + + if (!enabled) { + existing?.remove(); + return; + } + + if (existing) { + return; + } + + const style = document.createElement('style'); + style.id = EARLY_STYLE_ID; + style.textContent = EARLY_DARK_MODE_CSS; + (document.head || document.documentElement).appendChild(style); +}; + +const syncSiteThemeClass = (): void => { + const isTwhSite = + location.hostname.includes('2dehands.be') || location.hostname.includes('2ememain.be'); + document.documentElement.classList.toggle(CLEANPLAATS_TWH_SITE_CLASS, isTwhSite); +}; + +const applyDarkMode = (enabled: boolean): void => { + const isEnabled = Boolean(enabled); + syncSiteThemeClass(); + document.documentElement.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, isEnabled); + ensureEarlyDarkModeStyle(isEnabled); +}; + +const readDarkModePreference = (): boolean => { + try { + const storedDarkMode = window.localStorage.getItem(LOCAL_STORAGE_KEYS.darkMode); + if (storedDarkMode === 'true' || storedDarkMode === 'false') { + return storedDarkMode === 'true'; + } + } catch (error) { + console.warn('Cleanplaats: Failed to read dark mode from localStorage during startup', error); + } + + return false; +}; + +const registerStorageSync = (): void => { + if (!browser.storage.onChanged.addListener) { + return; + } + + browser.storage.onChanged.addListener( + (changes: Record, areaName: string) => { + if (areaName !== 'local' || !changes[STORAGE_KEYS.settings]) { + return; + } + + try { + const raw = changes[STORAGE_KEYS.settings]?.newValue; + const settings = typeof raw === 'string' ? (JSON.parse(raw) as { darkMode?: boolean }) : {}; + applyDarkMode(Boolean(settings?.darkMode)); + } catch (error) { + console.error('Cleanplaats: Failed to sync startup dark mode', error); + } + }, + ); +}; + export default defineContentScript({ - matches: [ - '*://*.marktplaats.nl/*', - '*://*.2dehands.be/*', - '*://*.2ememain.be/*', - ], + matches: ['*://*.marktplaats.nl/*', '*://*.2dehands.be/*', '*://*.2ememain.be/*'], runAt: 'document_start', allFrames: true, main() { - // Placeholder entrypoint; will be replaced by typed theme init logic. + applyDarkMode(readDarkModePreference()); + registerStorageSync(); }, }); diff --git a/src/shared/constants/domains.ts b/src/shared/constants/domains.ts new file mode 100644 index 0000000..0b379cd --- /dev/null +++ b/src/shared/constants/domains.ts @@ -0,0 +1,28 @@ +export const HOST_MATCH_PATTERNS = [ + '*://*.marktplaats.nl/*', + '*://*.2dehands.be/*', + '*://*.2ememain.be/*', +] as const; + +export const HASH_URL_PATTERNS = [ + 'https://www.marktplaats.nl/l/', + 'https://www.marktplaats.nl/q/', + 'https://www.2dehands.be/l/', + 'https://www.2dehands.be/q/', + 'https://www.2ememain.be/l/', + 'https://www.2ememain.be/q/', +] as const; + +export const API_URL_PATTERNS = [ + 'https://www.marktplaats.nl/lrp/api/search*', + 'https://www.2dehands.be/lrp/api/search*', + 'https://www.2ememain.be/lrp/api/search*', +] as const; + +export const API_RULE_ID = 1; + +export const WAKEUP_NAVIGATION_FILTERS = [ + { hostSuffix: 'marktplaats.nl' }, + { hostSuffix: '2dehands.be' }, + { hostSuffix: '2ememain.be' }, +] as const; diff --git a/src/shared/constants/manifest-legacy.json b/src/shared/constants/manifest-legacy.json new file mode 100644 index 0000000..3e84298 --- /dev/null +++ b/src/shared/constants/manifest-legacy.json @@ -0,0 +1,88 @@ +{ + "manifest_version": 3, + "name": "Cleanplaats - Marktplaats zonder spam", + "version": "2.0.7", + "description": "Zelf in de hand wat je wel én niet wil zien op Marktplaats door te filteren", + "author": "", + "permissions": [ + "storage", + "scripting", + "tabs", + "webNavigation", + "declarativeNetRequest", + "alarms" + ], + "host_permissions": [ + "*://*.marktplaats.nl/*", + "*://*.2dehands.be/*", + "*://*.2ememain.be/*" + ], + "background": { + "service_worker": "background.js", + "scripts": ["background.js"], + "preferred_environment": ["service_worker", "document"] + }, + "content_scripts": [ + { + "matches": [ + "*://*.marktplaats.nl/*", + "*://*.2dehands.be/*", + "*://*.2ememain.be/*" + ], + "js": ["theme-init.js"], + "css": ["dark-mode.css"], + "all_frames": true, + "run_at": "document_start" + }, + { + "matches": [ + "*://*.marktplaats.nl/*", + "*://*.2dehands.be/*", + "*://*.2ememain.be/*" + ], + "js": [ + "purify.min.js", + "content/shared.js", + "content/theme.js", + "content/storage.js", + "content/notifications.js", + "content/cleanup.js", + "content/blacklist.js", + "content/ui.js", + "content/observers.js", + "content/init.js", + "content.js" + ], + "css": ["content.css"], + "run_at": "document_end" + } + ], + "icons": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + }, + "web_accessible_resources": [ + { + "resources": ["icons/*", "dark-mode.css"], + "matches": ["*://*.marktplaats.nl/*", "*://*.2dehands.be/*", "*://*.2ememain.be/*"] + } + ], + "action": { + "default_title": "Cleanplaats", + "default_icon": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + } + }, + "browser_specific_settings": { + "gecko": { + "id": "cleanplaats@cleanplaats.dev", + "strict_min_version": "121.0" + }, + "gecko_android": { + "strict_min_version": "121.0" + } + } +} diff --git a/src/shared/constants/settings.ts b/src/shared/constants/settings.ts new file mode 100644 index 0000000..d4e84b3 --- /dev/null +++ b/src/shared/constants/settings.ts @@ -0,0 +1,58 @@ +import type { + CleanplaatsPanelState, + CleanplaatsSettings, + SortMode, + SortModeConfig, +} from '@/shared/types/state'; + +export const SORT_MODES: Record = { + standard: { sortBy: 'OPTIMIZED', sortOrder: 'DECREASING' }, + date_new_old: { sortBy: 'SORT_INDEX', sortOrder: 'DECREASING' }, + date_old_new: { sortBy: 'SORT_INDEX', sortOrder: 'INCREASING' }, + price_low_high: { sortBy: 'PRICE', sortOrder: 'INCREASING' }, + price_high_low: { sortBy: 'PRICE', sortOrder: 'DECREASING' }, + distance: { sortBy: 'LOCATION', sortOrder: 'INCREASING' }, +}; + +export const DEFAULT_SETTINGS: CleanplaatsSettings = { + removeTopAds: true, + removeDagtoppers: true, + removePromotedListings: true, + removeOpvalStickers: true, + removeReservedListings: false, + removeFavoriteRelatedAds: false, + sellerAgeWarningEnabled: false, + sellerAgeWarningThresholdValue: 3, + sellerAgeWarningThresholdUnit: 'days', + darkMode: false, + blacklistedSellers: [], + blacklistedTerms: [], + resultsPerPage: 30, + defaultSortMode: 'standard', + sortPreferenceSource: 'cleanplaats', +}; + +export const DEFAULT_PANEL_STATE: CleanplaatsPanelState = { + isCollapsed: false, + hasShownWelcomeToast: false, + lastSeenVersion: '', + activeView: 'filters', +}; + +export const MARKTPLAATS_SORT_LABEL_TO_MODE: Record = { + standaard: 'standard', + 'datum (nieuw-oud)': 'date_new_old', + 'datum (oud-nieuw)': 'date_old_new', + 'prijs (laag-hoog)': 'price_low_high', + 'prijs (hoog-laag)': 'price_high_low', + afstand: 'distance', +}; + +export const BLACKLISTED_TITLE_SELECTORS = [ + '.hz-StructuredListing-title', + '.hz-Listing-title', + '.hz-Listing-group--title-description', + '.hz-StructuredListing-body', + '[class*="ListingTitle_hz-Listing-title"]', + '[class*="ListingTitle_hz-StructuredListing-title"]', +].join(', '); diff --git a/src/shared/constants/sort.ts b/src/shared/constants/sort.ts new file mode 100644 index 0000000..802643c --- /dev/null +++ b/src/shared/constants/sort.ts @@ -0,0 +1,24 @@ +import type { CleanplaatsSortMode } from '@/shared/types/state'; + +export type SortTransform = { + sortBy: string; + sortOrder: 'DECREASING' | 'INCREASING'; +}; + +export const SORT_MODES: Record = { + standard: null, + date_new_old: { sortBy: 'SORT_INDEX', sortOrder: 'DECREASING' }, + date_old_new: { sortBy: 'SORT_INDEX', sortOrder: 'INCREASING' }, + price_low_high: { sortBy: 'PRICE', sortOrder: 'INCREASING' }, + price_high_low: { sortBy: 'PRICE', sortOrder: 'DECREASING' }, + distance: { sortBy: 'LOCATION', sortOrder: 'INCREASING' }, +}; + +export const SORT_LABEL_TO_MODE: Record = { + standaard: 'standard', + 'datum (nieuw-oud)': 'date_new_old', + 'datum (oud-nieuw)': 'date_old_new', + 'prijs (laag-hoog)': 'price_low_high', + 'prijs (hoog-laag)': 'price_high_low', + afstand: 'distance', +}; diff --git a/src/shared/constants/storage.ts b/src/shared/constants/storage.ts new file mode 100644 index 0000000..42a1a35 --- /dev/null +++ b/src/shared/constants/storage.ts @@ -0,0 +1,9 @@ +export const STORAGE_KEYS = { + settings: 'cleanplaatsSettings', + panelState: 'panelState', + firstRun: 'firstRun', +} as const; + +export const LOCAL_STORAGE_KEYS = { + darkMode: 'cleanplaats:darkMode', +} as const; diff --git a/src/shared/constants/update-notes.ts b/src/shared/constants/update-notes.ts new file mode 100644 index 0000000..1ae3f6c --- /dev/null +++ b/src/shared/constants/update-notes.ts @@ -0,0 +1,36 @@ +import type { UpdateNote } from '@/shared/types/state'; + +export const CLEANPLAATS_UPDATE_NOTES: Record = { + '2.0.7': { + intro: + 'Cleanplaats 2.0.7 voegt een extra veiligheidswaarschuwing toe op advertentiepagina’s en maakt het verbergen van verkopers duidelijker en handiger.', + highlights: [ + 'Je kunt nu een waarschuwing krijgen bij nieuwe verkoperaccounts. Deze instelling vind je onder het tabje "Voorkeuren" in het paneel, waar je zelf kiest vanaf hoeveel dagen, weken, maanden of jaren je zo’n melding wilt zien.', + 'Op advertentiepagina’s staat nu ook een knop onder de verkopernaam om in één keer alle advertenties van die verkoper te verbergen.', + 'De knop om een verkoper te verbergen is nu ook netjes vertaald op 2ememain.', + ], + note: 'Zie je een verkoper die je niet vertrouwt? Dan kun je die nu direct vanaf de advertentiepagina verbergen.', + }, + '2.0.6': { + intro: + 'Cleanplaats 2.0.6 herstelt een paar dingen op Favorieten en lost een vervelende fout op die sommige filters uit beeld haalde.', + highlights: [ + 'De filters voor categorie en afstand zijn weer terug waar ze horen.', + 'Gerelateerde advertenties in Favorieten worden niet meer standaard verborgen. Via de nieuwe knop "Voorkeuren" kun je dit nu zelf aan of uit zetten.', + 'Niet-beschikbare advertenties in Favorieten zien er in dark mode nu weer duidelijk anders uit dan actieve advertenties.', + ], + note: 'Excuses voor de bug waardoor categorie en afstand ineens konden verdwijnen. Bedankt aan iedereen die dit zo snel heeft gemeld via Reddit en GitHub issues. Jullie hulp en betrokkenheid maken Cleanplaats tot het succes dat het is.', + }, + '2.0.5': { + intro: + 'Cleanplaats 2.0.5 werkt Marktplaats verder bij met vooral meer dark mode-ondersteuning en een rustigere interface op meerdere pagina’s.', + highlights: [ + 'Dark mode is verder uitgebreid op onder meer "Mijn advertenties", account- en plaats advertentie-pagina’s, tabelweergaven en onderdelen rond eigen advertenties.', + 'Ook losse interface-elementen zoals "Deal gesloten?", voorstel- en leveringsmenu’s nemen nu beter het donkere thema over.', + 'Storende banners en promotieblokken zijn op meerdere plekken verborgen, waaronder "gerelateerde advertenties" in Favorieten.', + 'Een visuele flicker bij het laden in dark mode is aangepakt, waardoor pagina’s rustiger en consistenter openen.', + "Marktplaats banner voor 'koop je auto bij autobedrijven' weggehaald", + ], + note: "Zie je nog een onderdeel of licht onderdeel dat door de dark mode heen glipt in veel gebruikte pagina's? Meld het via GitHub issues in het paneel.", + }, +}; diff --git a/src/shared/messages/runtime.ts b/src/shared/messages/runtime.ts new file mode 100644 index 0000000..3b4149e --- /dev/null +++ b/src/shared/messages/runtime.ts @@ -0,0 +1,30 @@ +export const RUNTIME_MESSAGE_ACTIONS = { + keepAlive: 'keepAlive', + forceRefresh: 'forceRefresh', +} as const; + +export const KEEP_ALIVE_ACTION = RUNTIME_MESSAGE_ACTIONS.keepAlive; +export const FORCE_REFRESH_ACTION = RUNTIME_MESSAGE_ACTIONS.forceRefresh; + +export type RuntimeMessageAction = + (typeof RUNTIME_MESSAGE_ACTIONS)[keyof typeof RUNTIME_MESSAGE_ACTIONS]; + +export type RuntimeMessage = + | { + action: typeof RUNTIME_MESSAGE_ACTIONS.keepAlive; + } + | { + action: typeof RUNTIME_MESSAGE_ACTIONS.forceRefresh; + }; + +export type RuntimeMessageResponse = + | { + status: 'acknowledged'; + timestamp: number; + } + | { + status: 'refreshed'; + } + | { + status: 'ignored'; + }; diff --git a/src/shared/storage/repository.ts b/src/shared/storage/repository.ts new file mode 100644 index 0000000..162f45a --- /dev/null +++ b/src/shared/storage/repository.ts @@ -0,0 +1,144 @@ +import type { CleanplaatsPanelState, CleanplaatsSettings } from '@/shared/types/state'; +import { + LOCAL_STORAGE_KEYS, + STORAGE_KEYS, +} from '@/shared/constants/storage'; +import { + DEFAULT_PANEL_STATE, + DEFAULT_SETTINGS, +} from '@/shared/constants/settings'; +import { + clonePanelState, + cloneSettings, + normalizePanelState, + normalizeSettings, + normalizeStoredBoolean, + readBooleanString, +} from '@/shared/utils/settings-normalization'; +import { + parseStoredJson, + stringifyStoredJson, +} from '@/shared/utils/serialization'; + +const browserApi = browser; + +type LocalStorageLike = Pick; + +export type LoadedState = { + settings: CleanplaatsSettings; + panelState: CleanplaatsPanelState; + firstRun: boolean; +}; + +const readDarkModePreference = (storageLike?: LocalStorageLike): boolean | undefined => { + if (!storageLike) return undefined; + + try { + return readBooleanString(storageLike.getItem(LOCAL_STORAGE_KEYS.darkMode)); + } catch (error) { + console.warn('Cleanplaats: Failed reading dark mode from localStorage', error); + return undefined; + } +}; + +const persistDarkModePreference = (enabled: boolean, storageLike?: LocalStorageLike): void => { + if (!storageLike) return; + + try { + storageLike.setItem(LOCAL_STORAGE_KEYS.darkMode, enabled ? 'true' : 'false'); + } catch (error) { + console.warn('Cleanplaats: Failed writing dark mode to localStorage', error); + } +}; + +const getStorageItems = async (keys: string[]): Promise> => + browserApi.storage.local.get(keys) as Promise>; + +const setStorageItems = async (items: Record): Promise => { + await browserApi.storage.local.set(items); +}; + +export class SettingsRepository { + async load(storageLike: LocalStorageLike | undefined = window.localStorage): Promise { + const items = await getStorageItems([ + STORAGE_KEYS.settings, + STORAGE_KEYS.panelState, + STORAGE_KEYS.firstRun, + ]); + + const rawSettings = parseStoredJson>(items[STORAGE_KEYS.settings]); + const rawPanelState = parseStoredJson>(items[STORAGE_KEYS.panelState]); + + const settings = normalizeSettings(rawSettings); + const panelState = normalizePanelState(rawPanelState); + + const darkModeFromLocalStorage = readDarkModePreference(storageLike); + if (typeof darkModeFromLocalStorage === 'boolean') { + settings.darkMode = darkModeFromLocalStorage; + } + + const firstRun = normalizeStoredBoolean(items[STORAGE_KEYS.firstRun], true); + + return { + settings, + panelState, + firstRun, + }; + } + + async saveSettings( + settings: CleanplaatsSettings, + panelState: CleanplaatsPanelState, + storageLike: LocalStorageLike | undefined = window.localStorage, + ): Promise { + const normalizedSettings = normalizeSettings(settings); + const normalizedPanelState = normalizePanelState(panelState); + + persistDarkModePreference(Boolean(normalizedSettings.darkMode), storageLike); + + await setStorageItems({ + [STORAGE_KEYS.settings]: stringifyStoredJson(normalizedSettings), + [STORAGE_KEYS.panelState]: stringifyStoredJson(normalizedPanelState), + }); + } + + async markFirstRunCompleted(): Promise { + await setStorageItems({ + [STORAGE_KEYS.firstRun]: false, + }); + } + + async getRawSettingsValue(): Promise { + const items = await getStorageItems([STORAGE_KEYS.settings]); + const value = items[STORAGE_KEYS.settings]; + return typeof value === 'string' ? value : undefined; + } + + async getRawPanelStateValue(): Promise { + const items = await getStorageItems([STORAGE_KEYS.panelState]); + const value = items[STORAGE_KEYS.panelState]; + return typeof value === 'string' ? value : undefined; + } + + cloneDefaults(): LoadedState { + return { + settings: cloneSettings(DEFAULT_SETTINGS), + panelState: clonePanelState(DEFAULT_PANEL_STATE), + firstRun: true, + }; + } + + parseStorageSettingsValue(rawValue: unknown): CleanplaatsSettings { + const parsed = parseStoredJson>(rawValue); + return normalizeSettings(parsed); + } + + parseStoragePanelStateValue(rawValue: unknown): CleanplaatsPanelState { + const parsed = parseStoredJson>(rawValue); + return normalizePanelState(parsed); + } + + parseStorageFirstRunValue(rawValue: unknown): boolean { + return normalizeStoredBoolean(rawValue, true); + } +} diff --git a/src/shared/types/state.ts b/src/shared/types/state.ts new file mode 100644 index 0000000..cbea089 --- /dev/null +++ b/src/shared/types/state.ts @@ -0,0 +1,177 @@ +export type SortMode = + | 'standard' + | 'date_new_old' + | 'date_old_new' + | 'price_low_high' + | 'price_high_low' + | 'distance'; + +export type CleanplaatsSortMode = SortMode; + +export type SortModeConfig = { + sortBy: string; + sortOrder: 'DECREASING' | 'INCREASING'; +}; + +export type SortPreferenceSource = 'cleanplaats' | 'marketplace'; + +export type SellerAgeThresholdUnit = 'days' | 'weeks' | 'months' | 'years'; + +export interface CleanplaatsSettings { + removeTopAds: boolean; + removeDagtoppers: boolean; + removePromotedListings: boolean; + removeOpvalStickers: boolean; + removeReservedListings: boolean; + removeFavoriteRelatedAds: boolean; + sellerAgeWarningEnabled: boolean; + sellerAgeWarningThresholdValue: number; + sellerAgeWarningThresholdUnit: SellerAgeThresholdUnit; + darkMode: boolean; + blacklistedSellers: string[]; + blacklistedTerms: string[]; + resultsPerPage: 30 | 50 | 100; + defaultSortMode: CleanplaatsSortMode; + sortPreferenceSource: SortPreferenceSource; +} + +export interface CleanplaatsStats { + topAdsRemoved: number; + dagtoppersRemoved: number; + promotedListingsRemoved: number; + opvalStickersRemoved: number; + otherAdsRemoved: number; + totalRemoved: number; +} + +export interface CleanplaatsObservers { + mutation: MutationObserver | null; + ads: MutationObserver | null; + webchat: MutationObserver | null; + sellerAge: MutationObserver | null; +} + +export interface CleanplaatsRuntimeState { + lastSellerAgeWarningKey: string; + sellerAgeCheckTimer: number; +} + +export interface CleanplaatsFeatureFlags { + showStats: boolean; + autoCollapse: boolean; + firstRun: boolean; +} + +export interface CleanplaatsPanelState { + isCollapsed: boolean; + hasShownWelcomeToast: boolean; + lastSeenVersion: string; + activeView: 'filters' | 'preferences'; +} + +export interface CleanplaatsState { + settings: CleanplaatsSettings; + stats: CleanplaatsStats; + observers: CleanplaatsObservers; + runtime: CleanplaatsRuntimeState; + featureFlags: CleanplaatsFeatureFlags; + panelState: CleanplaatsPanelState; +} + +export interface ReviewCtaConfig { + linkLabel: string; + url: string; +} + +export interface CleanplaatsLocaleText { + feedbackLabel: string; + feedbackText: string; + feedbackAriaLabel: string; + reviewAriaLabel: (linkLabel: string) => string; + supportTitle: string; + supportButton: string; + optionsTitle: string; + topAdLabel: string; + topAdTooltip: string; + topAdTooltipTwh: string; + dagtoppersLabel: string; + dagtoppersTooltip: string; + promotedListingsLabel: string; + promotedListingsTooltip: string; + stickersLabel: string; + stickersTooltip: string; + reservedLabel: string; + reservedTooltip: string; + favoriteRelatedAdsLabel: string; + favoriteRelatedAdsTooltip: string; + sellerAgeWarningLabel: string; + sellerAgeWarningTooltip: string; + sellerAgeWarningThresholdLabel: string; + sellerAgeWarningThresholdValueAriaLabel: string; + sellerAgeWarningThresholdUnitAriaLabel: string; + sellerAgeWarningThresholdUnits: Record; + sellerAgeWarningToastTitle: string; + sellerAgeWarningToastMessage: ( + sellerName: string, + sellerAgeText: string, + thresholdLabel: string, + ) => string; + preferencesLabel: string; + backLabel: string; + preferencesIntro: string; + darkModeLabel: string; + darkModeTooltip: string; + resultsPerPageLabel: string; + defaultSortLabel: string; + sortOptions: Record; + statsTitle: string; + statsTop: string; + statsDagtoppers: string; + statsBusiness: string; + statsStickers: string; + statsOther: string; + statsTotal: string; + manageTerms: string; + manageSellers: string; + termsModalTitle: string; + termsEmpty: string; + hiddenButton: string; + unhideButton: string; + termInputPlaceholder: string; + termInputHelp: string; + addButton: string; + closeButton: string; + sellersModalTitle: string; + sellersEmpty: string; + sellerInputPlaceholder: string; + sellerInputHelp: string; + hideSellerButton: string; + hiddenSellerButton: string; + hideSellerButtonAriaLabel: string; + blacklistToastHint: string; + blacklistToastHiddenSuffix: string; + blacklistToastHiddenPluralSuffix: string; + blacklistToastShownSuffix: string; + blacklistToastShownHint: string; + termToastHidden: (term: string) => string; + termToastShown: (term: string) => string; +} + +export type LocaleText = CleanplaatsLocaleText; + +export interface SellerAgeInfo { + sellerName: string; + sellerAgeText: string; + sellerAgeDays: number; +} + +export interface UpdateNote { + intro: string; + highlights: string[]; + note: string; +} + +export type UpdateNotes = Record; + +export type RuntimeResponseStatus = 'acknowledged' | 'refreshed' | 'ignored'; + diff --git a/src/shared/utils/selectors.ts b/src/shared/utils/selectors.ts new file mode 100644 index 0000000..7de1e09 --- /dev/null +++ b/src/shared/utils/selectors.ts @@ -0,0 +1,9 @@ +import { BLACKLISTED_TITLE_SELECTORS } from '@/shared/constants/settings'; + +export function getListingTitleElement(container: Element): Element | null { + return container.querySelector(BLACKLISTED_TITLE_SELECTORS); +} + +export function getListingTitleText(container: Element): string { + return getListingTitleElement(container)?.textContent?.trim().toLowerCase() ?? ''; +} diff --git a/src/shared/utils/seller-age.ts b/src/shared/utils/seller-age.ts new file mode 100644 index 0000000..d9218c1 --- /dev/null +++ b/src/shared/utils/seller-age.ts @@ -0,0 +1,56 @@ +import type { SellerAgeThresholdUnit } from '@/shared/types/state'; + +export const normalizeSellerAgeText = (text: string): string => + text.trim().toLowerCase().replace(/\s+/g, ' '); + +const SELLER_AGE_REGEX = + /(\d+)\s+(dag|dagen|day|days|jour|jours|week|weken|semaine|semaines|maand|maanden|month|months|mois|jaar|jaren|year|years|an|ans)\b/; + +export const parseSellerAgeToDays = (input: string): number | null => { + const normalized = normalizeSellerAgeText(input); + const match = normalized.match(SELLER_AGE_REGEX); + if (!match) return null; + + const amountRaw = match[1]; + const unit = match[2] ?? ''; + if (!amountRaw || !unit) return null; + + const amount = Number.parseInt(amountRaw, 10); + if (!Number.isFinite(amount) || amount < 0) return null; + + if (['dag', 'dagen', 'day', 'days', 'jour', 'jours'].includes(unit)) { + return amount; + } + + if (['week', 'weken', 'semaine', 'semaines'].includes(unit)) { + return amount * 7; + } + + if (['maand', 'maanden', 'month', 'months', 'mois'].includes(unit)) { + return amount * 30; + } + + if (['jaar', 'jaren', 'year', 'years', 'an', 'ans'].includes(unit)) { + return amount * 365; + } + + return null; +}; + +export const thresholdToDays = ( + value: number, + unit: SellerAgeThresholdUnit, +): number => { + const normalizedValue = Math.max(1, Number.isFinite(value) ? Math.trunc(value) : 1); + switch (unit) { + case 'days': + return normalizedValue; + case 'weeks': + return normalizedValue * 7; + case 'years': + return normalizedValue * 365; + case 'months': + default: + return normalizedValue * 30; + } +}; diff --git a/src/shared/utils/serialization.ts b/src/shared/utils/serialization.ts new file mode 100644 index 0000000..34f22c8 --- /dev/null +++ b/src/shared/utils/serialization.ts @@ -0,0 +1,45 @@ +export function parseJsonRecord(input: unknown): Record { + if (input == null) return {}; + + if (typeof input === 'string') { + try { + const parsed = JSON.parse(input); + return typeof parsed === 'object' && parsed !== null + ? (parsed as Record) + : {}; + } catch { + return {}; + } + } + + if (typeof input === 'object') { + return input as Record; + } + + return {}; +} + +export function parseStoredJson(input: unknown): T | undefined { + if (input == null) { + return undefined; + } + + if (typeof input === 'string') { + try { + const parsed = JSON.parse(input) as T; + return parsed; + } catch { + return undefined; + } + } + + if (typeof input === 'object') { + return input as T; + } + + return undefined; +} + +export function stringifyStoredJson(value: unknown): string { + return JSON.stringify(value); +} diff --git a/src/shared/utils/settings-normalization.ts b/src/shared/utils/settings-normalization.ts new file mode 100644 index 0000000..800ae5e --- /dev/null +++ b/src/shared/utils/settings-normalization.ts @@ -0,0 +1,150 @@ +import { DEFAULT_PANEL_STATE, DEFAULT_SETTINGS } from '@/shared/constants/settings'; +import type { + CleanplaatsPanelState, + CleanplaatsSettings, + CleanplaatsSortMode, + SellerAgeThresholdUnit, + SortPreferenceSource, +} from '@/shared/types/state'; + +const VALID_SORT_MODES = new Set([ + 'standard', + 'date_new_old', + 'date_old_new', + 'price_low_high', + 'price_high_low', + 'distance', +]); + +const VALID_SORT_SOURCES = new Set(['cleanplaats', 'marketplace']); +const VALID_THRESHOLD_UNITS = new Set([ + 'days', + 'weeks', + 'months', + 'years', +]); + +function asStringArray(value: unknown): string[] { + if (!Array.isArray(value)) return []; + return value + .filter((entry): entry is string => typeof entry === 'string') + .map((entry) => entry.trim()) + .filter(Boolean); +} + +function toBoolean(value: unknown, fallback: boolean): boolean { + return typeof value === 'boolean' ? value : fallback; +} + +function toInteger(value: unknown, fallback: number, min: number, max: number): number { + const parsed = Number.parseInt(String(value), 10); + if (!Number.isFinite(parsed)) return fallback; + return Math.min(max, Math.max(min, parsed)); +} + +function toResultsPerPage(value: unknown, fallback: CleanplaatsSettings['resultsPerPage']): CleanplaatsSettings['resultsPerPage'] { + const parsed = Number.parseInt(String(value), 10); + if (parsed === 30 || parsed === 50 || parsed === 100) { + return parsed; + } + return fallback; +} + +export function readBooleanString(value: string | null | undefined): boolean | undefined { + if (value === 'true') return true; + if (value === 'false') return false; + return undefined; +} + +export function normalizeSettings(raw: Partial | null | undefined): CleanplaatsSettings { + if (!raw || typeof raw !== 'object') { + return { ...DEFAULT_SETTINGS }; + } + + const defaultSortMode = VALID_SORT_MODES.has(raw.defaultSortMode as CleanplaatsSortMode) + ? (raw.defaultSortMode as CleanplaatsSortMode) + : DEFAULT_SETTINGS.defaultSortMode; + + const sortPreferenceSource = VALID_SORT_SOURCES.has(raw.sortPreferenceSource as SortPreferenceSource) + ? (raw.sortPreferenceSource as SortPreferenceSource) + : DEFAULT_SETTINGS.sortPreferenceSource; + + const thresholdUnit = VALID_THRESHOLD_UNITS.has(raw.sellerAgeWarningThresholdUnit as SellerAgeThresholdUnit) + ? (raw.sellerAgeWarningThresholdUnit as SellerAgeThresholdUnit) + : DEFAULT_SETTINGS.sellerAgeWarningThresholdUnit; + + return { + ...DEFAULT_SETTINGS, + removeTopAds: toBoolean(raw.removeTopAds, DEFAULT_SETTINGS.removeTopAds), + removeDagtoppers: toBoolean(raw.removeDagtoppers, DEFAULT_SETTINGS.removeDagtoppers), + removePromotedListings: toBoolean(raw.removePromotedListings, DEFAULT_SETTINGS.removePromotedListings), + removeOpvalStickers: toBoolean(raw.removeOpvalStickers, DEFAULT_SETTINGS.removeOpvalStickers), + removeReservedListings: toBoolean(raw.removeReservedListings, DEFAULT_SETTINGS.removeReservedListings), + removeFavoriteRelatedAds: toBoolean(raw.removeFavoriteRelatedAds, DEFAULT_SETTINGS.removeFavoriteRelatedAds), + sellerAgeWarningEnabled: toBoolean( + raw.sellerAgeWarningEnabled, + DEFAULT_SETTINGS.sellerAgeWarningEnabled, + ), + sellerAgeWarningThresholdValue: toInteger( + raw.sellerAgeWarningThresholdValue, + DEFAULT_SETTINGS.sellerAgeWarningThresholdValue, + 1, + 99, + ), + sellerAgeWarningThresholdUnit: thresholdUnit, + darkMode: toBoolean(raw.darkMode, DEFAULT_SETTINGS.darkMode), + blacklistedSellers: asStringArray(raw.blacklistedSellers), + blacklistedTerms: asStringArray(raw.blacklistedTerms), + resultsPerPage: toResultsPerPage(raw.resultsPerPage, DEFAULT_SETTINGS.resultsPerPage), + defaultSortMode, + sortPreferenceSource, + }; +} + +export function normalizePanelState( + raw: Partial | null | undefined, +): CleanplaatsPanelState { + if (!raw || typeof raw !== 'object') { + return { ...DEFAULT_PANEL_STATE }; + } + + const activeView = + raw.activeView === 'preferences' || raw.activeView === 'filters' + ? raw.activeView + : DEFAULT_PANEL_STATE.activeView; + + return { + ...DEFAULT_PANEL_STATE, + isCollapsed: toBoolean(raw.isCollapsed, DEFAULT_PANEL_STATE.isCollapsed), + hasShownWelcomeToast: toBoolean( + raw.hasShownWelcomeToast, + DEFAULT_PANEL_STATE.hasShownWelcomeToast, + ), + lastSeenVersion: + typeof raw.lastSeenVersion === 'string' + ? raw.lastSeenVersion + : DEFAULT_PANEL_STATE.lastSeenVersion, + activeView, + }; +} + +export function cloneSettings(input: CleanplaatsSettings): CleanplaatsSettings { + return { + ...input, + blacklistedSellers: [...input.blacklistedSellers], + blacklistedTerms: [...input.blacklistedTerms], + }; +} + +export function clonePanelState(input: CleanplaatsPanelState): CleanplaatsPanelState { + return { + ...input, + }; +} + +export function normalizeStoredBoolean(value: unknown, fallback: boolean): boolean { + if (typeof value === 'boolean') { + return value; + } + return fallback; +} diff --git a/src/styles/content.css b/src/styles/content.css new file mode 100644 index 0000000..62e70e7 --- /dev/null +++ b/src/styles/content.css @@ -0,0 +1,1891 @@ +/* Base Panel Styling */ +.cleanplaats-panel { + position: fixed; + bottom: calc(20px + var(--cleanplaats-floating-offset, 0px)); + right: 20px; + z-index: 2147483647; + display: flex; + flex-direction: column; + background: white; + border-radius: 8px; + box-shadow: 0 2px 15px rgba(0,0,0,0.2); + font-family: Arial, sans-serif; + width: 280px; + max-width: 90vw; + max-height: 82vh; + transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), + max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), + min-width 0.4s cubic-bezier(0.4, 0, 0.2, 1), + border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1), + padding 0.3s cubic-bezier(0.4, 0, 0.2, 1), + background-color 0.3s ease, + opacity 0.3s ease; + overflow: hidden; + } + +.cleanplaats-panel:not(.collapsed) { + min-width: 250px; + padding: 0; +} + + /* Collapsed state */ + .cleanplaats-panel.collapsed { + transform: none; + width: 48px; + min-width: 48px; + min-height: 48px; + max-height: 48px; + background-color: transparent; + box-shadow: 0 2px 8px rgba(0,0,0,0.25); + border-radius: 50%; + padding: 0; + cursor: pointer; + } + + .cleanplaats-panel.collapsed.collapsed-ready { + /* background-image: url('chrome-extension://__MSG_@@extension_id__/icons/icon48.png'); */ + background-size: contain; + background-repeat: no-repeat; + background-position: center; + transition: box-shadow 0.25s cubic-bezier(0.4,0,0.2,1), transform 0.22s cubic-bezier(0.4,0,0.2,1); + will-change: transform; + } + + .cleanplaats-panel.collapsed.collapsed-ready:hover { + box-shadow: 0 4px 24px 0 rgba(44, 62, 80, 0.22), 0 1.5px 8px 0 rgba(44,62,80,0.10); + transform: scale(1.18); + cursor: pointer; + } + + .cleanplaats-panel.collapsed .cleanplaats-header, + .cleanplaats-panel.collapsed .cleanplaats-content { + opacity: 0; + max-height: 0px; + padding-top: 0; + padding-bottom: 0; + margin-top: 0; + margin-bottom: 0; + border-width: 0; + pointer-events: none; + } + + /* Header Styling */ + .cleanplaats-header { + display: flex; + flex-direction: column; + align-items: stretch; + gap: 8px; + padding: 12px 15px; + border-bottom: 1px solid #f0f0f0; + cursor: pointer; + user-select: none; + opacity: 1; + visibility: visible; + max-height: 120px; + overflow: hidden; + transition: opacity 0.25s ease-out, + max-height 0.35s ease-in-out, + padding-top 0.35s ease-in-out, padding-bottom 0.35s ease-in-out, + margin-top 0.35s ease-in-out, margin-bottom 0.35s ease-in-out, + border-width 0.35s ease-in-out; + } + + .cleanplaats-header-main { + display: flex; + justify-content: space-between; + align-items: center; + gap: 10px; + } + + .cleanplaats-header-actions { + display: flex; + align-items: center; + gap: 8px; + flex-shrink: 0; + } + + .cleanplaats-header h3 { + margin: 0; + font-size: 16px; + color: #4a4a4a; + display: flex; + align-items: center; + gap: 6px; + } + + .cleanplaats-header h3::before { + display: none !important; + } + + .cleanplaats-header-logo { + width: 24px; + height: 24px; + border-radius: 50%; + display: inline-block; + vertical-align: middle; + margin-right: 10px; + box-shadow: 0 0 0 1px #e0e0e0; + background: white; + object-fit: cover; + } + + /* Total removed badge disabled for now. + .cleanplaats-badge { + background: #e8f5e9; + color: #2e7d32; + padding: 1px 6px; + border-radius: 10px; + font-size: 11px; + font-weight: bold; + margin-left: 8px; + } + */ + + .cleanplaats-toggle { + background: none; + border: none; + font-size: 16px; + cursor: pointer; + padding: 5px; + color: #757575; + transition: transform 0.3s ease; + } + + .cleanplaats-theme-toggle { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + width: 52px; + min-width: 52px; + height: 26px; + padding: 0; + border: none; + border-radius: 999px; + background: transparent; + cursor: pointer; + color: #4b5f77; + appearance: none; + -webkit-appearance: none; + } + + .cleanplaats-theme-toggle:focus-visible { + outline: 2px solid #7ccaf3; + outline-offset: 2px; + } + + .cleanplaats-theme-toggle-track { + position: relative; + display: block; + width: 52px; + height: 26px; + border-radius: 999px; + background: linear-gradient(135deg, #1a2330 0%, #28384a 100%); + box-shadow: inset 0 0 0 1px rgba(8, 14, 22, 0.18); + transition: background-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease; + } + + .cleanplaats-theme-toggle-icon, + .cleanplaats-theme-toggle-thumb-icon { + position: absolute; + display: inline-flex; + align-items: center; + justify-content: center; + width: 14px; + height: 14px; + } + + .cleanplaats-theme-toggle-icon svg, + .cleanplaats-theme-toggle-thumb-icon svg { + width: 14px; + height: 14px; + } + + .cleanplaats-theme-toggle-icon-moon { + left: 7px; + top: 6px; + color: rgba(223, 233, 244, 0.82); + } + + .cleanplaats-theme-toggle-icon-sun { + right: 7px; + top: 6px; + color: rgba(244, 199, 88, 0.95); + } + + .cleanplaats-theme-toggle-thumb { + position: absolute; + top: 2px; + left: 2px; + width: 22px; + height: 22px; + border-radius: 50%; + background: linear-gradient(180deg, #eff4fb 0%, #dbe6f2 100%); + box-shadow: 0 2px 7px rgba(7, 15, 23, 0.28); + transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), + background 0.28s ease, + box-shadow 0.28s ease; + } + + .cleanplaats-theme-toggle-thumb-icon { + inset: 4px; + width: 14px; + height: 14px; + opacity: 0; + transform: scale(0.8) rotate(-18deg); + transition: opacity 0.22s ease, transform 0.28s ease; + } + + .cleanplaats-theme-toggle[data-theme="dark"] .cleanplaats-theme-toggle-thumb-icon-moon, + .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-thumb-icon-sun { + opacity: 1; + transform: scale(1) rotate(0deg); + } + + .cleanplaats-theme-toggle[data-theme="dark"] .cleanplaats-theme-toggle-thumb { + transform: translateX(0); + background: linear-gradient(180deg, #dce6f1 0%, #bdcbdb 100%); + } + + .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-track { + background: linear-gradient(135deg, #6fbbff 0%, #f5d878 100%); + box-shadow: inset 0 0 0 1px rgba(103, 136, 174, 0.18); + } + + .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-thumb { + transform: translateX(26px); + background: linear-gradient(180deg, #fff6d6 0%, #ffd25f 100%); + box-shadow: 0 2px 7px rgba(125, 87, 0, 0.24); + } + + .cleanplaats-panel.collapsed .cleanplaats-toggle { + transform: rotate(180deg); + } + + .cleanplaats-contact-grid { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); + gap: 8px; + padding-top: 8px; + border-top: 1px solid #f0f0f0; + } + + .cleanplaats-contact { + display: flex; + align-items: center; + gap: 8px; + min-width: 0; + color: #4a4a4a; + text-decoration: none; + transition: color 0.2s ease; + } + + .cleanplaats-contact:hover, + .cleanplaats-contact:focus { + color: #0b5cab; + text-decoration: none; + } + + .cleanplaats-contact:focus-visible { + outline: 2px solid #7ccaf3; + outline-offset: 2px; + border-radius: 6px; + } + + .cleanplaats-contact-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + border-radius: 999px; + background: #eef4fb; + color: #1f2937; + flex-shrink: 0; + font-size: 12px; + } + + .cleanplaats-contact-copy { + display: flex; + flex-direction: column; + gap: 1px; + min-width: 0; + flex: 1; + } + + .cleanplaats-contact-title { + font-size: 11px; + font-weight: 700; + line-height: 1.25; + } + + .cleanplaats-contact-text { + font-size: 10px; + line-height: 1.25; + color: #757575; + } + + /* Content Area */ + .cleanplaats-content { + padding: 12px 15px; + flex: 1 1 auto; + min-height: 0; + max-height: calc(82vh - 120px); + opacity: 1; + visibility: visible; + overflow-y: auto; + overflow-x: hidden; + scrollbar-width: thin; + transition: opacity 0.25s ease-out, + max-height 0.35s ease-in-out, + padding-top 0.35s ease-in-out, padding-bottom 0.35s ease-in-out, + margin-top 0.35s ease-in-out, margin-bottom 0.35s ease-in-out; + } + + .cleanplaats-panel-views { + position: relative; + overflow: hidden; + transition: height 0.34s cubic-bezier(0.22, 1, 0.36, 1); + } + + .cleanplaats-content::-webkit-scrollbar { + width: 6px; + } + + .cleanplaats-content::-webkit-scrollbar-thumb { + background-color: #c1c1c1; + border-radius: 3px; + } + + .cleanplaats-panel-view { + position: absolute; + inset: 0; + width: 100%; + opacity: 0; + visibility: hidden; + pointer-events: none; + transform: translateY(-14px); + transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), + opacity 0.22s ease, + visibility 0s linear 0.34s; + } + + .cleanplaats-panel-view.active { + position: relative; + opacity: 1; + visibility: visible; + pointer-events: auto; + transform: translateY(0); + transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), + opacity 0.22s ease, + visibility 0s; + } + + .cleanplaats-panel-view.is-entering, + .cleanplaats-panel-view.is-leaving { + position: absolute; + inset: 0; + } + + .cleanplaats-panel-view.is-entering { + opacity: 1; + visibility: visible; + pointer-events: none; + } + + .cleanplaats-panel-view.is-entering-down, + .cleanplaats-panel-view.is-leaving-up { + transform: translateY(-14px); + } + + .cleanplaats-panel-view.is-entering-up, + .cleanplaats-panel-view.is-leaving-down { + transform: translateY(14px); + } + + .cleanplaats-panel-view.is-leaving { + opacity: 0; + visibility: visible; + pointer-events: none; + } + + .cleanplaats-panel-view-header { + display: flex; + flex-direction: column; + align-items: stretch; + gap: 4px; + margin-bottom: 10px; + } + + .cleanplaats-panel-view-topline { + display: flex; + align-items: center; + gap: 10px; + min-width: 0; + } + + .cleanplaats-panel-view-title { + color: inherit; + font-size: 16px; + font-weight: 700; + line-height: 1.2; + letter-spacing: -0.01em; + } + + .cleanplaats-panel-view-copy { + color: inherit; + font-size: 12.5px; + line-height: 1.45; + max-width: 24ch; + opacity: 0.68; + } + + .cleanplaats-panel-back { + display: inline-flex; + align-items: center; + gap: 4px; + background: rgba(127, 127, 127, 0.1); + border: 1px solid rgba(127, 127, 127, 0.16); + border-radius: 999px; + color: inherit; + cursor: pointer; + font-size: 12px; + font-weight: 600; + padding: 4px 9px; + opacity: 0.84; + transition: opacity 0.2s ease, color 0.2s ease, background 0.2s ease, border-color 0.2s ease; + } + + .cleanplaats-panel-back:hover { + opacity: 1; + background: rgba(127, 127, 127, 0.15); + border-color: rgba(127, 127, 127, 0.24); + } + + /* Options Styling */ + .cleanplaats-options { + margin-bottom: 15px; + } + + .cleanplaats-section-title { + font-size: 13px; + color: #757575; + margin: 12px 0 8px; + text-transform: uppercase; + } + + .cleanplaats-option { + display: flex; + align-items: center; + padding: 8px 0; + width: 100%; + gap: 12px; + } + + .cleanplaats-checkbox { + position: relative; + height: 18px; + width: 18px; + margin-right: 10px; + appearance: none; + border: 2px solid #9e9e9e; + border-radius: 3px; + outline: none; + cursor: pointer; + transition: background 0.2s, border-color 0.2s; + } + + .cleanplaats-checkbox:checked { + background: #4CAF50; + border-color: #4CAF50; + } + + .cleanplaats-checkbox:checked::after { + content: ""; + position: absolute; + left: 5px; + top: 2px; + width: 5px; + height: 10px; + border: solid white; + border-width: 0 2px 2px 0; + transform: rotate(45deg); + } + + .cleanplaats-option > label, + .cleanplaats-option-main > label { + display: flex; + align-items: center; + font-size: 14px; + cursor: pointer; + flex: 1; + } + + .cleanplaats-option-label { + display: flex; + align-items: center; + font-size: 14px; + cursor: pointer; + user-select: none; + flex: 1; + min-width: 0; + white-space: normal; + line-height: 1.4; + margin-left: 0 !important; + } + + .cleanplaats-option-label-text { + display: inline; + min-width: 0; + } + + .cleanplaats-results-dropdown-row .cleanplaats-option-label { + white-space: nowrap; + } + + .cleanplaats-option-preference { + align-items: flex-start; + padding-top: 12px; + border-top: 1px solid #f1f3f5; + } + + .cleanplaats-option-preference-block { + flex-direction: column; + gap: 10px; + } + + .cleanplaats-option-main { + display: flex; + align-items: flex-start; + gap: 12px; + width: 100%; + } + + .cleanplaats-option-preference .cleanplaats-switch { + flex: 0 0 auto; + margin-top: 2px; + } + + .cleanplaats-option-preference .cleanplaats-tooltip-icon { + margin-left: 6px; + margin-top: 0; + vertical-align: text-top; + } + + .cleanplaats-threshold-controls { + display: grid; + grid-template-columns: 58px minmax(92px, 1fr); + align-items: center; + column-gap: 8px; + row-gap: 8px; + width: calc(100% - 48px); + margin-left: 48px; + transition: opacity 0.2s ease; + } + + .cleanplaats-threshold-controls.is-disabled { + opacity: 0.52; + } + + .cleanplaats-threshold-label { + display: block; + grid-column: 1 / -1; + font-size: 12px; + color: #6b7280; + white-space: nowrap; + } + + .cleanplaats-threshold-input { + width: 100%; + min-width: 0; + box-sizing: border-box; + padding: 4px 8px; + border: 1px solid #e0e0e0; + border-radius: 4px; + font-size: 14px; + background: #fafafa; + color: #333; + } + + .cleanplaats-threshold-unit { + width: 100%; + min-width: 0; + box-sizing: border-box; + } + + /* Button Styling */ + .cleanplaats-button { + background: #4CAF50; + color: white; + border: none; + padding: 10px 15px; + border-radius: 4px; + cursor: pointer; + font-weight: bold; + width: 100%; + margin-top: 15px; + transition: background 0.2s ease; + font-size: 14px; + } + + .cleanplaats-button:hover { + background: #45a049; + } + + .cleanplaats-button:active { + transform: translateY(1px); + } + + .cleanplaats-button.secondary { + background: #f5f5f5; + color: #4a4a4a; + border: 1px solid #e0e0e0; + } + + .cleanplaats-button.secondary:hover { + background: #e8e8e8; + } + + .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:hover, + .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:focus-visible { + background: #2f3e4e !important; + border-color: rgba(166, 189, 214, 0.24) !important; + color: #f3f7fb !important; + } + + .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-option-preference { + border-top-color: rgba(166, 189, 214, 0.12); + } + + .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-threshold-label { + color: rgba(228, 235, 243, 0.72); + } + + .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-threshold-input, + .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown { + background: #1f2a36; + border-color: #314152; + color: #e4ebf3; + } + + .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown option { + background: #1f2a36; + color: #e4ebf3; + } + + .cleanplaats-panel-nav-button { + margin-top: 10px; + margin-bottom: 4px; + } + + @media (prefers-reduced-motion: reduce) { + .cleanplaats-panel-views, + .cleanplaats-panel-view, + .cleanplaats-panel-view.active { + transition: none; + } + } + + /* Stats Area */ + .cleanplaats-stats { + font-size: 13px; + background: #f9f9f9; + border-radius: 4px; + padding: 10px; + margin-top: 12px; + } + + .cleanplaats-stat-item { + display: flex; + justify-content: space-between; + margin: 4px 0; + } + + .cleanplaats-stat-label { + color: #616161; + } + + .cleanplaats-stat-value { + font-weight: bold; + color: #4CAF50; + } + + /* Hidden elements */ + [data-cleanplaats-hidden] { + display: none !important; + } + + .cleanplaats-hidden { + display: none !important; + visibility: hidden !important; + height: 0 !important; + width: 0 !important; + padding: 0 !important; + margin: 0 !important; + overflow: hidden !important; + position: absolute !important; + pointer-events: none !important; + } + + /* Add this to your existing CSS */ + .bannerContainerLoading[data-cleanplaats-hidden], + .MpCard-mpCardBanner[data-cleanplaats-hidden], + div[role="button"][tabindex][data-cleanplaats-hidden], + .hz-Banner[data-cleanplaats-hidden], + .hz-Banner--fluid[data-cleanplaats-hidden], + .BannerTop-root[data-cleanplaats-hidden], + #top-banner-root[data-cleanplaats-hidden] { + display: none !important; + margin: 0 !important; + padding: 0 !important; + height: 0 !important; + min-height: 0 !important; + border: none !important; + } + + /* Target any list items that might contain ads */ + li[data-cleanplaats-hidden] { + display: none !important; + margin: 0 !important; + padding: 0 !important; + height: 0 !important; + min-height: 0 !important; + } + + /* Tooltip */ + .cleanplaats-tooltip { + position: relative; + display: inline-block; + margin-left: 6px; + } + + .cleanplaats-tooltip-icon { + margin-left: 8px; + display: inline-flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + background: #e0e0e0; + color: #757575; + border-radius: 50%; + font-size: 11px; + cursor: help; + } + + .cleanplaats-tooltip-text { + visibility: hidden; + background-color: #555; + color: #fff; + text-align: left; + border-radius: 6px; + padding: 8px 12px; + position: absolute; + z-index: 2147483647; /* Same as panel - tooltips are positioned within panel context */ + bottom: 125%; + left: 50%; /* Center horizontally */ + transform: translateX(-50%); /* Center horizontally */ + width: 135px; + font-size: 12px; + line-height: 1.4; + opacity: 0; + transition: opacity 0.3s; + pointer-events: none; + white-space: normal; + word-wrap: break-word; + box-shadow: 0 2px 8px rgba(0,0,0,0.15); + } + + .cleanplaats-tooltip:hover .cleanplaats-tooltip-text { + visibility: visible; + opacity: 1; + } + + /* First-time onboarding */ + .cleanplaats-onboarding { + position: fixed; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + padding: 20px; + z-index: 2147483647; + background: rgba(15, 23, 42, 0.55); + font-family: Arial, sans-serif; + opacity: 1; + transition: opacity 0.3s ease; + } + + .cleanplaats-onboarding-content { + width: min(90vw, 480px); + background: white; + border-radius: 12px; + box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15); + padding: 24px; + } + + .cleanplaats-onboarding.cleanplaats-fade-out { + opacity: 0; + pointer-events: none; + } + + .cleanplaats-onboarding-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + } + + .cleanplaats-onboarding-header h3 { + margin: 0; + font-size: 1.4em; + color: #2D3748; + } + + .cleanplaats-onboarding-close { + background: none; + border: none; + font-size: 24px; + cursor: pointer; + color: #718096; + padding: 4px 8px; + } + + .cleanplaats-onboarding-steps { + margin: 20px 0; + } + + .cleanplaats-onboarding-step { + display: flex; + align-items: center; + margin: 16px 0; + gap: 12px; + } + + .step-number { + background: #4CAF50; + color: white; + width: 24px; + height: 24px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + flex-shrink: 0; + } + + .cleanplaats-onboarding-step p { + margin: 0; + color: #4A5568; + font-size: 14px; + line-height: 1.5; + } + + .cleanplaats-onboarding-button { + width: 100%; + padding: 12px; + background: #4CAF50; + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 1em; + font-weight: bold; + transition: background 0.2s; + } + + .cleanplaats-onboarding-button:hover { + background: #45a049; + } + + .cleanplaats-info-overlay { + position: fixed; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + padding: 20px; + background: rgba(15, 23, 42, 0.55); + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease; + z-index: 2147483647; + } + + .cleanplaats-info-overlay--visible { + opacity: 1; + pointer-events: auto; + } + + .cleanplaats-info-card { + width: min(92vw, 420px); + background: #ffffff; + border-radius: 16px; + padding: 20px 22px; + box-shadow: 0 22px 50px rgba(15, 23, 42, 0.3); + display: flex; + flex-direction: column; + gap: 14px; + font-family: Arial, sans-serif; + } + + .cleanplaats-info-header { + display: flex; + flex-direction: column; + gap: 6px; + position: relative; + padding-right: 104px; + } + + .cleanplaats-info-logo { + position: absolute; + top: 0; + right: 0; + width: 84px; + height: 84px; + object-fit: cover; + border-radius: 18px; + box-shadow: 0 10px 22px rgba(15, 23, 42, 0.18); + background: #f8fafc; + } + + .cleanplaats-info-eyebrow { + font-size: 0.85rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + color: #16a34a; + } + + .cleanplaats-info-title { + margin: 0; + font-size: 1.35rem; + color: #0f172a; + } + + .cleanplaats-info-intro { + margin: 0; + color: #475569; + line-height: 1.4; + } + + .cleanplaats-info-steps { + margin: 0; + padding-left: 18px; + color: #1f2937; + line-height: 1.5; + display: grid; + gap: 6px; + } + + .cleanplaats-info-note { + margin: 0; + color: #64748b; + font-size: 0.92rem; + } + + .cleanplaats-info-footer { + display: flex; + justify-content: flex-end; + } + + .cleanplaats-info-button { + min-width: 132px; + padding: 11px 16px; + background: #16a34a; + color: #ffffff; + border: none; + border-radius: 10px; + cursor: pointer; + font-size: 0.95rem; + font-weight: 700; + transition: background 0.2s ease, transform 0.2s ease; + } + + .cleanplaats-info-button:hover, + .cleanplaats-info-button:focus { + background: #15803d; + } + + .cleanplaats-info-button:focus-visible { + outline: 2px solid #7ccaf3; + outline-offset: 2px; + } + + @media (max-width: 520px) { + .cleanplaats-info-card { + padding: 18px; + } + + .cleanplaats-info-header { + padding-right: 0; + } + + .cleanplaats-info-logo { + position: static; + width: 64px; + height: 64px; + margin-bottom: 4px; + } + + .cleanplaats-info-footer { + justify-content: stretch; + } + + .cleanplaats-info-button { + width: 100%; + } + } + + @media (prefers-reduced-motion: reduce) { + .cleanplaats-info-overlay, + .cleanplaats-info-button { + transition: none; + } + } + + /* Welcome toast */ + .cleanplaats-toast { + position: fixed; + bottom: 24px; + left: 50%; + transform: translateX(-50%) translateY(100px); + background: #2D3748; + color: white; + padding: 12px 24px; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + z-index: 10000; + opacity: 0; + transition: transform 0.3s ease, opacity 0.3s ease; + font-family: Arial, sans-serif; + } + + .cleanplaats-toast.visible { + transform: translateX(-50%) translateY(0); + opacity: 1; + } + + .cleanplaats-toast-content { + display: flex; + align-items: center; + gap: 8px; + font-size: 14px; + } + + .cleanplaats-toast-icon { + font-size: 18px; + } + + .cleanplaats-toast-icon.eye { + text-decoration: line-through; + } + + /* Buy Me Coffee Button */ + .cleanplaats-bmc-button { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + box-sizing: border-box; + margin: 0px auto 8px; + padding: 10px 18px; + background: linear-gradient(180deg, #fff2c6 0%, #ffe29a 100%); + color: #6f4b00; + border: 1px solid #f2c14e; + border-radius: 8px; + font-size: 15px; + font-weight: 700; + text-decoration: none; + transition: background 0.2s, border 0.2s, color 0.2s, box-shadow 0.2s, transform 0.2s; + box-shadow: 0 6px 14px rgba(242, 193, 78, 0.22); + width: fit-content; + max-width: calc(100% - 24px); + min-width: 0; + cursor: pointer; + } + + .cleanplaats-bmc-button:hover, + .cleanplaats-bmc-button:focus { + background: linear-gradient(180deg, #ffe9b3 0%, #ffd873 100%); + color: #5d3f00; + border-color: #e3ae2d; + text-decoration: none; + box-shadow: 0 8px 18px rgba(242, 193, 78, 0.3); + transform: translateY(-1px); + } + + .cleanplaats-bmc-emoji { + font-size: 1.25em; + margin-right: 2px; + } + + /* Toggle Switch styling */ + .cleanplaats-switch { + position: relative; + display: inline-block; + width: 36px !important; + min-width: 36px !important; + max-width: 36px !important; + height: 20px !important; + flex: 0 0 36px !important; + margin: 0 !important; + } + + .cleanplaats-switch input { + opacity: 0; + width: 0; + height: 0; + } + + .cleanplaats-switch-slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #e0e0e0; + transition: .3s; + border-radius: 20px; + width: 36px !important; + } + + .cleanplaats-switch-slider:before { + position: absolute; + content: ""; + height: 16px; + width: 16px; + left: 2px; + bottom: 2px; + background-color: white; + transition: .3s; + border-radius: 50%; + } + + input:checked + .cleanplaats-switch-slider { + background-color: #4CAF50; + } + + input:checked + .cleanplaats-switch-slider:before { + transform: translateX(16px); + } + + /* Blacklist modal styles */ + .cleanplaats-blacklist-modal { + position: fixed; + bottom: calc(120px + var(--cleanplaats-floating-offset, 0px)); + right: 20px; + background: #fff; + border: none; + z-index: 9999; + padding: 16px; + box-shadow: 0 2px 15px rgba(0,0,0,0.1); + border-radius: 8px; + width: 280px; + max-width: 90vw; + transform: translateZ(0); + will-change: transform; + backface-visibility: hidden; + } + + .cleanplaats-blacklist-modal-content h4 { + margin: 0 0 16px 0; + color: #4a4a4a; + font-size: 16px; + display: flex; + align-items: center; + gap: 8px; + } + + .cleanplaats-blacklist-modal-content h4::before { + content: "👁"; + font-size: 18px; + } + + .cleanplaats-blacklist-modal-content ul { + list-style: none; + padding: 0; + margin: 0; + max-height: 300px; + overflow-y: auto; + } + + .cleanplaats-blacklist-modal-content ul::-webkit-scrollbar { + width: 6px; + } + + .cleanplaats-blacklist-modal-content ul::-webkit-scrollbar-thumb { + background-color: #c1c1c1; + border-radius: 3px; + } + + .cleanplaats-blacklist-modal-content li { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px; + margin-bottom: 4px; + background: #f8f9fa; + border-radius: 6px; + transition: background 0.2s; + } + + .cleanplaats-blacklist-modal-content li:hover { + background: #f0f0f0; + } + + .cleanplaats-blacklist-modal-content li span { + flex: 1; + margin-right: 12px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #333; + font-size: 14px; + } + + /* Modern button style */ + .cleanplaats-unblacklist-btn { + display: flex; + align-items: center; + gap: 6px; + background: #ff4d4d; + color: white; + border: none; + padding: 6px 12px; + border-radius: 6px; + cursor: pointer; + font-size: 13px; + transition: all 0.3s ease; + white-space: nowrap; + position: relative; + } + + .cleanplaats-unblacklist-btn::before { + content: "👁"; + font-size: 14px; + text-decoration: line-through; + margin-right: 4px; + transition: all 0.3s ease; + } + + .cleanplaats-unblacklist-btn:hover { + background: #4CAF50; + transform: translateY(-1px); + } + + .cleanplaats-unblacklist-btn:hover::before { + text-decoration: none; + } + + /* Close button style */ + #cleanplaats-blacklist-close { + width: 100%; + margin-top: 12px; + padding: 8px; + background: #f0f0f0; + border: none; + border-radius: 6px; + color: #666; + cursor: pointer; + font-size: 14px; + transition: background 0.2s; + } + + #cleanplaats-blacklist-close:hover { + background: #e0e0e0; + } + + /* Modern seller hide button */ + .cleanplaats-blacklist-btn-row { + margin-top: 4px; + margin-bottom: 8px; + width: 100%; + display: flex; + align-items: center; + } + + .cleanplaats-blacklist-btn { + display: flex; + align-items: center; + gap: 6px; + background: #f8f9fa; + color: #666; + border: none; + padding: 6px 12px; + border-radius: 6px; + cursor: pointer; + font-size: 13px; + transition: all 0.2s ease; + width: auto; + min-width: auto; + max-width: none; + } + + .cleanplaats-detail-blacklist-row { + margin-top: 10px; + margin-bottom: 14px; + padding-top: 10px; + border-top: 1px solid #edf1f5; + display: flex; + justify-content: flex-start; + } + + .cleanplaats-detail-blacklist-btn { + width: auto; + justify-content: flex-start; + font-weight: 600; + padding: 8px 12px; + } + + .cleanplaats-detail-blacklist-btn:disabled, + .cleanplaats-detail-blacklist-btn[aria-disabled="true"] { + background: #eef2f6; + color: #8a94a3; + cursor: default; + transform: none; + } + + .cleanplaats-detail-blacklist-btn:disabled::before, + .cleanplaats-detail-blacklist-btn[aria-disabled="true"]::before { + text-decoration: line-through; + } + + .cleanplaats-detail-blacklist-btn:disabled:hover, + .cleanplaats-detail-blacklist-btn[aria-disabled="true"]:hover { + background: #eef2f6; + color: #8a94a3; + transform: none; + } + + /* Inline button for car adverts */ + .cleanplaats-inline-btn { + display: inline-flex !important; + align-items: center !important; + gap: 6px !important; + background: #f8f9fa !important; + color: #666 !important; + border: none !important; + padding: 4px 8px !important; + border-radius: 4px !important; + cursor: pointer !important; + font-size: 12px !important; + transition: all 0.2s ease !important; + width: auto !important; + min-width: auto !important; + max-width: none !important; + margin-left: 8px !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + margin-right: 0 !important; + vertical-align: middle !important; + line-height: 1 !important; + white-space: nowrap !important; + } + + /* Add eye icon */ + .cleanplaats-blacklist-btn::before { + content: "👁"; + font-size: 14px; + } + + /* Hover effect */ + .cleanplaats-blacklist-btn:hover { + background: #ff4d4d; + color: white; + transform: translateY(-1px); + } + + /* Hover effect for the eye icon */ + .cleanplaats-blacklist-btn:hover::before { + text-decoration: line-through; + } + + /* Inline button hover effects */ + .cleanplaats-inline-btn::before { + content: "👁" !important; + font-size: 12px !important; + } + + .cleanplaats-inline-btn:hover { + background: #ff4d4d !important; + color: white !important; + transform: translateY(-1px) !important; + } + + .cleanplaats-inline-btn:hover::before { + text-decoration: line-through !important; + } + + /* Blacklist toast notification */ + .cleanplaats-blacklist-toast { + position: fixed; + bottom: 24px; + left: 50%; + transform: translateX(-50%) translateY(100px); + background: #1a1a1a; + color: white; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + z-index: 2147483648; + opacity: 0; + transition: all 0.3s ease; + } + + .cleanplaats-blacklist-toast-warning { + background: linear-gradient(180deg, #5c2327 0%, #4a171b 100%); + border: 1px solid rgba(255, 186, 186, 0.18); + box-shadow: 0 8px 24px rgba(71, 16, 20, 0.28); + } + + .cleanplaats-blacklist-toast-warning .cleanplaats-toast-message span { + opacity: 0.92; + } + + .cleanplaats-blacklist-toast-warning .cleanplaats-toast-icon { + width: 22px; + height: 22px; + border-radius: 999px; + background: rgba(255, 255, 255, 0.14); + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 13px; + font-weight: 700; + line-height: 1; + } + + .cleanplaats-blacklist-toast.visible { + transform: translateX(-50%) translateY(0); + opacity: 1; + } + + .cleanplaats-blacklist-toast-content { + display: flex; + align-items: center; + gap: 12px; + } + + .cleanplaats-toast-icon { + font-size: 18px; + } + + .cleanplaats-toast-icon.eye { + text-decoration: line-through; + } + + .cleanplaats-toast-message { + display: flex; + flex-direction: column; + gap: 2px; + } + + .cleanplaats-toast-message strong { + font-size: 14px; + font-weight: 600; + } + + .cleanplaats-toast-message span { + font-size: 12px; + opacity: 0.8; + } + + /* Style for the "Beheer verborgen verkopers" button */ + #cleanplaats-manage-blacklist { + background-color: #2196F3; + color: white; + border: none; + padding: 10px 15px; + border-radius: 4px; + cursor: pointer; + font-weight: bold; + width: 100%; + margin-top: 15px; + transition: background-color 0.3s ease; + font-size: 14px; + } + + #cleanplaats-manage-blacklist:hover { + background-color: #1976D2; + } + + /* Blacklist terms modal styles */ + .cleanplaats-terms-modal { + position: fixed; + bottom: calc(170px + var(--cleanplaats-floating-offset, 0px)); + right: 20px; + background: #fff; + border: none; + z-index: 9999; + padding: 16px; + box-shadow: 0 2px 15px rgba(0,0,0,0.1); + border-radius: 8px; + width: 280px; + max-width: 90vw; + transform: translateZ(0); + will-change: transform; + backface-visibility: hidden; + } + + .cleanplaats-terms-modal-content h4 { + margin: 0 0 16px 0; + color: #4a4a4a; + font-size: 16px; + display: flex; + align-items: center; + gap: 8px; + } + + .cleanplaats-terms-modal-content h4::before { + content: "✏️"; + font-size: 18px; + margin-right: 6px; + } + + .cleanplaats-terms-modal-content ul { + list-style: none; + padding: 0; + margin: 0; + max-height: 300px; + overflow-y: auto; + } + + .cleanplaats-terms-modal-content ul::-webkit-scrollbar { + width: 6px; + } + + .cleanplaats-terms-modal-content ul::-webkit-scrollbar-thumb { + background-color: #c1c1c1; + border-radius: 3px; + } + + .cleanplaats-terms-modal-content li { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px; + margin-bottom: 4px; + background: #f8f9fa; + border-radius: 6px; + transition: background 0.2s; + } + + .cleanplaats-terms-modal-content li:hover { + background: #f0f0f0; + } + + .cleanplaats-terms-modal-content li span { + flex: 1; + margin-right: 12px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #333; + font-size: 14px; + } + + /* Modern button style for blacklist terms */ + .cleanplaats-unblacklist-term-btn { + display: flex; + align-items: center; + gap: 6px; + background: #ff4d4d; + color: white; + border: none; + padding: 6px 12px; + border-radius: 6px; + cursor: pointer; + font-size: 13px; + transition: all 0.3s ease; + white-space: nowrap; + position: relative; + } + + .cleanplaats-unblacklist-term-btn::before { + content: "👁"; + font-size: 14px; + text-decoration: line-through; + margin-right: 4px; + transition: all 0.3s ease; + } + + .cleanplaats-unblacklist-term-btn:hover { + background: #4CAF50; + transform: translateY(-1px); + } + + .cleanplaats-unblacklist-term-btn:hover::before { + text-decoration: none; + } + + /* Close button style for terms modal */ + #cleanplaats-terms-close { + width: 100%; + margin-top: 12px; + padding: 8px; + background: #f0f0f0; + border: none; + border-radius: 6px; + color: #666; + cursor: pointer; + font-size: 14px; + transition: background 0.2s; + } + + #cleanplaats-terms-close:hover { + background: #e0e0e0; + } + + /* Style for the "Beheer blacklist termen" button */ + #cleanplaats-manage-terms { + background-color: #2196F3; + color: white; + border: none; + padding: 10px 15px; + border-radius: 4px; + cursor: pointer; + font-weight: bold; + width: 100%; + margin-top: 15px; + transition: background-color 0.3s ease; + font-size: 14px; + } + + #cleanplaats-manage-terms:hover { + background-color: #1976D2; + } + + /* Ensure removed ads do not leave blank spaces */ + .hz-Listing[data-cleanplaats-hidden] { + display: none !important; + } + + .hz-Link[data-cleanplaats-hidden] { + display: none !important; + } + + .cleanplaats-terms-input-row { + display: flex; + gap: 8px; + margin-top: 12px; + width: 100%; + box-sizing: border-box; + } + + .cleanplaats-term-input { + flex: 1 1 0; + min-width: 0; + box-sizing: border-box; + padding: 8px 12px; + border: 1px solid #e0e0e0; + border-radius: 6px; + font-size: 14px; + color: #333; + transition: border-color 0.2s; + } + + .cleanplaats-term-input:focus { + outline: none; + border-color: #2196F3; + } + + .cleanplaats-add-term-btn { + flex: 0 0 auto; + box-sizing: border-box; + padding: 8px 16px; + background: #2196F3; + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + font-weight: 500; + transition: background-color 0.2s; + white-space: nowrap; + max-width: 110px; + overflow: hidden; + text-overflow: ellipsis; + } + + .cleanplaats-add-term-btn:hover { + background: #1976D2; + } + + .cleanplaats-input-help { + margin-top: 8px; + color: #666; + font-size: 12px; + line-height: 1.4; + } + + .cleanplaats-panel.animating .cleanplaats-content { + scrollbar-width: none; /* Firefox */ + } + .cleanplaats-panel.animating .cleanplaats-content::-webkit-scrollbar { + display: none; /* Chrome, Safari */ + } + + /* Mobile seller topright row and hide button */ + @media (max-width: 700px) { + .cleanplaats-seller-topright-mobile { + display: flex; + justify-content: flex-end; + align-items: center; + gap: 6px; + font-size: 12px; + color: #888; + background: rgba(255,255,255,0.85); + border-radius: 6px; + padding: 2px 8px 2px 8px; + box-shadow: 0 1px 4px rgba(0,0,0,0.03); + margin-bottom: 4px; + } + .cleanplaats-seller-name-mobile { + color: #666; + font-size: 12px; + font-weight: 500; + max-width: 90px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .cleanplaats-blacklist-btn-mobile { + background: none; + border: none; + color: #888; + font-size: 16px; + cursor: pointer; + padding: 2px 4px; + border-radius: 4px; + display: flex; + align-items: center; + transition: background 0.2s; + } + .cleanplaats-blacklist-btn-mobile svg { + display: inline-block; + vertical-align: middle; + stroke: #888; + fill: none; + width: 18px; + height: 18px; + transition: stroke 0.2s; + } + .cleanplaats-blacklist-btn-mobile:hover { + background: #f0f0f0; + } + .cleanplaats-blacklist-btn-mobile:active svg, + .cleanplaats-blacklist-btn-mobile:hover svg { + stroke: #555; + } + .cleanplaats-panel.collapsed.collapsed-ready:hover { + box-shadow: 0 2px 8px rgba(0,0,0,0.25); + transform: none; + } + } + + /* Dropdown styling */ + .cleanplaats-results-dropdown-row { + display: flex; + align-items: center; + gap: 10px; + margin: 6px 0 2px 0; + } + .cleanplaats-results-dropdown { + padding: 4px 8px; + border-radius: 4px; + border: 1px solid #e0e0e0; + font-size: 14px; + background: #fafafa; + color: #333; + min-width: 70px; + color-scheme: light; + } + .cleanplaats-results-dropdown:focus { + outline: none; + border-color: #2196F3; + } + + .cleanplaats-threshold-input:focus { + outline: none; + border-color: #2196F3; + } + + .cleanplaats-results-dropdown option { + background: #fafafa; + color: #333; + } + + /* Verbeterde statistieken styling */ + .cleanplaats-stats.cleanplaats-stats-compact { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 2px 10px; + font-size: 12px; + padding: 8px 10px; + margin-top: 10px; + background: #f9f9f9; + border-radius: 6px; + border: 1px solid #f0f0f0; + } + .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-section-title { + grid-column: 1 / -1; + margin-bottom: 4px; + font-size: 11px; + margin-top: 0; + color: #757575; + font-weight: 500; + letter-spacing: 0.3px; + text-transform: uppercase; + } + .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-item { + margin: 0; + padding: 2px 0; + display: flex; + justify-content: space-between; + align-items: center; + min-height: 16px; + } + .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-item:last-child { + border-bottom: none; + } + .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-label { + font-size: 11px; + color: #616161; + font-weight: 400; + } + .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-value { + font-size: 11px; + color: #4CAF50; + font-weight: 600; + } + @media (max-width: 400px) { + .cleanplaats-stats.cleanplaats-stats-compact { + grid-template-columns: 1fr; + padding: 8px; + } + } + + /* Global tooltip for all panel tooltips */ + .cleanplaats-global-tooltip { + position: fixed; + z-index: 2147483648; + background-color: #555; + color: #fff; + border-radius: 6px; + padding: 8px 12px; + font-size: 12px; + line-height: 1.4; + opacity: 1; + pointer-events: none; + white-space: normal; + word-wrap: break-word; + box-shadow: 0 2px 8px rgba(0,0,0,0.15); + transition: opacity 0.3s; + left: 0; + top: 0; + display: none; + max-width: 220px; + } diff --git a/src/styles/dark-mode.css b/src/styles/dark-mode.css new file mode 100644 index 0000000..9764d57 --- /dev/null +++ b/src/styles/dark-mode.css @@ -0,0 +1,3238 @@ +html.cleanplaats-dark-mode { + --cleanplaats-dark-bg: #11161d; + --cleanplaats-dark-bg-elevated: #18212c; + --cleanplaats-dark-bg-soft: #1f2a36; + --cleanplaats-dark-bg-soft-hover: #263342; + --cleanplaats-dark-border: #314152; + --cleanplaats-dark-border-subtle: rgba(120, 143, 166, 0.18); + --cleanplaats-dark-text: #e4ebf3; + --cleanplaats-dark-text-muted: #aebccc; + --cleanplaats-dark-link: #8cc8ff; + --cleanplaats-dark-accent: #1f7fd1; +} + +html.cleanplaats-dark-mode, +html.cleanplaats-dark-mode body, +html.cleanplaats-dark-mode .hz-Page, +html.cleanplaats-dark-mode .hz-Page-body, +html.cleanplaats-dark-mode .hz-Page-element, +html.cleanplaats-dark-mode #main-container, +html.cleanplaats-dark-mode #footer-container, +html.cleanplaats-dark-mode .hz-Accordion, +html.cleanplaats-dark-mode .hz-Accordion-item, +html.cleanplaats-dark-mode .hz-Accordion-body, +html.cleanplaats-dark-mode .FooterLinkWrapper, +html.cleanplaats-dark-mode .FooterLinkWrapper-listAccordion { + background: var(--cleanplaats-dark-bg) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode body, +html.cleanplaats-dark-mode p, +html.cleanplaats-dark-mode span, +html.cleanplaats-dark-mode div, +html.cleanplaats-dark-mode li, +html.cleanplaats-dark-mode dt, +html.cleanplaats-dark-mode dd, +html.cleanplaats-dark-mode label, +html.cleanplaats-dark-mode strong, +html.cleanplaats-dark-mode h1, +html.cleanplaats-dark-mode h2, +html.cleanplaats-dark-mode h3, +html.cleanplaats-dark-mode h4, +html.cleanplaats-dark-mode h5, +html.cleanplaats-dark-mode h6 { + color: var(--cleanplaats-dark-text); +} + +html.cleanplaats-dark-mode a, +html.cleanplaats-dark-mode .hz-Link, +html.cleanplaats-dark-mode .hz-TextLink, +html.cleanplaats-dark-mode .hz-TabNextButton { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-SvgIcon, +html.cleanplaats-dark-mode .hz-Icon.hz-SvgIcon { + opacity: 1 !important; + filter: invert(0.72) sepia(0.08) saturate(3) hue-rotate(175deg) + brightness(1.05) contrast(0.92) !important; +} + +html.cleanplaats-dark-mode header, +html.cleanplaats-dark-mode footer, +html.cleanplaats-dark-mode .hz-Header, +html.cleanplaats-dark-mode .hz-Header-navBar, +html.cleanplaats-dark-mode .hz-CategoryMenuBar, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-topLevelItems, +html.cleanplaats-dark-mode .hz-Page-element--full-width, +html.cleanplaats-dark-mode .hz-Page-element--main, +html.cleanplaats-dark-mode .hz-Page-element--sidebar { + background: var(--cleanplaats-dark-bg) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Header-navBar { + border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .mp-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-ribbonBottom, +html.cleanplaats-dark-mode .mp-Nav-dropdown-menu, +html.cleanplaats-dark-mode .mp-HamburgerMenu, +html.cleanplaats-dark-mode .mp-Nav-pills { + background: var(--cleanplaats-dark-bg) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .mp-Header-navBar, +html.cleanplaats-dark-mode .mp-Header-ribbonBottom { + border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--flat, +html.cleanplaats-dark-mode .mp-Header-links .mp-Button--flat, +html.cleanplaats-dark-mode .mp-Nav-dropdown-toggle, +html.cleanplaats-dark-mode .mp-HamburgerMenu a, +html.cleanplaats-dark-mode .mp-Nav-dropdown-menu a, +html.cleanplaats-dark-mode .mp-Nav-pill--header, +html.cleanplaats-dark-mode .mp-Nav-pill--separator, +html.cleanplaats-dark-mode .mp-Header-hamburger-close { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + border-color: transparent !important; +} + +html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--flat:hover, +html.cleanplaats-dark-mode .mp-Header-links .mp-Button--flat:hover, +html.cleanplaats-dark-mode .mp-Nav-dropdown-toggle:hover, +html.cleanplaats-dark-mode .mp-HamburgerMenu a:hover, +html.cleanplaats-dark-mode .mp-Nav-dropdown-menu a:hover, +html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--flat:focus-visible, +html.cleanplaats-dark-mode .mp-Header-links .mp-Button--flat:focus-visible, +html.cleanplaats-dark-mode .mp-Nav-dropdown-toggle:focus-visible, +html.cleanplaats-dark-mode .mp-HamburgerMenu a:focus-visible, +html.cleanplaats-dark-mode .mp-Nav-dropdown-menu a:focus-visible, +html.cleanplaats-dark-mode .mp-Header-hamburger-close:hover, +html.cleanplaats-dark-mode .mp-Header-hamburger-close:focus-visible { + color: #ffffff !important; +} + +html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction, +html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction:visited { + color: #ffffff !important; +} + +html.cleanplaats-dark-mode .mp-Header-menu .mp-Icon, +html.cleanplaats-dark-mode .mp-Header-links .mp-Icon, +html.cleanplaats-dark-mode .mp-Header-hamburger-close .mp-Icon { + opacity: 1 !important; + filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.08) contrast(0.96) !important; +} + +html.cleanplaats-dark-mode .mymp, +html.cleanplaats-dark-mode .mymp.require.empty, +html.cleanplaats-dark-mode .mymp .mp-Topbar, +html.cleanplaats-dark-mode .mymp .mp-Tab-bar, +html.cleanplaats-dark-mode .mymp .canvas, +html.cleanplaats-dark-mode .mymp .table.ad-listing-container, +html.cleanplaats-dark-mode .mymp .table-body, +html.cleanplaats-dark-mode .mymp .row.ad-listing.empty-row { + background: var(--cleanplaats-dark-bg) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .mymp .mp-Topbar { + border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .mymp .mp-Topbar-title, +html.cleanplaats-dark-mode .mymp .hz-Title, +html.cleanplaats-dark-mode .mymp .u-colorTextPrimary, +html.cleanplaats-dark-mode .mymp .u-colorTextSecondary, +html.cleanplaats-dark-mode .mymp .text, +html.cleanplaats-dark-mode .mymp .text h3, +html.cleanplaats-dark-mode .mymp .text p { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .mymp .mp-Tab, +html.cleanplaats-dark-mode .mymp .mp-Tab:visited { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .mymp .mp-Tab:hover, +html.cleanplaats-dark-mode .mymp .mp-Tab:focus-visible, +html.cleanplaats-dark-mode .mymp .mp-Tab.is-selected, +html.cleanplaats-dark-mode .mymp .mp-Tab.is-selected:visited { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .mymp .mp-Tab-bar { + border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact, +html.cleanplaats-dark-mode .mymp .bubble-help.info, +html.cleanplaats-dark-mode .mymp .overlay-loader.overlayed { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .mymp .query.mp-Input, +html.cleanplaats-dark-mode .mymp select, +html.cleanplaats-dark-mode .mymp input[type="text"] { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .mymp .query.mp-Input::placeholder, +html.cleanplaats-dark-mode .mymp input::placeholder { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .mymp .filter-option, +html.cleanplaats-dark-mode .mymp .filter-option.selected { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .mymp #ad-listing-table-body, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .cells, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .cell, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .description-column, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-column, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .views-column, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .position-column { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact { + border-top-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .description-title, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .flex-row, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .listing-status, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .amount, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .health, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .cta, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .bid, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper a { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper a, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper img { + border-color: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .title, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .title:visited, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .type, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .activity, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .renewal, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .amount span[aria-hidden="true"], +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .upcall-label { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status a, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status a:visited, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .feature-phone-upcall, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .feature-phone-upcall:visited { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status a:hover, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .feature-phone-upcall:hover { + color: #8fc8ff !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .mp-Icon, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .hz-Icon { + opacity: 1 !important; + filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.08) contrast(0.96) !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .mp-Button--primary, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .opvallen-link.mp-Button--primary, +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .opvallen-link.one-feature-opvallen-link { + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-bad { + color: #f0ae86 !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-ok { + color: #f3d37b !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-good { + color: #9fd9b0 !important; +} + +html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .verkopen-select { + accent-color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .mp-Tab, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .mp-Tab:visited { + color: #c8d8e8 !important; +} + +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .u-colorTextSecondary, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp small, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .description, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .hint, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .meta { + color: #c1d2e2 !important; +} + +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .mp-Icon, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .hz-Icon, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Icon, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .hz-Icon { + opacity: 1 !important; + filter: brightness(0) invert(1) !important; +} + +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction:visited, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Button--callToAction, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Button--callToAction:visited { + color: #ffffff !important; +} + +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction *, +html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Button--callToAction * { + color: #ffffff !important; + -webkit-text-fill-color: #ffffff !important; + opacity: 1 !important; +} + +html.cleanplaats-dark-mode .hz-Topbar, +html.cleanplaats-dark-mode .hz-Topbar-inner-wrapper, +html.cleanplaats-dark-mode .hz-Tab-bar.has-sticky, +html.cleanplaats-dark-mode .hz-Page-container, +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"], +html.cleanplaats-dark-mode [class*="StickyHeader-sticky-header"], +html.cleanplaats-dark-mode [class*="FilterSection-filters-container"], +html.cleanplaats-dark-mode [class*="ListHeader-headers-container"], +html.cleanplaats-dark-mode [class*="FavoritesList-list-container"] { + background: var(--cleanplaats-dark-bg) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Topbar, +html.cleanplaats-dark-mode .hz-Tab-bar.has-sticky, +html.cleanplaats-dark-mode [class*="FilterSection-filters-container"], +html.cleanplaats-dark-mode [class*="ListHeader-headers-container"], +html.cleanplaats-dark-mode [class*="FavoritesList-list-container"] { + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-Topbar-title, +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab, +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:visited, +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] label, +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] span, +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] p, +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] h4, +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] div { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab, +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:visited { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:hover, +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:focus-visible, +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab.is-selected, +html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab.is-selected:visited { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-Dropdown-formControl, +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-Dropdown-input, +html.cleanplaats-dark-mode [class*="FilterSection-filterAll"] { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-Dropdown-input { + border-radius: 10px !important; +} + +html.cleanplaats-dark-mode [class*="FilterSection-filterAll"]:hover, +html.cleanplaats-dark-mode [class*="FilterSection-filterAll"]:focus-visible { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border-strong) !important; +} + +html.cleanplaats-dark-mode [class*="ListHeader-button-container"] .hz-Button, +html.cleanplaats-dark-mode [class*="ListHeader-button-container"] button { + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="hz-Listing-compact-body"], +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="hz-Listing-compact-content"], +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="FavoritesListItem-hz-Listing-compact-price"], +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="FavoritesListItem-hz-Listing-compact-favorite"], +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="FavoritesListItem-mobile-pricing"] { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + opacity: 1 !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="hz-Listing-compact-body"].FavoritesListItem-not_published { + opacity: 0.5 !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Listing-compact-title, +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Link, +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Link:visited, +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-TextLink, +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-TextLink:visited { + color: #b9dcff !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Listing-compact-seller, +html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Listing-compact-location, +html.cleanplaats-dark-mode [class*="ListHeader-list-header"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="SimilarAdsList-related-ads-section"] { + background: rgba(21, 28, 37, 0.76) !important; + border-top: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode [class*="SimilarAdsList-related-copy"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="SimilarAdItem-hz-Listing-compact"] { + color: inherit !important; + text-decoration-color: transparent !important; +} + +html.cleanplaats-dark-mode [class*="SimilarAdItem-hz-Listing-compact"] [class*="hz-Listing-compact-body"] { + background: transparent !important; + border: 0 !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-SelectionInput-Input { + background: var(--cleanplaats-dark-bg-soft) !important; + border-color: var(--cleanplaats-dark-border-strong) !important; +} + +html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-SelectionInput-Input:checked { + background: var(--cleanplaats-dark-link) !important; + border-color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-UtilsBlock.u-backgroundColorBackgroundSurface { + background: var(--cleanplaats-dark-bg) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-UtilsBlock.u-backgroundColorBackgroundSurface { + background: var(--cleanplaats-dark-bg-elevated) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-Title, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-Text, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-TextContent, +html.cleanplaats-dark-mode .hz-Page-element--aside .u-colorTextPrimary { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-List._withDivider_gi4uo_6 .hz-ListItem--menu, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-List._withDivider_gi4uo_6 .hz-ListItemButton { + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + border-radius: 10px !important; + border: 0 !important; + box-shadow: none !important; + outline: 0 !important; + transition: background-color 0.15s ease, color 0.15s ease !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-ListItem, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-ListItem--content, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-ListItem--menuItem, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-TextContent, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton > .hz-ListItem--withIcon, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; + outline: 0 !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within { + background: var(--cleanplaats-dark-bg-soft) !important; + border-radius: 10px !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton > .hz-ListItem--withIcon, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton > .hz-ListItem--withIcon, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton .hz-TextContent, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton .hz-TextContent, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton .hz-Text, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton .hz-Text { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; + outline: 0 !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; + outline: 0 !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton { + background: rgba(31, 127, 209, 0.18) !important; + border: 0 !important; + box-shadow: none !important; + outline: 0 !important; + border-radius: 10px !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItem, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItem--content, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItem--menuItem, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-TextContent, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton > .hz-ListItem--withIcon, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; + outline: 0 !important; + border-radius: inherit !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-Text, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .u-colorTextControlsSelected, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover .hz-ListItemButton, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within .hz-ListItemButton { + background: rgba(31, 127, 209, 0.18) !important; + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu.hz-ListItem--selected:hover, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu.hz-ListItem--selected:focus-within { + background: transparent !important; +} + +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover > .hz-ListItemButton .hz-TextContent, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within > .hz-ListItemButton .hz-TextContent, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover > .hz-ListItemButton .hz-Text, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within > .hz-ListItemButton .hz-Text, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover > .hz-ListItemButton .u-colorTextControlsSelected, +html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within > .hz-ListItemButton .u-colorTextControlsSelected { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"], +html.cleanplaats-dark-mode [class*="CategorySelection-module-main"], +html.cleanplaats-dark-mode .syi-categories-section, +html.cleanplaats-dark-mode .categories-wrap, +html.cleanplaats-dark-mode [class*="ManualSelect-module-manualSelectContainer"] { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] { + background: var(--cleanplaats-dark-bg-elevated) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + border-radius: 14px !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Title, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Text, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .u-colorTextPrimary, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .u-colorTextSecondary, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .input-label, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] span, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] div { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-footer, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-formControl { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-formControl { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + border-radius: 10px !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-formControl:focus-within { + border-color: rgba(140, 200, 255, 0.42) !important; + box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-input, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-input::placeholder { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-input::placeholder, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .u-colorTextSecondary, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-footer .hz-Text { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-formControl, +html.cleanplaats-dark-mode [class*="ManualSelect-module-manualSelect"] { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] [class*="ManualSelect-module-manualSelect"] .hz-Dropdown-input { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + border-radius: 10px !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input:focus, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input:focus-visible { + border-color: rgba(140, 200, 255, 0.42) !important; + box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; + outline: 0 !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input option { + background: var(--cleanplaats-dark-bg-elevated) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-SvgIconArrowDown, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-SvgIconCategoryCars, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown .hz-Icon { + opacity: 1 !important; + filter: invert(0.78) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.08) contrast(0.96) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button--secondary { + background: var(--cleanplaats-dark-bg-soft) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button--secondary:hover, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button--secondary:focus-visible { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: var(--cleanplaats-dark-link) !important; + color: #f7fbff !important; +} + +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .CategorySelection-module-submitButton:disabled, +html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button:disabled { + background: rgba(31, 42, 54, 0.55) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text-muted) !important; + opacity: 1 !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="Category-module-flexContainer"], +html.cleanplaats-dark-mode .hz-Page-content [class*="PlaceListing-module-placeListing"], +html.cleanplaats-dark-mode .hz-Page-content [class*="FormSection-module-FormSection"], +html.cleanplaats-dark-mode .hz-Page-content [class*="FormSection-module-FormSection_header"], +html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-flexContainer"], +html.cleanplaats-dark-mode .hz-Page-content [class*="Bundles-module-featureSelection"], +html.cleanplaats-dark-mode .hz-Page-content [class*="TotalPrice-module-wrapper"], +html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-section, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-mobileOnly { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="FormSection-module-FormSection"] { + background: var(--cleanplaats-dark-bg-elevated) !important; + border: 0 !important; + border-radius: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="ImageBox-module-imageUploadBox"], +html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_benefits"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"], +html.cleanplaats-dark-mode .hz-Page-content [class*="TotalPrice-module-content"], +html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root { + background: var(--cleanplaats-dark-bg-elevated) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + border-radius: 14px !important; + box-shadow: none !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="ImageBox-module-imageUploadBox"], +html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_benefits"] { + background: linear-gradient(180deg, rgba(24, 33, 44, 0.86) 0%, rgba(20, 28, 37, 0.96) 100%) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"] { + background: var(--cleanplaats-dark-bg-elevated) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"]:hover, +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"]:focus-visible { + background: var(--cleanplaats-dark-bg-soft) !important; + border-color: rgba(140, 200, 255, 0.22) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="Header-module-title"], +html.cleanplaats-dark-mode .hz-Page-content [class*="Category-module-categoryInfo"], +html.cleanplaats-dark-mode .hz-Page-content [class*="FieldTip-module-description"], +html.cleanplaats-dark-mode .hz-Page-content [class*="ImageUploadedStats-module-stats"], +html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_list"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-header"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-description"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureBody"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-features"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureNote"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-price"], +html.cleanplaats-dark-mode .hz-Page-content [class*="TotalPrice-module-number"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BiddingSwitch-module-tip"], +html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-progressBarContainer"], +html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-marginTop"], +html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-overflowHidden"], +html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-horizontalBox"], +html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container, +html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container div, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-section, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-section div, +html.cleanplaats-dark-mode .hz-Page-content .hz-Title, +html.cleanplaats-dark-mode .hz-Page-content .hz-Text, +html.cleanplaats-dark-mode .hz-Page-content .u-colorTextPrimary, +html.cleanplaats-dark-mode .hz-Page-content .u-colorTextSecondary { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="FieldTip-module-description"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BiddingSwitch-module-tip"], +html.cleanplaats-dark-mode .hz-Page-content .hz-BreadcrumbLabel, +html.cleanplaats-dark-mode .hz-Page-content .hz-CurrentPage, +html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container a, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root a { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container a:hover, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root a:hover { + color: #8fc8ff !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="FieldTip-module-description"], +html.cleanplaats-dark-mode .hz-Page-content [class*="BiddingSwitch-module-tip"], +html.cleanplaats-dark-mode .hz-Page-content .hz-BreadcrumbLabel, +html.cleanplaats-dark-mode .hz-Page-content .hz-CurrentPage { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-Breadcrumbs, +html.cleanplaats-dark-mode .hz-Page-content [class*="Category-module-breadcrumb"] { + background: transparent !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="ImageUploaderBox-module-label"] { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="ImageUploaderBox-module-icon"], +html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_benefits"] .hz-Icon, +html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureIcon"], +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Icon { + opacity: 1 !important; + filter: invert(0.78) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.08) contrast(0.96) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Button--secondary { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Button--secondary:hover, +html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Button--secondary:focus-visible { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: rgba(140, 200, 255, 0.24) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content [class*="RichTextEditor-module-blockFormatDropdown"], +html.cleanplaats-dark-mode .hz-Page-content [class*="RichTextEditor-module-toolbarItem"], +html.cleanplaats-dark-mode .hz-Page-content [class*="RichTextEditor-module-dropdownCaret"] { + background: var(--cleanplaats-dark-bg-soft) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput, +html.cleanplaats-dark-mode .hz-Page-content .hz-Switch, +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Container, +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Body, +html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Body { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-LabelText { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input { + background: var(--cleanplaats-dark-bg-soft) !important; + border-color: var(--cleanplaats-dark-border) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input:hover, +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input:focus { + border-color: rgba(140, 200, 255, 0.3) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input:checked { + background: var(--cleanplaats-dark-link) !important; + border-color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Button { + background: rgba(255, 255, 255, 0.16) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Handle { + background: #f2f7fc !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Input:checked + .hz-Switch-Body .hz-Switch-Button { + background: var(--cleanplaats-dark-accent) !important; +} + +html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Body .hz-Icon, +html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Body [class*="SvgIcon"] { + filter: invert(0.88) sepia(0.03) saturate(3) hue-rotate(175deg) + brightness(1.06) contrast(0.98) !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Header-maxWidth, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchFieldset-standard, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchFieldset-advanced, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-query, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-category, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-postcode, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-distance, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-options, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-CustomDropdown, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-footer { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button, +html.cleanplaats-dark-mode .hz-Header-searchBar button { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + box-shadow: none !important; + color: var(--cleanplaats-dark-text) !important; + height: 35px !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Input, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-input { + background: transparent !important; + box-shadow: none !important; + color: var(--cleanplaats-dark-text) !important; + border: 0 !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container { + border-left-color: transparent !important; + border-radius: 0 !important; + padding: 0 8px !important; + background: var(--cleanplaats-dark-bg-soft) !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle { + border-radius: 3px 0 0 3px !important; + padding: 4px 8px !important; +} + +html.cleanplaats-dark-mode .hz-PopOverContent, +html.cleanplaats-dark-mode .hz-PopOverContent-body, +html.cleanplaats-dark-mode .hz-PopOverContent-close { + background: var(--cleanplaats-dark-bg-elevated) !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Text, +html.cleanplaats-dark-mode .hz-PopOverContent .u-colorTextPrimary, +html.cleanplaats-dark-mode .hz-PopOverContent .u-colorTextSecondary { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Icon { + opacity: 1 !important; + filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.08) contrast(0.96) !important; +} + +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--tertiary, +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--icon-button { + background: transparent !important; + border-color: transparent !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--tertiary:hover, +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--tertiary:focus-visible, +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--icon-button:hover, +html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--icon-button:focus-visible { + background: var(--cleanplaats-dark-bg-soft) !important; + border-color: var(--cleanplaats-dark-border) !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button, +html.cleanplaats-dark-mode .hz-Header-searchBar button { + border-left: 1px solid var(--cleanplaats-dark-border) !important; + border-radius: 0 3px 3px 0 !important; + padding: 8px 12px !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Input, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger { + color: var(--cleanplaats-dark-text) !important; + background: transparent !important; + border: 0 !important; + padding: 0 0 0 12px !important; + height: 33.4px !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger .hz-SvgIconArrowDown, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger .hz-Icon { + opacity: 1 !important; + filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.08) contrast(0.96) !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle:hover, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container:hover, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button:hover, +html.cleanplaats-dark-mode .hz-Header-searchBar button:hover { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: rgba(140, 200, 255, 0.22) !important; +} + +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle:focus, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container:focus-within, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl:focus-within, +html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button:focus, +html.cleanplaats-dark-mode .hz-Header-searchBar button:focus { + border-color: rgba(140, 200, 255, 0.42) !important; + box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.24) !important; +} + +html.cleanplaats-dark-mode .hz-Card, +html.cleanplaats-dark-mode [class*="Card"]:not(.ListingHeader-actionsContainer):not(.ListingHeader-header):not(.ListingHeader-action), +html.cleanplaats-dark-mode [role="dialog"], +html.cleanplaats-dark-mode [data-testid="vip-content"] { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge, +html.cleanplaats-dark-mode .hz-LoginNudge article, +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-body, +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-ctaBlock { + background: var(--cleanplaats-dark-bg-elevated) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge article { + border: 1px solid var(--cleanplaats-dark-border) !important; + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.34) !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-body { + border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-arrowPointer { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-bg-elevated) !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon, +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon .hz-Icon, +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-listItem .hz-Icon { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon:hover, +html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon:focus-visible { + color: #ffffff !important; +} + +html.cleanplaats-dark-mode .gm-fullscreen-control, +html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + border-radius: 8px !important; + box-shadow: 0 8px 18px rgba(0, 0, 0, 0.35) !important; +} + +html.cleanplaats-dark-mode .gm-fullscreen-control:hover, +html.cleanplaats-dark-mode .gm-fullscreen-control:focus-visible, +html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control:hover, +html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control:focus-visible { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: rgba(140, 200, 255, 0.28) !important; + box-shadow: 0 10px 22px rgba(0, 0, 0, 0.42) !important; +} + +html.cleanplaats-dark-mode .gm-fullscreen-control img, +html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control img { + filter: invert(0.92) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.04) contrast(0.96) !important; + opacity: 1 !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root, +html.cleanplaats-dark-mode .LoginComponent-root .hz-Card, +html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-card { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: 0 16px 32px rgba(0, 0, 0, 0.36) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-header, +html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-passwordBlock, +html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-remember, +html.cleanplaats-dark-mode .LoginComponent-root .hz-ButtonsBlock, +html.cleanplaats-dark-mode .LoginComponent-root .hz-UtilsBlock, +html.cleanplaats-dark-mode .LoginComponent-root .hz-Divider { + background: transparent !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root, +html.cleanplaats-dark-mode .LoginComponent-root span, +html.cleanplaats-dark-mode .LoginComponent-root div, +html.cleanplaats-dark-mode .LoginComponent-root label, +html.cleanplaats-dark-mode .LoginComponent-root strong, +html.cleanplaats-dark-mode .LoginComponent-root .hz-Text, +html.cleanplaats-dark-mode .LoginComponent-root .u-colorTextPrimary, +html.cleanplaats-dark-mode .LoginComponent-root .input-label { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-Divider, +html.cleanplaats-dark-mode .LoginComponent-root .hz-Text--bodySmall, +html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-passwordRecoveryLink, +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-footer, +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-footer * { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root a, +html.cleanplaats-dark-mode .LoginComponent-root .hz-Link { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField, +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-footer, +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-formControl { + background: transparent !important; + border-color: var(--cleanplaats-dark-border) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-formControl { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + border-radius: 8px !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-formControl:focus-within { + border-color: rgba(140, 200, 255, 0.42) !important; + box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.24) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-input, +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-input::placeholder { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-suffix, +html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-suffix button { + background: transparent !important; + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary, +html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton { + border-radius: 8px !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary { + background: var(--cleanplaats-dark-accent) !important; + border: 1px solid var(--cleanplaats-dark-accent) !important; + color: #ffffff !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary:hover, +html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary:focus-visible { + background: #2892eb !important; + border-color: #2892eb !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButtonIcon { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + width: 28px !important; + height: 28px !important; + min-width: 28px !important; + min-height: 28px !important; + border-radius: 999px !important; + background: #ffffff !important; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18) !important; + overflow: visible !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton:hover, +html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton:focus-visible { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: rgba(140, 200, 255, 0.24) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-InputContainer { + background: transparent !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input { + border: 1px solid rgba(226, 235, 244, 0.72) !important; + background: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input:hover, +html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input:focus { + border-color: rgba(140, 200, 255, 0.42) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input:checked { + background: var(--cleanplaats-dark-link) !important; + border-color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .hz-SvgIconCheckmark { + opacity: 1 !important; + filter: invert(0.9) sepia(0.08) saturate(2.4) hue-rotate(178deg) + brightness(1.03) contrast(0.94) !important; +} + +html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButtonLogo, +html.cleanplaats-dark-mode .LoginComponent-root .hz-SvgAssetSocialBadgeGoogle { + filter: none !important; + opacity: 1 !important; + width: 20px !important; + height: 20px !important; + min-width: 20px !important; + min-height: 20px !important; +} + +html.cleanplaats-dark-mode .hz-Inpage, +html.cleanplaats-dark-mode .hz-Inpage.hz-Inpage--info, +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-body { + background: rgba(31, 42, 54, 0.72) !important; + background-color: rgba(31, 42, 54, 0.72) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-title, +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-title *, +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-body, +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-body * { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-icon { + color: #8cc8ff !important; +} + +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-icon .hz-SvgIcon, +html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-icon .hz-Icon { + filter: invert(0.76) sepia(0.18) saturate(2.8) hue-rotate(175deg) + brightness(1.02) contrast(0.95) !important; + opacity: 1 !important; +} + +html.cleanplaats-dark-mode .LinksBlock-root .LinksBlock-icon .hz-SvgIcon, +html.cleanplaats-dark-mode .LinksBlock-root .LinksBlock-icon .hz-Icon { + opacity: 1 !important; + filter: invert(0.72) sepia(0.08) saturate(3) hue-rotate(175deg) + brightness(1.05) contrast(0.92) !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge .hz-Button--primary { + background: var(--cleanplaats-dark-accent) !important; + border-color: transparent !important; + color: #f7fbff !important; +} + +html.cleanplaats-dark-mode .hz-LoginNudge .hz-Button--primary:hover, +html.cleanplaats-dark-mode .hz-LoginNudge .hz-Button--primary:focus-visible { + background: #2b8fe2 !important; + color: #ffffff !important; +} + +html.cleanplaats-dark-mode .hz-StructuredListing, +html.cleanplaats-dark-mode .hz-Listing, +html.cleanplaats-dark-mode article.hz-StructuredListing { + background: transparent !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Listing-title, +html.cleanplaats-dark-mode .hz-StructuredListing-title, +html.cleanplaats-dark-mode .hz-Listing-group--title-description, +html.cleanplaats-dark-mode .hz-Listing-group--title-description *, +html.cleanplaats-dark-mode .hz-Listing-coverLink .hz-Listing-title, +html.cleanplaats-dark-mode .hz-Listing-coverLink-new .hz-Listing-title, +html.cleanplaats-dark-mode .hz-StructuredListing-body .hz-StructuredListing-title, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h1, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h2, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h3, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h4, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h5, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h6, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h1, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h2, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h3, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h4, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h5, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h6 { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-Listing-price, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-Title, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-Title *, +html.cleanplaats-dark-mode .hz-Listing-priority, +html.cleanplaats-dark-mode .hz-Listing-priority span { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Listing-description, +html.cleanplaats-dark-mode .hz-Listing-attributes, +html.cleanplaats-dark-mode .hz-Listing-attributes *, +html.cleanplaats-dark-mode .hz-Listing-seller-name, +html.cleanplaats-dark-mode .hz-Listing-seller-name-new, +html.cleanplaats-dark-mode .hz-Listing-sellerName, +html.cleanplaats-dark-mode .hz-Listing-sellerName-new, +html.cleanplaats-dark-mode .hz-StructuredListing-subtitle, +html.cleanplaats-dark-mode .hz-StructuredListing-body > div:not(.hz-Title), +html.cleanplaats-dark-mode .hz-StructuredListing-body > span:not(.hz-StructuredListing-title) { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-StructuredListing .hz-Image-container, +html.cleanplaats-dark-mode .hz-Listing .hz-Image-container, +html.cleanplaats-dark-mode article.hz-StructuredListing .hz-Image-container { + background: rgba(31, 42, 54, 0.52) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-StructuredListing .hz-Image, +html.cleanplaats-dark-mode .hz-Listing .hz-Image, +html.cleanplaats-dark-mode article.hz-StructuredListing .hz-Image { + background: transparent !important; +} + +html.cleanplaats-dark-mode .Skeleton-noShadow, +html.cleanplaats-dark-mode .Skeleton-border, +html.cleanplaats-dark-mode .Skeleton-base, +html.cleanplaats-dark-mode .Skeleton-base.Skeleton-text, +html.cleanplaats-dark-mode [class*="Skeleton"], +html.cleanplaats-dark-mode [class*="Skeleton-"], +html.cleanplaats-dark-mode .hz-StructuredListing.Skeleton-noShadow, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-StructuredListing-image.Skeleton-border { + background: rgba(31, 42, 54, 0.52) !important; + background-color: rgba(31, 42, 54, 0.52) !important; + background-image: none !important; + border-color: rgba(120, 143, 166, 0.16) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .Skeleton-base::before, +html.cleanplaats-dark-mode .Skeleton-base.Skeleton-withAnimation::before, +html.cleanplaats-dark-mode [class*="Skeleton-base"]::before, +html.cleanplaats-dark-mode [class*="Skeleton-withAnimation"]::before { + background: linear-gradient( + 90deg, + rgba(31, 42, 54, 0) 0, + rgba(49, 65, 82, 0.45) 50%, + rgba(31, 42, 54, 0.52) 100% + ) !important; + background-color: rgba(31, 42, 54, 0.52) !important; + background-image: linear-gradient( + 90deg, + rgba(31, 42, 54, 0) 0, + rgba(49, 65, 82, 0.45) 50%, + rgba(31, 42, 54, 0.52) 100% + ) !important; +} + +html.cleanplaats-dark-mode .ListingHeader-actionsContainer, +html.cleanplaats-dark-mode .ListingHeader-header, +html.cleanplaats-dark-mode .ListingHeader-action, +html.cleanplaats-dark-mode .ListingHeader-title, +html.cleanplaats-dark-mode .ListingHeader-price { + background: transparent !important; + border-color: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ShippingInformation-deliveryLabel { + background: rgba(31, 42, 54, 0.32) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ShippingInformation-deliveryLabel:hover { + background: rgba(38, 51, 66, 0.42) !important; + border-color: rgba(140, 200, 255, 0.18) !important; +} + +html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-shippingModalLink, +html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-buyerProtectionModalLink { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-shippingModalLink:hover, +html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-shippingModalLink:focus-visible, +html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-buyerProtectionModalLink:hover, +html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-buyerProtectionModalLink:focus-visible { + background: rgba(140, 200, 255, 0.05) !important; + border: 0 !important; + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .ListingHeader-action .hz-Link, +html.cleanplaats-dark-mode .ListingHeader-action .hz-Button { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Modal-Header, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Modal-Content, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .PaymentRequestComposer-module-container-ATW7t, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .PaymentRequestComposer-module-optionsWrapper-xvzJq, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .OBPTransactionSupport-module-root-iPGCb { + background: var(--cleanplaats-dark-bg-elevated) !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Title, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Text, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal strong, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-colorTextPrimary { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-colorTextSecondary, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-textStyleBodySmall, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .OBPTransactionSupport-module-root-iPGCb .hz-Text { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-backgroundColorBackgroundSecondary, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-backgroundColorBackgroundDefault, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-UtilsBlock.u-backgroundColorBackgroundSecondary, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-UtilsBlock.u-backgroundColorBackgroundDefault { + background: var(--cleanplaats-dark-bg-soft) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingApp-module-root-NAusX, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Header-module-root-Ws2Y3, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-listSection-gNscY, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-root-StCL_, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .CostPrice-module-root-eUO5p, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Gutter-module-root-YYL5n { + background: var(--cleanplaats-dark-bg-soft) !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2 { + border-radius: 12px !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-root-StCL_ { + background: var(--cleanplaats-dark-bg-soft) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li { + background: transparent !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:focus-visible, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:focus-visible, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:focus-visible { + background: var(--cleanplaats-dark-bg-soft-hover) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:focus-visible { + background: transparent !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:hover *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:focus-visible *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:hover *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:focus-visible *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:hover *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:focus-visible * { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:focus-visible, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:focus-visible { + background: var(--cleanplaats-dark-bg-soft-hover) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:hover *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:focus-visible *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:hover *, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:focus-visible * { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-TextField-formControl, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-TextField-input { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-TextField-prefix { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--action-image, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--icon-button { + background: transparent !important; + border-color: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--action-image:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--action-image:focus-visible, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--icon-button:hover, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--icon-button:focus-visible { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: var(--cleanplaats-dark-border) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Link { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Icon, +html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Asset { + opacity: 1 !important; + filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) + brightness(1.08) contrast(0.96) !important; +} + +html.cleanplaats-dark-mode .ListingHeader-action .hz-Link:hover, +html.cleanplaats-dark-mode .ListingHeader-action .hz-Link:focus-visible, +html.cleanplaats-dark-mode .ListingHeader-action .hz-Button:hover, +html.cleanplaats-dark-mode .ListingHeader-action .hz-Button:focus-visible { + background: rgba(140, 200, 255, 0.05) !important; + border: 0 !important; +} + +html.cleanplaats-dark-mode button.hz-Link.hz-Link--standalone[type="button"][role="link"], +html.cleanplaats-dark-mode button.hz-Link.hz-Link--standalone[type="button"][role="link"]:hover, +html.cleanplaats-dark-mode button.hz-Link.hz-Link--isolated[type="button"][role="link"], +html.cleanplaats-dark-mode button.hz-Link.hz-Link--isolated[type="button"][role="link"]:hover, +html.cleanplaats-dark-mode button.hz-Link.hz-Link--standalone[type="button"][role="link"]:focus-visible { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Breadcrumb .hz-Link, +html.cleanplaats-dark-mode .hz-Breadcrumb .hz-Link:hover, +html.cleanplaats-dark-mode .hz-Breadcrumb .hz-Link:focus-visible { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="hz-TabNext"], +html.cleanplaats-dark-mode [role="tablist"], +html.cleanplaats-dark-mode [role="tab"], +html.cleanplaats-dark-mode .hz-TabNext { + background: transparent !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-TabNext--active, +html.cleanplaats-dark-mode .hz-TabNextButton--active, +html.cleanplaats-dark-mode [role="tab"][aria-selected="true"] { + color: var(--cleanplaats-dark-link) !important; + border-color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-TabNext:hover, +html.cleanplaats-dark-mode .hz-TabNext:focus-visible, +html.cleanplaats-dark-mode .hz-TabNextButton:hover, +html.cleanplaats-dark-mode .hz-TabNextButton:focus-visible, +html.cleanplaats-dark-mode [role="tab"]:hover, +html.cleanplaats-dark-mode [role="tab"]:focus-visible { + background: rgba(140, 200, 255, 0.06) !important; + border-color: rgba(140, 200, 255, 0.18) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-TabNext:hover *, +html.cleanplaats-dark-mode .hz-TabNext:focus-visible *, +html.cleanplaats-dark-mode .hz-TabNextButton:hover *, +html.cleanplaats-dark-mode .hz-TabNextButton:focus-visible *, +html.cleanplaats-dark-mode [role="tab"]:hover *, +html.cleanplaats-dark-mode [role="tab"]:focus-visible * { + color: inherit !important; +} + +html.cleanplaats-dark-mode .CarAttributes-root, +html.cleanplaats-dark-mode .CarAttributesTabs-panelContainer, +html.cleanplaats-dark-mode .CarAttributesTabs-itemLabel, +html.cleanplaats-dark-mode .CarAttributesTabs-itemValue, +html.cleanplaats-dark-mode .CarAttributesTabs-valueWithoutLabel { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .CarAttributesTabs-itemLabel, +html.cleanplaats-dark-mode .CarAttributesTabs-itemValue, +html.cleanplaats-dark-mode .CarAttributesTabs-valueWithoutLabel { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-TabNext--active:hover, +html.cleanplaats-dark-mode .hz-TabNext--active:focus-visible, +html.cleanplaats-dark-mode .hz-TabNextButton--active:hover, +html.cleanplaats-dark-mode .hz-TabNextButton--active:focus-visible, +html.cleanplaats-dark-mode [role="tab"][aria-selected="true"]:hover, +html.cleanplaats-dark-mode [role="tab"][aria-selected="true"]:focus-visible { + background: rgba(140, 200, 255, 0.08) !important; + border-color: var(--cleanplaats-dark-link) !important; + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode input, +html.cleanplaats-dark-mode select, +html.cleanplaats-dark-mode textarea, +html.cleanplaats-dark-mode .hz-Nav-dropdown-toggle, +html.cleanplaats-dark-mode .hz-Header-Autocomplete-input, +html.cleanplaats-dark-mode .hz-TextField-input { + background: transparent !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode button, +html.cleanplaats-dark-mode .hz-Button, +html.cleanplaats-dark-mode .hz-Action { + background: var(--cleanplaats-dark-bg-soft) !important; + border-color: var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"], +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"] { + background: rgba(28, 39, 52, 0.98) !important; + border: 1px solid rgba(236, 244, 252, 0.48) !important; + color: #ffffff !important; + box-shadow: + 0 10px 24px rgba(0, 0, 0, 0.38), + 0 0 0 1px rgba(14, 20, 28, 0.42) !important; + backdrop-filter: blur(6px) !important; +} + +html.cleanplaats-dark-mode .hz-Action-icon .hz-SvgIconHeart, +html.cleanplaats-dark-mode .hz-Action-icon .hz-SvgIconHeart::before, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"] .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"] .hz-Icon { + color: #ffffff !important; + opacity: 1 !important; + font-size: 1.12em !important; + -webkit-text-stroke: 0.6px rgba(255, 255, 255, 1) !important; + filter: brightness(0) invert(1) drop-shadow(0 0 1px rgba(255, 255, 255, 0.9)) !important; + text-shadow: + 0 0 1px rgba(255, 255, 255, 1), + 0 0 12px rgba(255, 255, 255, 0.18) !important; +} + +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:hover, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:focus-visible, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:hover, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:focus-visible, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:hover, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:focus-visible { + background: rgba(38, 52, 68, 1) !important; + border-color: rgba(255, 255, 255, 0.72) !important; + color: #ffffff !important; +} + +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:hover .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:focus-visible .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:hover .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:focus-visible .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:hover .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:focus-visible .hz-Icon { + color: #ffffff !important; + -webkit-text-stroke: 0.7px rgba(255, 255, 255, 1) !important; + filter: brightness(0) invert(1) drop-shadow(0 0 2px rgba(255, 255, 255, 0.95)) !important; +} + +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Verwijder uit favorieten"], +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="verwijder uit favorieten"] { + background: rgba(30, 56, 82, 0.98) !important; + border-color: rgba(150, 214, 255, 0.7) !important; +} + +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Verwijder uit favorieten"] .hz-Icon, +html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="verwijder uit favorieten"] .hz-Icon { + color: #c5ebff !important; + -webkit-text-stroke: 0.65px rgba(197, 235, 255, 1) !important; + filter: brightness(0) saturate(100%) invert(88%) sepia(18%) saturate(1044%) hue-rotate(176deg) brightness(102%) contrast(101%) !important; +} + +html.cleanplaats-dark-mode .hz-TextField-input, +html.cleanplaats-dark-mode .hz-TextField-input::placeholder, +html.cleanplaats-dark-mode .hz-Header-navBar a, +html.cleanplaats-dark-mode .hz-Header-navBar button, +html.cleanplaats-dark-mode .hz-CategoryMenuBar a, +html.cleanplaats-dark-mode .hz-CategoryMenuBar button, +html.cleanplaats-dark-mode .hz-CategoryMenuBar span { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Header-navBar [class*="Item"], +html.cleanplaats-dark-mode .hz-CategoryMenuBar [class*="Item"], +html.cleanplaats-dark-mode .hz-CategoryMenuBar [class*="expandToggle"] { + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar { + border-top: 1px solid var(--cleanplaats-dark-border-subtle) !important; + border-right: 0 !important; + border-bottom: 0 !important; + border-left: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar-topLevel { + border: 0 !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar-topLevelItems { + background: linear-gradient(180deg, rgba(24, 33, 44, 0.72) 0%, rgba(17, 22, 29, 0.92) 100%) !important; + border-top: 0 !important; + border-right: 0 !important; + border-bottom: 0 !important; + border-left: 0 !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-background { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-top: 1px solid var(--cleanplaats-dark-border-subtle) !important; + box-shadow: 0 18px 34px rgba(0, 0, 0, 0.34) !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar-list, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem { + background: transparent !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar-Item, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle { + background: transparent !important; + border-top: 0 !important; + border-bottom: 0 !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem a, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout i { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar .hz-SvgIcon, +html.cleanplaats-dark-mode .hz-CategoryMenuBar .hz-Icon, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout .hz-SvgIcon, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout .hz-Icon, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-SvgIcon, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Icon { + opacity: 1 !important; + filter: invert(0.72) sepia(0.08) saturate(3) hue-rotate(175deg) + brightness(1.05) contrast(0.92) !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar-Item:hover, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle:hover, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover { + background: rgba(140, 200, 255, 0.04) !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBar-Item:hover .hz-CategoryMenuBarItem-link, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle:hover button, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle:hover span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover a, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover i { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:hover, +html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:focus-visible, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:hover, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:focus-visible, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:hover, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:focus-visible { + background: rgba(140, 200, 255, 0.08) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:hover i, +html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:focus-visible i, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:hover i, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:focus-visible i, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:hover i, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:focus-visible i, +html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:hover span, +html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:focus-visible span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:hover span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:focus-visible span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:hover span, +html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:focus-visible span { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Custom-Options-container, +html.cleanplaats-dark-mode .hz-Options-container, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu, +html.cleanplaats-dark-mode [role="listbox"].hz-Custom-Options-container, +html.cleanplaats-dark-mode [role="listbox"].hz-Options-container, +html.cleanplaats-dark-mode [role="listbox"].hz-Nav-dropdown-menu { + background: var(--cleanplaats-dark-bg-elevated) !important; + color: var(--cleanplaats-dark-text) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + box-shadow: 0 16px 32px rgba(0, 0, 0, 0.42) !important; +} + +html.cleanplaats-dark-mode .hz-Custom-Options-container *, +html.cleanplaats-dark-mode .hz-Options-container *, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu * { + color: var(--cleanplaats-dark-text) !important; + border-color: transparent !important; +} + +html.cleanplaats-dark-mode .hz-Custom-Options-container [aria-selected="true"], +html.cleanplaats-dark-mode .hz-Options-container [aria-selected="true"], +html.cleanplaats-dark-mode .hz-Custom-Options-container [class*="selected"], +html.cleanplaats-dark-mode .hz-Options-container [class*="selected"], +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [aria-selected="true"], +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="selected"] { + background: rgba(140, 200, 255, 0.12) !important; + color: #f5faff !important; +} + +html.cleanplaats-dark-mode .hz-Custom-Options-container [role="option"], +html.cleanplaats-dark-mode .hz-Options-container [role="option"], +html.cleanplaats-dark-mode .hz-Custom-Options-container li, +html.cleanplaats-dark-mode .hz-Options-container li, +html.cleanplaats-dark-mode .hz-Custom-Options-container [class*="option"], +html.cleanplaats-dark-mode .hz-Options-container [class*="option"], +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu li, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="pill"] { + background: transparent !important; +} + +html.cleanplaats-dark-mode .hz-Custom-Options-container [role="option"]:hover, +html.cleanplaats-dark-mode .hz-Options-container [role="option"]:hover, +html.cleanplaats-dark-mode .hz-Custom-Options-container li:hover, +html.cleanplaats-dark-mode .hz-Options-container li:hover, +html.cleanplaats-dark-mode .hz-Custom-Options-container [class*="option"]:hover, +html.cleanplaats-dark-mode .hz-Options-container [class*="option"]:hover, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu li:hover, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="pill"]:hover { + background: rgba(140, 200, 255, 0.08) !important; +} + +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill { + border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--horizontal { + color: var(--cleanplaats-dark-text-muted) !important; + background: rgba(255, 255, 255, 0.03) !important; +} + +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api span, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api div, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api strong { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Icon, +html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="Icon"] { + color: var(--cleanplaats-dark-text-muted) !important; + opacity: 1 !important; +} + +html.cleanplaats-dark-mode input::placeholder, +html.cleanplaats-dark-mode textarea::placeholder { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-Dropdown { + background: transparent !important; + border-color: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Dropdown-input { + background: rgba(31, 42, 54, 0.42) !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Dropdown-input:focus, +html.cleanplaats-dark-mode .hz-Dropdown-input:focus-visible { + border-color: rgba(140, 200, 255, 0.42) !important; + box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; + outline: 0 !important; +} + +html.cleanplaats-dark-mode .hz-Link:hover, +html.cleanplaats-dark-mode .hz-Link:focus-visible, +html.cleanplaats-dark-mode button.hz-Link:hover, +html.cleanplaats-dark-mode button.hz-Link:focus-visible { + background: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Button--primary, +html.cleanplaats-dark-mode .hz-Button--cta, +html.cleanplaats-dark-mode .hz-TabNextButton--active:hover { + background: var(--cleanplaats-dark-accent) !important; + border-color: var(--cleanplaats-dark-accent) !important; + color: #f7fbff !important; +} + +html.cleanplaats-dark-mode .hz-Listing a:hover, +html.cleanplaats-dark-mode .hz-StructuredListing a:hover, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new:hover, +html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink:hover, +html.cleanplaats-dark-mode .hz-StructuredListing .hz-Link--block:hover { + background: transparent !important; +} + +html.cleanplaats-dark-mode .cleanplaats-seller-topright-mobile { + background: rgba(31, 42, 54, 0.88) !important; + border: 1px solid rgba(120, 143, 166, 0.18) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .cleanplaats-seller-name-mobile, +html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile, +html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile svg { + color: var(--cleanplaats-dark-text-muted) !important; + stroke: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover { + background: rgba(140, 200, 255, 0.08) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover svg, +html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:active svg { + stroke: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-row { + border-top-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn { + background: var(--cleanplaats-dark-bg-soft) !important; + color: var(--cleanplaats-dark-text) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn:hover { + background: #c14444 !important; + color: #fff !important; + border-color: #c14444 !important; +} + +html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn:disabled, +html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn[aria-disabled="true"] { + background: rgba(166, 189, 214, 0.08) !important; + color: var(--cleanplaats-dark-text-muted) !important; + border-color: rgba(166, 189, 214, 0.14) !important; +} + +@media (hover: none), (pointer: coarse) { + html.cleanplaats-dark-mode .hz-Listing a:hover, + html.cleanplaats-dark-mode .hz-StructuredListing a:hover, + html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new:hover, + html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink:hover, + html.cleanplaats-dark-mode .hz-StructuredListing .hz-Link--block:hover, + html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover { + background: transparent !important; + border-color: inherit !important; + box-shadow: none !important; + } + + html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover svg { + stroke: inherit !important; + } +} + +@media (max-width: 700px) { + html.cleanplaats-dark-mode .hz-Listing a:hover, + html.cleanplaats-dark-mode .hz-StructuredListing a:hover, + html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new:hover, + html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink:hover, + html.cleanplaats-dark-mode .hz-StructuredListing .hz-Link--block:hover, + html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover { + background: transparent !important; + border-color: inherit !important; + box-shadow: none !important; + } + + html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover svg { + stroke: inherit !important; + } +} + +html.cleanplaats-dark-mode .hz-Filters, +html.cleanplaats-dark-mode .hz-Filters *, +html.cleanplaats-dark-mode .hz-Filter, +html.cleanplaats-dark-mode .hz-Filter * { + border-color: var(--cleanplaats-dark-border-subtle); +} + +html.cleanplaats-dark-mode .hz-Filters, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter, +html.cleanplaats-dark-mode .hz-Filters .hz-Accordion, +html.cleanplaats-dark-mode .hz-Filters .hz-Accordion-accordionItem, +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionBody, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter-fields, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter-radioSection { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-Filter-headingSection, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter-headingSection *, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter-attribute, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter-attribute *, +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-content, +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-content *, +html.cleanplaats-dark-mode .hz-Filters .category-header { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionHeader, +html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-header, +html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-headerButton { + background: rgba(31, 42, 54, 0.42) !important; + color: var(--cleanplaats-dark-text) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; + border-radius: 10px !important; + padding: 0 14px !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionHeader:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-header:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-headerButton:hover { + background: rgba(38, 51, 66, 0.62) !important; + border-color: rgba(140, 200, 255, 0.18) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-expandToggleIcon, +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionHeader i, +html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-header i { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-content { + padding-right: 12px !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-TextField-formControl, +html.cleanplaats-dark-mode .hz-Filters .hz-TextField-footer { + background: rgba(31, 42, 54, 0.42) !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-TextField, +html.cleanplaats-dark-mode .hz-Filters .hz-TextField--prefixed { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-TextField-input, +html.cleanplaats-dark-mode .hz-Filters .hz-TextField-prefix { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-TextField-input, +html.cleanplaats-dark-mode .hz-Filters .hz-TextField-input::placeholder, +html.cleanplaats-dark-mode .hz-Filters .hz-TextField-prefix, +html.cleanplaats-dark-mode .hz-Filters .input-label { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput:focus-within, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one:focus-visible, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two:focus-visible { + background: rgba(140, 200, 255, 0.08) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput *, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one *, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two * { + color: inherit !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-LabelText, +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Container, +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Body, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one, +html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Counter, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter-attribute-text, +html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more, +html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more i { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more { + background: rgba(31, 42, 54, 0.22) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; + border-radius: 10px !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:focus-visible { + background: rgba(38, 51, 66, 0.52) !important; + color: var(--cleanplaats-dark-text) !important; + border-color: rgba(140, 200, 255, 0.18) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:hover i, +html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:focus-visible i { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input { + appearance: none !important; + -webkit-appearance: none !important; + background: transparent !important; + border: 1px solid rgba(226, 235, 244, 0.72) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input:focus { + border-color: rgba(140, 200, 255, 0.64) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input:checked { + border-color: var(--cleanplaats-dark-link) !important; + background: + radial-gradient(circle at center, var(--cleanplaats-dark-link) 0 42%, transparent 43%) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput--Checkbox .hz-SelectionInput-Input:checked { + background: var(--cleanplaats-dark-link) !important; + border-color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput--Checkbox .hz-SelectionInput-Input:checked::after { + color: #0f1720 !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-Filter a:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter button:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter label:hover, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter a:hover *, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter button:hover *, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter label:hover * { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Filters .hz-Filter a:hover .hz-SelectionInput-Counter, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter button:hover .hz-SelectionInput-Counter, +html.cleanplaats-dark-mode .hz-Filters .hz-Filter label:hover .hz-SelectionInput-Counter { + color: #d6e3ef !important; +} + +html.cleanplaats-dark-mode .hz-Pills.stickyPills, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .pillsContainer, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .chipsSlider, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .innerWrapper, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .pillWrapper, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Link, +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pills { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X, +html.cleanplaats-dark-mode .HighlightGuide_targetNormal__a7Lbf.CategorySuggestionTooltip_stickyBg__pQ41X { + background: linear-gradient(180deg, rgba(24, 33, 44, 0.94) 0%, rgba(20, 28, 37, 0.98) 100%) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Text, +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .CategorySuggestionTooltip_textRegular__25s5a { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip, +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill { + background: rgba(31, 42, 54, 0.42) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill i, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip i { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill:hover, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill:focus-visible, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip:hover, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip:focus-visible, +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill:hover, +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill:focus-visible { + background: rgba(38, 51, 66, 0.58) !important; + border-color: rgba(140, 200, 255, 0.18) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill.is-active, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip.is-active, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill[aria-pressed="true"], +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip[aria-pressed="true"], +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill.is-active, +html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill[aria-pressed="true"] { + background: rgba(140, 200, 255, 0.12) !important; + border-color: rgba(140, 200, 255, 0.24) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill.is-active i, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip.is-active i, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill[aria-pressed="true"] i, +html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip[aria-pressed="true"] i { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .hz-SuggestedSearches, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Accordion, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Accordion-accordionItem { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionHeader, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionHeader { + background: rgba(31, 42, 54, 0.42) !important; + color: var(--cleanplaats-dark-text) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionHeader:hover, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionHeader:focus-visible, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionHeader:hover, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionHeader:focus-visible { + background: rgba(38, 51, 66, 0.58) !important; + border-color: rgba(140, 200, 255, 0.18) !important; +} + +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionHeader-content, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionHeader-content *, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionHeader-expandToggleIcon { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionBody, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionBody { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Link.hz-Link--standalone { + background: transparent !important; + color: var(--cleanplaats-dark-link) !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Link.hz-Link--standalone:hover, +html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Link.hz-Link--standalone:focus-visible { + background: transparent !important; + color: #9fd1ff !important; + text-decoration-color: rgba(159, 209, 255, 0.7) !important; +} + +html.cleanplaats-dark-mode img { + opacity: 0.96; +} + +html.cleanplaats-dark-mode .hz-Header-logo img, +html.cleanplaats-dark-mode .hz-Header-logo .hz-Header-logo-desktop, +html.cleanplaats-dark-mode .hz-Header-logo .hz-Header-logo-mobile { + opacity: 1 !important; + filter: none !important; +} + +html.cleanplaats-dark-mode .hz-Header-logo { + background: transparent !important; + border: 0 !important; + border-radius: 0 !important; + padding: 0 !important; + box-shadow: none !important; +} + +.cleanplaats-panel.cleanplaats-dark-mode { + background: var(--cleanplaats-dark-bg-elevated); + color: var(--cleanplaats-dark-text); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.45); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-header, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-content, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-grid, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stats, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-terms-modal-content { + background: var(--cleanplaats-dark-bg-elevated); + color: var(--cleanplaats-dark-text); + border-color: var(--cleanplaats-dark-border); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-header h3, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-option-label, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-section-title, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stat-label, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-title { + color: var(--cleanplaats-dark-text); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-text, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-toggle, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stat-label { + color: var(--cleanplaats-dark-text-muted); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stats .cleanplaats-section-title { + color: rgba(226, 232, 240, 0.82); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stats .cleanplaats-stat-label { + color: rgba(226, 232, 240, 0.74); + font-weight: 500; +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle { + color: var(--cleanplaats-dark-text); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-track { + background: linear-gradient(135deg, #121922 0%, #223041 100%); + box-shadow: inset 0 0 0 1px rgba(166, 189, 214, 0.12); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-track { + background: linear-gradient(135deg, #466f97 0%, #e1bf63 100%); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-icon-moon { + color: rgba(225, 233, 242, 0.9); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-icon-sun { + color: rgba(255, 215, 109, 0.96); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-thumb { + background: linear-gradient(180deg, #d6e3ef 0%, #b2c4d6 100%); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-thumb { + background: linear-gradient(180deg, #fff0ba 0%, #ffcd54 100%); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:hover, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:focus { + color: var(--cleanplaats-dark-link); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:hover .cleanplaats-contact-title, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:focus .cleanplaats-contact-title { + color: var(--cleanplaats-dark-link); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:hover .cleanplaats-contact-icon, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:focus .cleanplaats-contact-icon { + color: var(--cleanplaats-dark-link); + border-color: rgba(140, 200, 255, 0.22); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-icon, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-tooltip-icon { + background: var(--cleanplaats-dark-bg-soft); + color: var(--cleanplaats-dark-text); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-term-input, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-add-term-btn, +.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-blacklist-close, +.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-terms-close { + background: var(--cleanplaats-dark-bg-soft); + color: var(--cleanplaats-dark-text); + border-color: var(--cleanplaats-dark-border); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown { + color-scheme: dark; + background: var(--cleanplaats-dark-bg-soft); + color: var(--cleanplaats-dark-text); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown option, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown optgroup { + background: var(--cleanplaats-dark-bg-elevated); + color: var(--cleanplaats-dark-text); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button { + box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button:hover, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button:hover, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown:hover, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-add-term-btn:hover, +.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-blacklist-close:hover, +.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-terms-close:hover { + background: #253240; +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:hover, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:focus-visible { + background: #2b3948; + border-color: rgba(166, 189, 214, 0.2); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button:hover, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button:focus { + box-shadow: 0 12px 26px rgba(0, 0, 0, 0.34); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-badge { + background: rgba(31, 127, 209, 0.22); + color: #b9e0ff; +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-header-logo { + background: #f8fafc; + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08); +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-switch-slider { + background-color: #4c5f72; +} + +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-checkbox input:checked + .cleanplaats-switch-slider, +.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-switch input:checked + .cleanplaats-switch-slider { + background-color: var(--cleanplaats-dark-accent); +} + +html.cleanplaats-dark-mode .cleanplaats-onboarding-content, +html.cleanplaats-dark-mode .cleanplaats-info-card, +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content, +html.cleanplaats-dark-mode .cleanplaats-terms-modal-content { + background: var(--cleanplaats-dark-bg-elevated) !important; + color: var(--cleanplaats-dark-text) !important; + border-color: var(--cleanplaats-dark-border) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-info-overlay { + background: rgba(15, 23, 42, 0.55) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal, +html.cleanplaats-dark-mode .cleanplaats-terms-modal { + background: var(--cleanplaats-dark-bg-elevated) !important; + box-shadow: 0 16px 32px rgba(0, 0, 0, 0.45) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content h4, +html.cleanplaats-dark-mode .cleanplaats-terms-modal-content h4, +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content em, +html.cleanplaats-dark-mode .cleanplaats-terms-modal-content em, +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content li span, +html.cleanplaats-dark-mode .cleanplaats-terms-modal-content li span { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content li, +html.cleanplaats-dark-mode .cleanplaats-terms-modal-content li { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; +} + +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content li:hover, +html.cleanplaats-dark-mode .cleanplaats-terms-modal-content li:hover { + background: #253240 !important; +} + +html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content ul::-webkit-scrollbar-thumb, +html.cleanplaats-dark-mode .cleanplaats-terms-modal-content ul::-webkit-scrollbar-thumb { + background-color: #55677a !important; +} + +html.cleanplaats-dark-mode .Listing-root, +html.cleanplaats-dark-mode .Gallery-root, +html.cleanplaats-dark-mode .Gallery-container, +html.cleanplaats-dark-mode .SellerInfoExpanded-root, +html.cleanplaats-dark-mode .SellerContactOptions-root, +html.cleanplaats-dark-mode .SellerLocationSection-root, +html.cleanplaats-dark-mode .hz-Breadcrumbs, +html.cleanplaats-dark-mode .hz-FooterCategoryLinks, +html.cleanplaats-dark-mode .hz-FooterCategoryLinks-block { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Breadcrumbs, +html.cleanplaats-dark-mode .SellerInfoExpanded-root, +html.cleanplaats-dark-mode .SellerContactOptions-root, +html.cleanplaats-dark-mode .SellerLocationSection-root, +html.cleanplaats-dark-mode .hz-FooterCategoryLinks { + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .hz-BreadcrumbLabel, +html.cleanplaats-dark-mode .hz-CurrentPage, +html.cleanplaats-dark-mode .SellerHeader-info p, +html.cleanplaats-dark-mode .SellerTrustIndicator-body, +html.cleanplaats-dark-mode .SellerLocationSection-locationText, +html.cleanplaats-dark-mode .hz-FooterCategoryLinks-title { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .SellerHeader-nameContainer, +html.cleanplaats-dark-mode .SellerTrustIndicator-title, +html.cleanplaats-dark-mode .SellerLocationSection-locationName, +html.cleanplaats-dark-mode .ListingHeader-title, +html.cleanplaats-dark-mode .ListingHeader-price, +html.cleanplaats-dark-mode .hz-FooterCategoryLinks-title, +html.cleanplaats-dark-mode .hz-Title { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .Gallery-container, +html.cleanplaats-dark-mode .carousel-root.Carousel-component, +html.cleanplaats-dark-mode .carousel .slide, +html.cleanplaats-dark-mode .Carousel-container, +html.cleanplaats-dark-mode .Carousel-image, +html.cleanplaats-dark-mode .HeroImage, +html.cleanplaats-dark-mode .HeroImage-root, +html.cleanplaats-dark-mode .HeroImage-container, +html.cleanplaats-dark-mode .slider-wrapper, +html.cleanplaats-dark-mode .slider, +html.cleanplaats-dark-mode .thumbs-wrapper, +html.cleanplaats-dark-mode .thumbs, +html.cleanplaats-dark-mode .thumb { + background: var(--cleanplaats-dark-bg-elevated) !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .HeroImage-image, +html.cleanplaats-dark-mode .HeroImage-image.hz-Image--fit, +html.cleanplaats-dark-mode .HeroImage-image.hz-Image--landscape { + background: transparent !important; +} + +html.cleanplaats-dark-mode .carousel-root.Carousel-component { + border-radius: 14px !important; + overflow: hidden !important; +} + +html.cleanplaats-dark-mode .carousel .control-arrow, +html.cleanplaats-dark-mode .Carousel-navigationButtons, +html.cleanplaats-dark-mode .Gallery-zoom, +html.cleanplaats-dark-mode .FavouriteButton-root { + background: rgba(24, 33, 44, 0.88) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24) !important; +} + +html.cleanplaats-dark-mode .carousel .control-arrow:hover, +html.cleanplaats-dark-mode .Carousel-navigationButtons:hover, +html.cleanplaats-dark-mode .Gallery-zoom:hover, +html.cleanplaats-dark-mode .FavouriteButton-root:hover { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: rgba(140, 200, 255, 0.24) !important; +} + +html.cleanplaats-dark-mode .Gallery-carouselIndexContainer, +html.cleanplaats-dark-mode .hz-Badge, +html.cleanplaats-dark-mode .hz-Badge--neutral, +html.cleanplaats-dark-mode .hz-Badge--neutral-inverse { + background: rgba(24, 33, 44, 0.92) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode .hz-Badge--success { + background: rgba(43, 125, 92, 0.24) !important; + border: 1px solid rgba(94, 193, 146, 0.28) !important; + color: #cbf2de !important; +} + +html.cleanplaats-dark-mode .SellerInfoExpanded-root, +html.cleanplaats-dark-mode .SellerContactOptions-root, +html.cleanplaats-dark-mode .SellerLocationSection-root { + background: linear-gradient(180deg, rgba(24, 33, 44, 0.78) 0%, rgba(20, 28, 37, 0.92) 100%) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + border-radius: 14px !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .SellerInfoExpanded-root { + background: transparent !important; + border-top: 1px solid rgba(120, 143, 166, 0.12) !important; + border-right: 0 !important; + border-bottom: 0 !important; + border-left: 0 !important; + border-radius: 0 !important; +} + +html.cleanplaats-dark-mode .SellerLocationSection-root { + background: transparent !important; + border-top: 1px solid rgba(120, 143, 166, 0.12) !important; + border-right: 0 !important; + border-bottom: 0 !important; + border-left: 0 !important; + border-radius: 0 !important; +} + +html.cleanplaats-dark-mode .SellerInfoExpanded-contentWrapper, +html.cleanplaats-dark-mode .SellerTrustIndicators-root, +html.cleanplaats-dark-mode .SellerTrustIndicator-root, +html.cleanplaats-dark-mode .SellerHeader-root, +html.cleanplaats-dark-mode .SellerHeader-infoContainer, +html.cleanplaats-dark-mode .SellerLocationSection-locationInfo, +html.cleanplaats-dark-mode .SellerLocationSection-locationMap, +html.cleanplaats-dark-mode .SellerOtherItemsContainer, +html.cleanplaats-dark-mode .SellerOtherItems-item { + background: transparent !important; + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode .SellerTrustIndicator-root + .SellerTrustIndicator-root, +html.cleanplaats-dark-mode .SellerOtherItems-item + .SellerOtherItems-item { + border-top: 1px solid rgba(120, 143, 166, 0.08) !important; +} + +html.cleanplaats-dark-mode .SellerTrustIndicator-iconWrapper, +html.cleanplaats-dark-mode .SellerProfilePicture-avatarContainer { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .SellerTrustIndicator-iconWrapper .hz-Icon, +html.cleanplaats-dark-mode .SellerTrustIndicator-iconWrapper [class*="SvgIcon"], +html.cleanplaats-dark-mode .SellerProfilePicture-avatarContainer .hz-Image { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode .SellerHeader-root, +html.cleanplaats-dark-mode .SellerTrustIndicator-root { + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .SellerHeader-root a, +html.cleanplaats-dark-mode .SellerTrustIndicator-root a { + background: transparent !important; + border: 0 !important; +} + +html.cleanplaats-dark-mode .SellerInfoExpanded-root .hz-Button--secondary, +html.cleanplaats-dark-mode .OneStepBidding-bidButton, +html.cleanplaats-dark-mode .SellerContactOptions-button, +html.cleanplaats-dark-mode .SellerOtherItems-header .hz-Button, +html.cleanplaats-dark-mode .SellerLocationSection-root .hz-Button { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + color: var(--cleanplaats-dark-text) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .SellerInfoExpanded-root .hz-Button--secondary:hover, +html.cleanplaats-dark-mode .OneStepBidding-bidButton:hover, +html.cleanplaats-dark-mode .SellerContactOptions-button:hover, +html.cleanplaats-dark-mode .SellerOtherItems-header .hz-Button:hover, +html.cleanplaats-dark-mode .SellerLocationSection-root .hz-Button:hover { + background: var(--cleanplaats-dark-bg-soft-hover) !important; + border-color: rgba(140, 200, 255, 0.24) !important; +} + +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-Button--primary { + background: var(--cleanplaats-dark-accent) !important; + border-color: var(--cleanplaats-dark-accent) !important; + color: #f7fbff !important; +} + +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField, +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField--prefixed, +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-footer { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-formControl { + background: var(--cleanplaats-dark-bg-soft) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-input, +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-prefix { + background: transparent !important; + color: var(--cleanplaats-dark-text) !important; + border: 0 !important; +} + +html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-formControl:focus-within { + border-color: rgba(140, 200, 255, 0.42) !important; + box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.2) !important; +} + +html.cleanplaats-dark-mode .SellerLocationSection-locationMap, +html.cleanplaats-dark-mode .Map-root, +html.cleanplaats-dark-mode .gm-style { + background: var(--cleanplaats-dark-bg-soft) !important; +} + +html.cleanplaats-dark-mode .SellerLocationSection-locationMap { + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + border-radius: 12px !important; + overflow: hidden !important; +} + +html.cleanplaats-dark-mode .hz-FooterCategoryLink, +html.cleanplaats-dark-mode .SellerInfoExpanded-root a, +html.cleanplaats-dark-mode .SellerLocationSection-root a, +html.cleanplaats-dark-mode .SellerOtherItemsContainer a, +html.cleanplaats-dark-mode .hz-Breadcrumbs a { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode .pageRoot, +html.cleanplaats-dark-mode #messagingClientRoot, +html.cleanplaats-dark-mode [class*="Messaging-module-root"] { + background: var(--cleanplaats-dark-bg) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationListView-module-leftUnitInner"], +html.cleanplaats-dark-mode [class*="ConversationListView-module-rightUnitInner"], +html.cleanplaats-dark-mode [class*="ConversationView-module-conversationMessages"], +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"], +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationsList"] { + background: var(--cleanplaats-dark-bg) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-root"], +html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-rootInner"], +html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-iconUnit"] { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-text"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-iconUnit"] .hz-Icon, +html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-iconUnit"] [class*="Icon"] { + color: var(--cleanplaats-dark-text-muted) !important; + opacity: 0.85 !important; +} + +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"], +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationsList"], +html.cleanplaats-dark-mode [class*="ConversationView-module-conversationMessages"] { + border-color: var(--cleanplaats-dark-border-subtle) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField, +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-footer { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-formControl { + background: rgba(31, 42, 54, 0.52) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + border-radius: 12px !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-formControl:focus-within { + border-color: rgba(140, 200, 255, 0.42) !important; + box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-input, +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-input::placeholder, +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-prefix, +html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-Icon { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationsList-module-listRoot"] { + background: transparent !important; + border: 0 !important; +} + +html.cleanplaats-dark-mode [class*="ConversationsList-module-listItem"] { + background: transparent !important; + border-top: 0 !important; + border-right: 0 !important; + border-bottom: 1px solid rgba(120, 143, 166, 0.12) !important; + border-left: 0 !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] { + background: transparent !important; + border: 0 !important; + border-radius: 0 !important; + box-shadow: none !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-rootOpen"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-root"]:hover, +html.cleanplaats-dark-mode [class*="ConversationItem-module-root"]:focus-within { + background: transparent !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] a, +html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] a:hover, +html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] a:focus-visible { + background: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-adTitle"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-meta"] strong, +html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], +html.cleanplaats-dark-mode [class*="MessageReadStatus-module-textStatus"] { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-rightUnit"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-body"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-latestMessageWrapper"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] footer { + background: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-body"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-latestMessageWrapper"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-meta"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-meta"] div, +html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"], +html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"] * { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"] *, +html.cleanplaats-dark-mode [class*="MessageElement-module-meta"], +html.cleanplaats-dark-mode [class*="MessageElement-module-meta"] *, +html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"], +html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"] * { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"] strong, +html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"] span, +html.cleanplaats-dark-mode [class*="MessageElement-module-meta"], +html.cleanplaats-dark-mode [class*="MessageElement-module-meta"] span, +html.cleanplaats-dark-mode [class*="MessageReadStatus-module-textStatus"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"], +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailProfilePictureUnit"], +html.cleanplaats-dark-mode [class*="Thumbnail-module-root"] { + background: rgba(31, 42, 54, 0.52) !important; + border-color: rgba(120, 143, 166, 0.16) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailProfilePictureUnit"] *, +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h1, +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h2, +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h3, +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h4, +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h5, +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] span, +html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] strong { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ProfilePicture-module-root"] { + background: rgba(49, 65, 82, 0.95) !important; + border: 1px solid rgba(120, 143, 166, 0.18) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-badgeTrashcanWrapper"] .hz-Button, +html.cleanplaats-dark-mode [class*="ConversationItem-module-trashcan"] { + background: rgba(31, 42, 54, 0.6) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + color: var(--cleanplaats-dark-text-muted) !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-badgeTrashcanWrapper"] .hz-Button:hover, +html.cleanplaats-dark-mode [class*="ConversationItem-module-trashcan"]:hover { + background: rgba(38, 51, 66, 0.72) !important; + border-color: rgba(140, 200, 255, 0.24) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-checkbox"] .hz-SelectionInput-Input { + border: 1px solid rgba(226, 235, 244, 0.72) !important; + background: transparent !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="ConversationItem-module-checkbox"] .hz-SelectionInput-Input:checked { + background: var(--cleanplaats-dark-link) !important; + border-color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] { + background: var(--cleanplaats-dark-bg) !important; + border-bottom: 1px solid rgba(120, 143, 166, 0.12) !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] a, +html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] span, +html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] div, +html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] i { + color: inherit !important; +} + +html.cleanplaats-dark-mode [class*="ConversationTopic-module-backLinkUnit"], +html.cleanplaats-dark-mode [class*="ConversationTopic-module-userOptionsLink"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="ConversationTopic-module-backLinkUnit"]:hover, +html.cleanplaats-dark-mode [class*="ConversationTopic-module-userOptionsLink"]:hover { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-root"] { + background: rgba(31, 42, 54, 0.44) !important; + border: 1px solid var(--cleanplaats-dark-border-subtle) !important; + border-radius: 14px !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-root"]:hover, +html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-root"]:focus-visible { + background: rgba(38, 51, 66, 0.58) !important; + border-color: rgba(140, 200, 255, 0.22) !important; +} + +html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-title"], +html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-leftTextUnit"] { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-secondaryInfo"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="ChatBanner-module-root"] { + background: rgba(31, 42, 54, 0.38) !important; + border: 1px solid rgba(120, 143, 166, 0.14) !important; + border-radius: 14px !important; +} + +html.cleanplaats-dark-mode [class*="ChatBanner-module-message"], +html.cleanplaats-dark-mode [class*="ChatBanner-module-legalText"] { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="ChatBanner-module-footer"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="ChatBanner-module-icon"] .hz-Icon, +html.cleanplaats-dark-mode [class*="ChatBanner-module-icon"] [class*="SvgIcon"] { + color: var(--cleanplaats-dark-link) !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-group"] { + background: transparent !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] { + background: transparent !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="MessageElement-module-container"], +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="MessageElement-module-wrapperCard"] { + background: transparent !important; + background-color: transparent !important; + border: 0 !important; + border-radius: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode ol[class*="Messages-module-listRoot"] li[class*="Messages-module-listItem"] div[class*="MessageElement-module-wrapperCard"], +html.cleanplaats-dark-mode ol[class*="Messages-module-listRoot"] li[class*="Messages-module-listItem"] div[class*="MessageElement-module-container"] div[class*="MessageElement-module-wrapperCard"] { + background: none !important; + background-color: transparent !important; + background-image: none !important; + border: 0 !important; + border-radius: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] > *, +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] > * { + background: transparent !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] header, +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] footer, +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="meta"], +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="timestamp"], +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="status"] { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] [class*="message"], +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] [class*="bubble"], +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] [class*="content"], +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] [class*="message"], +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] [class*="bubble"], +html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] [class*="content"] { + background: transparent !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] time, +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="timestamp"], +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="status"], +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="sender"], +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="meta"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] p, +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] span, +html.cleanplaats-dark-mode [class*="Messages-module-listItem"] div { + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="MessageElement-module-root"] { + background: transparent !important; + box-shadow: none !important; + border: 0 !important; + border-radius: 0 !important; + overflow: visible !important; + display: inline-block !important; + width: auto !important; + max-width: 100% !important; +} + +html.cleanplaats-dark-mode [class*="MessageElement-module-body"] { + background: rgba(31, 42, 54, 0.42) !important; + border: 1px solid rgba(120, 143, 166, 0.12) !important; + color: var(--cleanplaats-dark-text) !important; + border-radius: 18px !important; + box-shadow: none !important; + display: inline-block !important; + width: auto !important; + max-width: 100% !important; + padding: 10px 14px !important; + box-sizing: border-box !important; + white-space: normal !important; +} + +html.cleanplaats-dark-mode [class*="MessageElement-module-fromOtherParticipant"] [class*="MessageElement-module-body"] { + background: rgba(31, 42, 54, 0.42) !important; + border-color: rgba(120, 143, 166, 0.12) !important; +} + +html.cleanplaats-dark-mode [class*="MessageElement-module-fromMe"] [class*="MessageElement-module-body"] { + background: rgba(140, 200, 255, 0.08) !important; + border-color: rgba(140, 200, 255, 0.16) !important; +} + +html.cleanplaats-dark-mode [class*="MessageElement-module-messageIcon"] { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="MessageElement-module-profileIcon"] { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] { + background: var(--cleanplaats-dark-bg) !important; + border-top: 1px solid rgba(120, 143, 166, 0.12) !important; +} + +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField, +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-footer { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-formControl, +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] textarea, +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] input[type="text"] { + background: rgba(31, 42, 54, 0.58) !important; + border: 1px solid var(--cleanplaats-dark-border) !important; + border-radius: 14px !important; + box-shadow: none !important; + color: var(--cleanplaats-dark-text) !important; +} + +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-input, +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] textarea::placeholder, +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] input::placeholder, +html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-input::placeholder { + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="MessageComposer-module-send"] { + box-shadow: none !important; +} + +html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] [aria-haspopup], +html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] button { + background: transparent !important; + border: 0 !important; + box-shadow: none !important; + color: var(--cleanplaats-dark-text-muted) !important; +} + +html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] [aria-haspopup]:hover, +html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] button:hover { + color: var(--cleanplaats-dark-text) !important; +} diff --git a/src/types/assets.d.ts b/src/types/assets.d.ts index 35306c6..1c5760d 100644 --- a/src/types/assets.d.ts +++ b/src/types/assets.d.ts @@ -1 +1,8 @@ declare module '*.css'; + +/** Allow bundled asset paths (icons, etc.) with `browser.runtime.getURL`. */ +declare module 'wxt/browser' { + export interface WxtRuntime { + getURL(path: string): string; + } +} From 3aa72c4cf4e6f480704b59164b6c13b6b9b0294b Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 16 Apr 2026 15:34:18 +0000 Subject: [PATCH 3/7] fix(content): persist welcome toast flag before showing toast Co-authored-by: Dion Grendelman --- src/content/services/notifications.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/services/notifications.ts b/src/content/services/notifications.ts index d50f309..120e00e 100644 --- a/src/content/services/notifications.ts +++ b/src/content/services/notifications.ts @@ -482,6 +482,9 @@ const showWelcomeToast = (): void => { return; } + patchPanelState({ hasShownWelcomeToast: true }); + void saveSettings(repositoryRef); + const toast = document.createElement('div'); toast.className = 'cleanplaats-toast'; toast.id = 'cleanplaats-toast'; @@ -505,9 +508,6 @@ const showWelcomeToast = (): void => { toast.classList.remove('visible'); setTimeout(() => toast.remove(), 300); }, 3000); - - patchPanelState({ hasShownWelcomeToast: true }); - void saveSettings(repositoryRef); }; let repositoryRef!: SettingsRepository; From 2012a46a92175240f5edfc375ccfd5f4abee3e10 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 16 Apr 2026 15:40:30 +0000 Subject: [PATCH 4/7] chore: target mv3 firefox builds and refresh docs Co-authored-by: Dion Grendelman --- README.md | 101 +++++++++++++++++++++++++------------------------- package.json | 6 +-- wxt.config.ts | 2 +- 3 files changed, 54 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 0710b5f..36e62dd 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Cleanplaats -Cleanplaats is een browserextensie voor [Marktplaats](https://www.marktplaats.nl/), [2dehands](https://www.2dehands.be/) en [2ememain](https://www.2ememain.be/) die rommel uit zoekresultaten en overzichtspagina's haalt. De extensie helpt gebruikers om sneller door relevante advertenties te bladeren door promotionele, storende en ongewenste listings te verbergen. +Cleanplaats is een browserextensie voor [Marktplaats](https://www.marktplaats.nl/), [2dehands](https://www.2dehands.be/) en [2ememain](https://www.2ememain.be/) die rommel uit zoekresultaten en overzichtspagina's haalt. -Gebouwd voor Chromium-browsers en Firefox, met een modulaire codebase die eenvoudiger te onderhouden en uit te breiden is. +Deze versie is herschreven naar **WXT + React + TypeScript**, met dezelfde kernfunctionaliteit en browserondersteuning als de vorige implementatie. ## Wat doet Cleanplaats? @@ -23,67 +23,74 @@ Belangrijkste functies: - `2dehands.be` - `2ememain.be` -## Screenshot -in progress +## Browserondersteuning -## Installatie voor lokaal gebruik +De projectconfiguratie ondersteunt: -### Chrome of andere Chromium-browsers +- Chromium (Manifest V3) +- Firefox (Manifest V3 buildpad beschikbaar via `--mv3`) -1. Clone deze repository. -2. Open `chrome://extensions`. -3. Zet `Developer mode` aan. -4. Kies `Load unpacked`. -5. Selecteer de rootmap van deze repository. +Gecko-instellingen (id/min-version) zijn behouden in de manifest-configuratie. -### Firefox +## Ontwikkeling -1. Clone deze repository. -2. Open `about:debugging#/runtime/this-firefox`. -3. Kies `Load Temporary Add-on`. -4. Selecteer het bestand [manifest.json](/home/aron/projects/Cleanplaats/manifest.json). +### Installeren -## Ontwikkeling +```bash +npm install +``` + +### Development builds + +```bash +# Chromium +npm run dev + +# Firefox +npm run dev:firefox +``` + +### Productiebuilds -Deze repository gebruikt geen buildstap. De extensie draait direct op de bestanden in de repo. +```bash +# Chromium +npm run build -Tijdens development werk je meestal zo: +# Firefox (default target) +npm run build:firefox -1. Pas bestanden aan in de repo. -2. Herlaad de extensie in de browser. -3. Ververs een ondersteunde pagina op Marktplaats, 2dehands of 2ememain. +# Firefox MV3 expliciet +npm run build:firefox:mv3 +``` -Handige controle: +### Typecheck en tests ```bash -node --check content/shared.js -node --check content/notifications.js +npm run compile +npm run test ``` ## Projectstructuur -De codebase is opgesplitst per verantwoordelijkheid: - ```text -background/ Service worker modules -content/ Content-script modules +src/ + entrypoints/ WXT entrypoints (background/content/theme-init) + content/ Content runtime, services, React panel + background/ Background services en listeners + shared/ Types, constants, storage/message utilities + styles/ Content/panel + dark mode CSS icons/ Extensie-assets -background.js Bootstrap voor background modules -content.js Bootstrap voor content modules -content.css Paneel- en UI-styling -dark-mode.css Dark mode overrides voor ondersteunde sites -theme-init.js Vroege theme-initialisatie om flash te voorkomen -manifest.json Browser extension manifest +wxt.config.ts WXT config + manifest declaratie ``` ## Belangrijke modules -- `content/cleanup.js`: detecteert en verbergt listings -- `content/blacklist.js`: beheer van blacklist-termen en verborgen verkopers -- `content/theme.js`: thema-logica en dark mode synchronisatie -- `content/notifications.js`: onboarding, update-popup en toastmeldingen -- `content/ui.js`: opbouw van het Cleanplaats-paneel -- `background/`: achtergrondlogica voor lifecycle, messaging en URL-regels +- `src/content/services/cleanup.ts`: detecteert en verbergt listings/ads +- `src/content/services/blacklist-inject.ts`: beheer van verborgen verkopers + knoppeninjectie +- `src/content/services/theme.ts`: thema-logica en dark mode synchronisatie +- `src/content/services/notifications.ts`: onboarding, update-popup en toastmeldingen +- `src/content/panel/CleanplaatsPanel.tsx`: React-paneel met hooks/state +- `src/background/`: URL-regels, keepalive en runtime messaging ## Rechten @@ -93,15 +100,7 @@ Cleanplaats gebruikt browserrechten die nodig zijn voor: - injecteren van scripts en styles op ondersteunde domeinen - tab- en navigatie-events voor extensielogica -Zie [manifest.json](/home/aron/projects/Cleanplaats/manifest.json) voor de actuele lijst van permissies en host-permissies. - -## Roadmap - -Mogelijke vervolgstappen: - -- extra regressietests voor selector-wijzigingen op de ondersteunde sites -- visuele regression checks voor dark mode -- verdere opschoning van content-script styling en componentstructuur +De actuele permissies en host-permissies staan in de gegenereerde manifest output van WXT op basis van `wxt.config.ts`. ## Bijdragen @@ -114,5 +113,5 @@ Issues en verbeterideeën zijn welkom. Gebruik bij voorkeur GitHub Issues voor: ## Versie -Huidige versie in deze repository: `2.0.4` +Huidige versie in deze repository: `2.0.7` diff --git a/package.json b/package.json index 6fb3f86..26e37ed 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,11 @@ "type": "module", "scripts": { "dev": "wxt", - "dev:firefox": "wxt -b firefox", + "dev:firefox": "wxt -b firefox --mv3", "build": "wxt build", - "build:firefox": "wxt build -b firefox", + "build:firefox": "wxt build -b firefox --mv3", "zip": "wxt zip", - "zip:firefox": "wxt zip -b firefox", + "zip:firefox": "wxt zip -b firefox --mv3", "compile": "tsc --noEmit", "test": "vitest run", "postinstall": "wxt prepare" diff --git a/wxt.config.ts b/wxt.config.ts index e38d7f9..aadb0b7 100644 --- a/wxt.config.ts +++ b/wxt.config.ts @@ -9,8 +9,8 @@ const HOST_MATCH_PATTERNS = [ export default defineConfig({ modules: ['@wxt-dev/module-react'], srcDir: 'src', + manifestVersion: 3, manifest: { - manifest_version: 3, name: 'Cleanplaats - Marktplaats zonder spam', version: '2.0.7', description: 'Zelf in de hand wat je wel én niet wil zien op Marktplaats door te filteren', From 2d6ee8c0781e9b3d3088b9dfcd6eb0a50725cc95 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 16 Apr 2026 15:55:02 +0000 Subject: [PATCH 5/7] refactor: remove legacy extension runtime and add parity tests Co-authored-by: Dion Grendelman --- README.md | 14 +- background.js | 17 - background/keepalive.js | 69 - background/lifecycle.js | 142 - background/messages.js | 73 - background/shared.js | 47 - background/theme.js | 10 - background/url-rules.js | 148 - content.css | 1891 ---------- content.js | 9 - content/blacklist.js | 469 --- content/cleanup.js | 524 --- content/init.js | 157 - content/notifications.js | 513 --- content/observers.js | 189 - content/shared.js | 389 -- content/storage.js | 102 - content/theme.js | 199 - content/ui.js | 830 ----- dark-mode.css | 3238 ----------------- manifest.json | 88 - public/.gitkeep | 1 - ...hatGPT Image Apr 13, 2025, 05_49_24 PM.png | Bin 0 -> 1224454 bytes public/icons/darkmode_icon_128.png | Bin 0 -> 9181 bytes public/icons/icon128.png | Bin 0 -> 14913 bytes public/icons/icon16.png | Bin 0 -> 495 bytes public/icons/icon48.png | Bin 0 -> 2264 bytes public/icons/marktplaats-logo-darkmode.svg | 17 + purify.min.js | 3 - .../runtime-background-bootstrap-legacy.js | 17 - .../runtime-background-keepalive-legacy.js | 69 - .../runtime-background-lifecycle-legacy.js | 142 - .../runtime-background-messages-legacy.js | 73 - .../runtime-background-shared-legacy.js | 47 - .../runtime-background-theme-legacy.js | 10 - .../runtime-background-url-rules-legacy.js | 148 - .../runtime/content-blacklist-legacy.js | 469 --- .../runtime/content-bootstrap-legacy.js | 9 - src/content/runtime/content-cleanup-legacy.js | 524 --- src/content/runtime/content-init-legacy.js | 157 - .../runtime/content-notifications-legacy.js | 513 --- .../runtime/content-observers-legacy.js | 189 - src/content/runtime/content-shared-legacy.js | 389 -- src/content/runtime/content-storage-legacy.js | 102 - src/content/runtime/content-theme-legacy.js | 199 - src/content/runtime/content-ui-legacy.js | 830 ----- src/content/runtime/theme-init-legacy.js | 190 - src/entrypoints/main.content.ts | 1 + src/entrypoints/theme-init.content.ts | 1 + src/shared/constants/manifest-legacy.json | 88 - tests/background/hash-url.test.ts | 81 + tests/content/sort-utils.test.ts | 24 + tests/shared/seller-age.test.ts | 22 + tests/shared/storage-serialization.test.ts | 30 + theme-init.js | 190 - vitest.config.ts | 17 + wxt.config.ts | 2 +- 57 files changed, 200 insertions(+), 13472 deletions(-) delete mode 100644 background.js delete mode 100644 background/keepalive.js delete mode 100644 background/lifecycle.js delete mode 100644 background/messages.js delete mode 100644 background/shared.js delete mode 100644 background/theme.js delete mode 100644 background/url-rules.js delete mode 100644 content.css delete mode 100644 content.js delete mode 100644 content/blacklist.js delete mode 100644 content/cleanup.js delete mode 100644 content/init.js delete mode 100644 content/notifications.js delete mode 100644 content/observers.js delete mode 100644 content/shared.js delete mode 100644 content/storage.js delete mode 100644 content/theme.js delete mode 100644 content/ui.js delete mode 100644 dark-mode.css delete mode 100644 manifest.json delete mode 100644 public/.gitkeep create mode 100644 public/icons/ChatGPT Image Apr 13, 2025, 05_49_24 PM.png create mode 100644 public/icons/darkmode_icon_128.png create mode 100644 public/icons/icon128.png create mode 100644 public/icons/icon16.png create mode 100644 public/icons/icon48.png create mode 100644 public/icons/marktplaats-logo-darkmode.svg delete mode 100644 purify.min.js delete mode 100644 src/background/runtime-background-bootstrap-legacy.js delete mode 100644 src/background/runtime-background-keepalive-legacy.js delete mode 100644 src/background/runtime-background-lifecycle-legacy.js delete mode 100644 src/background/runtime-background-messages-legacy.js delete mode 100644 src/background/runtime-background-shared-legacy.js delete mode 100644 src/background/runtime-background-theme-legacy.js delete mode 100644 src/background/runtime-background-url-rules-legacy.js delete mode 100644 src/content/runtime/content-blacklist-legacy.js delete mode 100644 src/content/runtime/content-bootstrap-legacy.js delete mode 100644 src/content/runtime/content-cleanup-legacy.js delete mode 100644 src/content/runtime/content-init-legacy.js delete mode 100644 src/content/runtime/content-notifications-legacy.js delete mode 100644 src/content/runtime/content-observers-legacy.js delete mode 100644 src/content/runtime/content-shared-legacy.js delete mode 100644 src/content/runtime/content-storage-legacy.js delete mode 100644 src/content/runtime/content-theme-legacy.js delete mode 100644 src/content/runtime/content-ui-legacy.js delete mode 100644 src/content/runtime/theme-init-legacy.js delete mode 100644 src/shared/constants/manifest-legacy.json create mode 100644 tests/background/hash-url.test.ts create mode 100644 tests/content/sort-utils.test.ts create mode 100644 tests/shared/seller-age.test.ts create mode 100644 tests/shared/storage-serialization.test.ts delete mode 100644 theme-init.js create mode 100644 vitest.config.ts diff --git a/README.md b/README.md index 36e62dd..05710d5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Cleanplaats is een browserextensie voor [Marktplaats](https://www.marktplaats.nl/), [2dehands](https://www.2dehands.be/) en [2ememain](https://www.2ememain.be/) die rommel uit zoekresultaten en overzichtspagina's haalt. -Deze versie is herschreven naar **WXT + React + TypeScript**, met dezelfde kernfunctionaliteit en browserondersteuning als de vorige implementatie. +Deze codebase is volledig herschreven met **WXT + React + TypeScript**, met behoud van de bestaande functionaliteit en domeinondersteuning. ## Wat doet Cleanplaats? @@ -28,7 +28,7 @@ Belangrijkste functies: De projectconfiguratie ondersteunt: - Chromium (Manifest V3) -- Firefox (Manifest V3 buildpad beschikbaar via `--mv3`) +- Firefox (Manifest V3) Gecko-instellingen (id/min-version) zijn behouden in de manifest-configuratie. @@ -53,14 +53,11 @@ npm run dev:firefox ### Productiebuilds ```bash -# Chromium +# Chromium (MV3) npm run build -# Firefox (default target) +# Firefox (MV3) npm run build:firefox - -# Firefox MV3 expliciet -npm run build:firefox:mv3 ``` ### Typecheck en tests @@ -79,7 +76,8 @@ src/ background/ Background services en listeners shared/ Types, constants, storage/message utilities styles/ Content/panel + dark mode CSS -icons/ Extensie-assets +public/ + icons/ Extensie-assets (copied into build output) wxt.config.ts WXT config + manifest declaratie ``` diff --git a/background.js b/background.js deleted file mode 100644 index a5186d4..0000000 --- a/background.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Cleanplaats background bootstrap. - */ - -importScripts( - 'background/shared.js', - 'background/url-rules.js', - 'background/theme.js', - 'background/messages.js', - 'background/keepalive.js', - 'background/lifecycle.js' -); - -initialize(); -setupKeepAlive(); - -console.log('Cleanplaats background.js: Script execution finished initial top-level setup.', new Date().toISOString()); diff --git a/background/keepalive.js b/background/keepalive.js deleted file mode 100644 index 4adbd4a..0000000 --- a/background/keepalive.js +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Background Firefox keep-alive management. - */ - -function setupKeepAlive() { - if (typeof browser !== 'undefined') { - console.log('Cleanplaats: Setting up smart Firefox keep-alive mechanism'); - - browserAPI.alarms.create('cleanplaats-keepalive', { - delayInMinutes: 2, - periodInMinutes: 2 - }); - - if (!browserAPI.alarms.onAlarm.hasListener(handleKeepAliveAlarm)) { - browserAPI.alarms.onAlarm.addListener(handleKeepAliveAlarm); - } - - if (browserAPI.webNavigation && browserAPI.webNavigation.onBeforeNavigate) { - browserAPI.webNavigation.onBeforeNavigate.addListener((details) => { - if (details.frameId === 0 && - (details.url.includes('marktplaats.nl') || details.url.includes('2dehands.be') || details.url.includes('2ememain.be'))) { - lastMarktplaatsActivity = Date.now(); - console.log('Cleanplaats: Marktplaats activity detected, updating timestamp'); - } - }); - } - } -} - -function handleKeepAliveAlarm(alarm) { - if (alarm.name === 'cleanplaats-keepalive') { - const timeSinceActivity = Date.now() - lastMarktplaatsActivity; - const minutesSinceActivity = timeSinceActivity / (1000 * 60); - - console.log(`Cleanplaats: Keep-alive check - ${minutesSinceActivity.toFixed(1)} minutes since last Marktplaats activity`); - - if (minutesSinceActivity > 30) { - console.log('Cleanplaats: User inactive for 30+ minutes, switching to low-frequency mode'); - browserAPI.alarms.clear('cleanplaats-keepalive'); - browserAPI.alarms.create('cleanplaats-keepalive', { - delayInMinutes: 10, - periodInMinutes: 10 - }); - } else if (minutesSinceActivity > 10) { - console.log('Cleanplaats: User inactive for 10+ minutes, switching to medium-frequency mode'); - browserAPI.alarms.clear('cleanplaats-keepalive'); - browserAPI.alarms.create('cleanplaats-keepalive', { - delayInMinutes: 5, - periodInMinutes: 5 - }); - } else { - console.log('Cleanplaats: User recently active, maintaining normal frequency'); - } - } -} - -function resetKeepAliveToActiveMode() { - if (typeof browser !== 'undefined') { - lastMarktplaatsActivity = Date.now(); - - browserAPI.alarms.clear('cleanplaats-keepalive'); - browserAPI.alarms.create('cleanplaats-keepalive', { - delayInMinutes: 2, - periodInMinutes: 2 - }); - - console.log('Cleanplaats: Reset keep-alive to active mode'); - } -} diff --git a/background/lifecycle.js b/background/lifecycle.js deleted file mode 100644 index abe1bbc..0000000 --- a/background/lifecycle.js +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Background lifecycle and listener registration. - */ - -async function handleStorageChanges(changes, areaName) { - if (areaName !== 'local' || !changes.cleanplaatsSettings) return; - - console.log('Cleanplaats: handleStorageChanges triggered.', changes.cleanplaatsSettings); - try { - const newSettingsData = JSON.parse(changes.cleanplaatsSettings.newValue || '{}'); - const newResultsPerPage = newSettingsData.resultsPerPage?.toString() || '30'; - const newDefaultSortMode = newSettingsData.defaultSortMode || 'standard'; - const newSortPreferenceSource = newSettingsData.sortPreferenceSource || 'cleanplaats'; - const darkModeEnabled = Boolean(newSettingsData.darkMode); - - let settingsActuallyChanged = false; - if (newResultsPerPage !== resultsPerPage) { - console.log(`Cleanplaats: Results per page changed from ${resultsPerPage} to ${newResultsPerPage}`); - resultsPerPage = newResultsPerPage; - settingsActuallyChanged = true; - } - if (newDefaultSortMode !== defaultSortMode) { - console.log(`Cleanplaats: Default sort mode changed from ${defaultSortMode} to ${newDefaultSortMode}`); - defaultSortMode = newDefaultSortMode; - settingsActuallyChanged = true; - } - if (newSortPreferenceSource !== sortPreferenceSource) { - console.log(`Cleanplaats: Sort preference source changed from ${sortPreferenceSource} to ${newSortPreferenceSource}`); - sortPreferenceSource = newSortPreferenceSource; - settingsActuallyChanged = true; - } - - await updateDarkModeStartupScript(darkModeEnabled); - - if (settingsActuallyChanged) { - await updateApiRequestRules(resultsPerPage, defaultSortMode); - } - } catch (error) { - console.error('Cleanplaats: Error parsing settings in handleStorageChanges:', error); - } -} - -async function initialize() { - console.log('Cleanplaats background.js: initialize() called.', new Date().toISOString()); - - browserAPI.storage.local.get(['cleanplaatsSettings'], async (result) => { - if (browserAPI.runtime.lastError) { - console.error('Cleanplaats: Error loading settings during initialize:', browserAPI.runtime.lastError); - } else { - console.log('Cleanplaats: Settings loaded from storage:', result.cleanplaatsSettings); - try { - if (result.cleanplaatsSettings) { - const settings = JSON.parse(result.cleanplaatsSettings); - resultsPerPage = settings.resultsPerPage?.toString() || '30'; - defaultSortMode = settings.defaultSortMode || 'standard'; - sortPreferenceSource = settings.sortPreferenceSource || 'cleanplaats'; - await updateDarkModeStartupScript(Boolean(settings.darkMode)); - } else { - await updateDarkModeStartupScript(false); - } - } catch (error) { - console.error('Cleanplaats: Error parsing stored settings:', error, '. Using default settings.'); - await updateDarkModeStartupScript(false); - } - } - - console.log(`Cleanplaats: Initialized with settings - RPP: ${resultsPerPage}, Sort: ${defaultSortMode}, SortSource: ${sortPreferenceSource}`); - - await updateApiRequestRules(resultsPerPage, defaultSortMode); - - if (browserAPI.webRequest) { - try { - if (typeof browserAPI.webRequest.onBeforeRequest.hasListener === 'function') { - if (browserAPI.webRequest.onBeforeRequest.hasListener(rewriteHashRequests_MV2_compat)) { - browserAPI.webRequest.onBeforeRequest.removeListener(rewriteHashRequests_MV2_compat); - } - if (browserAPI.webRequest.onBeforeRequest.hasListener(rewriteApiRequests_MV2_compat)) { - browserAPI.webRequest.onBeforeRequest.removeListener(rewriteApiRequests_MV2_compat); - } - } - } catch (e) { - console.warn('Cleanplaats: Could not remove old webRequest listeners.', e); - } - } - - try { - if (browserAPI.storage.onChanged.hasListener(handleStorageChanges)) { - browserAPI.storage.onChanged.removeListener(handleStorageChanges); - } - browserAPI.storage.onChanged.addListener(handleStorageChanges); - console.log('Cleanplaats: Added storage.onChanged listener.'); - } catch (error) { - console.error('Cleanplaats: Error setting up storage listener:', error); - } - - try { - if (browserAPI.webNavigation.onBeforeNavigate.hasListener(handleHashNavigation)) { - browserAPI.webNavigation.onBeforeNavigate.removeListener(handleHashNavigation); - } - browserAPI.webNavigation.onBeforeNavigate.addListener(handleHashNavigation, { - url: WAKEUP_NAVIGATION_FILTERS - }); - console.log('Cleanplaats: Added webNavigation.onBeforeNavigate listener with wakeup filters.'); - } catch (error) { - console.error('Cleanplaats: Error setting up onBeforeNavigate listener:', error); - } - - try { - if (browserAPI.webNavigation.onHistoryStateUpdated.hasListener(handleHistoryStateUpdated)) { - browserAPI.webNavigation.onHistoryStateUpdated.removeListener(handleHistoryStateUpdated); - } - browserAPI.webNavigation.onHistoryStateUpdated.addListener(handleHistoryStateUpdated, { - url: WAKEUP_NAVIGATION_FILTERS - }); - console.log('Cleanplaats: Added webNavigation.onHistoryStateUpdated listener with wakeup filters.'); - } catch (error) { - console.error('Cleanplaats: Error setting up onHistoryStateUpdated listener:', error); - } - - console.log('Cleanplaats: All listeners registered. Ready.'); - }); -} - -browserAPI.runtime.onInstalled.addListener(async (details) => { - console.log('Cleanplaats: runtime.onInstalled event triggered, reason: ', details.reason); - if (details.reason === 'install' || details.reason === 'update') { - console.log('Cleanplaats: Extension installed or updated. Clearing old declarativeNetRequest rules.'); - try { - const existingRules = await browserAPI.declarativeNetRequest.getDynamicRules(); - const ruleIdsToRemove = existingRules.map(rule => rule.id); - if (ruleIdsToRemove.length > 0) { - await browserAPI.declarativeNetRequest.updateDynamicRules({ removeRuleIds: ruleIdsToRemove }); - console.log('Cleanplaats: Successfully cleared old dynamic rules.'); - } - } catch (error) { - console.error('Cleanplaats: Error clearing dynamic rules on install/update:', error); - } - } -}); - -function rewriteHashRequests_MV2_compat() {} -function rewriteApiRequests_MV2_compat() {} diff --git a/background/messages.js b/background/messages.js deleted file mode 100644 index 008d972..0000000 --- a/background/messages.js +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Background message handling and settings refresh. - */ - -function messageListener(message, sender, sendResponse) { - console.log('Cleanplaats: messageListener received message: ', message); - - if (message.action === 'keepAlive') { - console.log('Cleanplaats: Background script woken up by content script'); - resetKeepAliveToActiveMode(); - sendResponse({ status: 'acknowledged', timestamp: Date.now() }); - refreshSettingsAndRules(); - return true; - } - - if (message.action === 'forceRefresh') { - console.log('Cleanplaats: Force refresh requested'); - resetKeepAliveToActiveMode(); - refreshSettingsAndRules(); - sendResponse({ status: 'refreshed' }); - return true; - } - - return true; -} - -async function refreshSettingsAndRules() { - try { - const result = await new Promise((resolve) => { - browserAPI.storage.local.get(['cleanplaatsSettings'], resolve); - }); - - if (result.cleanplaatsSettings) { - const settings = JSON.parse(result.cleanplaatsSettings); - const newResultsPerPage = settings.resultsPerPage?.toString() || '30'; - const newDefaultSortMode = settings.defaultSortMode || 'standard'; - const newSortPreferenceSource = settings.sortPreferenceSource || 'cleanplaats'; - const darkModeEnabled = Boolean(settings.darkMode); - - let settingsChanged = false; - if (newResultsPerPage !== resultsPerPage) { - console.log(`Cleanplaats: Refreshing RPP from ${resultsPerPage} to ${newResultsPerPage}`); - resultsPerPage = newResultsPerPage; - settingsChanged = true; - } - if (newDefaultSortMode !== defaultSortMode) { - console.log(`Cleanplaats: Refreshing sort mode from ${defaultSortMode} to ${newDefaultSortMode}`); - defaultSortMode = newDefaultSortMode; - settingsChanged = true; - } - if (newSortPreferenceSource !== sortPreferenceSource) { - console.log(`Cleanplaats: Refreshing sort source from ${sortPreferenceSource} to ${newSortPreferenceSource}`); - sortPreferenceSource = newSortPreferenceSource; - settingsChanged = true; - } - - await updateDarkModeStartupScript(darkModeEnabled); - - if (settingsChanged) { - await updateApiRequestRules(resultsPerPage, defaultSortMode); - console.log('Cleanplaats: Settings and rules refreshed after wake-up'); - } - } - } catch (error) { - console.error('Cleanplaats: Error refreshing settings:', error); - } -} - -if (browserAPI.runtime.onMessage) { - if (!browserAPI.runtime.onMessage.hasListener(messageListener)) { - browserAPI.runtime.onMessage.addListener(messageListener); - } -} diff --git a/background/shared.js b/background/shared.js deleted file mode 100644 index d988eef..0000000 --- a/background/shared.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Cleanplaats background shared state and constants. - */ - -console.log('Cleanplaats background.js: Script execution started/restarted.', new Date().toISOString()); - -var browserAPI = typeof browser !== 'undefined' ? browser : chrome; - -var resultsPerPage = '30'; -var defaultSortMode = 'standard'; -var sortPreferenceSource = 'cleanplaats'; -var lastMarktplaatsActivity = Date.now(); - -var SORT_MODES = { - standard: { sortBy: 'OPTIMIZED', sortOrder: 'DECREASING' }, - date_new_old: { sortBy: 'SORT_INDEX', sortOrder: 'DECREASING' }, - date_old_new: { sortBy: 'SORT_INDEX', sortOrder: 'INCREASING' }, - price_low_high: { sortBy: 'PRICE', sortOrder: 'INCREASING' }, - price_high_low: { sortBy: 'PRICE', sortOrder: 'DECREASING' }, - distance: { sortBy: 'LOCATION', sortOrder: 'INCREASING' } -}; - -var API_RULE_ID = 1; -var HASH_URL_PATTERNS = [ - 'https://www.marktplaats.nl/l/', - 'https://www.marktplaats.nl/q/', - 'https://www.2dehands.be/l/', - 'https://www.2dehands.be/q/', - 'https://www.2ememain.be/l/', - 'https://www.2ememain.be/q/' -]; -var API_URL_PATTERNS = [ - 'https://www.marktplaats.nl/lrp/api/search*', - 'https://www.2dehands.be/lrp/api/search*', - 'https://www.2ememain.be/lrp/api/search*' -]; -var THEME_INIT_SCRIPT_ID = 'cleanplaats-theme-init'; -var THEME_MATCH_PATTERNS = [ - '*://*.marktplaats.nl/*', - '*://*.2dehands.be/*', - '*://*.2ememain.be/*' -]; -var WAKEUP_NAVIGATION_FILTERS = [ - { hostSuffix: 'marktplaats.nl' }, - { hostSuffix: '2dehands.be' }, - { hostSuffix: '2ememain.be' } -]; diff --git a/background/theme.js b/background/theme.js deleted file mode 100644 index 9e63cbf..0000000 --- a/background/theme.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Background theme-init registration. - */ - -async function updateDarkModeStartupScript(enabled) { - // theme-init.js is now loaded statically via manifest.json at document_start. - // Keeping this async hook as a no-op avoids browser-specific timing issues - // with runtime content-script registration, especially in Firefox. - console.log(`Cleanplaats: Startup dark-mode script is manifest-driven (${enabled ? 'enabled' : 'disabled'}).`); -} diff --git a/background/url-rules.js b/background/url-rules.js deleted file mode 100644 index 34dc4e2..0000000 --- a/background/url-rules.js +++ /dev/null @@ -1,148 +0,0 @@ -/** - * Background URL rewriting and DNR rule management. - */ - -function parseHashOptions(hashStr) { - const options = {}; - if (!hashStr || hashStr.length < 2) return options; - const hashKeysValues = hashStr.substring(1).split('|'); - for (let i = 0; i < hashKeysValues.length; ++i) { - const keyValue = hashKeysValues[i].split(':'); - if (keyValue.length !== 2) continue; - options[keyValue[0]] = keyValue[1]; - } - return options; -} - -function buildHashOptions(options) { - const entries = Object.entries(options).filter(([_, v]) => v && v !== ''); - if (entries.length === 0) return ''; - let hashStr = '#'; - for (const key in options) { - if (options[key] && options[key] !== '') { - hashStr += key + ':' + options[key] + '|'; - } - } - if (hashStr.endsWith('|')) { - hashStr = hashStr.substring(0, hashStr.length - 1); - } - return hashStr; -} - -function getModifiedUrlIfNeeded(urlString, currentResultsPerPage, currentDefaultSortMode, currentSortPreferenceSource) { - const url = new URL(urlString); - const options = parseHashOptions(url.hash); - let needsRewrite = false; - const hasExplicitSort = Boolean(options.sortBy && options.sortOrder); - const shouldApplyCleanplaatsSort = currentSortPreferenceSource !== 'marketplace'; - - if (!Object.prototype.hasOwnProperty.call(options, 'limit') || options.limit !== currentResultsPerPage) { - options.limit = currentResultsPerPage; - needsRewrite = true; - } - - if (shouldApplyCleanplaatsSort && currentDefaultSortMode !== 'standard') { - const sortConfig = SORT_MODES[currentDefaultSortMode]; - if (sortConfig && (!hasExplicitSort || options.sortBy !== sortConfig.sortBy || options.sortOrder !== sortConfig.sortOrder)) { - options.sortBy = sortConfig.sortBy; - options.sortOrder = sortConfig.sortOrder; - needsRewrite = true; - } - } else if (shouldApplyCleanplaatsSort && currentDefaultSortMode === 'standard' && hasExplicitSort) { - delete options.sortBy; - delete options.sortOrder; - needsRewrite = true; - } - - if (needsRewrite) { - url.hash = buildHashOptions(options); - return url.href; - } - return null; -} - -async function updateApiRequestRules(currentResultsPerPage, currentDefaultSortMode) { - console.log(`Cleanplaats: updateApiRequestRules called with RPP: ${currentResultsPerPage}, Sort: ${currentDefaultSortMode}`); - const rulesToRemove = [API_RULE_ID]; - const rulesToAdd = []; - const shouldModifyApi = currentResultsPerPage !== '30'; - - if (shouldModifyApi) { - const rule = { - id: API_RULE_ID, - priority: 1, - action: { type: 'redirect', redirect: { transform: { queryTransform: { removeParams: [], addOrReplaceParams: [] } } } }, - condition: { urlFilter: API_URL_PATTERNS.map(p => p.replace('*', '')).join('|'), resourceTypes: ['xmlhttprequest'] } - }; - if (currentResultsPerPage !== '30') { - rule.action.redirect.transform.queryTransform.addOrReplaceParams.push({ key: 'limit', value: currentResultsPerPage }); - } - rulesToAdd.push(rule); - console.log('Cleanplaats: Adding declarativeNetRequest rule:', JSON.parse(JSON.stringify(rule))); - } else { - console.log('Cleanplaats: Removing declarativeNetRequest rule as settings are default.'); - } - try { - await browserAPI.declarativeNetRequest.updateDynamicRules({ removeRuleIds: rulesToRemove, addRules: rulesToAdd }); - console.log('Cleanplaats: declarativeNetRequest rules updated successfully.'); - } catch (error) { - console.error('Cleanplaats: Error updating declarativeNetRequest rules:', error, JSON.stringify(rulesToAdd)); - } -} - -function handleHashNavigation(details) { - if (details.frameId !== 0 || details.parentFrameId !== -1) return; - - console.log('Cleanplaats: handleHashNavigation triggered.', `URL: ${details.url}`, `Transition: ${details.transitionType}`); - - const urlMatches = HASH_URL_PATTERNS.some(pattern => details.url.startsWith(pattern)); - if (!urlMatches) { - console.log('Cleanplaats: handleHashNavigation - URL does not match HASH_URL_PATTERNS, skipping.', details.url); - return; - } - - const newUrl = getModifiedUrlIfNeeded(details.url, resultsPerPage, defaultSortMode, sortPreferenceSource); - console.log(`Cleanplaats: handleHashNavigation - Original URL: ${details.url}, Processed newUrl: ${newUrl}`); - - if (newUrl && newUrl !== details.url) { - console.log(`Cleanplaats: Rewriting URL via onBeforeNavigate from ${details.url} to ${newUrl}`); - browserAPI.tabs.update(details.tabId, { url: newUrl }); - if (details.transitionType === undefined) { - console.log(`Cleanplaats: TransitionType was undefined. Attempting follow-up reload for ${newUrl}`); - setTimeout(() => { - browserAPI.tabs.get(details.tabId, (tab) => { - if (browserAPI.runtime.lastError) { - console.warn(`Cleanplaats: Error getting tab ${details.tabId} for reload: ${browserAPI.runtime.lastError.message}`); - return; - } - if (tab && tab.url === newUrl) { - console.log(`Cleanplaats: Tab ${details.tabId} URL matches, proceeding with reload.`); - browserAPI.tabs.reload(details.tabId); - } else { - console.log(`Cleanplaats: Tab ${details.tabId} URL changed or tab closed (current: ${tab ? tab.url : 'N/A'}), skipping reload.`); - } - }); - }, 150); - } - } -} - -function handleHistoryStateUpdated(details) { - if (details.frameId !== 0 || details.parentFrameId !== -1) return; - - console.log('Cleanplaats: handleHistoryStateUpdated triggered.', `URL: ${details.url}`, `Transition: ${details.transitionType}`); - - const urlMatches = HASH_URL_PATTERNS.some(pattern => details.url.startsWith(pattern)); - if (!urlMatches) { - console.log('Cleanplaats: handleHistoryStateUpdated - URL does not match HASH_URL_PATTERNS, skipping.', details.url); - return; - } - - const newUrl = getModifiedUrlIfNeeded(details.url, resultsPerPage, defaultSortMode, sortPreferenceSource); - console.log(`Cleanplaats: handleHistoryStateUpdated - Original URL: ${details.url}, Processed newUrl: ${newUrl}`); - - if (newUrl && newUrl !== details.url) { - console.log(`Cleanplaats: Correcting URL via onHistoryStateUpdated from ${details.url} to ${newUrl}`); - browserAPI.tabs.update(details.tabId, { url: newUrl }); - } -} diff --git a/content.css b/content.css deleted file mode 100644 index 62e70e7..0000000 --- a/content.css +++ /dev/null @@ -1,1891 +0,0 @@ -/* Base Panel Styling */ -.cleanplaats-panel { - position: fixed; - bottom: calc(20px + var(--cleanplaats-floating-offset, 0px)); - right: 20px; - z-index: 2147483647; - display: flex; - flex-direction: column; - background: white; - border-radius: 8px; - box-shadow: 0 2px 15px rgba(0,0,0,0.2); - font-family: Arial, sans-serif; - width: 280px; - max-width: 90vw; - max-height: 82vh; - transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), - max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), - min-width 0.4s cubic-bezier(0.4, 0, 0.2, 1), - border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1), - padding 0.3s cubic-bezier(0.4, 0, 0.2, 1), - background-color 0.3s ease, - opacity 0.3s ease; - overflow: hidden; - } - -.cleanplaats-panel:not(.collapsed) { - min-width: 250px; - padding: 0; -} - - /* Collapsed state */ - .cleanplaats-panel.collapsed { - transform: none; - width: 48px; - min-width: 48px; - min-height: 48px; - max-height: 48px; - background-color: transparent; - box-shadow: 0 2px 8px rgba(0,0,0,0.25); - border-radius: 50%; - padding: 0; - cursor: pointer; - } - - .cleanplaats-panel.collapsed.collapsed-ready { - /* background-image: url('chrome-extension://__MSG_@@extension_id__/icons/icon48.png'); */ - background-size: contain; - background-repeat: no-repeat; - background-position: center; - transition: box-shadow 0.25s cubic-bezier(0.4,0,0.2,1), transform 0.22s cubic-bezier(0.4,0,0.2,1); - will-change: transform; - } - - .cleanplaats-panel.collapsed.collapsed-ready:hover { - box-shadow: 0 4px 24px 0 rgba(44, 62, 80, 0.22), 0 1.5px 8px 0 rgba(44,62,80,0.10); - transform: scale(1.18); - cursor: pointer; - } - - .cleanplaats-panel.collapsed .cleanplaats-header, - .cleanplaats-panel.collapsed .cleanplaats-content { - opacity: 0; - max-height: 0px; - padding-top: 0; - padding-bottom: 0; - margin-top: 0; - margin-bottom: 0; - border-width: 0; - pointer-events: none; - } - - /* Header Styling */ - .cleanplaats-header { - display: flex; - flex-direction: column; - align-items: stretch; - gap: 8px; - padding: 12px 15px; - border-bottom: 1px solid #f0f0f0; - cursor: pointer; - user-select: none; - opacity: 1; - visibility: visible; - max-height: 120px; - overflow: hidden; - transition: opacity 0.25s ease-out, - max-height 0.35s ease-in-out, - padding-top 0.35s ease-in-out, padding-bottom 0.35s ease-in-out, - margin-top 0.35s ease-in-out, margin-bottom 0.35s ease-in-out, - border-width 0.35s ease-in-out; - } - - .cleanplaats-header-main { - display: flex; - justify-content: space-between; - align-items: center; - gap: 10px; - } - - .cleanplaats-header-actions { - display: flex; - align-items: center; - gap: 8px; - flex-shrink: 0; - } - - .cleanplaats-header h3 { - margin: 0; - font-size: 16px; - color: #4a4a4a; - display: flex; - align-items: center; - gap: 6px; - } - - .cleanplaats-header h3::before { - display: none !important; - } - - .cleanplaats-header-logo { - width: 24px; - height: 24px; - border-radius: 50%; - display: inline-block; - vertical-align: middle; - margin-right: 10px; - box-shadow: 0 0 0 1px #e0e0e0; - background: white; - object-fit: cover; - } - - /* Total removed badge disabled for now. - .cleanplaats-badge { - background: #e8f5e9; - color: #2e7d32; - padding: 1px 6px; - border-radius: 10px; - font-size: 11px; - font-weight: bold; - margin-left: 8px; - } - */ - - .cleanplaats-toggle { - background: none; - border: none; - font-size: 16px; - cursor: pointer; - padding: 5px; - color: #757575; - transition: transform 0.3s ease; - } - - .cleanplaats-theme-toggle { - position: relative; - display: inline-flex; - align-items: center; - justify-content: center; - width: 52px; - min-width: 52px; - height: 26px; - padding: 0; - border: none; - border-radius: 999px; - background: transparent; - cursor: pointer; - color: #4b5f77; - appearance: none; - -webkit-appearance: none; - } - - .cleanplaats-theme-toggle:focus-visible { - outline: 2px solid #7ccaf3; - outline-offset: 2px; - } - - .cleanplaats-theme-toggle-track { - position: relative; - display: block; - width: 52px; - height: 26px; - border-radius: 999px; - background: linear-gradient(135deg, #1a2330 0%, #28384a 100%); - box-shadow: inset 0 0 0 1px rgba(8, 14, 22, 0.18); - transition: background-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease; - } - - .cleanplaats-theme-toggle-icon, - .cleanplaats-theme-toggle-thumb-icon { - position: absolute; - display: inline-flex; - align-items: center; - justify-content: center; - width: 14px; - height: 14px; - } - - .cleanplaats-theme-toggle-icon svg, - .cleanplaats-theme-toggle-thumb-icon svg { - width: 14px; - height: 14px; - } - - .cleanplaats-theme-toggle-icon-moon { - left: 7px; - top: 6px; - color: rgba(223, 233, 244, 0.82); - } - - .cleanplaats-theme-toggle-icon-sun { - right: 7px; - top: 6px; - color: rgba(244, 199, 88, 0.95); - } - - .cleanplaats-theme-toggle-thumb { - position: absolute; - top: 2px; - left: 2px; - width: 22px; - height: 22px; - border-radius: 50%; - background: linear-gradient(180deg, #eff4fb 0%, #dbe6f2 100%); - box-shadow: 0 2px 7px rgba(7, 15, 23, 0.28); - transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), - background 0.28s ease, - box-shadow 0.28s ease; - } - - .cleanplaats-theme-toggle-thumb-icon { - inset: 4px; - width: 14px; - height: 14px; - opacity: 0; - transform: scale(0.8) rotate(-18deg); - transition: opacity 0.22s ease, transform 0.28s ease; - } - - .cleanplaats-theme-toggle[data-theme="dark"] .cleanplaats-theme-toggle-thumb-icon-moon, - .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-thumb-icon-sun { - opacity: 1; - transform: scale(1) rotate(0deg); - } - - .cleanplaats-theme-toggle[data-theme="dark"] .cleanplaats-theme-toggle-thumb { - transform: translateX(0); - background: linear-gradient(180deg, #dce6f1 0%, #bdcbdb 100%); - } - - .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-track { - background: linear-gradient(135deg, #6fbbff 0%, #f5d878 100%); - box-shadow: inset 0 0 0 1px rgba(103, 136, 174, 0.18); - } - - .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-thumb { - transform: translateX(26px); - background: linear-gradient(180deg, #fff6d6 0%, #ffd25f 100%); - box-shadow: 0 2px 7px rgba(125, 87, 0, 0.24); - } - - .cleanplaats-panel.collapsed .cleanplaats-toggle { - transform: rotate(180deg); - } - - .cleanplaats-contact-grid { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); - gap: 8px; - padding-top: 8px; - border-top: 1px solid #f0f0f0; - } - - .cleanplaats-contact { - display: flex; - align-items: center; - gap: 8px; - min-width: 0; - color: #4a4a4a; - text-decoration: none; - transition: color 0.2s ease; - } - - .cleanplaats-contact:hover, - .cleanplaats-contact:focus { - color: #0b5cab; - text-decoration: none; - } - - .cleanplaats-contact:focus-visible { - outline: 2px solid #7ccaf3; - outline-offset: 2px; - border-radius: 6px; - } - - .cleanplaats-contact-icon { - display: inline-flex; - align-items: center; - justify-content: center; - width: 20px; - height: 20px; - border-radius: 999px; - background: #eef4fb; - color: #1f2937; - flex-shrink: 0; - font-size: 12px; - } - - .cleanplaats-contact-copy { - display: flex; - flex-direction: column; - gap: 1px; - min-width: 0; - flex: 1; - } - - .cleanplaats-contact-title { - font-size: 11px; - font-weight: 700; - line-height: 1.25; - } - - .cleanplaats-contact-text { - font-size: 10px; - line-height: 1.25; - color: #757575; - } - - /* Content Area */ - .cleanplaats-content { - padding: 12px 15px; - flex: 1 1 auto; - min-height: 0; - max-height: calc(82vh - 120px); - opacity: 1; - visibility: visible; - overflow-y: auto; - overflow-x: hidden; - scrollbar-width: thin; - transition: opacity 0.25s ease-out, - max-height 0.35s ease-in-out, - padding-top 0.35s ease-in-out, padding-bottom 0.35s ease-in-out, - margin-top 0.35s ease-in-out, margin-bottom 0.35s ease-in-out; - } - - .cleanplaats-panel-views { - position: relative; - overflow: hidden; - transition: height 0.34s cubic-bezier(0.22, 1, 0.36, 1); - } - - .cleanplaats-content::-webkit-scrollbar { - width: 6px; - } - - .cleanplaats-content::-webkit-scrollbar-thumb { - background-color: #c1c1c1; - border-radius: 3px; - } - - .cleanplaats-panel-view { - position: absolute; - inset: 0; - width: 100%; - opacity: 0; - visibility: hidden; - pointer-events: none; - transform: translateY(-14px); - transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), - opacity 0.22s ease, - visibility 0s linear 0.34s; - } - - .cleanplaats-panel-view.active { - position: relative; - opacity: 1; - visibility: visible; - pointer-events: auto; - transform: translateY(0); - transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), - opacity 0.22s ease, - visibility 0s; - } - - .cleanplaats-panel-view.is-entering, - .cleanplaats-panel-view.is-leaving { - position: absolute; - inset: 0; - } - - .cleanplaats-panel-view.is-entering { - opacity: 1; - visibility: visible; - pointer-events: none; - } - - .cleanplaats-panel-view.is-entering-down, - .cleanplaats-panel-view.is-leaving-up { - transform: translateY(-14px); - } - - .cleanplaats-panel-view.is-entering-up, - .cleanplaats-panel-view.is-leaving-down { - transform: translateY(14px); - } - - .cleanplaats-panel-view.is-leaving { - opacity: 0; - visibility: visible; - pointer-events: none; - } - - .cleanplaats-panel-view-header { - display: flex; - flex-direction: column; - align-items: stretch; - gap: 4px; - margin-bottom: 10px; - } - - .cleanplaats-panel-view-topline { - display: flex; - align-items: center; - gap: 10px; - min-width: 0; - } - - .cleanplaats-panel-view-title { - color: inherit; - font-size: 16px; - font-weight: 700; - line-height: 1.2; - letter-spacing: -0.01em; - } - - .cleanplaats-panel-view-copy { - color: inherit; - font-size: 12.5px; - line-height: 1.45; - max-width: 24ch; - opacity: 0.68; - } - - .cleanplaats-panel-back { - display: inline-flex; - align-items: center; - gap: 4px; - background: rgba(127, 127, 127, 0.1); - border: 1px solid rgba(127, 127, 127, 0.16); - border-radius: 999px; - color: inherit; - cursor: pointer; - font-size: 12px; - font-weight: 600; - padding: 4px 9px; - opacity: 0.84; - transition: opacity 0.2s ease, color 0.2s ease, background 0.2s ease, border-color 0.2s ease; - } - - .cleanplaats-panel-back:hover { - opacity: 1; - background: rgba(127, 127, 127, 0.15); - border-color: rgba(127, 127, 127, 0.24); - } - - /* Options Styling */ - .cleanplaats-options { - margin-bottom: 15px; - } - - .cleanplaats-section-title { - font-size: 13px; - color: #757575; - margin: 12px 0 8px; - text-transform: uppercase; - } - - .cleanplaats-option { - display: flex; - align-items: center; - padding: 8px 0; - width: 100%; - gap: 12px; - } - - .cleanplaats-checkbox { - position: relative; - height: 18px; - width: 18px; - margin-right: 10px; - appearance: none; - border: 2px solid #9e9e9e; - border-radius: 3px; - outline: none; - cursor: pointer; - transition: background 0.2s, border-color 0.2s; - } - - .cleanplaats-checkbox:checked { - background: #4CAF50; - border-color: #4CAF50; - } - - .cleanplaats-checkbox:checked::after { - content: ""; - position: absolute; - left: 5px; - top: 2px; - width: 5px; - height: 10px; - border: solid white; - border-width: 0 2px 2px 0; - transform: rotate(45deg); - } - - .cleanplaats-option > label, - .cleanplaats-option-main > label { - display: flex; - align-items: center; - font-size: 14px; - cursor: pointer; - flex: 1; - } - - .cleanplaats-option-label { - display: flex; - align-items: center; - font-size: 14px; - cursor: pointer; - user-select: none; - flex: 1; - min-width: 0; - white-space: normal; - line-height: 1.4; - margin-left: 0 !important; - } - - .cleanplaats-option-label-text { - display: inline; - min-width: 0; - } - - .cleanplaats-results-dropdown-row .cleanplaats-option-label { - white-space: nowrap; - } - - .cleanplaats-option-preference { - align-items: flex-start; - padding-top: 12px; - border-top: 1px solid #f1f3f5; - } - - .cleanplaats-option-preference-block { - flex-direction: column; - gap: 10px; - } - - .cleanplaats-option-main { - display: flex; - align-items: flex-start; - gap: 12px; - width: 100%; - } - - .cleanplaats-option-preference .cleanplaats-switch { - flex: 0 0 auto; - margin-top: 2px; - } - - .cleanplaats-option-preference .cleanplaats-tooltip-icon { - margin-left: 6px; - margin-top: 0; - vertical-align: text-top; - } - - .cleanplaats-threshold-controls { - display: grid; - grid-template-columns: 58px minmax(92px, 1fr); - align-items: center; - column-gap: 8px; - row-gap: 8px; - width: calc(100% - 48px); - margin-left: 48px; - transition: opacity 0.2s ease; - } - - .cleanplaats-threshold-controls.is-disabled { - opacity: 0.52; - } - - .cleanplaats-threshold-label { - display: block; - grid-column: 1 / -1; - font-size: 12px; - color: #6b7280; - white-space: nowrap; - } - - .cleanplaats-threshold-input { - width: 100%; - min-width: 0; - box-sizing: border-box; - padding: 4px 8px; - border: 1px solid #e0e0e0; - border-radius: 4px; - font-size: 14px; - background: #fafafa; - color: #333; - } - - .cleanplaats-threshold-unit { - width: 100%; - min-width: 0; - box-sizing: border-box; - } - - /* Button Styling */ - .cleanplaats-button { - background: #4CAF50; - color: white; - border: none; - padding: 10px 15px; - border-radius: 4px; - cursor: pointer; - font-weight: bold; - width: 100%; - margin-top: 15px; - transition: background 0.2s ease; - font-size: 14px; - } - - .cleanplaats-button:hover { - background: #45a049; - } - - .cleanplaats-button:active { - transform: translateY(1px); - } - - .cleanplaats-button.secondary { - background: #f5f5f5; - color: #4a4a4a; - border: 1px solid #e0e0e0; - } - - .cleanplaats-button.secondary:hover { - background: #e8e8e8; - } - - .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:hover, - .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:focus-visible { - background: #2f3e4e !important; - border-color: rgba(166, 189, 214, 0.24) !important; - color: #f3f7fb !important; - } - - .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-option-preference { - border-top-color: rgba(166, 189, 214, 0.12); - } - - .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-threshold-label { - color: rgba(228, 235, 243, 0.72); - } - - .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-threshold-input, - .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown { - background: #1f2a36; - border-color: #314152; - color: #e4ebf3; - } - - .cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown option { - background: #1f2a36; - color: #e4ebf3; - } - - .cleanplaats-panel-nav-button { - margin-top: 10px; - margin-bottom: 4px; - } - - @media (prefers-reduced-motion: reduce) { - .cleanplaats-panel-views, - .cleanplaats-panel-view, - .cleanplaats-panel-view.active { - transition: none; - } - } - - /* Stats Area */ - .cleanplaats-stats { - font-size: 13px; - background: #f9f9f9; - border-radius: 4px; - padding: 10px; - margin-top: 12px; - } - - .cleanplaats-stat-item { - display: flex; - justify-content: space-between; - margin: 4px 0; - } - - .cleanplaats-stat-label { - color: #616161; - } - - .cleanplaats-stat-value { - font-weight: bold; - color: #4CAF50; - } - - /* Hidden elements */ - [data-cleanplaats-hidden] { - display: none !important; - } - - .cleanplaats-hidden { - display: none !important; - visibility: hidden !important; - height: 0 !important; - width: 0 !important; - padding: 0 !important; - margin: 0 !important; - overflow: hidden !important; - position: absolute !important; - pointer-events: none !important; - } - - /* Add this to your existing CSS */ - .bannerContainerLoading[data-cleanplaats-hidden], - .MpCard-mpCardBanner[data-cleanplaats-hidden], - div[role="button"][tabindex][data-cleanplaats-hidden], - .hz-Banner[data-cleanplaats-hidden], - .hz-Banner--fluid[data-cleanplaats-hidden], - .BannerTop-root[data-cleanplaats-hidden], - #top-banner-root[data-cleanplaats-hidden] { - display: none !important; - margin: 0 !important; - padding: 0 !important; - height: 0 !important; - min-height: 0 !important; - border: none !important; - } - - /* Target any list items that might contain ads */ - li[data-cleanplaats-hidden] { - display: none !important; - margin: 0 !important; - padding: 0 !important; - height: 0 !important; - min-height: 0 !important; - } - - /* Tooltip */ - .cleanplaats-tooltip { - position: relative; - display: inline-block; - margin-left: 6px; - } - - .cleanplaats-tooltip-icon { - margin-left: 8px; - display: inline-flex; - align-items: center; - justify-content: center; - width: 16px; - height: 16px; - background: #e0e0e0; - color: #757575; - border-radius: 50%; - font-size: 11px; - cursor: help; - } - - .cleanplaats-tooltip-text { - visibility: hidden; - background-color: #555; - color: #fff; - text-align: left; - border-radius: 6px; - padding: 8px 12px; - position: absolute; - z-index: 2147483647; /* Same as panel - tooltips are positioned within panel context */ - bottom: 125%; - left: 50%; /* Center horizontally */ - transform: translateX(-50%); /* Center horizontally */ - width: 135px; - font-size: 12px; - line-height: 1.4; - opacity: 0; - transition: opacity 0.3s; - pointer-events: none; - white-space: normal; - word-wrap: break-word; - box-shadow: 0 2px 8px rgba(0,0,0,0.15); - } - - .cleanplaats-tooltip:hover .cleanplaats-tooltip-text { - visibility: visible; - opacity: 1; - } - - /* First-time onboarding */ - .cleanplaats-onboarding { - position: fixed; - inset: 0; - display: flex; - align-items: center; - justify-content: center; - padding: 20px; - z-index: 2147483647; - background: rgba(15, 23, 42, 0.55); - font-family: Arial, sans-serif; - opacity: 1; - transition: opacity 0.3s ease; - } - - .cleanplaats-onboarding-content { - width: min(90vw, 480px); - background: white; - border-radius: 12px; - box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15); - padding: 24px; - } - - .cleanplaats-onboarding.cleanplaats-fade-out { - opacity: 0; - pointer-events: none; - } - - .cleanplaats-onboarding-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 20px; - } - - .cleanplaats-onboarding-header h3 { - margin: 0; - font-size: 1.4em; - color: #2D3748; - } - - .cleanplaats-onboarding-close { - background: none; - border: none; - font-size: 24px; - cursor: pointer; - color: #718096; - padding: 4px 8px; - } - - .cleanplaats-onboarding-steps { - margin: 20px 0; - } - - .cleanplaats-onboarding-step { - display: flex; - align-items: center; - margin: 16px 0; - gap: 12px; - } - - .step-number { - background: #4CAF50; - color: white; - width: 24px; - height: 24px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 14px; - flex-shrink: 0; - } - - .cleanplaats-onboarding-step p { - margin: 0; - color: #4A5568; - font-size: 14px; - line-height: 1.5; - } - - .cleanplaats-onboarding-button { - width: 100%; - padding: 12px; - background: #4CAF50; - color: white; - border: none; - border-radius: 6px; - cursor: pointer; - font-size: 1em; - font-weight: bold; - transition: background 0.2s; - } - - .cleanplaats-onboarding-button:hover { - background: #45a049; - } - - .cleanplaats-info-overlay { - position: fixed; - inset: 0; - display: flex; - align-items: center; - justify-content: center; - padding: 20px; - background: rgba(15, 23, 42, 0.55); - opacity: 0; - pointer-events: none; - transition: opacity 0.2s ease; - z-index: 2147483647; - } - - .cleanplaats-info-overlay--visible { - opacity: 1; - pointer-events: auto; - } - - .cleanplaats-info-card { - width: min(92vw, 420px); - background: #ffffff; - border-radius: 16px; - padding: 20px 22px; - box-shadow: 0 22px 50px rgba(15, 23, 42, 0.3); - display: flex; - flex-direction: column; - gap: 14px; - font-family: Arial, sans-serif; - } - - .cleanplaats-info-header { - display: flex; - flex-direction: column; - gap: 6px; - position: relative; - padding-right: 104px; - } - - .cleanplaats-info-logo { - position: absolute; - top: 0; - right: 0; - width: 84px; - height: 84px; - object-fit: cover; - border-radius: 18px; - box-shadow: 0 10px 22px rgba(15, 23, 42, 0.18); - background: #f8fafc; - } - - .cleanplaats-info-eyebrow { - font-size: 0.85rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.08em; - color: #16a34a; - } - - .cleanplaats-info-title { - margin: 0; - font-size: 1.35rem; - color: #0f172a; - } - - .cleanplaats-info-intro { - margin: 0; - color: #475569; - line-height: 1.4; - } - - .cleanplaats-info-steps { - margin: 0; - padding-left: 18px; - color: #1f2937; - line-height: 1.5; - display: grid; - gap: 6px; - } - - .cleanplaats-info-note { - margin: 0; - color: #64748b; - font-size: 0.92rem; - } - - .cleanplaats-info-footer { - display: flex; - justify-content: flex-end; - } - - .cleanplaats-info-button { - min-width: 132px; - padding: 11px 16px; - background: #16a34a; - color: #ffffff; - border: none; - border-radius: 10px; - cursor: pointer; - font-size: 0.95rem; - font-weight: 700; - transition: background 0.2s ease, transform 0.2s ease; - } - - .cleanplaats-info-button:hover, - .cleanplaats-info-button:focus { - background: #15803d; - } - - .cleanplaats-info-button:focus-visible { - outline: 2px solid #7ccaf3; - outline-offset: 2px; - } - - @media (max-width: 520px) { - .cleanplaats-info-card { - padding: 18px; - } - - .cleanplaats-info-header { - padding-right: 0; - } - - .cleanplaats-info-logo { - position: static; - width: 64px; - height: 64px; - margin-bottom: 4px; - } - - .cleanplaats-info-footer { - justify-content: stretch; - } - - .cleanplaats-info-button { - width: 100%; - } - } - - @media (prefers-reduced-motion: reduce) { - .cleanplaats-info-overlay, - .cleanplaats-info-button { - transition: none; - } - } - - /* Welcome toast */ - .cleanplaats-toast { - position: fixed; - bottom: 24px; - left: 50%; - transform: translateX(-50%) translateY(100px); - background: #2D3748; - color: white; - padding: 12px 24px; - border-radius: 8px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); - z-index: 10000; - opacity: 0; - transition: transform 0.3s ease, opacity 0.3s ease; - font-family: Arial, sans-serif; - } - - .cleanplaats-toast.visible { - transform: translateX(-50%) translateY(0); - opacity: 1; - } - - .cleanplaats-toast-content { - display: flex; - align-items: center; - gap: 8px; - font-size: 14px; - } - - .cleanplaats-toast-icon { - font-size: 18px; - } - - .cleanplaats-toast-icon.eye { - text-decoration: line-through; - } - - /* Buy Me Coffee Button */ - .cleanplaats-bmc-button { - display: flex; - align-items: center; - justify-content: center; - gap: 8px; - box-sizing: border-box; - margin: 0px auto 8px; - padding: 10px 18px; - background: linear-gradient(180deg, #fff2c6 0%, #ffe29a 100%); - color: #6f4b00; - border: 1px solid #f2c14e; - border-radius: 8px; - font-size: 15px; - font-weight: 700; - text-decoration: none; - transition: background 0.2s, border 0.2s, color 0.2s, box-shadow 0.2s, transform 0.2s; - box-shadow: 0 6px 14px rgba(242, 193, 78, 0.22); - width: fit-content; - max-width: calc(100% - 24px); - min-width: 0; - cursor: pointer; - } - - .cleanplaats-bmc-button:hover, - .cleanplaats-bmc-button:focus { - background: linear-gradient(180deg, #ffe9b3 0%, #ffd873 100%); - color: #5d3f00; - border-color: #e3ae2d; - text-decoration: none; - box-shadow: 0 8px 18px rgba(242, 193, 78, 0.3); - transform: translateY(-1px); - } - - .cleanplaats-bmc-emoji { - font-size: 1.25em; - margin-right: 2px; - } - - /* Toggle Switch styling */ - .cleanplaats-switch { - position: relative; - display: inline-block; - width: 36px !important; - min-width: 36px !important; - max-width: 36px !important; - height: 20px !important; - flex: 0 0 36px !important; - margin: 0 !important; - } - - .cleanplaats-switch input { - opacity: 0; - width: 0; - height: 0; - } - - .cleanplaats-switch-slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #e0e0e0; - transition: .3s; - border-radius: 20px; - width: 36px !important; - } - - .cleanplaats-switch-slider:before { - position: absolute; - content: ""; - height: 16px; - width: 16px; - left: 2px; - bottom: 2px; - background-color: white; - transition: .3s; - border-radius: 50%; - } - - input:checked + .cleanplaats-switch-slider { - background-color: #4CAF50; - } - - input:checked + .cleanplaats-switch-slider:before { - transform: translateX(16px); - } - - /* Blacklist modal styles */ - .cleanplaats-blacklist-modal { - position: fixed; - bottom: calc(120px + var(--cleanplaats-floating-offset, 0px)); - right: 20px; - background: #fff; - border: none; - z-index: 9999; - padding: 16px; - box-shadow: 0 2px 15px rgba(0,0,0,0.1); - border-radius: 8px; - width: 280px; - max-width: 90vw; - transform: translateZ(0); - will-change: transform; - backface-visibility: hidden; - } - - .cleanplaats-blacklist-modal-content h4 { - margin: 0 0 16px 0; - color: #4a4a4a; - font-size: 16px; - display: flex; - align-items: center; - gap: 8px; - } - - .cleanplaats-blacklist-modal-content h4::before { - content: "👁"; - font-size: 18px; - } - - .cleanplaats-blacklist-modal-content ul { - list-style: none; - padding: 0; - margin: 0; - max-height: 300px; - overflow-y: auto; - } - - .cleanplaats-blacklist-modal-content ul::-webkit-scrollbar { - width: 6px; - } - - .cleanplaats-blacklist-modal-content ul::-webkit-scrollbar-thumb { - background-color: #c1c1c1; - border-radius: 3px; - } - - .cleanplaats-blacklist-modal-content li { - display: flex; - justify-content: space-between; - align-items: center; - padding: 8px; - margin-bottom: 4px; - background: #f8f9fa; - border-radius: 6px; - transition: background 0.2s; - } - - .cleanplaats-blacklist-modal-content li:hover { - background: #f0f0f0; - } - - .cleanplaats-blacklist-modal-content li span { - flex: 1; - margin-right: 12px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - color: #333; - font-size: 14px; - } - - /* Modern button style */ - .cleanplaats-unblacklist-btn { - display: flex; - align-items: center; - gap: 6px; - background: #ff4d4d; - color: white; - border: none; - padding: 6px 12px; - border-radius: 6px; - cursor: pointer; - font-size: 13px; - transition: all 0.3s ease; - white-space: nowrap; - position: relative; - } - - .cleanplaats-unblacklist-btn::before { - content: "👁"; - font-size: 14px; - text-decoration: line-through; - margin-right: 4px; - transition: all 0.3s ease; - } - - .cleanplaats-unblacklist-btn:hover { - background: #4CAF50; - transform: translateY(-1px); - } - - .cleanplaats-unblacklist-btn:hover::before { - text-decoration: none; - } - - /* Close button style */ - #cleanplaats-blacklist-close { - width: 100%; - margin-top: 12px; - padding: 8px; - background: #f0f0f0; - border: none; - border-radius: 6px; - color: #666; - cursor: pointer; - font-size: 14px; - transition: background 0.2s; - } - - #cleanplaats-blacklist-close:hover { - background: #e0e0e0; - } - - /* Modern seller hide button */ - .cleanplaats-blacklist-btn-row { - margin-top: 4px; - margin-bottom: 8px; - width: 100%; - display: flex; - align-items: center; - } - - .cleanplaats-blacklist-btn { - display: flex; - align-items: center; - gap: 6px; - background: #f8f9fa; - color: #666; - border: none; - padding: 6px 12px; - border-radius: 6px; - cursor: pointer; - font-size: 13px; - transition: all 0.2s ease; - width: auto; - min-width: auto; - max-width: none; - } - - .cleanplaats-detail-blacklist-row { - margin-top: 10px; - margin-bottom: 14px; - padding-top: 10px; - border-top: 1px solid #edf1f5; - display: flex; - justify-content: flex-start; - } - - .cleanplaats-detail-blacklist-btn { - width: auto; - justify-content: flex-start; - font-weight: 600; - padding: 8px 12px; - } - - .cleanplaats-detail-blacklist-btn:disabled, - .cleanplaats-detail-blacklist-btn[aria-disabled="true"] { - background: #eef2f6; - color: #8a94a3; - cursor: default; - transform: none; - } - - .cleanplaats-detail-blacklist-btn:disabled::before, - .cleanplaats-detail-blacklist-btn[aria-disabled="true"]::before { - text-decoration: line-through; - } - - .cleanplaats-detail-blacklist-btn:disabled:hover, - .cleanplaats-detail-blacklist-btn[aria-disabled="true"]:hover { - background: #eef2f6; - color: #8a94a3; - transform: none; - } - - /* Inline button for car adverts */ - .cleanplaats-inline-btn { - display: inline-flex !important; - align-items: center !important; - gap: 6px !important; - background: #f8f9fa !important; - color: #666 !important; - border: none !important; - padding: 4px 8px !important; - border-radius: 4px !important; - cursor: pointer !important; - font-size: 12px !important; - transition: all 0.2s ease !important; - width: auto !important; - min-width: auto !important; - max-width: none !important; - margin-left: 8px !important; - margin-top: 0 !important; - margin-bottom: 0 !important; - margin-right: 0 !important; - vertical-align: middle !important; - line-height: 1 !important; - white-space: nowrap !important; - } - - /* Add eye icon */ - .cleanplaats-blacklist-btn::before { - content: "👁"; - font-size: 14px; - } - - /* Hover effect */ - .cleanplaats-blacklist-btn:hover { - background: #ff4d4d; - color: white; - transform: translateY(-1px); - } - - /* Hover effect for the eye icon */ - .cleanplaats-blacklist-btn:hover::before { - text-decoration: line-through; - } - - /* Inline button hover effects */ - .cleanplaats-inline-btn::before { - content: "👁" !important; - font-size: 12px !important; - } - - .cleanplaats-inline-btn:hover { - background: #ff4d4d !important; - color: white !important; - transform: translateY(-1px) !important; - } - - .cleanplaats-inline-btn:hover::before { - text-decoration: line-through !important; - } - - /* Blacklist toast notification */ - .cleanplaats-blacklist-toast { - position: fixed; - bottom: 24px; - left: 50%; - transform: translateX(-50%) translateY(100px); - background: #1a1a1a; - color: white; - padding: 12px 20px; - border-radius: 12px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - z-index: 2147483648; - opacity: 0; - transition: all 0.3s ease; - } - - .cleanplaats-blacklist-toast-warning { - background: linear-gradient(180deg, #5c2327 0%, #4a171b 100%); - border: 1px solid rgba(255, 186, 186, 0.18); - box-shadow: 0 8px 24px rgba(71, 16, 20, 0.28); - } - - .cleanplaats-blacklist-toast-warning .cleanplaats-toast-message span { - opacity: 0.92; - } - - .cleanplaats-blacklist-toast-warning .cleanplaats-toast-icon { - width: 22px; - height: 22px; - border-radius: 999px; - background: rgba(255, 255, 255, 0.14); - display: inline-flex; - align-items: center; - justify-content: center; - font-size: 13px; - font-weight: 700; - line-height: 1; - } - - .cleanplaats-blacklist-toast.visible { - transform: translateX(-50%) translateY(0); - opacity: 1; - } - - .cleanplaats-blacklist-toast-content { - display: flex; - align-items: center; - gap: 12px; - } - - .cleanplaats-toast-icon { - font-size: 18px; - } - - .cleanplaats-toast-icon.eye { - text-decoration: line-through; - } - - .cleanplaats-toast-message { - display: flex; - flex-direction: column; - gap: 2px; - } - - .cleanplaats-toast-message strong { - font-size: 14px; - font-weight: 600; - } - - .cleanplaats-toast-message span { - font-size: 12px; - opacity: 0.8; - } - - /* Style for the "Beheer verborgen verkopers" button */ - #cleanplaats-manage-blacklist { - background-color: #2196F3; - color: white; - border: none; - padding: 10px 15px; - border-radius: 4px; - cursor: pointer; - font-weight: bold; - width: 100%; - margin-top: 15px; - transition: background-color 0.3s ease; - font-size: 14px; - } - - #cleanplaats-manage-blacklist:hover { - background-color: #1976D2; - } - - /* Blacklist terms modal styles */ - .cleanplaats-terms-modal { - position: fixed; - bottom: calc(170px + var(--cleanplaats-floating-offset, 0px)); - right: 20px; - background: #fff; - border: none; - z-index: 9999; - padding: 16px; - box-shadow: 0 2px 15px rgba(0,0,0,0.1); - border-radius: 8px; - width: 280px; - max-width: 90vw; - transform: translateZ(0); - will-change: transform; - backface-visibility: hidden; - } - - .cleanplaats-terms-modal-content h4 { - margin: 0 0 16px 0; - color: #4a4a4a; - font-size: 16px; - display: flex; - align-items: center; - gap: 8px; - } - - .cleanplaats-terms-modal-content h4::before { - content: "✏️"; - font-size: 18px; - margin-right: 6px; - } - - .cleanplaats-terms-modal-content ul { - list-style: none; - padding: 0; - margin: 0; - max-height: 300px; - overflow-y: auto; - } - - .cleanplaats-terms-modal-content ul::-webkit-scrollbar { - width: 6px; - } - - .cleanplaats-terms-modal-content ul::-webkit-scrollbar-thumb { - background-color: #c1c1c1; - border-radius: 3px; - } - - .cleanplaats-terms-modal-content li { - display: flex; - justify-content: space-between; - align-items: center; - padding: 8px; - margin-bottom: 4px; - background: #f8f9fa; - border-radius: 6px; - transition: background 0.2s; - } - - .cleanplaats-terms-modal-content li:hover { - background: #f0f0f0; - } - - .cleanplaats-terms-modal-content li span { - flex: 1; - margin-right: 12px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - color: #333; - font-size: 14px; - } - - /* Modern button style for blacklist terms */ - .cleanplaats-unblacklist-term-btn { - display: flex; - align-items: center; - gap: 6px; - background: #ff4d4d; - color: white; - border: none; - padding: 6px 12px; - border-radius: 6px; - cursor: pointer; - font-size: 13px; - transition: all 0.3s ease; - white-space: nowrap; - position: relative; - } - - .cleanplaats-unblacklist-term-btn::before { - content: "👁"; - font-size: 14px; - text-decoration: line-through; - margin-right: 4px; - transition: all 0.3s ease; - } - - .cleanplaats-unblacklist-term-btn:hover { - background: #4CAF50; - transform: translateY(-1px); - } - - .cleanplaats-unblacklist-term-btn:hover::before { - text-decoration: none; - } - - /* Close button style for terms modal */ - #cleanplaats-terms-close { - width: 100%; - margin-top: 12px; - padding: 8px; - background: #f0f0f0; - border: none; - border-radius: 6px; - color: #666; - cursor: pointer; - font-size: 14px; - transition: background 0.2s; - } - - #cleanplaats-terms-close:hover { - background: #e0e0e0; - } - - /* Style for the "Beheer blacklist termen" button */ - #cleanplaats-manage-terms { - background-color: #2196F3; - color: white; - border: none; - padding: 10px 15px; - border-radius: 4px; - cursor: pointer; - font-weight: bold; - width: 100%; - margin-top: 15px; - transition: background-color 0.3s ease; - font-size: 14px; - } - - #cleanplaats-manage-terms:hover { - background-color: #1976D2; - } - - /* Ensure removed ads do not leave blank spaces */ - .hz-Listing[data-cleanplaats-hidden] { - display: none !important; - } - - .hz-Link[data-cleanplaats-hidden] { - display: none !important; - } - - .cleanplaats-terms-input-row { - display: flex; - gap: 8px; - margin-top: 12px; - width: 100%; - box-sizing: border-box; - } - - .cleanplaats-term-input { - flex: 1 1 0; - min-width: 0; - box-sizing: border-box; - padding: 8px 12px; - border: 1px solid #e0e0e0; - border-radius: 6px; - font-size: 14px; - color: #333; - transition: border-color 0.2s; - } - - .cleanplaats-term-input:focus { - outline: none; - border-color: #2196F3; - } - - .cleanplaats-add-term-btn { - flex: 0 0 auto; - box-sizing: border-box; - padding: 8px 16px; - background: #2196F3; - color: white; - border: none; - border-radius: 6px; - cursor: pointer; - font-size: 14px; - font-weight: 500; - transition: background-color 0.2s; - white-space: nowrap; - max-width: 110px; - overflow: hidden; - text-overflow: ellipsis; - } - - .cleanplaats-add-term-btn:hover { - background: #1976D2; - } - - .cleanplaats-input-help { - margin-top: 8px; - color: #666; - font-size: 12px; - line-height: 1.4; - } - - .cleanplaats-panel.animating .cleanplaats-content { - scrollbar-width: none; /* Firefox */ - } - .cleanplaats-panel.animating .cleanplaats-content::-webkit-scrollbar { - display: none; /* Chrome, Safari */ - } - - /* Mobile seller topright row and hide button */ - @media (max-width: 700px) { - .cleanplaats-seller-topright-mobile { - display: flex; - justify-content: flex-end; - align-items: center; - gap: 6px; - font-size: 12px; - color: #888; - background: rgba(255,255,255,0.85); - border-radius: 6px; - padding: 2px 8px 2px 8px; - box-shadow: 0 1px 4px rgba(0,0,0,0.03); - margin-bottom: 4px; - } - .cleanplaats-seller-name-mobile { - color: #666; - font-size: 12px; - font-weight: 500; - max-width: 90px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .cleanplaats-blacklist-btn-mobile { - background: none; - border: none; - color: #888; - font-size: 16px; - cursor: pointer; - padding: 2px 4px; - border-radius: 4px; - display: flex; - align-items: center; - transition: background 0.2s; - } - .cleanplaats-blacklist-btn-mobile svg { - display: inline-block; - vertical-align: middle; - stroke: #888; - fill: none; - width: 18px; - height: 18px; - transition: stroke 0.2s; - } - .cleanplaats-blacklist-btn-mobile:hover { - background: #f0f0f0; - } - .cleanplaats-blacklist-btn-mobile:active svg, - .cleanplaats-blacklist-btn-mobile:hover svg { - stroke: #555; - } - .cleanplaats-panel.collapsed.collapsed-ready:hover { - box-shadow: 0 2px 8px rgba(0,0,0,0.25); - transform: none; - } - } - - /* Dropdown styling */ - .cleanplaats-results-dropdown-row { - display: flex; - align-items: center; - gap: 10px; - margin: 6px 0 2px 0; - } - .cleanplaats-results-dropdown { - padding: 4px 8px; - border-radius: 4px; - border: 1px solid #e0e0e0; - font-size: 14px; - background: #fafafa; - color: #333; - min-width: 70px; - color-scheme: light; - } - .cleanplaats-results-dropdown:focus { - outline: none; - border-color: #2196F3; - } - - .cleanplaats-threshold-input:focus { - outline: none; - border-color: #2196F3; - } - - .cleanplaats-results-dropdown option { - background: #fafafa; - color: #333; - } - - /* Verbeterde statistieken styling */ - .cleanplaats-stats.cleanplaats-stats-compact { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 2px 10px; - font-size: 12px; - padding: 8px 10px; - margin-top: 10px; - background: #f9f9f9; - border-radius: 6px; - border: 1px solid #f0f0f0; - } - .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-section-title { - grid-column: 1 / -1; - margin-bottom: 4px; - font-size: 11px; - margin-top: 0; - color: #757575; - font-weight: 500; - letter-spacing: 0.3px; - text-transform: uppercase; - } - .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-item { - margin: 0; - padding: 2px 0; - display: flex; - justify-content: space-between; - align-items: center; - min-height: 16px; - } - .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-item:last-child { - border-bottom: none; - } - .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-label { - font-size: 11px; - color: #616161; - font-weight: 400; - } - .cleanplaats-stats.cleanplaats-stats-compact .cleanplaats-stat-value { - font-size: 11px; - color: #4CAF50; - font-weight: 600; - } - @media (max-width: 400px) { - .cleanplaats-stats.cleanplaats-stats-compact { - grid-template-columns: 1fr; - padding: 8px; - } - } - - /* Global tooltip for all panel tooltips */ - .cleanplaats-global-tooltip { - position: fixed; - z-index: 2147483648; - background-color: #555; - color: #fff; - border-radius: 6px; - padding: 8px 12px; - font-size: 12px; - line-height: 1.4; - opacity: 1; - pointer-events: none; - white-space: normal; - word-wrap: break-word; - box-shadow: 0 2px 8px rgba(0,0,0,0.15); - transition: opacity 0.3s; - left: 0; - top: 0; - display: none; - max-width: 220px; - } diff --git a/content.js b/content.js deleted file mode 100644 index 0da49c5..0000000 --- a/content.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Cleanplaats content bootstrap. - */ - -if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', initCleanplaats); -} else { - initCleanplaats(); -} diff --git a/content/blacklist.js b/content/blacklist.js deleted file mode 100644 index fd04af5..0000000 --- a/content/blacklist.js +++ /dev/null @@ -1,469 +0,0 @@ -/** - * Content-script seller and term blacklist management. - */ - -function showTermsModal() { - const modal = document.getElementById('cleanplaats-terms-modal'); - if (!modal) return; - const panelText = getPanelLocaleText(); - - const blacklistModal = document.getElementById('cleanplaats-blacklist-modal'); - if (blacklistModal) { - blacklistModal.style.display = 'none'; - } - - if (modal.style.display === 'block') { - modal.style.display = 'none'; - return; - } - - const terms = CLEANPLAATS.settings.blacklistedTerms; - - modal.innerHTML = DOMPurify.sanitize(` -
    -

    ${panelText.termsModalTitle}

    -
      - ${terms.length === 0 ? `
    • ${panelText.termsEmpty}
    • ` : terms.map(term => ` -
    • - ${term} - -
    • - `).join('')} -
    -
    - - -
    -
    ${panelText.termInputHelp}
    - -
    - `); - modal.style.display = 'block'; - - document.getElementById('cleanplaats-terms-close').onclick = () => { - modal.style.display = 'none'; - }; - - const addTerm = () => { - const input = document.getElementById('cleanplaats-term-input'); - const term = input.value.trim(); - if (term && !CLEANPLAATS.settings.blacklistedTerms.includes(term)) { - CLEANPLAATS.settings.blacklistedTerms.push(term); - saveSettings().then(() => { - input.value = ''; - updateTermsModal(); - performCleanup(); - showBlacklistTermToast(term); - }); - } - }; - - document.getElementById('cleanplaats-add-term').onclick = addTerm; - - document.getElementById('cleanplaats-term-input').addEventListener('keydown', (e) => { - if (e.key === 'Enter') { - e.preventDefault(); - addTerm(); - } - }); - - setupTermsModalButtons(); -} - -function updateTermsModal() { - const modal = document.getElementById('cleanplaats-terms-modal'); - if (!modal || modal.style.display === 'none') return; - const panelText = getPanelLocaleText(); - - const terms = CLEANPLAATS.settings.blacklistedTerms; - const list = document.getElementById('cleanplaats-terms-list'); - - if (list) { - list.innerHTML = DOMPurify.sanitize( - terms.length === 0 - ? `
  • ${panelText.termsEmpty}
  • ` - : terms.map(term => ` -
  • - ${term} - -
  • - `).join('') - ); - - setupTermsModalButtons(); - } -} - -function setupTermsModalButtons() { - const panelText = getPanelLocaleText(); - document.querySelectorAll('.cleanplaats-unblacklist-term-btn').forEach(btn => { - btn.onmouseover = () => { - btn.style.background = 'green'; - btn.textContent = panelText.unhideButton; - }; - btn.onmouseout = () => { - btn.style.background = '#ff4d4d'; - btn.textContent = panelText.hiddenButton; - }; - btn.style.background = '#ff4d4d'; - btn.style.color = 'white'; - btn.onclick = () => { - const term = btn.dataset.term; - CLEANPLAATS.settings.blacklistedTerms = CLEANPLAATS.settings.blacklistedTerms.filter(t => t !== term); - saveSettings().then(() => { - updateTermsModal(); - unhideListingsByTerm(term); - performCleanup(); - showUnblacklistTermToast(term); - }); - }; - }); -} - -function unhideListingsByTerm(term) { - document.querySelectorAll('.hz-Link').forEach(link => { - const title = getListingTitleText(link); - if (title.includes(term.toLowerCase())) { - const listingEl = link.closest('.hz-StructuredListing') || link; - listingEl.removeAttribute('data-cleanplaats-hidden'); - listingEl.style.display = ''; - } - }); - document.querySelectorAll('.hz-Listing').forEach(listing => { - const title = getListingTitleText(listing); - if (title.includes(term.toLowerCase())) { - listing.removeAttribute('data-cleanplaats-hidden'); - listing.style.display = ''; - } - }); -} - -function addSellerToBlacklist(sellerName) { - addSellersToBlacklist([sellerName]); -} - -function addSellersToBlacklist(sellerNames) { - const normalizedSellerNames = sellerNames - .map(name => name.trim()) - .filter(Boolean) - .filter((name, index, arr) => arr.indexOf(name) === index) - .filter(name => !CLEANPLAATS.settings.blacklistedSellers.includes(name)); - - if (normalizedSellerNames.length === 0) return; - - CLEANPLAATS.settings.blacklistedSellers.push(...normalizedSellerNames); - saveSettings().then(() => { - performCleanup(); - injectBlacklistButtons(); - updateBlacklistModal(); - - if (normalizedSellerNames.length === 1) { - showBlacklistToast(normalizedSellerNames[0]); - return; - } - - showBulkBlacklistToast(normalizedSellerNames.length); - }); -} - -function removeSellerFromBlacklist(sellerName) { - CLEANPLAATS.settings.blacklistedSellers = CLEANPLAATS.settings.blacklistedSellers.filter(s => s !== sellerName); - saveSettings().then(() => { - document.querySelectorAll('.hz-Listing').forEach(listing => { - const sellerNameEl = listing.querySelector('.hz-Listing-seller-name, .hz-Listing-seller-name-new, .hz-Listing-seller-link, .hz-Listing-sellerName, .hz-Listing-sellerName-new'); - if (!sellerNameEl) return; - if (sellerNameEl.textContent.trim() === sellerName) { - listing.removeAttribute('data-cleanplaats-hidden'); - listing.style.display = ''; - } - }); - performCleanup(); - injectBlacklistButtons(); - updateBlacklistModal(); - }); -} - -function injectProductDetailBlacklistButton() { - const panelText = getPanelLocaleText(); - const sellerRoot = document.querySelector('.SellerInfoSmall-root'); - const sellerNameElement = sellerRoot?.querySelector('.SellerInfoSmall-name a, .SellerInfoSmall-name'); - const existingRow = document.querySelector('.cleanplaats-detail-blacklist-row'); - - if (!isProductDetailPage() || !sellerRoot || !sellerNameElement) { - existingRow?.remove(); - return; - } - - const sellerName = sellerNameElement.textContent?.trim(); - if (!sellerName) { - existingRow?.remove(); - return; - } - - const isBlacklisted = CLEANPLAATS.settings.blacklistedSellers.includes(sellerName); - const detailRow = existingRow || document.createElement('div'); - detailRow.className = 'cleanplaats-detail-blacklist-row'; - - const button = document.createElement('button'); - button.className = 'cleanplaats-blacklist-btn cleanplaats-detail-blacklist-btn'; - button.type = 'button'; - button.tabIndex = 0; - button.textContent = isBlacklisted ? panelText.hiddenSellerButton : panelText.hideSellerButton; - button.disabled = isBlacklisted; - button.setAttribute('aria-disabled', isBlacklisted ? 'true' : 'false'); - - if (!isBlacklisted) { - button.addEventListener('click', (event) => { - event.preventDefault(); - event.stopPropagation(); - addSellerToBlacklist(sellerName); - }); - } - - detailRow.replaceChildren(button); - - if (!existingRow) { - sellerRoot.insertAdjacentElement('afterend', detailRow); - } -} - -function injectBlacklistButtons() { - const panelText = getPanelLocaleText(); - document.querySelectorAll('.hz-Listing').forEach(listing => { - const oldBtn = listing.querySelector('.cleanplaats-blacklist-btn-row'); - const oldTopRight = listing.querySelector('.cleanplaats-seller-topright-mobile'); - const oldInlineBtn = listing.querySelector('.cleanplaats-inline-btn'); - - let sellerName = listing.dataset.cleanplaatsSellerName || null; - let sellerElement = null; - let isCarAdvert = false; - - const carSellerElement = listing.querySelector('.hz-Listing-sellerName, .hz-Listing-sellerName-new'); - if (carSellerElement) { - sellerName = carSellerElement.textContent.trim(); - sellerElement = carSellerElement; - isCarAdvert = true; - } else { - const sellerNameEl = listing.querySelector('.hz-Listing-seller-name, .hz-Listing-seller-name-new'); - if (sellerNameEl) { - sellerName = sellerNameEl.textContent.trim(); - const sellerLink = sellerNameEl.closest('a'); - sellerElement = sellerLink ? (sellerLink.parentElement || sellerLink) : sellerNameEl; - isCarAdvert = false; - } - } - - if (sellerName) { - listing.dataset.cleanplaatsSellerName = sellerName; - } - - if (!sellerName) return; - - if (CLEANPLAATS.settings.blacklistedSellers.includes(sellerName)) { - listing.setAttribute('data-cleanplaats-hidden', 'true'); - listing.style.display = 'none'; - return; - } - - if (window.innerWidth < 700) { - if (oldTopRight && oldTopRight.dataset.cleanplaatsSellerName === sellerName) { - return; - } - - if (oldBtn) oldBtn.remove(); - if (oldInlineBtn) oldInlineBtn.remove(); - if (oldTopRight) oldTopRight.remove(); - - const topRow = document.createElement('div'); - topRow.className = 'cleanplaats-seller-topright-mobile'; - topRow.dataset.cleanplaatsSellerName = sellerName; - topRow.innerHTML = DOMPurify.sanitize(` - ${sellerName} - - `); - const content = listing.querySelector('.hz-Listing-listview-content, .hz-Listing-listview-content-new'); - if (content && content.firstChild) { - content.insertBefore(topRow, content.firstChild); - } else if (content) { - content.appendChild(topRow); - } - topRow.querySelector('.cleanplaats-blacklist-btn-mobile').onclick = (e) => { - e.preventDefault(); - e.stopPropagation(); - if (confirm(`Wil je alle advertenties van ${sellerName} verbergen?`)) { - addSellerToBlacklist(sellerName); - } - }; - return; - } - - if (!sellerElement) return; - - if (oldBtn) oldBtn.remove(); - if (oldTopRight) oldTopRight.remove(); - if (oldInlineBtn) oldInlineBtn.remove(); - - if (isCarAdvert) { - carSellerElement.style.display = 'inline-flex'; - carSellerElement.style.alignItems = 'center'; - carSellerElement.style.gap = '8px'; - - const btn = document.createElement('button'); - btn.className = 'cleanplaats-blacklist-btn cleanplaats-inline-btn'; - btn.textContent = panelText.hideSellerButton; - btn.type = 'button'; - btn.tabIndex = 0; - btn.style.marginLeft = '8px'; - - btn.addEventListener('click', (e) => { - e.preventDefault(); - e.stopPropagation(); - addSellerToBlacklist(sellerName); - }); - - carSellerElement.appendChild(btn); - } else { - const btnRow = document.createElement('div'); - btnRow.className = 'cleanplaats-blacklist-btn-row'; - - const btn = document.createElement('button'); - btn.className = 'cleanplaats-blacklist-btn'; - btn.textContent = panelText.hideSellerButton; - btn.type = 'button'; - btn.tabIndex = 0; - - btn.addEventListener('click', (e) => { - e.preventDefault(); - e.stopPropagation(); - addSellerToBlacklist(sellerName); - }); - - btnRow.appendChild(btn); - - if (sellerElement.parentNode) { - sellerElement.parentNode.insertBefore(btnRow, sellerElement.nextSibling); - } - } - }); - - injectProductDetailBlacklistButton(); -} - -function showBlacklistModal() { - const modal = document.getElementById('cleanplaats-blacklist-modal'); - if (!modal) return; - const panelText = getPanelLocaleText(); - - const termsModal = document.getElementById('cleanplaats-terms-modal'); - if (termsModal) { - termsModal.style.display = 'none'; - } - - if (modal.style.display === 'block') { - modal.style.display = 'none'; - return; - } - - const sellers = CLEANPLAATS.settings.blacklistedSellers; - - modal.innerHTML = DOMPurify.sanitize(` -
    -

    ${panelText.sellersModalTitle}

    -
      - ${sellers.length === 0 ? `
    • ${panelText.sellersEmpty}
    • ` : sellers.map(seller => ` -
    • - ${seller} - -
    • - `).join('')} -
    -
    - - -
    -
    ${panelText.sellerInputHelp}
    - -
    - `); - modal.style.display = 'block'; - - document.getElementById('cleanplaats-blacklist-close').onclick = () => { - modal.style.display = 'none'; - }; - - const addSeller = () => { - const input = document.getElementById('cleanplaats-seller-input'); - const sellerNames = input.value - .split(/[;,]+/) - .map(name => name.trim()) - .filter(Boolean); - - if (sellerNames.length === 0) return; - - addSellersToBlacklist(sellerNames); - input.value = ''; - }; - - document.getElementById('cleanplaats-add-seller').onclick = addSeller; - - document.getElementById('cleanplaats-seller-input').addEventListener('keydown', (e) => { - if (e.key === 'Enter') { - e.preventDefault(); - addSeller(); - } - }); - - setupBlacklistModalButtons(); -} - -function updateBlacklistModal() { - const modal = document.getElementById('cleanplaats-blacklist-modal'); - if (!modal || modal.style.display === 'none') return; - const panelText = getPanelLocaleText(); - - const sellers = CLEANPLAATS.settings.blacklistedSellers; - const list = document.getElementById('cleanplaats-blacklist-list'); - - if (list) { - list.innerHTML = DOMPurify.sanitize( - sellers.length === 0 - ? `
  • ${panelText.sellersEmpty}
  • ` - : sellers.map(seller => ` -
  • - ${seller} - -
  • - `).join('') - ); - - setupBlacklistModalButtons(); - } -} - -function setupBlacklistModalButtons() { - const panelText = getPanelLocaleText(); - document.querySelectorAll('.cleanplaats-unblacklist-btn').forEach(btn => { - btn.onmouseover = () => { - btn.style.background = 'green'; - btn.textContent = panelText.unhideButton; - }; - btn.onmouseout = () => { - btn.style.background = '#ff4d4d'; - btn.textContent = panelText.hiddenButton; - }; - btn.style.background = '#ff4d4d'; - btn.style.color = 'white'; - btn.onclick = () => { - const sellerName = btn.dataset.seller; - showUnblacklistToast(sellerName); - removeSellerFromBlacklist(sellerName); - }; - }); -} diff --git a/content/cleanup.js b/content/cleanup.js deleted file mode 100644 index 021602e..0000000 --- a/content/cleanup.js +++ /dev/null @@ -1,524 +0,0 @@ -/** - * Content-script cleanup and filtering routines. - */ - -function getListingTitleElement(container) { - if (!(container instanceof Element)) return null; - - return container.querySelector([ - '.hz-StructuredListing-title', - '.hz-Listing-title', - '.hz-Listing-group--title-description', - '.hz-StructuredListing-body', - '[class*="ListingTitle_hz-Listing-title"]', - '[class*="ListingTitle_hz-StructuredListing-title"]' - ].join(', ')); -} - -function getListingTitleText(container) { - const titleElement = getListingTitleElement(container); - return titleElement?.textContent?.trim().toLowerCase() || ''; -} - -function updateStatsDisplay() { - if (!CLEANPLAATS.featureFlags.showStats) return; - - const stats = CLEANPLAATS.stats; - - updateElementText('cleanplaats-topads-count', stats.topAdsRemoved); - updateElementText('cleanplaats-dagtoppers-count', stats.dagtoppersRemoved); - updateElementText('cleanplaats-promoted-count', stats.promotedListingsRemoved); - updateElementText('cleanplaats-stickers-count', stats.opvalStickersRemoved); - updateElementText('cleanplaats-otherads-count', stats.otherAdsRemoved); - - const total = stats.topAdsRemoved + stats.dagtoppersRemoved + stats.promotedListingsRemoved + stats.opvalStickersRemoved + stats.otherAdsRemoved; - stats.totalRemoved = total; - - updateElementText('cleanplaats-total-count-stats', total); - // Header total-removed badge disabled for now. - // updateElementText('cleanplaats-total-count', total); -} - -function updateElementText(id, value) { - const element = document.getElementById(id); - if (element) { - element.textContent = value; - } -} - -function performInitialCleanup() { - try { - performCleanup(); - } catch (error) { - console.error('Cleanplaats: Initial cleanup failed', error); - } -} - -function performCleanup() { - removeAllAds(); - removePersistentGoogleAds(); - if (CLEANPLAATS.settings.removeFavoriteRelatedAds) removeSimilarAdsSections(); - removeNonFeatureBuyerBanner(); - - if (CLEANPLAATS.settings.removeTopAds) removeTopAdvertisements(); - if (CLEANPLAATS.settings.removeDagtoppers) removeDagtoppers(); - if (CLEANPLAATS.settings.removePromotedListings) removePromotedListings(); - if (CLEANPLAATS.settings.removeOpvalStickers) removeOpvalStickerListings(); - if (CLEANPLAATS.settings.removeReservedListings) removeReservedListings(); - - document.querySelectorAll('.hz-Listing').forEach(listing => { - const sellerNameEl = listing.querySelector('.hz-Listing-seller-name, .hz-Listing-seller-name-new, .hz-Listing-seller-link, .hz-Listing-sellerName, .hz-Listing-sellerName-new'); - if (!sellerNameEl) return; - const sellerName = sellerNameEl.textContent.trim(); - if (CLEANPLAATS.settings.blacklistedSellers.includes(sellerName)) { - listing.setAttribute('data-cleanplaats-hidden', 'true'); - listing.style.display = 'none'; - } - }); - - document.querySelectorAll('.hz-Link').forEach(link => { - const title = getListingTitleText(link); - if (!title) return; - CLEANPLAATS.settings.blacklistedTerms.forEach(term => { - if (title.includes(term.toLowerCase())) { - const listingEl = link.closest('.hz-StructuredListing') || link; - listingEl.setAttribute('data-cleanplaats-hidden', 'true'); - listingEl.style.display = 'none'; - } - }); - }); - - document.querySelectorAll('.hz-Listing').forEach(listing => { - const title = getListingTitleText(listing); - if (!title) return; - CLEANPLAATS.settings.blacklistedTerms.forEach(term => { - if (title.includes(term.toLowerCase())) { - listing.setAttribute('data-cleanplaats-hidden', 'true'); - listing.style.display = 'none'; - } - }); - }); - - updateStatsDisplay(); -} - -function resetPreviousChanges() { - resetStats(); - - document.querySelectorAll('[data-cleanplaats-hidden]').forEach(el => { - try { - el.style.cssText = el.getAttribute('data-original-style') || ''; - el.removeAttribute('data-cleanplaats-hidden'); - el.removeAttribute('data-original-style'); - } catch (error) { - console.error('Cleanplaats: Error restoring element', error); - } - }); -} - -function removeTopAdvertisements() { - const is2dehands = location.hostname.includes('2dehands.be'); - const is2ememain = location.hostname.includes('2ememain.be'); - const labels = is2ememain ? ['Pub au top'] : is2dehands ? ['Topzoekertje', 'Topadvertentie'] : ['Topadvertentie']; - const priorityBadgeSelector = [ - '.hz-Listing-priority span', - '.hz-Listing-priority-new', - '[class*="hz-Listing-priority-new"]' - ].join(', '); - const removedCount = labels.reduce((total, label) => { - return total + findAndHideListings(priorityBadgeSelector, label); - }, 0); - CLEANPLAATS.stats.topAdsRemoved += removedCount; -} - -function removeDagtoppers() { - const priorityBadgeSelector = [ - '.hz-Listing-priority span', - '.hz-Listing-priority-new', - '[class*="hz-Listing-priority-new"]' - ].join(', '); - const removedCount = findAndHideListings(priorityBadgeSelector, 'Dagtopper'); - CLEANPLAATS.stats.dagtoppersRemoved += removedCount; -} - -function removePromotedListings() { - let count = 0; - const visitWebsiteLabels = location.hostname.includes('2ememain.be') - ? ['Visiter le site internet'] - : ['Bezoek website']; - - const selectors = [ - '.hz-Listing-seller-link', - '.hz-Listing-seller-external-link' - ]; - - selectors.forEach(selector => { - document.querySelectorAll(selector).forEach(sellerLink => { - try { - const hasVisitWebsite = Array.from(sellerLink.querySelectorAll('span, a')) - .some(el => visitWebsiteLabels.includes(el.textContent?.trim())); - - if (hasVisitWebsite) { - const listing = sellerLink.closest('.hz-Listing'); - if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { - count++; - } - } - } catch (error) { - console.error('Cleanplaats: Error processing promoted listing', error); - } - }); - }); - - document.querySelectorAll('.hz-StructuredListing').forEach(listing => { - try { - if (listing.hasAttribute('data-cleanplaats-hidden') || !isHomepagePartnerListing(listing)) { - return; - } - - if (hideElement(listing)) { - count++; - } - } catch (error) { - console.error('Cleanplaats: Error processing homepage partner listing', error); - } - }); - - CLEANPLAATS.stats.promotedListingsRemoved += count; -} - -function isHomepagePartnerListing(listing) { - const hrefs = Array.from(listing.querySelectorAll('a[href]')) - .map(link => link.href || link.getAttribute('href') || '') - .filter(Boolean); - - return hrefs.some(href => /\/a\d+(?:[-/?]|$)/i.test(href)); -} - -function removeOpvalStickerListings() { - let count = 0; - const stickerSelectors = [ - '.hz-Listing-Opvalsticker-wrapper, .hz-Listing-Opvalsticker-wrapper-new', - '[data-testid="listing-opval-sticker"]' - ]; - - stickerSelectors.forEach(selector => { - document.querySelectorAll(selector).forEach(sticker => { - try { - const listing = sticker.closest('.hz-Listing'); - if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { - count++; - } - } catch (error) { - console.error('Cleanplaats: Error processing sticker listing', error); - } - }); - }); - - CLEANPLAATS.stats.opvalStickersRemoved += count; -} - -function removeReservedListings() { - const count = findAndHideListings('.hz-Listing-price, [class*="ListingPrice_hz-Listing-price"]', [ - 'gereserveerd', - 'réservé' - ]); - CLEANPLAATS.stats.otherAdsRemoved += count; -} - -function removeAllAds() { - let count = 0; - const marktplaatsMarketingBannerSelector = '.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]'; - const marktplaatsMarketingBannerWrapperSelector = 'div[role="button"][tabindex]'; - const getMarktplaatsMarketingBannerContainer = element => { - if (!(element instanceof Element)) { - return null; - } - - const bannerCard = element.closest('.MpCard-mpCardBanner'); - if (bannerCard) { - const bannerWrapper = bannerCard.closest(marktplaatsMarketingBannerWrapperSelector); - if (bannerWrapper?.querySelector(marktplaatsMarketingBannerSelector)) { - return bannerWrapper; - } - - return bannerCard; - } - - const bannerWrapper = element.closest(marktplaatsMarketingBannerWrapperSelector); - if (bannerWrapper?.querySelector(marktplaatsMarketingBannerSelector)) { - return bannerWrapper; - } - - return element.closest('img[alt="Marktplaats Marketing Banner"]'); - }; - const isMarktplaatsSponsoredNotice = element => { - if (!element) return false; - - const text = (element.textContent || '').replace(/\s+/g, ' ').trim().toLowerCase(); - return text.includes('de volgorde van de resultaten wordt mede bepaald door betaalde opvalmogelijkheden'); - }; - const isMarktplaatsMarketingBanner = element => { - if (!element) return false; - - if ( - element.matches?.('.MpCard-mpCardBanner') || - element.querySelector?.(marktplaatsMarketingBannerSelector) - ) { - return true; - } - - const bannerImage = element.querySelector?.('img[alt="Marktplaats Marketing Banner"]'); - return Boolean(bannerImage); - }; - - function safeHide(selector) { - try { - const elements = document.querySelectorAll(selector); - elements.forEach(el => { - if (!el.hasAttribute('data-cleanplaats-hidden') && hideElement(el)) { - count++; - } - - const parentLi = el.closest('li.bannerContainerLoading'); - if (parentLi && !parentLi.hasAttribute('data-cleanplaats-hidden')) { - hideElement(parentLi); - } - - const feedBanner = el.closest('.hz-FeedBannerBlock, .Banners-bannerFeedItem'); - if (feedBanner && !feedBanner.hasAttribute('data-cleanplaats-hidden')) { - hideElement(feedBanner); - } - - const topBanner = el.closest('.BannerTop-root, #top-banner-root'); - if (topBanner && !topBanner.hasAttribute('data-cleanplaats-hidden')) { - hideElement(topBanner); - } - }); - } catch (error) { - console.log('Cleanplaats: Error hiding ads', error); - } - } - - document.querySelectorAll('.hz-Listing-imageOverlayLabel').forEach(overlay => { - if (overlay.textContent.trim() === 'Homepagina-advertentie') { - const link = overlay.closest('.hz-Link.hz-Link--block'); - if (link && !link.hasAttribute('data-cleanplaats-hidden')) { - hideElement(link); - count++; - } - } - }); - - const adSelectors = [ - '#adsense-root', - '#adsense-container', - '#adsense-container-bottom-lazy', - '#similar-items-root', - '.AdmarktSimilarItemsContainer', - '.AdmarktSimilarItems-root', - '.AdmarktSimilarItems-headerTitle', - '#adBlock', - '.ndfc-wrapper[data-testid="ndfc-generic-text"]', - '[data-testid="ndfc-close"]', - '.MpCard-mpCardBanner', - 'div[role="button"][tabindex] > .MpCard-mpCardBanner', - 'img[alt="Marktplaats Marketing Banner"]', - '.hz-Banner', - '.hz-Banner--fluid', - '.BannerTop-root', - '#banner-rubrieks-dt', - '#banner-top-dt', - '#banner-top-dt-container', - '#top-banner-root', - '[data-google-query-id]', - '[id*="google_ads_iframe"]', - '[id*="google_ads_top_frame"]', - '[aria-label="Advertisement"]', - '[title="3rd party ad content"]', - '.i_.div', - '[data-ad-container]', - '[data-bg="true"]', - '[class*="adsbygoogle"]', - 'ins.adsbygoogle', - 'iframe[src*="googleads"]', - 'iframe[src*="doubleclick"]', - '[id*="div-gpt-ad"]', - '.hz-Listings__container--cas[data-testid="BottomBlockLazyListings"]', - '[class*="creative"]', - '#google_ads_top_frame', - '.creative', - 'li.bannerContainerLoading', - '.bannerContainerLoading', - '.bannerContainerLoading .hz-Banner', - '.bannerContainerLoading .hz-Banner--fluid' - ]; - - adSelectors.forEach(selector => { - safeHide(selector); - }); - - document.querySelectorAll('.ndfc-wrapper, [data-testid="ndfc-generic-text"]').forEach(notice => { - if (isMarktplaatsSponsoredNotice(notice) && hideElement(notice)) { - count++; - } - }); - - document.querySelectorAll('.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]').forEach(banner => { - const bannerCard = getMarktplaatsMarketingBannerContainer(banner) || banner; - if (isMarktplaatsMarketingBanner(bannerCard) && hideElement(bannerCard)) { - count++; - } - - const bannerWrapper = bannerCard.parentElement; - if ( - bannerWrapper instanceof Element && - bannerWrapper !== bannerCard && - bannerWrapper.childElementCount === 1 && - !bannerWrapper.hasAttribute('data-cleanplaats-hidden') - ) { - hideElement(bannerWrapper); - } - }); - - CLEANPLAATS.stats.otherAdsRemoved += count; -} - -function removePersistentGoogleAds() { - let count = 0; - - document.querySelectorAll('#adsense-root, .creative, div[id^="google_ads_iframe"], div[data-google-query-id], div[aria-label="Advertisement"]').forEach(ad => { - try { - const gridItem = ad.closest('.hz-Link.hz-Link--block'); - if (gridItem && gridItem.parentNode) { - gridItem.parentNode.removeChild(gridItem); - count++; - return; - } - if (ad.parentNode) { - ad.parentNode.removeChild(ad); - count++; - } - } catch (error) { - console.error('Cleanplaats: Error removing persistent ad', error); - } - }); - - document.querySelectorAll('#banner-right-container').forEach(banner => { - if (banner.parentNode) { - banner.parentNode.removeChild(banner); - count++; - } - }); - - document.querySelectorAll('#banner-top-dt-container').forEach(container => { - if (container.parentNode) { - container.parentNode.removeChild(container); - count++; - } - }); - - document.querySelectorAll('.BannerTop-root').forEach(banner => { - const hasAdContent = banner.querySelector( - '.hz-Banner, .hz-Banner--fluid, iframe, [data-google-query-id], [id*="google_ads_iframe"], ins.adsbygoogle' - ); - if (!hasAdContent && banner.parentNode) { - banner.parentNode.removeChild(banner); - count++; - } - }); - - document.querySelectorAll('#top-banner-root').forEach(container => { - const hasVisibleContent = Array.from(container.children).some(child => child.offsetParent !== null); - if (!hasVisibleContent && container.parentNode) { - container.parentNode.removeChild(container); - count++; - } - }); - - document.querySelectorAll('.hz-FeedBannerBlock, .Banners-bannerFeedItem').forEach(banner => { - if ( - banner.childElementCount === 0 || - Array.from(banner.children).every(child => child.offsetParent === null) - ) { - if (banner.parentNode) { - banner.parentNode.removeChild(banner); - count++; - } - } - }); - - CLEANPLAATS.stats.otherAdsRemoved += count; -} - -function removeSimilarAdsSections() { - let count = 0; - - document.querySelectorAll('.SimilarAdsList-related-ads-section').forEach(section => { - if (hideElement(section)) { - count++; - } - }); - - CLEANPLAATS.stats.otherAdsRemoved += count; -} - -function removeNonFeatureBuyerBanner() { - let count = 0; - - document.querySelectorAll( - '#notifications-root, .NonFeatureBuyerBanner-root, .feature-banner[data-testid="50-percent-off-banner"]' - ).forEach(element => { - const banner = element.id === 'notifications-root' - ? element - : element.closest('#notifications-root') - || element.closest('.feature-banner[data-testid="50-percent-off-banner"]') - || element; - - if (hideElement(banner)) { - count++; - } - }); - - CLEANPLAATS.stats.otherAdsRemoved += count; -} - -function findAndHideListings(selector, textContent) { - let count = 0; - const expectedTexts = Array.isArray(textContent) - ? textContent.map(text => text.trim().toLowerCase()) - : [textContent.trim().toLowerCase()]; - - try { - document.querySelectorAll(selector).forEach(el => { - const elementText = el.textContent?.trim().toLowerCase(); - if (elementText && expectedTexts.includes(elementText)) { - const listing = el.closest('.hz-Listing'); - if (listing && !listing.hasAttribute('data-cleanplaats-hidden') && hideElement(listing)) { - count++; - } - } - }); - } catch (error) { - console.error(`Cleanplaats: Error finding "${textContent}" listings`, error); - } - - return count; -} - -function hideElement(element) { - if (!element || element.hasAttribute('data-cleanplaats-hidden')) { - return false; - } - - try { - element.setAttribute('data-original-style', element.style.cssText); - element.setAttribute('data-cleanplaats-hidden', 'true'); - element.style.display = 'none !important'; - - return true; - } catch (error) { - console.error('Cleanplaats: Error hiding element', error); - return false; - } -} diff --git a/content/init.js b/content/init.js deleted file mode 100644 index cc336ea..0000000 --- a/content/init.js +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Content-script initialization and background wake-up. - */ - -function wakeUpBackground() { - try { - browserAPI.runtime.sendMessage({ action: 'keepAlive' }, (response) => { - if (browserAPI.runtime.lastError) { - console.log('Cleanplaats: Background script not responding, this is normal if it was sleeping'); - setTimeout(() => { - try { - browserAPI.runtime.sendMessage({ action: 'forceRefresh' }, () => { - if (!browserAPI.runtime.lastError) { - console.log('Cleanplaats: Background script force-refreshed successfully'); - } - }); - } catch (e) { - console.log('Cleanplaats: Force refresh also failed:', e); - } - }, 100); - } else { - console.log('Cleanplaats: Background script is awake', response); - } - }); - } catch (error) { - console.log('Cleanplaats: Could not wake background script:', error); - } -} - -function setupPeriodicWakeUp() { - if (typeof browser !== 'undefined') { - console.log('Cleanplaats: Setting up periodic background wake-up for Firefox'); - - setInterval(() => { - if (isSearchResultsPage()) { - wakeUpBackground(); - } - }, 30000); - - ['click', 'scroll', 'keydown'].forEach(eventType => { - document.addEventListener(eventType, () => { - if (isSearchResultsPage()) { - clearTimeout(window.cleanplaatsWakeUpTimeout); - window.cleanplaatsWakeUpTimeout = setTimeout(wakeUpBackground, 1000); - } - }, { passive: true }); - }); - } -} - -function checkFirstRun() { - return new Promise(resolve => { - browserAPI.storage.local.get('firstRun', (items) => { - if (browserAPI.runtime.lastError) { - console.error('Cleanplaats: Error checking first run:', browserAPI.runtime.lastError); - resolve(true); - return; - } - - let isFirstRun; - if (items.firstRun === undefined) { - isFirstRun = true; - } else { - isFirstRun = items.firstRun; - } - - if (isFirstRun) { - browserAPI.storage.local.set({ firstRun: false }, () => { - if (browserAPI.runtime.lastError) { - console.error('Cleanplaats: Error setting first run flag:', browserAPI.runtime.lastError); - } - resolve(isFirstRun); - }); - } else { - resolve(isFirstRun); - } - }); - }); -} - -function getExtensionVersion() { - try { - if (browserAPI?.runtime?.getManifest) { - const manifest = browserAPI.runtime.getManifest(); - if (manifest && typeof manifest.version === 'string') { - return manifest.version; - } - } - } catch (error) { - console.error('Cleanplaats: Failed to read extension version', error); - } - - return ''; -} - -function initCleanplaats() { - console.log('Cleanplaats: Initializing...'); - - const currentVersion = getExtensionVersion(); - - wakeUpBackground(); - setupPeriodicWakeUp(); - - loadSettings() - .then(() => { - registerSettingsStorageSync(); - applyDarkModeToDocument(CLEANPLAATS.settings.darkMode); - - checkFirstRun() - .then(isFirstRun => { - CLEANPLAATS.featureFlags.firstRun = isFirstRun; - - createControlPanel(); - setupWebchatCollisionAvoidance(); - setupAllObservers(); - applySettings(); - scheduleSellerAgeWarningCheck({ resetState: true }); - showOnboarding(currentVersion); - - const tryCleanup = () => { - if (document.querySelector('.hz-Listing') || document.querySelector('#adsense-container')) { - performInitialCleanup(); - injectBlacklistButtons(); - setTimeout(checkForEmptyPage, 300); - setTimeout(updateStatsDisplay, 500); - - let attempts = 0; - const maxAttempts = 10; - const interval = setInterval(() => { - removePersistentGoogleAds(); - - document.querySelectorAll('#banner-top-dt').forEach(banner => { - if (banner.parentNode) { - banner.parentNode.removeChild(banner); - } - }); - - document.body.offsetHeight; - attempts++; - if ( - (!document.querySelector('#banner-right-container') && !document.querySelector('#banner-top-dt')) || - attempts >= maxAttempts - ) { - clearInterval(interval); - } - }, 80); - } else { - setTimeout(tryCleanup, 60); - } - }; - tryCleanup(); - }); - }) - .catch(error => { - console.error('Cleanplaats: Initialization failed', error); - }); -} diff --git a/content/notifications.js b/content/notifications.js deleted file mode 100644 index 51bd569..0000000 --- a/content/notifications.js +++ /dev/null @@ -1,513 +0,0 @@ -/** - * Content-script notifications, onboarding, and lightweight feedback UI. - */ - -function showFirstTimeOnboarding() { - const onboarding = document.createElement('div'); - onboarding.className = 'cleanplaats-onboarding'; - onboarding.id = 'cleanplaats-onboarding'; - - onboarding.innerHTML = DOMPurify.sanitize(` -
    -
    -

    🎉 Welkom bij Cleanplaats!

    - -
    -
    -
    - 1 -

    Cleanplaats verwijdert automatisch advertenties en promotionele content

    -
    -
    - 2 -

    Gebruik het configuratiescherm rechtsonder om de filtering aan te passen. Je opent en sluit het paneel via het pijltje bovenin.

    -
    -
    - 3 -

    Bekijk statistieken over verwijderde items in het configuratiescherm

    -
    -
    - -
    - `); - - document.body.appendChild(onboarding); - - ['cleanplaats-onboarding-close', 'cleanplaats-onboarding-got-it'].forEach(id => { - document.getElementById(id)?.addEventListener('click', () => { - onboarding.classList.add('cleanplaats-fade-out'); - setTimeout(() => onboarding.remove(), 300); - }); - }); - - setTimeout(() => { - if (onboarding.parentNode) { - onboarding.classList.add('cleanplaats-fade-out'); - setTimeout(() => onboarding.remove(), 300); - } - }, 15000); -} - -function shouldShowUpdatePopup(currentVersion) { - if (!currentVersion) { - return false; - } - - return CLEANPLAATS.panelState.lastSeenVersion !== currentVersion; -} - -function showUpdatePopup(version) { - const existingPopup = document.getElementById('cleanplaats-update-popup'); - if (existingPopup) { - existingPopup.remove(); - } - - const updateContent = CLEANPLAATS_UPDATE_NOTES[version] || { - intro: 'Cleanplaats heeft een nieuwe update gekregen met verbeteringen en onderhoud aan de extensie.', - highlights: [ - 'Diverse verbeteringen en fixes voor de huidige resultaatpagina’s.', - 'Kleine verfijningen aan het paneel en de filtering.', - 'Onderhoudswerk om Cleanplaats stabiel te houden op nieuwe sitewijzigingen.' - ], - note: 'Zie je een probleem of heb je een idee? Gebruik de GitHub-link in het paneel.' - }; - - const popup = document.createElement('div'); - popup.className = 'cleanplaats-info-overlay cleanplaats-info-overlay--visible'; - popup.id = 'cleanplaats-update-popup'; - popup.setAttribute('role', 'dialog'); - popup.setAttribute('aria-modal', 'true'); - popup.setAttribute('aria-hidden', 'false'); - - const stepsMarkup = updateContent.highlights - .map(step => `
  • ${step}
  • `) - .join(''); - - popup.innerHTML = DOMPurify.sanitize(` -
    -
    - - Nieuwe update -

    Wat is er nieuw? (${version})

    -

    ${updateContent.intro}

    -
    -
      ${stepsMarkup}
    -

    ${updateContent.note}

    - -
    - `); - - const closePopup = () => { - popup.classList.remove('cleanplaats-info-overlay--visible'); - popup.setAttribute('aria-hidden', 'true'); - setTimeout(() => popup.remove(), 200); - document.removeEventListener('keydown', handleKeydown); - }; - - const handleKeydown = (event) => { - if (event.key === 'Escape') { - closePopup(); - } - }; - - popup.addEventListener('click', (event) => { - if (event.target === popup) { - closePopup(); - } - }); - - document.addEventListener('keydown', handleKeydown); - document.body.appendChild(popup); - const popupLogo = document.getElementById('cleanplaats-update-popup-logo'); - if (popupLogo) { - popupLogo.src = browserAPI.runtime.getURL('icons/icon128.png'); - } - document.getElementById('cleanplaats-update-popup-close')?.addEventListener('click', () => { - closePopup(); - showBubbleNotification(`Veel plezier met ${version}`); - }); -} - -function showWelcomeToast() { - if (CLEANPLAATS.panelState.hasShownWelcomeToast || - location.pathname !== '/' || - location.hostname !== 'www.marktplaats.nl') { - return; - } - - const toast = document.createElement('div'); - toast.className = 'cleanplaats-toast'; - toast.id = 'cleanplaats-toast'; - - const totalRemoved = CLEANPLAATS.stats.totalRemoved; - const message = totalRemoved > 0 - ? `Cleanplaats is actief (${totalRemoved} items verwijderd)` - : 'Cleanplaats is actief'; - - toast.innerHTML = DOMPurify.sanitize(` -
    - - ${message} -
    - `); - - document.body.appendChild(toast); - setTimeout(() => toast.classList.add('visible'), 100); - setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => toast.remove(), 300); - }, 3000); - - CLEANPLAATS.panelState.hasShownWelcomeToast = true; -} - -function showOnboarding(currentVersion = '') { - if (CLEANPLAATS.featureFlags.firstRun) { - if (currentVersion) { - CLEANPLAATS.panelState.lastSeenVersion = currentVersion; - saveSettings().catch(error => { - console.error('Cleanplaats: Failed to store initial version state', error); - }); - } - showFirstTimeOnboarding(); - } else if (shouldShowUpdatePopup(currentVersion)) { - CLEANPLAATS.panelState.lastSeenVersion = currentVersion; - saveSettings().catch(error => { - console.error('Cleanplaats: Failed to store seen update version', error); - }); - showUpdatePopup(currentVersion); - } else { - showWelcomeToast(); - } -} - -function checkForEmptyPage() { - clearTimeout(notificationTimeout); - - notificationTimeout = setTimeout(() => { - performCleanup(); - - const visibleListings = document.querySelectorAll('.hz-Listing:not([data-cleanplaats-hidden])'); - const totalListings = document.querySelectorAll('.hz-Listing'); - const hiddenCount = totalListings.length - visibleListings.length; - - if (hiddenCount === 0) return; - - clearAllNotifications(); - - if (visibleListings.length === 0) { - showBubbleNotification('De pagina is leeg omdat deze helemaal uit advertenties bestond! Probeer een volgende pagina of wijzig de filters.'); - } else if (visibleListings.length < 5) { - const listingWord = visibleListings.length === 1 ? 'resultaat' : 'resultaten'; - const removedWord = hiddenCount === 1 ? 'advertentie' : 'advertenties'; - showBubbleNotification(`Er ${visibleListings.length === 1 ? 'is' : 'zijn'} nog ${visibleListings.length} ${listingWord} over nadat Cleanplaats ${hiddenCount} ${removedWord} heeft verwijderd.`); - } - }, 1000); -} - -function showBubbleNotification(message) { - let toast = document.getElementById('cleanplaats-bubble-notification'); - - if (toast) { - const messageElement = toast.querySelector('.cleanplaats-toast-message span'); - if (messageElement) { - messageElement.textContent = message; - } - } else { - toast = document.createElement('div'); - toast.className = 'cleanplaats-blacklist-toast'; - toast.id = 'cleanplaats-bubble-notification'; - - toast.innerHTML = DOMPurify.sanitize(` -
    - -
    - ${message} -
    -
    - `); - - document.body.appendChild(toast); - setTimeout(() => requestAnimationFrame(() => toast.classList.add('visible')), 0); - } - - if (toast.timeoutId) { - clearTimeout(toast.timeoutId); - } - - toast.timeoutId = setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => { - if (toast) { - toast.remove(); - } - }, 300); - }, 5000); -} - -function clearSellerAgeWarningToast() { - const toast = document.getElementById('cleanplaats-seller-age-warning-toast'); - if (toast) { - toast.classList.remove('visible'); - setTimeout(() => { - toast.remove(); - }, 300); - } -} - -function getSellerAgeWarningThresholdLabel() { - const panelText = getPanelLocaleText(); - const value = Math.max(1, parseInt(CLEANPLAATS.settings.sellerAgeWarningThresholdValue, 10) || 1); - const unit = CLEANPLAATS.settings.sellerAgeWarningThresholdUnit; - const unitLabel = panelText.sellerAgeWarningThresholdUnits[unit] || panelText.sellerAgeWarningThresholdUnits.months; - - return `${value} ${unitLabel}`; -} - -function getSellerAgeInfoFromPage() { - const sellerRows = Array.from(document.querySelectorAll('.SellerInfoSmall-root .SellerInfoSmall-row')); - const sellerAgeRow = sellerRows.find(row => parseSellerAgeToDays(row.textContent) !== null); - const sellerNameElement = document.querySelector('.SellerInfoSmall-root .SellerInfoSmall-name a, .SellerInfoSmall-root .SellerInfoSmall-name'); - const sellerAgeText = sellerAgeRow?.textContent?.trim() || ''; - const sellerName = sellerNameElement?.textContent?.trim() || 'Deze verkoper'; - const sellerAgeDays = parseSellerAgeToDays(sellerAgeText); - - if (!sellerAgeText || sellerAgeDays === null) { - return null; - } - - return { - sellerName, - sellerAgeText, - sellerAgeDays - }; -} - -function showSellerAgeWarningToast({ sellerName, sellerAgeText }) { - const panelText = getPanelLocaleText(); - const thresholdLabel = getSellerAgeWarningThresholdLabel(); - - clearSellerAgeWarningToast(); - - const toast = document.createElement('div'); - toast.className = 'cleanplaats-blacklist-toast cleanplaats-blacklist-toast-warning'; - toast.id = 'cleanplaats-seller-age-warning-toast'; - - toast.innerHTML = DOMPurify.sanitize(` -
    - ! -
    - ${panelText.sellerAgeWarningToastTitle} - ${panelText.sellerAgeWarningToastMessage(sellerName, sellerAgeText, thresholdLabel)} -
    -
    - `); - - document.body.appendChild(toast); - setTimeout(() => { - requestAnimationFrame(() => toast.classList.add('visible')); - }, 50); - - toast.timeoutId = setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => toast.remove(), 300); - }, 5200); -} - -function maybeShowSellerAgeWarning(options = {}) { - const force = options.force === true; - - if (!isProductDetailPage()) { - clearSellerAgeWarningToast(); - return; - } - - if (!CLEANPLAATS.settings.sellerAgeWarningEnabled) { - clearSellerAgeWarningToast(); - return; - } - - const sellerAgeInfo = getSellerAgeInfoFromPage(); - if (!sellerAgeInfo) { - clearSellerAgeWarningToast(); - return; - } - - const thresholdDays = getSellerAgeWarningThresholdDays(); - if (sellerAgeInfo.sellerAgeDays >= thresholdDays) { - clearSellerAgeWarningToast(); - return; - } - - const warningKey = `${location.pathname}|${sellerAgeInfo.sellerAgeText}|${thresholdDays}`; - if (!force && CLEANPLAATS.runtime.lastSellerAgeWarningKey === warningKey) { - return; - } - - CLEANPLAATS.runtime.lastSellerAgeWarningKey = warningKey; - showSellerAgeWarningToast(sellerAgeInfo); -} - -function scheduleSellerAgeWarningCheck(options = {}) { - const force = options.force === true; - const resetState = options.resetState === true; - - if (resetState) { - CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; - } - - window.clearTimeout(CLEANPLAATS.runtime.sellerAgeCheckTimer); - CLEANPLAATS.runtime.sellerAgeCheckTimer = window.setTimeout(() => { - maybeShowSellerAgeWarning({ force }); - }, 180); -} - -function clearAllNotifications() { - const notifications = document.querySelectorAll('[id^="cleanplaats-"]'); - notifications.forEach(notification => { - if (notification.classList.contains('cleanplaats-empty-notification') || - notification.id === 'cleanplaats-loading' || - notification.id === 'cleanplaats-seller-age-warning-toast') { - notification.remove(); - } - }); - notificationVisible = false; -} - -function clearBubbleNotification() { - const toast = document.getElementById('cleanplaats-bubble-notification'); - if (toast) { - toast.classList.remove('visible'); - setTimeout(() => { - if (toast) { - toast.remove(); - } - }, 300); - } -} - -function showSettingFeedback() { - return; -} - -function showBlacklistToast(sellerName) { - const panelText = getPanelLocaleText(); - const toast = document.createElement('div'); - toast.className = 'cleanplaats-blacklist-toast'; - - toast.innerHTML = DOMPurify.sanitize(` -
    - 👁 -
    - ${sellerName} ${panelText.blacklistToastHiddenSuffix} - ${panelText.blacklistToastHint} -
    -
    - `); - - document.body.appendChild(toast); - setTimeout(() => { - requestAnimationFrame(() => toast.classList.add('visible')); - }, 50); - - setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => toast.remove(), 300); - }, 3000); -} - -function showBulkBlacklistToast(count) { - const panelText = getPanelLocaleText(); - const toast = document.createElement('div'); - toast.className = 'cleanplaats-blacklist-toast'; - - toast.innerHTML = DOMPurify.sanitize(` -
    - 👁 -
    - ${count} ${panelText.blacklistToastHiddenPluralSuffix} - ${panelText.blacklistToastHint} -
    -
    - `); - - document.body.appendChild(toast); - setTimeout(() => { - requestAnimationFrame(() => toast.classList.add('visible')); - }, 50); - - setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => toast.remove(), 300); - }, 3000); -} - -function showUnblacklistToast(sellerName) { - const panelText = getPanelLocaleText(); - const toast = document.createElement('div'); - toast.className = 'cleanplaats-blacklist-toast'; - - toast.innerHTML = DOMPurify.sanitize(` -
    - 👁 -
    - ${sellerName} ${panelText.blacklistToastShownSuffix} - ${panelText.blacklistToastShownHint} -
    -
    - `); - - document.body.appendChild(toast); - setTimeout(() => { - requestAnimationFrame(() => toast.classList.add('visible')); - }, 50); - - setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => toast.remove(), 300); - }, 3000); -} - -function showBlacklistTermToast(term) { - const panelText = getPanelLocaleText(); - const toast = document.createElement('div'); - toast.className = 'cleanplaats-blacklist-toast'; - toast.innerHTML = DOMPurify.sanitize(` -
    - 🔎 -
    - '${term}' ${panelText.blacklistToastHiddenSuffix} - ${panelText.termToastHidden(term)} -
    -
    - `); - document.body.appendChild(toast); - setTimeout(() => { requestAnimationFrame(() => toast.classList.add('visible')); }, 50); - setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => toast.remove(), 300); - }, 3000); -} - -function showUnblacklistTermToast(term) { - const panelText = getPanelLocaleText(); - const toast = document.createElement('div'); - toast.className = 'cleanplaats-blacklist-toast'; - toast.innerHTML = DOMPurify.sanitize(` -
    - 🔎 -
    - '${term}' ${panelText.blacklistToastShownSuffix} - ${panelText.termToastShown(term)} -
    -
    - `); - document.body.appendChild(toast); - setTimeout(() => { requestAnimationFrame(() => toast.classList.add('visible')); }, 50); - setTimeout(() => { - toast.classList.remove('visible'); - setTimeout(() => toast.remove(), 300); - }, 3000); -} diff --git a/content/observers.js b/content/observers.js deleted file mode 100644 index d1c6a9c..0000000 --- a/content/observers.js +++ /dev/null @@ -1,189 +0,0 @@ -/** - * Content-script observers and navigation handling. - */ - -function performCleanupAndCheckForEmptyPage() { - const existingNotification = document.getElementById('cleanplaats-empty-notification'); - if (existingNotification) { - existingNotification.remove(); - notificationVisible = false; - } - - clearBubbleNotification(); - scheduleSellerAgeWarningCheck({ resetState: true }); - - const checkContentLoaded = setInterval(() => { - if (document.querySelector('.hz-Listing') || document.querySelector('#adsense-container')) { - clearInterval(checkContentLoaded); - console.log('Cleanplaats: Running cleanup after navigation'); - performCleanup(); - injectBlacklistButtons(); - - setTimeout(checkForEmptyPage, 500); - } - }, 100); -} - -function setupObservers() { - let lastUrl = location.href; - - if (CLEANPLAATS.observers.mutation) { - CLEANPLAATS.observers.mutation.disconnect(); - } - - const observer = new MutationObserver(mutations => { - if (lastUrl !== location.href) { - console.log('Cleanplaats: URL changed from', lastUrl, 'to', location.href); - lastUrl = location.href; - CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; - performCleanupAndCheckForEmptyPage(); - } - - let shouldCleanup = false; - let shouldSyncHeaderLogo = false; - - for (const mutation of mutations) { - if (mutation.type === 'childList' && mutation.addedNodes.length) { - const listingMutationTarget = mutation.target?.nodeType === Node.ELEMENT_NODE - ? mutation.target.closest?.('.hz-Listing') - : null; - - if (window.innerWidth < 700 && listingMutationTarget) { - shouldCleanup = true; - break; - } - - for (const node of mutation.addedNodes) { - if (node.nodeType === Node.ELEMENT_NODE) { - if ( - node.classList?.contains('hz-Header-logo-desktop') || - node.classList?.contains('mp-Header-logo') || - node.querySelector?.('.hz-Header-logo-desktop, .mp-Header-logo') - ) { - shouldSyncHeaderLogo = true; - } - - if ( - node.classList?.contains('SellerInfoSmall-root') || - node.querySelector?.('.SellerInfoSmall-root') - ) { - scheduleSellerAgeWarningCheck(); - } - - if ( - node.classList?.contains('hz-Listing') || - node.querySelector?.('.hz-Listing') || - node.classList?.contains('MpCard-mpCardBanner') || - node.querySelector?.('.MpCard-mpCardBanner, img[alt="Marktplaats Marketing Banner"]') || - node.classList?.contains('SimilarAdsList-related-ads-section') || - node.querySelector?.('.SimilarAdsList-related-ads-section') || - node.id === 'notifications-root' || - node.classList?.contains('NonFeatureBuyerBanner-root') || - node.classList?.contains('feature-banner') || - node.querySelector?.('#notifications-root, .NonFeatureBuyerBanner-root, .feature-banner[data-testid="50-percent-off-banner"]') || - node.id?.includes('ad') || - node.id === 'similar-items-root' || - node.querySelector?.('#similar-items-root, .AdmarktSimilarItemsContainer, .AdmarktSimilarItems-root') || - node.classList?.contains('hz-Banner') || - node.querySelector?.('[data-google-query-id]') || - node.classList?.contains('hz-FeedBannerBlock') || - node.classList?.contains('Banners-bannerFeedItem') || - node.id === 'banner-top-dt-container' || - node.querySelector?.('#banner-top-dt, #banner-top-dt-container') - ) { - shouldCleanup = true; - break; - } - } - } - } - - if (mutation.type === 'attributes') { - const target = mutation.target; - if ( - target?.classList?.contains('SellerInfoSmall-root') - ) { - scheduleSellerAgeWarningCheck(); - } - - if ( - target?.classList?.contains('hz-FeedBannerBlock') || - target?.classList?.contains('Banners-bannerFeedItem') || - target?.classList?.contains('MpCard-mpCardBanner') || - target?.classList?.contains('SimilarAdsList-related-ads-section') || - target?.classList?.contains('NonFeatureBuyerBanner-root') || - target?.classList?.contains('feature-banner') || - target?.classList?.contains('AdmarktSimilarItemsContainer') || - target?.classList?.contains('AdmarktSimilarItems-root') || - target?.id === 'notifications-root' || - target?.id === 'similar-items-root' || - target?.id === 'banner-right-container' || - target?.id === 'banner-top-dt-container' - ) { - shouldCleanup = true; - } - } - - if (shouldCleanup) break; - } - - if (CLEANPLAATS.settings.darkMode && shouldSyncHeaderLogo) { - syncHeaderLogoForDarkMode(true); - } - - if (shouldCleanup) { - performCleanup(); - injectBlacklistButtons(); - } - }); - - observer.observe(document, { - childList: true, - subtree: true, - attributes: true, - attributeFilter: ['class', 'style', 'hidden', 'aria-hidden'] - }); - - CLEANPLAATS.observers.mutation = observer; -} - -function handleNavigation() { - wakeUpBackground(); - window.dispatchEvent(new Event('navigation')); -} - -function setupNavigationDetection() { - window.addEventListener('popstate', handleNavigation); - - const originalPushState = history.pushState; - history.pushState = function () { - originalPushState.apply(this, arguments); - }; - - const originalReplaceState = history.replaceState; - history.replaceState = function () { - originalReplaceState.apply(this, arguments); - }; - - document.addEventListener('click', (e) => { - const link = e.target.closest('a[href]'); - if (link && link.hostname === window.location.hostname) { - setTimeout(() => handleNavigation(), 100); - } - }); -} - -function setupAllObservers() { - setupObservers(); - setupNavigationDetection(); -} - -function isSearchResultsPage() { - const url = window.location.href; - return url.includes('marktplaats.nl/l/') || - url.includes('marktplaats.nl/q/') || - url.includes('2dehands.be/l/') || - url.includes('2dehands.be/q/') || - url.includes('2ememain.be/l/') || - url.includes('2ememain.be/q/'); -} diff --git a/content/shared.js b/content/shared.js deleted file mode 100644 index 774e7dd..0000000 --- a/content/shared.js +++ /dev/null @@ -1,389 +0,0 @@ -/** - * Cleanplaats shared content-script state and locale helpers. - */ - -var browserAPI = typeof browser !== 'undefined' ? browser : chrome; -var CLEANPLAATS_DARK_MODE_CLASS = 'cleanplaats-dark-mode'; -var CLEANPLAATS_TWH_SITE_CLASS = 'cleanplaats-site-twh'; -var CLEANPLAATS_THEME_STORAGE_KEY = 'cleanplaats:darkMode'; -var CLEANPLAATS_FLOATING_OFFSET_VAR = '--cleanplaats-floating-offset'; -var MARKTPLAATS_DESKTOP_LOGO_MATCH = /\/tenant--nlnl(?:\.[a-z0-9]+)?\.svg$/i; -var CLEANPLAATS_DARK_LOGO_PATH = 'icons/marktplaats-logo-darkmode.svg'; -var cleanplaatsStorageSyncRegistered = false; -var notificationTimeout; -var notificationVisible = false; - -function getReviewCTAConfig() { - const runtimeUrl = browserAPI?.runtime?.getURL ? browserAPI.runtime.getURL('') : ''; - const isFirefox = runtimeUrl.startsWith('moz-extension://') || navigator.userAgent.includes('Firefox'); - - if (isFirefox) { - return { - linkLabel: 'Firefox Add-ons', - url: 'https://addons.mozilla.org/nl/firefox/addon/cleanplaats-marktplaats-filter/reviews/' - }; - } - - return { - linkLabel: 'Chrome Web Store', - url: 'https://chromewebstore.google.com/detail/cleanplaats-marktplaats-z/peebdbeclpkljmfocjifjpjlngfpfhjp/reviews' - }; -} - -function is2ememainLocale() { - return location.hostname.includes('2ememain.be'); -} - -function is2dehandsFamilySite() { - return location.hostname.includes('2dehands.be') || location.hostname.includes('2ememain.be'); -} - -function isMarktplaatsSite() { - return location.hostname.includes('marktplaats.nl'); -} - -function isProductDetailPage() { - return /\/v\//.test(window.location.pathname); -} - -function normalizeSellerAgeText(text) { - return (text || '') - .trim() - .toLowerCase() - .replace(/\s+/g, ' '); -} - -function parseSellerAgeToDays(text) { - const normalizedText = normalizeSellerAgeText(text); - const match = normalizedText.match(/(\d+)\s+(dag|dagen|day|days|jour|jours|week|weken|maand|maanden|jaar|jaren|month|months|year|years|mois|an|ans|semaine|semaines)\b/); - - if (!match) { - return null; - } - - const amount = parseInt(match[1], 10); - const unit = match[2]; - - if (!Number.isFinite(amount) || amount < 0) { - return null; - } - - if (unit === 'dag' || unit === 'dagen' || unit === 'day' || unit === 'days' || unit === 'jour' || unit === 'jours') { - return amount; - } - - if (unit === 'week' || unit === 'weken' || unit === 'semaine' || unit === 'semaines') { - return amount * 7; - } - - if (unit === 'maand' || unit === 'maanden' || unit === 'month' || unit === 'months' || unit === 'mois') { - return amount * 30; - } - - if (unit === 'jaar' || unit === 'jaren' || unit === 'year' || unit === 'years' || unit === 'an' || unit === 'ans') { - return amount * 365; - } - - return null; -} - -function getSellerAgeWarningThresholdDays() { - const value = Math.max(1, parseInt(CLEANPLAATS.settings.sellerAgeWarningThresholdValue, 10) || 1); - const unit = CLEANPLAATS.settings.sellerAgeWarningThresholdUnit; - - if (unit === 'days') { - return value; - } - - if (unit === 'weeks') { - return value * 7; - } - - if (unit === 'years') { - return value * 365; - } - - return value * 30; -} - -function getPanelLocaleText() { - if (is2ememainLocale()) { - return { - feedbackLabel: 'Retour', - feedbackText: 'Issues GitHub', - feedbackAriaLabel: 'Ouvrir GitHub issues pour les demandes de fonctionnalité, modifications et bugs', - reviewAriaLabel: linkLabel => `Laisser un avis sur Cleanplaats sur ${linkLabel}`, - supportTitle: 'Soutenir Cleanplaats', - supportButton: 'Soutenir Cleanplaats', - optionsTitle: 'Options de filtrage', - topAdLabel: 'Pub au top', - topAdTooltip: "Masque les annonces marquées 'Pub au top'", - dagtoppersLabel: 'Tops du jour', - dagtoppersTooltip: "Supprime les annonces marquées 'Top du jour'", - promotedListingsLabel: 'Annonces professionnelles', - promotedListingsTooltip: "Masque les annonces de boutiques et d'entreprises, y compris sur la page d'accueil dans 'Pour vous' et 'Près de chez vous'", - stickersLabel: 'Autocollants promotionnels', - stickersTooltip: 'Supprime les annonces avec des autocollants promotionnels', - reservedLabel: 'Réservées', - reservedTooltip: "Masque les annonces marquées 'Réservé'", - favoriteRelatedAdsLabel: 'Annonces similaires dans les favoris', - favoriteRelatedAdsTooltip: 'Masque la liste des annonces similaires affichée dans les favoris', - sellerAgeWarningLabel: 'Alerte compte vendeur récent', - sellerAgeWarningTooltip: "Affiche un avertissement sur une page d'annonce si le compte vendeur est plus récent que votre seuil.", - sellerAgeWarningThresholdLabel: 'Avertir en dessous de', - sellerAgeWarningThresholdValueAriaLabel: 'Valeur seuil pour le compte vendeur récent', - sellerAgeWarningThresholdUnitAriaLabel: 'Unité seuil pour le compte vendeur récent', - sellerAgeWarningThresholdUnits: { - days: 'jours', - weeks: 'semaines', - months: 'mois', - years: 'ans' - }, - sellerAgeWarningToastTitle: 'Compte vendeur récent', - sellerAgeWarningToastMessage: (sellerName, sellerAgeText, thresholdLabel) => `${sellerName} est sur la plateforme depuis ${sellerAgeText}. Votre seuil est ${thresholdLabel}.`, - preferencesLabel: 'Préférences', - backLabel: '← Retour', - preferencesIntro: '', - darkModeLabel: 'Mode sombre', - darkModeTooltip: 'Active un thème sombre pour 2ememain et le panneau Cleanplaats. Expérimental: si la visibilité pose problème, désactivez-le.', - resultsPerPageLabel: 'Résultats par page :', - defaultSortLabel: 'Tri par défaut :', - sortOptions: { - standard: 'Standard', - date_new_old: 'Plus récentes', - date_old_new: 'Plus anciennes', - price_low_high: 'Prix ↑', - price_high_low: 'Prix ↓', - distance: 'Distance' - }, - statsTitle: 'Éléments supprimés', - statsTop: 'Top :', - statsDagtoppers: 'Tops du jour :', - statsBusiness: 'Professionnel :', - statsStickers: 'Autocollants :', - statsOther: 'Autres :', - statsTotal: 'Total :', - manageTerms: 'Gérer les termes masqués dans le titre', - manageSellers: 'Gérer les vendeurs masqués', - termsModalTitle: 'Termes masqués', - termsEmpty: 'Aucun terme ajouté', - hiddenButton: 'Masqué', - unhideButton: 'Afficher', - termInputPlaceholder: 'Saisissez un terme', - termInputHelp: 'Les annonces sont masquées si ce terme apparaît dans le titre.', - addButton: 'Ajouter', - closeButton: 'Fermer', - sellersModalTitle: 'Vendeurs masqués', - sellersEmpty: 'Aucun vendeur ajouté', - sellerInputPlaceholder: 'ex. Catawiki', - sellerInputHelp: 'Vous voulez ajouter plusieurs noms à la fois ? Séparez-les avec des virgules ou des points-virgules.', - hideSellerButton: 'Masquer le vendeur', - hiddenSellerButton: 'Vendeur masqué', - hideSellerButtonAriaLabel: 'Masquer ce vendeur', - blacklistToastHint: 'Gérez les vendeurs masqués via le panneau', - blacklistToastHiddenSuffix: 'masqué', - blacklistToastHiddenPluralSuffix: 'vendeurs masqués', - blacklistToastShownSuffix: "n'est plus masqué", - blacklistToastShownHint: 'Ce vendeur est à nouveau visible dans les résultats', - termToastHidden: term => `Toutes les annonces contenant le terme '${term}' sont désormais masquées.`, - termToastShown: term => `Les annonces contenant le terme '${term}' sont à nouveau affichées.` - }; - } - - return { - feedbackLabel: 'Feedback', - feedbackText: 'GitHub issues', - feedbackAriaLabel: 'Open GitHub issues voor functieverzoeken, wijzigingen en bugs', - reviewAriaLabel: linkLabel => `Laat een review achter voor Cleanplaats op ${linkLabel}`, - supportTitle: 'Steun Cleanplaats met een kleine bijdrage', - supportButton: 'Steun Cleanplaats', - optionsTitle: 'Filteropties', - topAdLabel: 'Topadvertenties', - topAdTooltip: location.hostname.includes('2dehands.be') - ? "Verbergt 'Topadvertentie' en 'Topzoekertje' listings" - : "Verwijdert betaalde 'Topadvertentie' advertenties", - dagtoppersLabel: 'Dagtoppers', - dagtoppersTooltip: "Verwijdert 'Dagtopper' advertenties", - promotedListingsLabel: 'Bedrijfsadvertenties', - promotedListingsTooltip: "Verbergt advertenties van bedrijven en winkels, zoals Catawiki, ook op de homepage bij 'Voor jou' en 'In je buurt'", - stickersLabel: 'Opvalstickers', - stickersTooltip: 'Verwijdert advertenties met opvalstickers', - reservedLabel: 'Gereserveerde', - reservedTooltip: "Verbergt advertenties die 'Gereserveerd' zijn", - favoriteRelatedAdsLabel: 'Gerelateerde advertenties bij favorieten', - favoriteRelatedAdsTooltip: 'Verbergt het blok met gerelateerde advertenties op de favorietenpagina', - sellerAgeWarningLabel: 'Waarschuwing voor nieuwe verkoperaccounts', - sellerAgeWarningTooltip: 'Toont op een advertentiepagina een waarschuwing als het verkopersaccount jonger is dan jouw ingestelde grens.', - sellerAgeWarningThresholdLabel: 'Waarschuwen onder', - sellerAgeWarningThresholdValueAriaLabel: 'Drempelwaarde voor waarschuwing nieuwe verkoperaccounts', - sellerAgeWarningThresholdUnitAriaLabel: 'Drempeleenheid voor waarschuwing nieuwe verkoperaccounts', - sellerAgeWarningThresholdUnits: { - days: 'dagen', - weeks: 'weken', - months: 'maanden', - years: 'jaar' - }, - sellerAgeWarningToastTitle: 'Nieuw verkoperaccount', - sellerAgeWarningToastMessage: (sellerName, sellerAgeText, thresholdLabel) => `${sellerName} zit pas ${sellerAgeText}. Jouw grens staat op ${thresholdLabel}. Verberg verkoper via de knop onder de naam.`, - preferencesLabel: 'Voorkeuren', - backLabel: '← Terug', - preferencesIntro: '', - darkModeLabel: 'Donkere modus', - darkModeTooltip: 'Schakelt een donker thema in voor Marktplaats en het Cleanplaats-paneel. Experimenteel: werkt meestal goed, maar zet het uit als iets slecht leesbaar is.', - resultsPerPageLabel: 'Resultaten per pagina:', - defaultSortLabel: 'Standaard sortering:', - sortOptions: { - standard: 'Standaard', - date_new_old: 'Nieuw eerst', - date_old_new: 'Oud eerst', - price_low_high: 'Prijs ↑', - price_high_low: 'Prijs ↓', - distance: 'Afstand' - }, - statsTitle: 'Verwijderde items', - statsTop: 'Top:', - statsDagtoppers: 'Dagtoppers:', - statsBusiness: 'Bedrijf:', - statsStickers: 'Stickers:', - statsOther: 'Overig:', - statsTotal: 'Totaal:', - manageTerms: 'Beheer blacklist-termen in titels', - manageSellers: 'Beheer verborgen verkopers', - termsModalTitle: 'Blacklist termen', - termsEmpty: 'Geen termen toegevoegd', - hiddenButton: 'Verborgen', - unhideButton: 'Opheffen', - termInputPlaceholder: 'Voer een term in', - termInputHelp: 'Advertenties worden verborgen als deze term in de titel voorkomt.', - addButton: 'Toevoegen', - closeButton: 'Sluiten', - sellersModalTitle: 'Verborgen verkopers', - sellersEmpty: 'Geen verkopers toegevoegd', - sellerInputPlaceholder: 'bijv. Catawiki', - sellerInputHelp: "Wil je meerdere namen tegelijk toevoegen? Scheid ze dan met komma's of puntkomma's.", - hideSellerButton: 'Verkoper verbergen', - hiddenSellerButton: 'Verkoper verborgen', - hideSellerButtonAriaLabel: 'Verberg deze verkoper', - blacklistToastHint: 'Beheer verborgen verkopers via het paneel', - blacklistToastHiddenSuffix: 'verborgen', - blacklistToastHiddenPluralSuffix: 'verkopers verborgen', - blacklistToastShownSuffix: 'niet meer verborgen', - blacklistToastShownHint: 'Deze verkoper is weer zichtbaar in de resultaten', - termToastHidden: term => `Alle advertenties met de term '${term}' zijn nu verborgen.`, - termToastShown: term => `Advertenties met de term '${term}' worden weer getoond.` - }; -} - -var CLEANPLAATS = { - settings: { - removeTopAds: true, - removeDagtoppers: true, - removePromotedListings: true, - removeOpvalStickers: true, - removeReservedListings: false, - removeFavoriteRelatedAds: false, - sellerAgeWarningEnabled: false, - sellerAgeWarningThresholdValue: 3, - sellerAgeWarningThresholdUnit: 'days', - darkMode: false, - blacklistedSellers: [], - blacklistedTerms: [], - resultsPerPage: 30, - defaultSortMode: 'standard', - sortPreferenceSource: 'cleanplaats' - }, - - stats: { - topAdsRemoved: 0, - dagtoppersRemoved: 0, - promotedListingsRemoved: 0, - opvalStickersRemoved: 0, - otherAdsRemoved: 0, - totalRemoved: 0 - }, - - observers: { - mutation: null, - ads: null, - webchat: null, - sellerAge: null - }, - - runtime: { - lastSellerAgeWarningKey: '', - sellerAgeCheckTimer: 0 - }, - - featureFlags: { - showStats: true, - autoCollapse: false, - firstRun: true - }, - - panelState: { - isCollapsed: false, - hasShownWelcomeToast: false, - lastSeenVersion: '', - activeView: 'filters' - } -}; - -var CLEANPLAATS_UPDATE_NOTES = { - '2.0.7': { - intro: 'Cleanplaats 2.0.7 voegt een extra veiligheidswaarschuwing toe op advertentiepagina’s en maakt het verbergen van verkopers duidelijker en handiger.', - highlights: [ - 'Je kunt nu een waarschuwing krijgen bij nieuwe verkoperaccounts. Deze instelling vind je onder het tabje "Voorkeuren" in het paneel, waar je zelf kiest vanaf hoeveel dagen, weken, maanden of jaren je zo’n melding wilt zien.', - 'Op advertentiepagina’s staat nu ook een knop onder de verkopernaam om in één keer alle advertenties van die verkoper te verbergen.', - 'De knop om een verkoper te verbergen is nu ook netjes vertaald op 2ememain.' - ], - note: 'Zie je een verkoper die je niet vertrouwt? Dan kun je die nu direct vanaf de advertentiepagina verbergen.' - }, - '2.0.6': { - intro: 'Cleanplaats 2.0.6 herstelt een paar dingen op Favorieten en lost een vervelende fout op die sommige filters uit beeld haalde.', - highlights: [ - 'De filters voor categorie en afstand zijn weer terug waar ze horen.', - 'Gerelateerde advertenties in Favorieten worden niet meer standaard verborgen. Via de nieuwe knop "Voorkeuren" kun je dit nu zelf aan of uit zetten.', - 'Niet-beschikbare advertenties in Favorieten zien er in dark mode nu weer duidelijk anders uit dan actieve advertenties.' - ], - note: 'Excuses voor de bug waardoor categorie en afstand ineens konden verdwijnen. Bedankt aan iedereen die dit zo snel heeft gemeld via Reddit en GitHub issues. Jullie hulp en betrokkenheid maken Cleanplaats tot het succes dat het is.' - }, - '2.0.5': { - intro: 'Cleanplaats 2.0.5 werkt Marktplaats verder bij met vooral meer dark mode-ondersteuning en een rustigere interface op meerdere pagina’s.', - highlights: [ - 'Dark mode is verder uitgebreid op onder meer "Mijn advertenties", account- en plaats advertentie-pagina’s, tabelweergaven en onderdelen rond eigen advertenties.', - 'Ook losse interface-elementen zoals "Deal gesloten?", voorstel- en leveringsmenu’s nemen nu beter het donkere thema over.', - 'Storende banners en promotieblokken zijn op meerdere plekken verborgen, waaronder "gerelateerde advertenties" in Favorieten.', - 'Een visuele flicker bij het laden in dark mode is aangepakt, waardoor pagina’s rustiger en consistenter openen.', - "Marktplaats banner voor 'koop je auto bij autobedrijven' weggehaald" - ], - note: "Zie je nog een onderdeel of licht onderdeel dat door de dark mode heen glipt in veel gebruikte pagina's? Meld het via GitHub issues in het paneel." - } -}; - -var MARKTPLAATS_SORT_LABEL_TO_MODE = { - 'standaard': 'standard', - 'datum (nieuw-oud)': 'date_new_old', - 'datum (oud-nieuw)': 'date_old_new', - 'prijs (laag-hoog)': 'price_low_high', - 'prijs (hoog-laag)': 'price_high_low', - 'afstand': 'distance' -}; - -function normalizeSortLabel(label) { - return (label || '').trim().toLowerCase(); -} - -function getSortModeFromLabel(label) { - return MARKTPLAATS_SORT_LABEL_TO_MODE[normalizeSortLabel(label)] || null; -} - -function isMarketplaceSortDropdown(element) { - if (!(element instanceof HTMLSelectElement)) return false; - - const ariaLabel = normalizeSortLabel(element.getAttribute('aria-label')); - if (ariaLabel === 'sorteer op') return true; - - return Array.from(element.options || []).some(option => { - return normalizeSortLabel(option.textContent) === 'datum (nieuw-oud)'; - }); -} diff --git a/content/storage.js b/content/storage.js deleted file mode 100644 index 9d3d180..0000000 --- a/content/storage.js +++ /dev/null @@ -1,102 +0,0 @@ -/** - * Content-script storage and state persistence. - */ - -function registerSettingsStorageSync() { - if (cleanplaatsStorageSyncRegistered || !browserAPI?.storage?.onChanged?.addListener) { - return; - } - - browserAPI.storage.onChanged.addListener((changes, areaName) => { - if (areaName !== 'local' || !changes.cleanplaatsSettings?.newValue) { - return; - } - - try { - const nextSettings = JSON.parse(changes.cleanplaatsSettings.newValue); - const darkModeEnabled = Boolean(nextSettings?.darkMode); - - if (CLEANPLAATS.settings.darkMode !== darkModeEnabled) { - CLEANPLAATS.settings.darkMode = darkModeEnabled; - applyDarkModeToDocument(darkModeEnabled); - syncDarkModeToggle(darkModeEnabled); - } else { - persistDarkModePreference(darkModeEnabled); - } - } catch (error) { - console.error('Cleanplaats: Failed to sync dark mode from storage', error); - } - }); - - cleanplaatsStorageSyncRegistered = true; -} - -function loadSettings() { - return new Promise((resolve, reject) => { - browserAPI.storage.local.get(['cleanplaatsSettings', 'panelState'], (items) => { - if (browserAPI.runtime.lastError) { - console.error('Cleanplaats: Failed to load settings from storage', browserAPI.runtime.lastError); - reject(browserAPI.runtime.lastError); - return; - } - - try { - const storedSettings = items.cleanplaatsSettings; - const storedPanelState = items.panelState; - - if (storedSettings) { - const settings = JSON.parse(storedSettings); - Object.assign(CLEANPLAATS.settings, settings); - } - - try { - const storedDarkMode = window.localStorage.getItem(CLEANPLAATS_THEME_STORAGE_KEY); - if (storedDarkMode === 'true' || storedDarkMode === 'false') { - CLEANPLAATS.settings.darkMode = storedDarkMode === 'true'; - } - } catch (error) { - console.warn('Cleanplaats: Failed to read dark mode from localStorage', error); - } - - if (storedPanelState) { - CLEANPLAATS.panelState = JSON.parse(storedPanelState); - } - - resolve(); - } catch (error) { - console.error('Cleanplaats: Failed to parse settings from storage', error); - reject(error); - } - }); - }); -} - -function saveSettings() { - return new Promise((resolve, reject) => { - try { - persistDarkModePreference(Boolean(CLEANPLAATS.settings.darkMode)); - browserAPI.storage.local.set({ - cleanplaatsSettings: JSON.stringify(CLEANPLAATS.settings), - panelState: JSON.stringify(CLEANPLAATS.panelState) - }, () => { - if (browserAPI.runtime.lastError) { - console.error('Cleanplaats: Failed to save settings to storage', browserAPI.runtime.lastError); - reject(browserAPI.runtime.lastError); - return; - } - resolve(); - }); - } catch (error) { - console.error('Cleanplaats: Failed to save settings to storage', error); - reject(error); - } - }); -} - -function resetStats() { - Object.keys(CLEANPLAATS.stats).forEach(key => { - CLEANPLAATS.stats[key] = 0; - }); - - updateStatsDisplay(); -} diff --git a/content/theme.js b/content/theme.js deleted file mode 100644 index ca63c34..0000000 --- a/content/theme.js +++ /dev/null @@ -1,199 +0,0 @@ -/** - * Content-script dark mode and sort synchronization helpers. - */ - -function persistDarkModePreference(enabled) { - try { - window.localStorage.setItem(CLEANPLAATS_THEME_STORAGE_KEY, enabled ? 'true' : 'false'); - } catch (error) { - console.warn('Cleanplaats: Failed to persist dark mode in localStorage', error); - } -} - -function syncSiteThemeClass() { - document.documentElement.classList.toggle(CLEANPLAATS_TWH_SITE_CLASS, is2dehandsFamilySite()); -} - -function syncCleanplaatsSortMode(sortMode) { - if (!sortMode) return; - - const modeChanged = CLEANPLAATS.settings.defaultSortMode !== sortMode; - const sourceChanged = CLEANPLAATS.settings.sortPreferenceSource !== 'marketplace'; - if (!modeChanged && !sourceChanged) return; - - CLEANPLAATS.settings.defaultSortMode = sortMode; - CLEANPLAATS.settings.sortPreferenceSource = 'marketplace'; - - const cleanplaatsDropdown = document.getElementById('cleanplaats-sort-dropdown'); - if (cleanplaatsDropdown && cleanplaatsDropdown.value !== sortMode) { - cleanplaatsDropdown.value = sortMode; - } - - wakeUpBackground(); - saveSettings().catch(error => { - console.error('Cleanplaats: Failed to sync sort mode from page selection', error); - }); -} - -function setupMarketplaceSortSync() { - if (document.body?.dataset.cleanplaatsSortSyncBound === 'true') return; - if (document.body) { - document.body.dataset.cleanplaatsSortSyncBound = 'true'; - } - - document.addEventListener('change', (event) => { - const target = event.target; - if (!isMarketplaceSortDropdown(target)) return; - - const selectedOption = target.options[target.selectedIndex]; - const sortMode = getSortModeFromLabel(selectedOption?.textContent || target.value); - syncCleanplaatsSortMode(sortMode); - }, true); -} - -function applyDarkModeToDocument(enabled) { - const isEnabled = Boolean(enabled); - syncSiteThemeClass(); - document.documentElement.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, isEnabled); - persistDarkModePreference(isEnabled); - syncHeaderLogoForDarkMode(isEnabled); - - const panel = document.getElementById('cleanplaats-panel'); - if (panel) { - panel.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, isEnabled); - updateCollapsedPanelIcon(panel); - } -} - -function getCollapsedPanelIconUrl() { - const iconPath = CLEANPLAATS.settings.darkMode ? 'icons/darkmode_icon_128.png' : 'icons/icon128.png'; - return browserAPI.runtime.getURL(iconPath); -} - -function syncHeaderLogoForDarkMode(enabled) { - document.querySelectorAll('.hz-Header-logo-desktop').forEach(img => { - if (!(img instanceof HTMLImageElement)) return; - - const currentSource = img.getAttribute('src') || ''; - const originalSource = img.dataset.cleanplaatsOriginalSrc || currentSource; - - if (!img.dataset.cleanplaatsOriginalSrc) { - img.dataset.cleanplaatsOriginalSrc = currentSource; - } - - if (!MARKTPLAATS_DESKTOP_LOGO_MATCH.test(originalSource)) { - return; - } - - const nextSource = enabled - ? browserAPI.runtime.getURL(CLEANPLAATS_DARK_LOGO_PATH) - : originalSource; - - if (currentSource !== nextSource) { - img.setAttribute('src', nextSource); - } - }); - - document.querySelectorAll('.mp-Header-logo').forEach(link => { - if (!(link instanceof HTMLElement)) return; - - if (enabled && isMarktplaatsSite()) { - link.style.backgroundImage = `url("${browserAPI.runtime.getURL(CLEANPLAATS_DARK_LOGO_PATH)}")`; - link.style.backgroundRepeat = 'no-repeat'; - link.style.backgroundPosition = 'center'; - link.style.backgroundSize = 'contain'; - return; - } - - link.style.removeProperty('background-image'); - link.style.removeProperty('background-repeat'); - link.style.removeProperty('background-position'); - link.style.removeProperty('background-size'); - }); -} - -function updateCollapsedPanelIcon(panel = document.getElementById('cleanplaats-panel')) { - if (!panel) return; - - if (panel.classList.contains('collapsed-ready')) { - panel.style.backgroundImage = `url('${getCollapsedPanelIconUrl()}')`; - return; - } - - panel.style.backgroundImage = ''; -} - -function syncDarkModeToggle(enabled) { - const toggle = document.getElementById('cleanplaats-theme-toggle'); - if (!toggle) return; - - const isEnabled = Boolean(enabled); - toggle.setAttribute('aria-pressed', isEnabled ? 'true' : 'false'); - toggle.setAttribute('aria-checked', isEnabled ? 'true' : 'false'); - toggle.dataset.theme = isEnabled ? 'dark' : 'light'; -} - -function isElementVisuallyVisible(element) { - if (!(element instanceof Element)) return false; - - const style = window.getComputedStyle(element); - if ( - style.display === 'none' || - style.visibility === 'hidden' || - style.opacity === '0' - ) { - return false; - } - - const rect = element.getBoundingClientRect(); - return rect.width > 0 && - rect.height > 0 && - rect.bottom > 0 && - rect.right > 0 && - rect.top < window.innerHeight && - rect.left < window.innerWidth; -} - -function updateFloatingUiOffsetForWebchat() { - const webchatToggle = document.querySelector( - '[data-cognigy-webchat-toggle="true"], #webchatWindowToggleButton' - ); - - let offset = 0; - - if (isElementVisuallyVisible(webchatToggle)) { - const rect = webchatToggle.getBoundingClientRect(); - const gap = 16; - offset = Math.max(0, Math.ceil(rect.height + gap)); - } - - document.documentElement.style.setProperty(CLEANPLAATS_FLOATING_OFFSET_VAR, `${offset}px`); -} - -function setupWebchatCollisionAvoidance() { - updateFloatingUiOffsetForWebchat(); - - if (CLEANPLAATS.observers.webchat) { - CLEANPLAATS.observers.webchat.disconnect(); - } - - let rafId = 0; - const scheduleOffsetUpdate = () => { - if (rafId) return; - rafId = window.requestAnimationFrame(() => { - rafId = 0; - updateFloatingUiOffsetForWebchat(); - }); - }; - - const observer = new MutationObserver(scheduleOffsetUpdate); - observer.observe(document.body, { - childList: true, - subtree: true, - attributes: true, - attributeFilter: ['style', 'class', 'hidden', 'aria-hidden'] - }); - - window.addEventListener('resize', scheduleOffsetUpdate, { passive: true }); - CLEANPLAATS.observers.webchat = observer; -} diff --git a/content/ui.js b/content/ui.js deleted file mode 100644 index e9b8325..0000000 --- a/content/ui.js +++ /dev/null @@ -1,830 +0,0 @@ -/** - * Content-script control panel rendering and UI event handling. - */ - -function createControlPanel() { - if (document.getElementById('cleanplaats-panel')) return; - - const panel = document.createElement('div'); - panel.id = 'cleanplaats-panel'; - panel.className = 'cleanplaats-panel'; - panel.classList.toggle(CLEANPLAATS_DARK_MODE_CLASS, CLEANPLAATS.settings.darkMode); - - if (CLEANPLAATS.featureFlags.autoCollapse || CLEANPLAATS.panelState.isCollapsed) { - panel.classList.add('collapsed'); - panel.classList.add('collapsed-ready'); - updateCollapsedPanelIcon(panel); - } - - const panelText = getPanelLocaleText(); - const reviewCTA = getReviewCTAConfig(); - - panel.innerHTML = DOMPurify.sanitize(` -
    -
    -

    - - Cleanplaats - -

    -
    - - -
    -
    - -
    -
    -
    -
    - - - ${panelText.supportButton} - -
    -
    ${panelText.optionsTitle}
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - -
    - - -
    -
    - - -
    -
    - - ${CLEANPLAATS.featureFlags.showStats ? ` -
    -
    ${panelText.statsTitle}
    -
    - ${panelText.statsTop} - 0 -
    -
    - ${panelText.statsDagtoppers} - 0 -
    -
    - ${panelText.statsBusiness} - 0 -
    -
    - ${panelText.statsStickers} - 0 -
    -
    - ${panelText.statsOther} - 0 -
    -
    - ${panelText.statsTotal} - 0 -
    -
    - ` : ''} - - - -
    -
    -
    -
    - -
    ${panelText.preferencesLabel}
    -
    - ${panelText.preferencesIntro ? ` -
    - ${panelText.preferencesIntro} -
    - ` : ''} -
    -
    -
    - - -
    -
    -
    - - -
    -
    - - - -
    -
    -
    -
    -
    - - -
    - `); - - document.body.appendChild(panel); - const logoImg = panel.querySelector('#cleanplaats-header-logo'); - if (logoImg) { - logoImg.src = browserAPI.runtime.getURL('icons/icon128.png'); - } - panel.querySelectorAll('.cleanplaats-external-link').forEach(link => { - link.addEventListener('click', (event) => { - event.preventDefault(); - event.stopPropagation(); - window.open(link.href, '_blank', 'noopener,noreferrer'); - }); - }); - setupEventListeners(); - syncDarkModeToggle(CLEANPLAATS.settings.darkMode); - - document.getElementById('cleanplaats-manage-blacklist').addEventListener('click', (e) => { - e.preventDefault(); - showBlacklistModal(); - }); - - document.getElementById('cleanplaats-manage-terms').addEventListener('click', (e) => { - e.preventDefault(); - showTermsModal(); - }); - - if (!document.getElementById('cleanplaats-global-tooltip')) { - const tooltip = document.createElement('div'); - tooltip.id = 'cleanplaats-global-tooltip'; - tooltip.className = 'cleanplaats-global-tooltip'; - tooltip.style.display = 'none'; - document.body.appendChild(tooltip); - } - - setupGlobalTooltip(); - setActivePanelView(getStoredPanelView(), { persist: false, animated: false }); -} - -function getStoredPanelView() { - return CLEANPLAATS.panelState.activeView === 'preferences' ? 'preferences' : 'filters'; -} - -function getPanelViewDirection(fromView, toView) { - if (fromView === toView) { - return 'none'; - } - return toView === 'preferences' ? 'down' : 'up'; -} - -function clearPanelViewAnimationState(viewElement) { - if (!viewElement) { - return; - } - viewElement.classList.remove( - 'active', - 'is-entering', - 'is-leaving', - 'is-entering-down', - 'is-entering-up', - 'is-leaving-down', - 'is-leaving-up' - ); -} - -function syncPanelViewContainerHeight(activeView) { - const viewsContainer = document.getElementById('cleanplaats-panel-views'); - if (!viewsContainer || !activeView) { - return; - } - - viewsContainer.style.height = `${activeView.scrollHeight}px`; -} - -function measurePanelViewHeight(viewElement) { - const viewsContainer = document.getElementById('cleanplaats-panel-views'); - if (!viewElement || !viewsContainer) { - return 0; - } - - const clone = viewElement.cloneNode(true); - const measurementWrapper = document.createElement('div'); - clone.removeAttribute('id'); - clone.querySelectorAll('[id]').forEach((element) => { - element.removeAttribute('id'); - }); - - clearPanelViewAnimationState(clone); - clone.classList.add('active'); - clone.setAttribute('aria-hidden', 'true'); - clone.style.position = 'relative'; - clone.style.visibility = 'hidden'; - clone.style.pointerEvents = 'none'; - clone.style.opacity = '0'; - clone.style.transform = 'translateY(0)'; - - measurementWrapper.setAttribute('aria-hidden', 'true'); - measurementWrapper.style.position = 'absolute'; - measurementWrapper.style.top = '0'; - measurementWrapper.style.right = '0'; - measurementWrapper.style.left = '0'; - measurementWrapper.style.visibility = 'hidden'; - measurementWrapper.style.pointerEvents = 'none'; - measurementWrapper.style.opacity = '0'; - measurementWrapper.style.overflow = 'visible'; - - measurementWrapper.appendChild(clone); - viewsContainer.appendChild(measurementWrapper); - const height = clone.getBoundingClientRect().height; - measurementWrapper.remove(); - - return height; -} - -function setActivePanelView(view, options = {}) { - const persist = options.persist !== false; - const nextView = view === 'preferences' ? 'preferences' : 'filters'; - const animated = options.animated !== false; - const viewsContainer = document.getElementById('cleanplaats-panel-views'); - const filtersView = document.getElementById('cleanplaats-view-filters'); - const preferencesView = document.getElementById('cleanplaats-view-preferences'); - - if (!filtersView || !preferencesView || !viewsContainer) { - return; - } - - const currentView = CLEANPLAATS.panelState.activeView === 'preferences' ? 'preferences' : 'filters'; - const currentElement = currentView === 'preferences' ? preferencesView : filtersView; - const nextElement = nextView === 'preferences' ? preferencesView : filtersView; - - if (currentView === nextView) { - clearPanelViewAnimationState(filtersView); - clearPanelViewAnimationState(preferencesView); - nextElement.classList.add('active'); - syncPanelViewContainerHeight(nextElement); - CLEANPLAATS.panelState.activeView = nextView; - - if (persist) { - saveSettings().catch(error => { - console.error('Cleanplaats: Failed to store active panel view', error); - }); - } - return; - } - - if (!animated) { - clearPanelViewAnimationState(filtersView); - clearPanelViewAnimationState(preferencesView); - nextElement.classList.add('active'); - syncPanelViewContainerHeight(nextElement); - CLEANPLAATS.panelState.activeView = nextView; - - if (persist) { - saveSettings().catch(error => { - console.error('Cleanplaats: Failed to store active panel view', error); - }); - } - return; - } - - const direction = getPanelViewDirection(currentView, nextView); - const fromHeight = currentElement.scrollHeight; - const nextHeight = measurePanelViewHeight(nextElement); - - clearPanelViewAnimationState(filtersView); - clearPanelViewAnimationState(preferencesView); - - currentElement.classList.add('active', 'is-leaving', direction === 'down' ? 'is-leaving-up' : 'is-leaving-down'); - nextElement.classList.add('active', 'is-entering', direction === 'down' ? 'is-entering-down' : 'is-entering-up'); - - viewsContainer.style.height = `${fromHeight}px`; - void viewsContainer.offsetHeight; - - requestAnimationFrame(() => { - viewsContainer.style.height = `${nextHeight}px`; - currentElement.classList.remove(direction === 'down' ? 'is-leaving-up' : 'is-leaving-down'); - nextElement.classList.remove(direction === 'down' ? 'is-entering-down' : 'is-entering-up'); - }); - - window.clearTimeout(viewsContainer._cleanplaatsViewAnimationTimer); - viewsContainer._cleanplaatsViewAnimationTimer = window.setTimeout(() => { - clearPanelViewAnimationState(currentElement); - clearPanelViewAnimationState(nextElement); - nextElement.classList.add('active'); - syncPanelViewContainerHeight(nextElement); - }, 340); - - CLEANPLAATS.panelState.activeView = nextView; - - if (persist) { - saveSettings().catch(error => { - console.error('Cleanplaats: Failed to store active panel view', error); - }); - } -} - -function setupGlobalTooltip() { - const tooltip = document.getElementById('cleanplaats-global-tooltip'); - if (!tooltip) return; - document.querySelectorAll('.cleanplaats-tooltip-icon').forEach(icon => { - icon.addEventListener('mouseenter', function () { - const text = icon.getAttribute('data-tooltip'); - if (!text) return; - tooltip.textContent = text; - tooltip.style.display = 'block'; - const rect = icon.getBoundingClientRect(); - const tooltipRect = tooltip.getBoundingClientRect(); - let left = rect.left + (rect.width / 2) - (tooltipRect.width / 2); - left = Math.max(8, Math.min(left, window.innerWidth - tooltipRect.width - 8)); - let top = rect.top - tooltipRect.height - 8; - if (top < 8) { - top = rect.bottom + 8; - } - tooltip.style.left = left + 'px'; - tooltip.style.top = top + 'px'; - tooltip.style.opacity = '1'; - }); - icon.addEventListener('mouseleave', function () { - tooltip.style.opacity = '0'; - tooltip.style.display = 'none'; - }); - }); -} - -function syncSellerAgeThresholdControlsState() { - const controls = document.getElementById('cleanplaats-seller-age-threshold-controls'); - const valueInput = document.getElementById('cleanplaats-seller-age-threshold-value'); - const unitSelect = document.getElementById('cleanplaats-seller-age-threshold-unit'); - const isEnabled = Boolean(CLEANPLAATS.settings.sellerAgeWarningEnabled); - - if (controls) { - controls.classList.toggle('is-disabled', !isEnabled); - } - - if (valueInput) { - valueInput.disabled = !isEnabled; - } - - if (unitSelect) { - unitSelect.disabled = !isEnabled; - } -} - -function handleSellerAgeThresholdChange() { - const valueInput = document.getElementById('cleanplaats-seller-age-threshold-value'); - const unitSelect = document.getElementById('cleanplaats-seller-age-threshold-unit'); - - if (!valueInput || !unitSelect) { - return; - } - - const nextValue = Math.min(99, Math.max(1, parseInt(valueInput.value, 10) || 1)); - valueInput.value = String(nextValue); - CLEANPLAATS.settings.sellerAgeWarningThresholdValue = nextValue; - CLEANPLAATS.settings.sellerAgeWarningThresholdUnit = unitSelect.value; - CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; - - saveSettings() - .then(() => { - showSettingFeedback(); - scheduleSellerAgeWarningCheck({ force: true }); - }) - .catch(error => { - console.error('Cleanplaats: Failed to save seller age threshold', error); - }); -} - -function handleSellerAgeThresholdInput() { - const valueInput = document.getElementById('cleanplaats-seller-age-threshold-value'); - if (!valueInput) { - return; - } - - const rawValue = String(valueInput.value || '').replace(/[^\d]/g, ''); - if (!rawValue) { - return; - } - - const nextValue = Math.min(99, Math.max(1, parseInt(rawValue, 10) || 1)); - valueInput.value = String(nextValue); - CLEANPLAATS.settings.sellerAgeWarningThresholdValue = nextValue; - CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; - - saveSettings() - .then(() => { - // Persist immediately so refreshes don't lose the typed value, - // but avoid re-triggering the warning toast on every keystroke. - }) - .catch(error => { - console.error('Cleanplaats: Failed to store seller age threshold value during input', error); - }); -} - -function setupEventListeners() { - const panel = document.getElementById('cleanplaats-panel'); - const toggle = document.getElementById('cleanplaats-toggle'); - const openPreferencesButton = document.getElementById('cleanplaats-open-preferences'); - const backToFiltersButton = document.getElementById('cleanplaats-back-to-filters'); - - if (panel) { - panel.addEventListener('click', (e) => { - if (panel.classList.contains('animating')) { - return; - } - - const isPanelCollapsed = panel.classList.contains('collapsed'); - let canToggle = false; - - if (isPanelCollapsed) { - if (e.target === panel) { - canToggle = true; - } - } else { - const header = document.getElementById('cleanplaats-header'); - if (header && header.contains(e.target)) { - if ( - e.target.id === 'cleanplaats-toggle' || - !e.target.closest('input, button, a, .cleanplaats-tooltip, .cleanplaats-switch') - ) { - canToggle = true; - } - } - } - - if (canToggle) { - e.preventDefault(); - e.stopPropagation(); - - const blacklistModal = document.getElementById('cleanplaats-blacklist-modal'); - const termsModal = document.getElementById('cleanplaats-terms-modal'); - if (blacklistModal && blacklistModal.style.display === 'block') { - blacklistModal.style.display = 'none'; - } - if (termsModal && termsModal.style.display === 'block') { - termsModal.style.display = 'none'; - } - - panel.classList.remove('collapsed-ready'); - updateCollapsedPanelIcon(panel); - panel.classList.add('animating'); - - CLEANPLAATS.panelState.isCollapsed = !CLEANPLAATS.panelState.isCollapsed; - panel.classList.toggle('collapsed', CLEANPLAATS.panelState.isCollapsed); - - if (toggle) { - toggle.textContent = CLEANPLAATS.panelState.isCollapsed ? '▲' : '▼'; - } - - const fallbackTimeout = setTimeout(() => { - panel.classList.remove('animating'); - if (CLEANPLAATS.panelState.isCollapsed) { - panel.classList.add('collapsed-ready'); - updateCollapsedPanelIcon(panel); - } - }, 600); - - const onTransitionEnd = (event) => { - if (CLEANPLAATS.panelState.isCollapsed && event.propertyName === 'width') { - panel.classList.add('collapsed-ready'); - updateCollapsedPanelIcon(panel); - panel.classList.remove('animating'); - panel.removeEventListener('transitionend', onTransitionEnd); - clearTimeout(fallbackTimeout); - } else if (!CLEANPLAATS.panelState.isCollapsed && event.propertyName === 'max-height') { - panel.classList.remove('animating'); - updateCollapsedPanelIcon(panel); - panel.removeEventListener('transitionend', onTransitionEnd); - clearTimeout(fallbackTimeout); - } - }; - panel.addEventListener('transitionend', onTransitionEnd); - - saveSettings(); - } - }); - } - - openPreferencesButton?.addEventListener('click', (event) => { - event.preventDefault(); - event.stopPropagation(); - setActivePanelView('preferences'); - }); - - backToFiltersButton?.addEventListener('click', (event) => { - event.preventDefault(); - event.stopPropagation(); - setActivePanelView('filters'); - }); - - ['removeTopAds', 'removeDagtoppers', 'removePromotedListings', - 'removeOpvalStickers', 'removeReservedListings', 'removeFavoriteRelatedAds', 'sellerAgeWarningEnabled'].forEach(id => { - const checkbox = document.getElementById(id); - if (checkbox) { - checkbox.addEventListener('change', handleCheckboxChange); - } - }); - - const sellerAgeThresholdValue = document.getElementById('cleanplaats-seller-age-threshold-value'); - const sellerAgeThresholdUnit = document.getElementById('cleanplaats-seller-age-threshold-unit'); - sellerAgeThresholdValue?.addEventListener('input', handleSellerAgeThresholdInput); - sellerAgeThresholdValue?.addEventListener('change', handleSellerAgeThresholdChange); - sellerAgeThresholdUnit?.addEventListener('change', handleSellerAgeThresholdChange); - syncSellerAgeThresholdControlsState(); - - const themeToggle = document.getElementById('cleanplaats-theme-toggle'); - if (themeToggle) { - themeToggle.addEventListener('click', handleThemeToggle); - themeToggle.addEventListener('keydown', (event) => { - if (event.key !== 'Enter' && event.key !== ' ') return; - event.preventDefault(); - handleThemeToggle(); - }); - } - - setupResultsDropdownListener(); - setupSortDropdownListener(); - setupMarketplaceSortSync(); -} - -function handleThemeToggle() { - const nextValue = !CLEANPLAATS.settings.darkMode; - CLEANPLAATS.settings.darkMode = nextValue; - applyDarkModeToDocument(nextValue); - syncDarkModeToggle(nextValue); - - saveSettings() - .then(() => { - showSettingFeedback(); - }) - .catch(error => { - console.error('Cleanplaats: Failed to apply dark mode', error); - CLEANPLAATS.settings.darkMode = !nextValue; - applyDarkModeToDocument(!nextValue); - syncDarkModeToggle(!nextValue); - }); -} - -function handleCheckboxChange(event) { - const setting = event.target.id; - const value = event.target.checked; - - CLEANPLAATS.settings[setting] = value; - - if (setting === 'sellerAgeWarningEnabled') { - CLEANPLAATS.runtime.lastSellerAgeWarningKey = ''; - syncSellerAgeThresholdControlsState(); - } - - saveSettings() - .then(() => { - if (setting === 'darkMode') { - applyDarkModeToDocument(value); - showSettingFeedback(); - return; - } - - if (setting === 'sellerAgeWarningEnabled') { - showSettingFeedback(); - scheduleSellerAgeWarningCheck({ force: true }); - return; - } - - resetPreviousChanges(); - performCleanup(); - - clearBubbleNotification(); - showSettingFeedback(); - checkForEmptyPage(); - updateStatsDisplay(); - }) - .catch(error => { - console.error('Cleanplaats: Failed to apply setting', error); - event.target.checked = !value; - if (setting === 'darkMode') { - CLEANPLAATS.settings[setting] = !value; - applyDarkModeToDocument(!value); - } - }); -} - -function applySettings() { - saveSettings() - .then(() => { - applyDarkModeToDocument(CLEANPLAATS.settings.darkMode); - resetPreviousChanges(); - performCleanup(); - }) - .catch(error => { - console.error('Cleanplaats: Failed to apply settings', error); - }); -} - -function setupResultsDropdownListener() { - const dropdown = document.getElementById('cleanplaats-results-dropdown'); - if (!dropdown) return; - - dropdown.addEventListener('change', (e) => { - const value = parseInt(e.target.value, 10); - - CLEANPLAATS.settings.resultsPerPage = value; - wakeUpBackground(); - - saveSettings().then(() => { - showSettingFeedback(); - - if (isSearchResultsPage()) { - setTimeout(() => { - window.location.reload(); - }, 1000); - } - }); - }); -} - -function setupSortDropdownListener() { - const dropdown = document.getElementById('cleanplaats-sort-dropdown'); - if (!dropdown) return; - - dropdown.addEventListener('change', (e) => { - const value = e.target.value; - - CLEANPLAATS.settings.defaultSortMode = value; - CLEANPLAATS.settings.sortPreferenceSource = 'cleanplaats'; - wakeUpBackground(); - - saveSettings().then(() => { - showSettingFeedback(); - - if (isSearchResultsPage()) { - setTimeout(() => { - window.location.reload(); - }, 1000); - } - }); - }); -} diff --git a/dark-mode.css b/dark-mode.css deleted file mode 100644 index 9764d57..0000000 --- a/dark-mode.css +++ /dev/null @@ -1,3238 +0,0 @@ -html.cleanplaats-dark-mode { - --cleanplaats-dark-bg: #11161d; - --cleanplaats-dark-bg-elevated: #18212c; - --cleanplaats-dark-bg-soft: #1f2a36; - --cleanplaats-dark-bg-soft-hover: #263342; - --cleanplaats-dark-border: #314152; - --cleanplaats-dark-border-subtle: rgba(120, 143, 166, 0.18); - --cleanplaats-dark-text: #e4ebf3; - --cleanplaats-dark-text-muted: #aebccc; - --cleanplaats-dark-link: #8cc8ff; - --cleanplaats-dark-accent: #1f7fd1; -} - -html.cleanplaats-dark-mode, -html.cleanplaats-dark-mode body, -html.cleanplaats-dark-mode .hz-Page, -html.cleanplaats-dark-mode .hz-Page-body, -html.cleanplaats-dark-mode .hz-Page-element, -html.cleanplaats-dark-mode #main-container, -html.cleanplaats-dark-mode #footer-container, -html.cleanplaats-dark-mode .hz-Accordion, -html.cleanplaats-dark-mode .hz-Accordion-item, -html.cleanplaats-dark-mode .hz-Accordion-body, -html.cleanplaats-dark-mode .FooterLinkWrapper, -html.cleanplaats-dark-mode .FooterLinkWrapper-listAccordion { - background: var(--cleanplaats-dark-bg) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode body, -html.cleanplaats-dark-mode p, -html.cleanplaats-dark-mode span, -html.cleanplaats-dark-mode div, -html.cleanplaats-dark-mode li, -html.cleanplaats-dark-mode dt, -html.cleanplaats-dark-mode dd, -html.cleanplaats-dark-mode label, -html.cleanplaats-dark-mode strong, -html.cleanplaats-dark-mode h1, -html.cleanplaats-dark-mode h2, -html.cleanplaats-dark-mode h3, -html.cleanplaats-dark-mode h4, -html.cleanplaats-dark-mode h5, -html.cleanplaats-dark-mode h6 { - color: var(--cleanplaats-dark-text); -} - -html.cleanplaats-dark-mode a, -html.cleanplaats-dark-mode .hz-Link, -html.cleanplaats-dark-mode .hz-TextLink, -html.cleanplaats-dark-mode .hz-TabNextButton { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-SvgIcon, -html.cleanplaats-dark-mode .hz-Icon.hz-SvgIcon { - opacity: 1 !important; - filter: invert(0.72) sepia(0.08) saturate(3) hue-rotate(175deg) - brightness(1.05) contrast(0.92) !important; -} - -html.cleanplaats-dark-mode header, -html.cleanplaats-dark-mode footer, -html.cleanplaats-dark-mode .hz-Header, -html.cleanplaats-dark-mode .hz-Header-navBar, -html.cleanplaats-dark-mode .hz-CategoryMenuBar, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-topLevelItems, -html.cleanplaats-dark-mode .hz-Page-element--full-width, -html.cleanplaats-dark-mode .hz-Page-element--main, -html.cleanplaats-dark-mode .hz-Page-element--sidebar { - background: var(--cleanplaats-dark-bg) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Header-navBar { - border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .mp-Header-navBar, -html.cleanplaats-dark-mode .mp-Header-ribbonBottom, -html.cleanplaats-dark-mode .mp-Nav-dropdown-menu, -html.cleanplaats-dark-mode .mp-HamburgerMenu, -html.cleanplaats-dark-mode .mp-Nav-pills { - background: var(--cleanplaats-dark-bg) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .mp-Header-navBar, -html.cleanplaats-dark-mode .mp-Header-ribbonBottom { - border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--flat, -html.cleanplaats-dark-mode .mp-Header-links .mp-Button--flat, -html.cleanplaats-dark-mode .mp-Nav-dropdown-toggle, -html.cleanplaats-dark-mode .mp-HamburgerMenu a, -html.cleanplaats-dark-mode .mp-Nav-dropdown-menu a, -html.cleanplaats-dark-mode .mp-Nav-pill--header, -html.cleanplaats-dark-mode .mp-Nav-pill--separator, -html.cleanplaats-dark-mode .mp-Header-hamburger-close { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - border-color: transparent !important; -} - -html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--flat:hover, -html.cleanplaats-dark-mode .mp-Header-links .mp-Button--flat:hover, -html.cleanplaats-dark-mode .mp-Nav-dropdown-toggle:hover, -html.cleanplaats-dark-mode .mp-HamburgerMenu a:hover, -html.cleanplaats-dark-mode .mp-Nav-dropdown-menu a:hover, -html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--flat:focus-visible, -html.cleanplaats-dark-mode .mp-Header-links .mp-Button--flat:focus-visible, -html.cleanplaats-dark-mode .mp-Nav-dropdown-toggle:focus-visible, -html.cleanplaats-dark-mode .mp-HamburgerMenu a:focus-visible, -html.cleanplaats-dark-mode .mp-Nav-dropdown-menu a:focus-visible, -html.cleanplaats-dark-mode .mp-Header-hamburger-close:hover, -html.cleanplaats-dark-mode .mp-Header-hamburger-close:focus-visible { - color: #ffffff !important; -} - -html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction, -html.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction:visited { - color: #ffffff !important; -} - -html.cleanplaats-dark-mode .mp-Header-menu .mp-Icon, -html.cleanplaats-dark-mode .mp-Header-links .mp-Icon, -html.cleanplaats-dark-mode .mp-Header-hamburger-close .mp-Icon { - opacity: 1 !important; - filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.08) contrast(0.96) !important; -} - -html.cleanplaats-dark-mode .mymp, -html.cleanplaats-dark-mode .mymp.require.empty, -html.cleanplaats-dark-mode .mymp .mp-Topbar, -html.cleanplaats-dark-mode .mymp .mp-Tab-bar, -html.cleanplaats-dark-mode .mymp .canvas, -html.cleanplaats-dark-mode .mymp .table.ad-listing-container, -html.cleanplaats-dark-mode .mymp .table-body, -html.cleanplaats-dark-mode .mymp .row.ad-listing.empty-row { - background: var(--cleanplaats-dark-bg) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .mymp .mp-Topbar { - border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .mymp .mp-Topbar-title, -html.cleanplaats-dark-mode .mymp .hz-Title, -html.cleanplaats-dark-mode .mymp .u-colorTextPrimary, -html.cleanplaats-dark-mode .mymp .u-colorTextSecondary, -html.cleanplaats-dark-mode .mymp .text, -html.cleanplaats-dark-mode .mymp .text h3, -html.cleanplaats-dark-mode .mymp .text p { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .mymp .mp-Tab, -html.cleanplaats-dark-mode .mymp .mp-Tab:visited { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .mymp .mp-Tab:hover, -html.cleanplaats-dark-mode .mymp .mp-Tab:focus-visible, -html.cleanplaats-dark-mode .mymp .mp-Tab.is-selected, -html.cleanplaats-dark-mode .mymp .mp-Tab.is-selected:visited { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .mymp .mp-Tab-bar { - border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .mymp .table-head.ad-listing.compact, -html.cleanplaats-dark-mode .mymp .bubble-help.info, -html.cleanplaats-dark-mode .mymp .overlay-loader.overlayed { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .mymp .query.mp-Input, -html.cleanplaats-dark-mode .mymp select, -html.cleanplaats-dark-mode .mymp input[type="text"] { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .mymp .query.mp-Input::placeholder, -html.cleanplaats-dark-mode .mymp input::placeholder { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .mymp .filter-option, -html.cleanplaats-dark-mode .mymp .filter-option.selected { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .mymp #ad-listing-table-body, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .cells, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .cell, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .description-column, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-column, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .views-column, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .position-column { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact { - border-top-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .description-title, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .flex-row, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .listing-status, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .amount, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .health, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .cta, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .bid, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper a { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper a, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .thumbnail-wrapper img { - border-color: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .title, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .title:visited, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .type, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .activity, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .renewal, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .amount span[aria-hidden="true"], -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .upcall-label { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status a, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status a:visited, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .feature-phone-upcall, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .feature-phone-upcall:visited { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status a:hover, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .feature-phone-upcall:hover { - color: #8fc8ff !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .mp-Icon, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .hz-Icon { - opacity: 1 !important; - filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.08) contrast(0.96) !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .mp-Button--primary, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .opvallen-link.mp-Button--primary, -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .opvallen-link.one-feature-opvallen-link { - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-bad { - color: #f0ae86 !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-ok { - color: #f3d37b !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .status-good { - color: #9fd9b0 !important; -} - -html.cleanplaats-dark-mode .mymp .row.ad-listing.compact .verkopen-select { - accent-color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .mp-Tab, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .mp-Tab:visited { - color: #c8d8e8 !important; -} - -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .u-colorTextSecondary, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp small, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .description, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .hint, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .meta { - color: #c1d2e2 !important; -} - -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .mp-Icon, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mymp .hz-Icon, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Icon, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .hz-Icon { - opacity: 1 !important; - filter: brightness(0) invert(1) !important; -} - -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction:visited, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Button--callToAction, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Button--callToAction:visited { - color: #ffffff !important; -} - -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header-menu .mp-Button--callToAction *, -html.cleanplaats-site-twh.cleanplaats-dark-mode .mp-Header .mp-Button--callToAction * { - color: #ffffff !important; - -webkit-text-fill-color: #ffffff !important; - opacity: 1 !important; -} - -html.cleanplaats-dark-mode .hz-Topbar, -html.cleanplaats-dark-mode .hz-Topbar-inner-wrapper, -html.cleanplaats-dark-mode .hz-Tab-bar.has-sticky, -html.cleanplaats-dark-mode .hz-Page-container, -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"], -html.cleanplaats-dark-mode [class*="StickyHeader-sticky-header"], -html.cleanplaats-dark-mode [class*="FilterSection-filters-container"], -html.cleanplaats-dark-mode [class*="ListHeader-headers-container"], -html.cleanplaats-dark-mode [class*="FavoritesList-list-container"] { - background: var(--cleanplaats-dark-bg) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Topbar, -html.cleanplaats-dark-mode .hz-Tab-bar.has-sticky, -html.cleanplaats-dark-mode [class*="FilterSection-filters-container"], -html.cleanplaats-dark-mode [class*="ListHeader-headers-container"], -html.cleanplaats-dark-mode [class*="FavoritesList-list-container"] { - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-Topbar-title, -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab, -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:visited, -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] label, -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] span, -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] p, -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] h4, -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] div { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab, -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:visited { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:hover, -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab:focus-visible, -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab.is-selected, -html.cleanplaats-dark-mode .hz-Tab-bar .hz-Tab.is-selected:visited { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-Dropdown-formControl, -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-Dropdown-input, -html.cleanplaats-dark-mode [class*="FilterSection-filterAll"] { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-Dropdown-input { - border-radius: 10px !important; -} - -html.cleanplaats-dark-mode [class*="FilterSection-filterAll"]:hover, -html.cleanplaats-dark-mode [class*="FilterSection-filterAll"]:focus-visible { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border-strong) !important; -} - -html.cleanplaats-dark-mode [class*="ListHeader-button-container"] .hz-Button, -html.cleanplaats-dark-mode [class*="ListHeader-button-container"] button { - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="hz-Listing-compact-body"], -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="hz-Listing-compact-content"], -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="FavoritesListItem-hz-Listing-compact-price"], -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="FavoritesListItem-hz-Listing-compact-favorite"], -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="FavoritesListItem-mobile-pricing"] { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - opacity: 1 !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] [class*="hz-Listing-compact-body"].FavoritesListItem-not_published { - opacity: 0.5 !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Listing-compact-title, -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Link, -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Link:visited, -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-TextLink, -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-TextLink:visited { - color: #b9dcff !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Listing-compact-seller, -html.cleanplaats-dark-mode [class*="FavoritesListItem-favorites-list-item"] .hz-Listing-compact-location, -html.cleanplaats-dark-mode [class*="ListHeader-list-header"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="SimilarAdsList-related-ads-section"] { - background: rgba(21, 28, 37, 0.76) !important; - border-top: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode [class*="SimilarAdsList-related-copy"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="SimilarAdItem-hz-Listing-compact"] { - color: inherit !important; - text-decoration-color: transparent !important; -} - -html.cleanplaats-dark-mode [class*="SimilarAdItem-hz-Listing-compact"] [class*="hz-Listing-compact-body"] { - background: transparent !important; - border: 0 !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-SelectionInput-Input { - background: var(--cleanplaats-dark-bg-soft) !important; - border-color: var(--cleanplaats-dark-border-strong) !important; -} - -html.cleanplaats-dark-mode [class*="FavoritesContainer-favorites_container"] .hz-SelectionInput-Input:checked { - background: var(--cleanplaats-dark-link) !important; - border-color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-UtilsBlock.u-backgroundColorBackgroundSurface { - background: var(--cleanplaats-dark-bg) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-UtilsBlock.u-backgroundColorBackgroundSurface { - background: var(--cleanplaats-dark-bg-elevated) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-Title, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-Text, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-TextContent, -html.cleanplaats-dark-mode .hz-Page-element--aside .u-colorTextPrimary { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-List._withDivider_gi4uo_6 .hz-ListItem--menu, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-List._withDivider_gi4uo_6 .hz-ListItemButton { - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - border-radius: 10px !important; - border: 0 !important; - box-shadow: none !important; - outline: 0 !important; - transition: background-color 0.15s ease, color 0.15s ease !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-ListItem, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-ListItem--content, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-ListItem--menuItem, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton .hz-TextContent, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton > .hz-ListItem--withIcon, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; - outline: 0 !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within { - background: var(--cleanplaats-dark-bg-soft) !important; - border-radius: 10px !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton > .hz-ListItem--withIcon, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton > .hz-ListItem--withIcon, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton .hz-TextContent, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton .hz-TextContent, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:hover > .hz-ListItemButton .hz-Text, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu:focus-within > .hz-ListItemButton .hz-Text { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; - outline: 0 !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; - outline: 0 !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton { - background: rgba(31, 127, 209, 0.18) !important; - border: 0 !important; - box-shadow: none !important; - outline: 0 !important; - border-radius: 10px !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItem, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItem--content, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItem--menuItem, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-TextContent, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton > .hz-ListItem--withIcon, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton > .hz-ListItem--content.hz-ListItem--menuItem { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; - outline: 0 !important; - border-radius: inherit !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-Text, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .u-colorTextControlsSelected, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected .hz-ListItemButton { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover .hz-ListItemButton, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within .hz-ListItemButton { - background: rgba(31, 127, 209, 0.18) !important; - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu.hz-ListItem--selected:hover, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--menu.hz-ListItem--selected:focus-within { - background: transparent !important; -} - -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover > .hz-ListItemButton .hz-TextContent, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within > .hz-ListItemButton .hz-TextContent, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover > .hz-ListItemButton .hz-Text, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within > .hz-ListItemButton .hz-Text, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:hover > .hz-ListItemButton .u-colorTextControlsSelected, -html.cleanplaats-dark-mode .hz-Page-element--aside .hz-ListItem--selected:focus-within > .hz-ListItemButton .u-colorTextControlsSelected { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"], -html.cleanplaats-dark-mode [class*="CategorySelection-module-main"], -html.cleanplaats-dark-mode .syi-categories-section, -html.cleanplaats-dark-mode .categories-wrap, -html.cleanplaats-dark-mode [class*="ManualSelect-module-manualSelectContainer"] { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] { - background: var(--cleanplaats-dark-bg-elevated) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - border-radius: 14px !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Title, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Text, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .u-colorTextPrimary, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .u-colorTextSecondary, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .input-label, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] span, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] div { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-footer, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-formControl { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-formControl { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - border-radius: 10px !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-formControl:focus-within { - border-color: rgba(140, 200, 255, 0.42) !important; - box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-input, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-input::placeholder { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-input::placeholder, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .u-colorTextSecondary, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-TextField-footer .hz-Text { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-formControl, -html.cleanplaats-dark-mode [class*="ManualSelect-module-manualSelect"] { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] [class*="ManualSelect-module-manualSelect"] .hz-Dropdown-input { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - border-radius: 10px !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input:focus, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input:focus-visible { - border-color: rgba(140, 200, 255, 0.42) !important; - box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; - outline: 0 !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown-input option { - background: var(--cleanplaats-dark-bg-elevated) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-SvgIconArrowDown, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-SvgIconCategoryCars, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Dropdown .hz-Icon { - opacity: 1 !important; - filter: invert(0.78) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.08) contrast(0.96) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button--secondary { - background: var(--cleanplaats-dark-bg-soft) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button--secondary:hover, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button--secondary:focus-visible { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: var(--cleanplaats-dark-link) !important; - color: #f7fbff !important; -} - -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .CategorySelection-module-submitButton:disabled, -html.cleanplaats-dark-mode [class*="CategorySelection-module-box"] .hz-Button:disabled { - background: rgba(31, 42, 54, 0.55) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text-muted) !important; - opacity: 1 !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="Category-module-flexContainer"], -html.cleanplaats-dark-mode .hz-Page-content [class*="PlaceListing-module-placeListing"], -html.cleanplaats-dark-mode .hz-Page-content [class*="FormSection-module-FormSection"], -html.cleanplaats-dark-mode .hz-Page-content [class*="FormSection-module-FormSection_header"], -html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-flexContainer"], -html.cleanplaats-dark-mode .hz-Page-content [class*="Bundles-module-featureSelection"], -html.cleanplaats-dark-mode .hz-Page-content [class*="TotalPrice-module-wrapper"], -html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-section, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-mobileOnly { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="FormSection-module-FormSection"] { - background: var(--cleanplaats-dark-bg-elevated) !important; - border: 0 !important; - border-radius: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="ImageBox-module-imageUploadBox"], -html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_benefits"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"], -html.cleanplaats-dark-mode .hz-Page-content [class*="TotalPrice-module-content"], -html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root { - background: var(--cleanplaats-dark-bg-elevated) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - border-radius: 14px !important; - box-shadow: none !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="ImageBox-module-imageUploadBox"], -html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_benefits"] { - background: linear-gradient(180deg, rgba(24, 33, 44, 0.86) 0%, rgba(20, 28, 37, 0.96) 100%) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"] { - background: var(--cleanplaats-dark-bg-elevated) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"]:hover, -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureColumn"]:focus-visible { - background: var(--cleanplaats-dark-bg-soft) !important; - border-color: rgba(140, 200, 255, 0.22) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="Header-module-title"], -html.cleanplaats-dark-mode .hz-Page-content [class*="Category-module-categoryInfo"], -html.cleanplaats-dark-mode .hz-Page-content [class*="FieldTip-module-description"], -html.cleanplaats-dark-mode .hz-Page-content [class*="ImageUploadedStats-module-stats"], -html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_list"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-header"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-description"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureBody"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-features"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureNote"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-price"], -html.cleanplaats-dark-mode .hz-Page-content [class*="TotalPrice-module-number"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BiddingSwitch-module-tip"], -html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-progressBarContainer"], -html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-marginTop"], -html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-overflowHidden"], -html.cleanplaats-dark-mode .hz-Page-content [class*="AdAttribute-module-horizontalBox"], -html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container, -html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container div, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-section, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-section div, -html.cleanplaats-dark-mode .hz-Page-content .hz-Title, -html.cleanplaats-dark-mode .hz-Page-content .hz-Text, -html.cleanplaats-dark-mode .hz-Page-content .u-colorTextPrimary, -html.cleanplaats-dark-mode .hz-Page-content .u-colorTextSecondary { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="FieldTip-module-description"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BiddingSwitch-module-tip"], -html.cleanplaats-dark-mode .hz-Page-content .hz-BreadcrumbLabel, -html.cleanplaats-dark-mode .hz-Page-content .hz-CurrentPage, -html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container a, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root a { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .SellerIdentity-container a:hover, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root a:hover { - color: #8fc8ff !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="FieldTip-module-description"], -html.cleanplaats-dark-mode .hz-Page-content [class*="BiddingSwitch-module-tip"], -html.cleanplaats-dark-mode .hz-Page-content .hz-BreadcrumbLabel, -html.cleanplaats-dark-mode .hz-Page-content .hz-CurrentPage { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-Breadcrumbs, -html.cleanplaats-dark-mode .hz-Page-content [class*="Category-module-breadcrumb"] { - background: transparent !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="ImageUploaderBox-module-label"] { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="ImageUploaderBox-module-icon"], -html.cleanplaats-dark-mode .hz-Page-content [class*="HomepageInput-module-HomepageFeature_benefits"] .hz-Icon, -html.cleanplaats-dark-mode .hz-Page-content [class*="BundleOption-module-featureIcon"], -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Icon { - opacity: 1 !important; - filter: invert(0.78) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.08) contrast(0.96) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Button--secondary { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Button--secondary:hover, -html.cleanplaats-dark-mode .hz-Page-content .PhoneUpCallBlock-root .hz-Button--secondary:focus-visible { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: rgba(140, 200, 255, 0.24) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content [class*="RichTextEditor-module-blockFormatDropdown"], -html.cleanplaats-dark-mode .hz-Page-content [class*="RichTextEditor-module-toolbarItem"], -html.cleanplaats-dark-mode .hz-Page-content [class*="RichTextEditor-module-dropdownCaret"] { - background: var(--cleanplaats-dark-bg-soft) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput, -html.cleanplaats-dark-mode .hz-Page-content .hz-Switch, -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Container, -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Body, -html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Body { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-LabelText { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input { - background: var(--cleanplaats-dark-bg-soft) !important; - border-color: var(--cleanplaats-dark-border) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input:hover, -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input:focus { - border-color: rgba(140, 200, 255, 0.3) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-SelectionInput-Input:checked { - background: var(--cleanplaats-dark-link) !important; - border-color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Button { - background: rgba(255, 255, 255, 0.16) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Handle { - background: #f2f7fc !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Input:checked + .hz-Switch-Body .hz-Switch-Button { - background: var(--cleanplaats-dark-accent) !important; -} - -html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Body .hz-Icon, -html.cleanplaats-dark-mode .hz-Page-content .hz-Switch-Body [class*="SvgIcon"] { - filter: invert(0.88) sepia(0.03) saturate(3) hue-rotate(175deg) - brightness(1.06) contrast(0.98) !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Header-maxWidth, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchFieldset-standard, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchFieldset-advanced, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-query, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-category, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-postcode, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-distance, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-SearchForm-options, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-CustomDropdown, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-footer { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button, -html.cleanplaats-dark-mode .hz-Header-searchBar button { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - box-shadow: none !important; - color: var(--cleanplaats-dark-text) !important; - height: 35px !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Input, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-input { - background: transparent !important; - box-shadow: none !important; - color: var(--cleanplaats-dark-text) !important; - border: 0 !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container { - border-left-color: transparent !important; - border-radius: 0 !important; - padding: 0 8px !important; - background: var(--cleanplaats-dark-bg-soft) !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle { - border-radius: 3px 0 0 3px !important; - padding: 4px 8px !important; -} - -html.cleanplaats-dark-mode .hz-PopOverContent, -html.cleanplaats-dark-mode .hz-PopOverContent-body, -html.cleanplaats-dark-mode .hz-PopOverContent-close { - background: var(--cleanplaats-dark-bg-elevated) !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Text, -html.cleanplaats-dark-mode .hz-PopOverContent .u-colorTextPrimary, -html.cleanplaats-dark-mode .hz-PopOverContent .u-colorTextSecondary { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Icon { - opacity: 1 !important; - filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.08) contrast(0.96) !important; -} - -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--tertiary, -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--icon-button { - background: transparent !important; - border-color: transparent !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--tertiary:hover, -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--tertiary:focus-visible, -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--icon-button:hover, -html.cleanplaats-dark-mode .hz-PopOverContent .hz-Button--icon-button:focus-visible { - background: var(--cleanplaats-dark-bg-soft) !important; - border-color: var(--cleanplaats-dark-border) !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button, -html.cleanplaats-dark-mode .hz-Header-searchBar button { - border-left: 1px solid var(--cleanplaats-dark-border) !important; - border-radius: 0 3px 3px 0 !important; - padding: 8px 12px !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Input, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger { - color: var(--cleanplaats-dark-text) !important; - background: transparent !important; - border: 0 !important; - padding: 0 0 0 12px !important; - height: 33.4px !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger .hz-SvgIconArrowDown, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-dropdown-trigger .hz-Icon { - opacity: 1 !important; - filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.08) contrast(0.96) !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle:hover, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container:hover, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button:hover, -html.cleanplaats-dark-mode .hz-Header-searchBar button:hover { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: rgba(140, 200, 255, 0.22) !important; -} - -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Nav-dropdown-toggle:focus, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Custom-dropdown-container:focus-within, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-TextField-formControl:focus-within, -html.cleanplaats-dark-mode .hz-Header-searchBar .hz-Button:focus, -html.cleanplaats-dark-mode .hz-Header-searchBar button:focus { - border-color: rgba(140, 200, 255, 0.42) !important; - box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.24) !important; -} - -html.cleanplaats-dark-mode .hz-Card, -html.cleanplaats-dark-mode [class*="Card"]:not(.ListingHeader-actionsContainer):not(.ListingHeader-header):not(.ListingHeader-action), -html.cleanplaats-dark-mode [role="dialog"], -html.cleanplaats-dark-mode [data-testid="vip-content"] { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge, -html.cleanplaats-dark-mode .hz-LoginNudge article, -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-body, -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-ctaBlock { - background: var(--cleanplaats-dark-bg-elevated) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge article { - border: 1px solid var(--cleanplaats-dark-border) !important; - box-shadow: 0 14px 28px rgba(0, 0, 0, 0.34) !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-body { - border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-arrowPointer { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-bg-elevated) !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon, -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon .hz-Icon, -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-listItem .hz-Icon { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon:hover, -html.cleanplaats-dark-mode .hz-LoginNudge .hz-LoginNudge-closeIcon:focus-visible { - color: #ffffff !important; -} - -html.cleanplaats-dark-mode .gm-fullscreen-control, -html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - border-radius: 8px !important; - box-shadow: 0 8px 18px rgba(0, 0, 0, 0.35) !important; -} - -html.cleanplaats-dark-mode .gm-fullscreen-control:hover, -html.cleanplaats-dark-mode .gm-fullscreen-control:focus-visible, -html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control:hover, -html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control:focus-visible { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: rgba(140, 200, 255, 0.28) !important; - box-shadow: 0 10px 22px rgba(0, 0, 0, 0.42) !important; -} - -html.cleanplaats-dark-mode .gm-fullscreen-control img, -html.cleanplaats-dark-mode button.gm-control-active.gm-fullscreen-control img { - filter: invert(0.92) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.04) contrast(0.96) !important; - opacity: 1 !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root, -html.cleanplaats-dark-mode .LoginComponent-root .hz-Card, -html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-card { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: 0 16px 32px rgba(0, 0, 0, 0.36) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-header, -html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-passwordBlock, -html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-remember, -html.cleanplaats-dark-mode .LoginComponent-root .hz-ButtonsBlock, -html.cleanplaats-dark-mode .LoginComponent-root .hz-UtilsBlock, -html.cleanplaats-dark-mode .LoginComponent-root .hz-Divider { - background: transparent !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root, -html.cleanplaats-dark-mode .LoginComponent-root span, -html.cleanplaats-dark-mode .LoginComponent-root div, -html.cleanplaats-dark-mode .LoginComponent-root label, -html.cleanplaats-dark-mode .LoginComponent-root strong, -html.cleanplaats-dark-mode .LoginComponent-root .hz-Text, -html.cleanplaats-dark-mode .LoginComponent-root .u-colorTextPrimary, -html.cleanplaats-dark-mode .LoginComponent-root .input-label { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-Divider, -html.cleanplaats-dark-mode .LoginComponent-root .hz-Text--bodySmall, -html.cleanplaats-dark-mode .LoginComponent-root .LoginComponent-passwordRecoveryLink, -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-footer, -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-footer * { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root a, -html.cleanplaats-dark-mode .LoginComponent-root .hz-Link { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField, -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-footer, -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-formControl { - background: transparent !important; - border-color: var(--cleanplaats-dark-border) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-formControl { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - border-radius: 8px !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-formControl:focus-within { - border-color: rgba(140, 200, 255, 0.42) !important; - box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.24) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-input, -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-input::placeholder { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-suffix, -html.cleanplaats-dark-mode .LoginComponent-root .hz-TextField-suffix button { - background: transparent !important; - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary, -html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton { - border-radius: 8px !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary { - background: var(--cleanplaats-dark-accent) !important; - border: 1px solid var(--cleanplaats-dark-accent) !important; - color: #ffffff !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary:hover, -html.cleanplaats-dark-mode .LoginComponent-root .hz-Button--primary:focus-visible { - background: #2892eb !important; - border-color: #2892eb !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButtonIcon { - display: inline-flex !important; - align-items: center !important; - justify-content: center !important; - width: 28px !important; - height: 28px !important; - min-width: 28px !important; - min-height: 28px !important; - border-radius: 999px !important; - background: #ffffff !important; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18) !important; - overflow: visible !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton:hover, -html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButton:focus-visible { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: rgba(140, 200, 255, 0.24) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-InputContainer { - background: transparent !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input { - border: 1px solid rgba(226, 235, 244, 0.72) !important; - background: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input:hover, -html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input:focus { - border-color: rgba(140, 200, 255, 0.42) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-SelectionInput-Input:checked { - background: var(--cleanplaats-dark-link) !important; - border-color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .hz-SvgIconCheckmark { - opacity: 1 !important; - filter: invert(0.9) sepia(0.08) saturate(2.4) hue-rotate(178deg) - brightness(1.03) contrast(0.94) !important; -} - -html.cleanplaats-dark-mode .LoginComponent-root .LoginGoogleButton-googleButtonLogo, -html.cleanplaats-dark-mode .LoginComponent-root .hz-SvgAssetSocialBadgeGoogle { - filter: none !important; - opacity: 1 !important; - width: 20px !important; - height: 20px !important; - min-width: 20px !important; - min-height: 20px !important; -} - -html.cleanplaats-dark-mode .hz-Inpage, -html.cleanplaats-dark-mode .hz-Inpage.hz-Inpage--info, -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-body { - background: rgba(31, 42, 54, 0.72) !important; - background-color: rgba(31, 42, 54, 0.72) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-title, -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-title *, -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-body, -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-body * { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-icon { - color: #8cc8ff !important; -} - -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-icon .hz-SvgIcon, -html.cleanplaats-dark-mode .hz-Inpage .hz-Inpage-icon .hz-Icon { - filter: invert(0.76) sepia(0.18) saturate(2.8) hue-rotate(175deg) - brightness(1.02) contrast(0.95) !important; - opacity: 1 !important; -} - -html.cleanplaats-dark-mode .LinksBlock-root .LinksBlock-icon .hz-SvgIcon, -html.cleanplaats-dark-mode .LinksBlock-root .LinksBlock-icon .hz-Icon { - opacity: 1 !important; - filter: invert(0.72) sepia(0.08) saturate(3) hue-rotate(175deg) - brightness(1.05) contrast(0.92) !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge .hz-Button--primary { - background: var(--cleanplaats-dark-accent) !important; - border-color: transparent !important; - color: #f7fbff !important; -} - -html.cleanplaats-dark-mode .hz-LoginNudge .hz-Button--primary:hover, -html.cleanplaats-dark-mode .hz-LoginNudge .hz-Button--primary:focus-visible { - background: #2b8fe2 !important; - color: #ffffff !important; -} - -html.cleanplaats-dark-mode .hz-StructuredListing, -html.cleanplaats-dark-mode .hz-Listing, -html.cleanplaats-dark-mode article.hz-StructuredListing { - background: transparent !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Listing-title, -html.cleanplaats-dark-mode .hz-StructuredListing-title, -html.cleanplaats-dark-mode .hz-Listing-group--title-description, -html.cleanplaats-dark-mode .hz-Listing-group--title-description *, -html.cleanplaats-dark-mode .hz-Listing-coverLink .hz-Listing-title, -html.cleanplaats-dark-mode .hz-Listing-coverLink-new .hz-Listing-title, -html.cleanplaats-dark-mode .hz-StructuredListing-body .hz-StructuredListing-title, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h1, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h2, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h3, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h4, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h5, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink > h6, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h1, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h2, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h3, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h4, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h5, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new > h6 { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-Listing-price, -html.cleanplaats-dark-mode .hz-StructuredListing .hz-Title, -html.cleanplaats-dark-mode .hz-StructuredListing .hz-Title *, -html.cleanplaats-dark-mode .hz-Listing-priority, -html.cleanplaats-dark-mode .hz-Listing-priority span { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Listing-description, -html.cleanplaats-dark-mode .hz-Listing-attributes, -html.cleanplaats-dark-mode .hz-Listing-attributes *, -html.cleanplaats-dark-mode .hz-Listing-seller-name, -html.cleanplaats-dark-mode .hz-Listing-seller-name-new, -html.cleanplaats-dark-mode .hz-Listing-sellerName, -html.cleanplaats-dark-mode .hz-Listing-sellerName-new, -html.cleanplaats-dark-mode .hz-StructuredListing-subtitle, -html.cleanplaats-dark-mode .hz-StructuredListing-body > div:not(.hz-Title), -html.cleanplaats-dark-mode .hz-StructuredListing-body > span:not(.hz-StructuredListing-title) { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-StructuredListing .hz-Image-container, -html.cleanplaats-dark-mode .hz-Listing .hz-Image-container, -html.cleanplaats-dark-mode article.hz-StructuredListing .hz-Image-container { - background: rgba(31, 42, 54, 0.52) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-StructuredListing .hz-Image, -html.cleanplaats-dark-mode .hz-Listing .hz-Image, -html.cleanplaats-dark-mode article.hz-StructuredListing .hz-Image { - background: transparent !important; -} - -html.cleanplaats-dark-mode .Skeleton-noShadow, -html.cleanplaats-dark-mode .Skeleton-border, -html.cleanplaats-dark-mode .Skeleton-base, -html.cleanplaats-dark-mode .Skeleton-base.Skeleton-text, -html.cleanplaats-dark-mode [class*="Skeleton"], -html.cleanplaats-dark-mode [class*="Skeleton-"], -html.cleanplaats-dark-mode .hz-StructuredListing.Skeleton-noShadow, -html.cleanplaats-dark-mode .hz-StructuredListing .hz-StructuredListing-image.Skeleton-border { - background: rgba(31, 42, 54, 0.52) !important; - background-color: rgba(31, 42, 54, 0.52) !important; - background-image: none !important; - border-color: rgba(120, 143, 166, 0.16) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .Skeleton-base::before, -html.cleanplaats-dark-mode .Skeleton-base.Skeleton-withAnimation::before, -html.cleanplaats-dark-mode [class*="Skeleton-base"]::before, -html.cleanplaats-dark-mode [class*="Skeleton-withAnimation"]::before { - background: linear-gradient( - 90deg, - rgba(31, 42, 54, 0) 0, - rgba(49, 65, 82, 0.45) 50%, - rgba(31, 42, 54, 0.52) 100% - ) !important; - background-color: rgba(31, 42, 54, 0.52) !important; - background-image: linear-gradient( - 90deg, - rgba(31, 42, 54, 0) 0, - rgba(49, 65, 82, 0.45) 50%, - rgba(31, 42, 54, 0.52) 100% - ) !important; -} - -html.cleanplaats-dark-mode .ListingHeader-actionsContainer, -html.cleanplaats-dark-mode .ListingHeader-header, -html.cleanplaats-dark-mode .ListingHeader-action, -html.cleanplaats-dark-mode .ListingHeader-title, -html.cleanplaats-dark-mode .ListingHeader-price { - background: transparent !important; - border-color: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ShippingInformation-deliveryLabel { - background: rgba(31, 42, 54, 0.32) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ShippingInformation-deliveryLabel:hover { - background: rgba(38, 51, 66, 0.42) !important; - border-color: rgba(140, 200, 255, 0.18) !important; -} - -html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-shippingModalLink, -html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-buyerProtectionModalLink { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-shippingModalLink:hover, -html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-shippingModalLink:focus-visible, -html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-buyerProtectionModalLink:hover, -html.cleanplaats-dark-mode .ListingHeader-header .ModalLink-buyerProtectionModalLink:focus-visible { - background: rgba(140, 200, 255, 0.05) !important; - border: 0 !important; - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .ListingHeader-action .hz-Link, -html.cleanplaats-dark-mode .ListingHeader-action .hz-Button { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Modal-Header, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Modal-Content, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .PaymentRequestComposer-module-container-ATW7t, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .PaymentRequestComposer-module-optionsWrapper-xvzJq, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .OBPTransactionSupport-module-root-iPGCb { - background: var(--cleanplaats-dark-bg-elevated) !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Title, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Text, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal strong, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-colorTextPrimary { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-colorTextSecondary, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-textStyleBodySmall, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .OBPTransactionSupport-module-root-iPGCb .hz-Text { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-backgroundColorBackgroundSecondary, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .u-backgroundColorBackgroundDefault, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-UtilsBlock.u-backgroundColorBackgroundSecondary, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-UtilsBlock.u-backgroundColorBackgroundDefault { - background: var(--cleanplaats-dark-bg-soft) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingApp-module-root-NAusX, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Header-module-root-Ws2Y3, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-listSection-gNscY, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-root-StCL_, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .CostPrice-module-root-eUO5p, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Gutter-module-root-YYL5n { - background: var(--cleanplaats-dark-bg-soft) !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2 { - border-radius: 12px !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-root-StCL_ { - background: var(--cleanplaats-dark-bg-soft) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li { - background: transparent !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:focus-visible, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:focus-visible, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:focus-visible { - background: var(--cleanplaats-dark-bg-soft-hover) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:focus-visible { - background: transparent !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:hover *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOptionsByType-module-list-vmgiN li:focus-visible *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:hover *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingOption-module-root-g9k_o:focus-visible *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:hover *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .ShippingServiceType-module-clickable-IwuV2:focus-visible * { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:focus-visible, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:focus-visible { - background: var(--cleanplaats-dark-bg-soft-hover) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:hover *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-root-KjQzq:focus-visible *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:hover *, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .Row-module-clickable-Qrm6d:focus-visible * { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-TextField-formControl, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-TextField-input { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-TextField-prefix { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--action-image, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--icon-button { - background: transparent !important; - border-color: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--action-image:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--action-image:focus-visible, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--icon-button:hover, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Button--icon-button:focus-visible { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: var(--cleanplaats-dark-border) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Link { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Icon, -html.cleanplaats-dark-mode .ReactModal__Content.hz-Modal .hz-Asset { - opacity: 1 !important; - filter: invert(0.82) sepia(0.06) saturate(3) hue-rotate(175deg) - brightness(1.08) contrast(0.96) !important; -} - -html.cleanplaats-dark-mode .ListingHeader-action .hz-Link:hover, -html.cleanplaats-dark-mode .ListingHeader-action .hz-Link:focus-visible, -html.cleanplaats-dark-mode .ListingHeader-action .hz-Button:hover, -html.cleanplaats-dark-mode .ListingHeader-action .hz-Button:focus-visible { - background: rgba(140, 200, 255, 0.05) !important; - border: 0 !important; -} - -html.cleanplaats-dark-mode button.hz-Link.hz-Link--standalone[type="button"][role="link"], -html.cleanplaats-dark-mode button.hz-Link.hz-Link--standalone[type="button"][role="link"]:hover, -html.cleanplaats-dark-mode button.hz-Link.hz-Link--isolated[type="button"][role="link"], -html.cleanplaats-dark-mode button.hz-Link.hz-Link--isolated[type="button"][role="link"]:hover, -html.cleanplaats-dark-mode button.hz-Link.hz-Link--standalone[type="button"][role="link"]:focus-visible { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Breadcrumb .hz-Link, -html.cleanplaats-dark-mode .hz-Breadcrumb .hz-Link:hover, -html.cleanplaats-dark-mode .hz-Breadcrumb .hz-Link:focus-visible { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="hz-TabNext"], -html.cleanplaats-dark-mode [role="tablist"], -html.cleanplaats-dark-mode [role="tab"], -html.cleanplaats-dark-mode .hz-TabNext { - background: transparent !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-TabNext--active, -html.cleanplaats-dark-mode .hz-TabNextButton--active, -html.cleanplaats-dark-mode [role="tab"][aria-selected="true"] { - color: var(--cleanplaats-dark-link) !important; - border-color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-TabNext:hover, -html.cleanplaats-dark-mode .hz-TabNext:focus-visible, -html.cleanplaats-dark-mode .hz-TabNextButton:hover, -html.cleanplaats-dark-mode .hz-TabNextButton:focus-visible, -html.cleanplaats-dark-mode [role="tab"]:hover, -html.cleanplaats-dark-mode [role="tab"]:focus-visible { - background: rgba(140, 200, 255, 0.06) !important; - border-color: rgba(140, 200, 255, 0.18) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-TabNext:hover *, -html.cleanplaats-dark-mode .hz-TabNext:focus-visible *, -html.cleanplaats-dark-mode .hz-TabNextButton:hover *, -html.cleanplaats-dark-mode .hz-TabNextButton:focus-visible *, -html.cleanplaats-dark-mode [role="tab"]:hover *, -html.cleanplaats-dark-mode [role="tab"]:focus-visible * { - color: inherit !important; -} - -html.cleanplaats-dark-mode .CarAttributes-root, -html.cleanplaats-dark-mode .CarAttributesTabs-panelContainer, -html.cleanplaats-dark-mode .CarAttributesTabs-itemLabel, -html.cleanplaats-dark-mode .CarAttributesTabs-itemValue, -html.cleanplaats-dark-mode .CarAttributesTabs-valueWithoutLabel { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .CarAttributesTabs-itemLabel, -html.cleanplaats-dark-mode .CarAttributesTabs-itemValue, -html.cleanplaats-dark-mode .CarAttributesTabs-valueWithoutLabel { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-TabNext--active:hover, -html.cleanplaats-dark-mode .hz-TabNext--active:focus-visible, -html.cleanplaats-dark-mode .hz-TabNextButton--active:hover, -html.cleanplaats-dark-mode .hz-TabNextButton--active:focus-visible, -html.cleanplaats-dark-mode [role="tab"][aria-selected="true"]:hover, -html.cleanplaats-dark-mode [role="tab"][aria-selected="true"]:focus-visible { - background: rgba(140, 200, 255, 0.08) !important; - border-color: var(--cleanplaats-dark-link) !important; - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode input, -html.cleanplaats-dark-mode select, -html.cleanplaats-dark-mode textarea, -html.cleanplaats-dark-mode .hz-Nav-dropdown-toggle, -html.cleanplaats-dark-mode .hz-Header-Autocomplete-input, -html.cleanplaats-dark-mode .hz-TextField-input { - background: transparent !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode button, -html.cleanplaats-dark-mode .hz-Button, -html.cleanplaats-dark-mode .hz-Action { - background: var(--cleanplaats-dark-bg-soft) !important; - border-color: var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"], -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"] { - background: rgba(28, 39, 52, 0.98) !important; - border: 1px solid rgba(236, 244, 252, 0.48) !important; - color: #ffffff !important; - box-shadow: - 0 10px 24px rgba(0, 0, 0, 0.38), - 0 0 0 1px rgba(14, 20, 28, 0.42) !important; - backdrop-filter: blur(6px) !important; -} - -html.cleanplaats-dark-mode .hz-Action-icon .hz-SvgIconHeart, -html.cleanplaats-dark-mode .hz-Action-icon .hz-SvgIconHeart::before, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"] .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"] .hz-Icon { - color: #ffffff !important; - opacity: 1 !important; - font-size: 1.12em !important; - -webkit-text-stroke: 0.6px rgba(255, 255, 255, 1) !important; - filter: brightness(0) invert(1) drop-shadow(0 0 1px rgba(255, 255, 255, 0.9)) !important; - text-shadow: - 0 0 1px rgba(255, 255, 255, 1), - 0 0 12px rgba(255, 255, 255, 0.18) !important; -} - -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:hover, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:focus-visible, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:hover, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:focus-visible, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:hover, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:focus-visible { - background: rgba(38, 52, 68, 1) !important; - border-color: rgba(255, 255, 255, 0.72) !important; - color: #ffffff !important; -} - -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:hover .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--action-image:focus-visible .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:hover .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="favoriet"]:focus-visible .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:hover .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Favoriet"]:focus-visible .hz-Icon { - color: #ffffff !important; - -webkit-text-stroke: 0.7px rgba(255, 255, 255, 1) !important; - filter: brightness(0) invert(1) drop-shadow(0 0 2px rgba(255, 255, 255, 0.95)) !important; -} - -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Verwijder uit favorieten"], -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="verwijder uit favorieten"] { - background: rgba(30, 56, 82, 0.98) !important; - border-color: rgba(150, 214, 255, 0.7) !important; -} - -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="Verwijder uit favorieten"] .hz-Icon, -html.cleanplaats-dark-mode .hz-Action-icon .hz-Button--icon-button[aria-label*="verwijder uit favorieten"] .hz-Icon { - color: #c5ebff !important; - -webkit-text-stroke: 0.65px rgba(197, 235, 255, 1) !important; - filter: brightness(0) saturate(100%) invert(88%) sepia(18%) saturate(1044%) hue-rotate(176deg) brightness(102%) contrast(101%) !important; -} - -html.cleanplaats-dark-mode .hz-TextField-input, -html.cleanplaats-dark-mode .hz-TextField-input::placeholder, -html.cleanplaats-dark-mode .hz-Header-navBar a, -html.cleanplaats-dark-mode .hz-Header-navBar button, -html.cleanplaats-dark-mode .hz-CategoryMenuBar a, -html.cleanplaats-dark-mode .hz-CategoryMenuBar button, -html.cleanplaats-dark-mode .hz-CategoryMenuBar span { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Header-navBar [class*="Item"], -html.cleanplaats-dark-mode .hz-CategoryMenuBar [class*="Item"], -html.cleanplaats-dark-mode .hz-CategoryMenuBar [class*="expandToggle"] { - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar { - border-top: 1px solid var(--cleanplaats-dark-border-subtle) !important; - border-right: 0 !important; - border-bottom: 0 !important; - border-left: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar-topLevel { - border: 0 !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar-topLevelItems { - background: linear-gradient(180deg, rgba(24, 33, 44, 0.72) 0%, rgba(17, 22, 29, 0.92) 100%) !important; - border-top: 0 !important; - border-right: 0 !important; - border-bottom: 0 !important; - border-left: 0 !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-background { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-top: 1px solid var(--cleanplaats-dark-border-subtle) !important; - box-shadow: 0 18px 34px rgba(0, 0, 0, 0.34) !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar-list, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem { - background: transparent !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar-Item, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle { - background: transparent !important; - border-top: 0 !important; - border-bottom: 0 !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem a, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout i { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar .hz-SvgIcon, -html.cleanplaats-dark-mode .hz-CategoryMenuBar .hz-Icon, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout .hz-SvgIcon, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout .hz-Icon, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-SvgIcon, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Icon { - opacity: 1 !important; - filter: invert(0.72) sepia(0.08) saturate(3) hue-rotate(175deg) - brightness(1.05) contrast(0.92) !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar-Item:hover, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle:hover, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover { - background: rgba(140, 200, 255, 0.04) !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBar-Item:hover .hz-CategoryMenuBarItem-link, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle:hover button, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle:hover span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover a, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-listItem:hover i { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:hover, -html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:focus-visible, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:hover, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:focus-visible, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:hover, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:focus-visible { - background: rgba(140, 200, 255, 0.08) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:hover i, -html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:focus-visible i, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:hover i, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:focus-visible i, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:hover i, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:focus-visible i, -html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:hover span, -html.cleanplaats-dark-mode .hz-CategoryMenuBarItem-link:focus-visible span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:hover span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-foldout a:focus-visible span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:hover span, -html.cleanplaats-dark-mode .hz-CategoryMenuBar-expandToggle button:focus-visible span { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Custom-Options-container, -html.cleanplaats-dark-mode .hz-Options-container, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu, -html.cleanplaats-dark-mode [role="listbox"].hz-Custom-Options-container, -html.cleanplaats-dark-mode [role="listbox"].hz-Options-container, -html.cleanplaats-dark-mode [role="listbox"].hz-Nav-dropdown-menu { - background: var(--cleanplaats-dark-bg-elevated) !important; - color: var(--cleanplaats-dark-text) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - box-shadow: 0 16px 32px rgba(0, 0, 0, 0.42) !important; -} - -html.cleanplaats-dark-mode .hz-Custom-Options-container *, -html.cleanplaats-dark-mode .hz-Options-container *, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu * { - color: var(--cleanplaats-dark-text) !important; - border-color: transparent !important; -} - -html.cleanplaats-dark-mode .hz-Custom-Options-container [aria-selected="true"], -html.cleanplaats-dark-mode .hz-Options-container [aria-selected="true"], -html.cleanplaats-dark-mode .hz-Custom-Options-container [class*="selected"], -html.cleanplaats-dark-mode .hz-Options-container [class*="selected"], -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [aria-selected="true"], -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="selected"] { - background: rgba(140, 200, 255, 0.12) !important; - color: #f5faff !important; -} - -html.cleanplaats-dark-mode .hz-Custom-Options-container [role="option"], -html.cleanplaats-dark-mode .hz-Options-container [role="option"], -html.cleanplaats-dark-mode .hz-Custom-Options-container li, -html.cleanplaats-dark-mode .hz-Options-container li, -html.cleanplaats-dark-mode .hz-Custom-Options-container [class*="option"], -html.cleanplaats-dark-mode .hz-Options-container [class*="option"], -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu li, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="pill"] { - background: transparent !important; -} - -html.cleanplaats-dark-mode .hz-Custom-Options-container [role="option"]:hover, -html.cleanplaats-dark-mode .hz-Options-container [role="option"]:hover, -html.cleanplaats-dark-mode .hz-Custom-Options-container li:hover, -html.cleanplaats-dark-mode .hz-Options-container li:hover, -html.cleanplaats-dark-mode .hz-Custom-Options-container [class*="option"]:hover, -html.cleanplaats-dark-mode .hz-Options-container [class*="option"]:hover, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu li:hover, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="pill"]:hover { - background: rgba(140, 200, 255, 0.08) !important; -} - -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill { - border-bottom: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--horizontal { - color: var(--cleanplaats-dark-text-muted) !important; - background: rgba(255, 255, 255, 0.03) !important; -} - -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api span, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api div, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Nav-pill--api strong { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu .hz-Icon, -html.cleanplaats-dark-mode .hz-Nav-dropdown-menu [class*="Icon"] { - color: var(--cleanplaats-dark-text-muted) !important; - opacity: 1 !important; -} - -html.cleanplaats-dark-mode input::placeholder, -html.cleanplaats-dark-mode textarea::placeholder { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-Dropdown { - background: transparent !important; - border-color: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Dropdown-input { - background: rgba(31, 42, 54, 0.42) !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Dropdown-input:focus, -html.cleanplaats-dark-mode .hz-Dropdown-input:focus-visible { - border-color: rgba(140, 200, 255, 0.42) !important; - box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; - outline: 0 !important; -} - -html.cleanplaats-dark-mode .hz-Link:hover, -html.cleanplaats-dark-mode .hz-Link:focus-visible, -html.cleanplaats-dark-mode button.hz-Link:hover, -html.cleanplaats-dark-mode button.hz-Link:focus-visible { - background: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Button--primary, -html.cleanplaats-dark-mode .hz-Button--cta, -html.cleanplaats-dark-mode .hz-TabNextButton--active:hover { - background: var(--cleanplaats-dark-accent) !important; - border-color: var(--cleanplaats-dark-accent) !important; - color: #f7fbff !important; -} - -html.cleanplaats-dark-mode .hz-Listing a:hover, -html.cleanplaats-dark-mode .hz-StructuredListing a:hover, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new:hover, -html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink:hover, -html.cleanplaats-dark-mode .hz-StructuredListing .hz-Link--block:hover { - background: transparent !important; -} - -html.cleanplaats-dark-mode .cleanplaats-seller-topright-mobile { - background: rgba(31, 42, 54, 0.88) !important; - border: 1px solid rgba(120, 143, 166, 0.18) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .cleanplaats-seller-name-mobile, -html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile, -html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile svg { - color: var(--cleanplaats-dark-text-muted) !important; - stroke: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover { - background: rgba(140, 200, 255, 0.08) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover svg, -html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:active svg { - stroke: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-row { - border-top-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn { - background: var(--cleanplaats-dark-bg-soft) !important; - color: var(--cleanplaats-dark-text) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn:hover { - background: #c14444 !important; - color: #fff !important; - border-color: #c14444 !important; -} - -html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn:disabled, -html.cleanplaats-dark-mode .cleanplaats-detail-blacklist-btn[aria-disabled="true"] { - background: rgba(166, 189, 214, 0.08) !important; - color: var(--cleanplaats-dark-text-muted) !important; - border-color: rgba(166, 189, 214, 0.14) !important; -} - -@media (hover: none), (pointer: coarse) { - html.cleanplaats-dark-mode .hz-Listing a:hover, - html.cleanplaats-dark-mode .hz-StructuredListing a:hover, - html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new:hover, - html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink:hover, - html.cleanplaats-dark-mode .hz-StructuredListing .hz-Link--block:hover, - html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover { - background: transparent !important; - border-color: inherit !important; - box-shadow: none !important; - } - - html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover svg { - stroke: inherit !important; - } -} - -@media (max-width: 700px) { - html.cleanplaats-dark-mode .hz-Listing a:hover, - html.cleanplaats-dark-mode .hz-StructuredListing a:hover, - html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink-new:hover, - html.cleanplaats-dark-mode .hz-Listing .hz-Listing-coverLink:hover, - html.cleanplaats-dark-mode .hz-StructuredListing .hz-Link--block:hover, - html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover { - background: transparent !important; - border-color: inherit !important; - box-shadow: none !important; - } - - html.cleanplaats-dark-mode .cleanplaats-blacklist-btn-mobile:hover svg { - stroke: inherit !important; - } -} - -html.cleanplaats-dark-mode .hz-Filters, -html.cleanplaats-dark-mode .hz-Filters *, -html.cleanplaats-dark-mode .hz-Filter, -html.cleanplaats-dark-mode .hz-Filter * { - border-color: var(--cleanplaats-dark-border-subtle); -} - -html.cleanplaats-dark-mode .hz-Filters, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter, -html.cleanplaats-dark-mode .hz-Filters .hz-Accordion, -html.cleanplaats-dark-mode .hz-Filters .hz-Accordion-accordionItem, -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionBody, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter-fields, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter-radioSection { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-Filter-headingSection, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter-headingSection *, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter-attribute, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter-attribute *, -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-content, -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-content *, -html.cleanplaats-dark-mode .hz-Filters .category-header { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionHeader, -html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-header, -html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-headerButton { - background: rgba(31, 42, 54, 0.42) !important; - color: var(--cleanplaats-dark-text) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; - border-radius: 10px !important; - padding: 0 14px !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionHeader:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-header:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-headerButton:hover { - background: rgba(38, 51, 66, 0.62) !important; - border-color: rgba(140, 200, 255, 0.18) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-expandToggleIcon, -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionItem-accordionHeader i, -html.cleanplaats-dark-mode .hz-Filters .hz-CollapsibleFilter-header i { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-AccordionHeader-content { - padding-right: 12px !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-TextField-formControl, -html.cleanplaats-dark-mode .hz-Filters .hz-TextField-footer { - background: rgba(31, 42, 54, 0.42) !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-TextField, -html.cleanplaats-dark-mode .hz-Filters .hz-TextField--prefixed { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-TextField-input, -html.cleanplaats-dark-mode .hz-Filters .hz-TextField-prefix { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-TextField-input, -html.cleanplaats-dark-mode .hz-Filters .hz-TextField-input::placeholder, -html.cleanplaats-dark-mode .hz-Filters .hz-TextField-prefix, -html.cleanplaats-dark-mode .hz-Filters .input-label { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput:focus-within, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one:focus-visible, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two:focus-visible { - background: rgba(140, 200, 255, 0.08) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput *, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one *, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two * { - color: inherit !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-LabelText, -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Container, -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Body, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-one, -html.cleanplaats-dark-mode .hz-Filters .hz-Link.hz-Level-two { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Counter, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter-attribute-text, -html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more, -html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more i { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more { - background: rgba(31, 42, 54, 0.22) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; - border-radius: 10px !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:focus-visible { - background: rgba(38, 51, 66, 0.52) !important; - color: var(--cleanplaats-dark-text) !important; - border-color: rgba(140, 200, 255, 0.18) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:hover i, -html.cleanplaats-dark-mode .hz-Filters .hz-Level-two--more:focus-visible i { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input { - appearance: none !important; - -webkit-appearance: none !important; - background: transparent !important; - border: 1px solid rgba(226, 235, 244, 0.72) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input:focus { - border-color: rgba(140, 200, 255, 0.64) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput-Input:checked { - border-color: var(--cleanplaats-dark-link) !important; - background: - radial-gradient(circle at center, var(--cleanplaats-dark-link) 0 42%, transparent 43%) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput--Checkbox .hz-SelectionInput-Input:checked { - background: var(--cleanplaats-dark-link) !important; - border-color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-SelectionInput--Checkbox .hz-SelectionInput-Input:checked::after { - color: #0f1720 !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-Filter a:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter button:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter label:hover, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter a:hover *, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter button:hover *, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter label:hover * { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Filters .hz-Filter a:hover .hz-SelectionInput-Counter, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter button:hover .hz-SelectionInput-Counter, -html.cleanplaats-dark-mode .hz-Filters .hz-Filter label:hover .hz-SelectionInput-Counter { - color: #d6e3ef !important; -} - -html.cleanplaats-dark-mode .hz-Pills.stickyPills, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .pillsContainer, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .chipsSlider, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .innerWrapper, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .pillWrapper, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Link, -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pills { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X, -html.cleanplaats-dark-mode .HighlightGuide_targetNormal__a7Lbf.CategorySuggestionTooltip_stickyBg__pQ41X { - background: linear-gradient(180deg, rgba(24, 33, 44, 0.94) 0%, rgba(20, 28, 37, 0.98) 100%) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Text, -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .CategorySuggestionTooltip_textRegular__25s5a { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip, -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill { - background: rgba(31, 42, 54, 0.42) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill i, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip i { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill:hover, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill:focus-visible, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip:hover, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip:focus-visible, -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill:hover, -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill:focus-visible { - background: rgba(38, 51, 66, 0.58) !important; - border-color: rgba(140, 200, 255, 0.18) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill.is-active, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip.is-active, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill[aria-pressed="true"], -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip[aria-pressed="true"], -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill.is-active, -html.cleanplaats-dark-mode .CategorySuggestionTooltip_stickyBg__pQ41X .hz-Pill[aria-pressed="true"] { - background: rgba(140, 200, 255, 0.12) !important; - border-color: rgba(140, 200, 255, 0.24) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill.is-active i, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip.is-active i, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Pill[aria-pressed="true"] i, -html.cleanplaats-dark-mode .hz-Pills.stickyPills .hz-Filter-chip[aria-pressed="true"] i { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .hz-SuggestedSearches, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Accordion, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Accordion-accordionItem { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionHeader, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionHeader { - background: rgba(31, 42, 54, 0.42) !important; - color: var(--cleanplaats-dark-text) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionHeader:hover, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionHeader:focus-visible, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionHeader:hover, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionHeader:focus-visible { - background: rgba(38, 51, 66, 0.58) !important; - border-color: rgba(140, 200, 255, 0.18) !important; -} - -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionHeader-content, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionHeader-content *, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionHeader-expandToggleIcon { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-SuggestedSearches-accordionBody, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-AccordionItem-accordionBody { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Link.hz-Link--standalone { - background: transparent !important; - color: var(--cleanplaats-dark-link) !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Link.hz-Link--standalone:hover, -html.cleanplaats-dark-mode .hz-SuggestedSearches .hz-Link.hz-Link--standalone:focus-visible { - background: transparent !important; - color: #9fd1ff !important; - text-decoration-color: rgba(159, 209, 255, 0.7) !important; -} - -html.cleanplaats-dark-mode img { - opacity: 0.96; -} - -html.cleanplaats-dark-mode .hz-Header-logo img, -html.cleanplaats-dark-mode .hz-Header-logo .hz-Header-logo-desktop, -html.cleanplaats-dark-mode .hz-Header-logo .hz-Header-logo-mobile { - opacity: 1 !important; - filter: none !important; -} - -html.cleanplaats-dark-mode .hz-Header-logo { - background: transparent !important; - border: 0 !important; - border-radius: 0 !important; - padding: 0 !important; - box-shadow: none !important; -} - -.cleanplaats-panel.cleanplaats-dark-mode { - background: var(--cleanplaats-dark-bg-elevated); - color: var(--cleanplaats-dark-text); - box-shadow: 0 8px 30px rgba(0, 0, 0, 0.45); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-header, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-content, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-grid, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stats, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-terms-modal-content { - background: var(--cleanplaats-dark-bg-elevated); - color: var(--cleanplaats-dark-text); - border-color: var(--cleanplaats-dark-border); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-header h3, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-option-label, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-section-title, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stat-label, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-title { - color: var(--cleanplaats-dark-text); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-text, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-toggle, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stat-label { - color: var(--cleanplaats-dark-text-muted); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stats .cleanplaats-section-title { - color: rgba(226, 232, 240, 0.82); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-stats .cleanplaats-stat-label { - color: rgba(226, 232, 240, 0.74); - font-weight: 500; -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle { - color: var(--cleanplaats-dark-text); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-track { - background: linear-gradient(135deg, #121922 0%, #223041 100%); - box-shadow: inset 0 0 0 1px rgba(166, 189, 214, 0.12); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-track { - background: linear-gradient(135deg, #466f97 0%, #e1bf63 100%); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-icon-moon { - color: rgba(225, 233, 242, 0.9); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-icon-sun { - color: rgba(255, 215, 109, 0.96); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle-thumb { - background: linear-gradient(180deg, #d6e3ef 0%, #b2c4d6 100%); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-theme-toggle[data-theme="light"] .cleanplaats-theme-toggle-thumb { - background: linear-gradient(180deg, #fff0ba 0%, #ffcd54 100%); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:hover, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:focus { - color: var(--cleanplaats-dark-link); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:hover .cleanplaats-contact-title, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:focus .cleanplaats-contact-title { - color: var(--cleanplaats-dark-link); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:hover .cleanplaats-contact-icon, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact:focus .cleanplaats-contact-icon { - color: var(--cleanplaats-dark-link); - border-color: rgba(140, 200, 255, 0.22); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-contact-icon, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-tooltip-icon { - background: var(--cleanplaats-dark-bg-soft); - color: var(--cleanplaats-dark-text); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-term-input, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-add-term-btn, -.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-blacklist-close, -.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-terms-close { - background: var(--cleanplaats-dark-bg-soft); - color: var(--cleanplaats-dark-text); - border-color: var(--cleanplaats-dark-border); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown { - color-scheme: dark; - background: var(--cleanplaats-dark-bg-soft); - color: var(--cleanplaats-dark-text); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown option, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown optgroup { - background: var(--cleanplaats-dark-bg-elevated); - color: var(--cleanplaats-dark-text); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button { - box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button:hover, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button:hover, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-results-dropdown:hover, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-add-term-btn:hover, -.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-blacklist-close:hover, -.cleanplaats-panel.cleanplaats-dark-mode #cleanplaats-terms-close:hover { - background: #253240; -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:hover, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-button.secondary:focus-visible { - background: #2b3948; - border-color: rgba(166, 189, 214, 0.2); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button:hover, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-bmc-button:focus { - box-shadow: 0 12px 26px rgba(0, 0, 0, 0.34); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-badge { - background: rgba(31, 127, 209, 0.22); - color: #b9e0ff; -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-header-logo { - background: #f8fafc; - box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08); -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-switch-slider { - background-color: #4c5f72; -} - -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-checkbox input:checked + .cleanplaats-switch-slider, -.cleanplaats-panel.cleanplaats-dark-mode .cleanplaats-switch input:checked + .cleanplaats-switch-slider { - background-color: var(--cleanplaats-dark-accent); -} - -html.cleanplaats-dark-mode .cleanplaats-onboarding-content, -html.cleanplaats-dark-mode .cleanplaats-info-card, -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content, -html.cleanplaats-dark-mode .cleanplaats-terms-modal-content { - background: var(--cleanplaats-dark-bg-elevated) !important; - color: var(--cleanplaats-dark-text) !important; - border-color: var(--cleanplaats-dark-border) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-info-overlay { - background: rgba(15, 23, 42, 0.55) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal, -html.cleanplaats-dark-mode .cleanplaats-terms-modal { - background: var(--cleanplaats-dark-bg-elevated) !important; - box-shadow: 0 16px 32px rgba(0, 0, 0, 0.45) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content h4, -html.cleanplaats-dark-mode .cleanplaats-terms-modal-content h4, -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content em, -html.cleanplaats-dark-mode .cleanplaats-terms-modal-content em, -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content li span, -html.cleanplaats-dark-mode .cleanplaats-terms-modal-content li span { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content li, -html.cleanplaats-dark-mode .cleanplaats-terms-modal-content li { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; -} - -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content li:hover, -html.cleanplaats-dark-mode .cleanplaats-terms-modal-content li:hover { - background: #253240 !important; -} - -html.cleanplaats-dark-mode .cleanplaats-blacklist-modal-content ul::-webkit-scrollbar-thumb, -html.cleanplaats-dark-mode .cleanplaats-terms-modal-content ul::-webkit-scrollbar-thumb { - background-color: #55677a !important; -} - -html.cleanplaats-dark-mode .Listing-root, -html.cleanplaats-dark-mode .Gallery-root, -html.cleanplaats-dark-mode .Gallery-container, -html.cleanplaats-dark-mode .SellerInfoExpanded-root, -html.cleanplaats-dark-mode .SellerContactOptions-root, -html.cleanplaats-dark-mode .SellerLocationSection-root, -html.cleanplaats-dark-mode .hz-Breadcrumbs, -html.cleanplaats-dark-mode .hz-FooterCategoryLinks, -html.cleanplaats-dark-mode .hz-FooterCategoryLinks-block { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Breadcrumbs, -html.cleanplaats-dark-mode .SellerInfoExpanded-root, -html.cleanplaats-dark-mode .SellerContactOptions-root, -html.cleanplaats-dark-mode .SellerLocationSection-root, -html.cleanplaats-dark-mode .hz-FooterCategoryLinks { - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .hz-BreadcrumbLabel, -html.cleanplaats-dark-mode .hz-CurrentPage, -html.cleanplaats-dark-mode .SellerHeader-info p, -html.cleanplaats-dark-mode .SellerTrustIndicator-body, -html.cleanplaats-dark-mode .SellerLocationSection-locationText, -html.cleanplaats-dark-mode .hz-FooterCategoryLinks-title { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .SellerHeader-nameContainer, -html.cleanplaats-dark-mode .SellerTrustIndicator-title, -html.cleanplaats-dark-mode .SellerLocationSection-locationName, -html.cleanplaats-dark-mode .ListingHeader-title, -html.cleanplaats-dark-mode .ListingHeader-price, -html.cleanplaats-dark-mode .hz-FooterCategoryLinks-title, -html.cleanplaats-dark-mode .hz-Title { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .Gallery-container, -html.cleanplaats-dark-mode .carousel-root.Carousel-component, -html.cleanplaats-dark-mode .carousel .slide, -html.cleanplaats-dark-mode .Carousel-container, -html.cleanplaats-dark-mode .Carousel-image, -html.cleanplaats-dark-mode .HeroImage, -html.cleanplaats-dark-mode .HeroImage-root, -html.cleanplaats-dark-mode .HeroImage-container, -html.cleanplaats-dark-mode .slider-wrapper, -html.cleanplaats-dark-mode .slider, -html.cleanplaats-dark-mode .thumbs-wrapper, -html.cleanplaats-dark-mode .thumbs, -html.cleanplaats-dark-mode .thumb { - background: var(--cleanplaats-dark-bg-elevated) !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .HeroImage-image, -html.cleanplaats-dark-mode .HeroImage-image.hz-Image--fit, -html.cleanplaats-dark-mode .HeroImage-image.hz-Image--landscape { - background: transparent !important; -} - -html.cleanplaats-dark-mode .carousel-root.Carousel-component { - border-radius: 14px !important; - overflow: hidden !important; -} - -html.cleanplaats-dark-mode .carousel .control-arrow, -html.cleanplaats-dark-mode .Carousel-navigationButtons, -html.cleanplaats-dark-mode .Gallery-zoom, -html.cleanplaats-dark-mode .FavouriteButton-root { - background: rgba(24, 33, 44, 0.88) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24) !important; -} - -html.cleanplaats-dark-mode .carousel .control-arrow:hover, -html.cleanplaats-dark-mode .Carousel-navigationButtons:hover, -html.cleanplaats-dark-mode .Gallery-zoom:hover, -html.cleanplaats-dark-mode .FavouriteButton-root:hover { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: rgba(140, 200, 255, 0.24) !important; -} - -html.cleanplaats-dark-mode .Gallery-carouselIndexContainer, -html.cleanplaats-dark-mode .hz-Badge, -html.cleanplaats-dark-mode .hz-Badge--neutral, -html.cleanplaats-dark-mode .hz-Badge--neutral-inverse { - background: rgba(24, 33, 44, 0.92) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode .hz-Badge--success { - background: rgba(43, 125, 92, 0.24) !important; - border: 1px solid rgba(94, 193, 146, 0.28) !important; - color: #cbf2de !important; -} - -html.cleanplaats-dark-mode .SellerInfoExpanded-root, -html.cleanplaats-dark-mode .SellerContactOptions-root, -html.cleanplaats-dark-mode .SellerLocationSection-root { - background: linear-gradient(180deg, rgba(24, 33, 44, 0.78) 0%, rgba(20, 28, 37, 0.92) 100%) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - border-radius: 14px !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .SellerInfoExpanded-root { - background: transparent !important; - border-top: 1px solid rgba(120, 143, 166, 0.12) !important; - border-right: 0 !important; - border-bottom: 0 !important; - border-left: 0 !important; - border-radius: 0 !important; -} - -html.cleanplaats-dark-mode .SellerLocationSection-root { - background: transparent !important; - border-top: 1px solid rgba(120, 143, 166, 0.12) !important; - border-right: 0 !important; - border-bottom: 0 !important; - border-left: 0 !important; - border-radius: 0 !important; -} - -html.cleanplaats-dark-mode .SellerInfoExpanded-contentWrapper, -html.cleanplaats-dark-mode .SellerTrustIndicators-root, -html.cleanplaats-dark-mode .SellerTrustIndicator-root, -html.cleanplaats-dark-mode .SellerHeader-root, -html.cleanplaats-dark-mode .SellerHeader-infoContainer, -html.cleanplaats-dark-mode .SellerLocationSection-locationInfo, -html.cleanplaats-dark-mode .SellerLocationSection-locationMap, -html.cleanplaats-dark-mode .SellerOtherItemsContainer, -html.cleanplaats-dark-mode .SellerOtherItems-item { - background: transparent !important; - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode .SellerTrustIndicator-root + .SellerTrustIndicator-root, -html.cleanplaats-dark-mode .SellerOtherItems-item + .SellerOtherItems-item { - border-top: 1px solid rgba(120, 143, 166, 0.08) !important; -} - -html.cleanplaats-dark-mode .SellerTrustIndicator-iconWrapper, -html.cleanplaats-dark-mode .SellerProfilePicture-avatarContainer { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .SellerTrustIndicator-iconWrapper .hz-Icon, -html.cleanplaats-dark-mode .SellerTrustIndicator-iconWrapper [class*="SvgIcon"], -html.cleanplaats-dark-mode .SellerProfilePicture-avatarContainer .hz-Image { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode .SellerHeader-root, -html.cleanplaats-dark-mode .SellerTrustIndicator-root { - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .SellerHeader-root a, -html.cleanplaats-dark-mode .SellerTrustIndicator-root a { - background: transparent !important; - border: 0 !important; -} - -html.cleanplaats-dark-mode .SellerInfoExpanded-root .hz-Button--secondary, -html.cleanplaats-dark-mode .OneStepBidding-bidButton, -html.cleanplaats-dark-mode .SellerContactOptions-button, -html.cleanplaats-dark-mode .SellerOtherItems-header .hz-Button, -html.cleanplaats-dark-mode .SellerLocationSection-root .hz-Button { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - color: var(--cleanplaats-dark-text) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .SellerInfoExpanded-root .hz-Button--secondary:hover, -html.cleanplaats-dark-mode .OneStepBidding-bidButton:hover, -html.cleanplaats-dark-mode .SellerContactOptions-button:hover, -html.cleanplaats-dark-mode .SellerOtherItems-header .hz-Button:hover, -html.cleanplaats-dark-mode .SellerLocationSection-root .hz-Button:hover { - background: var(--cleanplaats-dark-bg-soft-hover) !important; - border-color: rgba(140, 200, 255, 0.24) !important; -} - -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-Button--primary { - background: var(--cleanplaats-dark-accent) !important; - border-color: var(--cleanplaats-dark-accent) !important; - color: #f7fbff !important; -} - -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField, -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField--prefixed, -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-footer { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-formControl { - background: var(--cleanplaats-dark-bg-soft) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-input, -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-prefix { - background: transparent !important; - color: var(--cleanplaats-dark-text) !important; - border: 0 !important; -} - -html.cleanplaats-dark-mode .SellerContactOptions-root .hz-TextField-formControl:focus-within { - border-color: rgba(140, 200, 255, 0.42) !important; - box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.2) !important; -} - -html.cleanplaats-dark-mode .SellerLocationSection-locationMap, -html.cleanplaats-dark-mode .Map-root, -html.cleanplaats-dark-mode .gm-style { - background: var(--cleanplaats-dark-bg-soft) !important; -} - -html.cleanplaats-dark-mode .SellerLocationSection-locationMap { - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - border-radius: 12px !important; - overflow: hidden !important; -} - -html.cleanplaats-dark-mode .hz-FooterCategoryLink, -html.cleanplaats-dark-mode .SellerInfoExpanded-root a, -html.cleanplaats-dark-mode .SellerLocationSection-root a, -html.cleanplaats-dark-mode .SellerOtherItemsContainer a, -html.cleanplaats-dark-mode .hz-Breadcrumbs a { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode .pageRoot, -html.cleanplaats-dark-mode #messagingClientRoot, -html.cleanplaats-dark-mode [class*="Messaging-module-root"] { - background: var(--cleanplaats-dark-bg) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationListView-module-leftUnitInner"], -html.cleanplaats-dark-mode [class*="ConversationListView-module-rightUnitInner"], -html.cleanplaats-dark-mode [class*="ConversationView-module-conversationMessages"], -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"], -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationsList"] { - background: var(--cleanplaats-dark-bg) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-root"], -html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-rootInner"], -html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-iconUnit"] { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-text"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-iconUnit"] .hz-Icon, -html.cleanplaats-dark-mode [class*="ContentPlaceholder-module-iconUnit"] [class*="Icon"] { - color: var(--cleanplaats-dark-text-muted) !important; - opacity: 0.85 !important; -} - -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"], -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationsList"], -html.cleanplaats-dark-mode [class*="ConversationView-module-conversationMessages"] { - border-color: var(--cleanplaats-dark-border-subtle) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField, -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-footer { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-formControl { - background: rgba(31, 42, 54, 0.52) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - border-radius: 12px !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-formControl:focus-within { - border-color: rgba(140, 200, 255, 0.42) !important; - box-shadow: inset 0 0 0 1px rgba(140, 200, 255, 0.18) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-input, -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-input::placeholder, -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-TextField-prefix, -html.cleanplaats-dark-mode [class*="ConversationListView-module-conversationListTop"] .hz-Icon { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationsList-module-listRoot"] { - background: transparent !important; - border: 0 !important; -} - -html.cleanplaats-dark-mode [class*="ConversationsList-module-listItem"] { - background: transparent !important; - border-top: 0 !important; - border-right: 0 !important; - border-bottom: 1px solid rgba(120, 143, 166, 0.12) !important; - border-left: 0 !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] { - background: transparent !important; - border: 0 !important; - border-radius: 0 !important; - box-shadow: none !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-rootOpen"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-root"]:hover, -html.cleanplaats-dark-mode [class*="ConversationItem-module-root"]:focus-within { - background: transparent !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] a, -html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] a:hover, -html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] a:focus-visible { - background: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-adTitle"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-meta"] strong, -html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], -html.cleanplaats-dark-mode [class*="MessageReadStatus-module-textStatus"] { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-rightUnit"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-body"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-latestMessageWrapper"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-root"] footer { - background: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-body"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-latestMessageWrapper"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-meta"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-meta"] div, -html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"], -html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"] * { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"] *, -html.cleanplaats-dark-mode [class*="MessageElement-module-meta"], -html.cleanplaats-dark-mode [class*="MessageElement-module-meta"] *, -html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"], -html.cleanplaats-dark-mode [class*="MessageReadStatus-module-root"] * { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"] strong, -html.cleanplaats-dark-mode [class*="ConversationItem-module-receivedDateUnit"] span, -html.cleanplaats-dark-mode [class*="MessageElement-module-meta"], -html.cleanplaats-dark-mode [class*="MessageElement-module-meta"] span, -html.cleanplaats-dark-mode [class*="MessageReadStatus-module-textStatus"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"], -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailProfilePictureUnit"], -html.cleanplaats-dark-mode [class*="Thumbnail-module-root"] { - background: rgba(31, 42, 54, 0.52) !important; - border-color: rgba(120, 143, 166, 0.16) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailProfilePictureUnit"] *, -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h1, -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h2, -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h3, -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h4, -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] h5, -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] span, -html.cleanplaats-dark-mode [class*="ConversationItem-module-thumbnailUnit"] strong { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ProfilePicture-module-root"] { - background: rgba(49, 65, 82, 0.95) !important; - border: 1px solid rgba(120, 143, 166, 0.18) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-badgeTrashcanWrapper"] .hz-Button, -html.cleanplaats-dark-mode [class*="ConversationItem-module-trashcan"] { - background: rgba(31, 42, 54, 0.6) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - color: var(--cleanplaats-dark-text-muted) !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-badgeTrashcanWrapper"] .hz-Button:hover, -html.cleanplaats-dark-mode [class*="ConversationItem-module-trashcan"]:hover { - background: rgba(38, 51, 66, 0.72) !important; - border-color: rgba(140, 200, 255, 0.24) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-checkbox"] .hz-SelectionInput-Input { - border: 1px solid rgba(226, 235, 244, 0.72) !important; - background: transparent !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="ConversationItem-module-checkbox"] .hz-SelectionInput-Input:checked { - background: var(--cleanplaats-dark-link) !important; - border-color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] { - background: var(--cleanplaats-dark-bg) !important; - border-bottom: 1px solid rgba(120, 143, 166, 0.12) !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] a, -html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] span, -html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] div, -html.cleanplaats-dark-mode [class*="ConversationTopic-module-root"] i { - color: inherit !important; -} - -html.cleanplaats-dark-mode [class*="ConversationTopic-module-backLinkUnit"], -html.cleanplaats-dark-mode [class*="ConversationTopic-module-userOptionsLink"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="ConversationTopic-module-backLinkUnit"]:hover, -html.cleanplaats-dark-mode [class*="ConversationTopic-module-userOptionsLink"]:hover { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-root"] { - background: rgba(31, 42, 54, 0.44) !important; - border: 1px solid var(--cleanplaats-dark-border-subtle) !important; - border-radius: 14px !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-root"]:hover, -html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-root"]:focus-visible { - background: rgba(38, 51, 66, 0.58) !important; - border-color: rgba(140, 200, 255, 0.22) !important; -} - -html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-title"], -html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-leftTextUnit"] { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="AdvertisementSnippet-module-secondaryInfo"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="ChatBanner-module-root"] { - background: rgba(31, 42, 54, 0.38) !important; - border: 1px solid rgba(120, 143, 166, 0.14) !important; - border-radius: 14px !important; -} - -html.cleanplaats-dark-mode [class*="ChatBanner-module-message"], -html.cleanplaats-dark-mode [class*="ChatBanner-module-legalText"] { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="ChatBanner-module-footer"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="ChatBanner-module-icon"] .hz-Icon, -html.cleanplaats-dark-mode [class*="ChatBanner-module-icon"] [class*="SvgIcon"] { - color: var(--cleanplaats-dark-link) !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-group"] { - background: transparent !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] { - background: transparent !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="MessageElement-module-container"], -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="MessageElement-module-wrapperCard"] { - background: transparent !important; - background-color: transparent !important; - border: 0 !important; - border-radius: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode ol[class*="Messages-module-listRoot"] li[class*="Messages-module-listItem"] div[class*="MessageElement-module-wrapperCard"], -html.cleanplaats-dark-mode ol[class*="Messages-module-listRoot"] li[class*="Messages-module-listItem"] div[class*="MessageElement-module-container"] div[class*="MessageElement-module-wrapperCard"] { - background: none !important; - background-color: transparent !important; - background-image: none !important; - border: 0 !important; - border-radius: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] > *, -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] > * { - background: transparent !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] header, -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] footer, -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="meta"], -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="timestamp"], -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="status"] { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] [class*="message"], -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] [class*="bubble"], -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromMe"] [class*="content"], -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] [class*="message"], -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] [class*="bubble"], -html.cleanplaats-dark-mode [class*="Messages-module-listItemFromOtherParticipant"] [class*="content"] { - background: transparent !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] time, -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="timestamp"], -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="status"], -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="sender"], -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] [class*="meta"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] p, -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] span, -html.cleanplaats-dark-mode [class*="Messages-module-listItem"] div { - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="MessageElement-module-root"] { - background: transparent !important; - box-shadow: none !important; - border: 0 !important; - border-radius: 0 !important; - overflow: visible !important; - display: inline-block !important; - width: auto !important; - max-width: 100% !important; -} - -html.cleanplaats-dark-mode [class*="MessageElement-module-body"] { - background: rgba(31, 42, 54, 0.42) !important; - border: 1px solid rgba(120, 143, 166, 0.12) !important; - color: var(--cleanplaats-dark-text) !important; - border-radius: 18px !important; - box-shadow: none !important; - display: inline-block !important; - width: auto !important; - max-width: 100% !important; - padding: 10px 14px !important; - box-sizing: border-box !important; - white-space: normal !important; -} - -html.cleanplaats-dark-mode [class*="MessageElement-module-fromOtherParticipant"] [class*="MessageElement-module-body"] { - background: rgba(31, 42, 54, 0.42) !important; - border-color: rgba(120, 143, 166, 0.12) !important; -} - -html.cleanplaats-dark-mode [class*="MessageElement-module-fromMe"] [class*="MessageElement-module-body"] { - background: rgba(140, 200, 255, 0.08) !important; - border-color: rgba(140, 200, 255, 0.16) !important; -} - -html.cleanplaats-dark-mode [class*="MessageElement-module-messageIcon"] { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="MessageElement-module-profileIcon"] { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] { - background: var(--cleanplaats-dark-bg) !important; - border-top: 1px solid rgba(120, 143, 166, 0.12) !important; -} - -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField, -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-footer { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-formControl, -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] textarea, -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] input[type="text"] { - background: rgba(31, 42, 54, 0.58) !important; - border: 1px solid var(--cleanplaats-dark-border) !important; - border-radius: 14px !important; - box-shadow: none !important; - color: var(--cleanplaats-dark-text) !important; -} - -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-input, -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] textarea::placeholder, -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] input::placeholder, -html.cleanplaats-dark-mode [class*="MessageComposer-module-root"] .hz-TextField-input::placeholder { - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="MessageComposer-module-send"] { - box-shadow: none !important; -} - -html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] [aria-haspopup], -html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] button { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; - color: var(--cleanplaats-dark-text-muted) !important; -} - -html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] [aria-haspopup]:hover, -html.cleanplaats-dark-mode [class*="DropdownMenu-module-root"] button:hover { - color: var(--cleanplaats-dark-text) !important; -} diff --git a/manifest.json b/manifest.json deleted file mode 100644 index 3e84298..0000000 --- a/manifest.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "manifest_version": 3, - "name": "Cleanplaats - Marktplaats zonder spam", - "version": "2.0.7", - "description": "Zelf in de hand wat je wel én niet wil zien op Marktplaats door te filteren", - "author": "", - "permissions": [ - "storage", - "scripting", - "tabs", - "webNavigation", - "declarativeNetRequest", - "alarms" - ], - "host_permissions": [ - "*://*.marktplaats.nl/*", - "*://*.2dehands.be/*", - "*://*.2ememain.be/*" - ], - "background": { - "service_worker": "background.js", - "scripts": ["background.js"], - "preferred_environment": ["service_worker", "document"] - }, - "content_scripts": [ - { - "matches": [ - "*://*.marktplaats.nl/*", - "*://*.2dehands.be/*", - "*://*.2ememain.be/*" - ], - "js": ["theme-init.js"], - "css": ["dark-mode.css"], - "all_frames": true, - "run_at": "document_start" - }, - { - "matches": [ - "*://*.marktplaats.nl/*", - "*://*.2dehands.be/*", - "*://*.2ememain.be/*" - ], - "js": [ - "purify.min.js", - "content/shared.js", - "content/theme.js", - "content/storage.js", - "content/notifications.js", - "content/cleanup.js", - "content/blacklist.js", - "content/ui.js", - "content/observers.js", - "content/init.js", - "content.js" - ], - "css": ["content.css"], - "run_at": "document_end" - } - ], - "icons": { - "16": "icons/icon16.png", - "48": "icons/icon48.png", - "128": "icons/icon128.png" - }, - "web_accessible_resources": [ - { - "resources": ["icons/*", "dark-mode.css"], - "matches": ["*://*.marktplaats.nl/*", "*://*.2dehands.be/*", "*://*.2ememain.be/*"] - } - ], - "action": { - "default_title": "Cleanplaats", - "default_icon": { - "16": "icons/icon16.png", - "48": "icons/icon48.png", - "128": "icons/icon128.png" - } - }, - "browser_specific_settings": { - "gecko": { - "id": "cleanplaats@cleanplaats.dev", - "strict_min_version": "121.0" - }, - "gecko_android": { - "strict_min_version": "121.0" - } - } -} diff --git a/public/.gitkeep b/public/.gitkeep deleted file mode 100644 index 8b13789..0000000 --- a/public/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/public/icons/ChatGPT Image Apr 13, 2025, 05_49_24 PM.png b/public/icons/ChatGPT Image Apr 13, 2025, 05_49_24 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..04452d7ce6630ebdad58d79d92e67e86cdb02d9c GIT binary patch literal 1224454 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%0A4DypRjX2FY5*k>15zZWC6`U&bA)7+s7S)_ z*0J5b`fZ6HMbb*EMLd_TDqJnyBZWWKB0Dg>OL; z;RqSw7ihIwc)cKg5!F`eY^sD4>w6YF6{H;oHkCpQSIiGamX)8F;!tR5EmsJSHnRmY^z45dzelXa7=H!jGDB2Hjo9rt8Ecsn}!qS1{t` z3c=|YN^=~X%;i5Mw~3S4?Eo>K9Ly_3XdQ@3(>QE~=V3q!L5ww{b;crQMwM>g(Zl4A zU>HLNaLnALgKekev350*1RSKCr>Ij5Zre>`&ST06MYEFvDZhMfi1SZITdKmBp=@|z z@Tlpvgz$oJhN?9Jxapy+S`A@0fB3y`J9W5@t%+ITgvWW$Xf+_`e7yMnqyQ+?4n}v* zj3miSPgOSTxXPD0rMz#HlYV1r#kRFv&L)C`5-LPdi}|n~^Ax8#X60Y|ppAY#AaovU zxC*~3!+n22%&8xBM4~*oz&?S661`cw zwO3Yo)EvN`fIPJ2c1zo zb3@XhSDg=RFFOW9)Bdn2gvV!gAcV&j2Uq*_Q5yIQxy+y~1=0#Ouy9IEBC(QcgMO5a(U8<>zOZRi5FKJgb zgnGjDVZD0&yk4)XHc-9m%b)OPKUhEd{pYA?l=r_` zYmrrOLZsYW5!mTgZ@mA!_A~A;@a}Vg5bA?Z^!jW28^5V<{<-}tzq7yor|apf`@^rQ zz}>iez5o1v|54jJ-$T)2*cai$3;>yKP^;$e=- za6lYJNWD(l08K{SYo99c^NTU?pjU_e2?Y`lz`Yd6=i05wPA`HFd$h7y5e1N4Ky zkfOlN{!`K*{pP7jGLXOsAu@i@*o>KJw?tl*wZ<6C<~nf%uo?ssVCDe`XAHH;!A8Wx zj|a{`^~VFWFj%(u%FA+PDdmejMxi-QLOv5x%pVM=gR&xjt8xb}8M*JaU@)I;w@&vV z=Wz^c#*H-c{89)cUpkc#7S%ah z@Q9`pOQuZ3K+`1DkxF_RDm-o2I|pO9Ey}WCq5&I2&-9r`bTc#ED}U!{S7G?+y!}qI zp~>>f)LXiIs%wbkX`o@Mk=~Jh%xAV|GXv$Pm3MAdMx`t=>aCi-GI~|DGfbwh4xNRND>}r^EWR{MD$Ya+h>EwwltVosc;u?|fS!lmd}+d| z&p1NYw4uE+Kz%c7sbxwp$B$Ke--ALDa%2HLPo1+{pS=)g^mwHWKI5@A!#gA9n0G8 z0`~~AllEB@>|*zb6~YQEB&kNE0?)@#(NSFe-m z^b9WTO^Mhj$diJNjZK^qY})MpPd&T^hbu}$Mv1*fqNuK^b3HCg4U>G&eEw3;@7Mh^>@Tr*)w*AQgCGCW`(OB7{KB8@U-?V;$~W=m>zmlm zSbSg4pX1BV*Zp2q;zhTueIQjtcEfdJrDJ8X8Ip`O1G+*~PW>I0SQB>(y|FHurX_c@ zG`^2oSj~y9W^$)gPAi|wV|}J!w0oj6Wn+E~y3P!1V8I#oI!K2jIi~3aXsZj@naFbb zzo5`QwHz7i<*tFPc0pN30$`dnf|bxGLvQ2UvGG{Y=s+@W6zgth$a!v)=rYKl6j?$T zG!ilqUYd1DVGoixwY2Z(BU#*jj{%P`uA6Nrk3331NZ>cwf`8IGMM>Ex7^#5slfoEHC2NOI3Xq*@!% zkhT7blU2}EezR9WdO$YV%SyE#|Na+Dsh9L*Sh_+O^}*9q9czNU8~E7L#cZi^5*%R0 zA~!a*NLca8yjK4}4Qii~%m2nRGmPC5ran#~ln>%UtHj>hJA#nAOhC1WeP$$1i*8DY zY*{&Y2@I*?KV*D6^k%Ewa~msLkx@kkVvG_b;o?B=VGc3X#Jxh|!K!dPQxyaL8F5iewipwU4iOMM{z=zHH81wp1+>FM_dijSKrn>YK%p2;IO zLOX2&cODqbVFWX9`~_9X;p5BVV9g0&m;jr5_O^ir1jHm1r`3{cF~63yS^dy6`s#9Z5(+XA88u6nwoT!%SGAgXsBxC!Vh+Hk>P{t{YWXoLVc4gu3L>*h`2fo zdKpKd!m*SwexGij4eBB1Z64Ny;VC1BLTF(QNl_d@R^>tsLFnh4S#krzQb}gc#+WGO z+ORk*kkz|ivd~C9oa_@;!iR<>yMj;5591S2nTe>32@u@v_Mg>g9*hf>i^oM7rlCL# zo#Pw4i2dl%a(XFIUKO~Z3iIfUkasxhyfc_Zmow8}O|9b`T#h@M(_mXO_*OVdux5n! z)RaJ8k~BRPGgG0-%@d>vFl{D>6+3ti0m7Y41;dbu>G|Xe^93gW(LVEbdhMf&nl4h~ zkS^&lCI=4CX;a3{USndEXfWLad6(yO2_{|Q-kouwrY5l^ElyxGc1zNge+vri(gGy(PDqnrAij#Kz24yUtA70v#qLeL zzkc?u`rhxapZvl4!9UTD|6srU>AG*0^!kJ6S6{2^V_Z*bG0HtPdC!)&5`f<18TE7H z!OW8}K->u>taSnAe~hYqaTceC2eo9gekU(Ct+Ygo+(azzbq_5mU)?FlDn%WL3fnzM zG;Yo**yGF|QYOI)tBs<}^U-sTK z`#x>;EpU}j(c)@1YW8#OclG>*zWfQFzaVRW^vnIpui_Ve2fz4dpMU9h`>Vg9>!ZSE zcfWhz?>}4jd!p?hCrMn>nM-}h;Q&1PZ0SkRe5gUDvxHNJAI~CZ*Olg}b`thLxK#mp zbJq-+Bhk=MvPhxEkQX`3re2~RapkS}ULJ3Q6tn<}BS&$7eDrfI@dauIo{9kWEPPvu zQ>AVjLagOYUMIq%r(x2^h#35AY8BAEx0T1AKUCtAc;^Z23K=V`LWfTs= zD!wCH58lBt#eNF^7zq{~1I^KfW?tw$&!k>7-BYhRG*`6Z7B3M89_If}NtaE9EIIkU z7#aqhV;)`gP)$iy0d!unXFDBnTw8-755!M}fI+77ff)%P;u)&m49N`?>ZWR5?MxQT z#H}T3iMa!pjgfHoW|c<`hIPxJGA6J-UJ+8|safj<1oMkNq$AH2l2g2tr#@?HriTUi znWb41&_3tMKex`G%#JB@vM!rzrBO@{A909NO&;!3&m2VUB2ZUQt%#5`@y7Gb<+*Vq zP|`sBfeMp(rkqUOJ0-KcSSyLa)l1^^0KiUX4jfJ*%{YJhX%PC81bNOiOUdPe#JK~L z-ThR4>;ixTCzCZPnM?r9hy~IyBC0g*kK>3_H=TZbN(#`V65E>B@zn{gH|&{#oqX;( zmn7(F+CzKyus5!TJaxo*nx+ur$7E6_Bv(Y&yRwEpQPRBuPx)jxI(Ds{^9oyKO?8SH zd@=BoK*S$(gwnn?#>izVd@5xNY{Z4xoSRmnsh6P<3{KH|e7mM{d~wdEJ0Sw7+V@?n zJa6ho00uR60;APq;Yxscm;u4CG>gO?DfaM4DX^w)%6MyRta|SdL-P>{9-9%?kgzTZ zOs+T@dvB@(Cr-ne$j$P>Td8vS0@o!UO}j4I0Xa02LD zY@5o$KVe{dUf-&+$vBBxrOp$WEue6lx_3`irmPD-nvAq(@(VQo-J_}ChuqW5C8A@Q z>JB5)uEj?wm2tbCn$M@L^0gQ+ZM8mOlpb@)qHkQDp_sJ?MzJ7gw@YSkUWpARN|51JSzvrj_Wc~2>*H8aYKmWngg^kjy z5A^z*czO*`b)mJep8rbVt)(qggNs_!op@5v&e(C@h?Fo$=TFoL+ zTI4p0T0pZm*6K~-88X1c459|SlqF`~nmuD(Iw)Y+EtaUt*hX(}v+F7}7O;DB0es3!5-{1Hh{=)A(|Jq;Xul-y7^sx%sy57AN-{ajE=$k6k z+CX`X7>3M*gfYAxJ|{Xc1jO6Ep^nP$a0OH3H?g*E1v@b&*hr+}nNu_Z^J)vtRCmbQ zXn?!~EeXK?i*#DZa(Ux%ZQBhIIBBReUgjIkTdCS1YY4N>?l9p4lJc`sUlUhn7?v8In9)<(I@`J3G z@>HQH?Nv*leTSwn@gEL&Y=_uZts3MO?~>UM?~h2K6ATr6g4xq(4>z@{lAqJ+OLoTL zKjR`4?4IoiAqEGd1oX#f9@DrOz;jUEq5cCg9|M2$aM9}GIu%(%<9;xV-Jy3h3Eg+$ z1q|pZQEld=M3xk@CCeOwk6<>Oo5rY<6`3 zOQr%mFpzG&%hREQUD$>3&8Q-$*~h6ac-CC|Ife{vBCV;)L-aY=2H zhYdH+IyFlY_UW9UR{Za!Iah$BOyn64OdAbJuj5f*>d3`wMroMFlp7bBVaJ>sWIQV( zfqAxb5(769@tN1_=j%;9eT?vzQGk*!Y3r`1;ysNu(y|=ma3_RyRlMkZJYBfYqxhho#t@4%j{Y0sQ0mn z%Xi*;6_RMGp(=AA0e7U>d($6R1S&fXj!TuHhD)L<+0f&h?9SbfPMXEOL+Uf_WXC}4 z#v+B@&%Ca|fZoO_*vmoc;-?1Ew*4-L1rXa1e~g+Gmter3P;i1*%l=KUqV{2Wka z0AfI$zj5+{jnpx+7*N_{f@35sJXSmvc{3jJ0$2LcV+OF*%L_pQr7#-GAUwbHX+%FD zR2#zj1%YE|_aIyhlVQYGYlL=FN&5peDDAZE1=Ol+*Jj$XS#Q{Rat{JzMDPLD{%?|s zt>K+o$(s!^t?($)ym((nxxn{yL~lW@r}2r4JW3{?B#t9)b4#P@5IQ2!R}^ad|F?Y`eZOHJ=Nf6WF^GxY0@K=!MEGR zR8jHCi z&o}dH7hp|VOPOy~w)2=GC0*?>$vQLZ#q7`I3#67ZdLY+0o(2|#tIdpG`Wz{@0{SLY zxK^DL6eQqg^5I!VF~>>iZA8I8 zDtf=GqZ$fv=GrCeq88MgVSw|F&@hUOHpia<+pHLPvHSvi<_RahkDopycThPh{Spwz z(-Rw506+cSw>ei4!<3g6crTz#Dm3%7BJHvk4S(Vll)UmOdd}_%#gA%c9c#>3lSSUoD#5xFwf~a zDrh3kG}#&xWIh8+0*KbCrI}zlOHr%1-DfbZmtk#f z5kt`(ReFqM8Z||@mw6sYh;j&L!9@7k=(|Eo!-n6U8ypWMy37fy-bSyMkw>Qx?V6bw z$19JcreODgtn~l@?I+k{=!$Kibdx-B;82H2SKp2gwU)rcKR@L4B z(wiDBJYZnVyd_QDlaO_q5gKl6W}uOhcm@KT003c6!z_9l15UfE;lVN)xnv4I$OH0| zbaUO8a(UM^h;W5C0G?-xKQ*Wxf#~5Bg#>htn+=amdvb={iFV73kbhA=#uXwUUv&f? z0C1zF)_(m4*Bib5u-21=_4ZT#@Sk6Q^bh#Q|Cm4g7yZRgUoGf*gAYI1uRrNpg|*v2 zd{b7g$1jnOxorm~uUd;pB4xhCi<}nWR9VGp&Ms4zF<9ZMAdE$wA5rSL5G72{TS~45 z{Be9GYvon0_0;OVpQ{R7-HpP6r#p(Z+WhNuY`y7hM~*f0RfB7}mSziUB^P)E&F8>F zOblh^H?@1OYXPOco0;FYO{7fw?HlU}fc6bEc}d&sLe5*H4uVJ9K>$8f9`|x1sK=EY zb3Q;zM;EvnH?*)`Q}6oyTRgw5&wqSB-|N+?kA7kQ^6!56Ykw8L@Z0$MpTUP8VT12K zz&$5(g!W1uS3P=*=-Mm`=*U;{#*_?K)fB~d8TFLd*Ed#o#`UyQR$FpQ?<`r&VAVM>JQaBaYi`Iuy-_S= zZe(B>7w4}sS7>Tj)tF*|bG={B$C~oi+g>b%nxNyPvPPRSXw0 z)`T`{44IO=h0InvpGSR1Ou3R!gqbpdW~9jUhadKNi2l4r167sLE=J6UsuCgVcyb#J zvCP44)>3cv*@JfKI!8A@CT#8EavgfnvbqCJ2@iTiS%5 zsphKQTZ@pYR(WN#qG2M1y>AD`5_COrZ;zg-oa{}|NUYj>18~LUK6%Rus?+tFmMT|a zcPBTqa7*2_N(8Wg+I6AdU(e6|{PTMEGroVjuc{Az@&1*+w154t^soP(zW!^itMIJ% z@9N7h>V8kONL2x4-9c?^Hw-yFw-<~SBiEUmQ3ht_@PKSS3`3OgOq*ULPVB}=QhT@0 zwGk&rNbA29IwGXi3+P}fc(jr3*d_Lug9b*6E0l$iw3+Ad|AtQ~?2OXsH95!XusmTz zqtCX2n*vuDF{%Q|!Bu0*n)s@4M#Zd%q+y_mxEI?o5jyjrIm*K^^Sm=K?+7@g+u$VQ zuv%U?Ec4Mih|aSFbC7}vq;iEUGj~er%W`E-=ebiEAvniBIx9svYt6@+tX>puM0M{y zrA?T%Gj*9!B5z}Pzz2h%A(RjncmC;2pcV%c2l)gLr>+PBA*QR1$u)LR%H#s_tjYGS zHCG?-{!qF@KKU-Q2bh}H#~|(-Df3dQIfN)Avj0@(@_GhW=sPn7W~3HVD`)=bQ4Nl) zgvMg?2kesUkTbb*`Uw&H`Ft`UEm{pahQNw^*zPG)J)#ei&nQo&1hn0Pkh)7RDkK1> zRyfTye|Z6H_el_nFjD3kyDg!O#2NqU!>XnUn&M@~0g&wI&!v?{pWj!G5(HZE{G;!E z$3J60?9nt&P#qp16(Q5R0>af2lnCAAqSqMD!53$k$}gVhj`;Fr@WP|p2&H!9CV2Et z%tdjm4BU5#x;<3HGmBz)OeGW0Xk;jG_>3`pm5ib1c+ zanP@lC4?|p5xuTU1Y31D2`V^uB=RQjr!J`ZU)|fRXeiC0_qYO@v*f4>)^+fxp?sxV z@*u3H@)`Rybm32Ci-D$IBb8#ar{i5qvmwMfMe{)%{T)2Vp`1J?EVnk2hRlc6j2}&f z*K7-w{Ie5%X_mtlT4+(&vD_J5@^PQR7+zG^iw1C>LJX9v|KXQg{hR_Q)M_y^RrO;c>!nH#)H|Q?O-yccNCV;X3VZpNY5fK9Un&(?K261Eh*U3aCp*USN zoWr1uVZa`%4p224oCr$0-7N_vIQdmd#b2>uEwHttuFA#mZj*($l(u#k?ye_1z3Hb9 z`Ra{Wyx;RD-@5+Q-(G+8_v;7$49`EqT6+D}e)ScuS9QHXtMNYLr&5(Rmc2SqScSc} zT2)t?g}niwF87ICZ}z^qUU~Wr4mE9<2b_Pk9eWI-=1l$Xt{y}3Wvmp|>dKdE~C{K=p0U;Rt{ z8-JyLdDd&y=3Bf4dE6NXsR)q_q}p5&U9%)WgCjS!NJn zmF^u5aQ;_V(cV>yX^WR(L3>y_ID8<5W@J0a$8ZdZ?;u`~YYxNm6y{X7r<}k*)pR*X zguG7+E3`?JZHFPG`9IA309mOQ2A?S;Gop*Vt4=9t8t8YEm{n=rDa3?KT$gu!_7 zY6fi^fzNCz%Voq@wy1IJsj8ovBuV^4%xI!D7yvcQ6p(Mq>!MBsOdbi z_{FZPi>e!3JK4B2O5vtK> z3K0f@m0HRxvRigTwT#2$TR%ENT_UP9ZPMWQp*_8C zMCd}OMm%iYPW30~VH3lk-h+z<@E(mc0;77)iqB4Rd61@`s$Z0K%&yC`@O=6hS&GSX z@EH+r3UL&4tO&ImeOLtS;Hs1#C<5n4qsMsb9$pM*7nFiWx6NoK65@VpC`^G)V#f#4*YHmDDC{=a>0(P%7m#R zu1(-RMIPXV?TUgSUCWZ1i!poAFjN={NN1v76WbfCqIKpbXG;KgV03H(IIHiBIn&x7 z(mVB%o$;}EXAw+A<>R9j8ie9zvlnYCs*Y(ZBy_3;_G9EuzS597#ek4s-ojc?XQ3}p z@ok5AY}1nQbAp)wM{iz3qatcO_vJk7D(o%7=2u8>#cQ);`FK!8DhfAZRCy?mj9>^@ z%yYr?N(??kV21KX7_&$6I^2(Y_EL2EsokukDPr#qqv-Tl3)0@Vfp|kEoXJg97fJQ2 zkM-uOLKXM=`5&+E{log!|Bv7Pd-cVSH^?_1;`P_G-qf|QZ-wJWi>NMKM1yzpsx8EA z%iOq5_~upKAmBb#0!v#5?_$*p84Bx_`Z=D2W+@>c*oSHnVfCG4j3M@oszo+< zV=ogBZU)ECbVbC<2FkKSnP#5$RAmsvlGI&X?H`F!?=t7wTdh^)v1v-sMp;3Gg6*&n z(^W;}?K5oVZ|Qg3aC2)4 zs#&;0+T>$E9}oMjgttJfY(>O~6jGgM*+!3S0~yfTi4JPTz2~U8x@zriR7@LT~XIsnw{O+PUCn5zy>tvb;9h}!$ubmLUDVfNE; z!4$o6G_0@^ZYAgOBZ&L-RXBW{F|dWe<2>!7d9vCdLWR^!_n|9g9|qFp(_rSOGPN9B z>1S;Gnb$C|DvCyH1`p!w12uBX0k|sAi`tsw3LKDrRE3!w@-ME(+zqQT1pI)v=dNb9 zpHqDkHRifC+%jR_`Z9zvlRZ&p#AeDfb0=KW=$!g|fF$<8>5d!PR+#wD@-Yt)Y%8BR zht?ZjSI_K3)hVqLuNzvv4}n&N-n-W2=o5Y3fcS)b1XM=A zMR1js(c_(C8c4uuwRg>E^pXHGQ=+sM5YM$uEJw~phqKAioPJXUB3m?mDz{?oZU%A~ ziyb9;l2u!H2$P5)G7K>Ak@HrS#}Vv^hN-={xN{nj@&*8RVASz{d{nWXVt9zN;4h}O zm#w>({zVb<$f-rEyxV*PNRjkRA#nm5gfY`jd(Z9K*ax}RWRjbZzK1ma7jrcU2(9ds z&jUO4k8sfjL7I{$2i$dS#@Dv$8YP%Bj1OE6FtQWWA4NpAteJc3^qwRaguH0~7p430 zcvLe^PaXNhZtL@aD+Y%8nOm6wABMpBh^JlFwW%F zXjZk|TzNqj2vp4_h zKi7Buhx+Ni)ca??{^0)b>-F@3>T(t>-AHV*x_73i2oU-l9oxwl^Wrd%-$BrK5b4=;{~KWD4*a0Y>*tE;D8mmeAT%rlrXR-5s;i(`}xe z^t_;3Rrb~e!<$@vlx5BJN=5DFey(>vS?|B-Mt}6x{i}cZ`8WUi{TqLoAAP+y*8R3V z|0&+T1)--WHLw;n-l4;5jkbG?*b@vF5I2o!DB}#@JG53+&sOYAgjhT^i-84Eg=H#P z89CLY-oweC&l0AvGd(M}5oSk)FCWu`Dq13racH>IEnTUiu>o)!kdM%U-AkR%8gKZrU=Q94@wVd3ah^ zL+({z=24~}ghrKwHUFyfxQD2C!Tio>BF7ddk_f`j9I=Y_34zAfwZ>+_AuTx2PK(Ex zCgL6wYM7uF%&kb9I7!Et!c*s~O5Whq3dl_WNt-1#*`qEvr6yB)J}m3Jdc?tJT!T1;LpPUYdcJKMu<60ZY1SSd|Ai+D1pe^5-w99^ zObkejLr%);nnDE-wk7h=S#>=1xuzqB7eE0gYxZt0Oq4d*)bazFdYH&Kv%7YMk*#s1 zd(iT>4t6R*_cq~%S3=9so)7qZDyAVfc|MX(Q5{Qxq83RoH%7w_BwY+d&DF(asGcTV z@V5UPoIBEuJDrg@e)i1jydc_uL?~cyFNH81nW!cVqZ6L66jz;6bpqe87>=Eu*nUK; zFe!z{VF;tVX!F_5Jflmy;h`-C_Dpu@w@M91Ppqi#X317OWZ~6^_4L7h^8u>(vmfv~ z|KQc{|80K%AM5Rp1mS~E`06YBx}e40GmzfE0yYS#m#L#})rA6f3`4}O^A%Z}pmZoQ zQ?Oc+dTs2dsum=#8mX)H?$d(;truFLOVW~V&x?9ypW4YQW_c3WI^aTkkzGq_wpfdU zD8g?IOvA$vwoz9G5VeON6oE5}H@!4*UGTpb(S9sd30R!;2`{)UuD+jhTDX9r!~E%M zb#Ev~bHaCYiu7-7nUEJr_hM&&xhZUEk*cZKfm@=gN-Xsapy+{ni~6o8>Y-InZEi~` zO6Xw#*xE-K3-#JWIRk)Tw-W&Z~Kl>s2%YOBtzWEpXxBses z{jctC{5pmD@{4}=ML)j>8mv{efTXNJ@>vd^H@3<z;O)u}v8)n;f;idexPCda}JpRLxZROh(J zqZ>?b>VO4e${sS`)*rsWcF_ycm;2Gip@y|SG&liM$sWm_$abE5NLq8F6PB$o?D-&^ zyyK%5;8nRLHsq2rQixLyk}hD&16T74&v3SvGYC=Dv`^!FK$iQlJl`>e*n?#^YD&8g z2c)O_kpL@)zGMKOYO_1JQyAWVIG_A?r>Z3nJj>^oYZm#-+Dw2Oregdz3TXbw9f0)s z3;^h$RXG5mgqx~9Yl#j?z|%zZo%K=nIt!l^R>>OSl0oF>;QUdS?v5tvaMAAE^F{dL&EYsyw{~D0TAwzh=CCf?gbp6UCxJNER z+NG$lQZSITtsi#)shkP1i_1rE-?0jr_pKgTlWA@X4qP<)yH#1QtjSD7R)^#`xt|{- z3n+t$V@&ZlYPriVTcyJWrH`B^_cEC{RSO(L^U6 zHKrF4St^n#h|IrWvkP5Y8`#%VeegBCdc*r2fArm_@BF>`{r~r?AN&K|&-?mFAAhZ$ zKCHT0`<7|u!sWaZ&Sp32s@^+UDWjv=Ll;ST%6IoI3_EUM%}#=#%7&R1fXK0Q<8iAg zWhxmDBODg?t?MdrRR2u1ymzbXdP0HQ%G}EtyRvL?X!Ww=P{d=+E-Yp`e`A%$O&#c_ zY?a#rzSuLd*I|w%xBOhIqk+ZVZTh0>NqpA5!E400O{LuSYn68o0g$H@F0Vj&_b<reCxzumw2Z}ZRnjr*ft?)9Ym z-Fo};?tR_wMOMA;YD^IVK;7QXD1hcr8=lU|EAS9zLHCSFyih$TlTB%rIV2=^!F7O7 zz-VKRkeb}?N}VafJg&p#Xlc+=vll&KKq67`wK3b>j~0^>_`T9a-au$F zF|qIbDh@v(jpb@cgg#<~(Ovi^<*-h#vf@3^VGhia9H8tF9A+f9z_n6Jk%x!9NO})S za7t44ij@=QjRd$MNT`8n7*E_5XvJFc?@8YraO+%V8~GMvbi>e#V=8CQe8a{EQSK0Z zJQof}JX{O1+UNkxFg9t+97Z_8Oen{NK-(n@hG~dU*2w*lUL6}1T{gp5q@C&yXDIJa z=?7&U$fFw3`C@}YlKBmqhQkJ+(>THirKhvu^gBsuo-4FHW=4c|;noXI2h2XN^fO2D zww!JonU6nORK*?SR7{4Xa}nV09eHB>SE3_JVPuAmJRGviCy*ER_LQ|taWDui51i9# z6}ZCt8KmYO)d1+c^3JxF@C@_H<{$UR7@aDW>Exbyf*cqCY0r%&VZ2b{p~zF1oBva9 z(XC>pAQ4(xwGbXT&!)|%Sh z!`fug0^G)~c=$ZfjsNBpNE2s{1{a=$tC4wuHkuUHRZBA^w!7CXD`3J1 zP-)+XV4D{KG`hh>hcXltW1R35GmfBcGe!RO4B$?s+N77x9lE#1Z^XSyPxSiA`Ev?P zxvtH_euXJUic1ADMFwbtuQ{FB7!^;jKGkMF{OOA@>$-ruXGl+@`^fY52w(JuLzsoh z67CH^>#0BdnqIwr(%wJ#{ny|6|MCz1OMdz<3h(svaliR$zxn#AOZy$4-vi{+lkR7( zH6wai&_RtS|84JqCrMzh?yfA}HAw(l4sfy1ef!-IH!zHyZHC-ohUW`i6A+}G zHdqfMFMt`6bOBqXTkDN#X>Z&u_u-Oq(pzxd~#fBmoAf9`MKmwp?#_WfLMKf}A9 zpstH-Ui9d6JWeMQ9Zk@ww_&h?GuGs>-L%#Z5ewtR;4q)pEOvKENcrZeo2$?fwTJPI zS=P4BcDezXvT`bsBy@SNPO8Px78@E{WH=5J&NMX=oNg451dfx`B!B2kb5(8$ zW^s){B2+E7%1xz|n#b5-n5Q9#x<%Q7Eo^=SbQG|L96qIMW!?${?~TNoH+v0n?i~N% zBbgU>_6T=}fim^Os>KO${(pWhd8OFd^k+ba18!h=P+qTuRovTw36b8pO-$bxgBA_R z>wKz!G((2A*vW1aGa3VqxHjck?nl;T^RVGMN*HKr7)&k0v8!b^-b5TX!`CiDd0^b3 zpHf}y)S>(hCp3QDzrTx$6>e@@d5P2kOrs z;{1fPbDU#v1Q=V9yq|Y~;Wyom90ZdylG)*LNVRu+Jw!BI!54Qz z7^2=mOa^MPyWJ@b7tay1VM-C~(46UNO|_k4kP^*vU_CCQf&OP~$Elg;cDvw3J=~-f z$#RgABX_ti;t-a(j--4St1drlSKJi9rCH@p&YN(!ZqXV_mxYmfy6Q6i$9&YXLldv7 zp1+jPZ{G0fD|q$ctzAF-!&l$>+tZ2RHc(Z}pxYd`tXczi< zU02^58Qkb0!Pxt*Ri4o(mRM->u7}&$0KsbQ0??c5X&Y(Q&WM?PY;S>ErYhEzM9ShA zC>OZ_>^oSZR(E?RcEk6PK#XqcsqWqG1BomZu!++0W{R>Vv%AftGyDERhfMUDnKvR+ z_kQtf)HjVWKX25P9OI$kb-}fr*)NYNbMdht+B(g$L9^O@g@Uk4LpP#^8Q9OytQDTy z@e5d3O?ys&EOl$k#!CWuRo~A*)kSXCD!dUrwMRi36TNbLQ*s-_ht@fzN%u;2IFPoKW{33%n0xfdR@4!tNQ7XDmvFx5l63 z-zRclRE+bFNsR0R(Zkfj|6a&Q)9~ud`^_|(jzF2KuoWgEj29A_B-BbJsVyfNVD~W8 z2?&YbSRNK+yCU<%wrWE%o|*QhrhkNlaKoWS400+I(jkWqBM$_~ZlSPcMuwUmwgKHL zU=`b96`zz?C3OHj9HLF2EUuHlNqfnq=>efqVug;57RRXpPB~c}VQDDD_Of!ZLr6*M6bkpdEITls^ETV^ZEMQ^qEU-#< z6xGr(VoK5B=(X=A(%Ecbk#(BpfXf#HZnqsbYq5p z3+bX*Y`VSb!6HqB7CUVRpR0;hPNYyfas>@-IiFc1w5bZV9FwYfCl1@1>bdgF2sh}` z^E}20M{NgBJKz8eDdGWZga|@awPm4RTPT|gWj`U8XC4iHA-0UJAS3Ak%8pzqu^JII z*)o&XVz}?%+aEg>Yvi4BdHTw}N-K*cm>zAcYC}44BAMn|yB;(}gjpvyQ<;I2qzB^N zRxA=lkCT#19?hIgvsS4gbgk844R=c9&-Ycm)9?Q+{PEe)9{wUXg;$F4x*-HJhXC+C&S>#zN4oTU^V4RqMij&rxl= z#@4=pQ3=%2tq{x(_HHVY`V(g7lF}7%K=Tj|vlDU;TDHT<%K;uUAUhYtO2T~;g;i}o z4L`JE_tw1^N=vn#_D11WE%;UKEqDfXK}-AQsv$!G?MQTTFMMmwX~ax_9NWS>aUqMt z_A>xa<-Bfg-NA!&5&uIMs$u6#?x^;)mlYMou)XzD1v@wVPyD_Um{s07UPuMSHLaQ~Ia;1vDByKf|iNH@!X0Y)S#!{W+lo zteKM7!NqFgiQE#kN+|3v>)p@s#izXA?Qi^!e)F&G-}?9ZmwrcU@%>wU@pJ0Exs6^| zCG4n0QA=5+Go4bL4&T^C&*)?#;HZ2#AV&#>e#x9J;uP{9B0&fPnZ{ow3zG>>$n%n*tEv!lYQ%M*PxB%oL~*fDO=)M6 zb=8^zT&*Z4{N0Ji*>PsVKw+fbM5;ZJ(w>dKQ<%Z6E;w*p?CArh}|2M8+MI^Kptz zy7a`IB9fEuO!FQ-{sTqecMma4`rt8!zOb?)0$^S@Whb0jyarTfn_X}mL=q# z^AR0*a{!}-sR@BoBLTAAN<%fXLx|6IY^rK(0g_n!dsysUwYGmfFu5n6$Z0Ah3axMp z4pppr96(zVm-DX#$hm~IJwP(fKohIR#xeDRvV=-vd@T_^RGvSyYGTa<=(MjeB_9VA zd5|+=PfT&*VTn}uRy4qPxFbj7{Lb86zaDR$!O_GcXTowCoy7#EfXPDl@guVTxCr1% z$M96gA@H&sixQW=jlYQPOnR5SY#jxLNRF~AR`F@ijJgwXU7IwNLp!~VrE#+>Kq=~` zG&ux@vku&mP`DR#bV=mMZU*uK@EWGM5~s@7Vf$;^XdL6sE>aKEkr!6e!+gx}DctzX zB`Gp944p$Y&ItY*juf7HOf$-ThNB*$lBn9M+yFV`pWzGwu4?Y0+@_buMZ$e(n7umZ z(GTH8STV};dQrxJO+2;=(ii!69oAv65IolU4N_9 z{Rm=K&CPaWo04W=nvz@yEt|k?`&9TvPkaI36)q&zz4!a8UT=1ZtlIRzuE4_fwCFCd z*X4&Mf!bUb6xptAPeRD4)gmtyq5H7~w1rw&-UjHD>bfKW-UtD;3iBOzbCqA9MFU)` zyA7ix<(1EP3frTLRGUP7s2C=FQDs?Fn(FGp(-D&Ta7SYtTskw3W}AtPZqyQ}{hXnE z%8m+Qg|H|{H>;#7%P||MQr{pm$JS;OAZAZ*rlurbSN9!?(z%+{ZiFB48b8P46)C~A z@PHooEyr)Eo=CP9_d9<16MgX$5cuRb`rrH;&%gB_>~H+3LiHD);oZ-On_{gcUFduG z43n}xPB2xBP{!hDLTo&RrQTeq9!Kk{vlO{p5W=Mq93OlVt^@|JV;Ev(IT?ljnCPLI zVb3G?OY*3R3uDA^d1_IE=$uXbalELn8|8uQf+9%|fDQhYV{K^Xf?`IZLCf^apPw^&g!3ow z=E6EufPTZa45jtmA=#|C598@M*BNZcB4Kl`?S3BZWxHNPk{k5plFI_Lme}bg~z#rvW1bai9+cSV4Mb%52)47Sm)O0i%J;e7RqX4$$UM zs&3X|`13y@^*P_`{8iUpm=k5FV_AV^SDNyK<2`za^jbqfO&1BsHi>z95i)0w9MeVH z!;InVN5bUY3}-T9i#;8)WK^A5a2H{W2O#n#AC0xh*mE#l@?qX>=SOa8MaE@-7?iYo zljTYx#J0N}k4_pW@rU32wg8T=lYvON-J6km3@M5i3@V*8UE&&u^7uw`MkGoRi0+w0l9=VA zQDu4DHw780p_y5k%F|?U%I0~K;rpCF<5SyG903Jn^f@d>+i(9?s7$&$E zm$=~`D1h3%?cARm<(EE5Xp(}%xQ2rZv`5NB#Cm6{b?1*qtGp5rrZh-DFtGeh9QnG9melZu=JK8@suZ5u2AufBj!Q{qz6g z`tIKszvPF%a9>};(;Mg2svBMGD8>#U)VPUK-&{|aaB=;A<>U}%E)k5fMcs~O= z5ffa6zFAN1&YkYJ5k+w|2;JaZgWSSK7gu4S?=~~URTgziMLjz{Hpt%YU2b%_pVHcu z#x6AhgH+$evNt=gr`47J{yF?y)%(Tck8B(!Y&sJ|D>7}(Oux<$Gx{B<6x4!(b-hKwG`pU08|K9)l{h#^k`uZ=e zXX))v@$PeCODigt-1OmkZ1_e&*yvT&mIcb&MVbQ1jR4u)@nNQj-a8(_rp^MnB6tM{ zePO8OiY~>ch}r_Xcv-wuGGm7Md=iHy+%acKQXm(3Th!`cY%YVS&NEBAlE0_}j0@{t zYYChVs4%F*l#WYQhsWdve}+_OxOG?=x zfRv8&LF;r(j)qyprI$mt4$Cd447|m z693F7W>-6FItJdK9gEtqAzlkWpxF;ed;~@ivz5qtr)8>yGd37jEW}MpH*G2PHfe@e zMCKQH%BvUXJ*A#Os}3pTtToL#FhypH1ebdGDE?{Y#t$PZN!pJE)(TJ`@qODpz5ucw z`jiHg`2@=~~K< zwx!LynEAlk>7e^Wxi~5Tg?1k%iwvjMRuYWEioxdr62M?Y%(wEt3y_?73Kr}idi44X z@=(BD$n4WpjC=~)V_!Jv+$r}l>uZ@rs;bnxt_2&iWBqt9`9W2hT8Dr&Hj3b7x`04& z_b$d=eh(Pkk7V&Yna%Y$qYHVF47HX?MX57MlBdy=a8kJWsX>lou#W&I!t6TMm$O$Sn0&tdhMf+6^1p|kmgnRFpn&~pBg;@gW zu16Wb5vm5OKm0|#ezWfP{MY~O(?9)Bu0Q&3)|a2}H($}~Z|dna2+tUZgr3QQEwjyH zYN0m^)3s2ngbHSXXE{kY6EA`y+np?vLcPG}Na5 zl(aS+u@m>r(H&CC2-ShHOnUhB!f??u!OyyvOD}A6@(v1K%Emyc2O39cf1uk<{i6lV zXE?maND2de(m>Qq(hW<1bavA|M+`)=<#k-tliI?>PV>=llk^<4J)W6hkoBR5A;p1B zlbsI;EfTD)&IU(F(Bj&yMM`Y$qZbW~#dxEbE~z>JKfg=E>h|d6n$4aKszY1l+L-+_ z{%8L6e3#&12jk7@==F5W4~d4+bWJ7=c7ah-%#|}!Z6b#l9qyyLVTGJ)HIS|3BQo)o zv-C08AgmHH#5%YT9H(+qn0r^1{HLt~Nf#o<|CQ1`!c`Nsc^H=Sg~l=(oK-p#MS6qG zwkgg#H|08g={@|lMvLw95H2_EWE*ox7%f=V7y>RK7BfETS?e@#_)Xvp8jf`9Uqp$`5vmLrcZEA0Enm^#-OlY9@^U?6&&&S42p!B(jro z`QU7FH_V70WJFTf+VEQqpeGbPv1Yv6RER<%xMWx!jPUQV{o-a{T)i7WU2E^=tXw39 zvLmy(##ze<%DR&`AFPkQfx7tfKdS%XKYRLT|F8Y?-`DklKKP}2{V}DOS^BKaJW|2j zr-28ozhVjX#IwIgs#ROL?5Xk^#0_{5*6|12;zjM2R2RKt*BITgp51EH#r7@h721PRfG2Yn~i`WMEsr*4?}6VnNRv zubz@dTXMo0L+C`H?iSXy`uVvR*Sa9Ic40v+&gzlFx>&-&7tN^7j?t2LRGWLOj@$ik zH(Nw(ERt?nx}QzX^`N}aV5}xM1%R<0*P4@TGlN)WHH*D*Ok*lhQxfY*x_#u35A5-q zXYxsy#{OdM_SC1%fTvnq;4Ra$o~z!fRjTFR=)$_jK}%tv*vWH^S~k7Y7OS#CnE<^v zW2D1?>J8X@{<1#*wBP?6U-{+xxBvb9Z~ZT>um483^yN?R_6yt_*Cmy>m+47`CiPUg zXBCV!CcOuOI56}Og1vY4QY&usy)hoeIApyJfjA-JfiyEUmzAnGgim?FZ4tEdNkao}%&_uP9B-Mv7G zJGwS_ERGp+cDEl}L9)@Q7Id4nW$p_OfG16}VBRc(NTgliD`3&OLj+h>s0vd;AT*K* z96IFc-{Q(RvyrEGbH~7R#Gs7bRV$D+xjNTtCy=;T>5fxEc$L>p2*rl5qdr;% zv){%wlxwVZ>d-I;HCW9hLiBt&Y(wV}f>y+G7Hk7iQCo?5^if0J`;_!!?lHW;y*ZR@ zD7+tj_d9St%n72w7Oe3T@E{i)*t6m&5hHM(;STXQAgCPkahRWAXlMWBSqAO=3OLAO zq!37)LVAT&ZLzrZD2^c@&U93>xh>uC2cNN3)+;D#KP>zpA0s~ymH$Ff{7_y zv+~5pD6z#a^RO==Y98ibQ>BeYsPklJ(V8}}I72bBS74LNA^2!}g5;ISn-xU_dFg=g}16UE~!0CF^vw1^cOkzp#G9Ge= znQ)m_Dvx&CM|~b&Dt&7%g4+Xd-K0td4Bt2HM2jgjJB#cDlu2g>vYP~6)YjCI3D($az|uur4ZrJM+u;haO)hR-88VMLXUb5 z)){snMo^sXp3D*88SkG|rF&QLqi^E+@ZRrVfB(O`{_g*s-~IdQx7R1Xc0YX`Cdnl% zEiHM6c8xi$6F~x;XLxG$-L@o>qN+@E^91$moyi@{v(X08s$h4>kQgpU+1P!rTB?ij zoTa*9$)C@?R3+GWVHLL#$(%qJiU|qP)_qv|KIl%)J9kHtyunzZqo=r?} zIa(Zp;ALgf1%l6C>dVjc#ZRun`)~ek|AoKVzxCIjUw^#beNk_JN>YVJ)$=yjU<1X; zVkNHtYCx60OKXT+jV6S)YBRGQMnW$pPt7MS`p>xSm`$D!p=#Q!&1K=1?MX}^2p*ps z39mW&V0TWi4*X11Jp8C5H)qSE&rb+~Qw6wdsEvqaJlIN4!M0jf*{4#mGgUHdh#{n( z=S!RlHsO`D^K@{|0r9A@_n1>HJkqE?Lh`1w+YWXMh(jXyvi0FfCxOIN?+5qn$s?D8 z)*<(9cXOh|Y{(AZDS-@GqHZ00jHK)|&y@D)C(RiF31dd>fF3!TLK?r9ax+ST{-$Z@Fjm}FOWlF@W7kQ;WgQ<`FIZU~dibxqnjj+oDS{P+O=>4cxb5uoVP=NS|p~;{D5}%DvIEb zzW43?ij15%h)!i}o+_kkxYm4nn|O4CRap&~z!2DL&lzieT;B6hbp_fEpOY2nz^o8= zNH9?Ll)xZqK#^Pz*d+rCFcTz<_F^@*Csurq;+5Z1df}1Mtig{Fr0Ch$-Oyf zkoeAW)f}-|%0A4?Jr{M}u*v5a4HgZCj5$-B8t2EM$ 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 z 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 z

    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

    k0Nf)rW^~MM#(5pMO+2x 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

    WQkXq2UzlX2C=KuIt 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%0A~y~+2w&tyYIC=6=pJ+_U#EN5+nsK;5GoP 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%0ASn)N(qV2pnbEppiVRLy%nAOnrdxJnV$NOO>I9u0 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 DSK>|HN;9;6MKczyBxb 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 JB7M%qVkR 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