diff --git a/README.md b/README.md index 4c8c4b4813..1e1fe03473 100644 --- a/README.md +++ b/README.md @@ -370,6 +370,7 @@ Costs involved in running and developing this web app: - AmaseCocoa (Japanese) - BoFFire (Arabic, French, Kabyle) - Brawaru (Russian) +- buenanoche (Spanish) - cairobraga (Catalan, Portuguese, Brazilian) - cbasje (Dutch) - cbo92 (French) @@ -396,11 +397,13 @@ Costs involved in running and developing this web app: - isard (Catalan) - kaliuwu (Polish) - karlafej (Czech) +- kleoporte (French) - Kweerk1223 (Portuguese, Brazilian) - Kytta (German) - llun (Thai) - lucsdev24 (Occitan, Portuguese, Portuguese, Brazilian) - LukeHong (Chinese Traditional) +- M33 (French) - mahefa.randimbisoa (French) - Mannivu (Italian) - manuelviens (French) @@ -431,6 +434,7 @@ Costs involved in running and developing this web app: - seizeheures (Esperanto) - shuuji3 (Japanese) - Sky_NiniKo (French) +- SoleneGK (French) - StasZin4 (Ukrainian) - Steffo99 (Italian) - Su5hicz (Czech) diff --git a/lingui.config.js b/lingui.config.js index e612248de8..9ddf41e50f 100644 --- a/lingui.config.js +++ b/lingui.config.js @@ -15,6 +15,9 @@ const config = { ], // compileNamespace: 'es', orderBy: 'origin', + macro: { + jsxPlaceholderAttribute: '_t', + }, }; export default config; diff --git a/package-lock.json b/package-lock.json index daa61fd942..49d7a7785d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,34 +9,34 @@ "version": "0.1.0", "hasInstallScript": true, "dependencies": { - "@formatjs/intl-localematcher": "~0.8.8", - "@formatjs/intl-segmenter": "~12.2.7", + "@formatjs/intl-localematcher": "~0.8.10", + "@formatjs/intl-segmenter": "~12.2.10", "@formkit/auto-animate": "~0.9.0", "@github/text-expander-element": "~2.9.4", "@iconify-json/mingcute": "~1.2.7", "@justinribeiro/lite-youtube": "~1.9.0", - "@lingui/detect-locale": "~6.0.1", - "@lingui/react": "~6.0.1", - "@szhsin/react-menu": "~4.5.1", + "@lingui/detect-locale": "~6.4.0", + "@lingui/react": "~6.4.0", + "@szhsin/react-menu": "~4.5.2", "chroma-js": "~3.2.0", "compare-versions": "~6.1.1", - "exifreader": "~4.38.1", - "fast-blurhash": "~1.1.4", + "exifreader": "~4.41.0", + "fast-blurhash": "~1.2.0", "fast-equals": "~6.0.0", "flexsearch": "~0.8.212", - "fuse.js": "~7.3.0", + "fuse.js": "~7.4.2", "gifuct-js": "~2.1.2", "html-prettify": "~1.0.7", - "idb-keyval": "~6.2.2", + "idb-keyval": "~6.2.5", "intl-locale-textinfo-polyfill": "~3.0.0", - "js-cookie": "~3.0.5", + "js-cookie": "~3.0.8", "just-debounce-it": "~3.2.0", "lz-string": "~1.5.0", - "masto": "~7.11.1", + "masto": "~7.12.0", "micro-memoize": "~5.1.1", - "p-queue": "~9.2.0", + "p-queue": "~9.3.0", "p-retry": "~8.0.0", - "preact": "10.29.1", + "preact": "10.29.2", "punycode": "~2.3.1", "qr": "~0.6.0", "react-hotkeys-hook": "~5.2.4", @@ -44,7 +44,7 @@ "react-quick-pinch-zoom": "~5.1.1", "react-router-dom": "6.6.2", "swiped-events": "~1.2.0", - "temml": "~0.13.2", + "temml": "~0.13.3", "tinyld": "~1.3.4", "toastify-js": "~1.12.0", "uid": "~2.0.2", @@ -55,23 +55,24 @@ "web-haptics": "~0.0.6" }, "devDependencies": { - "@emnapi/core": "~1.10.0", - "@emnapi/runtime": "~1.10.0", + "@babel/plugin-transform-runtime": "^7.29.0", + "@emnapi/core": "~1.11.1", + "@emnapi/runtime": "~1.11.1", "@iconify/utils": "~3.1.3", - "@lingui/babel-plugin-lingui-macro": "~6.0.1", - "@lingui/cli": "~6.0.1", - "@lingui/vite-plugin": "~6.0.1", - "@playwright/test": "~1.60.0", + "@lingui/babel-plugin-lingui-macro": "~6.4.0", + "@lingui/cli": "~6.4.0", + "@lingui/vite-plugin": "~6.4.0", + "@playwright/test": "~1.61.0", "@preact/preset-vite": "~2.10.5", - "@types/node": "~25.8.0", - "oxfmt": "~0.49.0", - "postcss": "~8.5.14", + "@types/node": "~26.0.0", + "oxfmt": "~0.55.0", + "postcss": "~8.5.15", "postcss-dark-theme-class": "~2.0.0", - "postcss-preset-env": "~11.3.0", + "postcss-preset-env": "~11.3.1", "prop-types": "^15.8.1", - "sonda": "~0.11.1", + "sonda": "~0.13.1", "twitter-text": "~3.1.0", - "vite": "~8.0.13", + "vite": "~8.0.16", "vite-plugin-generate-file": "~0.3.1", "vite-plugin-html-config": "~2.0.2", "vite-plugin-pwa": "~1.3.0", @@ -85,6 +86,7 @@ "workbox-strategies": "~7.4.1" }, "engines": { + "node": ">=22.19.0", "npm": ">=10.3.0 <11.5.0" } }, @@ -130,12 +132,12 @@ } }, "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==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -183,13 +185,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -285,9 +287,9 @@ } }, "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -308,13 +310,13 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -351,9 +353,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", - "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", "engines": { @@ -411,18 +413,18 @@ } }, "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==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "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==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -466,12 +468,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", - "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -1403,6 +1405,41 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz", + "integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", @@ -1663,31 +1700,31 @@ } }, "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", "debug": "^4.3.1" }, "engines": { @@ -1695,13 +1732,13 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1787,9 +1824,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.1.tgz", - "integrity": "sha512-eZ5XOtyhK+mggRafYUWzA0tvaYOFgdY8AkgQiCJF9qNAePnUo/zmsqqYubBBb3sQ8uNUaSKTY9s9klfRaAXL0g==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.7.tgz", + "integrity": "sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==", "dev": true, "funding": [ { @@ -1882,9 +1919,9 @@ } }, "node_modules/@csstools/postcss-alpha-function": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-2.0.5.tgz", - "integrity": "sha512-i2lNJ6b4GdMoybHlpUM07TIk8KQRXTTe7Qf8LfctQhjDRTIgaodWTQqzWU4fpWO/nxBWNkSloDM22Lw/30NBcg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-2.0.6.tgz", + "integrity": "sha512-XaMnJJqqZv4veulLELvM+5caEMcLTsFyqTrkwGKPMF+UbiM7dlQoe4K46EnwfSJIvnm91K1ZXsZSd3OuJ04p9w==", "dev": true, "funding": [ { @@ -1898,7 +1935,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -1939,9 +1976,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-5.0.4.tgz", - "integrity": "sha512-PhUu86ppxKcNHHqrJ43ZL1mYa2uHKGRoY0KPbZA9k8iOaanL3I+1zYqbgVumxj1UgNTDw5BE3BUQ1Dono6bD6g==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-5.0.5.tgz", + "integrity": "sha512-s+9fU1+sZazUNk0WyKShlfmTLC0fosxNY5x7DiD637xXbZLX2lyce23QrdRhytP3Ja1G77qUk6cRD37N1gemdQ==", "dev": true, "funding": [ { @@ -1955,7 +1992,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -1969,9 +2006,9 @@ } }, "node_modules/@csstools/postcss-color-function-display-p3-linear": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-2.0.4.tgz", - "integrity": "sha512-xrGqSFj9pu6XbJYD4NNCxYK9WFbf0KMfXFaisnJezkIRDZCwefUB2azkU4Zr0dFmLtIb9LlshrSZ0be1/QVthQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-2.0.5.tgz", + "integrity": "sha512-YzY5qI0S/CsvqvMSiDn85ZyTCRLdnywxQn+6Fv8AU17aCE/fjcor54OSdVb/HlABBTcBq+d8NlWcLz11Bmo2mQ==", "dev": true, "funding": [ { @@ -1985,7 +2022,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -1999,9 +2036,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-4.0.4.tgz", - "integrity": "sha512-zYS78MHBuih9f9qtPFcSvVXMKg9q/lNPeFJUjyw7+/W1VHRjubvs5MlzuC363UUeahAhrOvYdo2ZZhmlxZbj6w==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-4.0.5.tgz", + "integrity": "sha512-eBrrzTKudOlDl2XOJzW/pzHPIkC8tGkcGpNiFO/vmevb08U1huYEINhlxr8iz4OzSqs1GtiJx4d2v5iHFOZjNw==", "dev": true, "funding": [ { @@ -2015,7 +2052,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -2029,9 +2066,9 @@ } }, "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-2.0.4.tgz", - "integrity": "sha512-qlrABMEFPUqbCxX0aOsHcxQZo/8XgMqnEtqqtVUbdizcuTUtJyLdHike7hkoemwDspMSEotdIfRlUY4jhZaD+A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-2.0.5.tgz", + "integrity": "sha512-O4tE1hZXfEAbTP1IC2R857KjPCLNtpsFUqY2dqgycF/3M6GuFyJI20EWwkxVZzlSFvWdIcNppwRf9pxPFn0qnA==", "dev": true, "funding": [ { @@ -2045,7 +2082,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -2115,9 +2152,9 @@ } }, "node_modules/@csstools/postcss-contrast-color-function": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-3.0.4.tgz", - "integrity": "sha512-EiTZzUICztGqEuYg8AVCUWH9vH2jDzO6RryxMja+PWluZHP6n3/iG6i1leTt5LiDQjDUQlCRbQtMNj7V7S+b4Q==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-3.0.5.tgz", + "integrity": "sha512-gfdTZ4a5ioL2zM/yN2FqExy6rql+6egkI5sDuK9MvrbfrVJMzB0OjiCkboT5UprU/P0JwfTiIutW1ZSyqK4Icw==", "dev": true, "funding": [ { @@ -2131,7 +2168,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -2226,9 +2263,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-3.0.4.tgz", - "integrity": "sha512-2dWGsxtxypKU9Ra862F2335W8xegRwl9ohQ6hk808PiQlEahSaFtt5fqsGmKDaSiaFUx+2X8GZxVo970Ajr2vQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-3.0.5.tgz", + "integrity": "sha512-X6XkKkR9R8KyJey9n1ryEzzfX6WpihPz/JBsyIVvxAlztQcMjMA7I9mMybWVv3ZyRMC+0+H7RlIUe85vZkasNQ==", "dev": true, "funding": [ { @@ -2242,7 +2279,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -2254,9 +2291,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-6.0.4.tgz", - "integrity": "sha512-sC/7dqVTtQTniLjPp/NagzeUn4sGinnMTicNBLDzirKq/GNXuJaApBOnvBmgNXjV6XPizfMhNRYCk5stn3q2nQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-6.0.5.tgz", + "integrity": "sha512-wXiZI6bLRAGcw7XuzsqqPnTVNrHFkHTkcymK2su+ynJjemfCdpCD9HdG+ICikPqtQ782r6LSZdyC3cDhSQqF3Q==", "dev": true, "funding": [ { @@ -2270,7 +2307,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -2284,9 +2321,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-5.0.4.tgz", - "integrity": "sha512-cl0KPaaeYyAXNHO3pqK8adbpbAGmIU1cT1thyaEkmP8yvbJvmyztkpdGADGqziUUoh4dZQ0IhHxOxnKQ296T+A==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-5.0.5.tgz", + "integrity": "sha512-HeJOXAMr1nYHZ7gJT1+6d899X9Y+5qJcpbLJ8WzhujQOIB4oqbzeP3769sd1xl3eH4qbasxtewxr4crs08SEQw==", "dev": true, "funding": [ { @@ -2300,7 +2337,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -2709,9 +2746,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-5.0.4.tgz", - "integrity": "sha512-vIgrKe5ffW99it5SUIXOBczGLSiTaHBhU6afVr9KPwoZ4uq9H0E3Ehvi+xsUjmvnAyMTxOUSszNo04kEhbvYjQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-5.0.5.tgz", + "integrity": "sha512-A+Nkzj2ODvQboM5FlqEcp0iqilyVo78f9FMx/3cHrRrEBqCymSXvf8sa1cTY54lJoUVI3Sn9XysgvYaVIAuIYg==", "dev": true, "funding": [ { @@ -2725,7 +2762,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -2843,9 +2880,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-4.0.4.tgz", - "integrity": "sha512-reFFKD9eS602We8621e5cAroKD7hH4104duLNBBhzwawGN7dhbnL1+c/DRHqwyq6eGK35HaKMMiifEZhAztlOA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-4.0.5.tgz", + "integrity": "sha512-kBzf+LIm824cpjsZPhNtl/2N1KK+TXnxy8Kce4y+pEAQSrxhpX6WDUg54wjdHBGx2UZUXKBnlaUOsc71sSRDvg==", "dev": true, "funding": [ { @@ -2859,7 +2896,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -3155,20 +3192,20 @@ } }, "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", "dev": true, "license": "MIT", "dependencies": { - "@emnapi/wasi-threads": "1.2.1", + "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", "dev": true, "license": "MIT", "dependencies": { @@ -3176,9 +3213,9 @@ } }, "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==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", "dev": true, "license": "MIT", "dependencies": { @@ -3186,27 +3223,27 @@ } }, "node_modules/@formatjs/fast-memoize": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.5.tgz", - "integrity": "sha512-KLi3fan6WnCHmigd9pmEEN8Hid0v4wiFBW576M/d07KMWYecf1CvyMI3n34vCmHT4AoVqG2n702kiHbXjzZX2A==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.6.tgz", + "integrity": "sha512-H5aexk1Le7T9TPmscacZ+1pR6CTa2n1wq+HDVGXhH8TzUlQQpeXzZs91dRtmFHrbeNbjPFPfQujUqm7MHgVoXQ==", "license": "MIT" }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.8.tgz", - "integrity": "sha512-pBr2hVKWvkHVnfXegW+53NT9U2uaVQCc+EgzLPCCwXqBA3nvM5fPbK9IcJlNjV+NMKGyZ2F3ZSG78iGdxAAqbA==", + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.10.tgz", + "integrity": "sha512-P/IC3qws3jH+1fEs+o0RIFgXKRaQlFehjS5W0FPAqdo6hgzawLl+eD0q0JjheQ3XtoOe5n8WSYfX06KQZI/QJA==", "license": "MIT", "dependencies": { - "@formatjs/fast-memoize": "3.1.5" + "@formatjs/fast-memoize": "3.1.6" } }, "node_modules/@formatjs/intl-segmenter": { - "version": "12.2.7", - "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-12.2.7.tgz", - "integrity": "sha512-fukQs4CP7pUM2km4mn7laHNNJewS3RB0v0wP50gV43THf1I3yRECyehDqQHxpj/kmOAYOdCmJs8Tw60grmSs+w==", + "version": "12.2.10", + "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-12.2.10.tgz", + "integrity": "sha512-GjzmeSuSgvLMOfte87TgmdfrmSdE6HYmZRvqzMteUMQJHyD61ejPFa7T+oGnruX9kCAqMjPNMrsaMIk1hcvQbg==", "license": "MIT", "dependencies": { - "@formatjs/intl-localematcher": "0.8.8" + "@formatjs/intl-localematcher": "0.8.10" } }, "node_modules/@formkit/auto-animate": { @@ -3366,34 +3403,37 @@ "license": "MIT" }, "node_modules/@lingui/babel-plugin-extract-messages": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-6.0.1.tgz", - "integrity": "sha512-E9quPJxYZFz2f1t8lRyPILWKrqrUI32EYBQMjC9CcneKh9ZLtvm7K1IAM+tPMYW5BDDqlXIVr8XHhGrkv/3OSA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-6.4.0.tgz", + "integrity": "sha512-b9NatQFU1h0muPCC0QGdSVKE/OEdR4w9FQrKAOFYwH0eF7pD2ArafqyqG6xsw2E+7w4PlZQjzOhihQMxI8a6sA==", "dev": true, "license": "MIT", + "dependencies": { + "@lingui/conf": "6.4.0" + }, "engines": { "node": ">=22.19.0" } }, "node_modules/@lingui/babel-plugin-lingui-macro": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-lingui-macro/-/babel-plugin-lingui-macro-6.0.1.tgz", - "integrity": "sha512-ZVsi04ZeqkvOfLn+fVZPEv6//SKHvrJlD+T0oJWDdymMKQVGsuFUSHFq3eFBpKilPMzYSCCj0wHgmljdUQionw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-lingui-macro/-/babel-plugin-lingui-macro-6.4.0.tgz", + "integrity": "sha512-V15kARtjzWgLga/6LOTMMki5pv3F42m9BX8jdI1mBg4yCo1cS0B3szfoBqoveFs7x+nh0iuEPAKcM9lVdSYadw==", "license": "MIT", "dependencies": { "@babel/core": "^7.20.12", "@babel/types": "^7.20.7", - "@lingui/conf": "6.0.1", - "@lingui/message-utils": "6.0.1" + "@lingui/conf": "6.4.0", + "@lingui/message-utils": "6.4.0" }, "engines": { "node": ">=22.19.0" } }, "node_modules/@lingui/cli": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-6.0.1.tgz", - "integrity": "sha512-xojK0f0JjgcZArNU4m3vydhG+ngQOxbovV8wDav3TT1R8PXSvKrmGfCoPffQczpbl86/0NOSdvteN8Da5MQlqg==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-6.4.0.tgz", + "integrity": "sha512-OqtEPHFmgQlyroQMmpnda6QRnfAqlAYnRVZpZSX3rZpwwaHI1pD7T1EQoK8n7kin9TGhitc1J33wFom7o/+yyg==", "dev": true, "license": "MIT", "dependencies": { @@ -3401,12 +3441,12 @@ "@babel/generator": "^7.28.5", "@babel/parser": "^7.22.0", "@babel/types": "^7.21.2", - "@lingui/babel-plugin-extract-messages": "6.0.1", - "@lingui/babel-plugin-lingui-macro": "6.0.1", - "@lingui/conf": "6.0.1", - "@lingui/core": "6.0.1", - "@lingui/format-po": "6.0.1", - "@lingui/message-utils": "6.0.1", + "@lingui/babel-plugin-extract-messages": "6.4.0", + "@lingui/babel-plugin-lingui-macro": "6.4.0", + "@lingui/conf": "6.4.0", + "@lingui/core": "6.4.0", + "@lingui/format-po": "6.4.0", + "@lingui/message-utils": "6.4.0", "chokidar": "5.0.0", "cli-table3": "^0.6.5", "commander": "^14.0.2", @@ -3912,9 +3952,9 @@ } }, "node_modules/@lingui/conf": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-6.0.1.tgz", - "integrity": "sha512-6NJIOTh7Pt1MXMNkUsxjA6tlKX7LB1QLh/A5H3a1SmZTSZgcbes/BvF4lEh7zAfhNIU5A5Y8PljX+n4fBGO7Hg==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-6.4.0.tgz", + "integrity": "sha512-C+THkLbda72//6dL7QAVyaxIxOnag8mGWKqrMsyIUHgZpStE05KiF8HDwTCMNiaeQmQPym/D8fVm7m8jCau3EA==", "license": "MIT", "dependencies": { "jest-validate": "^29.4.3", @@ -3927,13 +3967,13 @@ } }, "node_modules/@lingui/core": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/core/-/core-6.0.1.tgz", - "integrity": "sha512-3dtvQmPv7qpu6j4SwX8h/TQu3ADujdw9/ZV3qb6OwsYa0AhBUPaydVGOEDvkNA7v/fQh6CNUc6qqZrBbDBvdHA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/core/-/core-6.4.0.tgz", + "integrity": "sha512-DVbgp9tn07t3iByH6snsn1WaM8PxjDacOqf45oLVXyIti98PmXadO2UkO+NgCybHSqm3+7GGV4zTr4777Cc9nA==", "license": "MIT", "dependencies": { - "@lingui/babel-plugin-lingui-macro": "6.0.1", - "@lingui/message-utils": "6.0.1" + "@lingui/babel-plugin-lingui-macro": "6.4.0", + "@lingui/message-utils": "6.4.0" }, "engines": { "node": ">=22.19.0" @@ -3948,33 +3988,33 @@ } }, "node_modules/@lingui/detect-locale": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/detect-locale/-/detect-locale-6.0.1.tgz", - "integrity": "sha512-pQS8Y2Ho09llqs9YvFXUkouxQZd7VNl9F77a7PpOWd/pKKrJZyCzgPu7Kw3mr+zcbg2owBTzdIfoXfv1BXQUmg==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/detect-locale/-/detect-locale-6.4.0.tgz", + "integrity": "sha512-cj2J8k9PwlbnyZfZ3YN1B+dPJMcQ7AK3MlAw8QDezrVlq5lWESudLClpNjpDF1jqf7H3aWF5rhMPCT8DO5uMNQ==", "license": "MIT", "engines": { "node": ">=22.19.0" } }, "node_modules/@lingui/format-po": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-6.0.1.tgz", - "integrity": "sha512-kt3naP/2kpAPJ4dwwFnkhbvR5XkGaNdbK8W6ofpIJFhY3MvGZJ9rYY0KMp++3DAaXf7r6tHq0W0To3akSDejvg==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-6.4.0.tgz", + "integrity": "sha512-tu5aNalW9u+xjmcAlNEjfw4ahzMHFeC4nKz+zYHcv44Drpy9/bWnrr5j7Pi4rc9u4PILtXikwAsLh28u284WiA==", "dev": true, "license": "MIT", "dependencies": { - "@lingui/conf": "6.0.1", - "@lingui/message-utils": "6.0.1", - "pofile": "^1.1.4" + "@lingui/conf": "6.4.0", + "@lingui/message-utils": "6.4.0", + "pofile-ts": "^4.0.3" }, "engines": { "node": ">=22.19.0" } }, "node_modules/@lingui/message-utils": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-6.0.1.tgz", - "integrity": "sha512-cw1X5mqDODbYDkwvA9i6/4j7Ix0ptl+E9RfhBRLI2NsoLzHHX+ePryGkShFdUHYsDL+C9qkq8W0drgRVEl9LgA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-6.4.0.tgz", + "integrity": "sha512-Bkt2V7vI57/CEVyJCO+93jssN2MhLJ07M6S0d16tHvigNftP5Ndl+2xX1HKWD6eozidc5lOeTZMtrEL9jzXEsg==", "license": "MIT", "dependencies": { "@messageformat/date-skeleton": "^1.1.0", @@ -3986,13 +4026,13 @@ } }, "node_modules/@lingui/react": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/react/-/react-6.0.1.tgz", - "integrity": "sha512-Pjj77gdZEINsqTvnNtHZTtU+xlgCK3lFKUd4fXMcIo8q7snkdmD8SB/EBJB28s+e5ZEcmFi5dfS4ekc5scQvPA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/react/-/react-6.4.0.tgz", + "integrity": "sha512-9ui7O/K/X+AXN7TdSEbKq//sNLAJ42dk1GftzAcHL58jKv3CnEyKOPJb2S0L/Ez6li8I0O4KKgRn1BK0Qk/Jqg==", "license": "MIT", "dependencies": { - "@lingui/babel-plugin-lingui-macro": "6.0.1", - "@lingui/core": "6.0.1" + "@lingui/babel-plugin-lingui-macro": "6.4.0", + "@lingui/core": "6.4.0" }, "engines": { "node": ">=22.19.0" @@ -4008,14 +4048,14 @@ } }, "node_modules/@lingui/vite-plugin": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@lingui/vite-plugin/-/vite-plugin-6.0.1.tgz", - "integrity": "sha512-RgHkaC76p8NLj2DqA4JqC1/+pFIZWSkv4dJm/D8O+GSoJlst7WMl4h08qpPpAdTKgZpDZB8d22O6ejFohe6PTw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@lingui/vite-plugin/-/vite-plugin-6.4.0.tgz", + "integrity": "sha512-15ogZWydII5TbWwTJJGfJF9OpATxiIbJGearfBv+tj13uv3TlKwLGdmpn/GV8COY8v0irKr7dfdyfxYvxLxSZQ==", "dev": true, "license": "MIT", "dependencies": { - "@lingui/cli": "6.0.1", - "@lingui/conf": "6.0.1" + "@lingui/cli": "6.4.0", + "@lingui/conf": "6.4.0" }, "engines": { "node": ">=22.19.0" @@ -4067,14 +4107,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==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@tybys/wasm-util": "^0.10.1" + "@tybys/wasm-util": "^0.10.2" }, "funding": { "type": "github", @@ -4086,9 +4126,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.130.0.tgz", - "integrity": "sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", "dev": true, "license": "MIT", "funding": { @@ -4096,9 +4136,9 @@ } }, "node_modules/@oxfmt/binding-android-arm-eabi": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.49.0.tgz", - "integrity": "sha512-HbifJ84prIh9+55CTPAU35JdRQrwg47y16cGerCC+iejSKOuHXYo2WDql6l7cQlzrYVtc3f4UWY+dBj2lRmOeA==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.55.0.tgz", + "integrity": "sha512-+rFDOqQe5LOWgxrAJaZgLRudr6GQm0wGI6gtu7vVkrdLGjNMUSGbAlaCr8j7F2H2Er97vYQCU8WDb30onqMM1g==", "cpu": [ "arm" ], @@ -4113,9 +4153,9 @@ } }, "node_modules/@oxfmt/binding-android-arm64": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.49.0.tgz", - "integrity": "sha512-Ef7SKJqAaH2d7E6eXZZa2OffIShbhFMxnGK0zd93p4qiyTJr75B0qf7lrPD+qQOwcf04BrjYJ0JUxq8d5+yZwg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.55.0.tgz", + "integrity": "sha512-ctulLq8s3x8Zmvw6+iccB09TIKERAklRSmbJ10gk8mlAn05qZxoyo52dj3Hi9IJcmDSwF54fQaTVh2CbL6PInw==", "cpu": [ "arm64" ], @@ -4130,9 +4170,9 @@ } }, "node_modules/@oxfmt/binding-darwin-arm64": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.49.0.tgz", - "integrity": "sha512-8x5DN9CsFfb432sHa9NyqX5XisGUdA53LPEGSdv/VniS+v4uEOR8Orv7A9QSB98Xxgp0t6r31DzQA/wpIobGqQ==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.55.0.tgz", + "integrity": "sha512-xDQczLH9pw/RBk1h/GH0qcGMm8hQtmtVHBNLSH3lk1gEIR09hZ4L+mJQl4VqiVAvPK9VG9PYrWWuSQLt7xTbiA==", "cpu": [ "arm64" ], @@ -4147,9 +4187,9 @@ } }, "node_modules/@oxfmt/binding-darwin-x64": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.49.0.tgz", - "integrity": "sha512-e0+DSVzk4ewhMVKNYDaRTmP81jNMBWR1X9al0cVKWS+hDM/dElNqD5zjTOCuLOZc4oOdp2Gx2ldrVL+yYo9TZQ==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.55.0.tgz", + "integrity": "sha512-JaNoFCkF2CJdGgpPSMbuO9HVyXyoNGIhMHPvp6NYAjeVKw9XEYc0HcUWJLPQa3Q69WV5wMa9m5jPMJPtbLtcRg==", "cpu": [ "x64" ], @@ -4164,9 +4204,9 @@ } }, "node_modules/@oxfmt/binding-freebsd-x64": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.49.0.tgz", - "integrity": "sha512-W+mjtYtrQvFbXT/uNT+221OBhGRZ8UqNsLxjTWsjZ4GsQnRdvRC/N2NCK86BcamWr7lsTxwpwN3PULnr78sgcQ==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.55.0.tgz", + "integrity": "sha512-DNbszhpg6S2MIzax5azdHFTTBIVkR5xr8yyRZuA4yoDAwOkzIp3tmldgKZM2+VlT+hJIG0xUksA+elISzMEAfA==", "cpu": [ "x64" ], @@ -4181,9 +4221,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.49.0.tgz", - "integrity": "sha512-Rtv6UevV7czDlLqil+NZUe4d8gs8jQo/zScSpumwyf7I+fSdLc+hc8AF3MQC7ymxSMMD9+vfiqQlsIf7wOAzXA==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.55.0.tgz", + "integrity": "sha512-2snoaoRfFFyGnbOcKUK36rREBYxe/Xgz3uHbiA5zbCB/s6R4DQj4mHqYAaWWhgizCUSDxV8cE9zAZ0XleNpKGw==", "cpu": [ "arm" ], @@ -4198,9 +4238,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm-musleabihf": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.49.0.tgz", - "integrity": "sha512-sBi+8C/Q/MdKa5FL8ibAUCdhFBGFH7HFN/Qoyd5xQbZ/0ky3NMPpKfIBpaH0lhK2dXkGLczVQUoZ+xuNSerCdQ==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.55.0.tgz", + "integrity": "sha512-q1aktHF/WRpSK81BX1dE/9vWrS2jGw1Nax2kb4DBLGAewubCLcoNyp4Zl/NSMgbv3vUS46Z33wIQkBVYOP3PYg==", "cpu": [ "arm" ], @@ -4215,9 +4255,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm64-gnu": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.49.0.tgz", - "integrity": "sha512-JIfWenFhlzx+O8YygyZhoHFzTsdgDhxhbDRnE2iJLnnM5pWKScFvPECO2vOlA7JqJ/9S1g3uzEKuRCkHFwTjvA==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.55.0.tgz", + "integrity": "sha512-VD0y36aENezl/3tsclA/4G53Cc7iV+7Uoh7gz4yvcOTaEYBtJpQsE6PKDGTtUtOvGS4kv51ybfXY/nWZejO5IA==", "cpu": [ "arm64" ], @@ -4235,9 +4275,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm64-musl": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.49.0.tgz", - "integrity": "sha512-iNzkMPG18jPkwBOZ4/HEjwqfzAjq4RrUQ0CgId/fC1ENvYD5jLVAaU/gWgpiqP1ys07kxSsSggDd1fp3E7mQHw==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.55.0.tgz", + "integrity": "sha512-r8xlKJFcsRmn0H5jZrdORae6RX9jDBrZVvOoxF+bCQtampQJClv80aZEHsv+NsLsp2KCE5ql79O7DpPVzYWpXA==", "cpu": [ "arm64" ], @@ -4255,9 +4295,9 @@ } }, "node_modules/@oxfmt/binding-linux-ppc64-gnu": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.49.0.tgz", - "integrity": "sha512-BPHA/NN3LvoIXiid+iz3BHt5V0Rzx0tXAqRUovwE1NsbDaLG9e8mtv7evDGRIkVQacqTDBv0XL25THHsxSJosQ==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.55.0.tgz", + "integrity": "sha512-GRKv/HXHcwIVld/WU61rF0g0R16hl5EJ+ScKdpjevT57lnLnagj/U2YUbXf2mT+2Pg1uCzWC+mvGicPV3CDdLQ==", "cpu": [ "ppc64" ], @@ -4275,9 +4315,9 @@ } }, "node_modules/@oxfmt/binding-linux-riscv64-gnu": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.49.0.tgz", - "integrity": "sha512-3Eroshe+s69htC9JIL0+zLGQczLtRKezkMhwqQC21VC5Z/fuLvzLfbAOLgJLUq601H8gDYjy7deYycfOBjCvWg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.55.0.tgz", + "integrity": "sha512-rdv57enTiPtpSYRMKfAiEbQb0Puw5t9N7isVinDoo5qeLDScro2gznmZqSgSWbVZRzLisTeCTW8Qwgw0bOHv3A==", "cpu": [ "riscv64" ], @@ -4295,9 +4335,9 @@ } }, "node_modules/@oxfmt/binding-linux-riscv64-musl": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.49.0.tgz", - "integrity": "sha512-fnaERGgsxGm0lKAmO72EYR4BA3qBnzBTJBTi6EtUMq1D4R7EexRBMU4voXnx4TXla3SEDl9x4uNp/18SbkPjGg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.55.0.tgz", + "integrity": "sha512-7v1nNrlD43VY6+sYQ6efYyb3lE6QY182304PD/768ZxTjOmFd/3dQa3u/nGBUAXYdGSWOQc5N3PnS0QzUXyEIA==", "cpu": [ "riscv64" ], @@ -4315,9 +4355,9 @@ } }, "node_modules/@oxfmt/binding-linux-s390x-gnu": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.49.0.tgz", - "integrity": "sha512-rBwasMl1Uul1MCCeTGEFKnOTL7VUxHf+634jWStrQAbzpBJgd5Yz5m4F7exVCsoI8PHn57dNjssXagXLCLB5yA==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.55.0.tgz", + "integrity": "sha512-f4lJLUSPOgScjFl9LiflKCTocyNRwE25JmTMbN4XQdDjoZzEHjqf3wA3VESF1/csg7i8m7+EQLbrZyYDqe10UQ==", "cpu": [ "s390x" ], @@ -4335,9 +4375,9 @@ } }, "node_modules/@oxfmt/binding-linux-x64-gnu": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.49.0.tgz", - "integrity": "sha512-BoC/F9xHe2y/deuBGA5Aw7bes07OD2gcL2wlpzTrfImR92vPP7S/k3LBTyspQZCNIVNdagkELcqKELwMLGIfAg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.55.0.tgz", + "integrity": "sha512-MihqiPziJNoWy4MqNSV+jVA1g+07iQDjZiR0vaCaDoPgFEiJpCMsxamktzLV07cEeQsSJ04vQaU4CzCQwIvtDA==", "cpu": [ "x64" ], @@ -4355,9 +4395,9 @@ } }, "node_modules/@oxfmt/binding-linux-x64-musl": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.49.0.tgz", - "integrity": "sha512-umY6jFADAo/oztFKl8D/S6vSrG6oBpEskcentiRuz42kZVU2kfDXMWCYavxyZR2bwPjqkHpcHZ6EZFiH3Qj9ZA==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.55.0.tgz", + "integrity": "sha512-Yqghym7KYAVjP9MmSrNZiDeerMuoejNjo0r3ox5H3GDKk8eAfl8VyJm9i+pWCLDCTnAbcTUMMN2ZKjUYXH1v3g==", "cpu": [ "x64" ], @@ -4375,9 +4415,9 @@ } }, "node_modules/@oxfmt/binding-openharmony-arm64": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.49.0.tgz", - "integrity": "sha512-J85zQMiw2pXiGPK+OusmDvSnJ/dgpgN7VgmB2zOBtgS8F+nsOUfSg9ZEBrwbQscjZ7tkPbm38CG4VF5f53MsiA==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.55.0.tgz", + "integrity": "sha512-s5SDvVVSbyQl1V5UU3Yl12M+XLUQ3rl5SglNqgAA2K4PXUtQhyNSS00wivONPEnNo5W01rCou8WkDNyvI/RGHg==", "cpu": [ "arm64" ], @@ -4392,9 +4432,9 @@ } }, "node_modules/@oxfmt/binding-win32-arm64-msvc": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.49.0.tgz", - "integrity": "sha512-38K67XR++CoFFORDd4sMFwUVAnD6msYBdGTei+qvKGrRPO6S2PbrYPNL/eQQ1RgnnxOegNba0YQwg6uRkNcw6A==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.55.0.tgz", + "integrity": "sha512-7p9FB5R32tw2KyyNX3wpQrR2WHwEHvMEiBlGXxeTCaRMCVNx3UtFMAUbaQ/pRNWIrEUZmYhJ6tcUH52uPTRYjQ==", "cpu": [ "arm64" ], @@ -4409,9 +4449,9 @@ } }, "node_modules/@oxfmt/binding-win32-ia32-msvc": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.49.0.tgz", - "integrity": "sha512-rXVe0HICwQF0dBgbQtBCoYf8x/SidPIdhyQl+iPuJlV7suV+qDv7yUEB3wQ4qC3nOeNxz287SwFXKzyr0kWgEg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.55.0.tgz", + "integrity": "sha512-ZYqj3fDnOT1IaVGMP5kpmkQl4F3tQIm2ZyAxvqkJYmI0xgWWak4ss4XYwv3VDfM+TWXeC9K4uQ/wW5jm/5XABA==", "cpu": [ "ia32" ], @@ -4426,9 +4466,9 @@ } }, "node_modules/@oxfmt/binding-win32-x64-msvc": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.49.0.tgz", - "integrity": "sha512-gwWLwSEmBBfIK/Wh7GGd658161o4RKAvHWRaRQbJm571iQXGKfyr7UKsI1vsWvDlNLc30CxJDc8mMmCvJ/kczQ==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.55.0.tgz", + "integrity": "sha512-eEYT5tivGnGbPHuOHuQpi6CGLObhh0re/5jcNQHihD2GRYkTM85dyi5a19zjP8Q00t1uqAx+/QGLUGdHeqzWyg==", "cpu": [ "x64" ], @@ -4443,13 +4483,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", - "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.61.0.tgz", + "integrity": "sha512-cKA5B6lpFEMyMGjxF54QihfYpB4FkEGH+qZhtArDEG+wezQAJY8Pq6C7T1SjWz+FFzt3TbyoXBQYk/0292TdJA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.60.0" + "playwright": "1.61.0" }, "bin": { "playwright": "cli.js" @@ -4560,9 +4600,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.1.tgz", - "integrity": "sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", "cpu": [ "arm64" ], @@ -4577,9 +4617,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.1.tgz", - "integrity": "sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", "cpu": [ "arm64" ], @@ -4594,9 +4634,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.1.tgz", - "integrity": "sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", "cpu": [ "x64" ], @@ -4611,9 +4651,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.1.tgz", - "integrity": "sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", "cpu": [ "x64" ], @@ -4628,9 +4668,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.1.tgz", - "integrity": "sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", "cpu": [ "arm" ], @@ -4645,9 +4685,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.1.tgz", - "integrity": "sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", "cpu": [ "arm64" ], @@ -4665,9 +4705,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.1.tgz", - "integrity": "sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", "cpu": [ "arm64" ], @@ -4685,9 +4725,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.1.tgz", - "integrity": "sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", "cpu": [ "ppc64" ], @@ -4705,9 +4745,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.1.tgz", - "integrity": "sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", "cpu": [ "s390x" ], @@ -4725,9 +4765,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.1.tgz", - "integrity": "sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", "cpu": [ "x64" ], @@ -4745,9 +4785,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.1.tgz", - "integrity": "sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", "cpu": [ "x64" ], @@ -4765,9 +4805,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.1.tgz", - "integrity": "sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", "cpu": [ "arm64" ], @@ -4782,9 +4822,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.1.tgz", - "integrity": "sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", "cpu": [ "wasm32" ], @@ -4800,10 +4840,44 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/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/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.1.tgz", - "integrity": "sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", "cpu": [ "arm64" ], @@ -4818,9 +4892,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.1.tgz", - "integrity": "sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", "cpu": [ "x64" ], @@ -5357,12 +5431,12 @@ "license": "MIT" }, "node_modules/@szhsin/react-menu": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@szhsin/react-menu/-/react-menu-4.5.1.tgz", - "integrity": "sha512-kRTS7Pq0YdkucQexXVy5HkpzKsJdXbAhpmzve0wPokpsaG+4Ca3cphEn6WkRCWXfn1gZXosxcZCeb34ocmUPDw==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@szhsin/react-menu/-/react-menu-4.5.2.tgz", + "integrity": "sha512-VIfCFGq997iHhDBR5Wrgx5XqwzLQj0Lj1PQV9XSrT/ymvdI4GE/oAKx81dXWfeXiZgyXTicDCfeGrjlAzjoYlQ==", "license": "MIT", "dependencies": { - "react-transition-state": "^2.3.1" + "react-transition-state": "^2.4.0" }, "peerDependencies": { "react": ">=16.14.0", @@ -5428,12 +5502,12 @@ } }, "node_modules/@types/node": { - "version": "25.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.8.0.tgz", - "integrity": "sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.0.tgz", + "integrity": "sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==", "license": "MIT", "dependencies": { - "undici-types": ">=7.24.0 <7.24.7" + "undici-types": "~8.3.0" } }, "node_modules/@types/resolve": { @@ -5797,22 +5871,6 @@ "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/call-bind": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", @@ -6300,36 +6358,6 @@ "node": ">=0.10.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-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -6348,19 +6376,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", @@ -6713,19 +6728,22 @@ "license": "MIT" }, "node_modules/exifreader": { - "version": "4.38.1", - "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.38.1.tgz", - "integrity": "sha512-VUQ8pnWJHpnQXPQLgx4XBwjhj+eE0f5t4KhVFn6BnnTYKLf79DfjVRntR5061qE9NZgx2ohvE+JLXe/FWfCaAA==", + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.41.0.tgz", + "integrity": "sha512-P3nPeh6GWs5D5RZdRZ6q/LorHPmmeDgKsowduqRabtTFiqMD2bc5eTN+Dhq00O9BCuV2eksu3oOJh4ZaZvkK0A==", "hasInstallScript": true, "license": "MPL-2.0", + "bin": { + "exifreader": "bin/cli.js" + }, "optionalDependencies": { - "@xmldom/xmldom": "^0.9.9" + "@xmldom/xmldom": "^0.9.10" } }, "node_modules/fast-blurhash": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-blurhash/-/fast-blurhash-1.1.4.tgz", - "integrity": "sha512-xeH121M027hgWHHhHWYYjUmMKl8vCH3PPkXk439ixsP8Bvb/r3UFqg12oMSToD/aSAw8EE6XiTdfZ6M5jaLfzg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-blurhash/-/fast-blurhash-1.2.0.tgz", + "integrity": "sha512-wm3mTgQCR75eYb3I/QpsV8JNElZXv5jJCI5qTsPzypHRVXbCiYMozewXlYp/V28jDUM5NCYCsTZVJaHAs/oMVA==", "license": "ISC" }, "node_modules/fast-deep-equal": { @@ -6963,9 +6981,9 @@ } }, "node_modules/fuse.js": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.3.0.tgz", - "integrity": "sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.4.2.tgz", + "integrity": "sha512-LVbzjD4WA6UP5B1UnP8wuaXJiLnqMdM/E4fiJXTJ5haJ5b/MBNsK29h2fm6swEoQaVQjvYFWKLE2RanyZIoRVQ==", "license": "Apache-2.0", "engines": { "node": ">=10" @@ -7298,9 +7316,9 @@ "license": "ISC" }, "node_modules/idb-keyval": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz", - "integrity": "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.5.tgz", + "integrity": "sha512-eKQkTnS0relYsSOYomx8ozIbmdsQCKUdhyuIaQ2DZgKuaxtyQQMkyD/wlnQN32pO3yutN1b1L8uqwcDKaJd7/Q==", "license": "Apache-2.0" }, "node_modules/import-meta-resolve": { @@ -7470,22 +7488,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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-finalizationregistry": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", @@ -7532,38 +7534,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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-interactive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", @@ -7840,22 +7810,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -7955,13 +7909,10 @@ "license": "MIT" }, "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", - "license": "MIT", - "engines": { - "node": ">=14" - } + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.8.tgz", + "integrity": "sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==", + "license": "MIT" }, "node_modules/js-sha256": { "version": "0.10.1", @@ -8421,9 +8372,9 @@ } }, "node_modules/masto": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/masto/-/masto-7.11.1.tgz", - "integrity": "sha512-qppeHOLAJgTEMJqYstTlWWfYS4LeNAUCOzzO7x/kf3OtO6+FGV3pdWKJxAMUDamer77/+x3WFTYdEhLZQeSrlw==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/masto/-/masto-7.12.0.tgz", + "integrity": "sha512-hSqRfaqVhtaRB3+lSJ4YusqBZ/tj4/gtzS0PXZgrg2JLiDFLmsBdmuyVVF2c+QlKSMEKo7grVh3dN8TX1TECVw==", "license": "MIT", "dependencies": { "change-case": "^5.4.4", @@ -8688,27 +8639,6 @@ "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/ora": { "version": "9.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.0.tgz", @@ -8810,9 +8740,9 @@ } }, "node_modules/oxfmt": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.49.0.tgz", - "integrity": "sha512-IAHFMdlJSWe+oAr65dx22UvjCtV9DBMisAuLnKpDqMQrctzCkGnj3QRwNHm0d+uwSWPalsDF8ZYLz9rh6nH2IQ==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.55.0.tgz", + "integrity": "sha512-jSj2wCTakwgPMxkfiVZX0jf+nX+Nz6xlyAZjqNE0qXTFdCBPYlP6JAN+ODjmealw7DXBjOzYbdsqwBMAZnPZ6A==", "dev": true, "license": "MIT", "dependencies": { @@ -8828,39 +8758,43 @@ "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxfmt/binding-android-arm-eabi": "0.49.0", - "@oxfmt/binding-android-arm64": "0.49.0", - "@oxfmt/binding-darwin-arm64": "0.49.0", - "@oxfmt/binding-darwin-x64": "0.49.0", - "@oxfmt/binding-freebsd-x64": "0.49.0", - "@oxfmt/binding-linux-arm-gnueabihf": "0.49.0", - "@oxfmt/binding-linux-arm-musleabihf": "0.49.0", - "@oxfmt/binding-linux-arm64-gnu": "0.49.0", - "@oxfmt/binding-linux-arm64-musl": "0.49.0", - "@oxfmt/binding-linux-ppc64-gnu": "0.49.0", - "@oxfmt/binding-linux-riscv64-gnu": "0.49.0", - "@oxfmt/binding-linux-riscv64-musl": "0.49.0", - "@oxfmt/binding-linux-s390x-gnu": "0.49.0", - "@oxfmt/binding-linux-x64-gnu": "0.49.0", - "@oxfmt/binding-linux-x64-musl": "0.49.0", - "@oxfmt/binding-openharmony-arm64": "0.49.0", - "@oxfmt/binding-win32-arm64-msvc": "0.49.0", - "@oxfmt/binding-win32-ia32-msvc": "0.49.0", - "@oxfmt/binding-win32-x64-msvc": "0.49.0" - }, - "peerDependencies": { - "svelte": "^5.0.0" + "@oxfmt/binding-android-arm-eabi": "0.55.0", + "@oxfmt/binding-android-arm64": "0.55.0", + "@oxfmt/binding-darwin-arm64": "0.55.0", + "@oxfmt/binding-darwin-x64": "0.55.0", + "@oxfmt/binding-freebsd-x64": "0.55.0", + "@oxfmt/binding-linux-arm-gnueabihf": "0.55.0", + "@oxfmt/binding-linux-arm-musleabihf": "0.55.0", + "@oxfmt/binding-linux-arm64-gnu": "0.55.0", + "@oxfmt/binding-linux-arm64-musl": "0.55.0", + "@oxfmt/binding-linux-ppc64-gnu": "0.55.0", + "@oxfmt/binding-linux-riscv64-gnu": "0.55.0", + "@oxfmt/binding-linux-riscv64-musl": "0.55.0", + "@oxfmt/binding-linux-s390x-gnu": "0.55.0", + "@oxfmt/binding-linux-x64-gnu": "0.55.0", + "@oxfmt/binding-linux-x64-musl": "0.55.0", + "@oxfmt/binding-openharmony-arm64": "0.55.0", + "@oxfmt/binding-win32-arm64-msvc": "0.55.0", + "@oxfmt/binding-win32-ia32-msvc": "0.55.0", + "@oxfmt/binding-win32-x64-msvc": "0.55.0" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite-plus": "*" }, "peerDependenciesMeta": { "svelte": { "optional": true + }, + "vite-plus": { + "optional": true } } }, "node_modules/p-queue": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.2.0.tgz", - "integrity": "sha512-dWgLE8AH0HjQ9fe74pUkKkvzzYT18Inp4zra3lKHnnwqGvcfcUBrvF2EAVX+envufDNBOzpPq/IBUONDbI7+3g==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.0.tgz", + "integrity": "sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==", "license": "MIT", "dependencies": { "eventemitter3": "^5.0.4", @@ -8978,13 +8912,13 @@ } }, "node_modules/playwright": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", - "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.61.0.tgz", + "integrity": "sha512-Z+7BeeqQPRRzklHsVFP4KTGIyMxKUmfeRA4WisM6G3/XW6nwGeX6fX9qYaDa+CiUqpOkb2f6X3nar05R3kSuJQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.60.0" + "playwright-core": "1.61.0" }, "bin": { "playwright": "cli.js" @@ -8997,9 +8931,9 @@ } }, "node_modules/playwright-core": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.0.tgz", + "integrity": "sha512-caX7TrY3Ml6egyDX0WUcTHDxodl/b51y5wJOdCEA36QviK/s2g081hvmGs8eaE3DWb6NYZQ6BjO/QkNRPenoPA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -9009,12 +8943,15 @@ "node": ">=18" } }, - "node_modules/pofile": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/pofile/-/pofile-1.1.4.tgz", - "integrity": "sha512-r6Q21sKsY1AjTVVjOuU02VYKVNQGJNQHjTIvs4dEbeuuYfxgYk/DGD2mqqq4RDaVkwdSq0VEtmQUOPe/wH8X3g==", + "node_modules/pofile-ts": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/pofile-ts/-/pofile-ts-4.0.3.tgz", + "integrity": "sha512-sz1pnjgEfPyZ+QvaeX3NtCmbYnEvG01LZRLoN/uXoLtPZtxCIH5IctL7yXXc0fFyk/fqV6K8g3hlNfr6IJwupA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=20" + } }, "node_modules/possible-typed-array-names": { "version": "1.1.0", @@ -9027,9 +8964,9 @@ } }, "node_modules/postcss": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", - "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "dev": true, "funding": [ { @@ -9047,7 +8984,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -9098,9 +9035,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-8.0.4.tgz", - "integrity": "sha512-Zn3yPgBFakVXthmA2n1NUMY7gdhuFUB/DrUJ0Eug/d0rl9wahMQZykp4NVTJLGzQrDUwZ2rzjiTeW5udxFNG8A==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-8.0.5.tgz", + "integrity": "sha512-Cxr97Vtt2VeJCGaex0JNSU5MViqYtjKmJLHKM+jI7d+qIs0J5xgHEVG6Q2bTCaFJ1yjcFz9s9VmWCibuzk3+MA==", "dev": true, "funding": [ { @@ -9114,7 +9051,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -9462,9 +9399,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-8.0.4.tgz", - "integrity": "sha512-dqcJSzVasdELD9xqJ1wfP95uzP57J6zFd80c7S3AWK127H9zwqR9Kbk5ZgyIfN2DiMStI7Vq8E7ablXNeTvpew==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-8.0.5.tgz", + "integrity": "sha512-ohQnYx1LloPkiLQhAjpt/Y9tAGCGOBOUaxgbcmO+1bDTFzUQCTfdpemOVh6oewI4V2K6q7+Vz8d3rP1glvK3uw==", "dev": true, "funding": [ { @@ -9478,7 +9415,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.1", + "@csstools/css-color-parser": "^4.1.7", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", @@ -9631,9 +9568,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-11.3.0.tgz", - "integrity": "sha512-PpijTuY+NT35vvk7us0pw9lJVrsZZWukjONZsza2Kq1Gag8nrUXRkgdKdxyyhZPJ6R43L3/nLpspUK99TmU9xg==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-11.3.1.tgz", + "integrity": "sha512-ox2lu2L0fbuKXB0zRcUFCNii7koS9+fNLFqj+WOKaJ4DU/zZsYkFHOmz73lWNTKx8OHDqnV0R7Si98PIbJXLjQ==", "dev": true, "funding": [ { @@ -9647,21 +9584,21 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-alpha-function": "^2.0.5", + "@csstools/postcss-alpha-function": "^2.0.6", "@csstools/postcss-cascade-layers": "^6.0.0", - "@csstools/postcss-color-function": "^5.0.4", - "@csstools/postcss-color-function-display-p3-linear": "^2.0.4", - "@csstools/postcss-color-mix-function": "^4.0.4", - "@csstools/postcss-color-mix-variadic-function-arguments": "^2.0.4", + "@csstools/postcss-color-function": "^5.0.5", + "@csstools/postcss-color-function-display-p3-linear": "^2.0.5", + "@csstools/postcss-color-mix-function": "^4.0.5", + "@csstools/postcss-color-mix-variadic-function-arguments": "^2.0.5", "@csstools/postcss-container-rule-prelude-list": "^1.0.1", "@csstools/postcss-content-alt-text": "^3.0.1", - "@csstools/postcss-contrast-color-function": "^3.0.4", + "@csstools/postcss-contrast-color-function": "^3.0.5", "@csstools/postcss-exponential-functions": "^3.0.3", "@csstools/postcss-font-format-keywords": "^5.0.0", "@csstools/postcss-font-width-property": "^1.0.0", - "@csstools/postcss-gamut-mapping": "^3.0.4", - "@csstools/postcss-gradients-interpolation-method": "^6.0.4", - "@csstools/postcss-hwb-function": "^5.0.4", + "@csstools/postcss-gamut-mapping": "^3.0.5", + "@csstools/postcss-gradients-interpolation-method": "^6.0.5", + "@csstools/postcss-hwb-function": "^5.0.5", "@csstools/postcss-ic-unit": "^5.0.1", "@csstools/postcss-image-function": "^1.0.0", "@csstools/postcss-initial": "^3.0.0", @@ -9677,12 +9614,12 @@ "@csstools/postcss-mixins": "^1.0.0", "@csstools/postcss-nested-calc": "^5.0.0", "@csstools/postcss-normalize-display-values": "^5.0.1", - "@csstools/postcss-oklab-function": "^5.0.4", + "@csstools/postcss-oklab-function": "^5.0.5", "@csstools/postcss-position-area-property": "^2.0.0", "@csstools/postcss-progressive-custom-properties": "^5.1.0", "@csstools/postcss-property-rule-prelude-list": "^2.0.0", "@csstools/postcss-random-function": "^3.0.3", - "@csstools/postcss-relative-color-syntax": "^4.0.4", + "@csstools/postcss-relative-color-syntax": "^4.0.5", "@csstools/postcss-scope-pseudo-class": "^5.0.0", "@csstools/postcss-sign-functions": "^2.0.3", "@csstools/postcss-stepped-value-functions": "^5.0.3", @@ -9699,7 +9636,7 @@ "cssdb": "^8.9.0", "postcss-attribute-case-insensitive": "^8.0.0", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^8.0.4", + "postcss-color-functional-notation": "^8.0.5", "postcss-color-hex-alpha": "^11.0.0", "postcss-color-rebeccapurple": "^11.0.0", "postcss-custom-media": "^12.0.1", @@ -9712,7 +9649,7 @@ "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^7.0.0", "postcss-image-set-function": "^8.0.0", - "postcss-lab-function": "^8.0.4", + "postcss-lab-function": "^8.0.5", "postcss-logical": "^9.0.0", "postcss-nesting": "^14.0.0", "postcss-opacity-percentage": "^3.0.0", @@ -9813,23 +9750,10 @@ "dev": true, "license": "MIT" }, - "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/preact": { - "version": "10.29.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.1.tgz", - "integrity": "sha512-gQCLc/vWroE8lIpleXtdJhTFDogTdZG9AjMUpVkDf2iTCNwYNWA+u16dL41TqUDJO4gm2IgrcMv3uTpjd4Pwmg==", + "version": "10.29.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.2.tgz", + "integrity": "sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -10060,9 +9984,9 @@ } }, "node_modules/react-transition-state": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/react-transition-state/-/react-transition-state-2.3.3.tgz", - "integrity": "sha512-wsIyg07ohlWEAYDZHvuXh/DY7mxlcLb0iqVv2aMXJ0gwgPVKNWKhOyNyzuJy/tt/6urSq0WT6BBZ/tdpybaAsQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/react-transition-state/-/react-transition-state-2.4.0.tgz", + "integrity": "sha512-d86g/nv4vsDBLBum8KSeb9S3aWDlptDQ4ydFvfCHk98ePFNILXq5Wu3tVgPXJrItxvMLtJ+XPjmGw0RmMyYMBg==", "license": "MIT", "peerDependencies": { "react": ">=16.8.0", @@ -10235,13 +10159,13 @@ } }, "node_modules/rolldown": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.1.tgz", - "integrity": "sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.130.0", + "@oxc-project/types": "=0.133.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -10251,21 +10175,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.1", - "@rolldown/binding-darwin-arm64": "1.0.1", - "@rolldown/binding-darwin-x64": "1.0.1", - "@rolldown/binding-freebsd-x64": "1.0.1", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.1", - "@rolldown/binding-linux-arm64-gnu": "1.0.1", - "@rolldown/binding-linux-arm64-musl": "1.0.1", - "@rolldown/binding-linux-ppc64-gnu": "1.0.1", - "@rolldown/binding-linux-s390x-gnu": "1.0.1", - "@rolldown/binding-linux-x64-gnu": "1.0.1", - "@rolldown/binding-linux-x64-musl": "1.0.1", - "@rolldown/binding-openharmony-arm64": "1.0.1", - "@rolldown/binding-wasm32-wasi": "1.0.1", - "@rolldown/binding-win32-arm64-msvc": "1.0.1", - "@rolldown/binding-win32-x64-msvc": "1.0.1" + "@rolldown/binding-android-arm64": "1.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" } }, "node_modules/rollup": { @@ -10320,19 +10244,6 @@ "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-array-concat": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", @@ -10599,20 +10510,20 @@ } }, "node_modules/sonda": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/sonda/-/sonda-0.11.1.tgz", - "integrity": "sha512-WruAwwzdjQ4U2c4dst8EMzFKf0s8EOWrr9ZOUrkjeQdxCjsFFo0/Em49NiLm5Op1yOXGT0VFDMcM4k5kl3wrCA==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/sonda/-/sonda-0.13.1.tgz", + "integrity": "sha512-ocQ4bSr1IaalYphlSga5UlHkywAqOm79ojfmGe8brKgHFMrqPPSjyzz0YDVpPOh9u4VbE5omYY4C9trJSUtzLg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "open": "^11.0.0" + "tiny-open": "^1.3.0" }, "bin": { "sonda-angular": "bin/sonda-angular.js" }, "engines": { - "node": ">=20.19 || >=22.12" + "node": ">=22.12" } }, "node_modules/source-map": { @@ -10865,9 +10776,9 @@ "license": "MIT" }, "node_modules/temml": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/temml/-/temml-0.13.2.tgz", - "integrity": "sha512-n8fDRSsLscq9nh9j6z+FgkCvFMT0IJm6GCgwfzh+7AHT3Sfb4jFTQlsA6hVcF2dYYr3b66oDBVES95RfoukyrA==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/temml/-/temml-0.13.3.tgz", + "integrity": "sha512-GLNEdf5qBWux3adbOxFus4jlds8nCdEIkkKq99m/4GGTfqnsjlVlK/i371Ux7yYSg/WNmOyAkNT/GJlZoJ0v+w==", "license": "MIT", "engines": { "node": ">=18.13.0" @@ -10928,6 +10839,13 @@ "dev": true, "license": "MIT" }, + "node_modules/tiny-open": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tiny-open/-/tiny-open-1.3.0.tgz", + "integrity": "sha512-GUFS8yjJZq0oWqCKCJVHcBgMpmi2WEGXY1le3E5ncR0DsgTII5uUyxtfk8/vGyDDGBE42UYHR6Ocvlk8mkXSRg==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyexec": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", @@ -10939,9 +10857,9 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { @@ -11174,9 +11092,9 @@ } }, "node_modules/undici-types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -11353,17 +11271,17 @@ } }, "node_modules/vite": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.13.tgz", - "integrity": "sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==", + "version": "8.0.16", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", - "postcss": "^8.5.14", - "rolldown": "1.0.1", - "tinyglobby": "^0.2.16" + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "tinyglobby": "^0.2.17" }, "bin": { "vite": "bin/vite.js" @@ -11989,23 +11907,6 @@ } } }, - "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/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", diff --git a/package.json b/package.json index 090c9b99b3..c6a0e22fcc 100644 --- a/package.json +++ b/package.json @@ -22,41 +22,41 @@ "test": "playwright test", "test:ui": "playwright test --ui", "test:headed": "playwright test --headed", - "formatting": "oxfmt", + "formatting": "oxfmt --check || oxfmt", "formatting-check": "oxfmt --check", "git:po-filter": "git config --local diff.po-filter.textconv \"sed 's/:[0-9]*$//'\"", - "postinstall": "node scripts/generate-icons.js", + "postinstall": "node scripts/generate-icons.js && npx exifreader build", "generate-icons": "node scripts/generate-icons.js" }, "dependencies": { - "@formatjs/intl-localematcher": "~0.8.8", - "@formatjs/intl-segmenter": "~12.2.7", + "@formatjs/intl-localematcher": "~0.8.10", + "@formatjs/intl-segmenter": "~12.2.10", "@formkit/auto-animate": "~0.9.0", "@github/text-expander-element": "~2.9.4", "@iconify-json/mingcute": "~1.2.7", "@justinribeiro/lite-youtube": "~1.9.0", - "@lingui/detect-locale": "~6.0.1", - "@lingui/react": "~6.0.1", - "@szhsin/react-menu": "~4.5.1", + "@lingui/detect-locale": "~6.4.0", + "@lingui/react": "~6.4.0", + "@szhsin/react-menu": "~4.5.2", "chroma-js": "~3.2.0", "compare-versions": "~6.1.1", - "exifreader": "~4.38.1", - "fast-blurhash": "~1.1.4", + "exifreader": "~4.41.0", + "fast-blurhash": "~1.2.0", "fast-equals": "~6.0.0", "flexsearch": "~0.8.212", - "fuse.js": "~7.3.0", + "fuse.js": "~7.4.2", "gifuct-js": "~2.1.2", "html-prettify": "~1.0.7", - "idb-keyval": "~6.2.2", + "idb-keyval": "~6.2.5", "intl-locale-textinfo-polyfill": "~3.0.0", - "js-cookie": "~3.0.5", + "js-cookie": "~3.0.8", "just-debounce-it": "~3.2.0", "lz-string": "~1.5.0", - "masto": "~7.11.1", + "masto": "~7.12.0", "micro-memoize": "~5.1.1", - "p-queue": "~9.2.0", + "p-queue": "~9.3.0", "p-retry": "~8.0.0", - "preact": "10.29.1", + "preact": "10.29.2", "punycode": "~2.3.1", "qr": "~0.6.0", "react-hotkeys-hook": "~5.2.4", @@ -64,7 +64,7 @@ "react-quick-pinch-zoom": "~5.1.1", "react-router-dom": "6.6.2", "swiped-events": "~1.2.0", - "temml": "~0.13.2", + "temml": "~0.13.3", "tinyld": "~1.3.4", "toastify-js": "~1.12.0", "uid": "~2.0.2", @@ -75,23 +75,24 @@ "web-haptics": "~0.0.6" }, "devDependencies": { - "@emnapi/core": "~1.10.0", - "@emnapi/runtime": "~1.10.0", + "@babel/plugin-transform-runtime": "^7.29.0", + "@emnapi/core": "~1.11.1", + "@emnapi/runtime": "~1.11.1", "@iconify/utils": "~3.1.3", - "@lingui/babel-plugin-lingui-macro": "~6.0.1", - "@lingui/cli": "~6.0.1", - "@lingui/vite-plugin": "~6.0.1", - "@playwright/test": "~1.60.0", + "@lingui/babel-plugin-lingui-macro": "~6.4.0", + "@lingui/cli": "~6.4.0", + "@lingui/vite-plugin": "~6.4.0", + "@playwright/test": "~1.61.0", "@preact/preset-vite": "~2.10.5", - "@types/node": "~25.8.0", - "oxfmt": "~0.49.0", - "postcss": "~8.5.14", + "@types/node": "~26.0.0", + "oxfmt": "~0.55.0", + "postcss": "~8.5.15", "postcss-dark-theme-class": "~2.0.0", - "postcss-preset-env": "~11.3.0", + "postcss-preset-env": "~11.3.1", "prop-types": "^15.8.1", - "sonda": "~0.11.1", + "sonda": "~0.13.1", "twitter-text": "~3.1.0", - "vite": "~8.0.13", + "vite": "~8.0.16", "vite-plugin-generate-file": "~0.3.1", "vite-plugin-html-config": "~2.0.2", "vite-plugin-pwa": "~1.3.0", @@ -107,7 +108,8 @@ "//notes": [ "@emnapi/core and @emnapi/runtime are temporary fixes for https://github.com/napi-rs/napi-rs/issues/3174", "react-quick-pinch-zoom requires prop-types", - "playwright uses @types/node" + "playwright uses @types/node", + "@babel/plugin-transform-runtime fixes peer dep conflict from @lingui/vite-plugin pulling in babel 8" ], "postcss": { "plugins": { @@ -143,5 +145,10 @@ "thumbnail": true, "icc": true } + }, + "allowScripts": { + "core-js@2.6.12": true, + "exifreader@4.41.0": true, + "esbuild@0.25.12": true } } diff --git a/scripts/catalogs.js b/scripts/catalogs.js index e21d7a49b5..62ceab0ee9 100644 --- a/scripts/catalogs.js +++ b/scripts/catalogs.js @@ -1,7 +1,7 @@ import fs from 'node:fs'; // Dependency from Lingui, not listed in package.json -import PO from 'pofile'; +import { parsePo } from 'pofile-ts'; let listedLocales = []; try { @@ -18,7 +18,7 @@ const catalogs = {}; const enCatalog = files.find((file) => file.endsWith('en.po')); const enContent = fs.readFileSync(`src/locales/${enCatalog}`, 'utf8'); -const enPo = PO.parse(enContent); +const enPo = parsePo(enContent); const total = enPo.items.length; console.log('Total strings:', total); @@ -31,7 +31,7 @@ files.forEach((file) => { const code = file.replace(/\.po$/, ''); if (IGNORE_LANGS.includes(code)) return; const content = fs.readFileSync(`src/locales/${file}`, 'utf8'); - const po = PO.parse(content); + const po = parsePo(content); const { items } = po; // Percentage of translated strings const translated = items.filter( diff --git a/scripts/diff-po.js b/scripts/diff-po.js new file mode 100644 index 0000000000..ea88c7f7ad --- /dev/null +++ b/scripts/diff-po.js @@ -0,0 +1,178 @@ +#!/usr/bin/env node + +import { execSync } from 'child_process'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = path.resolve(__dirname, '..'); +const PO_FILE = path.join(REPO_ROOT, 'src', 'locales', 'en.po'); + +function parsePO(content) { + const entries = []; + let i = 0; + const lines = content.split(/\r?\n/); + + while (i < lines.length) { + while ( + i < lines.length && + (lines[i].trim() === '' || lines[i].startsWith('#')) + ) { + i++; + } + if (i >= lines.length) break; + + let ctx = null; + let id = null; + let str = null; + + if (lines[i].startsWith('msgctxt')) { + ctx = parseQuoted(lines[i]); + i++; + } + + if (lines[i].startsWith('msgid')) { + const result = parseMultiLine(lines, i); + id = result.value; + i = result.nextIndex; + } else { + i++; + continue; + } + + if (i < lines.length && lines[i].startsWith('msgstr')) { + const result = parseMultiLine(lines, i); + str = result.value; + i = result.nextIndex; + } + + entries.push({ id, str, ctx }); + } + + return entries; +} + +function parseQuoted(line) { + const match = line.match(/^\s*(?:\w+\s+)?"((?:[^"\\]|\\.)*)"/); + return match ? unescapePO(match[1]) : ''; +} + +function parseMultiLine(lines, startIndex) { + let value = parseQuoted(lines[startIndex]); + let i = startIndex + 1; + while (i < lines.length && /^\s*"/.test(lines[i])) { + value += parseQuoted(lines[i]); + i++; + } + return { value, nextIndex: i }; +} + +function unescapePO(s) { + return s + .replace(/\\n/g, '\n') + .replace(/\\t/g, '\t') + .replace(/\\r/g, '\r') + .replace(/\\"/g, '"') + .replace(/\\\\/g, '\\'); +} + +function keyFor(entry) { + return entry.ctx ? `ctx:${entry.ctx}\0${entry.id}` : entry.id; +} + +function buildMap(entries) { + const map = new Map(); + for (const entry of entries) { + map.set(keyFor(entry), entry); + } + return map; +} + +function displayText(entry) { + return entry.str || entry.id; +} + +function truncate(str, maxLen = 120) { + if (str.length <= maxLen) return str; + return str.slice(0, maxLen - 1) + '…'; +} + +const C = { + reset: '\x1B[0m', + dim: '\x1B[2m', + green: '\x1B[32m', + red: '\x1B[31m', + gray: '\x1B[90m', +}; + +function run() { + const relPath = path.relative(REPO_ROOT, PO_FILE); + let oldContent; + try { + oldContent = execSync(`git show HEAD:"${relPath}"`, { + cwd: REPO_ROOT, + encoding: 'utf-8', + stdio: ['pipe', 'pipe', 'pipe'], + }); + } catch (e) { + console.error(`Error reading ${relPath} from git HEAD:`, e.message); + process.exit(1); + } + const newContent = fs.readFileSync(PO_FILE, 'utf-8'); + + const oldEntries = parsePO(oldContent); + const newEntries = parsePO(newContent); + const oldMap = buildMap(oldEntries); + const newMap = buildMap(newEntries); + + const added = []; + const removed = []; + const changed = []; + + for (const [k, entry] of newMap) { + if (!oldMap.has(k)) { + added.push(entry); + } else if (oldMap.get(k).str !== entry.str) { + changed.push({ entry, oldStr: oldMap.get(k).str }); + } + } + + for (const [k, entry] of oldMap) { + if (!newMap.has(k)) { + removed.push(entry); + } + } + + if (added.length) { + console.log(`\n${C.dim}=== Added (${added.length}) ===${C.reset}\n`); + for (const e of added) { + console.log(`${C.green}+ ${truncate(displayText(e))}${C.reset}`); + } + } + + if (removed.length) { + console.log(`\n${C.dim}=== Removed (${removed.length}) ===${C.reset}\n`); + for (const e of removed) { + console.log(`${C.red}- ${truncate(displayText(e))}${C.reset}`); + } + } + + if (changed.length) { + console.log(`\n${C.dim}=== Changed (${changed.length}) ===${C.reset}\n`); + for (const { entry, oldStr } of changed) { + console.log(`${C.red}- ${truncate(oldStr || entry.id)}${C.reset}`); + console.log(`${C.green}+ ${truncate(entry.str || entry.id)}${C.reset}`); + } + } + + if (!added.length && !removed.length && !changed.length) { + console.log('No differences found.'); + } else { + console.log( + `\n${C.gray}Summary: ${added.length} added, ${removed.length} removed, ${changed.length} changed${C.reset}`, + ); + } +} + +run(); diff --git a/src/app.css b/src/app.css index 9358934df2..a6a44b5a06 100644 --- a/src/app.css +++ b/src/app.css @@ -1860,16 +1860,12 @@ body:has(.media-modal-container + .status-deck) .media-post-link { 0 -8px 16px -8px var(--drop-shadow-color); } } -.sheet-modal { - margin: 16px; - border-radius: 16px; - align-self: safe center; - +.sheet { main:has(+ footer) { padding-block-end: 0; } - footer { + main + footer { padding: 8px 16px 16px; padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); @@ -1990,6 +1986,11 @@ body:has(.media-modal-container + .status-deck) .media-post-link { padding-top: 0; mask-image: linear-gradient(to bottom, transparent 0%, black 10px); } +.sheet-modal { + margin: 16px; + border-radius: 16px; + align-self: safe center; +} /* ICON */ @@ -2379,9 +2380,9 @@ body > .szh-menu-container { } .szh-menu - .szh-menu__item--type-checkbox:not(.szh-menu__item--disabled):not( - .szh-menu__item--hover - ) { + :is(.szh-menu__item--type-checkbox, .szh-menu__item--type-radio):not( + .szh-menu__item--disabled + ):not(.szh-menu__item--hover) { .icon { opacity: 0.15; } @@ -2615,11 +2616,8 @@ body > .szh-menu-container { @keyframes peekaboo-header { from { opacity: 0; - transform: translateY(10%); - } - to { - opacity: 1; - transform: translateY(0); + transform: translateY(8px) scale(0.95); + filter: blur(8px); } } @@ -2645,7 +2643,7 @@ ul.link-list li { padding: 0; margin: 0; } -ul.link-list li a { +ul.link-list li > a { --radius: 8px; display: block; background-color: var(--bg-faded-color); @@ -3209,6 +3207,10 @@ ul.link-list li a .icon { } .timeline:not(.flat) > li { --item-radius: 16px; + @supports (corner-shape: squircle) { + --item-radius: 32px; + corner-shape: squircle; + } border: 1px solid var(--divider-color); margin: 16px 0; background-color: var(--bg-color); @@ -3224,6 +3226,7 @@ ul.link-list li a .icon { } .timeline:not(.flat) > li > a { border-radius: inherit; + corner-shape: inherit; } .timeline:not(.flat) > li:not(:has(.status-carousel)) { transform: translate3d(0, 0, 0); @@ -3233,6 +3236,9 @@ ul.link-list li a .icon { .status-badge:not(:empty) ) { border-start-end-radius: 8px; + @supports (corner-shape: squircle) { + border-start-end-radius: 16px; + } } .timeline:not(.flat) > li:has(.status-link.is-active) { transition: var(--back-transition); diff --git a/src/app.jsx b/src/app.jsx index c5ffb21016..02dff3f06e 100644 --- a/src/app.jsx +++ b/src/app.jsx @@ -33,10 +33,12 @@ import NotificationService from './components/notification-service'; import SearchCommand from './components/search-command'; import Shortcuts from './components/shortcuts'; import NotFound from './pages/404'; +import AccountCollections from './pages/account-collections'; import AccountStatuses from './pages/account-statuses'; import AnnualReport from './pages/annual-report'; import Bookmarks from './pages/bookmarks'; import Catchup from './pages/catchup'; +import Collection from './pages/collection'; import Favourites from './pages/favourites'; import Filters from './pages/filters'; import FollowedHashtags from './pages/followed-hashtags'; @@ -895,7 +897,11 @@ function SecondaryRoutes() { } /> } /> - } /> + + } /> + } /> + + } /> } /> } /> diff --git a/src/components/ICONS.jsx b/src/components/ICONS.jsx index 73f87ed29e..cc9ff69484 100644 --- a/src/components/ICONS.jsx +++ b/src/components/ICONS.jsx @@ -137,6 +137,7 @@ export const ICONS = { }, alert: () => import('../iconify-icons/mingcute/alert-line.js'), round: () => import('../iconify-icons/mingcute/round-fill.js'), + 'round-line': () => import('../iconify-icons/mingcute/round-line.js'), 'arrow-up-circle': () => import('../iconify-icons/mingcute/arrow-up-circle-line.js'), 'arrow-down-circle': () => @@ -204,4 +205,5 @@ export const ICONS = { flip: 'horizontal', }, 'arrow-up-top': () => import('../iconify-icons/mingcute/arrow-to-up-line.js'), + collections: () => import('../iconify-icons/mingcute/board-line.js'), }; diff --git a/src/components/account-block.css b/src/components/account-block.css index 890e4968bf..ef5e590822 100644 --- a/src/components/account-block.css +++ b/src/components/account-block.css @@ -69,4 +69,14 @@ color: inherit; text-decoration: none; } + + .stats-avatars-bunch { + vertical-align: text-bottom; + animation: appear 1s both ease-in-out; + + > *:not(:first-child) { + margin: 0; + margin-inline-start: -4px; + } + } } diff --git a/src/components/account-block.jsx b/src/components/account-block.jsx index 6da7230f55..94b80ff454 100644 --- a/src/components/account-block.jsx +++ b/src/components/account-block.jsx @@ -1,36 +1,55 @@ import './account-block.css'; +import { ph } from '@lingui/core/macro'; import { Plural, Trans, useLingui } from '@lingui/react/macro'; +import { useEffect, useState } from 'preact/hooks'; // import { useNavigate } from 'react-router-dom'; +import { api } from '../utils/api'; import enhanceContent from '../utils/enhance-content'; +import { memFetchFamiliarFollowers } from '../utils/familiar-followers'; +import getDomain from '../utils/get-domain'; import niceDateTime from '../utils/nice-date-time'; import shortenNumber from '../utils/shorten-number'; import states from '../utils/states'; +import { getCurrentAccountID } from '../utils/store-utils'; import Avatar from './avatar'; import EmojiText from './emoji-text'; import Icon from './icon'; import RolesTags from './roles-tags'; -function AccountBlock({ - skeleton, - account, - avatarSize = 'xl', - avatarDescription, - useAvatarStatic = false, - instance, - external, - internal, - onClick, - showActivity = false, - showStats = false, - accountInstance, - hideDisplayName = false, - relationship = {}, - excludeRelationshipAttrs = [], -}) { +function AccountBlock(props) { + const { + skeleton, + account, + avatarSize = 'xl', + avatarDescription, + useAvatarStatic = false, + instance, + external, + internal, + onClick, + showActivity = false, + showStats = false, + accountInstance, + hideDisplayName = false, + excludeRelationshipAttrs = [], + } = props; + const relationship = props.relationship; + // FOR DEBUGGING + // const relationship = { + // id: 'fake', + // following: false, + // followedBy: false, + // requested: false, + // }; + const hasRelationshipProp = 'relationship' in props; + const { t } = useLingui(); + const { instance: currentInstance } = api(); + const currentAccountID = getCurrentAccountID(); + const [familiarFollowers, setFamiliarFollowers] = useState([]); if (skeleton) { return (