diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 6dc764db..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. -- Which site: [e.g. dev.phanpy.social OR phanpy.social] -- Which site version: [On Phanpy, go to Settings -> About] -- Which instance: [e.g. mastodon.social] - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..10472ecd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,81 @@ +name: "Bug report" +description: "Create a report to help us improve" + +labels: +- "bug" + +body: +- type: input + id: "site" + attributes: + label: "Site" + description: |- + What site(s) did you encounter this bug on? + placeholder: |- + phanpy.social + +- type: input + id: "version" + attributes: + label: "Version" + description: |- + Which Phanpy version(s) did you encounter this bug on? + You can see and copy your current version by opening the Settings menu and scrolling down to the About section. + placeholder: |- + 2024.10.08.0a176e2 + +- type: input + id: "instance" + attributes: + label: "Instance" + description: |- + Which instance(s) did you encounter this bug on? + placeholder: |- + mastodon.social + +- type: textarea + id: "Browser" + attributes: + label: "Browser" + description: |- + Which browser(s) did you encounter this bug on? + placeholder: |- + - Firefox 132.0b5 on Windows 11 + - Safari 18 on iOS 18 on iPhone 16 Pro Max + +- type: textarea + id: "description" + attributes: + label: "Bug description" + description: |- + A concise description of what the bug is. + If applicable, add screenshots to help explain your problem. + You can paste screenshots here and GitHub will convert them to Markdown for you. + +- type: textarea + id: "steps" + attributes: + label: "To reproduce" + description: |- + A list of steps that can be performed to make the bug happen again. + If possible, add screenshots to help demonstrate the steps. + You can paste screenshots here and GitHub will convert them to Markdown for you. + placeholder: |- + 1. Go to '...' + 2. Click on '...' + 3. Scroll down to '...' + 4. See error + +- type: textarea + id: "behavior" + attributes: + label: "Expected behavior" + description: |- + A concise description of what you expected to happen. + +- type: textarea + id: "other" + attributes: + label: "Other" + description: |- + Anything you want to add? diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..0086358d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 36014cde..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'enhancement' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..33eb2156 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,37 @@ +name: "Feature request" +description: "Suggest an idea for this project" + +labels: +- "enhancement" + + +body: +- type: textarea + id: "problem" + attributes: + label: "Problem I have" + description: |- + If your request is related to a problem, please provide a clear and concise description of what the problem is. + placeholder: |- + I'm always frustrated when [...] + +- type: textarea + id: "solution" + attributes: + label: "Solution I'd like" + description: |- + A clear and concise description of what you want to happen. + +- type: textarea + id: "alternatives" + attributes: + label: "Alternatives considered" + description: |- + A clear and concise description of any alternative solutions or features you've considered. + +- type: textarea + id: "other" + attributes: + label: "Other" + description: |- + Anything you want to add? diff --git a/README.md b/README.md index 64438b7c..c01cdf9f 100644 --- a/README.md +++ b/README.md @@ -259,18 +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.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. @@ -303,7 +305,7 @@ Costs involved in running and developing this web app: - cbo92 (French) - CDN (Chinese Simplified) - dannypsnl (Chinese Traditional) -- databio (Catalan) +- databio (Catalan) - Dizro (Italian) - Drift6944 (Czech) - drydenwu (Chinese Traditional) @@ -315,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) @@ -337,7 +341,7 @@ Costs involved in running and developing this web app: - SadmL_AI (Russian) - shuuji3 (Japanese) - Sky_NiniKo (French) -- Steffo99 (Italian) +- Steffo99 (Italian) - Su5hicz (Czech) - tferrermo (Spanish) - tkbremnes (Norwegian Bokmal) diff --git a/package-lock.json b/package-lock.json index b2308bb9..3d88f4f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,15 +8,15 @@ "name": "phanpy", "version": "0.1.0", "dependencies": { - "@formatjs/intl-localematcher": "~0.5.4", - "@formatjs/intl-segmenter": "~11.5.7", + "@formatjs/intl-localematcher": "~0.5.5", + "@formatjs/intl-segmenter": "~11.6.0", "@formkit/auto-animate": "~0.8.2", - "@github/text-expander-element": "~2.7.2", + "@github/text-expander-element": "~2.8.0", "@iconify-icons/mingcute": "~1.2.9", "@justinribeiro/lite-youtube": "~1.5.0", - "@lingui/detect-locale": "~4.11.4", - "@lingui/macro": "~4.11.4", - "@lingui/react": "~4.11.4", + "@lingui/detect-locale": "~4.13.0", + "@lingui/macro": "~4.13.0", + "@lingui/react": "~4.13.0", "@szhsin/react-menu": "~4.2.2", "compare-versions": "~6.1.1", "fast-blurhash": "~1.1.4", @@ -28,11 +28,11 @@ "js-cookie": "~3.0.5", "just-debounce-it": "~3.2.0", "lz-string": "~1.5.0", - "masto": "~6.8.0", + "masto": "~6.10.1", "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.2.0", - "preact": "~10.24.2", + "preact": "~10.24.3", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.1", "react-intersection-observer": "~9.13.1", @@ -43,22 +43,22 @@ "tinyld": "~1.3.4", "toastify-js": "~1.12.0", "uid": "~2.0.2", - "use-debounce": "~10.0.3", + "use-debounce": "~10.0.4", "use-long-press": "~3.2.0", "use-resize-observer": "~9.1.0", "valtio": "2.0.0" }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.1", - "@lingui/cli": "~4.11.4", - "@lingui/vite-plugin": "~4.11.4", + "@lingui/cli": "~4.13.0", + "@lingui/vite-plugin": "~4.13.0", "@preact/preset-vite": "~2.9.1", "babel-plugin-macros": "~3.1.0", "postcss": "~8.4.47", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~10.0.6", + "postcss-preset-env": "~10.0.8", "twitter-text": "~3.1.0", - "vite": "~5.4.8", + "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.1", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.1.tgz", - "integrity": "sha512-G9ZYN5+yr/E6xYSiy1BwOEFP5p88ZtWo8sL4NztKBkRRAwRkzVGa70M+D+fYHugMID5jkLeNt5X9jYd5EaVuyg==", + "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,8 +1886,8 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2" } }, "node_modules/@csstools/color-helpers": { @@ -1910,9 +1910,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.0.1.tgz", - "integrity": "sha512-e59V+sNp6e5m+9WnTUydA1DQO70WuKUdseflRpWmXxocF/h5wWGIxUjxfvLtajcmwstH0vm6l0reKMzcyI757Q==", + "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.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.2.tgz", - "integrity": "sha512-mNg7A6HnNjlm0we/pDS9dUafOuBxcanN0TBhEGeIk6zZincuk0+mAbnBqfVs29NlvWHZ8diwTG6g5FeU8246sA==", + "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.1" + "@csstools/css-calc": "^2.0.3" }, "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.1.tgz", - "integrity": "sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==", + "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": [ { @@ -1978,13 +1978,13 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-tokenizer": "^3.0.2" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.1.tgz", - "integrity": "sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz", + "integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==", "dev": true, "funding": [ { @@ -2001,9 +2001,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz", - "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==", + "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.1", - "@csstools/css-tokenizer": "^3.0.1" + "@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.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.2.tgz", - "integrity": "sha512-q/W3RXh66SM7WqxW3/KU6koL8nOgqyB/wrcU3+ThXnNtXY2+k8UgdE301ISJpMt6PDyYgC7eMaIBo535RvFIgw==", + "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,9 +2065,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.2.tgz", - "integrity": "sha512-zG9PHNzZVCRk6eprm+T/ybrnuiwLdO+RR7+GCtNut+NZJGtPJj6bfPOEX23aOlMslLcRAlN6QOpxH3tovn+WpA==", + "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,9 +2094,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.1.tgz", - "integrity": "sha512-TWjjewVZqdkjavsi8a2THuXgkhUum1k/m4QJpZpzOv72q6WnaoQZGSj5t5uCs7ymJr0H3qj6JcXMwMApSWUOGQ==", + "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,8 +2123,8 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.1.tgz", - "integrity": "sha512-A/MG8es3ylFzZ30oYIQUyJcMOfTfCs0dqqBMzeuzaPRlx4q/72WG+BbKe/pL9BUNIWsM0Q8jn3e3la8enjHJJA==", + "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,9 +2151,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^2.0.1", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-calc": "^2.0.3", + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2" }, "engines": { "node": ">=18" @@ -2189,9 +2189,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.2.tgz", - "integrity": "sha512-/1ur3ca9RWg/KnbLlxaDswyjLSGoaHNDruAzrVhkn5axgd7LOH6JHCBRhrKDafdMw9bf4MQrYFoaLfHAPekLFg==", + "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,9 +2204,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-color-parser": "^3.0.4", + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2" }, "engines": { "node": ">=18" @@ -2216,9 +2216,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.2.tgz", - "integrity": "sha512-qRpvA4sduAfiV9yZG4OM7q/h2Qhr3lg+GrHe9NZwuzWnfSDLGh+Dh4Ea6fQ+1++jdKXW/Cb4/vHRp0ssQYra4w==", + "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,9 +2231,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.2.tgz", - "integrity": "sha512-RUBVCyJE1hTsf9vGp3zrALeMollkAlHRFKm+T36y67nLfOOf+6GNQsdTGFAyLrY65skcm8ddC26Jp1n9ZIauEA==", + "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,9 +2260,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.4.tgz", - "integrity": "sha512-yHUt5DZ61Irvp72notmAl3Zt4Me50EWToWNocazyIFTVYFwwo/EucmV3hWi9zJehu3rOSvMclL7DzvRDfbak/A==", + "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,8 +2364,8 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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" }, @@ -2468,9 +2468,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.1.tgz", - "integrity": "sha512-JsfaoTiBqIuRE+CYL4ZpYKOqJ965GyiMH4b8UrY0Z7i5GfMiHZrK7xtTB29piuyKQzrW+Z8w3PAExhwND9cuAQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.2.tgz", + "integrity": "sha512-oog7VobKvrS34oyUKslI6wCphtJxx0ldiA8RToPQ0HXPWNiXXSM7IbgwOTImJKTIUjo3eL7o5uuPxeu5MsnkvA==", "dev": true, "funding": [ { @@ -2483,7 +2483,7 @@ } ], "dependencies": { - "@csstools/css-tokenizer": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.2", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2494,9 +2494,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.1.tgz", - "integrity": "sha512-EMa3IgUip+F/MwH4r2KfIA9ym9hQkT2PpR9MOukdomfGGCFuw9V3n/iIOBKziN1qfeddsYoOvtYOKQcHU2yIjg==", + "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.1", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", - "@csstools/media-query-list-parser": "^3.0.1" + "@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.1" }, "engines": { "node": ">=18" @@ -2522,9 +2522,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.1.tgz", - "integrity": "sha512-JTzMQz//INahTALkvXnC5lC2fJKzwb5PY443T2zaM9hAzM7nzHMLIlEfFgdtBahVIBtBSalMefdxNr99LGW1lQ==", + "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.1", - "@csstools/css-tokenizer": "^3.0.1", - "@csstools/media-query-list-parser": "^3.0.1" + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2", + "@csstools/media-query-list-parser": "^4.0.1" }, "engines": { "node": ">=18" @@ -2600,9 +2600,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.2.tgz", - "integrity": "sha512-2iSK/T77PHMeorakBAk/WLxSodfIJ/lmi6nxEkuruXfhGH7fByZim4Fw6ZJf4B73SVieRSH2ep8zvYkA2ZfRtA==", + "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,9 +2615,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.2.tgz", - "integrity": "sha512-aBpuUdpJBswNGfw6lOkhown2cZ0YXrMjASye56nkoRpgRe9yDF4BM1fvEuakrCDiaeoUzVaI4SF6+344BflXfQ==", + "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,9 +2669,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.1.tgz", - "integrity": "sha512-dk3KqVcIEYzy9Mvx8amoBbk123BWgd5DfjXDiPrEqxGma37PG7m/MoMmHQhuVHIjvPDHoJwyIZi2yy7j0RA5fw==", + "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,9 +2723,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^2.0.1", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-calc": "^2.0.3", + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2" }, "engines": { "node": ">=18" @@ -2761,9 +2761,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.1.tgz", - "integrity": "sha512-QHOYuN3bzS/rcpAygFhJxJUtD8GuJEWF6f9Zm518Tq/cSMlcTgU+v0geyi5EqbmYxKMig2oKCKUSGqOj9gehkg==", + "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,9 +2776,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^2.0.1", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-calc": "^2.0.3", + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2" }, "engines": { "node": ">=18" @@ -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": { @@ -3244,30 +3244,39 @@ } }, "node_modules/@formatjs/ecma402-abstract": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", - "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.0.tgz", + "integrity": "sha512-IpM+ev1E4QLtstniOE29W1rqH9eTdx5hQdNL8pzrflMj/gogfaoONZqL83LUeQScHAvyMbpqP5C9MzNf+fFwhQ==", "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" + "@formatjs/fast-memoize": "2.2.1", + "@formatjs/intl-localematcher": "0.5.5", + "tslib": "^2.7.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.1.tgz", + "integrity": "sha512-XS2RcOSyWxmUB7BUjj3mlPH0exsUzlf6QfhhijgI941WaJhVxXQ6mEWkdUFIdnKi3TuTYxRdelsgv3mjieIGIA==", + "dependencies": { + "tslib": "^2.7.0" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.5.tgz", + "integrity": "sha512-t5tOGMgZ/i5+ALl2/offNqAQq/lfUnKLEw0mXQI4N4bqpedhrSE+fyKLpwnd22sK0dif6AV+ufQcTsKShB9J1g==", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.7.0" } }, "node_modules/@formatjs/intl-segmenter": { - "version": "11.5.7", - "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-11.5.7.tgz", - "integrity": "sha512-MPvUKOURPY1aHc/d3YtLKp4hamrJtdBRc/AZVt9zRitrNeRszSwpIIYDHka9chQJTRIJlIfS4S9FGMdA1PE3Xw==", + "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.0.0", - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.2.0", + "@formatjs/intl-localematcher": "0.5.5", + "tslib": "^2.7.0" } }, "node_modules/@formkit/auto-animate": { @@ -3282,9 +3291,9 @@ "license": "MIT" }, "node_modules/@github/text-expander-element": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@github/text-expander-element/-/text-expander-element-2.7.2.tgz", - "integrity": "sha512-eTIOUQKoBxe+e0yHKHQHoo4x61Erb7m0lhi2vMRHZS7TwI6OCGSj/3YydAr3obbQbZjevF9wPihLf1wADu3A9g==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@github/text-expander-element/-/text-expander-element-2.8.0.tgz", + "integrity": "sha512-kkS2rZ/CG8HGKblpLDQ8vcK/K7l/Jsvzi/N4ovwPAsFSOImcIbJh2MgCv9tzqE3wAm/qXlscvh3Ms4Hh1vtZvw==", "dependencies": { "@github/combobox-nav": "^2.0.2", "dom-input-range": "^1.2.0" @@ -3539,30 +3548,30 @@ "license": "MIT" }, "node_modules/@lingui/babel-plugin-extract-messages": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-4.11.4.tgz", - "integrity": "sha512-7gUOsYJ4wIjv/0tGxAGiGpgWKCybFPP0tCQMz6baa9xcsk8Vp7Xmuf9og1AD6EMawjStibQsQyE6xaRnJgpoHg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-4.13.0.tgz", + "integrity": "sha512-7tvSw/768RU52NYJ9CtdcoPfkR6fF9+1uX7mXkhvcjOHAdZJReOu+8MLTusjjOtcSPYHc3yoercTbNo1k32gQQ==", "dev": true, "engines": { "node": ">=16.0.0" } }, "node_modules/@lingui/cli": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-4.11.4.tgz", - "integrity": "sha512-PauBkvi++YkYAYq6w9MwkBmE6KiDE9wRh5DkN8yFPRcfj64vkE2l1HFENCqL/jg63kr8esOAiueD9+CtUGVyDg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-4.13.0.tgz", + "integrity": "sha512-NqQJmm2b3sf+Fb/blhcS2C6kqzkHVmS4m9VzQZZT0UvxN0Mw5S6hu0aAy/ndXBfRelNqMpdTFGBlrJn/IC6GjQ==", "dev": true, "dependencies": { "@babel/core": "^7.21.0", "@babel/generator": "^7.21.1", - "@babel/parser": "^7.21.2", + "@babel/parser": "^7.22.0", "@babel/runtime": "^7.21.0", "@babel/types": "^7.21.2", - "@lingui/babel-plugin-extract-messages": "4.11.4", - "@lingui/conf": "4.11.4", - "@lingui/core": "4.11.4", - "@lingui/format-po": "4.11.4", - "@lingui/message-utils": "4.11.4", + "@lingui/babel-plugin-extract-messages": "4.13.0", + "@lingui/conf": "4.13.0", + "@lingui/core": "4.13.0", + "@lingui/format-po": "4.13.0", + "@lingui/message-utils": "4.13.0", "babel-plugin-macros": "^3.0.1", "chalk": "^4.1.0", "chokidar": "3.5.1", @@ -4071,9 +4080,9 @@ } }, "node_modules/@lingui/conf": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-4.11.4.tgz", - "integrity": "sha512-FC12yP0MHzu2QN5/4JkFHdz25l4Yu2ucjj3K12Y8tW/75oPh+n8k2u1+3/M68zWoqf5yyFvU4m2A+gxEmeR0iw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-4.13.0.tgz", + "integrity": "sha512-7NSinlzgSMKBezLsSM7DMwr0IpTHKr8nuSDpTZpI79+BhW+Xq38jPRQqMXdzItW8Cl/Lsdr3Y3MnYJIl8tADsQ==", "dependencies": { "@babel/runtime": "^7.20.13", "chalk": "^4.1.0", @@ -4151,12 +4160,12 @@ } }, "node_modules/@lingui/core": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/core/-/core-4.11.4.tgz", - "integrity": "sha512-W0bBIFe44s//Qs+RQ+NMfzK5vAm9oEKyDddlN94Db6rzeUT/IJo7N+T75A6Bya8v/BrtF2G/W4b77eS3sd0utw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/core/-/core-4.13.0.tgz", + "integrity": "sha512-kRqQWeEVoqNrDtEdyHPWGsAHRStN8ObYc5a1gdyuBhoj1zaoUS/DMK5C7B1ZeTtj6rCCmZRs6d2tN12hsZ2zJA==", "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/message-utils": "4.11.4", + "@lingui/message-utils": "4.13.0", "unraw": "^3.0.0" }, "engines": { @@ -4164,21 +4173,21 @@ } }, "node_modules/@lingui/detect-locale": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/detect-locale/-/detect-locale-4.11.4.tgz", - "integrity": "sha512-JmIuFSyB8KitO02iAWV3+v0brkHYx72akiwhe2Jta9gzRVPeDFj2uyzO+UJXzzhPylAkX9o3suXIMXpy1dmXAQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/detect-locale/-/detect-locale-4.13.0.tgz", + "integrity": "sha512-1Q08tMdG3Avh7ruBxFPNA9Ll1ekunpIMHWg9MuGDcDsG/5ucNbZocUh9+iJxkqWmBMNbEaOj14oN8oRsHk2ufA==", "engines": { "node": ">=16.0.0" } }, "node_modules/@lingui/format-po": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-4.11.4.tgz", - "integrity": "sha512-PiWbTiiNgYZTFVuBHYirtAG98cDxrT0IwmSvETQk4YbaqCdn28/J7fRFZScsKqe8LmpnxX4EXZLs/R0MP2jLHA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-4.13.0.tgz", + "integrity": "sha512-G//WCCXi0cZ9SGuZ0gwm7JCZEiKvENZViqceX8Qjid0r/Lwom3SGeZhVaqzWGQR5YoA8KBQ9elJrbcVJnKh97g==", "dev": true, "dependencies": { - "@lingui/conf": "4.11.4", - "@lingui/message-utils": "4.11.4", + "@lingui/conf": "4.13.0", + "@lingui/message-utils": "4.13.0", "date-fns": "^3.6.0", "pofile": "^1.1.4" }, @@ -4187,15 +4196,15 @@ } }, "node_modules/@lingui/macro": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/macro/-/macro-4.11.4.tgz", - "integrity": "sha512-mgfyBpp/UCiaJxr+DTBtaCUKnq2fV9JrmUmBumC9PaFDCXYfjB0A2gaq2XEgn9PmUKuzC7PGs1sPJ3TBJ8uGTw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/macro/-/macro-4.13.0.tgz", + "integrity": "sha512-OjhaWOWbTCXHOOHNaGI0shMP3qrPjNZ19tpEx/iStAmJq64fkevx/HbDPI0uuqLX8v1NFWG/SzBMIQzJb5YOvA==", "dependencies": { "@babel/runtime": "^7.20.13", "@babel/types": "^7.20.7", - "@lingui/conf": "4.11.4", - "@lingui/core": "4.11.4", - "@lingui/message-utils": "4.11.4" + "@lingui/conf": "4.13.0", + "@lingui/core": "4.13.0", + "@lingui/message-utils": "4.13.0" }, "engines": { "node": ">=16.0.0" @@ -4206,9 +4215,9 @@ } }, "node_modules/@lingui/message-utils": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-4.11.4.tgz", - "integrity": "sha512-ZTCDhGbj5EN+P9Ajcj0Gq9uDP3HZTRW6/kT09WkiFgL4NayYLksPvgBk29sIglsS6M+Y6Iw2BrUK403SZjZKgw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-4.13.0.tgz", + "integrity": "sha512-tI/WBVZym+APwqk0O3xTaF0k+RQIv5E4PqGHdXqwbofycHly2C+izH+hg6UeNctc6jd19GRwqu/4ga9knkdAlQ==", "dependencies": { "@messageformat/parser": "^5.0.0", "js-sha256": "^0.10.1" @@ -4218,12 +4227,12 @@ } }, "node_modules/@lingui/react": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/react/-/react-4.11.4.tgz", - "integrity": "sha512-f7re4HhjI6CLBV1CY/PcI3VYP5zS4rtfU33speWnfkymsxGIXQv4ol3BqrgPLGhypMl2nKcL5nfL+LewrLIW8g==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/react/-/react-4.13.0.tgz", + "integrity": "sha512-5remR9rVwosiiX/RnEWETHA8cpqQiP7U87OXXMPz67LuyG3XP8RP+ic75rVn284DHLHgpjDbauz7vYIz855ZoQ==", "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/core": "4.11.4" + "@lingui/core": "4.13.0" }, "engines": { "node": ">=16.0.0" @@ -4233,13 +4242,13 @@ } }, "node_modules/@lingui/vite-plugin": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@lingui/vite-plugin/-/vite-plugin-4.11.4.tgz", - "integrity": "sha512-491PbqPyeb3E5+vDyOlMJsNZZIvhkH7A5F8RgaBk3lKSU5w7k1aI5nTqhOcYpZNEzT3tIWNZCUQ3u5znoP3cEQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@lingui/vite-plugin/-/vite-plugin-4.13.0.tgz", + "integrity": "sha512-PuyMQwVYhwoWva+rNyiMQFoit9WAFqcMP/8c8fL3fFJlSaAXa+Roy4RfnoixfPoqe++qEOkjvDF0vKSAjiX0iA==", "dev": true, "dependencies": { - "@lingui/cli": "4.11.4", - "@lingui/conf": "4.11.4" + "@lingui/cli": "4.13.0", + "@lingui/conf": "4.13.0" }, "engines": { "node": ">=16.0.0" @@ -5607,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": [ { @@ -5622,7 +5631,7 @@ } ], "dependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -5632,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": [ { @@ -5647,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": { @@ -5709,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": [ { @@ -7757,15 +7766,15 @@ } }, "node_modules/masto": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/masto/-/masto-6.8.0.tgz", - "integrity": "sha512-amooNsp4mebu/dtBZfUHP6I0mcHSDB0JoTyrCWdw2YcCOIuPX6bM0gA60nEaLZqoHSF7xG63TpdDbAYI37Fnlg==", + "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.0" + "ws": "^8.18.0" } }, "node_modules/merge-stream": { @@ -8390,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": [ { @@ -8405,7 +8414,7 @@ } ], "dependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -8431,9 +8440,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.2.tgz", - "integrity": "sha512-c2WkR0MS73s+P5SgY1KBaSEE61Rj+miW095rkWDnMQxbTCQkp6y/jft8U0QMxEsI4k1Pd4PdV+TP9/1zIDR6XQ==", + "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": [ { @@ -8446,9 +8455,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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" }, @@ -8512,9 +8521,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.2.tgz", - "integrity": "sha512-IDtxB1VgPayRLjNBMjuf827sn1j2m9EGnhIxpx2coVerbWJF+twt590+PKvdDc4K8QNFqFJh+W/SOiHpasVXsg==", + "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": [ { @@ -8527,10 +8536,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.1", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", - "@csstools/media-query-list-parser": "^3.0.1" + "@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.1" }, "engines": { "node": ">=18" @@ -8540,9 +8549,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.1.tgz", - "integrity": "sha512-SB4GjuZjIq5GQFNbxFrirQPbkdbJooyNy8bh+fcJ8ZG0oasJTflTTtR4geb56h+FBVDIb9Hx4v/NiG2caOj8nQ==", + "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": [ { @@ -8555,9 +8564,9 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.1", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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" }, @@ -8569,9 +8578,9 @@ } }, "node_modules/postcss-custom-selectors": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.1.tgz", - "integrity": "sha512-2McIpyhAeKhUzVqrP4ZyMBpK5FuD+Y9tpQwhcof49652s7gez8057cSaOg/epYcKlztSYxb0GHfi7W5h3JoGUg==", + "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": [ { @@ -8584,10 +8593,10 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.1", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", - "postcss-selector-parser": "^6.1.0" + "@csstools/cascade-layer-name-parser": "^2.0.3", + "@csstools/css-parser-algorithms": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.2", + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -8622,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": [ { @@ -8637,7 +8646,7 @@ } ], "dependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -8674,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": [ { @@ -8689,7 +8698,7 @@ } ], "dependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -8699,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": [ { @@ -8714,7 +8723,7 @@ } ], "dependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -8782,9 +8791,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.2.tgz", - "integrity": "sha512-h4ARGLIBtC1PmCHsLgTWWj8j1i1CXoaht4A5RlITDX2z9AeFBak0YlY6sdF4oJGljrep+Dg2SSccIj4QnFbRDg==", + "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": [ { @@ -8797,9 +8806,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^3.0.2", - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", + "@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" }, @@ -8836,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": [ { @@ -8851,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" @@ -8945,9 +8954,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.0.6.tgz", - "integrity": "sha512-qixfM2wbvKJhUjJELLB8lV2UCsyrMdSXqiXHiNKMgAbNturstc80j/8MsthJeOpxYEekrCrFzcaoOJm8JRSdBg==", + "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": [ { @@ -8960,67 +8969,67 @@ } ], "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.0", - "@csstools/postcss-color-function": "^4.0.2", - "@csstools/postcss-color-mix-function": "^3.0.2", - "@csstools/postcss-content-alt-text": "^2.0.1", - "@csstools/postcss-exponential-functions": "^2.0.1", + "@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.2", - "@csstools/postcss-gradients-interpolation-method": "^5.0.2", - "@csstools/postcss-hwb-function": "^4.0.2", + "@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.4", + "@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.1", - "@csstools/postcss-media-minmax": "^2.0.1", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.1", + "@csstools/postcss-logical-viewport-units": "^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.2", + "@csstools/postcss-oklab-function": "^4.0.4", "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-relative-color-syntax": "^3.0.2", - "@csstools/postcss-scope-pseudo-class": "^4.0.0", - "@csstools/postcss-stepped-value-functions": "^4.0.1", + "@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.1", + "@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.2", + "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.2", - "postcss-custom-properties": "^14.0.1", - "postcss-custom-selectors": "^8.0.1", - "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.2", + "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" @@ -9030,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": [ { @@ -9045,7 +9054,7 @@ } ], "dependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -9065,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": [ { @@ -9080,7 +9089,7 @@ } ], "dependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": ">=18" @@ -9090,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", @@ -9110,9 +9119,9 @@ "license": "MIT" }, "node_modules/preact": { - "version": "10.24.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", - "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==", + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -10197,10 +10206,9 @@ } }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "license": "0BSD" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/twemoji-parser": { "version": "11.0.2", @@ -10474,9 +10482,9 @@ } }, "node_modules/use-debounce": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.3.tgz", - "integrity": "sha512-DxQSI9ZKso689WM1mjgGU3ozcxU1TJElBJ3X6S4SMzMNcm2lVH0AHmyXB+K7ewjz2BSUKJTDqTcwtSMRfB89dg==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz", + "integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==", "engines": { "node": ">= 16.0.0" }, @@ -10536,9 +10544,9 @@ } }, "node_modules/vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "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 0dc43ec6..fa174292 100644 --- a/package.json +++ b/package.json @@ -16,15 +16,15 @@ "readme:i18n-volunteers": "node scripts/update-i18n-volunteers-readme.js" }, "dependencies": { - "@formatjs/intl-localematcher": "~0.5.4", - "@formatjs/intl-segmenter": "~11.5.7", + "@formatjs/intl-localematcher": "~0.5.5", + "@formatjs/intl-segmenter": "~11.6.0", "@formkit/auto-animate": "~0.8.2", - "@github/text-expander-element": "~2.7.2", + "@github/text-expander-element": "~2.8.0", "@iconify-icons/mingcute": "~1.2.9", "@justinribeiro/lite-youtube": "~1.5.0", - "@lingui/detect-locale": "~4.11.4", - "@lingui/macro": "~4.11.4", - "@lingui/react": "~4.11.4", + "@lingui/detect-locale": "~4.13.0", + "@lingui/macro": "~4.13.0", + "@lingui/react": "~4.13.0", "@szhsin/react-menu": "~4.2.2", "compare-versions": "~6.1.1", "fast-blurhash": "~1.1.4", @@ -36,11 +36,11 @@ "js-cookie": "~3.0.5", "just-debounce-it": "~3.2.0", "lz-string": "~1.5.0", - "masto": "~6.8.0", + "masto": "~6.10.1", "moize": "~6.1.6", "p-retry": "~6.2.0", "p-throttle": "~6.2.0", - "preact": "~10.24.2", + "preact": "~10.24.3", "punycode": "~2.3.1", "react-hotkeys-hook": "~4.5.1", "react-intersection-observer": "~9.13.1", @@ -51,22 +51,22 @@ "tinyld": "~1.3.4", "toastify-js": "~1.12.0", "uid": "~2.0.2", - "use-debounce": "~10.0.3", + "use-debounce": "~10.0.4", "use-long-press": "~3.2.0", "use-resize-observer": "~9.1.0", "valtio": "2.0.0" }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "~4.3.1", - "@lingui/cli": "~4.11.4", - "@lingui/vite-plugin": "~4.11.4", + "@lingui/cli": "~4.13.0", + "@lingui/vite-plugin": "~4.13.0", "@preact/preset-vite": "~2.9.1", "babel-plugin-macros": "~3.1.0", "postcss": "~8.4.47", "postcss-dark-theme-class": "~1.3.0", - "postcss-preset-env": "~10.0.6", + "postcss-preset-env": "~10.0.8", "twitter-text": "~3.1.0", - "vite": "~5.4.8", + "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 ef6404f9..5e572ed5 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); @@ -1306,6 +1395,11 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) { user-select: none; width: 100%; gap: 16px; + --accent-gradient: var(--accent-gradient-light); + @media (prefers-color-scheme: dark) { + --accent-gradient: var(--accent-gradient-dark); + } + background-image: linear-gradient(to var(--forward), var(--accent-gradient)); } .carousel::-webkit-scrollbar { display: none; @@ -1320,7 +1414,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) { width: 100%; height: 100vh; height: 100dvh; - background-color: var(--accent-alpha-color); + background-color: var(--accent-light-color); + @media (prefers-color-scheme: dark) { + background-color: var(--accent-dark-color); + } /* background-image: radial-gradient( closest-side, var(--accent-color) 10%, @@ -1861,7 +1958,7 @@ body > .szh-menu-container { box-shadow: 0 3px 24px -3px var(--drop-shadow-color); } .szh-menu__header { - margin: -8px 0 8px; + margin: -4px 0 8px; padding: 8px 16px; color: var(--text-insignificant-color); font-size: 90%; @@ -2542,6 +2639,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/app.jsx b/src/app.jsx index f02855b3..8d95cc34 100644 --- a/src/app.jsx +++ b/src/app.jsx @@ -210,6 +210,12 @@ const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent); if (isIOS) { document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'visible') { + // Don't reset theme color if media modal is showing + // Media modal will set its own theme color based on the media's color + const showingMediaModal = + document.getElementsByClassName('media-modal-container').length > 0; + if (showingMediaModal) return; + const theme = store.local.get('theme'); let $meta; if (theme) { diff --git a/src/components/account-info.jsx b/src/components/account-info.jsx index 8684befe..30960b2d 100644 --- a/src/components/account-info.jsx +++ b/src/components/account-info.jsx @@ -413,7 +413,7 @@ function AccountInfo({ ██ Followers
- ██ Following + ██ Following
██ Posts @@ -739,7 +739,10 @@ function AccountInfo({ // states.showAccount = false; setTimeout(() => { states.showGenericAccounts = { - heading: t`Following`, + heading: t({ + id: 'following.stats', + message: 'Following', + }), fetchAccounts: fetchFollowing, instance, excludeRelationshipAttrs: isSelf ? ['following'] : [], @@ -753,7 +756,7 @@ function AccountInfo({ {shortenNumber(followingCount)} {' '} - Following + Following
{ 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 (
new Intl.RelativeTimeFormat(locale || undefined)); +const LF = mem((locale) => new Intl.ListFormat(locale || undefined)); const CUSTOM_EMOJIS_COUNT = 100; @@ -210,6 +211,7 @@ function Compose({ }) { const { i18n } = useLingui(); const rtf = RTF(i18n.locale); + const lf = LF(i18n.locale); console.warn('RENDER COMPOSER'); const { masto, instance } = api(); @@ -226,11 +228,11 @@ function Compose({ const { statuses: { maxCharacters, - maxMediaAttachments, + maxMediaAttachments, // Beware: it can be undefined! charactersReservedPerUrl, } = {}, mediaAttachments: { - supportedMimeTypes = [], + supportedMimeTypes, imageSizeLimit, imageMatrixLimit, videoSizeLimit, @@ -600,15 +602,31 @@ function Compose({ const handleItems = (e) => { const { items } = e.clipboardData || e.dataTransfer; const files = []; + const unsupportedFiles = []; for (let i = 0; i < items.length; i++) { const item = items[i]; if (item.kind === 'file') { const file = item.getAsFile(); - if (file && supportedMimeTypes.includes(file.type)) { + if ( + supportedMimeTypes !== undefined && + !supportedMimeTypes.includes(file.type) + ) { + unsupportedFiles.push(file); + } else { files.push(file); } } } + if (unsupportedFiles.length > 0) { + alert( + plural(unsupportedFiles.length, { + one: `File ${unsupportedFiles[0].name} is not supported.`, + other: `Files ${lf.format( + unsupportedFiles.map((f) => f.name), + )} are not supported.`, + }), + ); + } if (files.length > 0 && mediaAttachments.length >= maxMediaAttachments) { alert( plural(maxMediaAttachments, { @@ -623,16 +641,19 @@ function Compose({ e.preventDefault(); e.stopPropagation(); // Auto-cut-off files to avoid exceeding maxMediaAttachments - const max = maxMediaAttachments - mediaAttachments.length; - const allowedFiles = files.slice(0, max); - if (allowedFiles.length <= 0) { - alert( - plural(maxMediaAttachments, { - one: 'You can only attach up to 1 file.', - other: 'You can only attach up to # files.', - }), - ); - return; + let allowedFiles = files; + if (maxMediaAttachments !== undefined) { + const max = maxMediaAttachments - mediaAttachments.length; + allowedFiles = allowedFiles.slice(0, max); + if (allowedFiles.length <= 0) { + alert( + plural(maxMediaAttachments, { + one: 'You can only attach up to 1 file.', + other: 'You can only attach up to # files.', + }), + ); + return; + } } const mediaFiles = allowedFiles.map((file) => ({ file, @@ -1307,8 +1328,11 @@ function Compose({