Compare commits
27
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2e4e6baa2
|
||
|
|
149c21b65d
|
||
|
|
fcd0aee487
|
||
|
|
1f8edb0b6f
|
||
|
|
f0ab704940
|
||
|
|
0e01e56587
|
||
|
|
2979d345a9
|
||
|
|
19ab6f8573
|
||
|
|
bde6b252d7
|
||
|
|
15f7962f3c
|
||
|
|
52d0d915f3
|
||
|
|
87f34f62a3
|
||
|
|
60e02ef0d1
|
||
|
|
553a7cc31b
|
||
|
|
04033e8b6f
|
||
|
|
9a6c5c269f
|
||
|
|
e517e3df79
|
||
|
|
68fd34f095
|
||
|
|
c0c43ef79f
|
||
|
|
3616d9c070
|
||
|
|
7f38306e8e
|
||
|
|
98c2dc4f33
|
||
|
|
aa8247fe09
|
||
|
|
413a55ea39
|
||
|
|
607f04dd1f
|
||
|
|
9c790eee92
|
||
|
|
41a23ed8e8
|
No files matched your search
@@ -9,24 +9,24 @@
|
||||
"@fortawesome/free-brands-svg-icons": "7.2.0",
|
||||
"@fortawesome/free-regular-svg-icons": "7.2.0",
|
||||
"@fortawesome/free-solid-svg-icons": "7.2.0",
|
||||
"@fortawesome/react-fontawesome": "3.3.0",
|
||||
"@marsidev/react-turnstile": "1.5.0",
|
||||
"axios": "1.14.0",
|
||||
"next": "16.2.2",
|
||||
"react": "19.2.4",
|
||||
"react-dom": "19.2.4",
|
||||
"swiper": "12.1.3",
|
||||
"@fortawesome/react-fontawesome": "3.3.1",
|
||||
"@marsidev/react-turnstile": "1.5.2",
|
||||
"axios": "1.16.0",
|
||||
"next": "16.2.6",
|
||||
"react": "19.2.6",
|
||||
"react-dom": "19.2.6",
|
||||
"swiper": "12.1.4",
|
||||
"ua-parser-js": "2.0.9",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/postcss": "4.2.2",
|
||||
"@types/node": "25.5.0",
|
||||
"@tailwindcss/postcss": "4.2.4",
|
||||
"@types/node": "25.6.1",
|
||||
"@types/react": "19.2.14",
|
||||
"@types/react-dom": "19.2.3",
|
||||
"eslint": "9.39.4",
|
||||
"eslint-config-next": "16.2.2",
|
||||
"tailwindcss": "4.2.2",
|
||||
"typescript": "5.9.3",
|
||||
"eslint-config-next": "16.2.6",
|
||||
"tailwindcss": "4.2.4",
|
||||
"typescript": "6.0.3",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
"@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="],
|
||||
|
||||
"@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="],
|
||||
"@babel/compat-data": ["@babel/compat-data@7.29.3", "", {}, "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg=="],
|
||||
|
||||
"@babel/core": ["@babel/core@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA=="],
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
"@babel/helpers": ["@babel/helpers@7.29.2", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.29.0" } }, "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw=="],
|
||||
|
||||
"@babel/parser": ["@babel/parser@7.29.2", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA=="],
|
||||
"@babel/parser": ["@babel/parser@7.29.3", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA=="],
|
||||
|
||||
"@babel/template": ["@babel/template@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ=="],
|
||||
|
||||
@@ -65,11 +65,11 @@
|
||||
|
||||
"@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="],
|
||||
|
||||
"@emnapi/core": ["@emnapi/core@1.9.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.0", "tslib": "^2.4.0" } }, "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA=="],
|
||||
"@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="],
|
||||
|
||||
"@emnapi/runtime": ["@emnapi/runtime@1.9.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA=="],
|
||||
"@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="],
|
||||
|
||||
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg=="],
|
||||
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="],
|
||||
|
||||
"@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="],
|
||||
|
||||
@@ -99,11 +99,13 @@
|
||||
|
||||
"@fortawesome/free-solid-svg-icons": ["@fortawesome/free-solid-svg-icons@7.2.0", "", { "dependencies": { "@fortawesome/fontawesome-common-types": "7.2.0" } }, "sha512-YTVITFGN0/24PxzXrwqCgnyd7njDuzp5ZvaCx5nq/jg55kUYd94Nj8UTchBdBofi/L0nwRfjGOg0E41d2u9T1w=="],
|
||||
|
||||
"@fortawesome/react-fontawesome": ["@fortawesome/react-fontawesome@3.3.0", "", { "peerDependencies": { "@fortawesome/fontawesome-svg-core": "~6 || ~7", "react": "^18.0.0 || ^19.0.0" } }, "sha512-EHmHeTf8WgO29sdY3iX/7ekE3gNUdlc2RW6mm/FzELlHFKfTrA9S4MlyquRR+RRCRCn8+jXfLFpLGB2l7wCWyw=="],
|
||||
"@fortawesome/react-fontawesome": ["@fortawesome/react-fontawesome@3.3.1", "", { "peerDependencies": { "@fortawesome/fontawesome-svg-core": "~6 || ~7", "react": "^18.0.0 || ^19.0.0" } }, "sha512-wGnAPhfzivDwBWYmEG8MSrEXPruoiMMo48NnsRkj1NZkoaawgOijPNAiSHKMYEoCsqTBSgLTzL6EqTTWGaUR4w=="],
|
||||
|
||||
"@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="],
|
||||
"@humanfs/core": ["@humanfs/core@0.19.2", "", { "dependencies": { "@humanfs/types": "^0.15.0" } }, "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA=="],
|
||||
|
||||
"@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="],
|
||||
"@humanfs/node": ["@humanfs/node@0.16.8", "", { "dependencies": { "@humanfs/core": "^0.19.2", "@humanfs/types": "^0.15.0", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ=="],
|
||||
|
||||
"@humanfs/types": ["@humanfs/types@0.15.0", "", {}, "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q=="],
|
||||
|
||||
"@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="],
|
||||
|
||||
@@ -169,29 +171,29 @@
|
||||
|
||||
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
|
||||
|
||||
"@marsidev/react-turnstile": ["@marsidev/react-turnstile@1.5.0", "", { "peerDependencies": { "react": "^17.0.2 || ^18.0.0 || ^19.0", "react-dom": "^17.0.2 || ^18.0.0 || ^19.0" } }, "sha512-Ph6mcj8u9WBDsBO7s9jKPsyRDz1sBPBJwrk+Ngx09vFInvKsQ6U6kW5amEcGq4dHOreB6DgFrOJk7/fy318YlQ=="],
|
||||
"@marsidev/react-turnstile": ["@marsidev/react-turnstile@1.5.2", "", { "peerDependencies": { "react": "^17.0.2 || ^18.0.0 || ^19.0", "react-dom": "^17.0.2 || ^18.0.0 || ^19.0" } }, "sha512-+3aBPxp86JzSC0ZmgyonoGoUEENcUkH3LGahXSpkV87ArvD2DzRCmPgh0FyQk6PQRmJwQJDAfwNavFsxUxMQWA=="],
|
||||
|
||||
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="],
|
||||
|
||||
"@next/env": ["@next/env@16.2.2", "", {}, "sha512-LqSGz5+xGk9EL/iBDr2yo/CgNQV6cFsNhRR2xhSXYh7B/hb4nePCxlmDvGEKG30NMHDFf0raqSyOZiQrO7BkHQ=="],
|
||||
"@next/env": ["@next/env@16.2.6", "", {}, "sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw=="],
|
||||
|
||||
"@next/eslint-plugin-next": ["@next/eslint-plugin-next@16.2.2", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-IOPbWzDQ+76AtjZioaCjpIY72xNSDMnarZ2GMQ4wjNLvnJEJHqxQwGFhgnIWLV9klb4g/+amg88Tk5OXVpyLTw=="],
|
||||
"@next/eslint-plugin-next": ["@next/eslint-plugin-next@16.2.6", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-Z8l6o4JWKUl755x4R+wogD86KPeU+Ckw4K+SYG4kHeOJtRenDeK+OSbGcqZpDtbwn9DsJVdir2UxmwXuinUbUw=="],
|
||||
|
||||
"@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.2.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-B92G3ulrwmkDSEJEp9+XzGLex5wC1knrmCSIylyVeiAtCIfvEJYiN3v5kXPlYt5R4RFlsfO/v++aKV63Acrugg=="],
|
||||
"@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.2.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg=="],
|
||||
|
||||
"@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.2.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-7ZwSgNKJNQiwW0CKhNm9B1WS2L1Olc4B2XY0hPYCAL3epFnugMhuw5TMWzMilQ3QCZcCHoYm9NGWTHbr5REFxw=="],
|
||||
"@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.2.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ=="],
|
||||
|
||||
"@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.2.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-c3m8kBHMziMgo2fICOP/cd/5YlrxDU5YYjAJeQLyFsCqVF8xjOTH/QYG4a2u48CvvZZSj1eHQfBCbyh7kBr30Q=="],
|
||||
"@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.2.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w=="],
|
||||
|
||||
"@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.2.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-VKLuscm0P/mIfzt+SDdn2+8TNNJ7f0qfEkA+az7OqQbjzKdBxAHs0UvuiVoCtbwX+dqMEL9U54b5wQ/aN3dHeg=="],
|
||||
"@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.2.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA=="],
|
||||
|
||||
"@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.2.2", "", { "os": "linux", "cpu": "x64" }, "sha512-kU3OPHJq6sBUjOk7wc5zJ7/lipn8yGldMoAv4z67j6ov6Xo/JvzA7L7LCsyzzsXmgLEhk3Qkpwqaq/1+XpNR3g=="],
|
||||
"@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.2.6", "", { "os": "linux", "cpu": "x64" }, "sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw=="],
|
||||
|
||||
"@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.2.2", "", { "os": "linux", "cpu": "x64" }, "sha512-CKXRILyErMtUftp+coGcZ38ZwE/Aqq45VMCcRLr2I4OXKrgxIBDXHnBgeX/UMil0S09i2JXaDL3Q+TN8D/cKmg=="],
|
||||
"@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.2.6", "", { "os": "linux", "cpu": "x64" }, "sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g=="],
|
||||
|
||||
"@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.2.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-sS/jSk5VUoShUqINJFvNjVT7JfR5ORYj/+/ZpOYbbIohv/lQfduWnGAycq2wlknbOql2xOR0DoV0s6Xfcy49+g=="],
|
||||
"@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.2.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg=="],
|
||||
|
||||
"@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.2.2", "", { "os": "win32", "cpu": "x64" }, "sha512-aHaKceJgdySReT7qeck5oShucxWRiiEuwCGK8HHALe6yZga8uyFpLkPgaRw3kkF04U7ROogL/suYCNt/+CuXGA=="],
|
||||
"@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.2.6", "", { "os": "win32", "cpu": "x64" }, "sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA=="],
|
||||
|
||||
"@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
|
||||
|
||||
@@ -205,69 +207,69 @@
|
||||
|
||||
"@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="],
|
||||
|
||||
"@tailwindcss/node": ["@tailwindcss/node@4.2.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.19.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.2.2" } }, "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA=="],
|
||||
"@tailwindcss/node": ["@tailwindcss/node@4.2.4", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.19.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.2.4" } }, "sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA=="],
|
||||
|
||||
"@tailwindcss/oxide": ["@tailwindcss/oxide@4.2.2", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.2.2", "@tailwindcss/oxide-darwin-arm64": "4.2.2", "@tailwindcss/oxide-darwin-x64": "4.2.2", "@tailwindcss/oxide-freebsd-x64": "4.2.2", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", "@tailwindcss/oxide-linux-x64-musl": "4.2.2", "@tailwindcss/oxide-wasm32-wasi": "4.2.2", "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" } }, "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg=="],
|
||||
"@tailwindcss/oxide": ["@tailwindcss/oxide@4.2.4", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.2.4", "@tailwindcss/oxide-darwin-arm64": "4.2.4", "@tailwindcss/oxide-darwin-x64": "4.2.4", "@tailwindcss/oxide-freebsd-x64": "4.2.4", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4", "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4", "@tailwindcss/oxide-linux-arm64-musl": "4.2.4", "@tailwindcss/oxide-linux-x64-gnu": "4.2.4", "@tailwindcss/oxide-linux-x64-musl": "4.2.4", "@tailwindcss/oxide-wasm32-wasi": "4.2.4", "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4", "@tailwindcss/oxide-win32-x64-msvc": "4.2.4" } }, "sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q=="],
|
||||
|
||||
"@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.2.2", "", { "os": "android", "cpu": "arm64" }, "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg=="],
|
||||
"@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.2.4", "", { "os": "android", "cpu": "arm64" }, "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g=="],
|
||||
|
||||
"@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.2.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg=="],
|
||||
"@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg=="],
|
||||
|
||||
"@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.2.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw=="],
|
||||
"@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg=="],
|
||||
|
||||
"@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.2.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ=="],
|
||||
"@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.2.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw=="],
|
||||
|
||||
"@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2", "", { "os": "linux", "cpu": "arm" }, "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ=="],
|
||||
"@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA=="],
|
||||
|
||||
"@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.2.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw=="],
|
||||
"@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw=="],
|
||||
|
||||
"@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.2.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag=="],
|
||||
"@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g=="],
|
||||
|
||||
"@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.2.2", "", { "os": "linux", "cpu": "x64" }, "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg=="],
|
||||
"@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA=="],
|
||||
|
||||
"@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.2.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ=="],
|
||||
"@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.2.2", "", { "dependencies": { "@emnapi/core": "^1.8.1", "@emnapi/runtime": "^1.8.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.1", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q=="],
|
||||
"@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.2.4", "", { "dependencies": { "@emnapi/core": "^1.8.1", "@emnapi/runtime": "^1.8.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.1", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw=="],
|
||||
|
||||
"@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.2.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ=="],
|
||||
"@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.2.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ=="],
|
||||
|
||||
"@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.2.2", "", { "os": "win32", "cpu": "x64" }, "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA=="],
|
||||
"@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.2.4", "", { "os": "win32", "cpu": "x64" }, "sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw=="],
|
||||
|
||||
"@tailwindcss/postcss": ["@tailwindcss/postcss@4.2.2", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.2.2", "@tailwindcss/oxide": "4.2.2", "postcss": "^8.5.6", "tailwindcss": "4.2.2" } }, "sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ=="],
|
||||
"@tailwindcss/postcss": ["@tailwindcss/postcss@4.2.4", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.2.4", "@tailwindcss/oxide": "4.2.4", "postcss": "^8.5.6", "tailwindcss": "4.2.4" } }, "sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg=="],
|
||||
|
||||
"@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="],
|
||||
"@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="],
|
||||
|
||||
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
||||
"@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="],
|
||||
|
||||
"@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
|
||||
|
||||
"@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="],
|
||||
|
||||
"@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="],
|
||||
"@types/node": ["@types/node@25.6.1", "", { "dependencies": { "undici-types": "~7.19.0" } }, "sha512-coJCN8O1q4AGyyqCAUSP06P+SrMTu18BkEj3NVAK07q6QUneD2wzj3CLv9+yP+BMeZQlMvneXqqvDe3w+xcq7g=="],
|
||||
|
||||
"@types/react": ["@types/react@19.2.14", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w=="],
|
||||
|
||||
"@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="],
|
||||
|
||||
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.58.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/type-utils": "8.58.0", "@typescript-eslint/utils": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.58.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg=="],
|
||||
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.59.2", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.59.2", "@typescript-eslint/type-utils": "8.59.2", "@typescript-eslint/utils": "8.59.2", "@typescript-eslint/visitor-keys": "8.59.2", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.59.2", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ=="],
|
||||
|
||||
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.58.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA=="],
|
||||
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.59.2", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.59.2", "@typescript-eslint/types": "8.59.2", "@typescript-eslint/typescript-estree": "8.59.2", "@typescript-eslint/visitor-keys": "8.59.2", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ=="],
|
||||
|
||||
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.0", "@typescript-eslint/types": "^8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg=="],
|
||||
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.59.2", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.59.2", "@typescript-eslint/types": "^8.59.2", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw=="],
|
||||
|
||||
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0" } }, "sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ=="],
|
||||
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.59.2", "", { "dependencies": { "@typescript-eslint/types": "8.59.2", "@typescript-eslint/visitor-keys": "8.59.2" } }, "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg=="],
|
||||
|
||||
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A=="],
|
||||
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.59.2", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw=="],
|
||||
|
||||
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/utils": "8.58.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg=="],
|
||||
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.59.2", "", { "dependencies": { "@typescript-eslint/types": "8.59.2", "@typescript-eslint/typescript-estree": "8.59.2", "@typescript-eslint/utils": "8.59.2", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ=="],
|
||||
|
||||
"@typescript-eslint/types": ["@typescript-eslint/types@8.58.0", "", {}, "sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww=="],
|
||||
"@typescript-eslint/types": ["@typescript-eslint/types@8.59.2", "", {}, "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q=="],
|
||||
|
||||
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.0", "@typescript-eslint/tsconfig-utils": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA=="],
|
||||
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.59.2", "", { "dependencies": { "@typescript-eslint/project-service": "8.59.2", "@typescript-eslint/tsconfig-utils": "8.59.2", "@typescript-eslint/types": "8.59.2", "@typescript-eslint/visitor-keys": "8.59.2", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg=="],
|
||||
|
||||
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA=="],
|
||||
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.59.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.59.2", "@typescript-eslint/types": "8.59.2", "@typescript-eslint/typescript-estree": "8.59.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q=="],
|
||||
|
||||
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
|
||||
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.59.2", "", { "dependencies": { "@typescript-eslint/types": "8.59.2", "eslint-visitor-keys": "^5.0.0" } }, "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA=="],
|
||||
|
||||
"@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="],
|
||||
|
||||
@@ -311,7 +313,7 @@
|
||||
|
||||
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
|
||||
|
||||
"ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="],
|
||||
"ajv": ["ajv@6.15.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw=="],
|
||||
|
||||
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
|
||||
|
||||
@@ -343,23 +345,23 @@
|
||||
|
||||
"available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="],
|
||||
|
||||
"axe-core": ["axe-core@4.11.2", "", {}, "sha512-byD6KPdvo72y/wj2T/4zGEvvlis+PsZsn/yPS3pEO+sFpcrqRpX/TJCxvVaEsNeMrfQbCr7w163YqoD9IYwHXw=="],
|
||||
"axe-core": ["axe-core@4.11.4", "", {}, "sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA=="],
|
||||
|
||||
"axios": ["axios@1.14.0", "", { "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } }, "sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ=="],
|
||||
"axios": ["axios@1.16.0", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } }, "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w=="],
|
||||
|
||||
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
||||
|
||||
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
|
||||
|
||||
"baseline-browser-mapping": ["baseline-browser-mapping@2.10.13", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw=="],
|
||||
"baseline-browser-mapping": ["baseline-browser-mapping@2.10.27", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-zEs/ufmZoUd7WftKpKyXaT6RFxpQ5Qm9xytKRHvJfxFV9DFJkZph9RvJ1LcOUi0Z1ZVijMte65JbILeV+8QQEA=="],
|
||||
|
||||
"brace-expansion": ["brace-expansion@1.1.13", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w=="],
|
||||
"brace-expansion": ["brace-expansion@1.1.14", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g=="],
|
||||
|
||||
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
|
||||
|
||||
"browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="],
|
||||
|
||||
"call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="],
|
||||
"call-bind": ["call-bind@1.0.9", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" } }, "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ=="],
|
||||
|
||||
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
|
||||
|
||||
@@ -367,7 +369,7 @@
|
||||
|
||||
"callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
|
||||
|
||||
"caniuse-lite": ["caniuse-lite@1.0.30001784", "", {}, "sha512-WU346nBTklUV9YfUl60fqRbU5ZqyXlqvo1SgigE1OAXK5bFL8LL9q1K7aap3N739l4BvNqnkm3YrGHiY9sfUQw=="],
|
||||
"caniuse-lite": ["caniuse-lite@1.0.30001792", "", {}, "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw=="],
|
||||
|
||||
"chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
||||
|
||||
@@ -413,19 +415,19 @@
|
||||
|
||||
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
|
||||
|
||||
"electron-to-chromium": ["electron-to-chromium@1.5.330", "", {}, "sha512-jFNydB5kFtYUobh4IkWUnXeyDbjf/r9gcUEXe1xcrcUxIGfTdzPXA+ld6zBRbwvgIGVzDll/LTIiDztEtckSnA=="],
|
||||
"electron-to-chromium": ["electron-to-chromium@1.5.352", "", {}, "sha512-9wHk8x6dyuimoe18EdiDPWKExNdxYqo4fn4FwOVVper6RxT3cmpBwBkWWfSOCYJjQdIco/nPhJhNLmn4Ufg1Yg=="],
|
||||
|
||||
"emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="],
|
||||
|
||||
"enhanced-resolve": ["enhanced-resolve@5.20.1", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA=="],
|
||||
"enhanced-resolve": ["enhanced-resolve@5.21.1", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-8p7DUVq6XJnZEz9W4oSwiwycxBIjHjRzYb3Je3zVN+geKTRQKzAkR/K4PBExlS0090d9nshak6phMUxr3PDjmQ=="],
|
||||
|
||||
"es-abstract": ["es-abstract@1.24.1", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw=="],
|
||||
"es-abstract": ["es-abstract@1.24.2", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg=="],
|
||||
|
||||
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
|
||||
|
||||
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
|
||||
|
||||
"es-iterator-helpers": ["es-iterator-helpers@1.3.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.1", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.3.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", "math-intrinsics": "^1.1.0", "safe-array-concat": "^1.1.3" } }, "sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ=="],
|
||||
"es-iterator-helpers": ["es-iterator-helpers@1.3.2", "", { "dependencies": { "call-bind": "^1.0.9", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.2", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.3.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", "math-intrinsics": "^1.1.0" } }, "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw=="],
|
||||
|
||||
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
|
||||
|
||||
@@ -441,9 +443,9 @@
|
||||
|
||||
"eslint": ["eslint@9.39.4", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.5", "@eslint/js": "9.39.4", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ=="],
|
||||
|
||||
"eslint-config-next": ["eslint-config-next@16.2.2", "", { "dependencies": { "@next/eslint-plugin-next": "16.2.2", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^7.0.0", "globals": "16.4.0", "typescript-eslint": "^8.46.0" }, "peerDependencies": { "eslint": ">=9.0.0", "typescript": ">=3.3.1" }, "optionalPeers": ["typescript"] }, "sha512-6VlvEhwoug2JpVgjZDhyXrJXUEuPY++TddzIpTaIRvlvlXXFgvQUtm3+Zr84IjFm0lXtJt73w19JA08tOaZVwg=="],
|
||||
"eslint-config-next": ["eslint-config-next@16.2.6", "", { "dependencies": { "@next/eslint-plugin-next": "16.2.6", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^7.0.0", "globals": "16.4.0", "typescript-eslint": "^8.46.0" }, "peerDependencies": { "eslint": ">=9.0.0", "typescript": ">=3.3.1" }, "optionalPeers": ["typescript"] }, "sha512-z2ELYSkyrrJ6cuunTU8vhsT/RpouPkjaSah06nVW6Rg2Hpg0Vs8s497/e5s8G8qtdp4ccsiovz5P1rv+5VSW2Q=="],
|
||||
|
||||
"eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.9", "", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="],
|
||||
"eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.10", "", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.16.1", "resolve": "^2.0.0-next.6" } }, "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ=="],
|
||||
|
||||
"eslint-import-resolver-typescript": ["eslint-import-resolver-typescript@3.10.1", "", { "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "^4.4.0", "get-tsconfig": "^4.10.0", "is-bun-module": "^2.0.0", "stable-hash": "^0.0.5", "tinyglobby": "^0.2.13", "unrs-resolver": "^1.6.2" }, "peerDependencies": { "eslint": "*", "eslint-plugin-import": "*", "eslint-plugin-import-x": "*" }, "optionalPeers": ["eslint-plugin-import", "eslint-plugin-import-x"] }, "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ=="],
|
||||
|
||||
@@ -455,7 +457,7 @@
|
||||
|
||||
"eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="],
|
||||
|
||||
"eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.0.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA=="],
|
||||
"eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.1.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g=="],
|
||||
|
||||
"eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="],
|
||||
|
||||
@@ -493,7 +495,7 @@
|
||||
|
||||
"flatted": ["flatted@3.4.2", "", {}, "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA=="],
|
||||
|
||||
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
|
||||
"follow-redirects": ["follow-redirects@1.16.0", "", {}, "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw=="],
|
||||
|
||||
"for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="],
|
||||
|
||||
@@ -515,7 +517,7 @@
|
||||
|
||||
"get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="],
|
||||
|
||||
"get-tsconfig": ["get-tsconfig@4.13.7", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q=="],
|
||||
"get-tsconfig": ["get-tsconfig@4.14.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA=="],
|
||||
|
||||
"glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="],
|
||||
|
||||
@@ -539,7 +541,7 @@
|
||||
|
||||
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
|
||||
|
||||
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
|
||||
"hasown": ["hasown@2.0.3", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg=="],
|
||||
|
||||
"hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="],
|
||||
|
||||
@@ -565,7 +567,7 @@
|
||||
|
||||
"is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="],
|
||||
|
||||
"is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
|
||||
"is-core-module": ["is-core-module@2.16.2", "", { "dependencies": { "hasown": "^2.0.3" } }, "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA=="],
|
||||
|
||||
"is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="],
|
||||
|
||||
@@ -613,7 +615,7 @@
|
||||
|
||||
"iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="],
|
||||
|
||||
"jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="],
|
||||
"jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="],
|
||||
|
||||
"js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
|
||||
|
||||
@@ -689,17 +691,17 @@
|
||||
|
||||
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||
|
||||
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
||||
"nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="],
|
||||
|
||||
"napi-postinstall": ["napi-postinstall@0.3.4", "", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="],
|
||||
|
||||
"natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
|
||||
|
||||
"next": ["next@16.2.2", "", { "dependencies": { "@next/env": "16.2.2", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.2.2", "@next/swc-darwin-x64": "16.2.2", "@next/swc-linux-arm64-gnu": "16.2.2", "@next/swc-linux-arm64-musl": "16.2.2", "@next/swc-linux-x64-gnu": "16.2.2", "@next/swc-linux-x64-musl": "16.2.2", "@next/swc-win32-arm64-msvc": "16.2.2", "@next/swc-win32-x64-msvc": "16.2.2", "sharp": "^0.34.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-i6AJdyVa4oQjyvX/6GeER8dpY/xlIV+4NMv/svykcLtURJSy/WzDnnUk/TM4d0uewFHK7xSQz4TbIwPgjky+3A=="],
|
||||
"next": ["next@16.2.6", "", { "dependencies": { "@next/env": "16.2.6", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.2.6", "@next/swc-darwin-x64": "16.2.6", "@next/swc-linux-arm64-gnu": "16.2.6", "@next/swc-linux-arm64-musl": "16.2.6", "@next/swc-linux-x64-gnu": "16.2.6", "@next/swc-linux-x64-musl": "16.2.6", "@next/swc-win32-arm64-msvc": "16.2.6", "@next/swc-win32-x64-msvc": "16.2.6", "sharp": "^0.34.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw=="],
|
||||
|
||||
"node-exports-info": ["node-exports-info@1.6.0", "", { "dependencies": { "array.prototype.flatmap": "^1.3.3", "es-errors": "^1.3.0", "object.entries": "^1.1.9", "semver": "^6.3.1" } }, "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw=="],
|
||||
|
||||
"node-releases": ["node-releases@2.0.36", "", {}, "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA=="],
|
||||
"node-releases": ["node-releases@2.0.38", "", {}, "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw=="],
|
||||
|
||||
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
|
||||
|
||||
@@ -739,7 +741,7 @@
|
||||
|
||||
"possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="],
|
||||
|
||||
"postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="],
|
||||
"postcss": ["postcss@8.5.14", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg=="],
|
||||
|
||||
"prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="],
|
||||
|
||||
@@ -751,9 +753,9 @@
|
||||
|
||||
"queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
|
||||
|
||||
"react": ["react@19.2.4", "", {}, "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ=="],
|
||||
"react": ["react@19.2.6", "", {}, "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q=="],
|
||||
|
||||
"react-dom": ["react-dom@19.2.4", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.4" } }, "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ=="],
|
||||
"react-dom": ["react-dom@19.2.6", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.6" } }, "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g=="],
|
||||
|
||||
"react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
|
||||
|
||||
@@ -761,7 +763,7 @@
|
||||
|
||||
"regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="],
|
||||
|
||||
"resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="],
|
||||
"resolve": ["resolve@2.0.0-next.6", "", { "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "node-exports-info": "^1.6.0", "object-keys": "^1.1.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA=="],
|
||||
|
||||
"resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="],
|
||||
|
||||
@@ -771,7 +773,7 @@
|
||||
|
||||
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
|
||||
|
||||
"safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="],
|
||||
"safe-array-concat": ["safe-array-concat@1.1.4", "", { "dependencies": { "call-bind": "^1.0.9", "call-bound": "^1.0.4", "get-intrinsic": "^1.3.0", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg=="],
|
||||
|
||||
"safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="],
|
||||
|
||||
@@ -795,7 +797,7 @@
|
||||
|
||||
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
|
||||
|
||||
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
|
||||
"side-channel-list": ["side-channel-list@1.0.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4" } }, "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="],
|
||||
|
||||
"side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="],
|
||||
|
||||
@@ -829,13 +831,13 @@
|
||||
|
||||
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
|
||||
|
||||
"swiper": ["swiper@12.1.3", "", {}, "sha512-XcWlVmkHFICI4fuoJKgbp8PscDcS4i7pBH8nwJRBi3dpQvhCySwsWRYm4bOf/BzKVWkHOYaFw7qz9uBSrY3oug=="],
|
||||
"swiper": ["swiper@12.1.4", "", {}, "sha512-bihiwoKMOQwW8FfdUbo1DgkVH25E+4ZELIq0oopL1KTKBteLuaTMi/wwFjMxtlhTkk45k3XQ89D1Fvv0spSqBA=="],
|
||||
|
||||
"tailwindcss": ["tailwindcss@4.2.2", "", {}, "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q=="],
|
||||
"tailwindcss": ["tailwindcss@4.2.4", "", {}, "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA=="],
|
||||
|
||||
"tapable": ["tapable@2.3.2", "", {}, "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA=="],
|
||||
"tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="],
|
||||
|
||||
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
||||
"tinyglobby": ["tinyglobby@0.2.16", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg=="],
|
||||
|
||||
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
|
||||
|
||||
@@ -855,9 +857,9 @@
|
||||
|
||||
"typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="],
|
||||
|
||||
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||
"typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="],
|
||||
|
||||
"typescript-eslint": ["typescript-eslint@8.58.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.58.0", "@typescript-eslint/parser": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/utils": "8.58.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA=="],
|
||||
"typescript-eslint": ["typescript-eslint@8.59.2", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.59.2", "@typescript-eslint/parser": "8.59.2", "@typescript-eslint/typescript-estree": "8.59.2", "@typescript-eslint/utils": "8.59.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ=="],
|
||||
|
||||
"ua-is-frozen": ["ua-is-frozen@0.1.2", "", {}, "sha512-RwKDW2p3iyWn4UbaxpP2+VxwqXh0jpvdxsYpZ5j/MLLiQOfbsV5shpgQiw93+KMYQPcteeMQ289MaAFzs3G9pw=="],
|
||||
|
||||
@@ -865,7 +867,7 @@
|
||||
|
||||
"unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="],
|
||||
|
||||
"undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="],
|
||||
"undici-types": ["undici-types@7.19.2", "", {}, "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg=="],
|
||||
|
||||
"unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="],
|
||||
|
||||
@@ -889,7 +891,7 @@
|
||||
|
||||
"yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
|
||||
|
||||
"zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="],
|
||||
"zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="],
|
||||
|
||||
"zod-validation-error": ["zod-validation-error@4.0.2", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ=="],
|
||||
|
||||
@@ -899,15 +901,15 @@
|
||||
|
||||
"@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.9.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA=="],
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.9.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA=="],
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg=="],
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.2", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw=="],
|
||||
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="],
|
||||
"@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||
|
||||
@@ -925,8 +927,6 @@
|
||||
|
||||
"eslint-plugin-import/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="],
|
||||
|
||||
"eslint-plugin-react/resolve": ["resolve@2.0.0-next.6", "", { "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "node-exports-info": "^1.6.0", "object-keys": "^1.1.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA=="],
|
||||
|
||||
"fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
||||
|
||||
"is-bun-module/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="],
|
||||
|
||||
+12
-12
@@ -13,23 +13,23 @@
|
||||
"@fortawesome/free-brands-svg-icons": "7.2.0",
|
||||
"@fortawesome/free-regular-svg-icons": "7.2.0",
|
||||
"@fortawesome/free-solid-svg-icons": "7.2.0",
|
||||
"@fortawesome/react-fontawesome": "3.3.0",
|
||||
"@marsidev/react-turnstile": "1.5.0",
|
||||
"axios": "1.14.0",
|
||||
"next": "16.2.2",
|
||||
"react": "19.2.4",
|
||||
"react-dom": "19.2.4",
|
||||
"swiper": "12.1.3",
|
||||
"@fortawesome/react-fontawesome": "3.3.1",
|
||||
"@marsidev/react-turnstile": "1.5.2",
|
||||
"axios": "1.16.0",
|
||||
"next": "16.2.6",
|
||||
"react": "19.2.6",
|
||||
"react-dom": "19.2.6",
|
||||
"swiper": "12.1.4",
|
||||
"ua-parser-js": "2.0.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "5.9.3",
|
||||
"@types/node": "25.5.0",
|
||||
"typescript": "6.0.3",
|
||||
"@types/node": "25.6.1",
|
||||
"@types/react": "19.2.14",
|
||||
"@types/react-dom": "19.2.3",
|
||||
"@tailwindcss/postcss": "4.2.2",
|
||||
"tailwindcss": "4.2.2",
|
||||
"@tailwindcss/postcss": "4.2.4",
|
||||
"tailwindcss": "4.2.4",
|
||||
"eslint": "9.39.4",
|
||||
"eslint-config-next": "16.2.2"
|
||||
"eslint-config-next": "16.2.6"
|
||||
}
|
||||
}
|
||||
@@ -108,7 +108,9 @@ export default function AccountChangePasswordPage () {
|
||||
onChange={e => setRetypeNewPassword(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Change Password</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Change Password
|
||||
</button>
|
||||
</form>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -92,7 +92,9 @@ export default function AccountChangeUsernamePage () {
|
||||
onChange={e => setNewUsername(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Change Username</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Change Username
|
||||
</button>
|
||||
</form>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -105,7 +105,9 @@ export default function AccountForgotPasswordPage () {
|
||||
onChange={e => setEmail(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Send email</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Send email
|
||||
</button>
|
||||
</form>
|
||||
) : (
|
||||
(result == 1 || result == 2) && (
|
||||
|
||||
@@ -105,7 +105,9 @@ export default function AccountForgotUsernamePage () {
|
||||
onChange={e => setEmail(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Send email</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Send email
|
||||
</button>
|
||||
</form>
|
||||
) : (
|
||||
(result == 1 || result == 2) && (
|
||||
|
||||
@@ -124,7 +124,9 @@ function AccountLoginForm ({ redirect }: { redirect: string | null }) {
|
||||
onChange={e => setPassword(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Login</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Login
|
||||
</button>
|
||||
</form>
|
||||
<p
|
||||
className='my-2 w-60 whitespace-normal text-center text-sm'
|
||||
@@ -139,20 +141,20 @@ function AccountLoginForm ({ redirect }: { redirect: string | null }) {
|
||||
hidden={alreadyLoggedIn}
|
||||
>
|
||||
<Link
|
||||
href='/account/forgot-username'
|
||||
draggable={false}
|
||||
href='/account/forgot-username'
|
||||
className='button'
|
||||
>
|
||||
Forgot username?
|
||||
</Link>
|
||||
<Link
|
||||
href='/account/forgot-password'
|
||||
draggable={false}
|
||||
href='/account/forgot-password'
|
||||
className='button'
|
||||
>
|
||||
Forgot password?
|
||||
</Link>
|
||||
<Link href='/account/register' draggable={false} className='button'>
|
||||
<Link draggable={false} href='/account/register' className='button'>
|
||||
Don't have an account?
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -44,30 +44,30 @@ export default function AccountPage () {
|
||||
</p>
|
||||
<div className='flex justify-center flex-col gap-2 mt-4 text-center'>
|
||||
<Link
|
||||
href='/account/change-username'
|
||||
draggable={false}
|
||||
href='/account/change-username'
|
||||
className='button'
|
||||
>
|
||||
Change username
|
||||
</Link>
|
||||
<Link
|
||||
href='/account/change-password'
|
||||
draggable={false}
|
||||
href='/account/change-password'
|
||||
className='button'
|
||||
>
|
||||
Change password
|
||||
</Link>
|
||||
<Link href='/account/login' draggable={false} className='button'>
|
||||
<Link draggable={false} href='/account/login' className='button'>
|
||||
Refresh login
|
||||
</Link>
|
||||
<button
|
||||
draggable={false}
|
||||
onClick={() => {
|
||||
unsetCookie('accountToken')
|
||||
unsetCookie('accountUsername')
|
||||
unsetCookie('accountId')
|
||||
router.push('/account/login')
|
||||
}}
|
||||
draggable={false}
|
||||
>
|
||||
Logout
|
||||
</button>
|
||||
|
||||
@@ -158,12 +158,14 @@ export default function AccountRegisterPage () {
|
||||
onChange={e => setRetypePassword(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Register</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Register
|
||||
</button>
|
||||
</form>
|
||||
<div className='flex justify-center flex-col mt-6 text-center'>
|
||||
<Link
|
||||
href='/account/login'
|
||||
draggable={false}
|
||||
href='/account/login'
|
||||
className='button'
|
||||
>
|
||||
Already have an account?
|
||||
|
||||
@@ -123,7 +123,9 @@ function AccountResetPasswordForm ({ codeParam }: { codeParam: string }) {
|
||||
onChange={e => setRetypeNewPassword(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Update password</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Update password
|
||||
</button>
|
||||
</form>
|
||||
) : (
|
||||
result == 1 && (
|
||||
|
||||
+33
-24
@@ -6,6 +6,7 @@ import { DiscordButton } from '../../components/DiscordButton'
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
import axios from 'axios'
|
||||
import { UAParser } from 'ua-parser-js'
|
||||
import Dropdown from '@/components/Dropdown'
|
||||
|
||||
export default function DownloadPage () {
|
||||
const [platform, setPlatform] = useState<string>('')
|
||||
@@ -16,7 +17,7 @@ export default function DownloadPage () {
|
||||
document.title = 'Lncvrt Games - Download'
|
||||
;(async () => {
|
||||
try {
|
||||
const result = await axios.get('/api/launcher/loader/latest')
|
||||
const result = await axios.get('/api/launcher/latest')
|
||||
setVersion(result.data)
|
||||
} catch {
|
||||
setVersion(-1)
|
||||
@@ -67,18 +68,17 @@ export default function DownloadPage () {
|
||||
The official downloads for Lncvrt Games Launcher
|
||||
</p>
|
||||
<div className='flex justify-center'>
|
||||
<select
|
||||
<Dropdown
|
||||
value={platform}
|
||||
onChange={e => setPlatform(e.target.value)}
|
||||
className=''
|
||||
>
|
||||
<option value=''>Select platform</option>
|
||||
<option value='windows'>Windows</option>
|
||||
<option value='macos'>macOS</option>
|
||||
<option value='linux'>Linux</option>
|
||||
<option value='android'>Android</option>
|
||||
<option value='ios'>iOS</option>
|
||||
</select>
|
||||
options={[
|
||||
{ label: 'Windows', value: 'windows' },
|
||||
{ label: 'macOS', value: 'macos' },
|
||||
{ label: 'Linux', value: 'linux' },
|
||||
{ label: 'Android', value: 'android' },
|
||||
{ label: 'iOS', value: 'ios' }
|
||||
]}
|
||||
onChange={val => setPlatform(String(val))}
|
||||
/>
|
||||
</div>
|
||||
{(platform == 'windows' || platform == 'macos' || platform == 'linux') &&
|
||||
(version === null || version === -1 ? (
|
||||
@@ -90,30 +90,30 @@ export default function DownloadPage () {
|
||||
{platform == 'windows' && (
|
||||
<>
|
||||
<Link
|
||||
href={`https://games-r2.lncvrt.xyz/lncvrt-games-launcher/Lncvrt-Games-Launcher-${version}-win-x64.msi`}
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-win-x64.msi`}
|
||||
>
|
||||
Windows 64-bit (x64)
|
||||
</Link>
|
||||
<Link
|
||||
href={`https://games-r2.lncvrt.xyz/lncvrt-games-launcher/Lncvrt-Games-Launcher-${version}-win-arm64.msi`}
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-win-arm64.msi`}
|
||||
>
|
||||
Windows ARM 64-bit
|
||||
Windows ARM (arm64)
|
||||
</Link>
|
||||
</>
|
||||
)}
|
||||
{platform == 'macos' && (
|
||||
<>
|
||||
<Link
|
||||
href={`https://games-r2.lncvrt.xyz/lncvrt-games-launcher/Lncvrt-Games-Launcher-${version}-macos-arm64.dmg`}
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-macos-arm64.dmg`}
|
||||
>
|
||||
macOS Apple Silicon (M1, M2, etc.)
|
||||
</Link>
|
||||
<Link
|
||||
href={`https://games-r2.lncvrt.xyz/lncvrt-games-launcher/Lncvrt-Games-Launcher-${version}-macos-x64.dmg`}
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-macos-x64.dmg`}
|
||||
>
|
||||
macOS Intel (x64)
|
||||
</Link>
|
||||
@@ -122,22 +122,28 @@ export default function DownloadPage () {
|
||||
{platform == 'linux' && (
|
||||
<>
|
||||
<Link
|
||||
href={`https://games-r2.lncvrt.xyz/lncvrt-games-launcher/Lncvrt-Games-Launcher-${version}-linux.deb`}
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-linux-x64.deb`}
|
||||
>
|
||||
Linux Debian/Ubuntu (.deb)
|
||||
Linux Debian-based (.deb, x64)
|
||||
</Link>
|
||||
<Link
|
||||
href={`https://games-r2.lncvrt.xyz/lncvrt-games-launcher/Lncvrt-Games-Launcher-${version}-linux.rpm`}
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-linux-arm64.deb`}
|
||||
>
|
||||
Linux Fedora/REHL (.rpm)
|
||||
Linux Debian-based (.deb, arm64)
|
||||
</Link>
|
||||
<Link
|
||||
href={`https://aur.archlinux.org/packages/lncvrt-games-launcher`}
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-linux-x64.rpm`}
|
||||
>
|
||||
Arch Linux (AUR)
|
||||
Linux Redhat-based (.rpm, x64)
|
||||
</Link>
|
||||
<Link
|
||||
draggable={false}
|
||||
href={`https://archive.org/download/lncvrt-games-archive/lncvrt-games-launcher-new/Lncvrt-Games-Launcher-${version}-linux-arm64.rpm`}
|
||||
>
|
||||
Linux Redhat-based (.deb, arm64)
|
||||
</Link>
|
||||
</>
|
||||
)}
|
||||
@@ -150,7 +156,10 @@ export default function DownloadPage () {
|
||||
) && (
|
||||
<p className='mt-2 text-center'>
|
||||
Mobile releases can be found at the bottom of a games page here{' '}
|
||||
<Link href='/'>here</Link>.
|
||||
<Link draggable={false} href='/'>
|
||||
here
|
||||
</Link>
|
||||
.
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -4,6 +4,7 @@ import { HomeButton } from '../../components/HomeButton'
|
||||
import { DiscordButton } from '../../components/DiscordButton'
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
import axios from 'axios'
|
||||
import Dropdown from '@/components/Dropdown'
|
||||
|
||||
interface Version {
|
||||
id: string
|
||||
@@ -88,7 +89,7 @@ export default function GameDownloadsPage () {
|
||||
<DiscordButton />
|
||||
<p className='text-center text-2xl sm:text-4xl'>Game Downloads</p>
|
||||
<p className='text-center text-sm sm:text-[18px] mb-2'>
|
||||
The launcher's download sources, in a website!
|
||||
The launcher's download sources, in a website!
|
||||
</p>
|
||||
{versionManifest == 0 || versionManifest == -1 ? (
|
||||
<p className='text-center'>
|
||||
@@ -98,19 +99,19 @@ export default function GameDownloadsPage () {
|
||||
<>
|
||||
<div>
|
||||
<p className='text-center'>Game Filter</p>
|
||||
<div className='flex justify-center mb-4'>
|
||||
<select
|
||||
className='w-full max-w-xs'
|
||||
value={game}
|
||||
onChange={e => setGame(Number(e.target.value))}
|
||||
>
|
||||
<option value='-1'>Off</option>
|
||||
{versionManifest.games.map(g => (
|
||||
<option key={g.id} value={g.id}>
|
||||
{g.name}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
<div className='flex justify-center mb-2'>
|
||||
<Dropdown
|
||||
value={String(game)}
|
||||
options={[
|
||||
{ label: 'Off', value: '-1' },
|
||||
...versionManifest.games.map(g => ({
|
||||
label: g.name,
|
||||
value: String(g.id)
|
||||
}))
|
||||
]}
|
||||
onChange={val => setGame(Number(val))}
|
||||
width={240}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className='flex flex-col gap-2'>
|
||||
@@ -128,6 +129,7 @@ export default function GameDownloadsPage () {
|
||||
<div className='flex flex-row flex-wrap gap-2 justify-center'>
|
||||
{Object.entries(v.downloads).map(([key, value]) => (
|
||||
<button
|
||||
draggable={false}
|
||||
key={v.game + '-' + v.id + '-' + key}
|
||||
className='text-sm sm:text-base'
|
||||
onClick={async e => {
|
||||
|
||||
@@ -45,7 +45,7 @@ export default function BerryDashCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-custom/home.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-custom/home.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -55,7 +55,7 @@ export default function BerryDashCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-custom/mode-select.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-custom/mode-select.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -65,7 +65,7 @@ export default function BerryDashCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-custom/playing.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-custom/playing.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -75,7 +75,7 @@ export default function BerryDashCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-custom/custom.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-custom/custom.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -85,7 +85,7 @@ export default function BerryDashCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-custom/icons.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-custom/icons.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -96,18 +96,18 @@ export default function BerryDashCustomGameInfo () {
|
||||
<p className='text-2xl mt-4 mb-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-custom/Berry-Dash-Custom-1.1.1-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-custom/Berry-Dash-Custom-1.1.1-android.apk'
|
||||
>
|
||||
Android
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-custom/Berry-Dash-Custom-1.1.1-ios.ipa'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-custom/Berry-Dash-Custom-1.1.1-ios.ipa'
|
||||
>
|
||||
iOS
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -46,7 +46,7 @@ export default function BerryDashGodotRemakeGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-godot-remake/home.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-godot-remake/home.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -56,7 +56,7 @@ export default function BerryDashGodotRemakeGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-godot-remake/settings.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-godot-remake/settings.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -66,7 +66,7 @@ export default function BerryDashGodotRemakeGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-godot-remake/playing.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-godot-remake/playing.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -77,18 +77,18 @@ export default function BerryDashGodotRemakeGameInfo () {
|
||||
<p className='text-2xl mt-4 mb-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-godot-remake/Berry-Dash-Godot-Remake-1.1.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-godot-remake/Berry-Dash-Godot-Remake-1.1.0-android.apk'
|
||||
>
|
||||
Android
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-godot-remake/Berry-Dash-Godot-Remake-1.1.0-ios.ipa'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-godot-remake/Berry-Dash-Godot-Remake-1.1.0-ios.ipa'
|
||||
>
|
||||
iOS
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -50,7 +50,7 @@ export default function BerryDashLiteGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-lite/playing.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-lite/playing.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -60,7 +60,7 @@ export default function BerryDashLiteGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-lite/stats.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-lite/stats.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -71,18 +71,18 @@ export default function BerryDashLiteGameInfo () {
|
||||
<p className='text-2xl mt-4 mb-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-lite/Berry-Dash-Lite-1.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-lite/Berry-Dash-Lite-1.0-android.apk'
|
||||
>
|
||||
Android
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-lite/Berry-Dash-Lite-1.0-ios.ipa'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-lite/Berry-Dash-Lite-1.0-ios.ipa'
|
||||
>
|
||||
iOS
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
'use client'
|
||||
|
||||
import 'swiper/css'
|
||||
import 'swiper/css/navigation'
|
||||
import Link from 'next/link'
|
||||
import { useEffect, useRef } from 'react'
|
||||
import { HomeButton } from '@/components/HomeButton'
|
||||
import { DiscordButton } from '@/components/DiscordButton'
|
||||
|
||||
export default function BerryDashUltimateGameInfo () {
|
||||
const backButtonRef = useRef<HTMLAnchorElement>(null)
|
||||
|
||||
useEffect(() => {
|
||||
document.title = 'Lncvrt Games - Berry Dash Ultimate'
|
||||
|
||||
const handleKeyDown = (e: KeyboardEvent) => {
|
||||
if (e.key === 'Escape') {
|
||||
backButtonRef.current?.click()
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown)
|
||||
return () => window.removeEventListener('keydown', handleKeyDown)
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className='box text-center'>
|
||||
<HomeButton refLink={backButtonRef} />
|
||||
<DiscordButton />
|
||||
<p className='text-4xl'>Berry Dash Ultimate</p>
|
||||
<p>
|
||||
Berry Dash Ultimate is a unofficial game made by BoNoise from scratch!
|
||||
It includes a lot of custom mechanics and more!
|
||||
</p>
|
||||
<p className='text-2xl mt-4 mb-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-ultimate/Berry-Dash-Ultimate-1.5.0-android.apk'
|
||||
draggable={false}
|
||||
>
|
||||
Android
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-ultimate/Berry-Dash-Ultimate-1.5.0-ios.ipa'
|
||||
draggable={false}
|
||||
>
|
||||
iOS
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -49,7 +49,7 @@ export default function BerryDashWithGunsCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-with-guns-custom/playing-1.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-with-guns-custom/playing-1.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -59,7 +59,7 @@ export default function BerryDashWithGunsCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-with-guns-custom/playing-2.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-with-guns-custom/playing-2.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -69,7 +69,7 @@ export default function BerryDashWithGunsCustomGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-with-guns-custom/stats.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-with-guns-custom/stats.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -79,7 +79,7 @@ export default function BerryDashWithGunsCustomGameInfo () {
|
||||
</Swiper>
|
||||
<p className='text-2xl mt-4 mb-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -49,7 +49,7 @@ export default function BerryDashWithGunsGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-with-guns/playing.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-with-guns/playing.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -59,7 +59,7 @@ export default function BerryDashWithGunsGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash-with-guns/stats.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash-with-guns/stats.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -70,18 +70,18 @@ export default function BerryDashWithGunsGameInfo () {
|
||||
<p className='text-2xl mt-4 mb-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-with-guns/Berry-Dash-with-Guns-1.1-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-with-guns/Berry-Dash-with-Guns-1.1-android.apk'
|
||||
>
|
||||
Android
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash-with-guns/Berry-Dash-with-Guns-1.1-ios.ipa'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash-with-guns/Berry-Dash-with-Guns-1.1-ios.ipa'
|
||||
>
|
||||
iOS
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -9,6 +9,7 @@ import { formatHumanTime } from '@/util/time'
|
||||
import { faPencil, faTrashCan } from '@fortawesome/free-solid-svg-icons'
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
||||
import Image from 'next/image'
|
||||
import { useSearchParams } from 'next/navigation'
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
|
||||
interface WSMessage {
|
||||
@@ -43,14 +44,15 @@ export default function BerryDashChatroom () {
|
||||
const [messages, setMessages] = useState<Message[]>([])
|
||||
const [ws, setWs] = useState<WebSocket | null>(null)
|
||||
const backButtonRef = useRef<HTMLAnchorElement>(null)
|
||||
const params = useSearchParams()
|
||||
|
||||
const messagesDiv = useRef<HTMLDivElement>(null)
|
||||
const [input, setInput] = useState<string>('')
|
||||
|
||||
useEffect(() => {
|
||||
document.title = 'Lncvrt Games - Chatroom'
|
||||
document.title = 'Lncvrt Games - Berry Dash Chatroom'
|
||||
|
||||
const token = getCookie('accountToken', '-1')
|
||||
const token = params.get('accountToken') ?? getCookie('accountToken', '-1')
|
||||
if (token !== '-1') {
|
||||
setTimeout(() => setLoggedIn(true), 0)
|
||||
setTimeout(() => setToken(token), 0)
|
||||
@@ -60,6 +62,16 @@ export default function BerryDashChatroom () {
|
||||
|
||||
socket.onopen = () => {
|
||||
setConnected(true)
|
||||
socket.send(
|
||||
JSON.stringify({
|
||||
type: 'connected_with_current_scene',
|
||||
sceneName: 'ChatroomMenu',
|
||||
Requester: 'BerryDashClient',
|
||||
ClientVersion: '26.1',
|
||||
ClientPlatform: 'OSXPlayer',
|
||||
timestamp: Date.now()
|
||||
})
|
||||
)
|
||||
socket.send(
|
||||
JSON.stringify({
|
||||
type: 'info_request',
|
||||
@@ -108,9 +120,10 @@ export default function BerryDashChatroom () {
|
||||
return () => {
|
||||
socket.close()
|
||||
}
|
||||
}, [])
|
||||
}, [params])
|
||||
|
||||
useEffect(() => {
|
||||
if (!params.get('launcher')) {
|
||||
const handleKeyDown = (e: KeyboardEvent) => {
|
||||
if (e.key === 'Escape') {
|
||||
backButtonRef.current?.click()
|
||||
@@ -119,7 +132,8 @@ export default function BerryDashChatroom () {
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown)
|
||||
return () => window.removeEventListener('keydown', handleKeyDown)
|
||||
}, [])
|
||||
}
|
||||
}, [params])
|
||||
|
||||
useEffect(() => {
|
||||
if (messagesDiv.current) {
|
||||
@@ -129,8 +143,12 @@ export default function BerryDashChatroom () {
|
||||
|
||||
return (
|
||||
<div className='box'>
|
||||
{!params.get('launcher') && (
|
||||
<>
|
||||
<BackButton href='/game/berry-dash' refLink={backButtonRef} />
|
||||
<DiscordButton />
|
||||
</>
|
||||
)}
|
||||
<p className='px-8 mb-4 -mt-2 text-center text-2xl'>
|
||||
Berry Dash Chatroom
|
||||
</p>
|
||||
@@ -142,7 +160,7 @@ export default function BerryDashChatroom () {
|
||||
>
|
||||
{messages.map(item => {
|
||||
return (
|
||||
<div key={item.id} className='sub-box2 flex flex-row gap-1'>
|
||||
<div key={item.id} className='message sub-box2'>
|
||||
<Image
|
||||
src={
|
||||
!item.customIcon
|
||||
@@ -167,7 +185,10 @@ export default function BerryDashChatroom () {
|
||||
className='pointer-events-none scale-x-[-1]'
|
||||
/>
|
||||
<div>
|
||||
{item.userId == Number(getCookie('accountId', '-1')) && (
|
||||
{item.userId ==
|
||||
Number(
|
||||
params.get('accountId') ?? getCookie('accountId', '-1')
|
||||
) && (
|
||||
<div className='relative'>
|
||||
<div
|
||||
className='actionbutton mr-5'
|
||||
@@ -292,7 +313,9 @@ export default function BerryDashChatroom () {
|
||||
value={input}
|
||||
onChange={e => setInput(e.target.value)}
|
||||
></input>
|
||||
<button className='-mr-4'>{!editing ? 'Send' : 'Edit'}</button>
|
||||
<button draggable={false} className='-mr-4'>
|
||||
{!editing ? 'Send' : 'Edit'}
|
||||
</button>
|
||||
</form>
|
||||
) : (
|
||||
<p className='text-center -mb-4 mt-6'>
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
.actionbutton {
|
||||
@apply absolute right-0 w-6 h-6 bg-(--col6) hover:bg-(--col8) rounded-full -mt-1.5 flex justify-center items-center cursor-pointer transition-colors;
|
||||
.message {
|
||||
@apply flex flex-row gap-1;
|
||||
}
|
||||
|
||||
.message:hover .actionbutton {
|
||||
@apply flex;
|
||||
}
|
||||
|
||||
.actionbutton {
|
||||
@apply absolute right-0 w-6 h-6 bg-(--col5) hover:bg-(--col7) rounded-full -mt-1.5 justify-center items-center cursor-pointer transition-colors hidden;
|
||||
}
|
||||
@@ -65,7 +65,7 @@ export default function BerryDashIconMarketplace () {
|
||||
) : (
|
||||
response.map(icon => (
|
||||
<div className='sub-box2' key={icon.id}>
|
||||
<div className='bg-(--col8) rounded-md w-fit h-fit p-2 mx-auto'>
|
||||
<div className='bg-(--col7) rounded-md w-fit h-fit p-2 mx-auto'>
|
||||
<Image
|
||||
src={
|
||||
'/api/berrydash/icon-marketplace/icon?id=' +
|
||||
@@ -74,7 +74,6 @@ export default function BerryDashIconMarketplace () {
|
||||
}
|
||||
width={96}
|
||||
height={96}
|
||||
draggable={false}
|
||||
alt=''
|
||||
className='pointer-events-none'
|
||||
/>
|
||||
|
||||
@@ -170,16 +170,17 @@ export default function BerryDashSubmitIcon () {
|
||||
onChange={e => setPrice(Number(e.target.value))}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Upload!</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Upload!
|
||||
</button>
|
||||
<div className='mt-4'>
|
||||
<p className='text-center mb-1 text-xl'>Preview:</p>
|
||||
<div className='sub-box2 text-center'>
|
||||
<div className='bg-(--col8) rounded-md w-fit h-fit p-2 mx-auto'>
|
||||
<div className='bg-(--col7) rounded-md w-fit h-fit p-2 mx-auto'>
|
||||
<img
|
||||
src={preview ?? undefined}
|
||||
width={96}
|
||||
height={96}
|
||||
draggable={false}
|
||||
className='pointer-events-none'
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
'use client'
|
||||
|
||||
import './styles.css'
|
||||
import { BackButton } from '@/components/BackButton'
|
||||
import { DiscordButton } from '@/components/DiscordButton'
|
||||
import { useCallback, useEffect, useRef, useState } from 'react'
|
||||
import { Suspense, useCallback, useEffect, useRef, useState } from 'react'
|
||||
import { BirdColor } from '../chatroom/page'
|
||||
import axios from 'axios'
|
||||
import { GetIconForUser } from '@/util/bd'
|
||||
import Image from 'next/image'
|
||||
import { useSearchParams } from 'next/navigation'
|
||||
import Dropdown from '@/components/Dropdown'
|
||||
|
||||
interface BaseEntry {
|
||||
id: number
|
||||
@@ -79,13 +82,14 @@ export function calculateLevel (xp: bigint): number {
|
||||
return Math.floor(level) + 1
|
||||
}
|
||||
|
||||
export default function BerryDashLeaderboards () {
|
||||
function BerryDashLeaderboardsSuspence () {
|
||||
const [selected, setSelected] = useState<number>(-1)
|
||||
const [selectedBerryOption, setSelectedBerryOption] = useState<number>(0)
|
||||
const [gettingEntries, setGettingEntries] = useState<boolean>(false)
|
||||
const [entries, setEntries] = useState<(LeaderboardEntry | Account)[]>([])
|
||||
const backButtonRef = useRef<HTMLAnchorElement>(null)
|
||||
const backButtonRef2 = useRef<HTMLButtonElement>(null)
|
||||
const params = useSearchParams()
|
||||
|
||||
const Refresh = useCallback(async () => {
|
||||
setGettingEntries(true)
|
||||
@@ -140,6 +144,7 @@ export default function BerryDashLeaderboards () {
|
||||
useEffect(() => {
|
||||
document.title = 'Lncvrt Games - Berry Dash Leaderboards'
|
||||
|
||||
if (!params.get('launcher')) {
|
||||
const handleKeyDown = (e: KeyboardEvent) => {
|
||||
if (e.key === 'Escape') {
|
||||
backButtonRef.current?.click()
|
||||
@@ -149,7 +154,8 @@ export default function BerryDashLeaderboards () {
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown)
|
||||
return () => window.removeEventListener('keydown', handleKeyDown)
|
||||
}, [])
|
||||
}
|
||||
}, [params])
|
||||
|
||||
useEffect(() => {
|
||||
if (selected != -1) setTimeout(() => Refresh(), 0)
|
||||
@@ -158,7 +164,9 @@ export default function BerryDashLeaderboards () {
|
||||
return (
|
||||
<div className='box'>
|
||||
{selected == -1 ? (
|
||||
!params.get('launcher') && (
|
||||
<BackButton href='/game/berry-dash' refLink={backButtonRef} />
|
||||
)
|
||||
) : (
|
||||
<BackButton
|
||||
onClick={() => {
|
||||
@@ -170,7 +178,7 @@ export default function BerryDashLeaderboards () {
|
||||
refButton={backButtonRef2}
|
||||
/>
|
||||
)}
|
||||
<DiscordButton />
|
||||
{!params.get('launcher') && <DiscordButton />}
|
||||
<p className='px-20 mb-2 -mt-2 text-center text-2xl'>
|
||||
Berry Dash Leaderboards
|
||||
</p>
|
||||
@@ -178,13 +186,25 @@ export default function BerryDashLeaderboards () {
|
||||
<>
|
||||
<p className='text-center mt-4 text-xl'>Select a Leaderboard</p>
|
||||
<div className='flex flex-col gap-2 mt-4 items-center justify-center'>
|
||||
<button onClick={() => setSelected(0)}>Score Leaderboard</button>
|
||||
<button onClick={() => setSelected(1)}>Berry Leaderboard</button>
|
||||
<button onClick={() => setSelected(2)}>Coins Leaderboard</button>
|
||||
<button onClick={() => setSelected(3)}>Level Leaderboard</button>
|
||||
<button onClick={() => setSelected(4)}>Total XP Leaderboard</button>
|
||||
<button onClick={() => setSelected(5)}>Legacy Leaderboard</button>
|
||||
<button onClick={() => setSelected(6)}>
|
||||
<button draggable={false} onClick={() => setSelected(0)}>
|
||||
Score Leaderboard
|
||||
</button>
|
||||
<button draggable={false} onClick={() => setSelected(1)}>
|
||||
Berry Leaderboard
|
||||
</button>
|
||||
<button draggable={false} onClick={() => setSelected(2)}>
|
||||
Coins Leaderboard
|
||||
</button>
|
||||
<button draggable={false} onClick={() => setSelected(3)}>
|
||||
Level Leaderboard
|
||||
</button>
|
||||
<button draggable={false} onClick={() => setSelected(4)}>
|
||||
Total XP Leaderboard
|
||||
</button>
|
||||
<button draggable={false} onClick={() => setSelected(5)}>
|
||||
Legacy Leaderboard
|
||||
</button>
|
||||
<button draggable={false} onClick={() => setSelected(6)}>
|
||||
Total Berries Leaderboard
|
||||
</button>
|
||||
</div>
|
||||
@@ -199,7 +219,7 @@ export default function BerryDashLeaderboards () {
|
||||
return (
|
||||
<div
|
||||
key={item.id}
|
||||
className='flex justify-between items-center'
|
||||
className='leaderboard-entry flex justify-between items-center'
|
||||
>
|
||||
<div className='flex items-center gap-1'>
|
||||
<Image
|
||||
@@ -250,22 +270,22 @@ export default function BerryDashLeaderboards () {
|
||||
})}
|
||||
</div>
|
||||
{selected == 1 && (
|
||||
<div className='flex justify-center'>
|
||||
<select
|
||||
value={selectedBerryOption}
|
||||
onChange={e => setSelectedBerryOption(Number(e.target.value))}
|
||||
className='-my-4 mt-2'
|
||||
>
|
||||
<option value='0'>Normal Berry</option>
|
||||
<option value='1'>Poison Berry</option>
|
||||
<option value='2'>Slow Berry</option>
|
||||
<option value='3'>Ultra Berry</option>
|
||||
<option value='4'>Speedy Berry</option>
|
||||
<option value='5'>Coin Berry</option>
|
||||
<option value='6'>Random Berry</option>
|
||||
<option value='7'>Anti Berry</option>
|
||||
<option value='8'>Golden Berry</option>
|
||||
</select>
|
||||
<div className='flex justify-center -mb-4 mt-2'>
|
||||
<Dropdown
|
||||
value={String(selectedBerryOption)}
|
||||
options={[
|
||||
{ label: 'Normal Berry', value: '0' },
|
||||
{ label: 'Poison Berry', value: '1' },
|
||||
{ label: 'Slow Berry', value: '2' },
|
||||
{ label: 'Ultra Berry', value: '3' },
|
||||
{ label: 'Speedy Berry', value: '4' },
|
||||
{ label: 'Coin Berry', value: '5' },
|
||||
{ label: 'Random Berry', value: '6' },
|
||||
{ label: 'Anti Berry', value: '7' },
|
||||
{ label: 'Golden Berry', value: '8' }
|
||||
]}
|
||||
onChange={val => setSelectedBerryOption(Number(val))}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
@@ -273,3 +293,13 @@ export default function BerryDashLeaderboards () {
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default function BerryDashLeaderboards () {
|
||||
return (
|
||||
<Suspense
|
||||
fallback={<p className='px-8 -mt-2 -mb-2 text-center'>Loading...</p>}
|
||||
>
|
||||
<BerryDashLeaderboardsSuspence />
|
||||
</Suspense>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
.leaderboard-entry {
|
||||
@apply rounded-lg text-lg px-1 py-0.5 transition-colors bg-(--col2) hover:bg-(--col3) border border-(--col4) hover:border-(--col5) cursor-pointer;
|
||||
}
|
||||
@@ -48,7 +48,7 @@ export default function BerryDashGameInfo () {
|
||||
>
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/screenshots/berry-dash/home.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash/home.png'}
|
||||
width={960}
|
||||
height={540}
|
||||
alt=''
|
||||
@@ -57,7 +57,7 @@ export default function BerryDashGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash/mode-select.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash/mode-select.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -67,7 +67,7 @@ export default function BerryDashGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash/playing.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash/playing.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -77,7 +77,7 @@ export default function BerryDashGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash/custom.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash/custom.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -86,7 +86,7 @@ export default function BerryDashGameInfo () {
|
||||
</SwiperSlide>
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/screenshots/berry-dash/stats.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash/stats.png'}
|
||||
width={960}
|
||||
height={540}
|
||||
alt=''
|
||||
@@ -95,7 +95,7 @@ export default function BerryDashGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash/leaderboards.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash/leaderboards.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -105,7 +105,7 @@ export default function BerryDashGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/berry-dash/chatroom.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/berry-dash/chatroom.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -115,34 +115,34 @@ export default function BerryDashGameInfo () {
|
||||
</Swiper>
|
||||
<p className='text-2xl mt-4 mb-1'>Stuff you can do in the browser</p>
|
||||
<div className='downloads'>
|
||||
<Link href='/game/berry-dash/icon-marketplace' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash/icon-marketplace'>
|
||||
View the Icon Marketplace! (can upload too)
|
||||
</Link>
|
||||
<Link href='/game/berry-dash/splash' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash/splash'>
|
||||
View the Splash Texts! (can submit too)
|
||||
</Link>
|
||||
<Link href='/game/berry-dash/chatroom' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash/chatroom'>
|
||||
View & interact with the Chatroom!
|
||||
</Link>
|
||||
<Link href='/game/berry-dash/leaderboards' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash/leaderboards'>
|
||||
View the Leaderboards!
|
||||
</Link>
|
||||
</div>
|
||||
<p className='text-2xl my-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash/Berry-Dash-26.1-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash/Berry-Dash-26.1-android.apk'
|
||||
>
|
||||
Android
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/berry-dash/Berry-Dash-26.1-ios.ipa'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/berry-dash/Berry-Dash-26.1-ios.ipa'
|
||||
>
|
||||
iOS
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -113,7 +113,9 @@ export default function BerryDashSubmitSplash () {
|
||||
onChange={e => setText(e.target.value)}
|
||||
required
|
||||
/>
|
||||
<button type='submit'>Submit</button>
|
||||
<button draggable={false} type='submit'>
|
||||
Submit
|
||||
</button>
|
||||
</form>
|
||||
) : (
|
||||
(result == 1 || result == 2) && (
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
'use client'
|
||||
|
||||
import '../../berry-dash/chatroom/styles.css'
|
||||
import { BackButton } from '@/components/BackButton'
|
||||
import { DiscordButton } from '@/components/DiscordButton'
|
||||
import axios from 'axios'
|
||||
import { useSearchParams } from 'next/navigation'
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
|
||||
interface Message {
|
||||
username: string
|
||||
content: string
|
||||
}
|
||||
|
||||
export default function GeometryRaysChatroom () {
|
||||
const [messages, setMessages] = useState<Message[]>([])
|
||||
const backButtonRef = useRef<HTMLAnchorElement>(null)
|
||||
const params = useSearchParams()
|
||||
|
||||
const messagesDiv = useRef<HTMLDivElement>(null)
|
||||
|
||||
const refresh = async () => {
|
||||
const request = await axios.get(
|
||||
'https://georays-proxy.lncvrt.xyz/data/chat.txt'
|
||||
)
|
||||
const response = request.data as string
|
||||
|
||||
setMessages(
|
||||
response
|
||||
.trim()
|
||||
.split('\n')
|
||||
.filter(item => {
|
||||
const [username, content] = item.split(': ')
|
||||
return (
|
||||
username &&
|
||||
content &&
|
||||
username.trim().length != 0 &&
|
||||
content.trim().length != 0
|
||||
)
|
||||
})
|
||||
.map(item => {
|
||||
const [username, content] = item.split(': ')
|
||||
return {
|
||||
username,
|
||||
content
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
document.title = 'Lncvrt Games - Geometry Rays Chatroom'
|
||||
|
||||
setTimeout(async () => await refresh(), 0)
|
||||
|
||||
const interval = setInterval(() => {
|
||||
refresh()
|
||||
}, 3000)
|
||||
|
||||
return () => {
|
||||
clearInterval(interval)
|
||||
}
|
||||
}, [params])
|
||||
|
||||
useEffect(() => {
|
||||
if (!params.get('launcher')) {
|
||||
const handleKeyDown = (e: KeyboardEvent) => {
|
||||
if (e.key === 'Escape') {
|
||||
backButtonRef.current?.click()
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown)
|
||||
return () => window.removeEventListener('keydown', handleKeyDown)
|
||||
}
|
||||
}, [params])
|
||||
|
||||
useEffect(() => {
|
||||
if (messagesDiv.current) {
|
||||
messagesDiv.current.scrollTop = messagesDiv.current.scrollHeight
|
||||
}
|
||||
}, [messages])
|
||||
|
||||
return (
|
||||
<div className='box'>
|
||||
{!params.get('launcher') && (
|
||||
<>
|
||||
<BackButton href='/game/geometry-rays' refLink={backButtonRef} />
|
||||
<DiscordButton />
|
||||
</>
|
||||
)}
|
||||
<p className='px-8 mb-4 -mt-2 text-center text-2xl'>
|
||||
Geometry Rays Chatroom
|
||||
</p>
|
||||
<>
|
||||
<div
|
||||
className='sub-box -m-4 mt-0 flex flex-col gap-2 max-h-[calc(100vh-204px)] overflow-y-auto'
|
||||
ref={messagesDiv}
|
||||
>
|
||||
{messages.map((item, i) => {
|
||||
return (
|
||||
<div key={i} className='message sub-box2'>
|
||||
<div>
|
||||
<p>{item.username}</p>
|
||||
<p className='w-240 max-w-[calc(100vw-136px)] truncate select-text'>
|
||||
{item.content}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
</>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
'use client'
|
||||
|
||||
import Image from 'next/image'
|
||||
import { Swiper, SwiperSlide } from 'swiper/react'
|
||||
import { Navigation, Keyboard } from 'swiper/modules'
|
||||
import 'swiper/css'
|
||||
import 'swiper/css/navigation'
|
||||
import Link from 'next/link'
|
||||
import { useEffect, useRef } from 'react'
|
||||
import { HomeButton } from '@/components/HomeButton'
|
||||
import { DiscordButton } from '@/components/DiscordButton'
|
||||
|
||||
export default function GeometryRaysGameInfo () {
|
||||
const backButtonRef = useRef<HTMLAnchorElement>(null)
|
||||
|
||||
useEffect(() => {
|
||||
document.title = 'Lncvrt Games - Geometry Rays'
|
||||
|
||||
const handleKeyDown = (e: KeyboardEvent) => {
|
||||
if (e.key === 'Escape') {
|
||||
backButtonRef.current?.click()
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown)
|
||||
return () => window.removeEventListener('keydown', handleKeyDown)
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className='box text-center'>
|
||||
<HomeButton refLink={backButtonRef} />
|
||||
<DiscordButton href='https://discord.gg/dpkT256hWm' />
|
||||
<p className='text-4xl'>Geometry Rays</p>
|
||||
<p>
|
||||
Geometry Rays is a small Geometry Dash fan game made by Puppet with a
|
||||
custom editor & online levels
|
||||
</p>
|
||||
<p className='text-2xl mt-4 mb-1'>Screenshots</p>
|
||||
<Swiper
|
||||
modules={[Keyboard, Navigation]}
|
||||
navigation
|
||||
keyboard={{ enabled: true }}
|
||||
className='screenshots-gallery mx-auto max-w-240 w-[calc(100vw-64px)]'
|
||||
>
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/geometry-rays/main-menu.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
alt=''
|
||||
/>
|
||||
</SwiperSlide>
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/geometry-rays/editor.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
alt=''
|
||||
/>
|
||||
</SwiperSlide>
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/geometry-rays/playing.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
alt=''
|
||||
/>
|
||||
</SwiperSlide>
|
||||
</Swiper>
|
||||
<p className='text-2xl mt-4 mb-1'>Stuff you can do in the browser</p>
|
||||
<div className='downloads'>
|
||||
<Link draggable={false} href='/game/geometry-rays/chatroom'>
|
||||
View the Chatroom!
|
||||
</Link>
|
||||
</div>
|
||||
<p className='text-2xl mt-4 mb-1'>Other Links</p>
|
||||
<div className='downloads'>
|
||||
<Link
|
||||
draggable={false}
|
||||
href='https://georays.puppet57.xyz/'
|
||||
target='_blank'
|
||||
>
|
||||
Official website
|
||||
</Link>
|
||||
<Link draggable={false} href='https://github.com/Geometry-Rays'>
|
||||
GitHub
|
||||
</Link>
|
||||
</div>
|
||||
<p className='text-2xl my-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -45,7 +45,7 @@ export default function TrianglesGameInfo () {
|
||||
>
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/screenshots/triangles/home.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/screenshots/triangles/home.png'}
|
||||
width={960}
|
||||
height={540}
|
||||
alt=''
|
||||
@@ -54,7 +54,7 @@ export default function TrianglesGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/triangles/created-levels.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/triangles/created-levels.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -64,7 +64,7 @@ export default function TrianglesGameInfo () {
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/screenshots/triangles/created-level-info.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/screenshots/triangles/created-level-info.png'
|
||||
}
|
||||
width={960}
|
||||
height={540}
|
||||
@@ -73,7 +73,7 @@ export default function TrianglesGameInfo () {
|
||||
</SwiperSlide>
|
||||
<SwiperSlide>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/screenshots/triangles/editor.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/screenshots/triangles/editor.png'}
|
||||
width={960}
|
||||
height={540}
|
||||
alt=''
|
||||
@@ -82,7 +82,7 @@ export default function TrianglesGameInfo () {
|
||||
</Swiper>
|
||||
<p className='text-2xl mt-4 mb-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -28,84 +28,84 @@ export default function XPSGameDownloads () {
|
||||
<p className='px-10 -my-2 mb-4 text-3xl'>Xytriza's GDPS Downloads</p>
|
||||
<div className='downloads lg:max-w-[60vw] md:max-w-[80vw] flex-col'>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-2.2-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-2.2-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 2.2
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-2.1-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-2.1-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 2.1
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-2.0-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-2.0-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 2.0
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.9-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.9-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.9
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.8-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.8-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.8
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.7-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.7-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.7
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.6-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.6-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.6
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.5-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.5-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.5
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.4-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.4-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.4
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.3-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.3-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.3
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.2-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.2-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.2
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.1-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.1-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.1
|
||||
</Link>
|
||||
<Link
|
||||
href='https://games-r2.lncvrt.xyz/xps/XPS-1.0-1.0.0-android.apk'
|
||||
draggable={false}
|
||||
href='https://archive.org/download/lncvrt-games-archive/xps/XPS-1.0-1.0.0-android.apk'
|
||||
>
|
||||
Android: XPS 1.0
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -36,10 +36,10 @@ export default function XPSGame () {
|
||||
</p>
|
||||
<p className='text-2xl my-1'>Downloads</p>
|
||||
<div className='downloads'>
|
||||
<Link href='/game/xps/downloads' draggable={false}>
|
||||
<Link draggable={false} href='/game/xps/downloads'>
|
||||
Android
|
||||
</Link>
|
||||
<Link href='/download' draggable={false}>
|
||||
<Link draggable={false} href='/download'>
|
||||
Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
+56
-14
@@ -2,7 +2,35 @@
|
||||
|
||||
* {
|
||||
@apply outline-0;
|
||||
}
|
||||
|
||||
.dark-theme {
|
||||
--col0: rgb(8, 8, 8);
|
||||
--col1: rgb(16, 16, 16);
|
||||
--col2: rgb(32, 32, 32);
|
||||
--col3: rgb(48, 48, 48);
|
||||
--col4: rgb(64, 64, 64);
|
||||
--col5: rgb(80, 80, 80);
|
||||
--col6: rgb(96, 96, 96);
|
||||
--col7: rgb(112, 112, 112);
|
||||
--col8: rgb(128, 128, 128);
|
||||
--col9: rgb(144, 144, 144);
|
||||
}
|
||||
|
||||
.red-theme {
|
||||
--col0: rgb(32, 8, 8);
|
||||
--col1: rgb(40, 16, 16);
|
||||
--col2: rgb(56, 32, 32);
|
||||
--col3: rgb(72, 48, 48);
|
||||
--col4: rgb(88, 64, 64);
|
||||
--col5: rgb(104, 80, 80);
|
||||
--col6: rgb(120, 96, 96);
|
||||
--col7: rgb(136, 112, 112);
|
||||
--col8: rgb(152, 128, 128);
|
||||
--col9: rgb(168, 144, 144);
|
||||
}
|
||||
|
||||
.blue-theme {
|
||||
--col0: rgb(8, 8, 32);
|
||||
--col1: rgb(16, 16, 40);
|
||||
--col2: rgb(32, 32, 56);
|
||||
@@ -12,22 +40,40 @@
|
||||
--col6: rgb(96, 96, 120);
|
||||
--col7: rgb(112, 112, 136);
|
||||
--col8: rgb(128, 128, 152);
|
||||
--col9: rgb(144, 144, 168);
|
||||
}
|
||||
|
||||
.purple-theme {
|
||||
--col0: rgb(20, 8, 32);
|
||||
--col1: rgb(28, 16, 40);
|
||||
--col2: rgb(44, 32, 56);
|
||||
--col3: rgb(60, 48, 72);
|
||||
--col4: rgb(76, 64, 88);
|
||||
--col5: rgb(92, 80, 104);
|
||||
--col6: rgb(108, 96, 120);
|
||||
--col7: rgb(124, 112, 136);
|
||||
--col8: rgb(140, 128, 152);
|
||||
--col9: rgb(156, 144, 168);
|
||||
}
|
||||
|
||||
body {
|
||||
@apply bg-(--col0) text-[rgb(200,200,250)] select-none flex items-center justify-center min-h-screen;
|
||||
@apply bg-(--col0) select-none flex items-center justify-center min-h-screen;
|
||||
}
|
||||
|
||||
img {
|
||||
@apply pointer-events-none;
|
||||
}
|
||||
|
||||
.box {
|
||||
@apply bg-(--col2) border border-(--col4) rounded-lg w-auto p-6 my-10;
|
||||
@apply bg-(--col1) border border-(--col3) rounded-lg w-auto p-6 my-10;
|
||||
}
|
||||
|
||||
.sub-box {
|
||||
@apply bg-(--col3) border border-(--col5) rounded-lg w-auto p-2;
|
||||
@apply bg-(--col2) border border-(--col4) rounded-lg w-auto p-2;
|
||||
}
|
||||
|
||||
.sub-box2 {
|
||||
@apply bg-(--col4) border border-(--col6) rounded-lg w-auto p-2;
|
||||
@apply bg-(--col3) border border-(--col5) rounded-lg w-auto p-2;
|
||||
}
|
||||
|
||||
.games-grid {
|
||||
@@ -35,8 +81,8 @@ body {
|
||||
}
|
||||
|
||||
.games-grid a {
|
||||
@apply flex flex-col items-center justify-center px-5 py-2.5 m-1 bg-(--col4) border border-(--col6) rounded-lg transition-all duration-200;
|
||||
@apply hover:bg-(--col5) hover:border-(--col7) hover:-translate-y-0.5 min-w-30 w-auto h-32 shadow;
|
||||
@apply flex flex-col items-center justify-center px-5 py-2.5 m-1 bg-(--col2) border border-(--col4) rounded-lg transition-all duration-200;
|
||||
@apply hover:bg-(--col3) hover:border-(--col5) min-w-30 w-auto h-32 shadow;
|
||||
}
|
||||
|
||||
.games-grid a img {
|
||||
@@ -68,25 +114,21 @@ body {
|
||||
button,
|
||||
.button,
|
||||
select {
|
||||
@apply bg-(--col4) hover:bg-(--col5) border border-(--col6) hover:border-(--col8) hover:-translate-y-0.5 rounded-lg px-4 py-2 inline-block transition-all duration-200 cursor-pointer;
|
||||
@apply bg-(--col2) hover:bg-(--col3) border border-(--col4) hover:border-(--col6) rounded-lg px-4 py-2 inline-block transition-all duration-200 cursor-pointer;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
@apply bg-(--col3) hover:bg-(--col4) border border-(--col5) hover:border-(--col7);
|
||||
@apply bg-(--col1) hover:bg-(--col2) border border-(--col3) hover:border-(--col5);
|
||||
}
|
||||
|
||||
.top-button {
|
||||
@apply bg-(--col4) hover:bg-(--col5) border border-(--col6) hover:border-(--col7) hover:-translate-y-px rounded-full transition-all h-10 w-10 flex items-center justify-center;
|
||||
@apply bg-(--col2) hover:bg-(--col3) border border-(--col4) hover:border-(--col5) rounded-full transition-all h-10 w-10 flex items-center justify-center;
|
||||
}
|
||||
|
||||
.top-button svg {
|
||||
@apply h-5 w-5;
|
||||
}
|
||||
|
||||
p a {
|
||||
@apply text-white underline;
|
||||
}
|
||||
|
||||
input {
|
||||
@apply bg-(--col4) focus:bg-(--col5) border border-(--col6) focus:border-(--col7) rounded-lg px-4 py-2 inline-block transition-all duration-200 cursor-pointer focus:cursor-text;
|
||||
@apply bg-(--col2) focus:bg-(--col3) border border-(--col4) focus:border-(--col5) rounded-lg px-4 py-2 inline-block transition-all duration-200 cursor-pointer focus:cursor-text;
|
||||
}
|
||||
+50
-4
@@ -1,17 +1,34 @@
|
||||
import { Lexend } from 'next/font/google'
|
||||
'use client'
|
||||
|
||||
import { Lexend, Roboto } from 'next/font/google'
|
||||
import './globals.css'
|
||||
import { Suspense } from 'react'
|
||||
import { useSearchParams } from 'next/navigation'
|
||||
|
||||
const lexend = Lexend({
|
||||
subsets: ['latin']
|
||||
})
|
||||
|
||||
export default function RootLayout ({
|
||||
const roboto = Roboto({
|
||||
subsets: ['latin']
|
||||
})
|
||||
|
||||
function Layout ({
|
||||
children
|
||||
}: Readonly<{
|
||||
children: React.ReactNode
|
||||
}>) {
|
||||
const params = useSearchParams()
|
||||
|
||||
return (
|
||||
<html lang='en'>
|
||||
<html
|
||||
lang='en'
|
||||
className={
|
||||
params.get('launcher')
|
||||
? roboto.className + ' text-white'
|
||||
: lexend.className + ' text-[rgb(200,200,250)]'
|
||||
}
|
||||
>
|
||||
<head>
|
||||
<link
|
||||
rel='icon'
|
||||
@@ -19,7 +36,36 @@ export default function RootLayout ({
|
||||
href='https://cdn.lncvrt.xyz/pfp-round.png'
|
||||
/>
|
||||
</head>
|
||||
<body className={lexend.className}>{children}</body>
|
||||
<body className={(params.get('theme') ?? 'blue') + '-theme'}>
|
||||
{children}
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
|
||||
export default function RootLayout ({
|
||||
children
|
||||
}: Readonly<{
|
||||
children: React.ReactNode
|
||||
}>) {
|
||||
return (
|
||||
<Suspense
|
||||
fallback={
|
||||
<html lang='en' className={lexend.className}>
|
||||
<head>
|
||||
<link
|
||||
rel='icon'
|
||||
type='image/png'
|
||||
href='https://cdn.lncvrt.xyz/pfp-round.png'
|
||||
/>
|
||||
</head>
|
||||
<body className='blue-theme'>
|
||||
<p className='px-8 -mt-2 -mb-2 text-center'>Loading...</p>
|
||||
</body>
|
||||
</html>
|
||||
}
|
||||
>
|
||||
<Layout>{children}</Layout>
|
||||
</Suspense>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use client'
|
||||
|
||||
import { DiscordButton } from '../components/DiscordButton'
|
||||
import { HomeButton } from '@/components/HomeButton'
|
||||
import Link from 'next/link'
|
||||
import { useEffect } from 'react'
|
||||
|
||||
export default function Home () {
|
||||
useEffect(() => {
|
||||
document.title = 'Lncvrt Games - Not found'
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className='box'>
|
||||
<HomeButton />
|
||||
<DiscordButton />
|
||||
<p className='px-8 -my-2 text-center text-xl'>Lncvrt Games</p>
|
||||
<p className='mt-6'>This page doesn't exist, sorry!</p>
|
||||
<div className='downloads -mb-3'>
|
||||
<button onClick={() => window.history.back()}>Go back</button>
|
||||
<Link href='/'>Go home</Link>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
+24
-34
@@ -1,6 +1,8 @@
|
||||
import Image from 'next/image'
|
||||
import Link from 'next/link'
|
||||
import { Metadata } from 'next'
|
||||
import { DiscordButton } from '../components/DiscordButton'
|
||||
import { AccountButton } from '../components/AccountButton'
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Lncvrt Games - Home',
|
||||
@@ -10,33 +12,28 @@ export const metadata: Metadata = {
|
||||
export default function Home () {
|
||||
return (
|
||||
<div className='box'>
|
||||
<AccountButton />
|
||||
<DiscordButton />
|
||||
<p className='text-center text-4xl'>Lncvrt Games</p>
|
||||
<p className='text-center text-[18px] mb-4'>
|
||||
A collection of games made by Lncvrt and others
|
||||
</p>
|
||||
<div className='flex justify-center'>
|
||||
<Link href='/premium' draggable={false} className='button'>
|
||||
INTRODUCING LNCVRT GAMES PREMIUM!
|
||||
</Link>
|
||||
</div>
|
||||
<p className='text-center text-xl mt-2'>Main Games</p>
|
||||
<div className='games-grid'>
|
||||
<Link href='/game/berry-dash' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash'>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/icons/berry-dash.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/icons/berry-dash.png'}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Berry Dash</span>
|
||||
</Link>
|
||||
<Link href='/game/triangles' draggable={false}>
|
||||
<Link draggable={false} href='/game/triangles'>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/icons/triangles.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/icons/triangles.png'}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Triangles</span>
|
||||
@@ -44,22 +41,20 @@ export default function Home () {
|
||||
</div>
|
||||
<p className='text-center text-xl mt-2'>Spinoffs</p>
|
||||
<div className='games-grid'>
|
||||
<Link href='/game/berry-dash-lite' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash-lite'>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/icons/berry-dash-lite.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/icons/berry-dash-lite.png'}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Berry Dash Lite</span>
|
||||
</Link>
|
||||
<Link href='/game/berry-dash-with-guns' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash-with-guns'>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/icons/berry-dash-with-guns.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/icons/berry-dash-with-guns.png'}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Berry Dash with Guns</span>
|
||||
@@ -67,12 +62,11 @@ export default function Home () {
|
||||
</div>
|
||||
<p className='text-center text-xl mt-2'>GDPS's</p>
|
||||
<div className='games-grid'>
|
||||
<Link href='/game/xps' draggable={false}>
|
||||
<Link draggable={false} href='/game/xps'>
|
||||
<Image
|
||||
src={'https://cdn.lncvrt.xyz/xps/square.png'}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>XPS</span>
|
||||
@@ -82,57 +76,53 @@ export default function Home () {
|
||||
Non-official but Verified games
|
||||
</p>
|
||||
<div className='games-grid'>
|
||||
<Link href='/game/berry-dash-custom' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash-custom'>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/icons/berry-dash-custom.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/icons/berry-dash-custom.png'}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Berry Dash Custom</span>
|
||||
</Link>
|
||||
<Link href='/game/berry-dash-godot-remake' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash-godot-remake'>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/icons/berry-dash-godot-remake.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/icons/berry-dash-godot-remake.png'
|
||||
}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Berry Dash Godot Remake</span>
|
||||
</Link>
|
||||
<Link href='/game/berry-dash-with-guns-custom' draggable={false}>
|
||||
<Link draggable={false} href='/game/berry-dash-with-guns-custom'>
|
||||
<Image
|
||||
src={
|
||||
'https://games-r2.lncvrt.xyz/icons/berry-dash-with-guns-custom.png'
|
||||
'https://archive.org/download/lncvrt-games-archive/icons/berry-dash-with-guns-custom.png'
|
||||
}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Berry Dash with Guns Custom</span>
|
||||
</Link>
|
||||
<Link href='/game/berry-dash-ultimate' draggable={false}>
|
||||
<Link draggable={false} href='/game/geometry-rays'>
|
||||
<Image
|
||||
src={'https://games-r2.lncvrt.xyz/icons/berry-dash-ultimate.png'}
|
||||
src={'https://archive.org/download/lncvrt-games-archive/icons/geometry-rays.png'}
|
||||
width={64}
|
||||
height={64}
|
||||
draggable={false}
|
||||
alt=''
|
||||
/>
|
||||
<span>Berry Dash Ultimate</span>
|
||||
<span>Geometry Rays</span>
|
||||
</Link>
|
||||
</div>
|
||||
<p className='text-2xl mt-4 mb-1 text-center'>
|
||||
Looking for launcher downloads?
|
||||
</p>
|
||||
<div className='downloads'>
|
||||
<Link href='/premium' draggable={false}>
|
||||
You need premium for that, buy here!
|
||||
<Link draggable={false} href='/download'>
|
||||
Download for Windows, macOS, or Linux
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
'use client'
|
||||
|
||||
import './styles.css'
|
||||
import { HomeButton } from '@/components/HomeButton'
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
||||
import {
|
||||
faDownload,
|
||||
faGamepad,
|
||||
faMoneyBill,
|
||||
faPlus
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
import { faUser } from '@fortawesome/free-regular-svg-icons'
|
||||
import { useEffect, useState } from 'react'
|
||||
|
||||
export default function PremiumPageHome () {
|
||||
const [purchased, setPurchased] = useState<boolean>(false)
|
||||
|
||||
useEffect(() => {
|
||||
document.title = 'Lncvrt Games - Premium'
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className='box'>
|
||||
<HomeButton />
|
||||
<p className='text-center text-4xl'>
|
||||
Lncvrt Games <span className='rainbow-text'>PREMIUM</span>
|
||||
</p>
|
||||
{!purchased ? (
|
||||
<>
|
||||
<p className='text-center text-[18px] mb-4'>
|
||||
The premium package for Lncvrt Games, with Lncvrt Games Premium you
|
||||
get access to:
|
||||
</p>
|
||||
<div className='flex flex-row gap-2 justify-center'>
|
||||
<div className='sub-box flex flex-col gap-2 justify-center items-center'>
|
||||
<FontAwesomeIcon
|
||||
icon={faDownload}
|
||||
width={48}
|
||||
height={48}
|
||||
className='bg-(--col4) border border-(--col6) rounded-lg p-2'
|
||||
/>
|
||||
<p className='max-w-80 text-center'>
|
||||
Download manager, AKA Lncvrt Games Launcher
|
||||
</p>
|
||||
</div>
|
||||
<div className='sub-box flex flex-col gap-2 justify-center items-center'>
|
||||
<FontAwesomeIcon
|
||||
icon={faGamepad}
|
||||
width={48}
|
||||
height={48}
|
||||
className='bg-(--col4) border border-(--col6) rounded-lg p-2'
|
||||
/>
|
||||
<p className='max-w-80 text-center'>
|
||||
Additional Games, like Fruit Dashy, Geometry Dash, Team Fortress
|
||||
2 (all aquired by Lncvrt) and more!
|
||||
</p>
|
||||
</div>
|
||||
<div className='sub-box flex flex-col gap-2 justify-center items-center'>
|
||||
<FontAwesomeIcon
|
||||
icon={faUser}
|
||||
width={48}
|
||||
height={48}
|
||||
className='bg-(--col4) border border-(--col6) rounded-lg p-2'
|
||||
/>
|
||||
<p className='max-w-80 text-center'>Accounts & Leaderboards</p>
|
||||
</div>
|
||||
<div className='sub-box flex flex-col gap-2 justify-center items-center'>
|
||||
<FontAwesomeIcon
|
||||
icon={faPlus}
|
||||
width={48}
|
||||
height={48}
|
||||
className='bg-(--col4) border border-(--col6) rounded-lg p-2'
|
||||
/>
|
||||
<p className='max-w-80 text-center'>And much, much more!</p>
|
||||
</div>
|
||||
<div className='sub-box flex flex-col gap-2 justify-center items-center'>
|
||||
<FontAwesomeIcon
|
||||
icon={faMoneyBill}
|
||||
width={48}
|
||||
height={48}
|
||||
className='bg-(--col4) border border-(--col6) rounded-lg p-2'
|
||||
/>
|
||||
<p className='max-w-80 text-center'>
|
||||
Battle pass, there will be 3 teirs: Basic, Pro and Ultimate. You
|
||||
will need Pro for accounts.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<iframe
|
||||
className='mt-2'
|
||||
width='1280'
|
||||
height='720'
|
||||
src='https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1'
|
||||
allow='autoplay'
|
||||
></iframe>
|
||||
)}
|
||||
<div className='flex justify-center mt-2'>
|
||||
<button className='button' onClick={() => setPurchased(!purchased)}>
|
||||
{purchased ? 'Unpurchase' : 'Purchase'}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
@keyframes rainbow-shift {
|
||||
0%,
|
||||
100% {
|
||||
background-position: 0% center;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% center;
|
||||
}
|
||||
}
|
||||
|
||||
@layer utilities {
|
||||
.rainbow-text {
|
||||
@apply text-transparent bg-clip-text;
|
||||
background-image: linear-gradient(
|
||||
90deg,
|
||||
red,
|
||||
orange,
|
||||
yellow,
|
||||
green,
|
||||
blue,
|
||||
indigo,
|
||||
violet
|
||||
);
|
||||
background-size: 300% 100%;
|
||||
animation: rainbow-shift 2s ease-in-out infinite;
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,11 @@ export function AccountButton () {
|
||||
return (
|
||||
<>
|
||||
<div className='relative'>
|
||||
<Link href='/account' className='top-button absolute -top-4 -left-4'>
|
||||
<Link
|
||||
draggable={false}
|
||||
href='/account'
|
||||
className='top-button absolute -top-4 -left-4'
|
||||
>
|
||||
<FontAwesomeIcon icon={faUser} />
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -18,6 +18,7 @@ export function BackButton ({
|
||||
<div className='relative'>
|
||||
{href && (
|
||||
<Link
|
||||
draggable={false}
|
||||
href={href}
|
||||
className='top-button absolute -top-4 -left-4'
|
||||
ref={refLink}
|
||||
@@ -27,6 +28,7 @@ export function BackButton ({
|
||||
)}
|
||||
{onClick && (
|
||||
<button
|
||||
draggable={false}
|
||||
onClick={onClick}
|
||||
className='top-button absolute -top-4 -left-4'
|
||||
ref={refButton}
|
||||
|
||||
@@ -7,6 +7,7 @@ export function DiscordButton ({ href }: { href?: string }) {
|
||||
<>
|
||||
<div className='relative'>
|
||||
<Link
|
||||
draggable={false}
|
||||
href={href ?? '/discord'}
|
||||
className='top-button absolute -top-4 -right-4'
|
||||
>
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
import { useState, useRef, useEffect } from 'react'
|
||||
import '@/styles/dropdown.css'
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
||||
import { faChevronDown } from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
type Option = {
|
||||
label: string
|
||||
value: string | number
|
||||
}
|
||||
|
||||
type Props = {
|
||||
value: string | number
|
||||
options: Option[]
|
||||
onChange: (value: string | number) => void | Promise<void>
|
||||
width?: number
|
||||
}
|
||||
|
||||
export default function Dropdown ({ value, options, onChange, width }: Props) {
|
||||
const [open, setOpen] = useState(false)
|
||||
const ref = useRef<HTMLDivElement>(null)
|
||||
|
||||
const selected = options.find(o => o.value === value)
|
||||
|
||||
useEffect(() => {
|
||||
const handleClick = (e: MouseEvent) => {
|
||||
if (!ref.current?.contains(e.target as Node)) {
|
||||
setOpen(false)
|
||||
}
|
||||
}
|
||||
window.addEventListener('mousedown', handleClick)
|
||||
return () => window.removeEventListener('mousedown', handleClick)
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div ref={ref} className='dropdown' style={{ width: width ?? 160 }}>
|
||||
<button className='dropdown-btn' onClick={() => setOpen(o => !o)}>
|
||||
<span>{selected?.label ?? 'Select...'}</span>
|
||||
<FontAwesomeIcon
|
||||
icon={faChevronDown}
|
||||
className={`dropdown-arrow ${open ? 'open' : ''}`}
|
||||
/>
|
||||
</button>
|
||||
<div className={`dropdown-menu ${open ? 'open' : ''}`}>
|
||||
{options.map((option, i) => (
|
||||
<div
|
||||
key={option.value}
|
||||
className={`dropdown-item ${
|
||||
option.value === value ? 'active' : ''
|
||||
}`}
|
||||
style={{ ['--i']: i } as React.CSSProperties}
|
||||
onClick={async () => {
|
||||
await onChange(option.value)
|
||||
setOpen(false)
|
||||
}}
|
||||
>
|
||||
{option.label}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -12,6 +12,7 @@ export function HomeButton ({
|
||||
<>
|
||||
<div className='relative'>
|
||||
<Link
|
||||
draggable={false}
|
||||
href='/'
|
||||
className='top-button absolute -top-4 -left-4'
|
||||
ref={refLink}
|
||||
|
||||
@@ -6,6 +6,7 @@ export function ReloadButton ({ action }: { action: () => void }) {
|
||||
<>
|
||||
<div className='relative'>
|
||||
<button
|
||||
draggable={false}
|
||||
className='top-button absolute -top-4 -right-4'
|
||||
onClick={action}
|
||||
>
|
||||
|
||||
@@ -6,7 +6,11 @@ export function UploadButton ({ href }: { href: string }) {
|
||||
return (
|
||||
<>
|
||||
<div className='relative'>
|
||||
<Link href={href} className='top-button absolute -top-4 right-8'>
|
||||
<Link
|
||||
draggable={false}
|
||||
href={href}
|
||||
className='top-button absolute -top-4 right-8'
|
||||
>
|
||||
<FontAwesomeIcon icon={faUpload} />
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
.dropdown {
|
||||
@apply relative;
|
||||
}
|
||||
|
||||
.dropdown-btn {
|
||||
@apply w-full flex items-center justify-between px-2 py-1 rounded-md cursor-pointer
|
||||
bg-(--col2) hover:bg-(--col3)
|
||||
border border-(--col4) hover:border-(--col5);
|
||||
}
|
||||
|
||||
.dropdown-arrow {
|
||||
@apply w-3 h-3 transition-transform stroke-current stroke-2 fill-none;
|
||||
}
|
||||
|
||||
.dropdown-arrow.open {
|
||||
@apply rotate-180;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
@apply absolute z-50 mt-1 w-full rounded-md shadow-2xl overflow-hidden
|
||||
bg-(--col2) border border-(--col4)
|
||||
origin-top
|
||||
opacity-0 scale-95 -translate-y-1 pointer-events-none
|
||||
transition-[opacity,transform] duration-150 ease-out;
|
||||
}
|
||||
|
||||
.dropdown-menu.open {
|
||||
@apply opacity-100 scale-100 translate-y-0 pointer-events-auto;
|
||||
}
|
||||
|
||||
.dropdown-item {
|
||||
@apply px-2 py-1 cursor-pointer transition-colors border-b border-(--col4) last:border-b-0;
|
||||
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
|
||||
.dropdown-item:hover,
|
||||
.dropdown-item.active {
|
||||
@apply bg-(--col3);
|
||||
}
|
||||
|
||||
.dropdown-menu.open .dropdown-item {
|
||||
animation: dropIn 220ms ease-out forwards;
|
||||
animation-delay: calc(var(--i) * 40ms);
|
||||
}
|
||||
|
||||
@keyframes dropIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
declare module 'swiper/css'
|
||||
declare module 'swiper/css/navigation'
|
||||
Reference in new issue
Block a user