From 95bf9e183ef0893252c5018f05c77e9830bab912 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Mon, 1 Jul 2024 17:41:21 +0800 Subject: [PATCH 01/20] Replace trivago/ with ianvs/prettier-plugin-sort-imports --- .prettierrc | 12 +- package-lock.json | 252 ++++++++++++++------------------ package.json | 2 +- src/app.jsx | 3 + src/components/account-info.jsx | 2 +- src/components/compose.jsx | 5 +- src/components/media-modal.jsx | 2 +- src/components/shortcuts.jsx | 2 +- src/components/status.jsx | 7 +- src/compose.jsx | 2 - src/main.jsx | 2 - src/pages/account-statuses.jsx | 3 +- src/pages/accounts.jsx | 2 +- src/pages/following.jsx | 3 +- src/pages/hashtag.jsx | 5 +- src/pages/list.jsx | 2 +- src/pages/public.jsx | 3 +- src/pages/trending.jsx | 3 +- 18 files changed, 135 insertions(+), 177 deletions(-) diff --git a/.prettierrc b/.prettierrc index 7764b6c3c..6063e9a9a 100644 --- a/.prettierrc +++ b/.prettierrc @@ -3,18 +3,20 @@ "useTabs": false, "singleQuote": true, "trailingComma": "all", + "plugins": ["@ianvs/prettier-plugin-sort-imports"], "importOrder": [ "^[^.].*.css$", "index.css$", ".css$", + "", "./polyfills", + "", "", + "", "/assets/", + "", "^../", + "", "^[./]" - ], - "importOrderSeparation": true, - "importOrderSortSpecifiers": true, - "importOrderGroupNamespaceSpecifiers": true, - "importOrderCaseInsensitive": true + ] } diff --git a/package-lock.json b/package-lock.json index 37c34121e..4cc3cc0be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,8 +46,8 @@ "valtio": "1.13.2" }, "devDependencies": { + "@ianvs/prettier-plugin-sort-imports": "~4.3.0", "@preact/preset-vite": "~2.8.2", - "@trivago/prettier-plugin-sort-imports": "~4.3.0", "postcss": "~8.4.38", "postcss-dark-theme-class": "~1.3.0", "postcss-preset-env": "~9.5.14", @@ -95,12 +95,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -168,12 +168,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.24.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -294,37 +294,37 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -453,30 +453,30 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -541,12 +541,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -556,9 +556,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1830,49 +1830,27 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -3274,6 +3252,62 @@ "dom-input-range": "^1.1.6" } }, + "node_modules/@ianvs/prettier-plugin-sort-imports": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", + "integrity": "sha512-OOMtUcO4J3LoL63dOKAe7bn+lSRRPeit2DqNHpx+wvBp3Grejo2PMaK4Mp1mwy8pnat64ccSgk/lBZbsAdLErw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.0", + "@babel/generator": "^7.23.6", + "@babel/parser": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "semver": "^7.5.2" + }, + "peerDependencies": { + "@vue/compiler-sfc": "2.7.x || 3.x", + "prettier": "2 || 3" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + } + } + }, + "node_modules/@ianvs/prettier-plugin-sort-imports/node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ianvs/prettier-plugin-sort-imports/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@iconify-icons/mingcute": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/@iconify-icons/mingcute/-/mingcute-1.2.9.tgz", @@ -3789,69 +3823,6 @@ "react-dom": ">=16.14.0" } }, - "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", - "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/generator": "7.17.7", - "@babel/parser": "^7.20.5", - "@babel/traverse": "7.23.2", - "@babel/types": "7.17.0", - "javascript-natural-sort": "0.7.1", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@vue/compiler-sfc": "3.x", - "prettier": "2.x - 3.x" - }, - "peerDependenciesMeta": { - "@vue/compiler-sfc": { - "optional": true - } - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -5949,13 +5920,6 @@ "node": ">=8" } }, - "node_modules/javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", - "dev": true, - "license": "MIT" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", diff --git a/package.json b/package.json index 8c33cfd0f..e85bfc472 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,8 @@ "valtio": "1.13.2" }, "devDependencies": { + "@ianvs/prettier-plugin-sort-imports": "~4.3.0", "@preact/preset-vite": "~2.8.2", - "@trivago/prettier-plugin-sort-imports": "~4.3.0", "postcss": "~8.4.38", "postcss-dark-theme-class": "~1.3.0", "postcss-preset-env": "~9.5.14", diff --git a/src/app.jsx b/src/app.jsx index 446ecbc57..d2d044c23 100644 --- a/src/app.jsx +++ b/src/app.jsx @@ -9,7 +9,9 @@ import { useState, } from 'preact/hooks'; import { matchPath, Route, Routes, useLocation } from 'react-router-dom'; + import 'swiped-events'; + import { subscribe } from 'valtio'; import BackgroundService from './components/background-service'; @@ -54,6 +56,7 @@ import focusDeck from './utils/focus-deck'; import states, { initStates, statusKey } from './utils/states'; import store from './utils/store'; import { getCurrentAccount, setCurrentAccountID } from './utils/store-utils'; + import './utils/toast-alert'; window.__STATES__ = states; diff --git a/src/components/account-info.jsx b/src/components/account-info.jsx index 5eff593f6..bf40243b3 100644 --- a/src/components/account-info.jsx +++ b/src/components/account-info.jsx @@ -33,9 +33,9 @@ import Icon from './icon'; import Link from './link'; import ListAddEdit from './list-add-edit'; import Loader from './loader'; -import Menu2 from './menu2'; import MenuConfirm from './menu-confirm'; import MenuLink from './menu-link'; +import Menu2 from './menu2'; import Modal from './modal'; import SubMenu2 from './submenu2'; import TranslationBlock from './translation-block'; diff --git a/src/components/compose.jsx b/src/components/compose.jsx index d74fc4e58..de4cb6987 100644 --- a/src/components/compose.jsx +++ b/src/components/compose.jsx @@ -1,11 +1,10 @@ import './compose.css'; - import '@github/text-expander-element'; + import { MenuItem } from '@szhsin/react-menu'; import { deepEqual } from 'fast-equals'; import Fuse from 'fuse.js'; -import { memo } from 'preact/compat'; -import { forwardRef } from 'preact/compat'; +import { forwardRef, memo } from 'preact/compat'; import { useCallback, useEffect, diff --git a/src/components/media-modal.jsx b/src/components/media-modal.jsx index 968988bf5..9f8049383 100644 --- a/src/components/media-modal.jsx +++ b/src/components/media-modal.jsx @@ -16,8 +16,8 @@ import states from '../utils/states'; import Icon from './icon'; import Link from './link'; import Media from './media'; -import Menu2 from './menu2'; import MenuLink from './menu-link'; +import Menu2 from './menu2'; const { PHANPY_IMG_ALT_API_URL: IMG_ALT_API_URL } = import.meta.env; diff --git a/src/components/shortcuts.jsx b/src/components/shortcuts.jsx index ddbe9cd37..79700f034 100644 --- a/src/components/shortcuts.jsx +++ b/src/components/shortcuts.jsx @@ -15,8 +15,8 @@ import states from '../utils/states'; import AsyncText from './AsyncText'; import Icon from './icon'; import Link from './link'; -import Menu2 from './menu2'; import MenuLink from './menu-link'; +import Menu2 from './menu2'; import SubMenu2 from './submenu2'; function Shortcuts() { diff --git a/src/components/status.jsx b/src/components/status.jsx index 327f3ae94..ab5928ffd 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -1,6 +1,6 @@ import './status.css'; - import '@justinribeiro/lite-youtube'; + import { ControlledMenu, Menu, @@ -32,8 +32,8 @@ import CustomEmoji from '../components/custom-emoji'; import EmojiText from '../components/emoji-text'; import LazyShazam from '../components/lazy-shazam'; import Loader from '../components/loader'; -import Menu2 from '../components/menu2'; import MenuConfirm from '../components/menu-confirm'; +import Menu2 from '../components/menu2'; import Modal from '../components/modal'; import NameText from '../components/name-text'; import Poll from '../components/poll'; @@ -69,8 +69,7 @@ import visibilityIconsMap from '../utils/visibility-icons-map'; import Avatar from './avatar'; import Icon from './icon'; import Link from './link'; -import Media from './media'; -import { isMediaCaptionLong } from './media'; +import Media, { isMediaCaptionLong } from './media'; import MenuLink from './menu-link'; import RelativeTime from './relative-time'; import TranslationBlock from './translation-block'; diff --git a/src/compose.jsx b/src/compose.jsx index 4e3571d63..5b2fcba02 100644 --- a/src/compose.jsx +++ b/src/compose.jsx @@ -1,7 +1,5 @@ import './index.css'; - import './app.css'; - import './polyfills'; import { render } from 'preact'; diff --git a/src/main.jsx b/src/main.jsx index 9f87f2b17..43db9d387 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,7 +1,5 @@ import './index.css'; - import './cloak-mode.css'; - import './polyfills'; // Polyfill needed for Firefox < 122 diff --git a/src/pages/account-statuses.jsx b/src/pages/account-statuses.jsx index 20306ccf6..b72cd795e 100644 --- a/src/pages/account-statuses.jsx +++ b/src/pages/account-statuses.jsx @@ -19,8 +19,7 @@ import Timeline from '../components/timeline'; import { api } from '../utils/api'; import pmem from '../utils/pmem'; import showToast from '../utils/show-toast'; -import states from '../utils/states'; -import { saveStatus } from '../utils/states'; +import states, { saveStatus } from '../utils/states'; import { isMediaFirstInstance } from '../utils/store-utils'; import useTitle from '../utils/useTitle'; diff --git a/src/pages/accounts.jsx b/src/pages/accounts.jsx index efa38a195..775ba1a10 100644 --- a/src/pages/accounts.jsx +++ b/src/pages/accounts.jsx @@ -7,8 +7,8 @@ import { useReducer } from 'preact/hooks'; import Avatar from '../components/avatar'; import Icon from '../components/icon'; import Link from '../components/link'; -import Menu2 from '../components/menu2'; import MenuConfirm from '../components/menu-confirm'; +import Menu2 from '../components/menu2'; import NameText from '../components/name-text'; import { api } from '../utils/api'; import states from '../utils/states'; diff --git a/src/pages/following.jsx b/src/pages/following.jsx index 5a48de294..2f9783282 100644 --- a/src/pages/following.jsx +++ b/src/pages/following.jsx @@ -4,8 +4,7 @@ import { useSnapshot } from 'valtio'; import Timeline from '../components/timeline'; import { api } from '../utils/api'; import { filteredItems } from '../utils/filters'; -import states from '../utils/states'; -import { getStatus, saveStatus } from '../utils/states'; +import states, { getStatus, saveStatus } from '../utils/states'; import supports from '../utils/supports'; import { assignFollowedTags, diff --git a/src/pages/hashtag.jsx b/src/pages/hashtag.jsx index d2ec714e2..f7b26cb00 100644 --- a/src/pages/hashtag.jsx +++ b/src/pages/hashtag.jsx @@ -9,15 +9,14 @@ import { useEffect, useMemo, useRef, useState } from 'preact/hooks'; import { useNavigate, useParams, useSearchParams } from 'react-router-dom'; import Icon from '../components/icon'; -import Menu2 from '../components/menu2'; import MenuConfirm from '../components/menu-confirm'; +import Menu2 from '../components/menu2'; import { SHORTCUTS_LIMIT } from '../components/shortcuts-settings'; import Timeline from '../components/timeline'; import { api } from '../utils/api'; import { filteredItems } from '../utils/filters'; import showToast from '../utils/show-toast'; -import states from '../utils/states'; -import { saveStatus } from '../utils/states'; +import states, { saveStatus } from '../utils/states'; import { isMediaFirstInstance } from '../utils/store-utils'; import useTitle from '../utils/useTitle'; diff --git a/src/pages/list.jsx b/src/pages/list.jsx index 3524c547e..de38dba3a 100644 --- a/src/pages/list.jsx +++ b/src/pages/list.jsx @@ -10,9 +10,9 @@ import AccountBlock from '../components/account-block'; import Icon from '../components/icon'; import Link from '../components/link'; import ListAddEdit from '../components/list-add-edit'; -import Menu2 from '../components/menu2'; import MenuConfirm from '../components/menu-confirm'; import MenuLink from '../components/menu-link'; +import Menu2 from '../components/menu2'; import Modal from '../components/modal'; import Timeline from '../components/timeline'; import { api } from '../utils/api'; diff --git a/src/pages/public.jsx b/src/pages/public.jsx index c1d49216e..db8ab3090 100644 --- a/src/pages/public.jsx +++ b/src/pages/public.jsx @@ -8,8 +8,7 @@ import Menu2 from '../components/menu2'; import Timeline from '../components/timeline'; import { api } from '../utils/api'; import { filteredItems } from '../utils/filters'; -import states from '../utils/states'; -import { saveStatus } from '../utils/states'; +import states, { saveStatus } from '../utils/states'; import supports from '../utils/supports'; import useTitle from '../utils/useTitle'; diff --git a/src/pages/trending.jsx b/src/pages/trending.jsx index 670e30d45..80a735508 100644 --- a/src/pages/trending.jsx +++ b/src/pages/trending.jsx @@ -19,8 +19,7 @@ import { oklab2rgb, rgb2oklab } from '../utils/color-utils'; import { filteredItems } from '../utils/filters'; import pmem from '../utils/pmem'; import shortenNumber from '../utils/shorten-number'; -import states from '../utils/states'; -import { saveStatus } from '../utils/states'; +import states, { saveStatus } from '../utils/states'; import supports from '../utils/supports'; import useTitle from '../utils/useTitle'; From c950a6552cbc4050395dc7b82856b3c09973c76d Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Wed, 3 Jul 2024 20:01:11 +0800 Subject: [PATCH 02/20] Experiment: unhide header when clicking on timeline items --- src/components/timeline.jsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/components/timeline.jsx b/src/components/timeline.jsx index d46965024..d35692fb4 100644 --- a/src/components/timeline.jsx +++ b/src/components/timeline.jsx @@ -388,6 +388,17 @@ function Timeline({ dotRef.current = node; }} tabIndex="-1" + onClick={(e) => { + // If click on timeline item, unhide header + if ( + headerRef.current && + e.target.closest('.timeline-item, .timeline-item-alt') + ) { + setTimeout(() => { + headerRef.current.hidden = false; + }, 250); + } + }} >
Date: Wed, 3 Jul 2024 20:02:47 +0800 Subject: [PATCH 03/20] Upgrade dependencies --- package-lock.json | 438 +++++++++++++++++++++++----------------------- package.json | 10 +- 2 files changed, 223 insertions(+), 225 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4cc3cc0be..71d894ae9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.1.0", - "preact": "~10.22.0", + "preact": "~10.22.1", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.0", "react-intersection-observer": "~9.10.3", @@ -47,12 +47,12 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.0", - "@preact/preset-vite": "~2.8.2", - "postcss": "~8.4.38", + "@preact/preset-vite": "~2.8.3", + "postcss": "~8.4.39", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~9.5.14", + "postcss-preset-env": "~9.5.15", "twitter-text": "~3.1.0", - "vite": "~5.3.1", + "vite": "~5.3.3", "vite-plugin-generate-file": "~0.1.1", "vite-plugin-html-config": "~1.0.11", "vite-plugin-pwa": "~0.20.0", @@ -1858,9 +1858,9 @@ } }, "node_modules/@csstools/cascade-layer-name-parser": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.11.tgz", - "integrity": "sha512-yhsonEAhaWRQvHFYhSzOUobH2Ev++fMci+ppFRagw0qVSPlcPV4FnNmlwpM/b2BM10ZeMRkVV4So6YRswD0O0w==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.12.tgz", + "integrity": "sha512-iNCCOnaoycAfcIot3v/orjkTol+j8+Z5xgpqxUpZSdqeaxCADQZtldHhlvzDipmi7OoWdcJUO6DRZcnkMSBEIg==", "dev": true, "funding": [ { @@ -1876,14 +1876,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" } }, "node_modules/@csstools/color-helpers": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-4.2.0.tgz", - "integrity": "sha512-hJJrSBzbfGxUsaR6X4Bzd/FLx0F1ulKnR5ljY9AiXCtsR+H+zSWQDFWlKES1BRaVZTDHLpIIHS9K2o0h+JLlrg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-4.2.1.tgz", + "integrity": "sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==", "dev": true, "funding": [ { @@ -1900,9 +1900,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.2.tgz", - "integrity": "sha512-0owrl7AruDRKAxoSIW8XzJdz7GnuW3AOj4rYLfmXsoKIX2ZZzttzGXoiC8n8V08X7wIBlEWWVB4C8fAN18+I6Q==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.3.tgz", + "integrity": "sha512-rlOh81K3CvtY969Od5b1h29YT6MpCHejMCURKrRrXFeCpz67HGaBNvBmWT5S7S+CKn+V7KJ+qxSmK8jNd/aZWA==", "dev": true, "funding": [ { @@ -1918,14 +1918,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" } }, "node_modules/@csstools/css-color-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-2.0.2.tgz", - "integrity": "sha512-Agx2YmxTcZ7TfB7KNZQ+iekaxbWSdblvtA35aTwE3KfuYyjOlCg3P4KGGdQF/cjm1pHWVSBo5duF/BRfZ8s07A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-2.0.3.tgz", + "integrity": "sha512-Qqhb5I/gEh1wI4brf6Kmy0Xn4J1IqO8OTDKWGRsBYtL4bGkHcV9i0XI2Mmo/UYFtSRoXW/RmKTcMh6sCI433Cw==", "dev": true, "funding": [ { @@ -1938,21 +1938,21 @@ } ], "dependencies": { - "@csstools/color-helpers": "^4.2.0", - "@csstools/css-calc": "^1.2.2" + "@csstools/color-helpers": "^4.2.1", + "@csstools/css-calc": "^1.2.3" }, "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", - "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.0.tgz", + "integrity": "sha512-qvBMcOU/uWFCH/VO0MYe0AMs0BGMWAt6FTryMbFIKYtZtVnqTZtT8ktv5o718llkaGZWomJezJZjq3vJDHeJNQ==", "dev": true, "funding": [ { @@ -1968,13 +1968,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-tokenizer": "^2.3.2" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", - "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.2.tgz", + "integrity": "sha512-0xYOf4pQpAaE6Sm2Q0x3p25oRukzWQ/O8hWVvhIt9Iv98/uu053u2CGm/g3kJ+P0vOYTAYzoU8Evq2pg9ZPXtw==", "dev": true, "funding": [ { @@ -1991,9 +1991,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", - "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.12.tgz", + "integrity": "sha512-t1/CdyVJzOQUiGUcIBXRzTAkWTFPxiPnoKwowKW2z9Uj78c2bBWI/X94BeVfUwVq1xtCjD7dnO8kS6WONgp8Jw==", "dev": true, "funding": [ { @@ -2009,8 +2009,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" } }, "node_modules/@csstools/postcss-cascade-layers": { @@ -2040,9 +2040,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.16.tgz", - "integrity": "sha512-KtmXfckANSKsLBoTQCzggvKft1cmmmDKYjFO4yVlB23nWUgGInVBTE9T5JLmH29NNdTWSEPLWPUxoQ6XiIEn2Q==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.17.tgz", + "integrity": "sha512-hi6g5KHMvxpxf01LCVu5xnNxX5h2Vkn9aKRmspn2esWjWtshuTXVOavTjwvogA+Eycm9Rn21QTYNU+qbKw6IeQ==", "dev": true, "funding": [ { @@ -2055,9 +2055,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2069,9 +2069,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.16.tgz", - "integrity": "sha512-BJnD1M5Pdypl1cJuwGuzVC52PqgzaObsDLu34jgf+QU7daVFqz432PvpqvXTmfTSNt4OckOT1QIzWexEFlDNXw==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.17.tgz", + "integrity": "sha512-Y65GHGCY1R+9+/5KrJjN7gAF1NZydng4AGknMggeUJIyo2ckLb4vBrlDmpIcHDdjQtV5631j1hxvalVTbpoiFw==", "dev": true, "funding": [ { @@ -2084,9 +2084,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2098,9 +2098,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.7.tgz", - "integrity": "sha512-9usBPQX74OhiF/VuaVrp44UAPzqbKNyoaxEa6tbEXiFp+OAm3yB/TLRKyPUWg5tvvHGCduGJVdJJB3w8c8NBtA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.8.tgz", + "integrity": "sha512-/4WHpu4MrCCsUWRaDreyBcdF+5xnudk1JJLg6aWREeMaSpr3vsD0eywmOXct3xUm28TCqKS//S86IlcDJJdzoQ==", "dev": true, "funding": [ { @@ -2113,9 +2113,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-calc": "^1.2.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2151,9 +2151,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.9.tgz", - "integrity": "sha512-JmOeiBJj1RJriAkr+aLBaiYUpEqdNOIo3ERQ5a4uNzy18upzrQ6tz7m2Vt1GQpJ62zQj7rC5PjAhCoZCoyE31g==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.10.tgz", + "integrity": "sha512-iPz4/cO8YiNjAYdtAiKGBdKZdFlAvDtUr2AgvAMxCa83e9MwTIKmsJZC3Frw7VYmkfknmdElEZr1FJU+PmB2PA==", "dev": true, "funding": [ { @@ -2166,9 +2166,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2178,9 +2178,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.17.tgz", - "integrity": "sha512-qSNIqzLPKd2SadfWwHZv42lDRyYlLaM+Vx5rRIsnYCZbQxzFfe1XAwssrcCsHgba5bA6bi5oDoFCx0W+PRCpfw==", + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.18.tgz", + "integrity": "sha512-rZH7RnNYY911I/n8+DRrcri89GffptdyuFDGGj/UbxDISFirdR1uI/wcur9KYR/uFHXqrnJjrfi1cisfB7bL+g==", "dev": true, "funding": [ { @@ -2193,9 +2193,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2207,9 +2207,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.15.tgz", - "integrity": "sha512-l34fRiZ7o5+pULv7OplXniBTU4TuKYNNOv0abuvUanddWGSy3+YHlMKUSgcVFo0d1DorxPAhJSTCrugl+4OmMQ==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.16.tgz", + "integrity": "sha512-nlC4D5xB7pomgR4kDZ1lqbVqrs6gxPqsM2OE5CkCn0EqCMxtqqtadtbK2dcFwzyujv3DL4wYNo+fgF4rJgLPZA==", "dev": true, "funding": [ { @@ -2222,9 +2222,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2311,9 +2311,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.5.tgz", - "integrity": "sha512-kKM9dtEaVmSTb3scL2pgef62KyWv6SK19JiAnCCuiDhlRE6PADKzaPPBXmP3qj4IEgIH+cQhdEosB0eroU6Fnw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.6.tgz", + "integrity": "sha512-bu+cxKpcTrMDMkVCv7QURwKNPZEuXA3J0Udvz3HfmQHt4+OIvvfvDpTgejFXdOliCU4zK9/QdqebPcYneygZtg==", "dev": true, "funding": [ { @@ -2326,8 +2326,8 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2430,9 +2430,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.9.tgz", - "integrity": "sha512-iBBJuExgHwedFH9AqNOHWzZFgYnt17zhu1qWjmSihu1P5pw0lIG9q5t3uIgJJFDNmYoOGfBKan66z9u1QH8yBQ==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.10.tgz", + "integrity": "sha512-nGP0KanI/jXrUMpaIBz6mdy/vNs3d/cjbNYuoEc7lCdNkntmxZvwxC2zIKI8QzGWaYsh9jahozMVceZ0jNyjgg==", "dev": true, "funding": [ { @@ -2445,7 +2445,7 @@ } ], "dependencies": { - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2456,9 +2456,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.6.tgz", - "integrity": "sha512-bc0frf2Lod53j6wEHVsaVElfvCf6uhc96v99M/wUfer4MmNYfO3YLx1kFuB8xXvb0AXiWx4fohCJqemHV3bfRg==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.7.tgz", + "integrity": "sha512-AjLG+vJvhrN2geUjYNvzncW1TJ+vC4QrVPGrLPxOSJ2QXC94krQErSW4aXMj0b13zhvVWeqf2NHIOVQknqV9cg==", "dev": true, "funding": [ { @@ -2471,10 +2471,10 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11" + "@csstools/css-calc": "^1.2.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", + "@csstools/media-query-list-parser": "^2.1.12" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2484,9 +2484,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.9.tgz", - "integrity": "sha512-PR0s3tFSxPoKoPLoKuiZuYhwQC5bQxq/gFfywX2u/kh8rMzesARPZYKxE71I3jHWi6KDHGZl9Xb5xcFPwtvLiQ==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.10.tgz", + "integrity": "sha512-DXae3i7OYJTejxcoUuf/AOIpy+6FWfGGKo/I3WefZI538l3k+ErU6V2xQOx/UmUXT2FDIdE1Ucl9JkZib2rEsA==", "dev": true, "funding": [ { @@ -2499,9 +2499,9 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11" + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", + "@csstools/media-query-list-parser": "^2.1.12" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2562,9 +2562,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.16.tgz", - "integrity": "sha512-zm8nND+EraZrmbO4mgcT8FrJrAQUfWNfMmbV5uTCpWtAcO5ycX3E3bO8T1TjczKYRxC5QMM/91n9YExYCF4Mvw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.17.tgz", + "integrity": "sha512-kIng3Xmw6NKUvD/eEoHGwbyDFXDsuzsVGtNo3ndgZYYqy+DLiD+3drxwRKiViE5LUieLB1ERczXpLVmpSw61eg==", "dev": true, "funding": [ { @@ -2577,9 +2577,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2616,9 +2616,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.16.tgz", - "integrity": "sha512-TSM8fVqJkT8JZDranZPnkpxjU/Q1sNR192lXMND+EcKOUjYa6uYpGSfHgjnWjCRiBSciettS+sL7y9wmnas7qQ==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.17.tgz", + "integrity": "sha512-EVckAtG8bocItZflXLJ50Su+gwg/4Jhkz1BztyNsT0/svwS6QMAeLjyUA75OsgtejNWQHvBMWna4xc9LCqdjrQ==", "dev": true, "funding": [ { @@ -2631,9 +2631,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2670,9 +2670,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.8.tgz", - "integrity": "sha512-X76+thsvsmH/SkqVbN+vjeFKe1ABGLRx8/Wl68QTb/zvJWdzgx5S/nbszZP5O3nTRc5eI8NxIOrQUiy30fR+0g==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.9.tgz", + "integrity": "sha512-uAw1J8hiZ0mM1DLaziI7CP5oagSwDnS5kufuROGIJFzESYfTqNVS3b7FgDZto9AxXdkwI+Sn48+cvG8PwzGMog==", "dev": true, "funding": [ { @@ -2685,9 +2685,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-calc": "^1.2.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2697,9 +2697,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.6.tgz", - "integrity": "sha512-Q8HEu4AEiwNVZBD6+DpQ8M9SajpMow4+WtmndWIAv8qxDtDYL4JK1xXWkhOGk28PrcJawOvkrEZ8Ri59UN1TJw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.7.tgz", + "integrity": "sha512-+cptcsM5r45jntU6VjotnkC9GteFR7BQBfZ5oW7inLCxj7AfLGAzMbZ60hKTP13AULVZBdxky0P8um0IBfLHVA==", "dev": true, "funding": [ { @@ -2712,7 +2712,7 @@ } ], "dependencies": { - "@csstools/color-helpers": "^4.2.0", + "@csstools/color-helpers": "^4.2.1", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -2723,9 +2723,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.8.tgz", - "integrity": "sha512-zEzyGriPqoIYFgHJqWNy8bmoxjM4+ONyTap1ZzQK/Lll/VsCYvx0IckB33W/u89uLSVeeB8xC7uTrkoQ7ogKyQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.9.tgz", + "integrity": "sha512-rCAtKX3EsH91ZIHoxFzAAcMQeQCS+PsjzHl6fvsGXz/SV3lqzSmO7MWgFXyPktC2zjZXgOObAJ/2QkhMqVpgNg==", "dev": true, "funding": [ { @@ -2738,9 +2738,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-calc": "^1.2.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3457,11 +3457,12 @@ } }, "node_modules/@preact/preset-vite": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.2.tgz", - "integrity": "sha512-m3tl+M8IO8jgiHnk+7LSTFl8axdPXloewi7iGVLdmCwf34XOzEUur0bZVewW4DUbUipFjTS2CXu27+5f/oexBA==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.3.tgz", + "integrity": "sha512-IT4+IV3D4lIyoDrp4FUfx4dT2yW/5KIl2MXAsqqItGTbz1xUhtSyP9nS2kLXNnhLG4I2Nku/X+vKFMmRG+oMDA==", "dev": true, "dependencies": { + "@babel/code-frame": "^7.22.13", "@babel/plugin-transform-react-jsx": "^7.22.15", "@babel/plugin-transform-react-jsx-development": "^7.22.5", "@prefresh/vite": "^2.4.1", @@ -4195,9 +4196,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, "funding": [ { @@ -4214,10 +4215,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "update-browserslist-db": "^1.0.16" }, "bin": { "browserslist": "cli.js" @@ -4275,9 +4276,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001605", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", - "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", + "version": "1.0.30001640", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", + "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", "dev": true, "funding": [ { @@ -4791,9 +4792,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.677", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.677.tgz", - "integrity": "sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==", + "version": "1.4.816", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", + "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", "dev": true }, "node_modules/entities": { @@ -4971,11 +4972,10 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -6381,11 +6381,10 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "license": "ISC" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -6410,9 +6409,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "dev": true, "funding": [ { @@ -6430,7 +6429,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -6479,9 +6478,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.11.tgz", - "integrity": "sha512-gJ+hAtAsgBF4w7eh28Pg7EA60lx7vE5xO/B/yZawaI6FYHky+5avA9YSe73nJHnAMEVFpCMeJc6Wts5g+niksg==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.12.tgz", + "integrity": "sha512-LGLWl6EDofJwDHMElYvt4YU9AeH+oijzOfeKhE0ebuu0aBSDeEg7CfFXMi0iiXWV1VKxn3MLGOtcBNnOiQS9Yg==", "dev": true, "funding": [ { @@ -6494,9 +6493,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -6560,9 +6559,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.6.tgz", - "integrity": "sha512-BjihQoIO4Wjqv9fQNExSJIim8UAmkhLxuJnhJsLTRFSba1y1MhxkJK5awsM//6JJ+/Tu5QUxf624RQAvKHv6SA==", + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.7.tgz", + "integrity": "sha512-o2k5nnvRZhF36pr1fGFM7a1EMTcNdKNO70Tp1g2lfpYgiwIctR7ic4acBCDHBMYRcQ8mFlaBB1QsEywqrSIaFQ==", "dev": true, "funding": [ { @@ -6575,10 +6574,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.11", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11" + "@csstools/cascade-layer-name-parser": "^1.0.12", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", + "@csstools/media-query-list-parser": "^2.1.12" }, "engines": { "node": "^14 || ^16 || >=18" @@ -6588,9 +6587,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.10.tgz", - "integrity": "sha512-ejaalIpl7p0k0L5ngIZ86AZGmp3m1KdeOCbSQTK4gQcB1ncaoPTHorw206+tsZRIhIDYvh5ZButEje6740YDXw==", + "version": "13.3.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.11.tgz", + "integrity": "sha512-CAIgz03I/GMhVbAKIi3u3P8j5JY2KHl0TlePcfUX3OUy8t0ynnWvyJaS1D92pEAw1LjmeKWi7+aIU0s53iYdOQ==", "dev": true, "funding": [ { @@ -6603,9 +6602,9 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.11", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/cascade-layer-name-parser": "^1.0.12", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/utilities": "^1.0.0", "postcss-value-parser": "^4.2.0" }, @@ -6617,9 +6616,9 @@ } }, "node_modules/postcss-custom-selectors": { - "version": "7.1.10", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.10.tgz", - "integrity": "sha512-bV/6+IExyT2J4kMzX6c+ZMlN1xDfjcC4ePr1ywKezcTgwgUn11qQN3jdzFBpo8Dk1K7vO/OYOwMb5AtJP4JZcg==", + "version": "7.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.11.tgz", + "integrity": "sha512-IoGprXOueDJL5t3ZuWR+QzPpmrQCFNhvoICsg0vDSehGwWNG0YV/Z4A+zouGRonC7NJThoV+A8A74IEMqMQUQw==", "dev": true, "funding": [ { @@ -6632,10 +6631,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.11", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "postcss-selector-parser": "^6.0.13" + "@csstools/cascade-layer-name-parser": "^1.0.12", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", + "postcss-selector-parser": "^6.1.0" }, "engines": { "node": "^14 || ^16 || >=18" @@ -6830,9 +6829,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.16.tgz", - "integrity": "sha512-QWv0VxfjgIl8jBR/wuQcm/o31jn4P/LwzYuVKzNQoO5t7HPcU0d3RfWUiDrHN3frmSv+YYZppr3P81tKFTDyqg==", + "version": "6.0.17", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.17.tgz", + "integrity": "sha512-QzjC6/3J6XKZzHGuUKhWNvlDMfWo+08dQOfQj4vWQdpZFdOxCh9QCR4w4XbV68EkdzywJie1mcm81jwFyV0+kg==", "dev": true, "funding": [ { @@ -6845,9 +6844,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-color-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -6994,9 +6993,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "9.5.14", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.5.14.tgz", - "integrity": "sha512-gTMi+3kENN/mN+K59aR+vEOjlkujTmmXJcM9rnAqGh9Y/euQ/ypdp9rd8mO1eoIjAD8vNS15+xbkBxoi+65BqQ==", + "version": "9.5.15", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.5.15.tgz", + "integrity": "sha512-z/2akOVQChOGAdzaUR4pQrDOM3xGZc5/k4THHWyREbWAfngaJATA2SkEQMkiyV5Y/EoSwE0nt0IiaIs6CMmxfQ==", "dev": true, "funding": [ { @@ -7010,48 +7009,48 @@ ], "dependencies": { "@csstools/postcss-cascade-layers": "^4.0.6", - "@csstools/postcss-color-function": "^3.0.16", - "@csstools/postcss-color-mix-function": "^2.0.16", - "@csstools/postcss-exponential-functions": "^1.0.7", + "@csstools/postcss-color-function": "^3.0.17", + "@csstools/postcss-color-mix-function": "^2.0.17", + "@csstools/postcss-exponential-functions": "^1.0.8", "@csstools/postcss-font-format-keywords": "^3.0.2", - "@csstools/postcss-gamut-mapping": "^1.0.9", - "@csstools/postcss-gradients-interpolation-method": "^4.0.17", - "@csstools/postcss-hwb-function": "^3.0.15", + "@csstools/postcss-gamut-mapping": "^1.0.10", + "@csstools/postcss-gradients-interpolation-method": "^4.0.18", + "@csstools/postcss-hwb-function": "^3.0.16", "@csstools/postcss-ic-unit": "^3.0.6", "@csstools/postcss-initial": "^1.0.1", "@csstools/postcss-is-pseudo-class": "^4.0.8", - "@csstools/postcss-light-dark-function": "^1.0.5", + "@csstools/postcss-light-dark-function": "^1.0.6", "@csstools/postcss-logical-float-and-clear": "^2.0.1", "@csstools/postcss-logical-overflow": "^1.0.1", "@csstools/postcss-logical-overscroll-behavior": "^1.0.1", "@csstools/postcss-logical-resize": "^2.0.1", - "@csstools/postcss-logical-viewport-units": "^2.0.9", - "@csstools/postcss-media-minmax": "^1.1.6", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.9", + "@csstools/postcss-logical-viewport-units": "^2.0.10", + "@csstools/postcss-media-minmax": "^1.1.7", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.10", "@csstools/postcss-nested-calc": "^3.0.2", "@csstools/postcss-normalize-display-values": "^3.0.2", - "@csstools/postcss-oklab-function": "^3.0.16", + "@csstools/postcss-oklab-function": "^3.0.17", "@csstools/postcss-progressive-custom-properties": "^3.2.0", - "@csstools/postcss-relative-color-syntax": "^2.0.16", + "@csstools/postcss-relative-color-syntax": "^2.0.17", "@csstools/postcss-scope-pseudo-class": "^3.0.1", - "@csstools/postcss-stepped-value-functions": "^3.0.8", - "@csstools/postcss-text-decoration-shorthand": "^3.0.6", - "@csstools/postcss-trigonometric-functions": "^3.0.8", + "@csstools/postcss-stepped-value-functions": "^3.0.9", + "@csstools/postcss-text-decoration-shorthand": "^3.0.7", + "@csstools/postcss-trigonometric-functions": "^3.0.9", "@csstools/postcss-unset-value": "^3.0.1", "autoprefixer": "^10.4.19", - "browserslist": "^4.22.3", + "browserslist": "^4.23.1", "css-blank-pseudo": "^6.0.2", "css-has-pseudo": "^6.0.5", "css-prefers-color-scheme": "^9.0.1", "cssdb": "^8.0.0", "postcss-attribute-case-insensitive": "^6.0.3", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^6.0.11", + "postcss-color-functional-notation": "^6.0.12", "postcss-color-hex-alpha": "^9.0.4", "postcss-color-rebeccapurple": "^9.0.3", - "postcss-custom-media": "^10.0.6", - "postcss-custom-properties": "^13.3.10", - "postcss-custom-selectors": "^7.1.10", + "postcss-custom-media": "^10.0.7", + "postcss-custom-properties": "^13.3.11", + "postcss-custom-selectors": "^7.1.11", "postcss-dir-pseudo-class": "^8.0.1", "postcss-double-position-gradients": "^5.0.6", "postcss-focus-visible": "^9.0.1", @@ -7059,7 +7058,7 @@ "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^5.0.1", "postcss-image-set-function": "^6.0.3", - "postcss-lab-function": "^6.0.16", + "postcss-lab-function": "^6.0.17", "postcss-logical": "^7.0.1", "postcss-nesting": "^12.1.5", "postcss-opacity-percentage": "^2.0.0", @@ -7158,9 +7157,9 @@ "license": "MIT" }, "node_modules/preact": { - "version": "10.22.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.0.tgz", - "integrity": "sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==", + "version": "10.22.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.1.tgz", + "integrity": "sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -8247,9 +8246,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -8265,10 +8264,9 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -8378,13 +8376,13 @@ } }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "rollup": "^4.13.0" }, "bin": { diff --git a/package.json b/package.json index e85bfc472..957f0528c 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.1.0", - "preact": "~10.22.0", + "preact": "~10.22.1", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.0", "react-intersection-observer": "~9.10.3", @@ -50,12 +50,12 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.0", - "@preact/preset-vite": "~2.8.2", - "postcss": "~8.4.38", + "@preact/preset-vite": "~2.8.3", + "postcss": "~8.4.39", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~9.5.14", + "postcss-preset-env": "~9.5.15", "twitter-text": "~3.1.0", - "vite": "~5.3.1", + "vite": "~5.3.3", "vite-plugin-generate-file": "~0.1.1", "vite-plugin-html-config": "~1.0.11", "vite-plugin-pwa": "~0.20.0", From a72400febf62e34e0aaaeef86ae64ed6e373d492 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Fri, 5 Jul 2024 16:19:04 +0800 Subject: [PATCH 04/20] Test support Hollo --- src/utils/isMastodonLinkMaybe.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils/isMastodonLinkMaybe.jsx b/src/utils/isMastodonLinkMaybe.jsx index f36e300c4..c26624b81 100644 --- a/src/utils/isMastodonLinkMaybe.jsx +++ b/src/utils/isMastodonLinkMaybe.jsx @@ -7,6 +7,7 @@ export default function isMastodonLinkMaybe(url) { /^\/notes\/[a-z0-9]+$/i.test(pathname) || // Misskey, Firefish /^\/(notice|objects)\/[a-z0-9-]+$/i.test(pathname) || // Pleroma /^\/@[^/]+\/post\/[a-z0-9]+$/i.test(pathname) || // Threads + /^\/@[^/]+\/[a-z0-9]+[a-z0-9\-]+[a-z0-9]+$/i.test(pathname) || // Hollo /#\/[^\/]+\.[^\/]+\/s\/.+/i.test(hash) // Phanpy 🫣 ); } catch (e) { From f0872e79fbc4c5666118d317c7bfbab6f290903b Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Fri, 5 Jul 2024 18:56:52 +0800 Subject: [PATCH 05/20] Revert "Upgrade dependencies" This reverts commit cb9848fe8c03968516db9cc27acf7e49d7e84409. --- package-lock.json | 438 +++++++++++++++++++++++----------------------- package.json | 10 +- 2 files changed, 225 insertions(+), 223 deletions(-) diff --git a/package-lock.json b/package-lock.json index 71d894ae9..4cc3cc0be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.1.0", - "preact": "~10.22.1", + "preact": "~10.22.0", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.0", "react-intersection-observer": "~9.10.3", @@ -47,12 +47,12 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.0", - "@preact/preset-vite": "~2.8.3", - "postcss": "~8.4.39", + "@preact/preset-vite": "~2.8.2", + "postcss": "~8.4.38", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~9.5.15", + "postcss-preset-env": "~9.5.14", "twitter-text": "~3.1.0", - "vite": "~5.3.3", + "vite": "~5.3.1", "vite-plugin-generate-file": "~0.1.1", "vite-plugin-html-config": "~1.0.11", "vite-plugin-pwa": "~0.20.0", @@ -1858,9 +1858,9 @@ } }, "node_modules/@csstools/cascade-layer-name-parser": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.12.tgz", - "integrity": "sha512-iNCCOnaoycAfcIot3v/orjkTol+j8+Z5xgpqxUpZSdqeaxCADQZtldHhlvzDipmi7OoWdcJUO6DRZcnkMSBEIg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.11.tgz", + "integrity": "sha512-yhsonEAhaWRQvHFYhSzOUobH2Ev++fMci+ppFRagw0qVSPlcPV4FnNmlwpM/b2BM10ZeMRkVV4So6YRswD0O0w==", "dev": true, "funding": [ { @@ -1876,14 +1876,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/color-helpers": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-4.2.1.tgz", - "integrity": "sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-4.2.0.tgz", + "integrity": "sha512-hJJrSBzbfGxUsaR6X4Bzd/FLx0F1ulKnR5ljY9AiXCtsR+H+zSWQDFWlKES1BRaVZTDHLpIIHS9K2o0h+JLlrg==", "dev": true, "funding": [ { @@ -1900,9 +1900,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.3.tgz", - "integrity": "sha512-rlOh81K3CvtY969Od5b1h29YT6MpCHejMCURKrRrXFeCpz67HGaBNvBmWT5S7S+CKn+V7KJ+qxSmK8jNd/aZWA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.2.tgz", + "integrity": "sha512-0owrl7AruDRKAxoSIW8XzJdz7GnuW3AOj4rYLfmXsoKIX2ZZzttzGXoiC8n8V08X7wIBlEWWVB4C8fAN18+I6Q==", "dev": true, "funding": [ { @@ -1918,14 +1918,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-color-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-2.0.3.tgz", - "integrity": "sha512-Qqhb5I/gEh1wI4brf6Kmy0Xn4J1IqO8OTDKWGRsBYtL4bGkHcV9i0XI2Mmo/UYFtSRoXW/RmKTcMh6sCI433Cw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-2.0.2.tgz", + "integrity": "sha512-Agx2YmxTcZ7TfB7KNZQ+iekaxbWSdblvtA35aTwE3KfuYyjOlCg3P4KGGdQF/cjm1pHWVSBo5duF/BRfZ8s07A==", "dev": true, "funding": [ { @@ -1938,21 +1938,21 @@ } ], "dependencies": { - "@csstools/color-helpers": "^4.2.1", - "@csstools/css-calc": "^1.2.3" + "@csstools/color-helpers": "^4.2.0", + "@csstools/css-calc": "^1.2.2" }, "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.0.tgz", - "integrity": "sha512-qvBMcOU/uWFCH/VO0MYe0AMs0BGMWAt6FTryMbFIKYtZtVnqTZtT8ktv5o718llkaGZWomJezJZjq3vJDHeJNQ==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", + "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", "dev": true, "funding": [ { @@ -1968,13 +1968,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.2.tgz", - "integrity": "sha512-0xYOf4pQpAaE6Sm2Q0x3p25oRukzWQ/O8hWVvhIt9Iv98/uu053u2CGm/g3kJ+P0vOYTAYzoU8Evq2pg9ZPXtw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", + "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", "dev": true, "funding": [ { @@ -1991,9 +1991,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.12.tgz", - "integrity": "sha512-t1/CdyVJzOQUiGUcIBXRzTAkWTFPxiPnoKwowKW2z9Uj78c2bBWI/X94BeVfUwVq1xtCjD7dnO8kS6WONgp8Jw==", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", + "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", "dev": true, "funding": [ { @@ -2009,8 +2009,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/postcss-cascade-layers": { @@ -2040,9 +2040,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.17.tgz", - "integrity": "sha512-hi6g5KHMvxpxf01LCVu5xnNxX5h2Vkn9aKRmspn2esWjWtshuTXVOavTjwvogA+Eycm9Rn21QTYNU+qbKw6IeQ==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.16.tgz", + "integrity": "sha512-KtmXfckANSKsLBoTQCzggvKft1cmmmDKYjFO4yVlB23nWUgGInVBTE9T5JLmH29NNdTWSEPLWPUxoQ6XiIEn2Q==", "dev": true, "funding": [ { @@ -2055,9 +2055,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2069,9 +2069,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.17.tgz", - "integrity": "sha512-Y65GHGCY1R+9+/5KrJjN7gAF1NZydng4AGknMggeUJIyo2ckLb4vBrlDmpIcHDdjQtV5631j1hxvalVTbpoiFw==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.16.tgz", + "integrity": "sha512-BJnD1M5Pdypl1cJuwGuzVC52PqgzaObsDLu34jgf+QU7daVFqz432PvpqvXTmfTSNt4OckOT1QIzWexEFlDNXw==", "dev": true, "funding": [ { @@ -2084,9 +2084,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2098,9 +2098,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.8.tgz", - "integrity": "sha512-/4WHpu4MrCCsUWRaDreyBcdF+5xnudk1JJLg6aWREeMaSpr3vsD0eywmOXct3xUm28TCqKS//S86IlcDJJdzoQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.7.tgz", + "integrity": "sha512-9usBPQX74OhiF/VuaVrp44UAPzqbKNyoaxEa6tbEXiFp+OAm3yB/TLRKyPUWg5tvvHGCduGJVdJJB3w8c8NBtA==", "dev": true, "funding": [ { @@ -2113,9 +2113,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-calc": "^1.2.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2151,9 +2151,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.10.tgz", - "integrity": "sha512-iPz4/cO8YiNjAYdtAiKGBdKZdFlAvDtUr2AgvAMxCa83e9MwTIKmsJZC3Frw7VYmkfknmdElEZr1FJU+PmB2PA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.9.tgz", + "integrity": "sha512-JmOeiBJj1RJriAkr+aLBaiYUpEqdNOIo3ERQ5a4uNzy18upzrQ6tz7m2Vt1GQpJ62zQj7rC5PjAhCoZCoyE31g==", "dev": true, "funding": [ { @@ -2166,9 +2166,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2178,9 +2178,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.18.tgz", - "integrity": "sha512-rZH7RnNYY911I/n8+DRrcri89GffptdyuFDGGj/UbxDISFirdR1uI/wcur9KYR/uFHXqrnJjrfi1cisfB7bL+g==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.17.tgz", + "integrity": "sha512-qSNIqzLPKd2SadfWwHZv42lDRyYlLaM+Vx5rRIsnYCZbQxzFfe1XAwssrcCsHgba5bA6bi5oDoFCx0W+PRCpfw==", "dev": true, "funding": [ { @@ -2193,9 +2193,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2207,9 +2207,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.16.tgz", - "integrity": "sha512-nlC4D5xB7pomgR4kDZ1lqbVqrs6gxPqsM2OE5CkCn0EqCMxtqqtadtbK2dcFwzyujv3DL4wYNo+fgF4rJgLPZA==", + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.15.tgz", + "integrity": "sha512-l34fRiZ7o5+pULv7OplXniBTU4TuKYNNOv0abuvUanddWGSy3+YHlMKUSgcVFo0d1DorxPAhJSTCrugl+4OmMQ==", "dev": true, "funding": [ { @@ -2222,9 +2222,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2311,9 +2311,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.6.tgz", - "integrity": "sha512-bu+cxKpcTrMDMkVCv7QURwKNPZEuXA3J0Udvz3HfmQHt4+OIvvfvDpTgejFXdOliCU4zK9/QdqebPcYneygZtg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.5.tgz", + "integrity": "sha512-kKM9dtEaVmSTb3scL2pgef62KyWv6SK19JiAnCCuiDhlRE6PADKzaPPBXmP3qj4IEgIH+cQhdEosB0eroU6Fnw==", "dev": true, "funding": [ { @@ -2326,8 +2326,8 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2430,9 +2430,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.10.tgz", - "integrity": "sha512-nGP0KanI/jXrUMpaIBz6mdy/vNs3d/cjbNYuoEc7lCdNkntmxZvwxC2zIKI8QzGWaYsh9jahozMVceZ0jNyjgg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.9.tgz", + "integrity": "sha512-iBBJuExgHwedFH9AqNOHWzZFgYnt17zhu1qWjmSihu1P5pw0lIG9q5t3uIgJJFDNmYoOGfBKan66z9u1QH8yBQ==", "dev": true, "funding": [ { @@ -2445,7 +2445,7 @@ } ], "dependencies": { - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2456,9 +2456,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.7.tgz", - "integrity": "sha512-AjLG+vJvhrN2geUjYNvzncW1TJ+vC4QrVPGrLPxOSJ2QXC94krQErSW4aXMj0b13zhvVWeqf2NHIOVQknqV9cg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.6.tgz", + "integrity": "sha512-bc0frf2Lod53j6wEHVsaVElfvCf6uhc96v99M/wUfer4MmNYfO3YLx1kFuB8xXvb0AXiWx4fohCJqemHV3bfRg==", "dev": true, "funding": [ { @@ -2471,10 +2471,10 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", - "@csstools/media-query-list-parser": "^2.1.12" + "@csstools/css-calc": "^1.2.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", + "@csstools/media-query-list-parser": "^2.1.11" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2484,9 +2484,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.10.tgz", - "integrity": "sha512-DXae3i7OYJTejxcoUuf/AOIpy+6FWfGGKo/I3WefZI538l3k+ErU6V2xQOx/UmUXT2FDIdE1Ucl9JkZib2rEsA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.9.tgz", + "integrity": "sha512-PR0s3tFSxPoKoPLoKuiZuYhwQC5bQxq/gFfywX2u/kh8rMzesARPZYKxE71I3jHWi6KDHGZl9Xb5xcFPwtvLiQ==", "dev": true, "funding": [ { @@ -2499,9 +2499,9 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", - "@csstools/media-query-list-parser": "^2.1.12" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", + "@csstools/media-query-list-parser": "^2.1.11" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2562,9 +2562,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.17.tgz", - "integrity": "sha512-kIng3Xmw6NKUvD/eEoHGwbyDFXDsuzsVGtNo3ndgZYYqy+DLiD+3drxwRKiViE5LUieLB1ERczXpLVmpSw61eg==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.16.tgz", + "integrity": "sha512-zm8nND+EraZrmbO4mgcT8FrJrAQUfWNfMmbV5uTCpWtAcO5ycX3E3bO8T1TjczKYRxC5QMM/91n9YExYCF4Mvw==", "dev": true, "funding": [ { @@ -2577,9 +2577,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2616,9 +2616,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.17.tgz", - "integrity": "sha512-EVckAtG8bocItZflXLJ50Su+gwg/4Jhkz1BztyNsT0/svwS6QMAeLjyUA75OsgtejNWQHvBMWna4xc9LCqdjrQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.16.tgz", + "integrity": "sha512-TSM8fVqJkT8JZDranZPnkpxjU/Q1sNR192lXMND+EcKOUjYa6uYpGSfHgjnWjCRiBSciettS+sL7y9wmnas7qQ==", "dev": true, "funding": [ { @@ -2631,9 +2631,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -2670,9 +2670,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.9.tgz", - "integrity": "sha512-uAw1J8hiZ0mM1DLaziI7CP5oagSwDnS5kufuROGIJFzESYfTqNVS3b7FgDZto9AxXdkwI+Sn48+cvG8PwzGMog==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.8.tgz", + "integrity": "sha512-X76+thsvsmH/SkqVbN+vjeFKe1ABGLRx8/Wl68QTb/zvJWdzgx5S/nbszZP5O3nTRc5eI8NxIOrQUiy30fR+0g==", "dev": true, "funding": [ { @@ -2685,9 +2685,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-calc": "^1.2.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2697,9 +2697,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.7.tgz", - "integrity": "sha512-+cptcsM5r45jntU6VjotnkC9GteFR7BQBfZ5oW7inLCxj7AfLGAzMbZ60hKTP13AULVZBdxky0P8um0IBfLHVA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.6.tgz", + "integrity": "sha512-Q8HEu4AEiwNVZBD6+DpQ8M9SajpMow4+WtmndWIAv8qxDtDYL4JK1xXWkhOGk28PrcJawOvkrEZ8Ri59UN1TJw==", "dev": true, "funding": [ { @@ -2712,7 +2712,7 @@ } ], "dependencies": { - "@csstools/color-helpers": "^4.2.1", + "@csstools/color-helpers": "^4.2.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -2723,9 +2723,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.9.tgz", - "integrity": "sha512-rCAtKX3EsH91ZIHoxFzAAcMQeQCS+PsjzHl6fvsGXz/SV3lqzSmO7MWgFXyPktC2zjZXgOObAJ/2QkhMqVpgNg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.8.tgz", + "integrity": "sha512-zEzyGriPqoIYFgHJqWNy8bmoxjM4+ONyTap1ZzQK/Lll/VsCYvx0IckB33W/u89uLSVeeB8xC7uTrkoQ7ogKyQ==", "dev": true, "funding": [ { @@ -2738,9 +2738,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2" + "@csstools/css-calc": "^1.2.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3457,12 +3457,11 @@ } }, "node_modules/@preact/preset-vite": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.3.tgz", - "integrity": "sha512-IT4+IV3D4lIyoDrp4FUfx4dT2yW/5KIl2MXAsqqItGTbz1xUhtSyP9nS2kLXNnhLG4I2Nku/X+vKFMmRG+oMDA==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.2.tgz", + "integrity": "sha512-m3tl+M8IO8jgiHnk+7LSTFl8axdPXloewi7iGVLdmCwf34XOzEUur0bZVewW4DUbUipFjTS2CXu27+5f/oexBA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", "@babel/plugin-transform-react-jsx": "^7.22.15", "@babel/plugin-transform-react-jsx-development": "^7.22.5", "@prefresh/vite": "^2.4.1", @@ -4196,9 +4195,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -4215,10 +4214,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -4276,9 +4275,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001640", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", - "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", + "version": "1.0.30001605", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", + "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", "dev": true, "funding": [ { @@ -4792,9 +4791,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", + "version": "1.4.677", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.677.tgz", + "integrity": "sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==", "dev": true }, "node_modules/entities": { @@ -4972,10 +4971,11 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6381,10 +6381,11 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -6409,9 +6410,9 @@ } }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -6429,7 +6430,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", + "picocolors": "^1.0.0", "source-map-js": "^1.2.0" }, "engines": { @@ -6478,9 +6479,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.12.tgz", - "integrity": "sha512-LGLWl6EDofJwDHMElYvt4YU9AeH+oijzOfeKhE0ebuu0aBSDeEg7CfFXMi0iiXWV1VKxn3MLGOtcBNnOiQS9Yg==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.11.tgz", + "integrity": "sha512-gJ+hAtAsgBF4w7eh28Pg7EA60lx7vE5xO/B/yZawaI6FYHky+5avA9YSe73nJHnAMEVFpCMeJc6Wts5g+niksg==", "dev": true, "funding": [ { @@ -6493,9 +6494,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -6559,9 +6560,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "10.0.7", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.7.tgz", - "integrity": "sha512-o2k5nnvRZhF36pr1fGFM7a1EMTcNdKNO70Tp1g2lfpYgiwIctR7ic4acBCDHBMYRcQ8mFlaBB1QsEywqrSIaFQ==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.6.tgz", + "integrity": "sha512-BjihQoIO4Wjqv9fQNExSJIim8UAmkhLxuJnhJsLTRFSba1y1MhxkJK5awsM//6JJ+/Tu5QUxf624RQAvKHv6SA==", "dev": true, "funding": [ { @@ -6574,10 +6575,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.12", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", - "@csstools/media-query-list-parser": "^2.1.12" + "@csstools/cascade-layer-name-parser": "^1.0.11", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", + "@csstools/media-query-list-parser": "^2.1.11" }, "engines": { "node": "^14 || ^16 || >=18" @@ -6587,9 +6588,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "13.3.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.11.tgz", - "integrity": "sha512-CAIgz03I/GMhVbAKIi3u3P8j5JY2KHl0TlePcfUX3OUy8t0ynnWvyJaS1D92pEAw1LjmeKWi7+aIU0s53iYdOQ==", + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.10.tgz", + "integrity": "sha512-ejaalIpl7p0k0L5ngIZ86AZGmp3m1KdeOCbSQTK4gQcB1ncaoPTHorw206+tsZRIhIDYvh5ZButEje6740YDXw==", "dev": true, "funding": [ { @@ -6602,9 +6603,9 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.12", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/cascade-layer-name-parser": "^1.0.11", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/utilities": "^1.0.0", "postcss-value-parser": "^4.2.0" }, @@ -6616,9 +6617,9 @@ } }, "node_modules/postcss-custom-selectors": { - "version": "7.1.11", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.11.tgz", - "integrity": "sha512-IoGprXOueDJL5t3ZuWR+QzPpmrQCFNhvoICsg0vDSehGwWNG0YV/Z4A+zouGRonC7NJThoV+A8A74IEMqMQUQw==", + "version": "7.1.10", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.10.tgz", + "integrity": "sha512-bV/6+IExyT2J4kMzX6c+ZMlN1xDfjcC4ePr1ywKezcTgwgUn11qQN3jdzFBpo8Dk1K7vO/OYOwMb5AtJP4JZcg==", "dev": true, "funding": [ { @@ -6631,10 +6632,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.12", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", - "postcss-selector-parser": "^6.1.0" + "@csstools/cascade-layer-name-parser": "^1.0.11", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", + "postcss-selector-parser": "^6.0.13" }, "engines": { "node": "^14 || ^16 || >=18" @@ -6829,9 +6830,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "6.0.17", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.17.tgz", - "integrity": "sha512-QzjC6/3J6XKZzHGuUKhWNvlDMfWo+08dQOfQj4vWQdpZFdOxCh9QCR4w4XbV68EkdzywJie1mcm81jwFyV0+kg==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.16.tgz", + "integrity": "sha512-QWv0VxfjgIl8jBR/wuQcm/o31jn4P/LwzYuVKzNQoO5t7HPcU0d3RfWUiDrHN3frmSv+YYZppr3P81tKFTDyqg==", "dev": true, "funding": [ { @@ -6844,9 +6845,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.3", - "@csstools/css-parser-algorithms": "^2.7.0", - "@csstools/css-tokenizer": "^2.3.2", + "@csstools/css-color-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", "@csstools/postcss-progressive-custom-properties": "^3.2.0", "@csstools/utilities": "^1.0.0" }, @@ -6993,9 +6994,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "9.5.15", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.5.15.tgz", - "integrity": "sha512-z/2akOVQChOGAdzaUR4pQrDOM3xGZc5/k4THHWyREbWAfngaJATA2SkEQMkiyV5Y/EoSwE0nt0IiaIs6CMmxfQ==", + "version": "9.5.14", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.5.14.tgz", + "integrity": "sha512-gTMi+3kENN/mN+K59aR+vEOjlkujTmmXJcM9rnAqGh9Y/euQ/ypdp9rd8mO1eoIjAD8vNS15+xbkBxoi+65BqQ==", "dev": true, "funding": [ { @@ -7009,48 +7010,48 @@ ], "dependencies": { "@csstools/postcss-cascade-layers": "^4.0.6", - "@csstools/postcss-color-function": "^3.0.17", - "@csstools/postcss-color-mix-function": "^2.0.17", - "@csstools/postcss-exponential-functions": "^1.0.8", + "@csstools/postcss-color-function": "^3.0.16", + "@csstools/postcss-color-mix-function": "^2.0.16", + "@csstools/postcss-exponential-functions": "^1.0.7", "@csstools/postcss-font-format-keywords": "^3.0.2", - "@csstools/postcss-gamut-mapping": "^1.0.10", - "@csstools/postcss-gradients-interpolation-method": "^4.0.18", - "@csstools/postcss-hwb-function": "^3.0.16", + "@csstools/postcss-gamut-mapping": "^1.0.9", + "@csstools/postcss-gradients-interpolation-method": "^4.0.17", + "@csstools/postcss-hwb-function": "^3.0.15", "@csstools/postcss-ic-unit": "^3.0.6", "@csstools/postcss-initial": "^1.0.1", "@csstools/postcss-is-pseudo-class": "^4.0.8", - "@csstools/postcss-light-dark-function": "^1.0.6", + "@csstools/postcss-light-dark-function": "^1.0.5", "@csstools/postcss-logical-float-and-clear": "^2.0.1", "@csstools/postcss-logical-overflow": "^1.0.1", "@csstools/postcss-logical-overscroll-behavior": "^1.0.1", "@csstools/postcss-logical-resize": "^2.0.1", - "@csstools/postcss-logical-viewport-units": "^2.0.10", - "@csstools/postcss-media-minmax": "^1.1.7", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.10", + "@csstools/postcss-logical-viewport-units": "^2.0.9", + "@csstools/postcss-media-minmax": "^1.1.6", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.9", "@csstools/postcss-nested-calc": "^3.0.2", "@csstools/postcss-normalize-display-values": "^3.0.2", - "@csstools/postcss-oklab-function": "^3.0.17", + "@csstools/postcss-oklab-function": "^3.0.16", "@csstools/postcss-progressive-custom-properties": "^3.2.0", - "@csstools/postcss-relative-color-syntax": "^2.0.17", + "@csstools/postcss-relative-color-syntax": "^2.0.16", "@csstools/postcss-scope-pseudo-class": "^3.0.1", - "@csstools/postcss-stepped-value-functions": "^3.0.9", - "@csstools/postcss-text-decoration-shorthand": "^3.0.7", - "@csstools/postcss-trigonometric-functions": "^3.0.9", + "@csstools/postcss-stepped-value-functions": "^3.0.8", + "@csstools/postcss-text-decoration-shorthand": "^3.0.6", + "@csstools/postcss-trigonometric-functions": "^3.0.8", "@csstools/postcss-unset-value": "^3.0.1", "autoprefixer": "^10.4.19", - "browserslist": "^4.23.1", + "browserslist": "^4.22.3", "css-blank-pseudo": "^6.0.2", "css-has-pseudo": "^6.0.5", "css-prefers-color-scheme": "^9.0.1", "cssdb": "^8.0.0", "postcss-attribute-case-insensitive": "^6.0.3", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^6.0.12", + "postcss-color-functional-notation": "^6.0.11", "postcss-color-hex-alpha": "^9.0.4", "postcss-color-rebeccapurple": "^9.0.3", - "postcss-custom-media": "^10.0.7", - "postcss-custom-properties": "^13.3.11", - "postcss-custom-selectors": "^7.1.11", + "postcss-custom-media": "^10.0.6", + "postcss-custom-properties": "^13.3.10", + "postcss-custom-selectors": "^7.1.10", "postcss-dir-pseudo-class": "^8.0.1", "postcss-double-position-gradients": "^5.0.6", "postcss-focus-visible": "^9.0.1", @@ -7058,7 +7059,7 @@ "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^5.0.1", "postcss-image-set-function": "^6.0.3", - "postcss-lab-function": "^6.0.17", + "postcss-lab-function": "^6.0.16", "postcss-logical": "^7.0.1", "postcss-nesting": "^12.1.5", "postcss-opacity-percentage": "^2.0.0", @@ -7157,9 +7158,9 @@ "license": "MIT" }, "node_modules/preact": { - "version": "10.22.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.1.tgz", - "integrity": "sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.0.tgz", + "integrity": "sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -8246,9 +8247,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -8264,9 +8265,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -8376,13 +8378,13 @@ } }, "node_modules/vite": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", - "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", + "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.39", + "postcss": "^8.4.38", "rollup": "^4.13.0" }, "bin": { diff --git a/package.json b/package.json index 957f0528c..e85bfc472 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.1.0", - "preact": "~10.22.1", + "preact": "~10.22.0", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.0", "react-intersection-observer": "~9.10.3", @@ -50,12 +50,12 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.0", - "@preact/preset-vite": "~2.8.3", - "postcss": "~8.4.39", + "@preact/preset-vite": "~2.8.2", + "postcss": "~8.4.38", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~9.5.15", + "postcss-preset-env": "~9.5.14", "twitter-text": "~3.1.0", - "vite": "~5.3.3", + "vite": "~5.3.1", "vite-plugin-generate-file": "~0.1.1", "vite-plugin-html-config": "~1.0.11", "vite-plugin-pwa": "~0.20.0", From f26dbeb79a3ffc7ccacf546b7501eda7749f0f06 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Sat, 6 Jul 2024 09:47:28 +0800 Subject: [PATCH 06/20] Fix more cloaking business --- src/cloak-mode.css | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/cloak-mode.css b/src/cloak-mode.css index 4ca29ecc5..2b9a0b0b8 100644 --- a/src/cloak-mode.css +++ b/src/cloak-mode.css @@ -9,14 +9,17 @@ body.cloak, .status .content-container, .status .content-container *, .status .content-compact > *, + .account-container .actions small, .account-container :is(header, main > *:not(.actions)), .account-container :is(header, main > *:not(.actions)) *, - .header-double-lines, + .header-double-lines *, .account-block, .catchup-filters .filter-author *, .post-peek-html *, .post-peek-content > *, - .request-notifications-account * { + .request-notifications-account *, + .status.compact-thread *, + .status .content-compact { text-decoration-thickness: 1.1em; text-decoration-line: line-through; /* text-rendering: optimizeSpeed; */ @@ -50,10 +53,19 @@ body.cloak, body.cloak, .cloak { + .header-double-lines *, + .account-container .profile-metadata b, + .account-container .actions small, + .account-container .stats *, .media-container figcaption, .media-container figcaption > *, .catchup-filters .filter-author *, .request-notifications-account * { color: var(--text-color) !important; } + + .account-container .actions small, + .status .content-compact { + background-color: currentColor !important; + } } From 9ea7a1f4db8d189f5b2e3862875d4153bfb928f6 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Sat, 6 Jul 2024 09:47:42 +0800 Subject: [PATCH 07/20] Use onClose for this --- src/components/compose.jsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/compose.jsx b/src/components/compose.jsx index de4cb6987..77bd451d8 100644 --- a/src/components/compose.jsx +++ b/src/components/compose.jsx @@ -2316,10 +2316,8 @@ function MediaAttachment({
{showModal && ( { - if (e.target === e.currentTarget) { - setShowModal(false); - } + onClose={() => { + setShowModal(false); }} >
From 180a23f1163e088dbdb929670b764fdd9528b40d Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Sun, 7 Jul 2024 22:56:24 +0800 Subject: [PATCH 08/20] Fix wrong exceeded chars highlighting --- src/components/compose.jsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/compose.jsx b/src/components/compose.jsx index 77bd451d8..545765c84 100644 --- a/src/components/compose.jsx +++ b/src/components/compose.jsx @@ -147,23 +147,22 @@ const SCAN_RE = new RegExp( ); const segmenter = new Intl.Segmenter(); -function highlightText(text, { maxCharacters = Infinity }) { - // Accept text string, return formatted HTML string - // Escape all HTML special characters - let html = text +function escapeHTML(text) { + return text .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); - +} +function highlightText(text, { maxCharacters = Infinity }) { // Exceeded characters limit const { composerCharacterCount } = states; if (composerCharacterCount > maxCharacters) { // Highlight exceeded characters let withinLimitHTML = '', exceedLimitHTML = ''; - const htmlSegments = segmenter.segment(html); + const htmlSegments = segmenter.segment(text); for (const { segment, index } of htmlSegments) { if (index < maxCharacters) { withinLimitHTML += segment; @@ -174,13 +173,13 @@ function highlightText(text, { maxCharacters = Infinity }) { if (exceedLimitHTML) { exceedLimitHTML = '' + - exceedLimitHTML + + escapeHTML(exceedLimitHTML) + ''; } - return withinLimitHTML + exceedLimitHTML; + return escapeHTML(withinLimitHTML) + exceedLimitHTML; } - return html + return escapeHTML(text) .replace(urlRegexObj, '$2$3') // URLs .replace(MENTION_RE, '$1$2') // Mentions .replace(HASHTAG_RE, '$1$2') // Hashtags From 418895e1c30472b13449e615e203983e24979f8e Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Mon, 8 Jul 2024 17:40:16 +0800 Subject: [PATCH 09/20] Another attempt: upgrade dependencies --- package-lock.json | 521 ++++++++++++++++++++++++---------------------- package.json | 10 +- vite.config.js | 9 +- 3 files changed, 286 insertions(+), 254 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4cc3cc0be..8adc0a03e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.1.0", - "preact": "~10.22.0", + "preact": "~10.22.1", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.0", "react-intersection-observer": "~9.10.3", @@ -47,12 +47,12 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.0", - "@preact/preset-vite": "~2.8.2", - "postcss": "~8.4.38", + "@preact/preset-vite": "~2.8.3", + "postcss": "~8.4.39", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~9.5.14", + "postcss-preset-env": "~9.6.0", "twitter-text": "~3.1.0", - "vite": "~5.3.1", + "vite": "~5.3.3", "vite-plugin-generate-file": "~0.1.1", "vite-plugin-html-config": "~1.0.11", "vite-plugin-pwa": "~0.20.0", @@ -1858,9 +1858,9 @@ } }, "node_modules/@csstools/cascade-layer-name-parser": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.11.tgz", - "integrity": "sha512-yhsonEAhaWRQvHFYhSzOUobH2Ev++fMci+ppFRagw0qVSPlcPV4FnNmlwpM/b2BM10ZeMRkVV4So6YRswD0O0w==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.13.tgz", + "integrity": "sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng==", "dev": true, "funding": [ { @@ -1876,14 +1876,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/color-helpers": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-4.2.0.tgz", - "integrity": "sha512-hJJrSBzbfGxUsaR6X4Bzd/FLx0F1ulKnR5ljY9AiXCtsR+H+zSWQDFWlKES1BRaVZTDHLpIIHS9K2o0h+JLlrg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-4.2.1.tgz", + "integrity": "sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==", "dev": true, "funding": [ { @@ -1900,9 +1900,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.2.tgz", - "integrity": "sha512-0owrl7AruDRKAxoSIW8XzJdz7GnuW3AOj4rYLfmXsoKIX2ZZzttzGXoiC8n8V08X7wIBlEWWVB4C8fAN18+I6Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.4.tgz", + "integrity": "sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q==", "dev": true, "funding": [ { @@ -1918,14 +1918,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/css-color-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-2.0.2.tgz", - "integrity": "sha512-Agx2YmxTcZ7TfB7KNZQ+iekaxbWSdblvtA35aTwE3KfuYyjOlCg3P4KGGdQF/cjm1pHWVSBo5duF/BRfZ8s07A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-2.0.4.tgz", + "integrity": "sha512-yUb0mk/k2yVNcQvRmd9uikpu6D0aamFJGgU++5d0lng6ucaJkhKyhDCQCj9rVuQYntvFQKqyU6UfTPQWU2UkXQ==", "dev": true, "funding": [ { @@ -1938,21 +1938,21 @@ } ], "dependencies": { - "@csstools/color-helpers": "^4.2.0", - "@csstools/css-calc": "^1.2.2" + "@csstools/color-helpers": "^4.2.1", + "@csstools/css-calc": "^1.2.4" }, "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", - "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", + "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", "dev": true, "funding": [ { @@ -1968,13 +1968,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", - "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", + "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", "dev": true, "funding": [ { @@ -1991,9 +1991,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", - "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", + "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", "dev": true, "funding": [ { @@ -2009,8 +2009,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/postcss-cascade-layers": { @@ -2040,9 +2040,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.16.tgz", - "integrity": "sha512-KtmXfckANSKsLBoTQCzggvKft1cmmmDKYjFO4yVlB23nWUgGInVBTE9T5JLmH29NNdTWSEPLWPUxoQ6XiIEn2Q==", + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.19.tgz", + "integrity": "sha512-d1OHEXyYGe21G3q88LezWWx31ImEDdmINNDy0LyLNN9ChgN2bPxoubUPiHf9KmwypBMaHmNcMuA/WZOKdZk/Lg==", "dev": true, "funding": [ { @@ -2055,10 +2055,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2069,9 +2069,38 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.16.tgz", - "integrity": "sha512-BJnD1M5Pdypl1cJuwGuzVC52PqgzaObsDLu34jgf+QU7daVFqz432PvpqvXTmfTSNt4OckOT1QIzWexEFlDNXw==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.19.tgz", + "integrity": "sha512-mLvQlMX+keRYr16AuvuV8WYKUwF+D0DiCqlBdvhQ0KYEtcQl9/is9Ssg7RcIys8x0jIn2h1zstS4izckdZj9wg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", + "@csstools/utilities": "^1.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-1.0.0.tgz", + "integrity": "sha512-SkHdj7EMM/57GVvSxSELpUg7zb5eAndBeuvGwFzYtU06/QXJ/h9fuK7wO5suteJzGhm3GDF/EWPCdWV2h1IGHQ==", "dev": true, "funding": [ { @@ -2084,10 +2113,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2098,9 +2126,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.7.tgz", - "integrity": "sha512-9usBPQX74OhiF/VuaVrp44UAPzqbKNyoaxEa6tbEXiFp+OAm3yB/TLRKyPUWg5tvvHGCduGJVdJJB3w8c8NBtA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.9.tgz", + "integrity": "sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ==", "dev": true, "funding": [ { @@ -2113,9 +2141,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-calc": "^1.2.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2151,9 +2179,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.9.tgz", - "integrity": "sha512-JmOeiBJj1RJriAkr+aLBaiYUpEqdNOIo3ERQ5a4uNzy18upzrQ6tz7m2Vt1GQpJ62zQj7rC5PjAhCoZCoyE31g==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.11.tgz", + "integrity": "sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g==", "dev": true, "funding": [ { @@ -2166,9 +2194,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2178,9 +2206,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.17.tgz", - "integrity": "sha512-qSNIqzLPKd2SadfWwHZv42lDRyYlLaM+Vx5rRIsnYCZbQxzFfe1XAwssrcCsHgba5bA6bi5oDoFCx0W+PRCpfw==", + "version": "4.0.20", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.20.tgz", + "integrity": "sha512-ZFl2JBHano6R20KB5ZrB8KdPM2pVK0u+/3cGQ2T8VubJq982I2LSOvQ4/VtxkAXjkPkk1rXt4AD1ni7UjTZ1Og==", "dev": true, "funding": [ { @@ -2193,10 +2221,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2207,9 +2235,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.15.tgz", - "integrity": "sha512-l34fRiZ7o5+pULv7OplXniBTU4TuKYNNOv0abuvUanddWGSy3+YHlMKUSgcVFo0d1DorxPAhJSTCrugl+4OmMQ==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.18.tgz", + "integrity": "sha512-3ifnLltR5C7zrJ+g18caxkvSRnu9jBBXCYgnBznRjxm6gQJGnnCO9H6toHfywNdNr/qkiVf2dymERPQLDnjLRQ==", "dev": true, "funding": [ { @@ -2222,10 +2250,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2236,9 +2264,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.6.tgz", - "integrity": "sha512-fHaU9C/sZPauXMrzPitZ/xbACbvxbkPpHoUgB9Kw5evtsBWdVkVrajOyiT9qX7/c+G1yjApoQjP1fQatldsy9w==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.7.tgz", + "integrity": "sha512-YoaNHH2wNZD+c+rHV02l4xQuDpfR8MaL7hD45iJyr+USwvr0LOheeytJ6rq8FN6hXBmEeoJBeXXgGmM8fkhH4g==", "dev": true, "funding": [ { @@ -2251,7 +2279,7 @@ } ], "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2311,9 +2339,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.5.tgz", - "integrity": "sha512-kKM9dtEaVmSTb3scL2pgef62KyWv6SK19JiAnCCuiDhlRE6PADKzaPPBXmP3qj4IEgIH+cQhdEosB0eroU6Fnw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.8.tgz", + "integrity": "sha512-x0UtpCyVnERsplUeoaY6nEtp1HxTf4lJjoK/ULEm40DraqFfUdUSt76yoOyX5rGY6eeOUOkurHyYlFHVKv/pew==", "dev": true, "funding": [ { @@ -2326,9 +2354,9 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2430,9 +2458,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.9.tgz", - "integrity": "sha512-iBBJuExgHwedFH9AqNOHWzZFgYnt17zhu1qWjmSihu1P5pw0lIG9q5t3uIgJJFDNmYoOGfBKan66z9u1QH8yBQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.11.tgz", + "integrity": "sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg==", "dev": true, "funding": [ { @@ -2445,7 +2473,7 @@ } ], "dependencies": { - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/css-tokenizer": "^2.4.1", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2456,9 +2484,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.6.tgz", - "integrity": "sha512-bc0frf2Lod53j6wEHVsaVElfvCf6uhc96v99M/wUfer4MmNYfO3YLx1kFuB8xXvb0AXiWx4fohCJqemHV3bfRg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.8.tgz", + "integrity": "sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w==", "dev": true, "funding": [ { @@ -2471,10 +2499,10 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11" + "@csstools/css-calc": "^1.2.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/media-query-list-parser": "^2.1.13" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2484,9 +2512,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.9.tgz", - "integrity": "sha512-PR0s3tFSxPoKoPLoKuiZuYhwQC5bQxq/gFfywX2u/kh8rMzesARPZYKxE71I3jHWi6KDHGZl9Xb5xcFPwtvLiQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.11.tgz", + "integrity": "sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA==", "dev": true, "funding": [ { @@ -2499,9 +2527,9 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/media-query-list-parser": "^2.1.13" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2562,9 +2590,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.16.tgz", - "integrity": "sha512-zm8nND+EraZrmbO4mgcT8FrJrAQUfWNfMmbV5uTCpWtAcO5ycX3E3bO8T1TjczKYRxC5QMM/91n9YExYCF4Mvw==", + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.19.tgz", + "integrity": "sha512-e3JxXmxjU3jpU7TzZrsNqSX4OHByRC3XjItV3Ieo/JEQmLg5rdOL4lkv/1vp27gXemzfNt44F42k/pn0FpE21Q==", "dev": true, "funding": [ { @@ -2577,10 +2605,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2591,9 +2619,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.2.0.tgz", - "integrity": "sha512-BZlirVxCRgKlE7yVme+Xvif72eTn1MYXj8oZ4Knb+jwaH4u3AN1DjbhM7j86RP5vvuAOexJ4JwfifYYKWMN/QQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.3.0.tgz", + "integrity": "sha512-W2oV01phnILaRGYPmGFlL2MT/OgYjQDrL9sFlbdikMFi6oQkFki9B86XqEWR7HCsTZFVq7dbzr/o71B75TKkGg==", "dev": true, "funding": [ { @@ -2616,9 +2644,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.16.tgz", - "integrity": "sha512-TSM8fVqJkT8JZDranZPnkpxjU/Q1sNR192lXMND+EcKOUjYa6uYpGSfHgjnWjCRiBSciettS+sL7y9wmnas7qQ==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.19.tgz", + "integrity": "sha512-MxUMSNvio1WwuS6WRLlQuv6nNPXwIWUFzBBAvL/tBdWfiKjiJnAa6eSSN5gtaacSqUkQ/Ce5Z1OzLRfeaWhADA==", "dev": true, "funding": [ { @@ -2631,10 +2659,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -2670,9 +2698,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.8.tgz", - "integrity": "sha512-X76+thsvsmH/SkqVbN+vjeFKe1ABGLRx8/Wl68QTb/zvJWdzgx5S/nbszZP5O3nTRc5eI8NxIOrQUiy30fR+0g==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.10.tgz", + "integrity": "sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g==", "dev": true, "funding": [ { @@ -2685,9 +2713,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-calc": "^1.2.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2697,9 +2725,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.6.tgz", - "integrity": "sha512-Q8HEu4AEiwNVZBD6+DpQ8M9SajpMow4+WtmndWIAv8qxDtDYL4JK1xXWkhOGk28PrcJawOvkrEZ8Ri59UN1TJw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.7.tgz", + "integrity": "sha512-+cptcsM5r45jntU6VjotnkC9GteFR7BQBfZ5oW7inLCxj7AfLGAzMbZ60hKTP13AULVZBdxky0P8um0IBfLHVA==", "dev": true, "funding": [ { @@ -2712,7 +2740,7 @@ } ], "dependencies": { - "@csstools/color-helpers": "^4.2.0", + "@csstools/color-helpers": "^4.2.1", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -2723,9 +2751,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.8.tgz", - "integrity": "sha512-zEzyGriPqoIYFgHJqWNy8bmoxjM4+ONyTap1ZzQK/Lll/VsCYvx0IckB33W/u89uLSVeeB8xC7uTrkoQ7ogKyQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.10.tgz", + "integrity": "sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw==", "dev": true, "funding": [ { @@ -2738,9 +2766,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-calc": "^1.2.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3457,11 +3485,12 @@ } }, "node_modules/@preact/preset-vite": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.2.tgz", - "integrity": "sha512-m3tl+M8IO8jgiHnk+7LSTFl8axdPXloewi7iGVLdmCwf34XOzEUur0bZVewW4DUbUipFjTS2CXu27+5f/oexBA==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.3.tgz", + "integrity": "sha512-IT4+IV3D4lIyoDrp4FUfx4dT2yW/5KIl2MXAsqqItGTbz1xUhtSyP9nS2kLXNnhLG4I2Nku/X+vKFMmRG+oMDA==", "dev": true, "dependencies": { + "@babel/code-frame": "^7.22.13", "@babel/plugin-transform-react-jsx": "^7.22.15", "@babel/plugin-transform-react-jsx-development": "^7.22.5", "@prefresh/vite": "^2.4.1", @@ -4195,9 +4224,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, "funding": [ { @@ -4214,10 +4243,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "update-browserslist-db": "^1.0.16" }, "bin": { "browserslist": "cli.js" @@ -4275,9 +4304,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001605", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", - "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", + "version": "1.0.30001640", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", + "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", "dev": true, "funding": [ { @@ -4534,9 +4563,9 @@ } }, "node_modules/cssdb": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.0.0.tgz", - "integrity": "sha512-hfpm8VXc7/dhcEWpLvKDLwImOSk1sa2DxL36OEiY/4h2MGfKjPYIMZo4hnEEl+TCJr2GwcX46jF5TafRASDe9w==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.1.0.tgz", + "integrity": "sha512-BQN57lfS4dYt2iL0LgyrlDbefZKEtUyrO8rbzrbGrqBk6OoyNTQLF+porY9DrpDBjLo4NEvj2IJttC7vf3x+Ew==", "dev": true, "funding": [ { @@ -4791,9 +4820,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.677", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.677.tgz", - "integrity": "sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==", + "version": "1.4.816", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", + "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", "dev": true }, "node_modules/entities": { @@ -4971,11 +5000,10 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -6381,11 +6409,10 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "license": "ISC" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -6410,9 +6437,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "dev": true, "funding": [ { @@ -6430,7 +6457,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -6479,9 +6506,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.11.tgz", - "integrity": "sha512-gJ+hAtAsgBF4w7eh28Pg7EA60lx7vE5xO/B/yZawaI6FYHky+5avA9YSe73nJHnAMEVFpCMeJc6Wts5g+niksg==", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.14.tgz", + "integrity": "sha512-dNUX+UH4dAozZ8uMHZ3CtCNYw8fyFAmqqdcyxMr7PEdM9jLXV19YscoYO0F25KqZYhmtWKQ+4tKrIZQrwzwg7A==", "dev": true, "funding": [ { @@ -6494,10 +6521,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -6560,9 +6587,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.6.tgz", - "integrity": "sha512-BjihQoIO4Wjqv9fQNExSJIim8UAmkhLxuJnhJsLTRFSba1y1MhxkJK5awsM//6JJ+/Tu5QUxf624RQAvKHv6SA==", + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.8.tgz", + "integrity": "sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ==", "dev": true, "funding": [ { @@ -6575,10 +6602,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.11", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11" + "@csstools/cascade-layer-name-parser": "^1.0.13", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/media-query-list-parser": "^2.1.13" }, "engines": { "node": "^14 || ^16 || >=18" @@ -6588,9 +6615,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.10.tgz", - "integrity": "sha512-ejaalIpl7p0k0L5ngIZ86AZGmp3m1KdeOCbSQTK4gQcB1ncaoPTHorw206+tsZRIhIDYvh5ZButEje6740YDXw==", + "version": "13.3.12", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.12.tgz", + "integrity": "sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==", "dev": true, "funding": [ { @@ -6603,9 +6630,9 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.11", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", + "@csstools/cascade-layer-name-parser": "^1.0.13", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", "@csstools/utilities": "^1.0.0", "postcss-value-parser": "^4.2.0" }, @@ -6617,9 +6644,9 @@ } }, "node_modules/postcss-custom-selectors": { - "version": "7.1.10", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.10.tgz", - "integrity": "sha512-bV/6+IExyT2J4kMzX6c+ZMlN1xDfjcC4ePr1ywKezcTgwgUn11qQN3jdzFBpo8Dk1K7vO/OYOwMb5AtJP4JZcg==", + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.12.tgz", + "integrity": "sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g==", "dev": true, "funding": [ { @@ -6632,10 +6659,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.11", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "postcss-selector-parser": "^6.0.13" + "@csstools/cascade-layer-name-parser": "^1.0.13", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "postcss-selector-parser": "^6.1.0" }, "engines": { "node": "^14 || ^16 || >=18" @@ -6695,9 +6722,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.6.tgz", - "integrity": "sha512-QJ+089FKMaqDxOhhIHsJrh4IP7h4PIHNC5jZP5PMmnfUScNu8Hji2lskqpFWCvu+5sj+2EJFyzKd13sLEWOZmQ==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.7.tgz", + "integrity": "sha512-1xEhjV9u1s4l3iP5lRt1zvMjI/ya8492o9l/ivcxHhkO3nOz16moC4JpMxDUGrOs4R3hX+KWT7gKoV842cwRgg==", "dev": true, "funding": [ { @@ -6710,7 +6737,7 @@ } ], "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0", "postcss-value-parser": "^4.2.0" }, @@ -6830,9 +6857,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.16.tgz", - "integrity": "sha512-QWv0VxfjgIl8jBR/wuQcm/o31jn4P/LwzYuVKzNQoO5t7HPcU0d3RfWUiDrHN3frmSv+YYZppr3P81tKFTDyqg==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.19.tgz", + "integrity": "sha512-vwln/mgvFrotJuGV8GFhpAOu9iGf3pvTBr6dLPDmUcqVD5OsQpEFyQMAFTxSxWXGEzBj6ld4pZ/9GDfEpXvo0g==", "dev": true, "funding": [ { @@ -6845,10 +6872,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^2.0.2", - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", + "@csstools/css-color-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", "@csstools/utilities": "^1.0.0" }, "engines": { @@ -6994,9 +7021,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "9.5.14", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.5.14.tgz", - "integrity": "sha512-gTMi+3kENN/mN+K59aR+vEOjlkujTmmXJcM9rnAqGh9Y/euQ/ypdp9rd8mO1eoIjAD8vNS15+xbkBxoi+65BqQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.6.0.tgz", + "integrity": "sha512-Lxfk4RYjUdwPCYkc321QMdgtdCP34AeI94z+/8kVmqnTIlD4bMRQeGcMZgwz8BxHrzQiFXYIR5d7k/9JMs2MEA==", "dev": true, "funding": [ { @@ -7010,56 +7037,57 @@ ], "dependencies": { "@csstools/postcss-cascade-layers": "^4.0.6", - "@csstools/postcss-color-function": "^3.0.16", - "@csstools/postcss-color-mix-function": "^2.0.16", - "@csstools/postcss-exponential-functions": "^1.0.7", + "@csstools/postcss-color-function": "^3.0.19", + "@csstools/postcss-color-mix-function": "^2.0.19", + "@csstools/postcss-content-alt-text": "^1.0.0", + "@csstools/postcss-exponential-functions": "^1.0.9", "@csstools/postcss-font-format-keywords": "^3.0.2", - "@csstools/postcss-gamut-mapping": "^1.0.9", - "@csstools/postcss-gradients-interpolation-method": "^4.0.17", - "@csstools/postcss-hwb-function": "^3.0.15", - "@csstools/postcss-ic-unit": "^3.0.6", + "@csstools/postcss-gamut-mapping": "^1.0.11", + "@csstools/postcss-gradients-interpolation-method": "^4.0.20", + "@csstools/postcss-hwb-function": "^3.0.18", + "@csstools/postcss-ic-unit": "^3.0.7", "@csstools/postcss-initial": "^1.0.1", "@csstools/postcss-is-pseudo-class": "^4.0.8", - "@csstools/postcss-light-dark-function": "^1.0.5", + "@csstools/postcss-light-dark-function": "^1.0.8", "@csstools/postcss-logical-float-and-clear": "^2.0.1", "@csstools/postcss-logical-overflow": "^1.0.1", "@csstools/postcss-logical-overscroll-behavior": "^1.0.1", "@csstools/postcss-logical-resize": "^2.0.1", - "@csstools/postcss-logical-viewport-units": "^2.0.9", - "@csstools/postcss-media-minmax": "^1.1.6", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.9", + "@csstools/postcss-logical-viewport-units": "^2.0.11", + "@csstools/postcss-media-minmax": "^1.1.8", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.11", "@csstools/postcss-nested-calc": "^3.0.2", "@csstools/postcss-normalize-display-values": "^3.0.2", - "@csstools/postcss-oklab-function": "^3.0.16", - "@csstools/postcss-progressive-custom-properties": "^3.2.0", - "@csstools/postcss-relative-color-syntax": "^2.0.16", + "@csstools/postcss-oklab-function": "^3.0.19", + "@csstools/postcss-progressive-custom-properties": "^3.3.0", + "@csstools/postcss-relative-color-syntax": "^2.0.19", "@csstools/postcss-scope-pseudo-class": "^3.0.1", - "@csstools/postcss-stepped-value-functions": "^3.0.8", - "@csstools/postcss-text-decoration-shorthand": "^3.0.6", - "@csstools/postcss-trigonometric-functions": "^3.0.8", + "@csstools/postcss-stepped-value-functions": "^3.0.10", + "@csstools/postcss-text-decoration-shorthand": "^3.0.7", + "@csstools/postcss-trigonometric-functions": "^3.0.10", "@csstools/postcss-unset-value": "^3.0.1", "autoprefixer": "^10.4.19", - "browserslist": "^4.22.3", + "browserslist": "^4.23.1", "css-blank-pseudo": "^6.0.2", "css-has-pseudo": "^6.0.5", "css-prefers-color-scheme": "^9.0.1", - "cssdb": "^8.0.0", + "cssdb": "^8.1.0", "postcss-attribute-case-insensitive": "^6.0.3", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^6.0.11", + "postcss-color-functional-notation": "^6.0.14", "postcss-color-hex-alpha": "^9.0.4", "postcss-color-rebeccapurple": "^9.0.3", - "postcss-custom-media": "^10.0.6", - "postcss-custom-properties": "^13.3.10", - "postcss-custom-selectors": "^7.1.10", + "postcss-custom-media": "^10.0.8", + "postcss-custom-properties": "^13.3.12", + "postcss-custom-selectors": "^7.1.12", "postcss-dir-pseudo-class": "^8.0.1", - "postcss-double-position-gradients": "^5.0.6", + "postcss-double-position-gradients": "^5.0.7", "postcss-focus-visible": "^9.0.1", "postcss-focus-within": "^8.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^5.0.1", "postcss-image-set-function": "^6.0.3", - "postcss-lab-function": "^6.0.16", + "postcss-lab-function": "^6.0.19", "postcss-logical": "^7.0.1", "postcss-nesting": "^12.1.5", "postcss-opacity-percentage": "^2.0.0", @@ -7158,9 +7186,9 @@ "license": "MIT" }, "node_modules/preact": { - "version": "10.22.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.0.tgz", - "integrity": "sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==", + "version": "10.22.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.1.tgz", + "integrity": "sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -8247,9 +8275,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -8265,10 +8293,9 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -8378,13 +8405,13 @@ } }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "rollup": "^4.13.0" }, "bin": { diff --git a/package.json b/package.json index e85bfc472..6a7a26ccd 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.1.0", - "preact": "~10.22.0", + "preact": "~10.22.1", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.0", "react-intersection-observer": "~9.10.3", @@ -50,12 +50,12 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.0", - "@preact/preset-vite": "~2.8.2", - "postcss": "~8.4.38", + "@preact/preset-vite": "~2.8.3", + "postcss": "~8.4.39", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~9.5.14", + "postcss-preset-env": "~9.6.0", "twitter-text": "~3.1.0", - "vite": "~5.3.1", + "vite": "~5.3.3", "vite-plugin-generate-file": "~0.1.1", "vite-plugin-html-config": "~1.0.11", "vite-plugin-pwa": "~0.20.0", diff --git a/vite.config.js b/vite.config.js index eb15508af..d9164dd2e 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,7 +1,8 @@ -import preact from '@preact/preset-vite'; import { execSync } from 'child_process'; import fs from 'fs'; import { resolve } from 'path'; + +import preact from '@preact/preset-vite'; import { uid } from 'uid/single'; import { defineConfig, loadEnv, splitVendorChunkPlugin } from 'vite'; import generateFile from 'vite-plugin-generate-file'; @@ -51,7 +52,11 @@ export default defineConfig({ preprocessorMaxWorkers: 1, }, plugins: [ - preact(), + preact({ + // Force use Babel instead of ESBuild due to this change: https://github.com/preactjs/preset-vite/pull/114 + // Else, a bug will happen with importing variables from import.meta.env + babel: {}, + }), splitVendorChunkPlugin(), removeConsole({ includes: ['log', 'debug', 'info', 'warn', 'error'], From 2a91c005a1f4ff671d06638704c665779b9c33ef Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Fri, 12 Jul 2024 13:34:57 +0800 Subject: [PATCH 10/20] Test fix self-recursive quote posts --- src/utils/states.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/utils/states.js b/src/utils/states.js index d7381a0f3..2b80adb77 100644 --- a/src/utils/states.js +++ b/src/utils/states.js @@ -295,6 +295,16 @@ export function unfurlStatus(status, instance) { unfurlMastodonLink(currentInstance, a.href).then((result) => { if (!result) return; if (!sKey) return; + if (result?.id === status.id) { + // Unfurled post is the post itself??? + // Scenario: + // 1. Post with [URL] + // 2. Unfurl [URL], API returns the same post that contains [URL] + // 3. 💥 Recursive quote posts 💥 + // Note: Mastodon search doesn't return posts that contains [URL], it's actually used to *resolve* the URL + // But some non-Mastodon servers, their search API will eventually search posts that contains [URL] and return them + return; + } if (!Array.isArray(states.statusQuotes[sKey])) { states.statusQuotes[sKey] = []; } From 57d6889826a485371c007155d2dc1347757bd000 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Fri, 12 Jul 2024 13:35:43 +0800 Subject: [PATCH 11/20] Test memoize Media --- src/components/media.jsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/media.jsx b/src/components/media.jsx index 2e0db0478..2ca4acc1f 100644 --- a/src/components/media.jsx +++ b/src/components/media.jsx @@ -1,5 +1,6 @@ import { getBlurHashAverageColor } from 'fast-blurhash'; import { Fragment } from 'preact'; +import { memo } from 'preact/compat'; import { useCallback, useLayoutEffect, @@ -676,4 +677,14 @@ function getURLObj(url) { return URL.parse(url, location.origin); } -export default Media; +export default memo(Media, (oldProps, newProps) => { + const oldMedia = oldProps.media || {}; + const newMedia = newProps.media || {}; + + return ( + oldMedia?.id === newMedia?.id && + oldMedia.url === newMedia.url && + oldProps.to === newProps.to && + oldProps.class === newProps.class + ); +}); From a2f76382572d9dfdd18ef202273ecb8bf255ccad Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Fri, 12 Jul 2024 18:57:48 +0800 Subject: [PATCH 12/20] Experimental opt-in server-side grouped notifications --- src/components/notification.jsx | 74 +++++++++++++++++++++++-- src/data/features.json | 3 +- src/index.css | 8 ++- src/pages/home.jsx | 11 ++-- src/pages/notifications.jsx | 52 +++++++++++++++-- src/pages/settings.jsx | 22 ++++++++ src/utils/group-notifications.jsx | 92 ++++++++++++++++++++++++++++++- src/utils/states.js | 6 ++ 8 files changed, 246 insertions(+), 22 deletions(-) diff --git a/src/components/notification.jsx b/src/components/notification.jsx index cb2180c7f..cfe25022b 100644 --- a/src/components/notification.jsx +++ b/src/components/notification.jsx @@ -149,6 +149,9 @@ function Notification({ moderation_warning, _accounts, _statuses, + // Grouped notification + sampleAccounts, + notificationsCount, } = notification; let { type } = notification; @@ -167,12 +170,14 @@ function Notification({ let favsCount = 0; let reblogsCount = 0; if (type === 'favourite+reblog') { - for (const account of _accounts) { - if (account._types?.includes('favourite')) { - favsCount++; - } - if (account._types?.includes('reblog')) { - reblogsCount++; + if (_accounts) { + for (const account of _accounts) { + if (account._types?.includes('favourite')) { + favsCount++; + } + if (account._types?.includes('reblog')) { + reblogsCount++; + } } } if (!reblogsCount && favsCount) type = 'favourite'; @@ -296,6 +301,15 @@ function Notification({ people {' '} + ) : notificationsCount > 1 ? ( + <> + + + {shortenNumber(notificationsCount)} + {' '} + people + {' '} + ) : ( account && ( <> @@ -405,6 +419,54 @@ function Notification({

)} + {!_accounts?.length && sampleAccounts?.length > 1 && ( +

+ {sampleAccounts.map((account) => ( + +

{' '} + + ))} + {notificationsCount > sampleAccounts.length && ( + + +{notificationsCount - sampleAccounts.length} + + + )} +

+ )} {_statuses?.length > 1 && (
    {_statuses.map((status) => ( diff --git a/src/data/features.json b/src/data/features.json index bb8c2d377..6ff4bb1ef 100644 --- a/src/data/features.json +++ b/src/data/features.json @@ -3,5 +3,6 @@ "@mastodon/list-exclusive": ">=4.2", "@mastodon/filtered-notifications": "~4.3 || >=4.3", "@mastodon/fetch-multiple-statuses": "~4.3 || >=4.3", - "@mastodon/trending-link-posts": "~4.3 || >=4.3" + "@mastodon/trending-link-posts": "~4.3 || >=4.3", + "@mastodon/grouped-notifications": "~4.3 || >=4.3" } diff --git a/src/index.css b/src/index.css index 35f75a4e6..b40c06df4 100644 --- a/src/index.css +++ b/src/index.css @@ -378,11 +378,17 @@ textarea:disabled { width: 100%; } -button.small { +:is(button, .button).small { font-size: 90%; padding: 4px 8px; } +.button.centered { + display: inline-flex; + justify-content: center; + align-items: center; +} + select.plain { border: 0; background-color: transparent; diff --git a/src/pages/home.jsx b/src/pages/home.jsx index 36a453523..75ac78c07 100644 --- a/src/pages/home.jsx +++ b/src/pages/home.jsx @@ -17,6 +17,10 @@ import states, { saveStatus } from '../utils/states'; import { getCurrentAccountNS } from '../utils/store-utils'; import Following from './following'; +import { + getGroupedNotifications, + mastoFetchNotifications, +} from './notifications'; function Home() { const snapStates = useSnapshot(states); @@ -84,16 +88,13 @@ function NotificationsLink() { ); } -const NOTIFICATIONS_LIMIT = 80; const NOTIFICATIONS_DISPLAY_LIMIT = 5; function NotificationsMenu({ anchorRef, state, onClose }) { const { masto, instance } = api(); const snapStates = useSnapshot(states); const [uiState, setUIState] = useState('default'); - const notificationsIterator = masto.v1.notifications.list({ - limit: NOTIFICATIONS_LIMIT, - }); + const notificationsIterator = mastoFetchNotifications(); async function fetchNotifications() { const allNotifications = await notificationsIterator.next(); @@ -106,7 +107,7 @@ function NotificationsMenu({ anchorRef, state, onClose }) { }); }); - const groupedNotifications = groupNotifications(notifications); + const groupedNotifications = getGroupedNotifications(notifications); states.notificationsLast = notifications[0]; states.notifications = groupedNotifications; diff --git a/src/pages/notifications.jsx b/src/pages/notifications.jsx index 4e03cd573..0ce78bcf5 100644 --- a/src/pages/notifications.jsx +++ b/src/pages/notifications.jsx @@ -20,8 +20,11 @@ import Notification from '../components/notification'; import Status from '../components/status'; import { api } from '../utils/api'; import enhanceContent from '../utils/enhance-content'; -import groupNotifications from '../utils/group-notifications'; +import groupNotifications, { + groupNotifications2, +} from '../utils/group-notifications'; import handleContentLinks from '../utils/handle-content-links'; +import mem from '../utils/mem'; import niceDateTime from '../utils/nice-date-time'; import { getRegistration } from '../utils/push-notifications'; import shortenNumber from '../utils/shorten-number'; @@ -33,7 +36,8 @@ import usePageVisibility from '../utils/usePageVisibility'; import useScroll from '../utils/useScroll'; import useTitle from '../utils/useTitle'; -const LIMIT = 80; +const NOTIFICATIONS_LIMIT = 80; +const NOTIFICATIONS_GROUPED_LIMIT = 20; const emptySearchParams = new URLSearchParams(); const scrollIntoViewOptions = { @@ -42,6 +46,43 @@ const scrollIntoViewOptions = { behavior: 'smooth', }; +const memSupportsGroupedNotifications = mem( + () => supports('@mastodon/grouped-notifications'), + { + maxAge: 1000 * 60 * 5, // 5 minutes + }, +); + +export function mastoFetchNotifications(opts = {}) { + const { masto } = api(); + if ( + states.settings.groupedNotificationsAlpha && + memSupportsGroupedNotifications() + ) { + // https://github.com/mastodon/mastodon/pull/29889 + return masto.v2_alpha.notifications.list({ + limit: NOTIFICATIONS_GROUPED_LIMIT, + ...opts, + }); + } else { + return masto.v1.notifications.list({ + limit: NOTIFICATIONS_LIMIT, + ...opts, + }); + } +} + +export function getGroupedNotifications(notifications) { + if ( + states.settings.groupedNotificationsAlpha && + memSupportsGroupedNotifications() + ) { + return groupNotifications2(notifications); + } else { + return groupNotifications(notifications); + } +} + function Notifications({ columnMode }) { useTitle('Notifications', '/notifications'); const { masto, instance } = api(); @@ -67,8 +108,7 @@ function Notifications({ columnMode }) { async function fetchNotifications(firstLoad) { if (firstLoad || !notificationsIterator.current) { // Reset iterator - notificationsIterator.current = masto.v1.notifications.list({ - limit: LIMIT, + notificationsIterator.current = mastoFetchNotifications({ excludeTypes: ['follow_request'], }); } @@ -115,10 +155,10 @@ function Notifications({ columnMode }) { // console.log({ notifications }); - const groupedNotifications = groupNotifications(notifications); + const groupedNotifications = getGroupedNotifications(notifications); if (firstLoad) { - states.notificationsLast = notifications[0]; + states.notificationsLast = groupedNotifications[0]; states.notifications = groupedNotifications; // Update last read marker diff --git a/src/pages/settings.jsx b/src/pages/settings.jsx index bb6ff7f40..06f486956 100644 --- a/src/pages/settings.jsx +++ b/src/pages/settings.jsx @@ -21,6 +21,7 @@ import { import showToast from '../utils/show-toast'; import states from '../utils/states'; import store from '../utils/store'; +import supports from '../utils/supports'; const DEFAULT_TEXT_SIZE = 16; const TEXT_SIZES = [14, 15, 16, 17, 18, 19, 20]; @@ -496,6 +497,27 @@ function Settings({ onClose }) {
)} + {authenticated && supports('@mastodon/grouped-notifications') && ( +
  • + +
    + + Alpha-stage feature. Potentially improved grouping window + but basic grouping logic. + +
    +
  • + )} {authenticated && (
  • + ); + } + const actualStatusID = reblog?.id || statusID; const url = instance ? `/${instance}/s/${actualStatusID}`