From 14e5c64147f717eba7d5240ae0b093103d2aa5dc Mon Sep 17 00:00:00 2001
From: Venkat
Date: Sat, 24 Aug 2024 11:08:47 -0400
Subject: [PATCH 01/65] Change the button text for installation instructions
for Mac
---
src/components/download.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/download.tsx b/src/components/download.tsx
index 2ab7f6e..2fe9d21 100644
--- a/src/components/download.tsx
+++ b/src/components/download.tsx
@@ -248,7 +248,7 @@ export default function DownloadPage() {
"https://docs.zen-browser.app/guides/install-macos")
}
>
- Download Zen for MacOS
+ Installation Instructions for MacOS
)}
From 19c3d6e4ffb522c5f1b090f5ad24c0b95e5f0bfc Mon Sep 17 00:00:00 2001
From: Aashirwadrunjan
Date: Wed, 28 Aug 2024 12:16:39 +0530
Subject: [PATCH 02/65] feat: From 264, for the Choose your platform, I tried
removing the checkbox and making it to select the div and it looks cooler.
fix: The box sizing for Download Zen for macOS for AArch64 and Intel were not
consistent like windows and linux.
---
package-lock.json | 551 ++++++++++++++++++++++++++++--------
package.json | 3 +-
src/components/download.tsx | 150 +++++-----
3 files changed, 520 insertions(+), 184 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 89caf89..2b95408 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -30,7 +30,7 @@
"feed": "^4.2.2",
"framer-motion": "^11.3.24",
"lucide-react": "^0.400.0",
- "next": "14.2.4",
+ "next": "^14.2.4",
"next-themes": "^0.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@@ -38,6 +38,7 @@
"react-markdown": "^9.0.1",
"react-spring": "^9.7.4",
"react-sticky-el": "^2.1.0",
+ "sharp": "^0.33.5",
"styled-components": "^6.1.12",
"tailwind-merge": "^2.5.1",
"tailwindcss-animate": "^1.0.7",
@@ -63,7 +64,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -72,6 +72,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@emnapi/runtime": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz",
+ "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@emotion/is-prop-valid": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
@@ -238,11 +247,352 @@
"dev": true,
"license": "BSD-3-Clause"
},
+ "node_modules/@img/sharp-darwin-arm64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
+ "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-arm64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-darwin-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
+ "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-x64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
+ "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-x64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
+ "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
+ "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
+ "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-s390x": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz",
+ "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==",
+ "cpu": [
+ "s390x"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-x64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
+ "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz",
+ "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz",
+ "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
+ "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm": "1.0.5"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
+ "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-s390x": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz",
+ "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==",
+ "cpu": [
+ "s390x"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-s390x": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
+ "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-x64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-arm64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz",
+ "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz",
+ "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-wasm32": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz",
+ "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==",
+ "cpu": [
+ "wasm32"
+ ],
+ "optional": true,
+ "dependencies": {
+ "@emnapi/runtime": "^1.2.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-ia32": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz",
+ "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
+ "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
"license": "ISC",
"dependencies": {
"string-width": "^5.1.2",
@@ -260,7 +610,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
@@ -273,7 +622,6 @@
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
@@ -289,7 +637,6 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
@@ -304,7 +651,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.0.0"
@@ -314,7 +660,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.0.0"
@@ -324,14 +669,12 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -511,7 +854,6 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
@@ -525,7 +867,6 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 8"
@@ -535,7 +876,6 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
@@ -549,7 +889,6 @@
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
"license": "MIT",
"optional": true,
"engines": {
@@ -1716,14 +2055,12 @@
"version": "15.7.12",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
"integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==",
- "dev": true,
"license": "MIT"
},
"node_modules/@types/react": {
"version": "18.3.4",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz",
"integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@types/prop-types": "*",
@@ -1734,7 +2071,7 @@
"version": "18.3.0",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
"integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@types/react": "*"
@@ -1969,7 +2306,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -1979,7 +2315,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -1995,14 +2330,12 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true,
"license": "MIT"
},
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
"license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
@@ -2016,7 +2349,6 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true,
"license": "MIT"
},
"node_modules/argparse": {
@@ -2280,14 +2612,12 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true,
"license": "MIT"
},
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -2311,7 +2641,6 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
@@ -2378,7 +2707,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -2494,7 +2822,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
@@ -2519,7 +2846,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
@@ -2573,11 +2899,22 @@
"phenomenon": "^1.6.0"
}
},
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -2590,9 +2927,17 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
"license": "MIT"
},
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -2627,7 +2972,6 @@
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
"license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
@@ -2662,7 +3006,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
"license": "MIT",
"bin": {
"cssesc": "bin/cssesc"
@@ -2863,6 +3206,14 @@
"node": ">=6"
}
},
+ "node_modules/detect-libc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/detect-node-es": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
@@ -2886,7 +3237,6 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true,
"license": "Apache-2.0"
},
"node_modules/dir-glob": {
@@ -2906,7 +3256,6 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true,
"license": "MIT"
},
"node_modules/doctrine": {
@@ -2938,14 +3287,12 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true,
"license": "MIT"
},
"node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true,
"license": "MIT"
},
"node_modules/enhanced-resolve": {
@@ -3625,7 +3972,6 @@
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -3642,7 +3988,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
@@ -3669,7 +4014,6 @@
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "dev": true,
"license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
@@ -3704,7 +4048,6 @@
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -3766,7 +4109,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
"integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
- "dev": true,
"license": "ISC",
"dependencies": {
"cross-spawn": "^7.0.0",
@@ -3830,7 +4172,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
@@ -3845,7 +4186,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -3944,7 +4284,6 @@
"version": "10.3.10",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "dev": true,
"license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
@@ -3967,7 +4306,6 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.3"
@@ -3980,7 +4318,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
@@ -3990,7 +4327,6 @@
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
@@ -4161,7 +4497,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -4364,6 +4699,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
"node_modules/is-async-function": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
@@ -4397,7 +4737,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
@@ -4440,7 +4779,6 @@
"version": "2.15.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
"integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"hasown": "^2.0.2"
@@ -4498,7 +4836,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -4537,7 +4874,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
@@ -4586,7 +4922,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.12.0"
@@ -4778,7 +5113,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true,
"license": "ISC"
},
"node_modules/iterator.prototype": {
@@ -4799,7 +5133,6 @@
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
"integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
@@ -4818,7 +5151,6 @@
"version": "1.21.6",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
"integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
- "dev": true,
"license": "MIT",
"bin": {
"jiti": "bin/jiti.js"
@@ -4928,7 +5260,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -4938,7 +5269,6 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true,
"license": "MIT"
},
"node_modules/locate-path": {
@@ -4990,7 +5320,6 @@
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
"license": "ISC"
},
"node_modules/lucide-react": {
@@ -5159,7 +5488,6 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 8"
@@ -5611,7 +5939,6 @@
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
- "dev": true,
"license": "MIT",
"dependencies": {
"braces": "^3.0.3",
@@ -5671,7 +5998,6 @@
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dev": true,
"license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -5687,7 +6013,6 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
"license": "MIT",
"dependencies": {
"any-promise": "^1.0.0",
@@ -5724,7 +6049,6 @@
"version": "14.2.4",
"resolved": "https://registry.npmjs.org/next/-/next-14.2.4.tgz",
"integrity": "sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==",
- "license": "MIT",
"dependencies": {
"@next/env": "14.2.4",
"@swc/helpers": "0.5.5",
@@ -5823,7 +6147,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -5833,7 +6156,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -5843,7 +6165,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -6104,7 +6425,6 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -6114,14 +6434,12 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true,
"license": "MIT"
},
"node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
"lru-cache": "^10.2.0",
@@ -6202,7 +6520,6 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
@@ -6215,7 +6532,6 @@
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
"integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -6235,7 +6551,6 @@
"version": "8.4.41",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
"integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -6264,7 +6579,6 @@
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "dev": true,
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.0.0",
@@ -6282,7 +6596,6 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"camelcase-css": "^2.0.1"
@@ -6302,7 +6615,6 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
"integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -6338,7 +6650,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
"integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=14"
@@ -6351,7 +6662,6 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
"integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -6377,7 +6687,6 @@
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"cssesc": "^3.0.0",
@@ -6484,7 +6793,6 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6676,7 +6984,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"pify": "^2.3.0"
@@ -6686,7 +6993,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -6696,7 +7002,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
@@ -6783,7 +7088,6 @@
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
"integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-core-module": "^2.13.0",
@@ -6821,7 +7125,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
"license": "MIT",
"engines": {
"iojs": ">=1.0.0",
@@ -6871,7 +7174,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6947,7 +7249,6 @@
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -6996,11 +7297,48 @@
"integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==",
"license": "MIT"
},
+ "node_modules/sharp": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
+ "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.3",
+ "semver": "^7.6.3"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-darwin-arm64": "0.33.5",
+ "@img/sharp-darwin-x64": "0.33.5",
+ "@img/sharp-libvips-darwin-arm64": "1.0.4",
+ "@img/sharp-libvips-darwin-x64": "1.0.4",
+ "@img/sharp-libvips-linux-arm": "1.0.5",
+ "@img/sharp-libvips-linux-arm64": "1.0.4",
+ "@img/sharp-libvips-linux-s390x": "1.0.4",
+ "@img/sharp-libvips-linux-x64": "1.0.4",
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.4",
+ "@img/sharp-linux-arm": "0.33.5",
+ "@img/sharp-linux-arm64": "0.33.5",
+ "@img/sharp-linux-s390x": "0.33.5",
+ "@img/sharp-linux-x64": "0.33.5",
+ "@img/sharp-linuxmusl-arm64": "0.33.5",
+ "@img/sharp-linuxmusl-x64": "0.33.5",
+ "@img/sharp-wasm32": "0.33.5",
+ "@img/sharp-win32-ia32": "0.33.5",
+ "@img/sharp-win32-x64": "0.33.5"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
@@ -7013,7 +7351,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -7042,7 +7379,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
"license": "ISC",
"engines": {
"node": ">=14"
@@ -7051,6 +7387,14 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -7105,7 +7449,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"eastasianwidth": "^0.2.0",
@@ -7124,7 +7467,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
"license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
@@ -7139,14 +7481,12 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
"license": "MIT"
},
"node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -7156,7 +7496,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
@@ -7169,7 +7508,6 @@
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
@@ -7300,7 +7638,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
@@ -7314,7 +7651,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
@@ -7450,7 +7786,6 @@
"version": "3.35.0",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.2",
@@ -7473,7 +7808,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -7496,7 +7830,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -7519,7 +7852,6 @@
"version": "3.4.10",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
"integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
@@ -7583,7 +7915,6 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"any-promise": "^1.0.0"
@@ -7593,7 +7924,6 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"thenify": ">= 3.1.0 < 4"
@@ -7606,7 +7936,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
@@ -7658,7 +7987,6 @@
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true,
"license": "Apache-2.0"
},
"node_modules/tsconfig-paths": {
@@ -8003,7 +8331,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true,
"license": "MIT"
},
"node_modules/vfile": {
@@ -8055,7 +8382,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
"license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
@@ -8164,7 +8490,6 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^6.1.0",
@@ -8183,7 +8508,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
@@ -8201,14 +8525,12 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
"license": "MIT"
},
"node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -8218,7 +8540,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
"license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
@@ -8233,7 +8554,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
@@ -8246,7 +8566,6 @@
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
@@ -8259,7 +8578,6 @@
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
@@ -8315,7 +8633,6 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz",
"integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==",
- "dev": true,
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
diff --git a/package.json b/package.json
index fa53fd6..10aa65e 100644
--- a/package.json
+++ b/package.json
@@ -34,7 +34,7 @@
"feed": "^4.2.2",
"framer-motion": "^11.3.24",
"lucide-react": "^0.400.0",
- "next": "14.2.4",
+ "next": "^14.2.4",
"next-themes": "^0.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@@ -42,6 +42,7 @@
"react-markdown": "^9.0.1",
"react-spring": "^9.7.4",
"react-sticky-el": "^2.1.0",
+ "sharp": "^0.33.5",
"styled-components": "^6.1.12",
"tailwind-merge": "^2.5.1",
"tailwindcss-animate": "^1.0.7",
diff --git a/src/components/download.tsx b/src/components/download.tsx
index f5f7e79..2080de6 100644
--- a/src/components/download.tsx
+++ b/src/components/download.tsx
@@ -261,6 +261,7 @@ export default function DownloadPage() {
>
)}
+ {/*Changes for the Choose your platform as checkbox looks old*/}
{platform === null && (
@@ -268,39 +269,61 @@ export default function DownloadPage() {
Choose the platform you want to download Zen for.
- setSelectedPlatform("Windows")}
- className={ny(
- "select-none mb-2 px-4 py-3 flex items-center rounded-lg bg-background cursor-pointer border",
- selectedPlatform === "Windows" ? "border-blue-400" : ""
- )}
- >
-
-
-
Windows
-
- setSelectedPlatform("Linux")}
- className={ny(
- "select-none mb-2 px-4 py-3 flex items-center rounded-lg bg-background cursor-pointer border",
- selectedPlatform === "Linux" ? "border-yellow-400" : ""
- )}
- >
-
-
-
Linux
-
- setSelectedPlatform("MacOS")}
- className={ny(
- "select-none mb-2 px-4 py-3 flex items-center rounded-lg bg-background cursor-pointer border",
- selectedPlatform === "MacOS" ? "border-purple-400" : ""
- )}
- >
-
-
-
MacOS
-
+
+
setSelectedPlatform("Windows")}
+ className={ny(
+ "select-none mr-2 flex flex-col items-center justify-center rounded-lg bg-background cursor-pointer border",
+ selectedPlatform === "Windows" ? "border-blue-400" : ""
+ )}
+ style={{
+ height: "11.25rem",
+ width: "18.75rem",
+ }}
+ >
+
+
Windows
+
+
+
setSelectedPlatform("Linux")}
+ className={ny(
+ "select-none mr-2 flex flex-col items-center justify-center rounded-lg bg-background cursor-pointer border",
+ selectedPlatform === "Linux" ? "border-yellow-400" : ""
+ )}
+ style={{
+ height: "11.25rem",
+ width: "18.75rem",
+ }}
+ >
+
+
Linux
+
+
+
setSelectedPlatform("MacOS")}
+ className={ny(
+ "select-none flex flex-col items-center justify-center rounded-lg bg-background cursor-pointer border",
+ selectedPlatform === "MacOS" ? "border-purple-400" : ""
+ )}
+ style={{
+ height: "11.25rem",
+ width: "18.75rem",
+ }}
+ >
+
+
MacOS
+
+
)}
{/* Architecture */}
@@ -369,40 +392,35 @@ export default function DownloadPage() {
Click the button below to download Zen for MacOS.
+ {/*Fixed the issue where the box height of AArch64 and Intel were not consistent like in the windows and linux*/}
-
setSelectedArchitecture("specific")}
- className={ny(
- "select-none w-full h-full mb-2 p-5 flex flex-col items-center rounded-lg bg-background cursor-pointer border",
- selectedArchitecture === "specific"
- ? "border-blue-400"
- : ""
- )}
- >
-
- 🍏
-
-
AArch64
-
64-bit ARM architecture, for Apple's M Series Chips
-
-
setSelectedArchitecture("generic")}
- className={ny(
- "select-none w-full h-full mb-2 ml-10 p-5 flex flex-col items-center rounded-lg bg-background cursor-pointer border",
- selectedArchitecture === "generic"
- ? "border-blue-400"
- : ""
- )}
- >
-
- x64
-
-
Intel
-
- 64-bit Intel architecture, for older Macs
-
-
-
+
setSelectedArchitecture("specific")}
+ className={ny(
+ "select-none w-full h-64 mb-2 p-5 flex flex-col items-center rounded-lg bg-background cursor-pointer border",
+ selectedArchitecture === "specific" ? "border-blue-400" : ""
+ )}
+ >
+
🍏
+
AArch64
+
+ 64-bit ARM architecture, for Apple's M Series Chips
+
+
+
setSelectedArchitecture("generic")}
+ className={ny(
+ "select-none w-full h-64 mb-2 ml-10 p-5 flex flex-col items-center rounded-lg bg-background cursor-pointer border",
+ selectedArchitecture === "generic" ? "border-blue-400" : ""
+ )}
+ >
+
x64
+
Intel
+
+ 64-bit Intel architecture, for older Macs
+
+
+
)}
{flowIndex === 2 && platform === "Windows" && (
From 02b37104ce3f0d137edf9ed1aafde07dae4b6962 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sat, 31 Aug 2024 00:27:53 +1000
Subject: [PATCH 03/65] feat: Translating only navbar as POC
---
messages/README-LANGUAGES.md | 84 ++++++++++--
messages/de.json | 248 +++++++++++++++++++++++++++++++++-
messages/en.json | 248 +++++++++++++++++++++++++++++++++-
src/components/mobile-nav.tsx | 23 +++-
src/components/navigation.tsx | 63 +++++----
5 files changed, 615 insertions(+), 51 deletions(-)
diff --git a/messages/README-LANGUAGES.md b/messages/README-LANGUAGES.md
index ec15c0b..f01d457 100644
--- a/messages/README-LANGUAGES.md
+++ b/messages/README-LANGUAGES.md
@@ -1,18 +1,82 @@
# Contributing Translations
-To contribute to the translation of your language you must modify the json in `/messages` that is named corresponding to the ISO Language Code of your given language.
+Translation is handled by the [next-intl](https://next-intl-docs.vercel.app/) library.
-If you do not see a JSON for your language then add the language.
+To contribute to the translation of your language you must modify the JSON in `/messages` that is named corresponding to the [ISO Language Code](https://www.w3schools.com/tags/ref_language_codes.asp) of your given language.
+
+When modifying the key-value pairs in the JSON files, ensure you only change the value and not the key.
+
+Syntax: `"key": "value",`
+
+If you do not see a JSON for your language then may add the language by following the instructions below.
## Adding a language
-1. To add a language you must add the language to the `const SUPPORTED_LANGUAGES = ['en', 'de'];` variable in the `./src/i18n.ts` file.
-2. You must create a new `.json` file in the `./messages` directory
-3. Copy the contents of the `en.json` file, make your way down the key-value pairs and change **only the values** to the translated equivalent.
-
-
-
-
-
+1. Add the language to the `const SUPPORTED_LANGUAGES = ['en', 'de'];` variable in the `./src/i18n.ts` file.
+2. Create a new `.json` file in the `./messages` directory named after the [ISO Language Code](https://www.w3schools.com/tags/ref_language_codes.asp) of the language.
+3. Copy the contents of the `en.json` file, make your way down the key-value pairs changing **only the values** to the translated equivalent.
+
+## Usage
+
+The key-value pairs are organised into parent keys called **namespaces**.
+
+In the JSON define the namespaces and their key-value pairs:
+```json
+{
+ "home-page": {
+ "home-hero-text": "Zen is the best way to browse the web.",
+ "home-hero-subtext": "Beautifully designed, privacy-focused, and packed with features. We care about your experience, not your data.",
+```
+
+... then reference these key-value pairs in the TSX instead of using static text:
+
+```jsx
+import { useTranslations } from "next-intl";
+
+function HomePage() {
+ const t = useTranslations('home-page');
+
+ return (
+ <>
+ {t('home-hero-text')}
+ {t('home-hero-subtext')}
+ >
+ )
+}
+```
+
+## Troubleshooting
+
+### Missing Key In JSON
+
+Each language JSON should have the same set of keys as all the others. If a language is missing a key then you will see the name of the *key* in place of the value on the website.
+
+You will also be able to see errors on the console in the browser developer tools.
+```
+❌ Error: MISSING_MESSAGE: Could not resolve `home-hero-text` in messages for locale `en`.
+```
+This means that en.json is missing the 'home-hero-text' key.
+
+If this occurs then find the key that is missing and add it to the JSON.
+
+### Key Is Not Referenced In The TSX
+
+Translations only work if the developer chooses to use the translated value in place of the static value in their HTML.
+
+Not translated:
+```
+Click Me
+```
+
+Translated:
+```
+{t('translated-click-me')}
+```
+
+The JSON is organized by the file names in the `/components` directory. Find the `.tsx` file that generates the untranslated text and modify it to use the translated value.
+
+### Documentation
+
+If the error persists consult the [next-intl documentation](https://next-intl-docs.vercel.app/docs/getting-started).
diff --git a/messages/de.json b/messages/de.json
index a862be3..8382eb0 100644
--- a/messages/de.json
+++ b/messages/de.json
@@ -1,7 +1,249 @@
{
+ "branding-assets": {
+ "branding-heading-text": "Branding Assets",
+ "branding-subheading-text": "Download Zen Browser branding assets for your website or project.",
+ "branding-logos-heading-text": "Logos",
+ "branding-logos-subheading-text": "Download the Zen Browser logo in different colors.",
+ "branding-logos-black": "black",
+ "branding-logos-blue": "blue",
+ "branding-logos-brown": "brown",
+ "branding-logos-buff": "buff",
+ "branding-logos-indigo": "indigo",
+ "branding-logos-mantis": "mantis",
+ "branding-logos-orchid": "orchid",
+ "branding-logos-pink": "pink",
+ "branding-logos-tangerine": "tangerine",
+ "branding-logos-turqoise": "turqoise",
+ "branding-logos-white": "white",
+ "branding-logos-yellow": "yellow",
+ "branding-empty-heading-text": "Empty Logos",
+ "branding-empty-subheading-text": "Download the Zen Browser logo in different colors without a filled Zen letter.",
+ "branding-empty-black": "black",
+ "branding-empty-blue": "blue",
+ "branding-empty-brown": "brown",
+ "branding-empty-buff": "buff",
+ "branding-empty-indigo": "indigo",
+ "branding-empty-mantis": "mantis",
+ "branding-empty-orchid": "orchid",
+ "branding-empty-pink": "pink",
+ "branding-empty-tangerine": "tangerine",
+ "branding-empty-turqoise": "turqoise",
+ "branding-empty-white": "white",
+ "branding-empty-yellow": "yellow",
+ "branding-license-heading-text": "License",
+ "branding-license-text-part-1": "All branding assets are licensed under the",
+ "branding-license-text-part-2": "CC BY-SA 4.0",
+ "branding-license-text-part-3": "Thanks to",
+ "branding-license-text-part-4": "Donno (mr. Logos)",
+ "branding-license-text-part-5": "for the assets.",
+ "branding-license-text-part-6": "These logos however shall not be modified in a way that suggests the licensor endorses you or your use.",
+ "branding-license-text-part-7": "You are free to share and adapt the assets for any purpose, even commercially."
+ },
+ "create-theme": {
+ "create-theme-heading-text": "Create your theme",
+ "create-theme-subheading-text": "Create your own theme for Zen Browser and share it with the community.",
+ "create-theme-instruction-text": "If the color is chosen from the palette, the accent color will be set to the user's selection in the preferences. However, if the color is chosen from the color picker, the accent color will be the color selected.",
+ "create-theme-or": "or",
+ "create-theme-primary-color": "Primary color",
+ "create-theme-secondary-color": "Secondary color",
+ "create-theme-tertiary-color": "Tertiary color",
+ "create-theme-border-color": "Border color",
+ "create-theme-dialog-color": "Dialog background color",
+ "create-theme-disclaimer": "Right now, we aren't taking more color themes for the browser, until we find a way to make it more accessible for everyone. However, you can still create your own theme and share it with the community.",
+ "create-theme-theme-data": "Theme data",
+ "create-theme-theme-data-instructions": "Copy the following JSON object and paste it into your Zen Browser theme format.",
+ "create-theme-copy-clipboard": "Copy to clipboard",
+ "create-theme-submit-theme": "Submit theme",
+ "create-theme-button-text": "Button"
+ },
+ "download": {
+ "download-downloaded-text": "Downloaded! ❤️",
+ "download-downloaded-message": "Zen Browser has been downloaded successfully. Enjoy browsing the web with Zen!",
+ "download-source-code": "Source Code",
+ "download-donate": "Donate",
+ "download-release-notes": "Release Notes",
+ "download-installation-instructions": "Installation Instructions",
+ "download-installation-macos-warning": "To install Zen on MacOS, the process is a bit different. Please follow the instructions below:",
+ "download-download-macOS-button-text": "Download Zen for MacOS",
+ "download-download-prompt": "Download ",
+ "download-device-selection-message": "We're thrilled for you to experience Zen Browser. First, let us know which device you're using. This will only take a moment, we promise.",
+ "download-platform-heading-text": "Platform",
+ "download-platform-subheading-text": "Choose the platform you want to download Zen for.",
+ "download-windows-option": "Windows",
+ "download-linux-option": "Linux",
+ "download-macos-option": "MacOS",
+ "download-architecture-heading": "Select Architecture",
+ "download-architecture-subheading": "Choose the architecture of your device, either optimized or generic.",
+ "download-architecture-optimized": "Optimized",
+ "download-architecture-optimized-desc": "Blazing fast and compatible with modern devices",
+ "download-architecture-generic": "Generic",
+ "download-architecture-generic-desc": "Slow but compatible with older devices.",
+ "download-macos-heading": "Download Zen for MacOS",
+ "download-macos-subheading": "Click the button below to download Zen for MacOS.",
+ "download-macos-aarch64": "AArch64",
+ "download-macos-aarch64-desc": "64-bit ARM architecture, for Apple's M Series Chips",
+ "download-macos-intel": "Intel",
+ "download-macos-intel-desc": "64-bit Intel architecture, for older Macs",
+ "download-windows-heading": "Download Zen for Windows",
+ "download-windows-subheading": "Choose the type of download you want for Zen for Windows.",
+ "download-windows-installer": "Installer",
+ "download-windows-installer-desc": "Install Zen with a setup wizard",
+ "download-windows-portable": "Portable",
+ "download-windows-portable-desc": "Download Zen as a ZIP file",
+ "download-linux-heading": "Download Zen for Linux",
+ "download-linux-subheading": "Choose the type of download you want for Zen for Linux.",
+ "download-linux-appimage": "AppImage",
+ "download-linux-appimage-desc": "Install Zen with a setup wizard",
+ "download-linux-portable": "Portable",
+ "download-linux-portable-desc": "Download Zen as a ZIP file",
+ "download-linux-flatpak": "Flatpak",
+ "download-linux-flatpak-desc": "Install Zen from the Flatpak repository.",
+ "download-button-back": "Back",
+ "download-button-download": "Download 🥳",
+ "download-button-continue": "Continue",
+ "download-sysreq-question": "Confused about which build to choose?",
+ "download-sysreq-link": "System requirements"
+ },
+ "features": {
+ "features-your-browser-heading": "Your Browser, your way",
+ "features-your-browser-body": "With Zen's Theme Store, you can customize your browsing experience to reflect your unique style and preferences. Choose from a wide array of themes, colors, and layouts to make Zen truly your own, transforming your browser into a personalized digital space.",
+ "features-your-browser-button": "View Theme Store",
+ "features-community-heading": "Community driven and Open Source",
+ "features-community-body": "Zen thrives on the contributions of its vibrant community. As an open-source project, Zen encourages collaboration and innovation, allowing users and developers alike to shape the future of the browser.",
+ "features-community-button": "GitHub Page",
+ "features-community-checkbox-1": "Firefox Based",
+ "features-community-checkbox-2": "Fully Open Source",
+ "features-community-checkbox-3": "Automated Releases To Ensure Security",
+ "features-community-checkbox-4": "Community-driven",
+ "features-community-checkbox-5": "Constantly Improving",
+ "features-simplicity-heading": "Built for simplicity",
+ "features-simplicity-body": "Zen Browser is designed to be simple and easy to use. It's built with the user in mind, so you can focus on what matters most.",
+ "features-simplicity-checkbox-1": "Completely Customizable",
+ "features-simplicity-checkbox-2": "Vertical Tabs",
+ "features-simplicity-checkbox-3": "Thoughtful Design",
+ "features-splitview-heading": "Split View",
+ "features-splitview-body": "Zen Browser allows you to split your view into multiple panes, so you can work on multiple things at once. It's perfect for multitasking.",
+ "features-splitview-button": "Download Now",
+ "features-tabmgmt-heading": "Better tab management",
+ "features-tabmgmt-body": "Better tab management helps you stay organized and focused, reducing clutter and enhancing productivity",
+ "features-tabmgmt-checkbox-1": "Workspaces",
+ "features-tabmgmt-checkbox-2": "Fast profile switcher",
+ "features-tabmgmt-checkbox-3": "Container Tabs",
+ "features-tabmgmt-checkbox-4": "Tab Groups (Coming Soon)",
+ "features-security-heading-part-1": "Security And Privacy is",
+ "features-security-heading-part-2": "important",
+ "features-security-heading-part-3": "to us",
+ "features-security-body": "Zen is based on Firefox, ensuring that your browsing experience prioritizes security and privacy. With advanced tracking protection and minimal data collection, Zen keeps your online activity safe and secure, giving you peace of mind as you explore the web.",
+ "features-security-in-zen": "Security in Zen",
+ "features-your-privacy": "Your Privacy",
+ "features-sidebar-heading": "Sidebar",
+ "features-sidebar-body": "Zen Browser has a built-in sidebar that lets you quickly access your favorite websites, bookmarks, and more. It's the perfect way to stay organized.",
+ "features-sidebar-checkbox-1": "Quick Access",
+ "features-sidebar-checkbox-2": "Customizable",
+ "features-sidebar-checkbox-3": "Easy to Use",
+ "features-compact-heading": "Introducing Compact Mode",
+ "features-compact-body": "Zen Browser's compact mode gives you more screen real estate by hiding the title bar and tabs. It's perfect for when you need to focus on your work.",
+ "features-compact-button": "What are you waiting for?",
+ "features-convinced-heading": "Convinced?",
+ "features-convinced-body": "Download Zen Browser now and experience the future of browsing.",
+ "features-convinced-button": "Download Now",
+ "features-more-convinced-heading": "Even more convinced?",
+ "features-more-convinced-body": "Help support the development of Zen Browser by donating to our cause.",
+ "features-patreon-link": "Patreon",
+ "features-ko-fi-link": "Ko-fi"
+ },
+ "footer": {
+ "footer-text-part-1": "Zen Browser © ",
+ "footer-text-part-2": "Made with ❤️ by the Zen team.",
+ "footer-source-code-link": "Source Code"
+ },
+ "header": {
+ "header-alpha-button": "Introducing Zen Alpha",
+ "header-hero-heading-line-1": "Zen is the best way",
+ "header-hero-heading-line-2": "to browse the web.",
+ "header-hero-subheading-line-1": "Beautifully designed, privacy-focused, and packed with features.",
+ "header-hero-subheading-line-2": "We care about your experience, not your data.",
+ "header-download-button": "Download Zen Now",
+ "header-exploring-button": "Start Exploring"
+ },
+ "logo": {
+ "logo-text": "zen"
+ },
+ "marketplace": {
+ "marketplace-heading": "Themes Store"
+ },
+ "mobile-nav": {
+ "mobile-menu-button": "Menü umschalten",
+ "mobile-download-link": "Herunterladen",
+ "mobile-theme-store-link": "Theme Store",
+ "mobile-release-notes-link": "Versionshinweise",
+ "mobile-donate-link": "Spenden"
+ },
+ "mode-toggle": {
+ "toggle-button-text": "Thema umschalten"
+ },
"navigation": {
- "getting-started": "Erste Schritte",
- "donate": "Spenden",
- "useful-links": "Nützliche Links"
+ "nav-components-privacy-policy": "Datenschutzbestimmungen",
+ "nav-components-privacy-policy-text": "Erfahren Sie, wie wir Ihre Daten behandeln. Keine Sorge, wir sammeln nichts!",
+ "nav-components-discord": "Discord",
+ "nav-components-discord-text": "Treten Sie unserem Discord-Server bei, um mit der Community zu chatten.",
+ "nav-components-source-code": "Quellcode",
+ "nav-components-source-code-text": "Sehen Sie sich unseren Quellcode auf GitHub an und hinterlassen Sie ein Sternchen!",
+ "nav-components-branding-assets": "Branding-Ressourcen",
+ "nav-components-branding-assets-text": "Laden Sie Branding-Ressourcen von Zen Browser für Ihre Website oder Ihr Projekt herunter.",
+ "nav-components-documentation": "Dokumentation",
+ "nav-components-documentation-text": "Erfahren Sie, wie Sie Zen Browser verwenden und Ihre eigenen Themes erstellen.",
+ "nav-getting-started": "Erste Schritte",
+ "nav-gs-zen-heading": "Zen Browser",
+ "nav-gs-zen-text": "Auf Firefox basierter Browser mit Fokus auf Datenschutz und Anpassung.",
+ "nav-gs-download-li": "Herunterladen",
+ "nav-gs-download-li-text": "Beginnen Sie noch heute mit der Verwendung von Zen Browser – nur wenige Klicks.",
+ "nav-gs-themes-li": "Theme Store",
+ "nav-gs-themes-li-text": "Passen Sie Ihren Browser mit einer Vielzahl von Themes an!",
+ "nav-gs-release-li": "Versionshinweise",
+ "nav-gs-release-text": "Bleiben Sie auf dem Laufenden über die neuesten Änderungen.",
+ "nav-donate": "Spenden",
+ "nav-donate-patreon-li": "Patreon",
+ "nav-donate-patreon-li-text": "Unterstützen Sie uns auf Patreon und erhalten Sie exklusive Belohnungen, um das Projekt am Leben zu erhalten.",
+ "nav-donate-ko-fi-li": "Ko-fi",
+ "nav-donate-ko-fi-li-text": "Ko-fi ist eine Möglichkeit, uns mit einer einmaligen Spende zu unterstützen und das Projekt am Leben zu halten.",
+ "nav-useful-links": "Nützliche Links"
+ },
+ "release-notes": {
+ "release-notes-heading": "Release notes for ",
+ "release-notes-report-issue-part-1": "If you encounter any issues, please report them on",
+ "release-notes-report-issue-part-2": "the issues page",
+ "release-notes-report-issue-part-3": ". Thanks everyone for your feedback! ❤️",
+ "release-notes-breaking-change-heading": "Breaking changes",
+ "release-notes-breaking-change-subheading": "The following changes may break existing functionality:",
+ "release-notes-features-heading": "Features",
+ "release-notes-features-subheading": "The following features have been added:",
+ "release-notes-fixed-heading": "Fixed",
+ "release-notes-fixes-subheading": "The following issues have been fixed:",
+ "release-notes-download-button": "Download Zen now!"
+ },
+ "theme-card": {
+ "theme-card-homepage": "Homepage",
+ "theme-card-author": "Author"
+ },
+ "theme-page": {
+ "theme-page-go-back": "Go back",
+ "theme-page-visit-homepage": "Visit Homepage",
+ "theme-page-install": "Install Theme 🎉",
+ "theme-page-uninstall": "Uninstall Theme",
+ "theme-citation-prefix": "Theme by"
+ },
+ "theme-provider": {
+
+ },
+ "themes-search": {
+ "themes-search-placeholder": "Search themes",
+ "themes-search-submit": "Submit a theme",
+ "themes-search-create": "Create your theme"
+ },
+ "welcome": {
+ "welcome-heading": "Welcome to Zen Browser!",
+ "welcome-subheading-line-1": "A Firefox based browser with a focus on privacy and customization.",
+ "welcome-subheading-line-2": "Start using it by clicking on the sidebar icon or trying out the split view feature!"
}
}
\ No newline at end of file
diff --git a/messages/en.json b/messages/en.json
index e0a7a18..853e661 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -1,7 +1,249 @@
{
+ "branding-assets": {
+ "branding-heading-text": "Branding Assets",
+ "branding-subheading-text": "Download Zen Browser branding assets for your website or project.",
+ "branding-logos-heading-text": "Logos",
+ "branding-logos-subheading-text": "Download the Zen Browser logo in different colors.",
+ "branding-logos-black": "black",
+ "branding-logos-blue": "blue",
+ "branding-logos-brown": "brown",
+ "branding-logos-buff": "buff",
+ "branding-logos-indigo": "indigo",
+ "branding-logos-mantis": "mantis",
+ "branding-logos-orchid": "orchid",
+ "branding-logos-pink": "pink",
+ "branding-logos-tangerine": "tangerine",
+ "branding-logos-turqoise": "turqoise",
+ "branding-logos-white": "white",
+ "branding-logos-yellow": "yellow",
+ "branding-empty-heading-text": "Empty Logos",
+ "branding-empty-subheading-text": "Download the Zen Browser logo in different colors without a filled Zen letter.",
+ "branding-empty-black": "black",
+ "branding-empty-blue": "blue",
+ "branding-empty-brown": "brown",
+ "branding-empty-buff": "buff",
+ "branding-empty-indigo": "indigo",
+ "branding-empty-mantis": "mantis",
+ "branding-empty-orchid": "orchid",
+ "branding-empty-pink": "pink",
+ "branding-empty-tangerine": "tangerine",
+ "branding-empty-turqoise": "turqoise",
+ "branding-empty-white": "white",
+ "branding-empty-yellow": "yellow",
+ "branding-license-heading-text": "License",
+ "branding-license-text-part-1": "All branding assets are licensed under the",
+ "branding-license-text-part-2": "CC BY-SA 4.0",
+ "branding-license-text-part-3": "Thanks to",
+ "branding-license-text-part-4": "Donno (mr. Logos)",
+ "branding-license-text-part-5": "for the assets.",
+ "branding-license-text-part-6": "These logos however shall not be modified in a way that suggests the licensor endorses you or your use.",
+ "branding-license-text-part-7": "You are free to share and adapt the assets for any purpose, even commercially."
+ },
+ "create-theme": {
+ "create-theme-heading-text": "Create your theme",
+ "create-theme-subheading-text": "Create your own theme for Zen Browser and share it with the community.",
+ "create-theme-instruction-text": "If the color is chosen from the palette, the accent color will be set to the user's selection in the preferences. However, if the color is chosen from the color picker, the accent color will be the color selected.",
+ "create-theme-or": "or",
+ "create-theme-primary-color": "Primary color",
+ "create-theme-secondary-color": "Secondary color",
+ "create-theme-tertiary-color": "Tertiary color",
+ "create-theme-border-color": "Border color",
+ "create-theme-dialog-color": "Dialog background color",
+ "create-theme-disclaimer": "Right now, we aren't taking more color themes for the browser, until we find a way to make it more accessible for everyone. However, you can still create your own theme and share it with the community.",
+ "create-theme-theme-data": "Theme data",
+ "create-theme-theme-data-instructions": "Copy the following JSON object and paste it into your Zen Browser theme format.",
+ "create-theme-copy-clipboard": "Copy to clipboard",
+ "create-theme-submit-theme": "Submit theme",
+ "create-theme-button-text": "Button"
+ },
+ "download": {
+ "download-downloaded-text": "Downloaded! ❤️",
+ "download-downloaded-message": "Zen Browser has been downloaded successfully. Enjoy browsing the web with Zen!",
+ "download-source-code": "Source Code",
+ "download-donate": "Donate",
+ "download-release-notes": "Release Notes",
+ "download-installation-instructions": "Installation Instructions",
+ "download-installation-macos-warning": "To install Zen on MacOS, the process is a bit different. Please follow the instructions below:",
+ "download-download-macOS-button-text": "Download Zen for MacOS",
+ "download-download-prompt": "Download ",
+ "download-device-selection-message": "We're thrilled for you to experience Zen Browser. First, let us know which device you're using. This will only take a moment, we promise.",
+ "download-platform-heading-text": "Platform",
+ "download-platform-subheading-text": "Choose the platform you want to download Zen for.",
+ "download-windows-option": "Windows",
+ "download-linux-option": "Linux",
+ "download-macos-option": "MacOS",
+ "download-architecture-heading": "Select Architecture",
+ "download-architecture-subheading": "Choose the architecture of your device, either optimized or generic.",
+ "download-architecture-optimized": "Optimized",
+ "download-architecture-optimized-desc": "Blazing fast and compatible with modern devices",
+ "download-architecture-generic": "Generic",
+ "download-architecture-generic-desc": "Slow but compatible with older devices.",
+ "download-macos-heading": "Download Zen for MacOS",
+ "download-macos-subheading": "Click the button below to download Zen for MacOS.",
+ "download-macos-aarch64": "AArch64",
+ "download-macos-aarch64-desc": "64-bit ARM architecture, for Apple's M Series Chips",
+ "download-macos-intel": "Intel",
+ "download-macos-intel-desc": "64-bit Intel architecture, for older Macs",
+ "download-windows-heading": "Download Zen for Windows",
+ "download-windows-subheading": "Choose the type of download you want for Zen for Windows.",
+ "download-windows-installer": "Installer",
+ "download-windows-installer-desc": "Install Zen with a setup wizard",
+ "download-windows-portable": "Portable",
+ "download-windows-portable-desc": "Download Zen as a ZIP file",
+ "download-linux-heading": "Download Zen for Linux",
+ "download-linux-subheading": "Choose the type of download you want for Zen for Linux.",
+ "download-linux-appimage": "AppImage",
+ "download-linux-appimage-desc": "Install Zen with a setup wizard",
+ "download-linux-portable": "Portable",
+ "download-linux-portable-desc": "Download Zen as a ZIP file",
+ "download-linux-flatpak": "Flatpak",
+ "download-linux-flatpak-desc": "Install Zen from the Flatpak repository.",
+ "download-button-back": "Back",
+ "download-button-download": "Download 🥳",
+ "download-button-continue": "Continue",
+ "download-sysreq-question": "Confused about which build to choose?",
+ "download-sysreq-link": "System requirements"
+ },
+ "features": {
+ "features-your-browser-heading": "Your Browser, your way",
+ "features-your-browser-body": "With Zen's Theme Store, you can customize your browsing experience to reflect your unique style and preferences. Choose from a wide array of themes, colors, and layouts to make Zen truly your own, transforming your browser into a personalized digital space.",
+ "features-your-browser-button": "View Theme Store",
+ "features-community-heading": "Community driven and Open Source",
+ "features-community-body": "Zen thrives on the contributions of its vibrant community. As an open-source project, Zen encourages collaboration and innovation, allowing users and developers alike to shape the future of the browser.",
+ "features-community-button": "GitHub Page",
+ "features-community-checkbox-1": "Firefox Based",
+ "features-community-checkbox-2": "Fully Open Source",
+ "features-community-checkbox-3": "Automated Releases To Ensure Security",
+ "features-community-checkbox-4": "Community-driven",
+ "features-community-checkbox-5": "Constantly Improving",
+ "features-simplicity-heading": "Built for simplicity",
+ "features-simplicity-body": "Zen Browser is designed to be simple and easy to use. It's built with the user in mind, so you can focus on what matters most.",
+ "features-simplicity-checkbox-1": "Completely Customizable",
+ "features-simplicity-checkbox-2": "Vertical Tabs",
+ "features-simplicity-checkbox-3": "Thoughtful Design",
+ "features-splitview-heading": "Split View",
+ "features-splitview-body": "Zen Browser allows you to split your view into multiple panes, so you can work on multiple things at once. It's perfect for multitasking.",
+ "features-splitview-button": "Download Now",
+ "features-tabmgmt-heading": "Better tab management",
+ "features-tabmgmt-body": "Better tab management helps you stay organized and focused, reducing clutter and enhancing productivity",
+ "features-tabmgmt-checkbox-1": "Workspaces",
+ "features-tabmgmt-checkbox-2": "Fast profile switcher",
+ "features-tabmgmt-checkbox-3": "Container Tabs",
+ "features-tabmgmt-checkbox-4": "Tab Groups (Coming Soon)",
+ "features-security-heading-part-1": "Security And Privacy is",
+ "features-security-heading-part-2": "important",
+ "features-security-heading-part-3": "to us",
+ "features-security-body": "Zen is based on Firefox, ensuring that your browsing experience prioritizes security and privacy. With advanced tracking protection and minimal data collection, Zen keeps your online activity safe and secure, giving you peace of mind as you explore the web.",
+ "features-security-in-zen": "Security in Zen",
+ "features-your-privacy": "Your Privacy",
+ "features-sidebar-heading": "Sidebar",
+ "features-sidebar-body": "Zen Browser has a built-in sidebar that lets you quickly access your favorite websites, bookmarks, and more. It's the perfect way to stay organized.",
+ "features-sidebar-checkbox-1": "Quick Access",
+ "features-sidebar-checkbox-2": "Customizable",
+ "features-sidebar-checkbox-3": "Easy to Use",
+ "features-compact-heading": "Introducing Compact Mode",
+ "features-compact-body": "Zen Browser's compact mode gives you more screen real estate by hiding the title bar and tabs. It's perfect for when you need to focus on your work.",
+ "features-compact-button": "What are you waiting for?",
+ "features-convinced-heading": "Convinced?",
+ "features-convinced-body": "Download Zen Browser now and experience the future of browsing.",
+ "features-convinced-button": "Download Now",
+ "features-more-convinced-heading": "Even more convinced?",
+ "features-more-convinced-body": "Help support the development of Zen Browser by donating to our cause.",
+ "features-patreon-link": "Patreon",
+ "features-ko-fi-link": "Ko-fi"
+ },
+ "footer": {
+ "footer-text-part-1": "Zen Browser © ",
+ "footer-text-part-2": "Made with ❤️ by the Zen team.",
+ "footer-source-code-link": "Source Code"
+ },
+ "header": {
+ "header-alpha-button": "Introducing Zen Alpha",
+ "header-hero-heading-line-1": "Zen is the best way",
+ "header-hero-heading-line-2": "to browse the web.",
+ "header-hero-subheading-line-1": "Beautifully designed, privacy-focused, and packed with features.",
+ "header-hero-subheading-line-2": "We care about your experience, not your data.",
+ "header-download-button": "Download Zen Now",
+ "header-exploring-button": "Start Exploring"
+ },
+ "logo": {
+ "logo-text": "zen"
+ },
+ "marketplace": {
+ "marketplace-heading": "Themes Store"
+ },
+ "mobile-nav": {
+ "mobile-menu-button": "Toggle Menu",
+ "mobile-download-link": "Download",
+ "mobile-theme-store-link": "Theme Store",
+ "mobile-release-notes-link": "Release Notes",
+ "mobile-donate-link": "Donate"
+ },
+ "mode-toggle": {
+ "toggle-button-text": "Toggle Theme"
+ },
"navigation": {
- "getting-started": "Getting Started",
- "donate": "Donate",
- "useful-links": "Useful Links"
+ "nav-components-privacy-policy": "Privacy Policy",
+ "nav-components-privacy-policy-text": "Learn how we handle your data. Don't worry, we don't collect anything!",
+ "nav-components-discord": "Discord",
+ "nav-components-discord-text": "Join our Discord server to chat with the community.",
+ "nav-components-source-code": "Source Code",
+ "nav-components-source-code-text": "Check out our source code on GitHub and leave a star!",
+ "nav-components-branding-assets": "Branding Assets",
+ "nav-components-branding-assets-text": "Download Zen Browser branding assets for your website or project.",
+ "nav-components-documentation": "Documentation",
+ "nav-components-documentation-text": "Learn how to use Zen Browser and build your own themes.",
+ "nav-getting-started": "Getting started",
+ "nav-gs-zen-heading": "Zen Browser",
+ "nav-gs-zen-text": "Firefox based browser with a focus on privacy and customization.",
+ "nav-gs-download-li": "Download",
+ "nav-gs-download-li-text": "Start using Zen Browser today with just a few clicks.",
+ "nav-gs-themes-li": "Themes Store",
+ "nav-gs-themes-li-text": "Customize your browser with a variety of themes!",
+ "nav-gs-release-li": "Release Notes",
+ "nav-gs-release-text": "Stay up to date with the latest changes.",
+ "nav-donate": "Donate",
+ "nav-donate-patreon-li": "Patreon",
+ "nav-donate-patreon-li-text": "Support us on Patreon and get exclusive rewards and keep the project alive.",
+ "nav-donate-ko-fi-li": "Ko-fi",
+ "nav-donate-ko-fi-li-text": "Ko-fi is a way to support us with a one-time donation and help us keep the project alive.",
+ "nav-useful-links": "Useful Links"
+ },
+ "release-notes": {
+ "release-notes-heading": "Release notes for ",
+ "release-notes-report-issue-part-1": "If you encounter any issues, please report them on",
+ "release-notes-report-issue-part-2": "the issues page",
+ "release-notes-report-issue-part-3": ". Thanks everyone for your feedback! ❤️",
+ "release-notes-breaking-change-heading": "Breaking changes",
+ "release-notes-breaking-change-subheading": "The following changes may break existing functionality:",
+ "release-notes-features-heading": "Features",
+ "release-notes-features-subheading": "The following features have been added:",
+ "release-notes-fixed-heading": "Fixed",
+ "release-notes-fixes-subheading": "The following issues have been fixed:",
+ "release-notes-download-button": "Download Zen now!"
+ },
+ "theme-card": {
+ "theme-card-homepage": "Homepage",
+ "theme-card-author": "Author"
+ },
+ "theme-page": {
+ "theme-page-go-back": "Go back",
+ "theme-page-visit-homepage": "Visit Homepage",
+ "theme-page-install": "Install Theme 🎉",
+ "theme-page-uninstall": "Uninstall Theme",
+ "theme-citation-prefix": "Theme by"
+ },
+ "theme-provider": {
+
+ },
+ "themes-search": {
+ "themes-search-placeholder": "Search themes",
+ "themes-search-submit": "Submit a theme",
+ "themes-search-create": "Create your theme"
+ },
+ "welcome": {
+ "welcome-heading": "Welcome to Zen Browser!",
+ "welcome-subheading-line-1": "A Firefox based browser with a focus on privacy and customization.",
+ "welcome-subheading-line-2": "Start using it by clicking on the sidebar icon or trying out the split view feature!"
}
}
\ No newline at end of file
diff --git a/src/components/mobile-nav.tsx b/src/components/mobile-nav.tsx
index 9f1d43c..15552e0 100644
--- a/src/components/mobile-nav.tsx
+++ b/src/components/mobile-nav.tsx
@@ -11,9 +11,18 @@ import { ScrollArea } from './ui/scroll-area'
import Logo from './logo'
import { ny } from '@/lib/utils'
import { components } from './navigation'
+import { useTranslations } from 'next-intl'
export function MobileNav() {
- const [open, setOpen] = React.useState(false)
+ const [open, setOpen] = React.useState(false);
+ const t = useTranslations('mobile-nav');
+ const t2 = useTranslations('navigation');
+
+ const translatedComponents = components.map(component => ({
+ title: t2(component.titleKey),
+ href: component.href,
+ description: t2(component.descriptionKey),
+ }));
return (
@@ -25,7 +34,7 @@ export function MobileNav() {
className="mr-2 px-0 ml-auto text-base hover:bg-transparent focus-visible:bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0"
>
- Toggle Menu
+ {t('mobile-menu-button')}
@@ -43,27 +52,27 @@ export function MobileNav() {
href="/download"
onOpenChange={setOpen}
>
- Download
+ {t('mobile-download-link')}
- Theme Store
+ {t('mobile-theme-store-link')}
- Release Notes
+ {t('mobile-release-notes-link')}
- Donate {"<"}3
+ {t('mobile-donate-link')} {"<"}3
- {components.map(({title, href, description}) => (
+ {translatedComponents.map(({title, href, description}) => (
({
+ title: t(component.titleKey),
+ href: component.href,
+ description: t(component.descriptionKey),
+ }));
+
+ console.log(translatedComponents);
+
return (
@@ -63,7 +71,7 @@ export function Navigation() {
- {t('getting-started')}
+ {t('nav-getting-started')}
@@ -98,30 +105,30 @@ export function Navigation() {
- {t('donate')}
+ {t('nav-donate')}
- Support us on Patreon and get exclusive rewards and keep the project alive.
+ {t('nav-donate-patreon-li-text')}
- Ko-fi is a way to support us with a one-time donation and help us keep the project alive.
+ {t('nav-donate-ko-fi-li-text')}
- {t('useful-links')}
+ {t('nav-useful-links')}
- {components.map((component) => (
+ {translatedComponents.map((component) => (
Date: Sat, 31 Aug 2024 11:50:23 +1000
Subject: [PATCH 04/65] fix: Use system color preference
---
src/app/globals.css | 33 +++++++++++++++++++++++++++++++++
src/app/layout.tsx | 1 -
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/src/app/globals.css b/src/app/globals.css
index 28eb341..7833c82 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -50,6 +50,39 @@
*/
}
+ [data-theme='dark'] {
+ --background: 0 0% 0%;
+ --foreground: 0 0% 98%;
+
+ --surface: rgb(23, 23, 23);
+
+ --card: 0 0% 3.9%;
+ --card-foreground: 0 0% 98%;
+
+ --popover: 0 0% 3.9%;
+ --popover-foreground: 0 0% 98%;
+
+ --primary: 0 0% 98%;
+ --primary-foreground: 0 0% 9%;
+
+ --secondary: 0 0% 14.9%;
+ --secondary-foreground: 0 0% 98%;
+
+ --muted: 0 0% 14.9%;
+ --muted-foreground: 0 0% 63.9%;
+
+ --accent: 0 0% 14.9%;
+ --accent-foreground: 0 0% 98%;
+
+ --destructive: 0 62.8% 30.6%;
+ --destructive-foreground: 0 0% 98%;
+
+ --border: 0 0% 14.9%;
+ --input: 0 0% 14.9%;
+ --ring: 0 0% 83.1%;
+ --color-one: #6aa8e2;
+ }
+
.dark {
--background: 0 0% 0%;
--foreground: 0 0% 98%;
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index e68eabb..99c7914 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -33,7 +33,6 @@ export default async function RootLayout({
From 24c9e13f8167dcb708f9085bfce1611dad2a2d70 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sat, 31 Aug 2024 12:03:38 +1000
Subject: [PATCH 05/65] fix: css multi-selector
---
src/app/globals.css | 37 ++-----------------------------------
1 file changed, 2 insertions(+), 35 deletions(-)
diff --git a/src/app/globals.css b/src/app/globals.css
index 7833c82..9683b82 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -50,44 +50,11 @@
*/
}
- [data-theme='dark'] {
+ [data-theme='dark'], .dark {
--background: 0 0% 0%;
--foreground: 0 0% 98%;
- --surface: rgb(23, 23, 23);
-
- --card: 0 0% 3.9%;
- --card-foreground: 0 0% 98%;
-
- --popover: 0 0% 3.9%;
- --popover-foreground: 0 0% 98%;
-
- --primary: 0 0% 98%;
- --primary-foreground: 0 0% 9%;
-
- --secondary: 0 0% 14.9%;
- --secondary-foreground: 0 0% 98%;
-
- --muted: 0 0% 14.9%;
- --muted-foreground: 0 0% 63.9%;
-
- --accent: 0 0% 14.9%;
- --accent-foreground: 0 0% 98%;
-
- --destructive: 0 62.8% 30.6%;
- --destructive-foreground: 0 0% 98%;
-
- --border: 0 0% 14.9%;
- --input: 0 0% 14.9%;
- --ring: 0 0% 83.1%;
- --color-one: #6aa8e2;
- }
-
- .dark {
- --background: 0 0% 0%;
- --foreground: 0 0% 98%;
-
- --surface: rgb(23, 23, 23);
+ --surface: rgb(23, 23, 23);
--card: 0 0% 3.9%;
--card-foreground: 0 0% 98%;
From bf17377dc0ad57bf131de1e6eae44a4c533f2db0 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sat, 31 Aug 2024 18:44:49 +1000
Subject: [PATCH 06/65] fix: object-right to object-left so sidebar is visible
---
src/components/features.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/features.tsx b/src/components/features.tsx
index 7e4c5da..e4aa7bf 100644
--- a/src/components/features.tsx
+++ b/src/components/features.tsx
@@ -207,7 +207,7 @@ export default function Features() {
-
+
From 64f07fa73da0a9479ae5fbb30759d8bd9e421f43 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sat, 31 Aug 2024 23:50:21 +1000
Subject: [PATCH 07/65] feat: System preferences icon
---
src/components/mode-toggle.tsx | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/src/components/mode-toggle.tsx b/src/components/mode-toggle.tsx
index 2d1018c..e9e45f0 100644
--- a/src/components/mode-toggle.tsx
+++ b/src/components/mode-toggle.tsx
@@ -1,7 +1,7 @@
"use client";
-import * as React from "react";
-import { MoonIcon, SunIcon } from "@radix-ui/react-icons";
+import {useEffect, useState} from "react";
+import { MoonIcon, SunIcon, GlobeIcon } from "@radix-ui/react-icons";
import { useTheme } from "next-themes";
import { Button } from "./ui/button";
import {
@@ -12,14 +12,36 @@ import {
} from "./ui/dropdown-menu";
export function ModeToggle() {
+ const [mounted, setMounted] = useState(false);
const { theme, setTheme } = useTheme();
const toggleTheme = () => {
- setTheme(theme === "light" ? "dark" : "light");
+ switch (theme) {
+ case 'system':
+ setTheme("dark");
+ break;
+ case 'dark':
+ setTheme("light");
+ break;
+ case 'light':
+ setTheme('system');
+ break;
+ }
};
+
+ useEffect(() => {
+ setMounted(true);
+ }, []);
+
+ if (!mounted) {
+ return null;
+ }
+
+ console.log(theme);
return (
-
-
+
+
+
Toggle theme
);
From 26d75c5128fbbab8d1ff51044e91ca8f7d82336d Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sun, 1 Sep 2024 00:11:27 +1000
Subject: [PATCH 08/65] feat: Switch to
---
src/components/mode-toggle.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/mode-toggle.tsx b/src/components/mode-toggle.tsx
index e9e45f0..7df6eb6 100644
--- a/src/components/mode-toggle.tsx
+++ b/src/components/mode-toggle.tsx
@@ -1,7 +1,7 @@
"use client";
import {useEffect, useState} from "react";
-import { MoonIcon, SunIcon, GlobeIcon } from "@radix-ui/react-icons";
+import { MoonIcon, SunIcon, Half2Icon } from "@radix-ui/react-icons";
import { useTheme } from "next-themes";
import { Button } from "./ui/button";
import {
@@ -39,7 +39,7 @@ export function ModeToggle() {
console.log(theme);
return (
-
+
Toggle theme
From 8e4329dff1d4db6ea1e3f540e09f6c1a80ab7f56 Mon Sep 17 00:00:00 2001
From: mihai
Date: Sat, 31 Aug 2024 09:59:10 -0700
Subject: [PATCH 09/65] Added ro.json
---
messages/ro.json | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 messages/ro.json
diff --git a/messages/ro.json b/messages/ro.json
new file mode 100644
index 0000000..2489f41
--- /dev/null
+++ b/messages/ro.json
@@ -0,0 +1,7 @@
+{
+ "navigation": {
+ "getting-started": "Noțiuni de bază",
+ "donate": "Donează",
+ "useful-links": "Linkuri utile"
+ }
+}
From 104b529435623bac7e3692429472fea2906fc755 Mon Sep 17 00:00:00 2001
From: mihai
Date: Sat, 31 Aug 2024 10:01:46 -0700
Subject: [PATCH 10/65] Update i18n.ts to support ro ( Romanian )
---
src/i18n.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n.ts b/src/i18n.ts
index a2fcfed..8abe4fe 100644
--- a/src/i18n.ts
+++ b/src/i18n.ts
@@ -1,7 +1,7 @@
import { getRequestConfig } from "next-intl/server";
import { headers } from "next/headers";
-const SUPPORTED_LANGUAGES = ['en', 'de'];
+const SUPPORTED_LANGUAGES = ['en', 'de', 'ro'];
export default getRequestConfig(async () => {
const headersList = headers();
From de8009ab41ed4dcae1fc7e19cd3007f6b037c3a9 Mon Sep 17 00:00:00 2001
From: Dragomir Mihai
Date: Sat, 31 Aug 2024 20:48:43 +0300
Subject: [PATCH 11/65] chore: update navigation translation key for getting
started page
---
messages/ro.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/messages/ro.json b/messages/ro.json
index 2489f41..1580089 100644
--- a/messages/ro.json
+++ b/messages/ro.json
@@ -1,6 +1,6 @@
{
"navigation": {
- "getting-started": "Noțiuni de bază",
+ "nav-getting-started": "Noțiuni de bază",
"donate": "Donează",
"useful-links": "Linkuri utile"
}
From 94123c52bfa84fca0005335a09e520563aa4d494 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sun, 1 Sep 2024 04:04:44 +1000
Subject: [PATCH 12/65] docs: more details in the README-LANGUAGES.md
---
messages/README-LANGUAGES.md | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/messages/README-LANGUAGES.md b/messages/README-LANGUAGES.md
index f01d457..8e11526 100644
--- a/messages/README-LANGUAGES.md
+++ b/messages/README-LANGUAGES.md
@@ -13,7 +13,7 @@ If you do not see a JSON for your language then may add the language by followin
## Adding a language
1. Add the language to the `const SUPPORTED_LANGUAGES = ['en', 'de'];` variable in the `./src/i18n.ts` file.
-2. Create a new `.json` file in the `./messages` directory named after the [ISO Language Code](https://www.w3schools.com/tags/ref_language_codes.asp) of the language.
+2. Create a new `.json` file in the `./messages` directory named after the [ISO Language Code](https://www.w3schools.com/tags/ref_language_codes.asp) of the language (all lower case so language code es-ES should be es-es.json).
3. Copy the contents of the `en.json` file, make your way down the key-value pairs changing **only the values** to the translated equivalent.
## Usage
@@ -75,6 +75,20 @@ Translated:
The JSON is organized by the file names in the `/components` directory. Find the `.tsx` file that generates the untranslated text and modify it to use the translated value.
+## Wrong Language Code
+
+It is common to mix up the 'es' language code with the 'es-ES' language code, for example.
+
+To see the language code that is actually being sent to the server you can do as follows:
+1) Set your browser settings to the language you are trying to translate.
+2) Open your browser developer tools.
+3) Go to the 'Network' tab.
+4) Ensure the Network tab is recording traffic (it typically is already recording).
+5) Refresh the website and you will see all the requests the browser made to the server.
+6) Scroll up to the very first request that was sent when you refreshed and click on it. The details of that request should be displayed.
+7) In the 'Headers' tab of the details scroll down to 'Request Headers'.
+8) Under 'Request Headers' you will see the 'Accept-Language' header whose value will be the language code(s) being sent by your browser, each with a 'q' value to specify which language code is most preferred.
+
### Documentation
If the error persists consult the [next-intl documentation](https://next-intl-docs.vercel.app/docs/getting-started).
From df359b2bbe5ed7f7179ab6d9601d73d4c1742c94 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sun, 1 Sep 2024 04:25:27 +1000
Subject: [PATCH 13/65] docs: even more details in the README-LANGUAGES.md
---
messages/README-LANGUAGES.md | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/messages/README-LANGUAGES.md b/messages/README-LANGUAGES.md
index 8e11526..cf80fba 100644
--- a/messages/README-LANGUAGES.md
+++ b/messages/README-LANGUAGES.md
@@ -10,6 +10,31 @@ Syntax: `"key": "value",`
If you do not see a JSON for your language then may add the language by following the instructions below.
+## Dev Environment
+Ensure you have Node.js and Git installed
+
+1) Fork the project repository by clicking the 'Fork' button then 'Create Fork'
+
+2) Clone your fork of the repo using the web url (or any other methods)
+``` bash copy
+git clone https://github.com/YOUR-GITHUB-USERNAME/www.git
+```
+3) Change your current directory to the project directory
+``` bash copy
+cd www
+```
+4) Install the project dependancies using npm
+``` bash copy
+npm install
+```
+5) Start the development server using npm
+``` bash copy
+npm run dev
+
+6) Open a browser and go to http://localhost:3000/
+
+7) Test translations by changing your browsers default language setting
+
## Adding a language
1. Add the language to the `const SUPPORTED_LANGUAGES = ['en', 'de'];` variable in the `./src/i18n.ts` file.
From 47b034b39de573f610a925f3cc8be585fb32aef4 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sun, 1 Sep 2024 04:31:11 +1000
Subject: [PATCH 14/65] typo: Fixing README.md subheading formatting
---
messages/README-LANGUAGES.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/messages/README-LANGUAGES.md b/messages/README-LANGUAGES.md
index cf80fba..1c60277 100644
--- a/messages/README-LANGUAGES.md
+++ b/messages/README-LANGUAGES.md
@@ -100,7 +100,7 @@ Translated:
The JSON is organized by the file names in the `/components` directory. Find the `.tsx` file that generates the untranslated text and modify it to use the translated value.
-## Wrong Language Code
+### Wrong Language Code
It is common to mix up the 'es' language code with the 'es-ES' language code, for example.
From bdc3d5c9c4bf58e7cf95ca2c86685b2f806a6220 Mon Sep 17 00:00:00 2001
From: Waled Khatiz
Date: Sun, 1 Sep 2024 04:40:42 +1000
Subject: [PATCH 15/65] typo: Fix README.md syntax block markdown
---
messages/README-LANGUAGES.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/messages/README-LANGUAGES.md b/messages/README-LANGUAGES.md
index 1c60277..a1e84d0 100644
--- a/messages/README-LANGUAGES.md
+++ b/messages/README-LANGUAGES.md
@@ -30,7 +30,7 @@ npm install
5) Start the development server using npm
``` bash copy
npm run dev
-
+```
6) Open a browser and go to http://localhost:3000/
7) Test translations by changing your browsers default language setting
From 1c181b972fff050626bd476ac95a5a7e667e5438 Mon Sep 17 00:00:00 2001
From: mauro-balades
Date: Sun, 1 Sep 2024 00:06:58 +0200
Subject: [PATCH 16/65] chore: Update next.config.js and features.tsx
---
next.config.js | 6 ++++--
src/components/features.tsx | 10 ++++++----
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/next.config.js b/next.config.js
index 10c5c49..f359c52 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,7 +1,6 @@
const createNextIntlPlugin = require('next-intl/plugin');
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')
-const {setupDevPlatform} = require('@cloudflare/next-on-pages/next-dev')
const withNextIntl = createNextIntlPlugin();
@@ -17,9 +16,12 @@ const nextConfig = (phase, { defaultConfig }) => {
{
protocol: "https",
hostname: "cdn.jsdelivr.net",
+ port: '',
+ pathname: '/gh/zen-browser/**',
}
],
- domains: ['cdn.jsdelivr.net', "raw.githubusercontent.com"], // Allow images from jsDelivr
+ formats: ["image/png", "image/jpeg", "image/svg+xml", "image/webp"],
+ domains: ['localhost', 'cdn.jsdelivr.net', "raw.githubusercontent.com"], // Allow images from jsDelivr
},
experimental: {
serverActions: {
diff --git a/src/components/features.tsx b/src/components/features.tsx
index 7e4c5da..702410d 100644
--- a/src/components/features.tsx
+++ b/src/components/features.tsx
@@ -219,10 +219,12 @@ export default function Features() {
- {/*
+
-
- {feature == "item-1" && (
+
+
+
+ {feature == "item-1" && (
@@ -250,7 +252,7 @@ export default function Features() {
-
*/}
+