diff --git a/README.md b/README.md
index 187a90cf..c01cdf9f 100644
--- a/README.md
+++ b/README.md
@@ -259,19 +259,20 @@ See documentation for [lingva-translate](https://github.com/thedaviddelta/lingva
These are self-hosted by other wonderful folks.
- [ferengi.one](https://m.ferengi.one/) by [@david@weaknotes.com](https://weaknotes.com/@david)
-- [phanpy.blaede.family](https://phanpy.blaede.family/) by [@cassidy@blaede.family](https://mastodon.blaede.family/@cassidy)
-- [phanpy.mstdn.mx](https://phanpy.mstdn.mx/) by [@maop@mstdn.mx](https://mstdn.mx/@maop)
-- [phanpy.vmst.io](https://phanpy.vmst.io/) by [@vmstan@vmst.io](https://vmst.io/@vmstan)
-- [phanpy.gotosocial.social](https://phanpy.gotosocial.social/) by [@admin@gotosocial.social](https://gotosocial.social/@admin)
-- [phanpy.bauxite.tech](https://phanpy.bauxite.tech) by [@b4ux1t3@hachyderm.io](https://hachyderm.io/@b4ux1t3)
-- [phanpy.hear-me.social](https://phanpy.hear-me.social) by [@admin@hear-me.social](https://hear-me.social/@admin)
-- [phanpy.fulda.social](https://phanpy.fulda.social) by [@Ganneff@fulda.social](https://fulda.social/@Ganneff)
-- [phanpy.crmbl.uk](https://phanpy.crmbl.uk) by [@snail@crmbl.uk](https://mstdn.crmbl.uk/@snail)
- [halo.mookiesplace.com](https://halo.mookiesplace.com) by [@mookie@mookiesplace.com](https://mookiesplace.com/@mookie)
-- [social.qrk.one](https://social.qrk.one) by [@kev@fosstodon.org](https://fosstodon.org/@kev)
+- [phanpy.bauxite.tech](https://phanpy.bauxite.tech) by [@b4ux1t3@hachyderm.io](https://hachyderm.io/@b4ux1t3)
+- [phanpy.blaede.family](https://phanpy.blaede.family/) by [@cassidy@blaede.family](https://mastodon.blaede.family/@cassidy)
+- [phanpy.crmbl.uk](https://phanpy.crmbl.uk) by [@snail@crmbl.uk](https://mstdn.crmbl.uk/@snail)
- [phanpy.cz](https://phanpy.cz) by [@zdendys@mamutovo.cz](https://mamutovo.cz/@zdendys)
-- [phanpy.social.tchncs.de](https://phanpy.social.tchncs.de) by [@milan@social.tchncs.de](https://social.tchncs.de/@milan)
+- [phanpy.fulda.social](https://phanpy.fulda.social) by [@Ganneff@fulda.social](https://fulda.social/@Ganneff)
+- [phanpy.gotosocial.social](https://phanpy.gotosocial.social/) by [@admin@gotosocial.social](https://gotosocial.social/@admin)
+- [phanpy.hear-me.social](https://phanpy.hear-me.social) by [@admin@hear-me.social](https://hear-me.social/@admin)
- [phanpy.mastodon.world](https://phanpy.mastodon.world) by [@ruud@mastodon.world](https://mastodon.world/@ruud)
+- [phanpy.mstdn.mx](https://phanpy.mstdn.mx/) by [@maop@mstdn.mx](https://mstdn.mx/@maop)
+- [phanpy.social.tchncs.de](https://phanpy.social.tchncs.de) by [@milan@social.tchncs.de](https://social.tchncs.de/@milan)
+- [phanpy.tilde.zone](https://phanpy.tilde.zone) by [@ben@tilde.zone](https://tilde.zone/@ben)
+- [phanpy.vmst.io](https://phanpy.vmst.io/) by [@vmstan@vmst.io](https://vmst.io/@vmstan)
+- [social.qrk.one](https://social.qrk.one) by [@kev@fosstodon.org](https://fosstodon.org/@kev)
> Note: Add yours by creating a pull request.
@@ -316,11 +317,13 @@ Costs involved in running and developing this web app:
-
hongminhee (Korean)
-
Hugoglyph (Esperanto, Spanish)
-
isard (Catalan)
+-
kaliuwu (Polish)
-
karlafej (Czech)
-
katullo11 (Italian)
-
Kytta (German)
-
llun (Thai)
--
lucasofchirst (Occitan, Portuguese, Portuguese, Brazilian)
+-
lucasofchirst (Occitan, Portuguese, Portuguese, Brazilian)
+-
LukeHong (Chinese Traditional)
-
marcin.kozinski (Polish)
-
mkljczkk (Polish)
-
mojosoeun (Korean)
diff --git a/package-lock.json b/package-lock.json
index 287c2e2d..3d88f4f2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.1.0",
"dependencies": {
"@formatjs/intl-localematcher": "~0.5.5",
- "@formatjs/intl-segmenter": "~11.5.9",
+ "@formatjs/intl-segmenter": "~11.6.0",
"@formkit/auto-animate": "~0.8.2",
"@github/text-expander-element": "~2.8.0",
"@iconify-icons/mingcute": "~1.2.9",
@@ -28,7 +28,7 @@
"js-cookie": "~3.0.5",
"just-debounce-it": "~3.2.0",
"lz-string": "~1.5.0",
- "masto": "~6.9.0",
+ "masto": "~6.10.1",
"moize": "~6.1.6",
"p-retry": "~6.2.0",
"p-throttle": "~6.2.0",
@@ -56,9 +56,9 @@
"babel-plugin-macros": "~3.1.0",
"postcss": "~8.4.47",
"postcss-dark-theme-class": "~1.3.0",
- "postcss-preset-env": "~10.0.7",
+ "postcss-preset-env": "~10.0.8",
"twitter-text": "~3.1.0",
- "vite": "~5.4.9",
+ "vite": "~5.4.10",
"vite-plugin-generate-file": "~0.2.0",
"vite-plugin-html-config": "~2.0.2",
"vite-plugin-pwa": "~0.20.5",
@@ -1868,9 +1868,9 @@
}
},
"node_modules/@csstools/cascade-layer-name-parser": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.2.tgz",
- "integrity": "sha512-rRWNJ8n16okpQT+8RWEbPfSl8D9WVoDZGBfHkjYnMYWcC20RiMpu/iGeKqUl1hR+SQIKg6p/QJap5rZJaHtVOg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.3.tgz",
+ "integrity": "sha512-KUcKk2oe7666aaeY+yxhy5TB0AN5x2Pi/ZJ23fbO8A0TEcLpA+VhVIw9s+6hTsAQHr8Fqc8p4RClsxxsmuIn1A==",
"dev": true,
"funding": [
{
@@ -1886,7 +1886,7 @@
"node": ">=18"
},
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
}
},
@@ -1910,9 +1910,9 @@
}
},
"node_modules/@csstools/css-calc": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.0.2.tgz",
- "integrity": "sha512-N70YZw+R6WDP9EEd5xAT3xd+SgZFZsllXR6kclq6U8e2thlakNpWCKhuOiWfCKU8HpeWOyL+2ArSX8uDszMytA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.0.3.tgz",
+ "integrity": "sha512-UAhqOt43s8e4MfLAnIS1OmB/lDN32t03YObodmFyy60+1i6ZsT2rlwBEdajH6zDFS/TGogsvgMamV5GzZt2muA==",
"dev": true,
"funding": [
{
@@ -1928,14 +1928,14 @@
"node": ">=18"
},
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
}
},
"node_modules/@csstools/css-color-parser": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.3.tgz",
- "integrity": "sha512-mnOTQ6KbQ6GHfdVHVTNXffroW0r5P5531h73bIyEzWAScGjMPQi+1XYgAydYVaZiKeXlQ4GHG9dnBWq9h7xFIQ==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.4.tgz",
+ "integrity": "sha512-kXviLfsxXmx2YcUPd478vuJd/s21EFTmxcgjC3danRhLa2zqfqZMTRonwRRSckezmgn7nlOCXpk3tZAKbFeihQ==",
"dev": true,
"funding": [
{
@@ -1949,20 +1949,20 @@
],
"dependencies": {
"@csstools/color-helpers": "^5.0.1",
- "@csstools/css-calc": "^2.0.2"
+ "@csstools/css-calc": "^2.0.3"
},
"engines": {
"node": ">=18"
},
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
}
},
"node_modules/@csstools/css-parser-algorithms": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz",
- "integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.3.tgz",
+ "integrity": "sha512-15WQTALDyxAwSgAvLt7BksAssiSrNNhTv4zM7qX9U6R7FtpNskVVakzWQlYODlwPwXhGpKPmB10LM943pxMe7w==",
"dev": true,
"funding": [
{
@@ -2001,9 +2001,9 @@
}
},
"node_modules/@csstools/media-query-list-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.0.tgz",
- "integrity": "sha512-nUfbCGeqCju55Po8ujRNQ8DjuKYth5UcsDj5HsVzSfqnaFdpOwYCUAhRJ2grfwrXhb9+KuRXHQ6JHzaI0Qhu8Q==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.1.tgz",
+ "integrity": "sha512-dMr9PcN2B0TzxBFk6r+08Ln39aCti7SJeXB671JcXB1ZTPHqs4hpheRpL2vPPGRyXiQwW/UexvOej7Nw0Janxg==",
"dev": true,
"funding": [
{
@@ -2019,14 +2019,14 @@
"node": ">=18"
},
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
}
},
"node_modules/@csstools/postcss-cascade-layers": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.0.tgz",
- "integrity": "sha512-h+VunB3KXaoWTWEPBcdVk8Kz1eZ/CtDD+HXgKw5JLdbsViLEQdKUtFYH73VIQigdodng8s5DCrrwNQY7pnuWBA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz",
+ "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==",
"dev": true,
"funding": [
{
@@ -2039,8 +2039,8 @@
}
],
"dependencies": {
- "@csstools/selector-specificity": "^4.0.0",
- "postcss-selector-parser": "^6.1.0"
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -2050,9 +2050,9 @@
}
},
"node_modules/@csstools/postcss-color-function": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.3.tgz",
- "integrity": "sha512-dziWTvbyBsXze7Li+BemXyYX9yCf8udlGKB78evZismrBf7SNN6K5S0qE4sRQELKEkttugcGz0hwqyXilEhoUA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.4.tgz",
+ "integrity": "sha512-lL+ITQgwmAZd0/yBWkNIKzud2jQXeetFH9PtmQ/tWcD+FfQUjCGWZ8u6y6Pta64PbGPm1qn7+WgSNop+TC6pMQ==",
"dev": true,
"funding": [
{
@@ -2065,8 +2065,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2079,9 +2079,9 @@
}
},
"node_modules/@csstools/postcss-color-mix-function": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.3.tgz",
- "integrity": "sha512-L7v0pQlLC3VejShxn5bjrdo3GhhHExSVGB8CgZqIcED/W/eK9pKGxubyGivNcJQYl+iznBtTU3mFPMmOrLccBQ==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.4.tgz",
+ "integrity": "sha512-Jp6hI6T7Iq0+7VzEn5CbUymvo8W3x8xAJLVNRIQ/nn8iXsSprUtDo6DznDa7Uajz9qq70AwNK4Js1gmnZGKs3Q==",
"dev": true,
"funding": [
{
@@ -2094,8 +2094,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2108,9 +2108,9 @@
}
},
"node_modules/@csstools/postcss-content-alt-text": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.2.tgz",
- "integrity": "sha512-GzMdDJrNPAOq4XxGac5xv5Ae2pB3JjvYWIJhJPcE6g87Q38gXG1Daaqq55QUU8DnC+iVm8lrO/JGvSC2T4YBOA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.3.tgz",
+ "integrity": "sha512-7fY4hfR77UezWoEu2NBMc550FL2NKr+FbcMdZLDIF5qkbn9rwW3l0+RXI7g6GmUPXeEwtVApp39xa55Cx1WKgw==",
"dev": true,
"funding": [
{
@@ -2123,7 +2123,7 @@
}
],
"dependencies": {
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2136,9 +2136,9 @@
}
},
"node_modules/@csstools/postcss-exponential-functions": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.2.tgz",
- "integrity": "sha512-gSGeXEKse3U3lDzSXh9XE1DgdicMWolo+eyXN8nH96Vr5mWPd6jUwk6W+x8yRNwM5dDkoAE/HkYK6/WzSo9Jsw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.3.tgz",
+ "integrity": "sha512-7d626jcY3Za5uXoG3FQ4laZ9zjIpp2fzpqfAQO902n2p9nguaoCgfcM6cu9Ot+av2OEhf6YeaG69L0rhv2GfNg==",
"dev": true,
"funding": [
{
@@ -2151,8 +2151,8 @@
}
],
"dependencies": {
- "@csstools/css-calc": "^2.0.2",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-calc": "^2.0.3",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
},
"engines": {
@@ -2189,9 +2189,9 @@
}
},
"node_modules/@csstools/postcss-gamut-mapping": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.3.tgz",
- "integrity": "sha512-1mbYE41F3fluEdjExw70b339NVU62O6sz43mya5O+LultfZQdmY68qRsWT+rw85Imya9aeLCDgBHaxwgXf1Z/g==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.4.tgz",
+ "integrity": "sha512-3VidlUzT5VNKhxLSUS79B7EWk+KlF4cRdZPyg/T7q/QYI544a3o3/KoraEDw/np3Px1/9rljBJCgS5uNsRFBtQ==",
"dev": true,
"funding": [
{
@@ -2204,8 +2204,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
},
"engines": {
@@ -2216,9 +2216,9 @@
}
},
"node_modules/@csstools/postcss-gradients-interpolation-method": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.3.tgz",
- "integrity": "sha512-TW+utpEOOn2HLlRZTEVNS8XBlG5bOcSNBanIKjPWnkmdgkFjcj1eIaEtWezpGX2hKJpkiwZeIEyP/UItWk6c3g==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.4.tgz",
+ "integrity": "sha512-t2GrRZ/pnR7FJHvUoDl3gspwWGj2RCE7h9erAqs6eLp5oNh6qf7OzL6HwV6RcfGUjx49sliBmXxoDrReBuzncw==",
"dev": true,
"funding": [
{
@@ -2231,8 +2231,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2245,9 +2245,9 @@
}
},
"node_modules/@csstools/postcss-hwb-function": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.3.tgz",
- "integrity": "sha512-HBeApQzk6UlqAAWbuXSiWmF0Xtc/hfMTESSbkRUpolXshuPkUaBWXflfQuoo6exv3MvID6iTmv11GZT1ZfADDQ==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.4.tgz",
+ "integrity": "sha512-1kDydqBP16urjshTYdB28zSnWZXoTJyeToGhMkVEPDm4Mw9+JPe+PO2DZhqHXz2LzAMiHMAgOwp3oCBN2MRwoQ==",
"dev": true,
"funding": [
{
@@ -2260,8 +2260,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2323,9 +2323,9 @@
}
},
"node_modules/@csstools/postcss-is-pseudo-class": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.0.tgz",
- "integrity": "sha512-E/CjrT03BL06WmrjupnrT0VUBTvxJdoW1hRVeXFa9qatWtvcLLw0j8hP372G4A9PpSGEMXi3/AoHzPf7DNryCQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz",
+ "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==",
"dev": true,
"funding": [
{
@@ -2338,8 +2338,8 @@
}
],
"dependencies": {
- "@csstools/selector-specificity": "^4.0.0",
- "postcss-selector-parser": "^6.1.0"
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -2349,9 +2349,9 @@
}
},
"node_modules/@csstools/postcss-light-dark-function": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.5.tgz",
- "integrity": "sha512-mSqqxuwlBg10YyErq2YYB71KtvWDueBYE9WAnC6B7GHU+z0ECcGf+sR9zxpvePGzesuBNDB+cp15cW2CvOyszA==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.6.tgz",
+ "integrity": "sha512-eo9WPWkFGEfbhOgfHrIFTZlK8goW/rLYRfM2r8Rghl1NTvXnQ8qpMEmd67iXwMdfoKl6nMWs5sTTVLflpa2+EA==",
"dev": true,
"funding": [
{
@@ -2364,7 +2364,7 @@
}
],
"dependencies": {
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2494,9 +2494,9 @@
}
},
"node_modules/@csstools/postcss-media-minmax": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.2.tgz",
- "integrity": "sha512-zodxyIwRNuro/SIjN+zrYeZCQJvMd1obPtsvmNxLRvk3FOM3KwuuX8GEev9if19OGlNVvJZIe9wH77c+jIbXzA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.3.tgz",
+ "integrity": "sha512-+Vr5eQ/ZSL0hdARb/1sohoYtYnYxGi94HuzgmzjZ7jnruEDYJaWux6UtS2gXY/cWrsx/lmJCJNFJO87/5hcgCQ==",
"dev": true,
"funding": [
{
@@ -2509,10 +2509,10 @@
}
],
"dependencies": {
- "@csstools/css-calc": "^2.0.2",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-calc": "^2.0.3",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
- "@csstools/media-query-list-parser": "^4.0.0"
+ "@csstools/media-query-list-parser": "^4.0.1"
},
"engines": {
"node": ">=18"
@@ -2522,9 +2522,9 @@
}
},
"node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.2.tgz",
- "integrity": "sha512-9bEvSC8hIkdqHwehYIADcwC7/TvuJeb1hAw0STI7BMRVE57nFxHyXY+WzfLPXtmhpdFqGcKJIyQkDcenQI3Sow==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.3.tgz",
+ "integrity": "sha512-kyLO69jXq/BIkOJeCi7++uzarm9qb5La1K1cL36e+QUnV6wto7UtFuzjelT3PEuCnIikj9JCbDCYDfGzCmkhQw==",
"dev": true,
"funding": [
{
@@ -2537,9 +2537,9 @@
}
],
"dependencies": {
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
- "@csstools/media-query-list-parser": "^4.0.0"
+ "@csstools/media-query-list-parser": "^4.0.1"
},
"engines": {
"node": ">=18"
@@ -2600,9 +2600,9 @@
}
},
"node_modules/@csstools/postcss-oklab-function": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.3.tgz",
- "integrity": "sha512-BrhnL98OSpWt5EOMk5Hm+kL0kjA8BhBc9DGG0jYgww1GhWItn+L/McQ4WgHE2cm9+jSUE2OMy/31WvSRKhWpnQ==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.4.tgz",
+ "integrity": "sha512-IDPtqifrFjIjdMBphc8ebbq7YdMReEBjkoEZOVrm1I+ZfclgMim9HAE7+V0zCFaP4WyKhVSodKAWWh5Uj4cDLA==",
"dev": true,
"funding": [
{
@@ -2615,8 +2615,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2654,9 +2654,9 @@
}
},
"node_modules/@csstools/postcss-relative-color-syntax": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.3.tgz",
- "integrity": "sha512-1VYBTdGiFSOFrlczaYcUNybCU3XZRL9DDY3ooYRkvweWJZas8dQVHi6vy9SUmxnk0vfGbMbrISXLOIHw4LjKDg==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.4.tgz",
+ "integrity": "sha512-vfjMNPHTZ3SZbTuZ30tNvplQuxEaubUugd4P6PeXfxSKcAMUUH1weVTMaY75MsT5RpHw0m7GRyLDNwwAKXGm1g==",
"dev": true,
"funding": [
{
@@ -2669,8 +2669,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -2683,9 +2683,9 @@
}
},
"node_modules/@csstools/postcss-scope-pseudo-class": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.0.tgz",
- "integrity": "sha512-+ZUOBtVMDcmHZcZqsP/jcNRriEILfWQflTI3tCTA+/RheXAg57VkFGyPDAilpQSqlCpxWLWG8VUFKFtZJPwuOg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz",
+ "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==",
"dev": true,
"funding": [
{
@@ -2698,7 +2698,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -2708,9 +2708,9 @@
}
},
"node_modules/@csstools/postcss-stepped-value-functions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.2.tgz",
- "integrity": "sha512-AxLKGIV0zYIAkeN02fo4o/vcG39WEZjT9dXs78ajy87dM94OFNIu5huxqBgkFGKLiXhQIKBRxAF/MtJmuIWi8w==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.3.tgz",
+ "integrity": "sha512-xy/cT/a51xecPw0T2GIwuCTc4IwIB5woznFAbhOHaJvBi6cdUJyQPeUjwgpOQkA31JEl11T0oGRP0MBDEdLOrg==",
"dev": true,
"funding": [
{
@@ -2723,8 +2723,8 @@
}
],
"dependencies": {
- "@csstools/css-calc": "^2.0.2",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-calc": "^2.0.3",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
},
"engines": {
@@ -2761,9 +2761,9 @@
}
},
"node_modules/@csstools/postcss-trigonometric-functions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.2.tgz",
- "integrity": "sha512-hQzJkTWNvHKGYa5ySpdex2K/ODX6bI3z8Pmdl3W/opRlaXMA7Xvq7Nagp31BTkr1ngzfnqTY9XNKEI2FqaO3fg==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.3.tgz",
+ "integrity": "sha512-OTtGIJglcGqSMyZo6yYrt7c+eOqI7N38oh3IWfpqrDnjFtqvR7n2fDSSYPrkR9KjT4alCXNPV9cC7ExXFCG6Uw==",
"dev": true,
"funding": [
{
@@ -2776,8 +2776,8 @@
}
],
"dependencies": {
- "@csstools/css-calc": "^2.0.2",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-calc": "^2.0.3",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2"
},
"engines": {
@@ -2810,9 +2810,9 @@
}
},
"node_modules/@csstools/selector-resolve-nested": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-2.0.0.tgz",
- "integrity": "sha512-oklSrRvOxNeeOW1yARd4WNCs/D09cQjunGZUgSq6vM8GpzFswN+8rBZyJA29YFZhOTQ6GFzxgLDNtVbt9wPZMA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz",
+ "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==",
"dev": true,
"funding": [
{
@@ -2828,13 +2828,13 @@
"node": ">=18"
},
"peerDependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
}
},
"node_modules/@csstools/selector-specificity": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz",
- "integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
"dev": true,
"funding": [
{
@@ -2850,7 +2850,7 @@
"node": ">=18"
},
"peerDependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
}
},
"node_modules/@csstools/utilities": {
@@ -3270,9 +3270,9 @@
}
},
"node_modules/@formatjs/intl-segmenter": {
- "version": "11.5.9",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-11.5.9.tgz",
- "integrity": "sha512-/vRTJsue3GWk+jvf0VJao9xL+/sIykoMwTBzbq1UWGiyIcUdI4P+02KRbXCURgHovy2Ew7zkV7p8MYjTw8lrMw==",
+ "version": "11.6.0",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-11.6.0.tgz",
+ "integrity": "sha512-7atogMBMeqZZz2EihGn+ywfGJplfolmTwJl7mUDji+GVhEphRCvt0B6dYSjhgOKnAfh1792St35B+W715qf5Hw==",
"dependencies": {
"@formatjs/ecma402-abstract": "2.2.0",
"@formatjs/intl-localematcher": "0.5.5",
@@ -5616,9 +5616,9 @@
}
},
"node_modules/css-blank-pseudo": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.0.tgz",
- "integrity": "sha512-v9xXYGdm6LIn4iHEfu3egk/PM1g/yJr8uwTIj6E44kurv5dE/4y3QW7WdVmZ0PVnqfTuK+C0ClZcEEiaKWBL9Q==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz",
+ "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==",
"dev": true,
"funding": [
{
@@ -5631,7 +5631,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -5641,9 +5641,9 @@
}
},
"node_modules/css-has-pseudo": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.0.tgz",
- "integrity": "sha512-vO6k9bBt4/eEZ2PeHmS2VXjJga5SBy6O1ESyaOkse5/lvp6piFqg8Sh5KTU7X33M7Uh/oqo+M3EeMktQrZoTCQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz",
+ "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==",
"dev": true,
"funding": [
{
@@ -5656,8 +5656,8 @@
}
],
"dependencies": {
- "@csstools/selector-specificity": "^4.0.0",
- "postcss-selector-parser": "^6.1.0",
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -5718,9 +5718,9 @@
}
},
"node_modules/cssdb": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.1.1.tgz",
- "integrity": "sha512-kRbSRgZoxtZNl5snb3nOzBkFOt5AwnephcUTIEFc2DebKG9PN50/cHarlwOooTxYQ/gxsnKs3BxykhNLmfvyLg==",
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.1.2.tgz",
+ "integrity": "sha512-ba3HmHU/lxy9nfz/fQLA/Ul+/oSdSOXqoR53BDmRvXTfRbkGqHKqr2rSxADYMRF4uD8vZhMlCQ6c5TEfLLkkVA==",
"dev": true,
"funding": [
{
@@ -7766,15 +7766,15 @@
}
},
"node_modules/masto": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/masto/-/masto-6.9.0.tgz",
- "integrity": "sha512-Y5eOlyO/2Lq5sAEiMEk/FvaYG4ULSxzliXR8+SvNqfFVWgLbaUrTYghDFBu8YP6ZTewsSk8bZVZSc+LFrwTqEQ==",
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/masto/-/masto-6.10.1.tgz",
+ "integrity": "sha512-CBEAvWJfMLMgk0cURSGU/fRJDcFEZWo1LBfVYztBNEOyijoedQh4htKaon+XCE4aT7TLYPqOLmcllXwMjOvztA==",
"dependencies": {
"change-case": "^4.1.2",
"events-to-async": "^2.0.1",
"isomorphic-ws": "^5.0.0",
"ts-custom-error": "^3.3.1",
- "ws": "^8.17.1"
+ "ws": "^8.18.0"
}
},
"node_modules/merge-stream": {
@@ -8399,9 +8399,9 @@
}
},
"node_modules/postcss-attribute-case-insensitive": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.0.tgz",
- "integrity": "sha512-ETMUHIw67Kyv9Q81nden/NuJbRh+4/S963giXpfSLd5eaKK8kd1UdAHMVRV/NG/w/N6Cq8B0qZIZbZZWU/67+A==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz",
+ "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==",
"dev": true,
"funding": [
{
@@ -8414,7 +8414,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -8440,9 +8440,9 @@
}
},
"node_modules/postcss-color-functional-notation": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.3.tgz",
- "integrity": "sha512-mL3LVOwXr5sRX1N5so7AFCNciaYTNTxzXuv5bDoZ/JunV2NCAzGOuVfyICRKczDPFImoIuL4e0O33/zYap9D0w==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.4.tgz",
+ "integrity": "sha512-bK5EYM9f/F8zqbVT+Etky6sZBR3XedXRasF0cFxi2uX3JOKrkEw+YfRFaVLAYA934RuypGZiqTgDXVpVPnaoDQ==",
"dev": true,
"funding": [
{
@@ -8455,8 +8455,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -8521,9 +8521,9 @@
}
},
"node_modules/postcss-custom-media": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.3.tgz",
- "integrity": "sha512-h52R7j0/QZP7NgnpsUaqx6wdssplK4U+ZuErvic2StgvXt3v5sPopFH86yjLvqz3jBrj/8Hkvr7Gio1LLRFP0g==",
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.4.tgz",
+ "integrity": "sha512-fz6+8rikAQZHsDwy2EEdeE0JlOaYRz1O0WNyrENkC21nEQfp2etnLcP4V1igieGG5mKokfLmH6lLrBR8kMRUfA==",
"dev": true,
"funding": [
{
@@ -8536,10 +8536,10 @@
}
],
"dependencies": {
- "@csstools/cascade-layer-name-parser": "^2.0.2",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/cascade-layer-name-parser": "^2.0.3",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
- "@csstools/media-query-list-parser": "^4.0.0"
+ "@csstools/media-query-list-parser": "^4.0.1"
},
"engines": {
"node": ">=18"
@@ -8549,9 +8549,9 @@
}
},
"node_modules/postcss-custom-properties": {
- "version": "14.0.2",
- "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.2.tgz",
- "integrity": "sha512-ZDJLIXa6uT6FlK6mYdzHxr1fr5ec6lPbp/CZ5+7EZedFmfjJx1fvYQhAPCBebuyc1lkketmiA26ZVl2UkPQ9Ig==",
+ "version": "14.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.3.tgz",
+ "integrity": "sha512-zCc5y6cilcZXld3RK0glb5OR9p6i/54ro7Dul2drDI7kLCIZC1uiblHGociomp2fwBet3kRFf9DpG4lJtz5yhw==",
"dev": true,
"funding": [
{
@@ -8564,8 +8564,8 @@
}
],
"dependencies": {
- "@csstools/cascade-layer-name-parser": "^2.0.2",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/cascade-layer-name-parser": "^2.0.3",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/utilities": "^2.0.0",
"postcss-value-parser": "^4.2.0"
@@ -8578,9 +8578,9 @@
}
},
"node_modules/postcss-custom-selectors": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.2.tgz",
- "integrity": "sha512-8y2fa+RgYHpVFtvR4h3/dHc7b0iWjT6GOpzWwB8VHJTEBdVNaqOB4FH9koa44hgRyaeDs3KTe3xP9EJf6NLvxQ==",
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.3.tgz",
+ "integrity": "sha512-VozjI6h5AxtMWtsI7IdP/LYpioe2Ha0Cg0JwHiifIyIM/HIoRGcRPnbbrywbbG6uPagJH/l2xIOyVddAIqB/KA==",
"dev": true,
"funding": [
{
@@ -8593,10 +8593,10 @@
}
],
"dependencies": {
- "@csstools/cascade-layer-name-parser": "^2.0.2",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/cascade-layer-name-parser": "^2.0.3",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -8631,9 +8631,9 @@
}
},
"node_modules/postcss-dir-pseudo-class": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.0.tgz",
- "integrity": "sha512-T59BG9lURiXmhcJMyKbyjNAK3KCyEQYEhaz9GAETHXfIy9XbGQeyz+H0zIwRJlrP4KKRPJolNYe3QjQPemMjBA==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz",
+ "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==",
"dev": true,
"funding": [
{
@@ -8646,7 +8646,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -8683,9 +8683,9 @@
}
},
"node_modules/postcss-focus-visible": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.0.tgz",
- "integrity": "sha512-GJjzvTj7JY+zN7wVBQ4osdKX53QLUdr6r2rSEkBUqrEMDKu3fHMHKOY9rirdirbHCx3IETnK25EtpPARR2KWNw==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz",
+ "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==",
"dev": true,
"funding": [
{
@@ -8698,7 +8698,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -8708,9 +8708,9 @@
}
},
"node_modules/postcss-focus-within": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.0.tgz",
- "integrity": "sha512-QwflAWUToNZvQLGbc4qJhrQO8yZ5617L6hSNzNWDoqRX4FoIh9fbJbEjy0nvFPciaaOoCaeqcxBwYPbFU0HvBw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz",
+ "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==",
"dev": true,
"funding": [
{
@@ -8723,7 +8723,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -8791,9 +8791,9 @@
}
},
"node_modules/postcss-lab-function": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.3.tgz",
- "integrity": "sha512-yCBscY/dwipfvqqy7rQHbn6k18zYZy9O57JY4fGuibot6wz7pbtzRnhRlWraHBNUs+N4p2KogHv2aBsoB6G+5Q==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.4.tgz",
+ "integrity": "sha512-BkNIkLVZDPJo5EYTfdri/tllk1y83zZET9Imn6gbt8YmeK4SnOiLN8Tfr3DSFk4sIHYbuuQp5UmPXsb9J2mNBQ==",
"dev": true,
"funding": [
{
@@ -8806,8 +8806,8 @@
}
],
"dependencies": {
- "@csstools/css-color-parser": "^3.0.3",
- "@csstools/css-parser-algorithms": "^3.0.2",
+ "@csstools/css-color-parser": "^3.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.3",
"@csstools/css-tokenizer": "^3.0.2",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
"@csstools/utilities": "^2.0.0"
@@ -8845,9 +8845,9 @@
}
},
"node_modules/postcss-nesting": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.0.tgz",
- "integrity": "sha512-TCGQOizyqvEkdeTPM+t6NYwJ3EJszYE/8t8ILxw/YoeUvz2rz7aM8XTAmBWh9/DJjfaaabL88fWrsVHSPF2zgA==",
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz",
+ "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==",
"dev": true,
"funding": [
{
@@ -8860,9 +8860,9 @@
}
],
"dependencies": {
- "@csstools/selector-resolve-nested": "^2.0.0",
- "@csstools/selector-specificity": "^4.0.0",
- "postcss-selector-parser": "^6.1.0"
+ "@csstools/selector-resolve-nested": "^3.0.0",
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -8954,9 +8954,9 @@
}
},
"node_modules/postcss-preset-env": {
- "version": "10.0.7",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.0.7.tgz",
- "integrity": "sha512-aUC/bMT2CULwaZ/RK1Ivzdsyv95DQCJs0dK98RTc9cZKUYIal1+85JdNwik0DXg35BKdRZM2ZwASU17PXoglsw==",
+ "version": "10.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.0.8.tgz",
+ "integrity": "sha512-rN7wmrc4GDvsCR8o1J0c0lexJI7x7ibCoSJ6Xoz/lAyzXzJhq6MYtfQGby5hMU0eqQTQc8JDEcREJaA7kYy7aQ==",
"dev": true,
"funding": [
{
@@ -8969,67 +8969,67 @@
}
],
"dependencies": {
- "@csstools/postcss-cascade-layers": "^5.0.0",
- "@csstools/postcss-color-function": "^4.0.3",
- "@csstools/postcss-color-mix-function": "^3.0.3",
- "@csstools/postcss-content-alt-text": "^2.0.2",
- "@csstools/postcss-exponential-functions": "^2.0.2",
+ "@csstools/postcss-cascade-layers": "^5.0.1",
+ "@csstools/postcss-color-function": "^4.0.4",
+ "@csstools/postcss-color-mix-function": "^3.0.4",
+ "@csstools/postcss-content-alt-text": "^2.0.3",
+ "@csstools/postcss-exponential-functions": "^2.0.3",
"@csstools/postcss-font-format-keywords": "^4.0.0",
- "@csstools/postcss-gamut-mapping": "^2.0.3",
- "@csstools/postcss-gradients-interpolation-method": "^5.0.3",
- "@csstools/postcss-hwb-function": "^4.0.3",
+ "@csstools/postcss-gamut-mapping": "^2.0.4",
+ "@csstools/postcss-gradients-interpolation-method": "^5.0.4",
+ "@csstools/postcss-hwb-function": "^4.0.4",
"@csstools/postcss-ic-unit": "^4.0.0",
"@csstools/postcss-initial": "^2.0.0",
- "@csstools/postcss-is-pseudo-class": "^5.0.0",
- "@csstools/postcss-light-dark-function": "^2.0.5",
+ "@csstools/postcss-is-pseudo-class": "^5.0.1",
+ "@csstools/postcss-light-dark-function": "^2.0.6",
"@csstools/postcss-logical-float-and-clear": "^3.0.0",
"@csstools/postcss-logical-overflow": "^2.0.0",
"@csstools/postcss-logical-overscroll-behavior": "^2.0.0",
"@csstools/postcss-logical-resize": "^3.0.0",
"@csstools/postcss-logical-viewport-units": "^3.0.2",
- "@csstools/postcss-media-minmax": "^2.0.2",
- "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.2",
+ "@csstools/postcss-media-minmax": "^2.0.3",
+ "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.3",
"@csstools/postcss-nested-calc": "^4.0.0",
"@csstools/postcss-normalize-display-values": "^4.0.0",
- "@csstools/postcss-oklab-function": "^4.0.3",
+ "@csstools/postcss-oklab-function": "^4.0.4",
"@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/postcss-relative-color-syntax": "^3.0.3",
- "@csstools/postcss-scope-pseudo-class": "^4.0.0",
- "@csstools/postcss-stepped-value-functions": "^4.0.2",
+ "@csstools/postcss-relative-color-syntax": "^3.0.4",
+ "@csstools/postcss-scope-pseudo-class": "^4.0.1",
+ "@csstools/postcss-stepped-value-functions": "^4.0.3",
"@csstools/postcss-text-decoration-shorthand": "^4.0.1",
- "@csstools/postcss-trigonometric-functions": "^4.0.2",
+ "@csstools/postcss-trigonometric-functions": "^4.0.3",
"@csstools/postcss-unset-value": "^4.0.0",
"autoprefixer": "^10.4.19",
"browserslist": "^4.23.1",
- "css-blank-pseudo": "^7.0.0",
- "css-has-pseudo": "^7.0.0",
+ "css-blank-pseudo": "^7.0.1",
+ "css-has-pseudo": "^7.0.1",
"css-prefers-color-scheme": "^10.0.0",
- "cssdb": "^8.1.1",
- "postcss-attribute-case-insensitive": "^7.0.0",
+ "cssdb": "^8.1.2",
+ "postcss-attribute-case-insensitive": "^7.0.1",
"postcss-clamp": "^4.1.0",
- "postcss-color-functional-notation": "^7.0.3",
+ "postcss-color-functional-notation": "^7.0.4",
"postcss-color-hex-alpha": "^10.0.0",
"postcss-color-rebeccapurple": "^10.0.0",
- "postcss-custom-media": "^11.0.3",
- "postcss-custom-properties": "^14.0.2",
- "postcss-custom-selectors": "^8.0.2",
- "postcss-dir-pseudo-class": "^9.0.0",
+ "postcss-custom-media": "^11.0.4",
+ "postcss-custom-properties": "^14.0.3",
+ "postcss-custom-selectors": "^8.0.3",
+ "postcss-dir-pseudo-class": "^9.0.1",
"postcss-double-position-gradients": "^6.0.0",
- "postcss-focus-visible": "^10.0.0",
- "postcss-focus-within": "^9.0.0",
+ "postcss-focus-visible": "^10.0.1",
+ "postcss-focus-within": "^9.0.1",
"postcss-font-variant": "^5.0.0",
"postcss-gap-properties": "^6.0.0",
"postcss-image-set-function": "^7.0.0",
- "postcss-lab-function": "^7.0.3",
+ "postcss-lab-function": "^7.0.4",
"postcss-logical": "^8.0.0",
- "postcss-nesting": "^13.0.0",
+ "postcss-nesting": "^13.0.1",
"postcss-opacity-percentage": "^3.0.0",
"postcss-overflow-shorthand": "^6.0.0",
"postcss-page-break": "^3.0.4",
"postcss-place": "^10.0.0",
- "postcss-pseudo-class-any-link": "^10.0.0",
+ "postcss-pseudo-class-any-link": "^10.0.1",
"postcss-replace-overflow-wrap": "^4.0.0",
- "postcss-selector-not": "^8.0.0"
+ "postcss-selector-not": "^8.0.1"
},
"engines": {
"node": ">=18"
@@ -9039,9 +9039,9 @@
}
},
"node_modules/postcss-pseudo-class-any-link": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.0.tgz",
- "integrity": "sha512-bde8VE08Gq3ekKDq2BQ0ESOjNX54lrFDK3U9zABPINaqHblbZL/4Wfo5Y2vk6U64yVd/sjDwTzuiisFBpGNNIQ==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz",
+ "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==",
"dev": true,
"funding": [
{
@@ -9054,7 +9054,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -9074,9 +9074,9 @@
}
},
"node_modules/postcss-selector-not": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.0.tgz",
- "integrity": "sha512-g/juh7A83GWc3+kWL8BiS3YUIJb3XNqIVKz1kGvgN3OhoGCsPncy1qo/+q61tjy5r87OxBhSY1+hcH3yOhEW+g==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz",
+ "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==",
"dev": true,
"funding": [
{
@@ -9089,7 +9089,7 @@
}
],
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": ">=18"
@@ -9099,9 +9099,9 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz",
- "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
@@ -10544,9 +10544,9 @@
}
},
"node_modules/vite": {
- "version": "5.4.9",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz",
- "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==",
+ "version": "5.4.10",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz",
+ "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==",
"dev": true,
"dependencies": {
"esbuild": "^0.21.3",
diff --git a/package.json b/package.json
index 208ab3cb..fa174292 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
},
"dependencies": {
"@formatjs/intl-localematcher": "~0.5.5",
- "@formatjs/intl-segmenter": "~11.5.9",
+ "@formatjs/intl-segmenter": "~11.6.0",
"@formkit/auto-animate": "~0.8.2",
"@github/text-expander-element": "~2.8.0",
"@iconify-icons/mingcute": "~1.2.9",
@@ -36,7 +36,7 @@
"js-cookie": "~3.0.5",
"just-debounce-it": "~3.2.0",
"lz-string": "~1.5.0",
- "masto": "~6.9.0",
+ "masto": "~6.10.1",
"moize": "~6.1.6",
"p-retry": "~6.2.0",
"p-throttle": "~6.2.0",
@@ -64,9 +64,9 @@
"babel-plugin-macros": "~3.1.0",
"postcss": "~8.4.47",
"postcss-dark-theme-class": "~1.3.0",
- "postcss-preset-env": "~10.0.7",
+ "postcss-preset-env": "~10.0.8",
"twitter-text": "~3.1.0",
- "vite": "~5.4.9",
+ "vite": "~5.4.10",
"vite-plugin-generate-file": "~0.2.0",
"vite-plugin-html-config": "~2.0.2",
"vite-plugin-pwa": "~0.20.5",
diff --git a/src/app.css b/src/app.css
index 36ed9cf0..f4ce05f5 100644
--- a/src/app.css
+++ b/src/app.css
@@ -371,7 +371,8 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
content-visibility: auto;
contain-intrinsic-size: auto 160px;
}
-.timeline.contextual > li:is(:hover, :focus-visible) {
+.timeline.contextual
+ > li:is(:hover, :focus-visible, :focus-within, :has(.status-menu-open)) {
/* Needed to undo the overflow: hidden "effect" due to "content-visibility: auto" */
content-visibility: visible !important;
}
@@ -380,10 +381,14 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
}
.timeline.contextual {
- --thread-start: 40px;
- --line-start: 40px;
+ --indent-large-start: 40px;
+ --indent-small-start: 10px;
+ --thread-start: var(--indent-small-start);
+ --line-start: var(--indent-small-start);
--line-width: 3px;
--line-end: calc(var(--line-start) + var(--line-width));
+ --indent-large-end: calc(var(--indent-large-start) + var(--line-width));
+ --indent-small-end: calc(var(--indent-small-start) + var(--line-width));
--line-margin-end: 16px;
--line-radius: 10px;
--line-diameter: calc(var(--line-radius) * 2);
@@ -394,6 +399,68 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
:dir(rtl) & {
--line-curve: -45deg;
}
+
+ > li:is(.hero:has(+ .thread), .hero:last-child, .thread, .ancestor) {
+ --thread-start: var(--indent-large-start);
+ --line-start: var(--indent-large-start);
+ --line-end: calc(var(--line-start) + var(--line-width));
+ }
+
+ > li.descendant.thread:has(+ .descendant:not(.thread)):after {
+ position: absolute;
+ inset-inline-start: 10px;
+ bottom: 0;
+ content: '';
+ display: block;
+ --curves-width: calc(var(--line-start) + var(--line-width) - 10px);
+ width: var(--curves-width);
+ background-color: var(--bg-color);
+ background-repeat: no-repeat;
+ /* border-bottom: var(--line-width) dotted var(--comment-line-color); */
+ /* height: calc(var(--line-diameter) - var(--line-width));
+ background-image: linear-gradient(
+ transparent calc(var(--line-radius) - var(--line-width)),
+ var(--comment-line-color) calc(var(--line-radius) - var(--line-width))
+ var(--line-radius),
+ transparent var(--line-radius)
+ ),
+ radial-gradient(
+ circle at bottom var(--forward),
+ transparent calc(var(--line-radius) - var(--line-width)),
+ var(--comment-line-color) calc(var(--line-radius) - var(--line-width))
+ var(--line-radius),
+ transparent var(--line-radius)
+ ),
+ radial-gradient(
+ circle at top var(--backward),
+ transparent calc(var(--line-radius) - var(--line-width)),
+ var(--comment-line-color) calc(var(--line-radius) - var(--line-width))
+ var(--line-radius),
+ transparent var(--line-radius)
+ );
+ background-position: var(--line-radius) 0, bottom var(--backward),
+ top var(--forward);
+ background-size: calc(100% - var(--line-radius) * 2) auto,
+ var(--line-radius), var(--line-radius); */
+ --curves-radius: calc(var(--curves-width) / 2);
+ height: calc(var(--curves-width) - var(--line-width));
+ background-image: radial-gradient(
+ circle at bottom var(--forward),
+ transparent calc(var(--curves-radius) - var(--line-width)),
+ var(--comment-line-color) calc(var(--curves-radius) - var(--line-width))
+ var(--curves-radius),
+ transparent var(--curves-radius)
+ ),
+ radial-gradient(
+ circle at top var(--backward),
+ transparent calc(var(--curves-radius) - var(--line-width)),
+ var(--comment-line-color) calc(var(--curves-radius) - var(--line-width))
+ var(--curves-radius),
+ transparent var(--curves-radius)
+ );
+ background-size: var(--curves-radius);
+ background-position: top var(--backward), bottom var(--forward);
+ }
}
.timeline.contextual > li {
background-image: linear-gradient(
@@ -405,6 +472,28 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
transparent var(--line-end),
transparent
);
+ &.hero:not(:has(+ .thread), :first-child, :only-child, :last-child) {
+ background-image: linear-gradient(
+ var(--line-dir),
+ transparent,
+ transparent var(--indent-small-start),
+ var(--comment-line-color) var(--indent-small-start),
+ var(--comment-line-color) var(--indent-small-end),
+ transparent var(--indent-small-end),
+ transparent
+ ),
+ linear-gradient(
+ var(--line-dir),
+ transparent,
+ transparent var(--indent-large-start),
+ var(--comment-line-color) var(--indent-large-start),
+ var(--comment-line-color) var(--indent-large-end),
+ transparent var(--indent-large-end),
+ transparent
+ );
+ background-size: 100% 50%;
+ background-position: bottom, top;
+ }
background-repeat: no-repeat;
transition: opacity 0.3s ease-in-out;
}
@@ -426,7 +515,7 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
.timeline.contextual
> li.descendant:not(.thread)
> :is(.status-link, .status-focus) {
- padding-inline-start: 40px;
+ padding-inline-start: var(--line-start);
}
.timeline.contextual .replies[data-scroll-left]:not([data-scroll-left='0']) {
background-color: var(--bg-color);
@@ -2542,6 +2631,15 @@ ul.link-list li a .icon {
}
#columns > * {
padding: 0 16px;
+
+ &:is(#notifications-page) {
+ padding-inline: 0;
+
+ .timeline-deck > header {
+ margin-inline: 16px;
+ }
+ }
+
border-inline: var(--hairline-width) solid var(--bg-faded-color);
/* border-radius: 16px; */
/* box-shadow: -4px 0 16px -8px var(--drop-shadow-color); */
diff --git a/src/components/columns.jsx b/src/components/columns.jsx
index 1f1a7a83..dadc9660 100644
--- a/src/components/columns.jsx
+++ b/src/components/columns.jsx
@@ -12,9 +12,16 @@ import Notifications from '../pages/notifications';
import Public from '../pages/public';
import Search from '../pages/search';
import Trending from '../pages/trending';
+import isRTL from '../utils/is-rtl';
import states from '../utils/states';
import useTitle from '../utils/useTitle';
+const scrollIntoViewOptions = {
+ block: 'nearest',
+ inline: 'nearest',
+ behavior: 'smooth',
+};
+
function Columns() {
useTitle(t`Home`, '/');
const snapStates = useSnapshot(states);
@@ -50,12 +57,42 @@ function Columns() {
useHotkeys(['1', '2', '3', '4', '5', '6', '7', '8', '9'], (e, handler) => {
try {
const index = parseInt(handler.keys[0], 10) - 1;
- document.querySelectorAll('#columns > *')[index].focus();
+ const $column = document.querySelectorAll('#columns > *')[index];
+ if ($column) {
+ $column.focus();
+ $column.scrollIntoView(scrollIntoViewOptions);
+ }
} catch (e) {
console.error(e);
}
});
+ useHotkeys(['[', ']'], (e, handler) => {
+ const key = handler.keys[0];
+ const currentFocusedColumn = document.activeElement.closest('#columns > *');
+
+ const rtl = isRTL();
+ const prevColKey = rtl ? ']' : '[';
+ const nextColKey = rtl ? '[' : ']';
+ let $column;
+
+ if (key === prevColKey) {
+ // If [, focus on left of focused column, else first column
+ $column = currentFocusedColumn
+ ? currentFocusedColumn.previousElementSibling
+ : document.querySelectorAll('#columns > *')[0];
+ } else if (key === nextColKey) {
+ // If ], focus on right of focused column, else 2nd column
+ $column = currentFocusedColumn
+ ? currentFocusedColumn.nextElementSibling
+ : document.querySelectorAll('#columns > *')[1];
+ }
+ if ($column) {
+ $column.focus();
+ $column.scrollIntoView(scrollIntoViewOptions);
+ }
+ });
+
return (
),
},
+ {
+ action: t`Focus next column in multi-column mode`,
+ keys: ],
+ },
+ {
+ action: t`Focus previous column in multi-column mode`,
+ keys: [,
+ },
{
action: t`Compose new post`,
keys: c,
diff --git a/src/components/media-modal.jsx b/src/components/media-modal.jsx
index dfdcbd64..b254b6df 100644
--- a/src/components/media-modal.jsx
+++ b/src/components/media-modal.jsx
@@ -260,8 +260,8 @@ function MediaModal({
e.stopPropagation();
const left =
carouselRef.current.clientWidth * i * (isRTL() ? -1 : 1);
- carouselRef.current.scrollTo({ left, behavior: 'smooth' });
carouselRef.current.focus();
+ carouselRef.current.scrollTo({ left, behavior: 'smooth' });
}}
>
diff --git a/src/components/media.jsx b/src/components/media.jsx
index 15e8de01..fc92df69 100644
--- a/src/components/media.jsx
+++ b/src/components/media.jsx
@@ -74,6 +74,7 @@ function Media({
showCaption,
allowLongerCaption,
altIndex,
+ checkAspectRatio = true,
onClick = () => {},
}) {
let {
@@ -354,7 +355,7 @@ function Media({
}
// Check natural aspect ratio vs display aspect ratio
- if ($media) {
+ if (checkAspectRatio && $media) {
const {
clientWidth,
clientHeight,
diff --git a/src/components/shortcuts.jsx b/src/components/shortcuts.jsx
index b06ba9a8..0fea57d7 100644
--- a/src/components/shortcuts.jsx
+++ b/src/components/shortcuts.jsx
@@ -30,10 +30,10 @@ function Shortcuts() {
if (!shortcuts.length) {
return null;
}
- if (
+ const isMultiColumnMode =
settings.shortcutsViewMode === 'multi-column' ||
- (!settings.shortcutsViewMode && settings.shortcutsColumnsMode)
- ) {
+ (!settings.shortcutsViewMode && settings.shortcutsColumnsMode);
+ if (isMultiColumnMode) {
return null;
}
@@ -87,16 +87,22 @@ function Shortcuts() {
.filter(Boolean);
const navigate = useNavigate();
- useHotkeys(['1', '2', '3', '4', '5', '6', '7', '8', '9'], (e, handler) => {
- const index = parseInt(handler.keys[0], 10) - 1;
- if (index < formattedShortcuts.length) {
- const { path } = formattedShortcuts[index];
- if (path) {
- navigate(path);
- menuRef.current?.closeMenu?.();
+ useHotkeys(
+ ['1', '2', '3', '4', '5', '6', '7', '8', '9'],
+ (e, handler) => {
+ const index = parseInt(handler.keys[0], 10) - 1;
+ if (index < formattedShortcuts.length) {
+ const { path } = formattedShortcuts[index];
+ if (path) {
+ navigate(path);
+ menuRef.current?.closeMenu?.();
+ }
}
- }
- });
+ },
+ {
+ enabled: !isMultiColumnMode,
+ },
+ );
const [lists, setLists] = useState([]);
diff --git a/src/components/status.css b/src/components/status.css
index 78c1b7fa..fafb9c9c 100644
--- a/src/components/status.css
+++ b/src/components/status.css
@@ -247,8 +247,11 @@
:is(.content.truncated, .poll, .media-container.truncated) {
mask-image: linear-gradient(to bottom, #000 40px, transparent);
}
-.status-card .card {
- display: none;
+.status-card {
+ .card,
+ .card-byline {
+ display: none;
+ }
}
.timeline-deck .status-card .content.truncated:after {
/* Don't show "Read more" in status cards */
@@ -2128,8 +2131,8 @@ a.card:is(:hover, :focus):visited {
color: var(--text-insignificant-color);
font-size: 90%;
}
-.status .extra-meta * {
- vertical-align: middle;
+.status .extra-meta .icon {
+ vertical-align: text-bottom;
}
.status .extra-meta a {
color: inherit;
diff --git a/src/components/status.jsx b/src/components/status.jsx
index 915464e8..f0975d13 100644
--- a/src/components/status.jsx
+++ b/src/components/status.jsx
@@ -2220,6 +2220,7 @@ function Status({
}
: undefined
}
+ checkAspectRatio={mediaAttachments.length === 1}
/>
))}
@@ -2266,6 +2267,19 @@ function Status({
/> */}
{_(visibilityText[visibility])} •{' '}
+ {
+ // within a day
+ new Date().getTime() - createdAtDate.getTime() <
+ 86400000 && (
+ <>
+ {' '}
+ ‒{' '}
+ >
+ )
+ }