Merge pull request #459 from cheeaun/main

Update from main
This commit is contained in:
Chee Aun 2024-03-17 21:12:58 +08:00 committed by GitHub
commit c7c764a4f0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 419 additions and 242 deletions

View file

@ -10,6 +10,7 @@ assignees: ''
**Describe the bug**
A clear and concise description of what the bug is.
- Which site: [e.g. dev.phanpy.social OR phanpy.social]
- Which site version: [On Phanpy, go to Settings -> About]
- Which instance: [e.g. mastodon.social]
**To Reproduce**

477
package-lock.json generated
View file

@ -44,16 +44,16 @@
"valtio": "1.13.2"
},
"devDependencies": {
"@preact/preset-vite": "~2.8.1",
"@preact/preset-vite": "~2.8.2",
"@trivago/prettier-plugin-sort-imports": "~4.3.0",
"postcss": "~8.4.35",
"postcss-dark-theme-class": "~1.2.1",
"postcss-preset-env": "~9.4.0",
"postcss-preset-env": "~9.5.1",
"twitter-text": "~3.1.0",
"vite": "~5.1.5",
"vite": "~5.1.6",
"vite-plugin-generate-file": "~0.1.1",
"vite-plugin-html-config": "~1.0.11",
"vite-plugin-pwa": "~0.19.2",
"vite-plugin-pwa": "~0.19.4",
"vite-plugin-remove-console": "~2.2.0",
"workbox-cacheable-response": "~7.0.0",
"workbox-expiration": "~7.0.0",
@ -1950,9 +1950,9 @@
}
},
"node_modules/@csstools/cascade-layer-name-parser": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.8.tgz",
"integrity": "sha512-xHxXavWvXB5nAA9IvZtjEzkONM3hPXpxqYK4cEw60LcqPiFjq7ZlEFxOyYFPrG4UdANKtnucNtRVDy7frjq6AA==",
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.9.tgz",
"integrity": "sha512-RRqNjxTZDUhx7pxYOBG/AkCVmPS3zYzfE47GEhIGkFuWFTQGJBgWOUUkKNo5MfxIfjDz5/1L3F3rF1oIsYaIpw==",
"dev": true,
"funding": [
{
@ -1968,8 +1968,8 @@
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
}
},
"node_modules/@csstools/color-helpers": {
@ -1992,9 +1992,9 @@
}
},
"node_modules/@csstools/css-calc": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.1.7.tgz",
"integrity": "sha512-+7bUzB5I4cI97tKmBJA8ilTl/YRo6VAOdlrnd/4x2NyK60nvYurGKa5TZpE1zcgIrTC97iJRE0/V65feyFytuw==",
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.0.tgz",
"integrity": "sha512-iQqIW5vDPqQdLx07/atCuNKDprhIWjB0b8XRhUyXZWBZYUG+9mNyFwyu30rypX84WLevVo25NYW2ipxR8WyseQ==",
"dev": true,
"funding": [
{
@ -2010,14 +2010,14 @@
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
}
},
"node_modules/@csstools/css-color-parser": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.5.2.tgz",
"integrity": "sha512-5GEkuuUxD5dael3xoWjyf7gAPAi4pwm8X8JW/nUMhxntGY4Wo4Lp7vKlex4V5ZgTfAoov14rZFsZyOantdTatg==",
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.6.0.tgz",
"integrity": "sha512-Wc1X6jZvGhT8Bii4jUF6tC3Je3wgDFg7D/SvGKndrnakDsCPk4TMxtt4AQHyWdMBrBJ1hLjXbppaXgP1DUIpBw==",
"dev": true,
"funding": [
{
@ -2031,20 +2031,20 @@
],
"dependencies": {
"@csstools/color-helpers": "^4.0.0",
"@csstools/css-calc": "^1.1.7"
"@csstools/css-calc": "^1.2.0"
},
"engines": {
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
}
},
"node_modules/@csstools/css-parser-algorithms": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.0.tgz",
"integrity": "sha512-YfEHq0eRH98ffb5/EsrrDspVWAuph6gDggAE74ZtjecsmyyWpW768hOyiONa8zwWGbIWYfa2Xp4tRTrpQQ00CQ==",
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz",
"integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==",
"dev": true,
"funding": [
{
@ -2060,13 +2060,13 @@
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-tokenizer": "^2.2.4"
}
},
"node_modules/@csstools/css-tokenizer": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz",
"integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==",
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz",
"integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==",
"dev": true,
"funding": [
{
@ -2083,9 +2083,9 @@
}
},
"node_modules/@csstools/media-query-list-parser": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.8.tgz",
"integrity": "sha512-DiD3vG5ciNzeuTEoh74S+JMjQDs50R3zlxHnBnfd04YYfA/kh2KiBCGhzqLxlJcNq+7yNQ3stuZZYLX6wK/U2g==",
"version": "2.1.9",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz",
"integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==",
"dev": true,
"funding": [
{
@ -2101,8 +2101,8 @@
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
}
},
"node_modules/@csstools/postcss-cascade-layers": {
@ -2132,9 +2132,9 @@
}
},
"node_modules/@csstools/postcss-color-function": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.10.tgz",
"integrity": "sha512-jxiXmSl4ZYX8KewFjL5ef6of9uW73VkaHeDb2tqb5q4ZDPYxjusNX1KJ8UXY8+7ydqS5QBo42tVMrSMGy+rDmw==",
"version": "3.0.11",
"resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.11.tgz",
"integrity": "sha512-z53Pp2tsemiIq72PKu4vjD0CtcQlXdvA22elEHuDOvCIlqphNjd5ZD5HBns/ZjaJF7BjPls2zaAT58hfLyS0MQ==",
"dev": true,
"funding": [
{
@ -2147,10 +2147,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2161,9 +2161,9 @@
}
},
"node_modules/@csstools/postcss-color-mix-function": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.10.tgz",
"integrity": "sha512-zeD856+FDCUjB077pPS+Z9OnTQnqpiJrao3TW+sasCb/gJ3vZCX7sRSRFsRUo0/MntTtJu9hkKv9eMkFmfjydA==",
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.11.tgz",
"integrity": "sha512-Jz1R5ZXxpT5FIY95F3VSJtwQYWCYOtCBUBS/ShDxS+fUtd3sAdAtD3a9tAdz3FG3BvkmqtlURyoIhJRu/wfo/A==",
"dev": true,
"funding": [
{
@ -2176,10 +2176,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2190,9 +2190,9 @@
}
},
"node_modules/@csstools/postcss-exponential-functions": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.4.tgz",
"integrity": "sha512-frMf0CFVnZoGEKAHlxLy3s4g/tpjyFn5+A+h895UJNm9Uc+ewGT7+EeK7Kh9IHH4pD4FkaGW1vOQtER00PLurQ==",
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.5.tgz",
"integrity": "sha512-7S7I7KgwHWQYzJJAoIjRtUf7DQs1dxipeg1A6ikZr0PYapNJX7UHz0evlpE67SQqYj1xBs70gpG7xUv3uLp4PA==",
"dev": true,
"funding": [
{
@ -2205,9 +2205,9 @@
}
],
"dependencies": {
"@csstools/css-calc": "^1.1.7",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-calc": "^1.2.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
},
"engines": {
"node": "^14 || ^16 || >=18"
@ -2243,9 +2243,9 @@
}
},
"node_modules/@csstools/postcss-gamut-mapping": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.3.tgz",
"integrity": "sha512-P0+ude1KyCy9LXOe2pHJmpcXK4q/OQbr2Sn2wQSssMw0rALGmny2MfHiCqEu8n6mf2cN6lWDZdzY8enBk8WHXQ==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.4.tgz",
"integrity": "sha512-jjHP44awnSijgddNJpZEFfmb8csFx+BiYYpX+ydyScWwLzSpve5eLXneu4uIhZmKom+WXLXWc4y7CvOfVLQ2VQ==",
"dev": true,
"funding": [
{
@ -2258,9 +2258,9 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
},
"engines": {
"node": "^14 || ^16 || >=18"
@ -2270,9 +2270,9 @@
}
},
"node_modules/@csstools/postcss-gradients-interpolation-method": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.10.tgz",
"integrity": "sha512-PwKOxVuX8lo52bPtPeKjaIp6oH2EzhcBxCndRcvGZKsqZYQ35k9A5G4yihZ+wp7PoxPqDNiXuhQsvQG2lqMpOA==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.12.tgz",
"integrity": "sha512-F1mOb6MuIMAV7qq9dYLhi2tlmmQn+osCVl+VdDNI+4AO6y3l6dTWmc7XVQMsVxIZCKEZMie9KLtE0PRp3i1UyQ==",
"dev": true,
"funding": [
{
@ -2285,10 +2285,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2299,9 +2299,9 @@
}
},
"node_modules/@csstools/postcss-hwb-function": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.9.tgz",
"integrity": "sha512-S3/Z+mGHWIKAex7DLsHFDiku5lBEK34avT2My6sGPNCXB38TZjrKI0rd7JdN9oulem5sn+CU7oONyIftui24oQ==",
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.10.tgz",
"integrity": "sha512-wYyhFLQ1zkirAhfRxh5BK9WRIJGBb7jtE9H9a2wPOf20kGbS/PmqxHtGmE+o1vSz/MaBIbW+6lqyS16yEzjQJA==",
"dev": true,
"funding": [
{
@ -2314,10 +2314,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2328,9 +2328,9 @@
}
},
"node_modules/@csstools/postcss-ic-unit": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.4.tgz",
"integrity": "sha512-OB6ojl33/TQHhjVx1NI+n3EnYbdUM6Q/mSUv3WFATdcz7IrH/CmBaZt7P1R6j1Xdp58thIa6jm4Je7saGs+2AA==",
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.5.tgz",
"integrity": "sha512-9CriM/zvKXa/lDARlxs/MgeyKE6ZmmX4V77VLD7VUxKLVSt0Go3NCy/gRMbwGzxbrk3iaHFXnFbc2lNw+/7jcg==",
"dev": true,
"funding": [
{
@ -2343,7 +2343,7 @@
}
],
"dependencies": {
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0",
"postcss-value-parser": "^4.2.0"
},
@ -2403,9 +2403,9 @@
}
},
"node_modules/@csstools/postcss-light-dark-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.0.tgz",
"integrity": "sha512-KHo633V16DGo6tmpr1ARAwO73CPBNmDI3PfSQYe7ZBMiv60WEizbcEroK75fHjxKYJ4tj9uCCzp5sYG4cEUqqw==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.1.tgz",
"integrity": "sha512-CJOcp+m7Njbu91HtYMMoYuZznsvNSpJtLiR/7BO8/bHTXYPiuAZfxunh7wXLkMbHd5dRBgAVAQZ+H4iFqrvWZw==",
"dev": true,
"funding": [
{
@ -2418,9 +2418,9 @@
}
],
"dependencies": {
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2522,9 +2522,9 @@
}
},
"node_modules/@csstools/postcss-logical-viewport-units": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.6.tgz",
"integrity": "sha512-6hV0ngZh8J7HqNY3kyt+z5ABN/XE18qvrU7ne4YSkKfltrWDnQgGiW/Q+h7bdQz8/W5juAefcdCCAJUIBE7erg==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.7.tgz",
"integrity": "sha512-L4G3zsp/bnU0+WXUyysihCUH14LkfMgUJsS9vKz3vCYbVobOTqQRoNXnEPpyNp8WYyolLqAWbGGJhVu8J6u2OQ==",
"dev": true,
"funding": [
{
@ -2537,7 +2537,7 @@
}
],
"dependencies": {
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2548,9 +2548,9 @@
}
},
"node_modules/@csstools/postcss-media-minmax": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.3.tgz",
"integrity": "sha512-W9AFRQSLvT+Dxtp20AewzGTUxzkJ21XSKzqRALwQdAv0uJGXkR76qgdhkoX0L/tcV4gXtgDfVtGYL/x2Nz/M5Q==",
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.4.tgz",
"integrity": "sha512-xl/PIO3TUbXO1ZA4SA6HCw+Q9UGe2cgeRKx3lHCzoNig2D4bT5vfVCOrwhxjUb09oHihc9eI3I0iIfVPiXaN1A==",
"dev": true,
"funding": [
{
@ -2563,10 +2563,10 @@
}
],
"dependencies": {
"@csstools/css-calc": "^1.1.7",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/media-query-list-parser": "^2.1.8"
"@csstools/css-calc": "^1.2.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/media-query-list-parser": "^2.1.9"
},
"engines": {
"node": "^14 || ^16 || >=18"
@ -2576,9 +2576,9 @@
}
},
"node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.6.tgz",
"integrity": "sha512-awc2qenSDvx6r+w6G9xxENp+LsbvHC8mMMV23KYmk4pR3YL8JxeKPDSiDhmqd93FQ9nNNDc/CaCQEcvP+GV4rw==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.7.tgz",
"integrity": "sha512-HBDAQw1K0NilcHGMUHv8jzf2mpOtcWTVKtuY3AeZ5TS1uyWWNVi5/yuA/tREPLU9WifNdqHQ+rfbsV/8zTIkTg==",
"dev": true,
"funding": [
{
@ -2591,9 +2591,9 @@
}
],
"dependencies": {
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/media-query-list-parser": "^2.1.8"
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/media-query-list-parser": "^2.1.9"
},
"engines": {
"node": "^14 || ^16 || >=18"
@ -2654,9 +2654,9 @@
}
},
"node_modules/@csstools/postcss-oklab-function": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.10.tgz",
"integrity": "sha512-s9trs1c+gUMtaTtwrrIpdVQkUbRuwi6bQ9rBHaqwt4kd3kEnEYfP85uLY1inFx6Rt8OM2XVg3PSYbfnFSAO51A==",
"version": "3.0.11",
"resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.11.tgz",
"integrity": "sha512-nIeOZqTFn/zJXSb70JwUcyUBb9658FED7saZlaZNEEhQ3GYxjRhdlV7hgflNi0FDdqNqaEeeI/B/BqnPG9+Q/Q==",
"dev": true,
"funding": [
{
@ -2669,10 +2669,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2683,9 +2683,9 @@
}
},
"node_modules/@csstools/postcss-progressive-custom-properties": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.1.0.tgz",
"integrity": "sha512-Mfb1T1BHa6pktLI+poMEHI7Q+VYvAsdwJZPFsSkIB2ZUsawCiPxXLw06BKSVPITxFlaY/FEUzfpyOTfX9YCE2w==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.1.1.tgz",
"integrity": "sha512-cx/bZgj+MK8SpRZNTu2zGeVFMCQfhsaeuDhukAhfA53yykvIXaTIwLi5shW9hfkvPrkqBeFoiRAzq/qogxeHTA==",
"dev": true,
"funding": [
{
@ -2708,9 +2708,9 @@
}
},
"node_modules/@csstools/postcss-relative-color-syntax": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.10.tgz",
"integrity": "sha512-IkTIk9Eq2VegSN4lgsljGY8boyfX3l3Pw58e+R9oyPe/Ye7r3NwuiQ3w0nkXoQ+RC+d240V6n7eZme2mEPqQvg==",
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.11.tgz",
"integrity": "sha512-YmYGwGLoqZp71wXqjyFuG+JApL+CoZqUZ+MJshlokdqqryKX/zj/NrSrwMTAwB4xSx2DgHJUQK3iWumUse8rXw==",
"dev": true,
"funding": [
{
@ -2723,10 +2723,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -2762,9 +2762,9 @@
}
},
"node_modules/@csstools/postcss-stepped-value-functions": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.5.tgz",
"integrity": "sha512-B8K8RaTrYVZLxbNzVUvFO3SlCDJDaUTAO7KRth05fa7f01ufPvb6ztdBuxSoRwOtmNp8iROxPJHOemWo2kBBtA==",
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.6.tgz",
"integrity": "sha512-rnyp8tWRuBXERTHVdB5hjUlif5dQgPcyN+BX55wUnYpZ3LN9QPfK2Z3/HUZymwyou8Gg6vhd6X2W+g1pLq1jYg==",
"dev": true,
"funding": [
{
@ -2777,9 +2777,9 @@
}
],
"dependencies": {
"@csstools/css-calc": "^1.1.7",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-calc": "^1.2.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
},
"engines": {
"node": "^14 || ^16 || >=18"
@ -2815,9 +2815,9 @@
}
},
"node_modules/@csstools/postcss-trigonometric-functions": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.5.tgz",
"integrity": "sha512-RhBfQ0TsBudyPuoo8pXKdfQuUiQxMU/Sc5GyV57bWk93JbUHXq6b4CdPx+B/tHUeFKvocVJn/e2jbu96rh0d3Q==",
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.6.tgz",
"integrity": "sha512-i5Zd0bMJooZAn+ZcDmPij2WCkcOJJJ6opzK+QeDjxbMrYmoGQl0CY8FDHdeQyBF1Nly+Q0Fq3S7QfdNLKBBaCg==",
"dev": true,
"funding": [
{
@ -2830,9 +2830,9 @@
}
],
"dependencies": {
"@csstools/css-calc": "^1.1.7",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3"
"@csstools/css-calc": "^1.2.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4"
},
"engines": {
"node": "^14 || ^16 || >=18"
@ -2863,6 +2863,28 @@
"postcss": "^8.4"
}
},
"node_modules/@csstools/selector-resolve-nested": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-1.1.0.tgz",
"integrity": "sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"engines": {
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
"postcss-selector-parser": "^6.0.13"
}
},
"node_modules/@csstools/selector-specificity": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz",
@ -3125,9 +3147,9 @@
}
},
"node_modules/@preact/preset-vite": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.1.tgz",
"integrity": "sha512-a9KV4opdj17X2gOFuGup0aE+sXYABX/tJi/QDptOrleX4FlnoZgDWvz45tHOdVfrZX+3uvVsIYPHxRsTerkDNA==",
"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/plugin-transform-react-jsx": "^7.22.15",
@ -3139,7 +3161,9 @@
"kolorist": "^1.8.0",
"magic-string": "0.30.5",
"node-html-parser": "^6.1.10",
"resolve": "^1.22.8"
"resolve": "^1.22.8",
"source-map": "^0.7.4",
"stack-trace": "^1.0.0-pre2"
},
"peerDependencies": {
"@babel/core": "7.x",
@ -3164,6 +3188,15 @@
"node": ">=12"
}
},
"node_modules/@preact/preset-vite/node_modules/source-map": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
"integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"dev": true,
"engines": {
"node": ">= 8"
}
},
"node_modules/@prefresh/babel-plugin": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.0.tgz",
@ -3706,9 +3739,9 @@
}
},
"node_modules/autoprefixer": {
"version": "10.4.17",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz",
"integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
"version": "10.4.18",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz",
"integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==",
"dev": true,
"funding": [
{
@ -3725,8 +3758,8 @@
}
],
"dependencies": {
"browserslist": "^4.22.2",
"caniuse-lite": "^1.0.30001578",
"browserslist": "^4.23.0",
"caniuse-lite": "^1.0.30001591",
"fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@ -3921,9 +3954,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001588",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz",
"integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==",
"version": "1.0.30001597",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz",
"integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==",
"dev": true,
"funding": [
{
@ -4186,9 +4219,9 @@
}
},
"node_modules/cssdb": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.0.tgz",
"integrity": "sha512-YUVAJhjDcTZzVD5XE49l3PQtGE29vvhzaL1bM3BtkvSmIRJeYENdfn1dn5jauBI7BBF+IyyiBS+oSVx3Hz/Gaw==",
"version": "7.11.2",
"resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz",
"integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==",
"dev": true,
"funding": [
{
@ -6039,9 +6072,9 @@
}
},
"node_modules/postcss-color-functional-notation": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.5.tgz",
"integrity": "sha512-aTFsIy89ftjyclwUHRwvz1IxucLzVrzmmcXmtbPWT9GdyYeaJEKeAwbaZzOZn7AQlXg4xfwgkYhKsofC4aLIwg==",
"version": "6.0.6",
"resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.6.tgz",
"integrity": "sha512-2GENDVgEk1dt+OdVhPO+zO4Dzj31Xs9EuKgQLbY9RSkKS3jUqnbTAh33bUhKce5JM1ZmsXm0azCb7Bh8j6W6Nw==",
"dev": true,
"funding": [
{
@ -6054,10 +6087,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -6120,9 +6153,9 @@
}
},
"node_modules/postcss-custom-media": {
"version": "10.0.3",
"resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.3.tgz",
"integrity": "sha512-wfJ9nKpLn/Qy7LASKu0Rj9Iq2uMzlRt27P4FAE1889IKRMdYUgy8SqvdXfAOs7LJLQX9Fjm0mZ+TSFphD/mKwA==",
"version": "10.0.4",
"resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.4.tgz",
"integrity": "sha512-Ubs7O3wj2prghaKRa68VHBvuy3KnTQ0zbGwqDYY1mntxJD0QL2AeiAy+AMfl3HBedTCVr2IcFNktwty9YpSskA==",
"dev": true,
"funding": [
{
@ -6135,10 +6168,10 @@
}
],
"dependencies": {
"@csstools/cascade-layer-name-parser": "^1.0.8",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/media-query-list-parser": "^2.1.8"
"@csstools/cascade-layer-name-parser": "^1.0.9",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/media-query-list-parser": "^2.1.9"
},
"engines": {
"node": "^14 || ^16 || >=18"
@ -6148,9 +6181,9 @@
}
},
"node_modules/postcss-custom-properties": {
"version": "13.3.5",
"resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.5.tgz",
"integrity": "sha512-xHg8DTCMfN2nrqs2CQTF+0m5jgnzKL5zrW5Y05KF6xBRO0uDPxiplBm/xcr1o49SLbyJXkMuaRJKhRzkrquKnQ==",
"version": "13.3.6",
"resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.6.tgz",
"integrity": "sha512-vVVIwQbJiIz+PBLMIWA6XMi53Zg66/f474KolA7x0Das6EwkATc/9ZvM6zZx2gs7ZhcgVHjmWBbHkK9FlCgLeA==",
"dev": true,
"funding": [
{
@ -6163,9 +6196,9 @@
}
],
"dependencies": {
"@csstools/cascade-layer-name-parser": "^1.0.8",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/cascade-layer-name-parser": "^1.0.9",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/utilities": "^1.0.0",
"postcss-value-parser": "^4.2.0"
},
@ -6177,9 +6210,9 @@
}
},
"node_modules/postcss-custom-selectors": {
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.7.tgz",
"integrity": "sha512-N19MpExaR+hYTXU59VO02xE42zLoAUYSVcupwkKlWWLteOb+sWCWHw5FhV7u7gVLTzaGULy7nZP3DNTHgOZAPA==",
"version": "7.1.8",
"resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.8.tgz",
"integrity": "sha512-fqDkGSEsO7+oQaqdRdR8nwwqH+N2uk6LE/2g4myVJJYz/Ly418lHKEleKTdV/GzjBjFcG4n0dbfuH/Pd2BE8YA==",
"dev": true,
"funding": [
{
@ -6192,9 +6225,9 @@
}
],
"dependencies": {
"@csstools/cascade-layer-name-parser": "^1.0.8",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/cascade-layer-name-parser": "^1.0.9",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"postcss-selector-parser": "^6.0.13"
},
"engines": {
@ -6252,9 +6285,9 @@
}
},
"node_modules/postcss-double-position-gradients": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.4.tgz",
"integrity": "sha512-xOH2QhazCPeYR+ziYaDcGlpo7Bpw8PVoggOFfU/xPkmBRUQH8MR2eWoPY1CZM93CB0WKs2mxq3ORo83QGIooLw==",
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.5.tgz",
"integrity": "sha512-26Tx4BfoxMNO9C89Nk56bfGv4jAwdDVgrQOyHZOP/6/D+xuOBf306KzTjHC2oBzaIIVtX+famOWHv4raxMjJMQ==",
"dev": true,
"funding": [
{
@ -6267,7 +6300,7 @@
}
],
"dependencies": {
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0",
"postcss-value-parser": "^4.2.0"
},
@ -6387,9 +6420,9 @@
}
},
"node_modules/postcss-lab-function": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.10.tgz",
"integrity": "sha512-Csvw/CwwuwTojK2O3Ad0SvYKrfnAKy+uvT+1Fjk6igR+n8gHuJHIwdj1A2s46EZZojg3RkibdMBuv1vMvR6Sng==",
"version": "6.0.11",
"resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.11.tgz",
"integrity": "sha512-toTAozTlBBhqSynSJ32O6ssukZFphS58AAQcVqMA8kG/E04+v+e7E5OKRqq68M/VJaWIeMdpyeBEO51buMrdvw==",
"dev": true,
"funding": [
{
@ -6402,10 +6435,10 @@
}
],
"dependencies": {
"@csstools/css-color-parser": "^1.5.2",
"@csstools/css-parser-algorithms": "^2.6.0",
"@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/css-color-parser": "^1.6.0",
"@csstools/css-parser-algorithms": "^2.6.1",
"@csstools/css-tokenizer": "^2.2.4",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/utilities": "^1.0.0"
},
"engines": {
@ -6441,9 +6474,9 @@
}
},
"node_modules/postcss-nesting": {
"version": "12.0.3",
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.3.tgz",
"integrity": "sha512-yrtMRPFNkfZMv9ikBvZ/Eh3RxhpMBKQ3KzD7LCY8+jYVlgju/Mdcxi4JY8bW2Y7ISXw8GTLuF/o+kFtp+yaVfQ==",
"version": "12.1.0",
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.1.0.tgz",
"integrity": "sha512-QOYnosaZ+mlP6plQrAxFw09UUp2Sgtxj1BVHN+rSVbtV0Yx48zRt9/9F/ZOoxOKBBEsaJk2MYhhVRjeRRw5yuw==",
"dev": true,
"funding": [
{
@ -6456,6 +6489,7 @@
}
],
"dependencies": {
"@csstools/selector-resolve-nested": "^1.1.0",
"@csstools/selector-specificity": "^3.0.2",
"postcss-selector-parser": "^6.0.13"
},
@ -6550,9 +6584,9 @@
}
},
"node_modules/postcss-preset-env": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.4.0.tgz",
"integrity": "sha512-5X2UA4Dn4xo7sJFCxlzW/dAGo71Oxh/K5DVls33hd2e3j06OKnW5FJQTw2hB0wTnGv0f6WcMaVBGFqcEfAgwlw==",
"version": "9.5.1",
"resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.5.1.tgz",
"integrity": "sha512-m2biepZ2amqH/ygGRV+lQxnT9+AsYG2OScMwBRLa9YefDOXaCVKzsPtmnvdUG7QENdhAl9tE9nsHbYHVYsqJmQ==",
"dev": true,
"funding": [
{
@ -6566,58 +6600,58 @@
],
"dependencies": {
"@csstools/postcss-cascade-layers": "^4.0.3",
"@csstools/postcss-color-function": "^3.0.10",
"@csstools/postcss-color-mix-function": "^2.0.10",
"@csstools/postcss-exponential-functions": "^1.0.4",
"@csstools/postcss-color-function": "^3.0.11",
"@csstools/postcss-color-mix-function": "^2.0.11",
"@csstools/postcss-exponential-functions": "^1.0.5",
"@csstools/postcss-font-format-keywords": "^3.0.2",
"@csstools/postcss-gamut-mapping": "^1.0.3",
"@csstools/postcss-gradients-interpolation-method": "^4.0.10",
"@csstools/postcss-hwb-function": "^3.0.9",
"@csstools/postcss-ic-unit": "^3.0.4",
"@csstools/postcss-gamut-mapping": "^1.0.4",
"@csstools/postcss-gradients-interpolation-method": "^4.0.12",
"@csstools/postcss-hwb-function": "^3.0.10",
"@csstools/postcss-ic-unit": "^3.0.5",
"@csstools/postcss-initial": "^1.0.1",
"@csstools/postcss-is-pseudo-class": "^4.0.5",
"@csstools/postcss-light-dark-function": "^1.0.0",
"@csstools/postcss-light-dark-function": "^1.0.1",
"@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.6",
"@csstools/postcss-media-minmax": "^1.1.3",
"@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.6",
"@csstools/postcss-logical-viewport-units": "^2.0.7",
"@csstools/postcss-media-minmax": "^1.1.4",
"@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.7",
"@csstools/postcss-nested-calc": "^3.0.2",
"@csstools/postcss-normalize-display-values": "^3.0.2",
"@csstools/postcss-oklab-function": "^3.0.10",
"@csstools/postcss-progressive-custom-properties": "^3.1.0",
"@csstools/postcss-relative-color-syntax": "^2.0.10",
"@csstools/postcss-oklab-function": "^3.0.11",
"@csstools/postcss-progressive-custom-properties": "^3.1.1",
"@csstools/postcss-relative-color-syntax": "^2.0.11",
"@csstools/postcss-scope-pseudo-class": "^3.0.1",
"@csstools/postcss-stepped-value-functions": "^3.0.5",
"@csstools/postcss-stepped-value-functions": "^3.0.6",
"@csstools/postcss-text-decoration-shorthand": "^3.0.4",
"@csstools/postcss-trigonometric-functions": "^3.0.5",
"@csstools/postcss-trigonometric-functions": "^3.0.6",
"@csstools/postcss-unset-value": "^3.0.1",
"autoprefixer": "^10.4.17",
"autoprefixer": "^10.4.18",
"browserslist": "^4.22.3",
"css-blank-pseudo": "^6.0.1",
"css-has-pseudo": "^6.0.2",
"css-prefers-color-scheme": "^9.0.1",
"cssdb": "^7.11.0",
"cssdb": "^7.11.1",
"postcss-attribute-case-insensitive": "^6.0.3",
"postcss-clamp": "^4.1.0",
"postcss-color-functional-notation": "^6.0.5",
"postcss-color-functional-notation": "^6.0.6",
"postcss-color-hex-alpha": "^9.0.4",
"postcss-color-rebeccapurple": "^9.0.3",
"postcss-custom-media": "^10.0.3",
"postcss-custom-properties": "^13.3.5",
"postcss-custom-selectors": "^7.1.7",
"postcss-custom-media": "^10.0.4",
"postcss-custom-properties": "^13.3.6",
"postcss-custom-selectors": "^7.1.8",
"postcss-dir-pseudo-class": "^8.0.1",
"postcss-double-position-gradients": "^5.0.4",
"postcss-double-position-gradients": "^5.0.5",
"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.10",
"postcss-lab-function": "^6.0.11",
"postcss-logical": "^7.0.1",
"postcss-nesting": "^12.0.3",
"postcss-nesting": "^12.1.0",
"postcss-opacity-percentage": "^2.0.0",
"postcss-overflow-shorthand": "^5.0.1",
"postcss-page-break": "^3.0.4",
@ -7266,6 +7300,15 @@
"dev": true,
"license": "MIT"
},
"node_modules/stack-trace": {
"version": "1.0.0-pre2",
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-1.0.0-pre2.tgz",
"integrity": "sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==",
"dev": true,
"engines": {
"node": ">=16"
}
},
"node_modules/string-length": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/string-length/-/string-length-6.0.0.tgz",
@ -7815,9 +7858,9 @@
}
},
"node_modules/vite": {
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.1.5.tgz",
"integrity": "sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==",
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.1.6.tgz",
"integrity": "sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==",
"dev": true,
"dependencies": {
"esbuild": "^0.19.3",
@ -7896,9 +7939,9 @@
}
},
"node_modules/vite-plugin-pwa": {
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.19.2.tgz",
"integrity": "sha512-LSQJFPxCAQYbRuSyc9EbRLRqLpaBA9onIZuQFomfUYjWSgHuQLonahetDlPSC9zsxmkSEhQH8dXZN8yL978h3w==",
"version": "0.19.4",
"resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.19.4.tgz",
"integrity": "sha512-KiEFXaYEj2Hg1it+yECy75oqNmlXimI7BaLx7Sxl7Qsd9EIVxaf3GX1mZdLpHe83pDgHBNwm9USGQxSCNp5m7A==",
"dev": true,
"dependencies": {
"debug": "^4.3.4",

View file

@ -46,16 +46,16 @@
"valtio": "1.13.2"
},
"devDependencies": {
"@preact/preset-vite": "~2.8.1",
"@preact/preset-vite": "~2.8.2",
"@trivago/prettier-plugin-sort-imports": "~4.3.0",
"postcss": "~8.4.35",
"postcss-dark-theme-class": "~1.2.1",
"postcss-preset-env": "~9.4.0",
"postcss-preset-env": "~9.5.1",
"twitter-text": "~3.1.0",
"vite": "~5.1.5",
"vite": "~5.1.6",
"vite-plugin-generate-file": "~0.1.1",
"vite-plugin-html-config": "~1.0.11",
"vite-plugin-pwa": "~0.19.2",
"vite-plugin-pwa": "~0.19.4",
"vite-plugin-remove-console": "~2.2.0",
"workbox-cacheable-response": "~7.0.0",
"workbox-expiration": "~7.0.0",

View file

@ -34,6 +34,8 @@ a.mention span {
text-decoration-color: inherit;
text-decoration-thickness: 2px;
text-underline-offset: 2px;
font-variant-numeric: slashed-zero;
font-feature-settings: 'ss01';
}
/* a.mention:has(span).hashtag {
color: var(--link-light-color);
@ -2673,6 +2675,10 @@ ul.link-list li a .icon {
box-shadow: 0px 1px var(--bg-blur-color);
transition: transform 0.4s var(--timing-function);
--back-transition: transform 0.4s ease-out;
&:is(:empty, :has(> a:empty)) {
display: none;
}
}
.timeline:not(.flat) > li > a {
border-radius: inherit;

View file

@ -95,6 +95,10 @@
0 1px 10px var(--bg-color), 0 1px 10px var(--bg-color),
0 1px 10px var(--bg-color);
z-index: 2;
strong {
color: var(--red-color);
}
}
#_compose-container .status-preview-legend.reply-to {
color: var(--reply-to-color);

View file

@ -174,6 +174,8 @@ function highlightText(text, { maxCharacters = Infinity }) {
); // Emoji shortcodes
}
const rtf = new Intl.RelativeTimeFormat();
function Compose({
onClose,
replyToStatus,
@ -637,6 +639,16 @@ function Compose({
return [topLanguages, restLanguages];
}, [language]);
const replyToStatusMonthsAgo = useMemo(
() =>
!!replyToStatus?.createdAt &&
Math.floor(
(Date.now() - new Date(replyToStatus.createdAt)) /
(1000 * 60 * 60 * 24 * 30),
),
[replyToStatus],
);
return (
<div id="compose-container-outer">
<div id="compose-container" class={standalone ? 'standalone' : ''}>
@ -786,6 +798,16 @@ function Compose({
Replying to @
{replyToStatus.account.acct || replyToStatus.account.username}
&rsquo;s post
{replyToStatusMonthsAgo >= 3 && (
<>
{' '}
(
<strong>
{rtf.format(-replyToStatusMonthsAgo, 'month')}
</strong>
)
</>
)}
</div>
</div>
)}

View file

@ -8,6 +8,11 @@
font-weight: 500;
unicode-bidi: isolate;
}
i {
font-variant-numeric: slashed-zero;
font-feature-settings: 'ss01';
}
}
.name-text.show-acct {
display: inline-block;

View file

@ -85,6 +85,8 @@ const isIOS =
window.ontouchstart !== undefined &&
/iPad|iPhone|iPod/.test(navigator.userAgent);
const rtf = new Intl.RelativeTimeFormat();
const REACTIONS_LIMIT = 80;
function getPollText(poll) {
@ -508,6 +510,13 @@ function Status({
(attachment) => !attachment.description?.trim?.(),
);
}, [mediaAttachments]);
const statusMonthsAgo = useMemo(() => {
return Math.floor(
(new Date() - createdAtDate) / (1000 * 60 * 60 * 24 * 30),
);
}, [createdAtDate]);
const boostStatus = async () => {
if (!sameInstance || !authenticated) {
alert(unauthInteractionErrorMessage);
@ -767,12 +776,22 @@ function Status({
</MenuItem>
}
menuFooter={
mediaNoDesc &&
!reblogged && (
mediaNoDesc && !reblogged ? (
<div class="footer">
<Icon icon="alert" />
Some media have no descriptions.
</div>
) : (
statusMonthsAgo >= 3 && (
<div class="footer">
<Icon icon="info" />
<span>
Old post (
<strong>{rtf.format(-statusMonthsAgo, 'month')}</strong>
)
</span>
</div>
)
)
}
disabled={!canBoost}
@ -2213,10 +2232,10 @@ function Card({ card, selfReferential, instance }) {
<p class="meta domain" dir="auto">
{domain}
</p>
<p class="title" dir="auto">
<p class="title" dir="auto" title={title}>
{title}
</p>
<p class="meta" dir="auto">
<p class="meta" dir="auto" title={description}>
{description ||
(!!publishedAt && (
<RelativeTime datetime={publishedAt} format="micro" />
@ -2285,8 +2304,8 @@ function Card({ card, selfReferential, instance }) {
<p class="meta domain">
<Icon icon="link" size="s" /> <span>{domain}</span>
</p>
<p class="title">{title}</p>
<p class="meta">{description || providerName || authorName}</p>
<p class="title" title={title}>{title}</p>
<p class="meta" title={description || providerName || authorName}>{description || providerName || authorName}</p>
</div>
</a>
);

View file

@ -535,15 +535,15 @@ const TimelineItem = memo(
const url = instance
? `/${instance}/s/${actualStatusID}`
: `/s/${actualStatusID}`;
let title = '';
if (type === 'boosts') {
title = `${items.length} Boosts`;
} else if (type === 'pinned') {
title = 'Pinned posts';
}
const isCarousel = type === 'boosts' || type === 'pinned';
if (items) {
const fItems = filteredItems(items, filterContext);
let title = '';
if (type === 'boosts') {
title = `${fItems.length} Boosts`;
} else if (type === 'pinned') {
title = 'Pinned posts';
}
const isCarousel = type === 'boosts' || type === 'pinned';
if (isCarousel) {
// Here, we don't hide filtered posts, but we sort them last
fItems.sort((a, b) => {

View file

@ -525,10 +525,13 @@
background-color: var(--bg-faded-color);
box-shadow: 0 8px 16px -8px var(--drop-shadow-color),
inset 0 1px var(--bg-color);
outline: 1px solid var(--outline-color);
text-shadow: 0 1px var(--bg-color);
}
&:hover:not(:focus-visible) {
outline: 1px solid var(--outline-color);
}
&:active {
filter: brightness(0.95);
box-shadow: none;
@ -1091,6 +1094,20 @@
dd {
margin-block-end: 1em;
margin-inline: 1em;
+ dd {
margin-block-start: -0.9em;
}
}
}
kbd {
border-radius: 4px;
display: inline-block;
padding: 0.2em 0.3em;
margin: 1px 0;
line-height: 1;
border: 1px solid var(--outline-color);
background-color: var(--bg-faded-color);
}
}

View file

@ -648,7 +648,7 @@ function Catchup() {
const [showHelp, setShowHelp] = useState(false);
const itemsSelector = '.catchup-list > li > a';
useHotkeys(
const jRef = useHotkeys(
'j',
() => {
const activeItem = document.activeElement.closest(itemsSelector);
@ -692,7 +692,7 @@ function Catchup() {
},
);
useHotkeys(
const kRef = useHotkeys(
'k',
() => {
const activeItem = document.activeElement.closest(itemsSelector);
@ -736,34 +736,73 @@ function Catchup() {
},
);
useHotkeys(
const hlRef = useHotkeys(
'h, l',
(_, handler) => {
// Go next/prev selectedAuthor in authorCountsList list
const key = handler.keys[0];
if (selectedAuthor) {
const key = handler.keys[0];
const index = authorCountsList.indexOf(selectedAuthor);
if (key === 'h') {
if (index > 0 && index < authorCountsList.length) {
setSelectedAuthor(authorCountsList[index - 1]);
scrollableRef.current?.focus();
}
} else if (key === 'l') {
if (index < authorCountsList.length - 1 && index >= 0) {
setSelectedAuthor(authorCountsList[index + 1]);
scrollableRef.current?.focus();
}
}
} else if (key === 'l') {
setSelectedAuthor(authorCountsList[0]);
scrollableRef.current?.focus();
}
},
{
preventDefault: true,
ignoreModifiers: true,
enableOnFormTags: true,
enableOnFormTags: ['input'],
},
);
const escRef = useHotkeys(
'esc',
() => {
setSelectedAuthor(null);
scrollableRef.current?.focus();
},
{
preventDefault: true,
ignoreModifiers: true,
enableOnFormTags: ['input'],
},
);
const dotRef = useHotkeys(
'.',
() => {
scrollableRef.current?.scrollTo({
top: 0,
behavior: 'smooth',
});
},
{
preventDefault: true,
ignoreModifiers: true,
enableOnFormTags: ['input'],
},
);
return (
<div
ref={scrollableRef}
ref={(node) => {
scrollableRef.current = node;
jRef.current = node;
kRef.current = node;
hlRef.current = node;
escRef.current = node;
}}
id="catchup-page"
class="deck-container"
tabIndex="-1"
@ -1425,6 +1464,25 @@ function Catchup() {
Posts are grouped by authors, sorted by posts count per
author.
</dd>
<dt>Keyboard shortcuts</dt>
<dd>
<kbd>j</kbd>: Next post
</dd>
<dd>
<kbd>k</kbd>: Previous post
</dd>
<dd>
<kbd>l</kbd>: Next author
</dd>
<dd>
<kbd>h</kbd>: Previous author
</dd>
<dd>
<kbd>Enter</kbd>: Open post details
</dd>
<dd>
<kbd>.</kbd>: Scroll to top
</dd>
</dl>
</main>
</div>

View file

@ -16,7 +16,9 @@ function handleContentLinks(opts) {
const textBeforeLinkIsAt = prevText?.endsWith('@');
const textStartsWithAt = target.innerText.startsWith('@');
if (
(target.classList.contains('u-url') && textStartsWithAt) ||
((target.classList.contains('u-url') ||
target.classList.contains('mention')) &&
textStartsWithAt) ||
(textBeforeLinkIsAt && !textStartsWithAt)
) {
const targetText = (