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 && ( + <> + {' '} + ‒{' '} + + ) + }