From cf4e26f4c9a037786c081cbde803cb06c14858f7 Mon Sep 17 00:00:00 2001 From: MeowcaTheoRange Date: Sat, 11 Nov 2023 10:42:59 -0600 Subject: [PATCH] unwieldy pull request --- package-lock.json | 1074 ++++++++++++++++- package.json | 9 +- public/88x31/disqordia-approved-border.png | Bin 0 -> 8481 bytes public/88x31/dotart.png | Bin 0 -> 3610 bytes public/88x31/firefox4.gif | Bin 0 -> 2143 bytes public/88x31/ipg.png | Bin 0 -> 1885 bytes public/88x31/ivorybutton.gif | Bin 0 -> 1856 bytes public/88x31/kaboom3.gif | Bin 0 -> 5262 bytes public/88x31/kkdiagt.png | Bin 0 -> 491 bytes public/88x31/pjfrix2023.png | Bin 0 -> 5212 bytes public/88x31/spacy_webbutton.png | Bin 0 -> 588 bytes public/88x31/sun_88x31_dual_border.png | Bin 0 -> 2031 bytes public/88x31/tla.png | Bin 0 -> 1034 bytes public/favicon.ico | Bin 0 -> 7680 bytes public/fonts/Renogare/Renogare.otf | Bin 0 -> 58508 bytes public/fonts/Renogare/Renogare.woff | Bin 0 -> 25180 bytes public/fonts/Renogare/Renogare.woff2 | Bin 0 -> 18204 bytes public/next.svg | 1 - public/vercel.svg | 1 - src/app/api/status/index.tsx | 0 src/app/favicon.ico | Bin 25931 -> 0 bytes src/app/globals.css | 107 -- src/app/layout.tsx | 28 +- src/app/page.module.css | 229 ---- src/app/page.tsx | 855 +++++++++++-- .../ColourChip/ColourChip.module.css | 9 + src/components/ColourChip/ColourChip.tsx | 28 + src/components/Eighty/Eighty.module.css | 11 + src/components/Eighty/Eighty.tsx | 22 + src/components/Floaty/Floaty.module.css | 55 + src/components/Floaty/Floaty.tsx | 27 + src/components/Nav/Nav.module.css | 0 src/components/Nav/Nav.tsx | 22 + src/components/Page/Page.module.css | 59 + src/components/Page/Page.tsx | 57 + .../ProjectList/ProjectList.module.css | 113 ++ src/components/ProjectList/ProjectList.tsx | 71 ++ .../ScrollBackInd/ScrollBackInd.module.css | 65 + .../ScrollBackInd/ScrollBackInd.tsx | 36 + src/components/Sides/Sides.module.css | 27 + src/components/Sides/Sides.tsx | 16 + src/components/SpeedDial/SpeedDial.module.css | 18 + src/components/SpeedDial/SpeedDial.tsx | 34 + src/components/Time/Time.module.css | 2 + src/components/Time/Time.tsx | 11 + src/components/net/LastFM/LastFM.module.css | 55 + src/components/net/LastFM/LastFM.tsx | 38 + src/styles/globals.css | 178 +++ src/utility/color.ts | 94 ++ src/utility/fonts.ts | 19 + 50 files changed, 2919 insertions(+), 452 deletions(-) create mode 100644 public/88x31/disqordia-approved-border.png create mode 100644 public/88x31/dotart.png create mode 100644 public/88x31/firefox4.gif create mode 100644 public/88x31/ipg.png create mode 100644 public/88x31/ivorybutton.gif create mode 100644 public/88x31/kaboom3.gif create mode 100644 public/88x31/kkdiagt.png create mode 100644 public/88x31/pjfrix2023.png create mode 100644 public/88x31/spacy_webbutton.png create mode 100644 public/88x31/sun_88x31_dual_border.png create mode 100644 public/88x31/tla.png create mode 100644 public/favicon.ico create mode 100644 public/fonts/Renogare/Renogare.otf create mode 100644 public/fonts/Renogare/Renogare.woff create mode 100644 public/fonts/Renogare/Renogare.woff2 delete mode 100644 public/next.svg delete mode 100644 public/vercel.svg create mode 100644 src/app/api/status/index.tsx delete mode 100644 src/app/favicon.ico delete mode 100644 src/app/globals.css delete mode 100644 src/app/page.module.css create mode 100644 src/components/ColourChip/ColourChip.module.css create mode 100644 src/components/ColourChip/ColourChip.tsx create mode 100644 src/components/Eighty/Eighty.module.css create mode 100644 src/components/Eighty/Eighty.tsx create mode 100644 src/components/Floaty/Floaty.module.css create mode 100644 src/components/Floaty/Floaty.tsx create mode 100644 src/components/Nav/Nav.module.css create mode 100644 src/components/Nav/Nav.tsx create mode 100644 src/components/Page/Page.module.css create mode 100644 src/components/Page/Page.tsx create mode 100644 src/components/ProjectList/ProjectList.module.css create mode 100644 src/components/ProjectList/ProjectList.tsx create mode 100644 src/components/ScrollBackInd/ScrollBackInd.module.css create mode 100644 src/components/ScrollBackInd/ScrollBackInd.tsx create mode 100644 src/components/Sides/Sides.module.css create mode 100644 src/components/Sides/Sides.tsx create mode 100644 src/components/SpeedDial/SpeedDial.module.css create mode 100644 src/components/SpeedDial/SpeedDial.tsx create mode 100644 src/components/Time/Time.module.css create mode 100644 src/components/Time/Time.tsx create mode 100644 src/components/net/LastFM/LastFM.module.css create mode 100644 src/components/net/LastFM/LastFM.tsx create mode 100644 src/styles/globals.css create mode 100644 src/utility/color.ts create mode 100644 src/utility/fonts.ts diff --git a/package-lock.json b/package-lock.json index 24f5d83..2160d69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,10 @@ "dependencies": { "next": "13.5.4", "react": "^18", - "react-dom": "^18" + "react-dom": "^18", + "react-markdown": "^9.0.0", + "rehype-raw": "^7.0.0", + "remark-breaks": "^4.0.0" }, "devDependencies": { "@types/node": "^20", @@ -329,12 +332,41 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/debug": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.10.tgz", + "integrity": "sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.2.tgz", + "integrity": "sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/mdast": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.2.tgz", + "integrity": "sha512-tYR83EignvhYO9iU3kDg8V28M0jqyh9zzp5GV+EO+AYnyUl3P5ltkTeJuTiFZQFz670FSb3EwT/6LQdX+UdKfw==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "0.7.33", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.33.tgz", + "integrity": "sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==" + }, "node_modules/@types/node": { "version": "20.8.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.5.tgz", @@ -347,14 +379,12 @@ "node_modules/@types/prop-types": { "version": "15.7.8", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz", - "integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==", - "dev": true + "integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" }, "node_modules/@types/react": { "version": "18.2.28", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.28.tgz", "integrity": "sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==", - "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -373,8 +403,12 @@ "node_modules/@types/scheduler": { "version": "0.16.4", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", - "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==", - "dev": true + "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" + }, + "node_modules/@types/unist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.1.tgz", + "integrity": "sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==" }, "node_modules/@typescript-eslint/parser": { "version": "6.7.5", @@ -478,6 +512,11 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, "node_modules/acorn": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", @@ -729,6 +768,15 @@ "dequal": "^2.0.3" } }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -825,6 +873,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -848,6 +905,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -871,8 +937,7 @@ "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -884,7 +949,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -897,6 +961,18 @@ } } }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -938,11 +1014,22 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -986,6 +1073,17 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/es-abstract": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", @@ -1531,6 +1629,11 @@ "node": ">=0.10.0" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1928,6 +2031,145 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", + "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^8.0.0", + "property-information": "^6.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.1.tgz", + "integrity": "sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.2.0.tgz", + "integrity": "sha512-wSlp23N45CMjDg/BPW8zvhEi3R+8eRE1qFbjEyAUzMCzu2l1Wzwakq+Tlia9nkCtEl5mDxa7nKHsvYJ6Gfn21A==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", + "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-url-attributes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", + "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -1978,6 +2220,11 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", @@ -2190,6 +2437,17 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -2474,6 +2732,99 @@ "node": ">=10" } }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-newline-to-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-newline-to-break/-/mdast-util-newline-to-break-2.0.0.tgz", + "integrity": "sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-find-and-replace": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", + "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -2483,6 +2834,427 @@ "node": ">= 8" } }, + "node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", + "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.0.tgz", + "integrity": "sha512-pIgcsGxpHEtTG/rPJRz/HOLSqp5VTuIIjXlPI+6JSDlK2oljApusG6KzpS8AF0ENUMCHlC/IBb5B9xdFiVlm5Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", + "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -2520,8 +3292,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { "version": "3.3.6", @@ -2777,6 +3548,17 @@ "node": ">=6" } }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -2883,6 +3665,15 @@ "react-is": "^16.13.1" } }, + "node_modules/property-information": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.3.0.tgz", + "integrity": "sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -2941,6 +3732,32 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, + "node_modules/react-markdown": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.0.tgz", + "integrity": "sha512-v6yNf3AB8GfJ8lCpUvzxAXKxgsHpdmWPlcVRQ6Nocsezp255E/IDrF31kLQsPJeB/cKto/geUwjU36wH784FCA==", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", @@ -2984,6 +3801,65 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-breaks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-breaks/-/remark-breaks-4.0.0.tgz", + "integrity": "sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-newline-to-break": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.0.0.tgz", + "integrity": "sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -3188,6 +4064,15 @@ "node": ">=0.10.0" } }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -3294,6 +4179,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -3367,6 +4260,24 @@ "node": ">=8.0" } }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ts-api-utils": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", @@ -3519,6 +4430,87 @@ "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", "dev": true }, + "node_modules/unified": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz", + "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3528,6 +4520,46 @@ "punycode": "^2.1.0" } }, + "node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", + "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -3540,6 +4572,15 @@ "node": ">=10.13.0" } }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3654,6 +4695,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/package.json b/package.json index f5e07d4..3f36a18 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,19 @@ "lint": "next lint" }, "dependencies": { + "next": "13.5.4", "react": "^18", "react-dom": "^18", - "next": "13.5.4" + "react-markdown": "^9.0.0", + "rehype-raw": "^7.0.0", + "remark-breaks": "^4.0.0" }, "devDependencies": { - "typescript": "^5", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "13.5.4" + "eslint-config-next": "13.5.4", + "typescript": "^5" } } diff --git a/public/88x31/disqordia-approved-border.png b/public/88x31/disqordia-approved-border.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7dc7fab2e93e3c63973940eda1ded4d1a1f360 GIT binary patch literal 8481 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 literal 0 HcmV?d00001 diff --git a/public/88x31/firefox4.gif b/public/88x31/firefox4.gif new file mode 100644 index 0000000000000000000000000000000000000000..94621d554d4b2598edfe6f9f6b79ae78cb8060b6 GIT binary patch literal 2143 zcmV-l2%z^zNk%w1VORhk0QdX=0000004)XrH5Lmu9S}Jn5;;5`Iy)&j1qVh86+;#d zK^qoD3M5w>C0ZvQMJgdlAR<#ZDM~yoP(3$XFEe0CEImdwJ6Ae6XEr);AwP6CK1m*8 zK`&57HAX`;R9GrOS2{~xJy2ykQgSRoS42HuP(ENyKWA1waalfiW<6C(XkS%nWkXka zMN4!|RC!cOcvM$tT5o%2Pk3c#Svjs*JhN~siE=%iZ9Jf5G`4mvzHd3hem2clM!Rl7 zqFPGATT{zrM8$7S*JM@IbVbx_UE*|C<#}H4g(E$QJw1dvM}R$1zZ_koJ5GmHJ)BuO zh+sXDcs{RNG>uF~fk#-2Qc#syNR&`rh+tBNbW@yZPnKm?foN)qcw&}qZmCRGrdwLF zKuEVzTDe4Su~KZKYgo5xSG{vuu4QPhc51e1V9pI^-VbBNGFasqT;~W=zFvWx{K5 z*?xZHSy28*L-b2q|5!x$QdRF~K;VBs<8xd7XGQsCRsVBE|8h_Ndqw|yOZ#+FgFTa) zJD7(wp@S>Ni#XPrGs2rS*0DF=sXgSkJLZ-`gM~}2u|>PSX@RkLm5g25ibv*$SoWAg z=9^9Pm{a$&LeQo{>7_{VvP9{*WXi%@vB`It)_IP@VyMr3p}3bhk%3jChd`u-Sfi3d ztBYc_jAyu+Y5tBD{+ANwgFpUZMHUx=QJ=TK}d-{H06(t49B%Q1iM;{;@{?vq=BDMgO}< z_P0~|p=SQ5asR?B{>M1});jCYLFCm+{>MlE!c+d&NB`bf{^m#j;8XwmNYtT+00000 z0000000000A^!_bMO0HmK~P09E-(WD0000X`2+><0Q>+f00000SO6aY00{m7@d+GA z(4N7A2o2I($gttMhY%m8n>Z02x^fuHjoZkvo5zpcwuv0M4Vy`m*HWsC#FFJ2f-n=x zY)ErqM2HkAUd*VG<2aBXNsc^uQsv5)ksiIo2cW6br%=*}X8 zfWB#_%?c>9&Ry`ptGPZQ_ElIs*#x1PFmZN33VqnI;}dYtmVf~S!v1$9K)UMy2H_84gEzZ+jg()&x^A!m%Ne`p(AiT9G!~dO01EnaaexIDL@>Yt3Jf5@0t-Yy zfB*`p5W#l~z%ULA3xMW;3J(ZC00#~dpnwDtyf;>TyaY2$3z>9cV<(%$LeFytJ@br# z2(A#okO3H=k2DD6BMv?IAb>?Z^r-U<0$Y@W4KT);vCS{o03tvjk+2XzAB~8>9$AP$ zX3rYC#5jyAtlZd1DxjRhqdoN4Qy^If;uDQ7x=4e|0QTg9Kt1(v@j?gmXdyrZ<0!L0 z8QXX`4m|MWX;2hp^@-3q z0u*}aGD9L$&K6~CLCrV_V9*T+0c0b|cLFd1Ndg5lg2*1Fn!3h9b`<07s=*l3$||aG z^2&3yE@aP-e4>C)3<4m4fN8$gvrK5pjMIxX*3eN+0~l-*0s`4EVqyS-Op-tXjvx|7 zwql)1j~&5y`wp%9pmGYinuHS%JnF2IXE?dKJA;YjIY5u0^&}Hol^%q4Mu`|;6G8xg zJfZ{xDm3DU0EHkTMjawR43@-e_)-ipqKs0?(;Azi2{RX$lTM!Jl&lXIXAK(&;LWB`U9C1V`q>zG1 zDDN244LP-DO%?$MK*2%R1vmkM0xw{|-i0otVFd*y8jyqm)N?eDhwBH`;jf$@g7&@j+h}(stzG zLk&Lw@w*U2@Nfw=zyPz2F~*Q{%w_P0WyrSctYL>8fY4Aw4?p}6#11;BgfD*a3t|}1 z8&-&)0=qK5hpeFvb+7{&XrR9uV9oae#vom&imD8e$G}Xag0iIFU85!3|m5;uhiHhBq)_jAYaaPkPc3poByy zB_RqnjFJ+hB;^r+4CEskLC8WD5)p_@q#_Z?#6~)@k!y&gBqvG9N?P)gn9QUmH>t^h z001HR1O+?*`~WN<00{ss01N;C2$lf(@hd>Eph1BM6DmBYuwg=j5DPk7$Z%rAaS<~X z7$;ETK!Y4T66`oqAV!T4Pomto^5D3a1YfF@xe;c~nHW{Zv?-G#zmqdr#uOS9sLrAz zIU1!|v*6N@L7gULY4Yb#iBgHC%zBk2#;QQ2A{FX&CrGhLe=c>(bFEpOH@k*pSm5Kq VmU!(V^hmNI#J+w1>g5*@06WY~vmO8d literal 0 HcmV?d00001 diff --git a/public/88x31/ipg.png b/public/88x31/ipg.png new file mode 100644 index 0000000000000000000000000000000000000000..e64f0ab66313360eedd2ef39832239bf8622509e GIT binary patch literal 1885 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 AZU6uP literal 0 HcmV?d00001 diff --git a/public/88x31/kaboom3.gif b/public/88x31/kaboom3.gif new file mode 100644 index 0000000000000000000000000000000000000000..47aaf6fb493e42610a6afdbfda543d9799ea20ac GIT binary patch literal 5262 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 Pzv0dQ0Bf(qknVp0C`(3c literal 0 HcmV?d00001 diff --git a/public/88x31/kkdiagt.png b/public/88x31/kkdiagt.png new file mode 100644 index 0000000000000000000000000000000000000000..225749e08d70840ac70a9f313aa1d731bfd152d4 GIT binary patch literal 491 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 aW%&m%ZO7yiqyG5-0000y#JSspuB=`eJ zs;W|3kO)$xDyWs(rf;OurV?=~M0w-^5~N6w6dWgx<2dFV+xVUM{Py{AcRT%K=5pip zo$tWJKy=vZw)|jBVD!R1Q6l|##bX5h9Ln4FzUc%LRlWP`fMd< zp>HP?9|F>0&sSmJ#>nFbPr`u?z|`i0p}hzYCV28-(6=X|_SFIT~RD*@MB zu-pQ~gK+;U=r^Ek5?aUQHx3R1ECHT$dG?J%^=9~_0;Qg0izE< zmIG=(Q;as39)ss~*>J(VhvDN1dH>R9I~(ol6iwEX~1R)e=0vRshq zfXe}>Z(Ew+UU3m~sI7AUegW?4g@Gyf-*)&~K3ue*5LmlFgX{7^JOKah2J;_q`iIay z0yt76Xol@$uXEX%r@;uRxdzvQtp zSnY;wM?m}t_B2NO65DWZh@;mb+x#oEJ@;sBI)F18$i}r~@N3|9Lf>8B2!Q)PFnlL; zO@q^fwb_gNzF-ilk3q2;j&uP9+QW39$kzFgVs5H5I}EM`bgFiT)%(mZlfmUM36y*Y zSwrwh2`o>89UsAezx@S7-U(T^z>x`H9gv|$H2}R8FdBkm0eGfec6iw={IU{uH^a0u z1wGXnU!t+x0i083$Ctt2Qz|D@=033uep?J_DR{}}K*?FykOjUem^5K{ot()AFc5&6 z4r%Q^Sq-b3;Ld#b*Dzd~S)k#J7*dlAyG@{34MZq)GBS_BD+i#<2c@O(jXWuBGo%LK zRY0~A&fEf*$H0}Y)~H!%cEJ`GG?dG{XD>o~H~gjt7>lyd=_yZh5(R)e3TxxBI|SSc z_@y1CUF~91ZPPyA9?5*D1=>0wr#OY0q<|{OjpXe)3Hy7XFb8_>fb9+NUW?5nvaOugmCY6~71E}np=ptbV&h7*>2Ie;8!#QiIiSErIfo)3KLKW1>f1c(z23zy zgjeAE`a#&e2HFgGqg}qFH3VCd1bAQy{F!o)!fEe>Y|mxFupNvX+s7{lmPP4sEKtgA z%p3(ql%D!EW?MiH(5)Dh9bV$&bSO*7hF2|0fyKIrGiq9?k9~Fv?7sjrJCg9cKz#tV zYKw$-7Ruj-?i$#A3Jzx4Dy7+kDizXXDESB|P&#bVBa{bs11l4hf$$)mOH9|pE+PW3 z@`RZJZqIYy&Zd1HdHJnQIBmkyrBL4qFPY#rrQNa&2w7^~FyUbj{P`w0ln#&dz&;;5 zUkd*$gbyymWrr4MX;ffZiw`X(`$t@7tUee?0oNp;(ug`p32ih0o+*U>pk(cb;}A07 z_igabdiZf3_$|0C7v9W+(FzDwfIk37dZB3?9BSx-0-nDJ8LjYCiP~|UR)-O1E1V!> zlPzy&ZPKaIh&f{tW^l_0+~%7bj3{zJg%_HqB{-+YpmI$l2L6k3*z1LDU67lm1yi~} z_~CaQz<6r+`tcYYOEMB=uf4qm>xAadLUYanqWzLN8YN&dU_kRsq|A^7uWB2IpQ#{@ ze-`@vYER#w{yNNnZz8op?{Fvev(C^&o?ii~Za#3a%ExM-jr02#@xe#6mAov$9$LT@ zh$?wIZNd5z;O$l};ClbjDb!{oL-l1OM!D6t(C9*G5V#c02ajom8WU@4*H@tKo00pG zS@5PxRU!RA_thc3&z~S5;L**6vU3RQTM+7-yTS6v=pA z6TIok-c1fPNR{ktaS{rH%^IlFLm{esVj>h4}0wCm6q#WwKj zj3F;7WTETAkFOust%4KV^us23k)&#^L6YOeg{$kASoMPRi9sVw(}rF#zL@ukRanB_ z&JBS5Aeq=b#fD}L+uj}?1?cx82@A#kei*r32wex~0RXD1s_SYCro%(%;ISKB*O(kJ zWA@b}M83hU%bQ=WsZztvK365TsXx{|<$AbBiU`hnRKnercKl z0JfxL&#H3_Zyi-tVK^Mt_jl7HJl>yUcDdWOV96KvaUY9>y?IEWWRRxa7}FY$?(KS4 zAD0Z*L9}23CwtXdHEtP%q9~er3YjcPzN#vuX^N-kQ|#^Bh|z~lpzTXFSvTHqcDdUo zc+*mpE)dBsa$O+8qz7mBksb_yPLlaU5DAvxBfD>6BvhVnDB1*-Mvl)d#kMX;1lK;8 zTPEFeGJWKBK{|$qCRVg__~Pl9&@u+jI9Re+yM7(e9AEp4OJnntW|n1`OeURUaO))( zBSsN)jrGAk0(=RjWgffx#LhmFCA0{(EtRg4CEMtmfeVr6RxBOWV@P!6yj`JRnx>87 z+Wed+xh_k#7t;rQatsn7yl}*v(DFP-S(fz&)yZU1M-&83t{s7hUzGtkeXryu)r*7-?l_pPE|Mj=RX|G0 zNZ+aW@d?sih{sxF>Nu@OtWy; z+|krj1jKT;f^y9TDN#{S5D^gpd1=mh=bU@by`J;_|Na5zIdIPJ`99Bg`7FQtZY~bW zTQ#>TC@3hOJA3+qg2JZA@1HF{$$v>qdS0ZUpw)Hmw2f!n=mO3EMgS8(!AqK2JbwAY z-l!W{wFh}uvX8={XG_u`-kJ;SOlra5Kfn=? zJm&|>ruWBFeh842+GjxA{3_$xZ;G`=%9T3$f|GEsH`n~5i{3{FY zH!7}2pw^nASxr!)JA8`WtOxj_NUfGe?(SX*`zk^SdCT3m(tZ@QmaJG+m1#>(GJ(2B zPNLeNi7B6TnUP!n)1H4t!EXLj!#n&f*v7K~tf*v%C4WH7%==?91jvzFAnv|E*RbAx zMeuyDV~k1@rW$u&tb2Id-6n_dOA8n$Hw^GBUie|85n#v`*WTgMjY^ep%}PaANQj($ z?FTnH?vS`$QFu!!Cy!1rN(lAx3yRTR?Wh$vwFq3`%Ehzm4pNx11&wb1O5Syu?pyxCyZTD^pk5cY}hHgM-_5>GAG_w z(eQIpTr8Rl4JSDOVsm4C69W+v(84}7VH0E5fUe3f<0p+U0CS9o!hh@MhtavKwB^>e zdGU54O6uqQskp(moF_TeK-4!(T#fGBk5m0g@QFLa=Xw2nNB@aC*8@Xv0Km25x{;$j z{g)lHd+``-OU!>3YL+S^uI6@^HpEv#EgWo7B_B*{sfEG5zY zfaIiwG6#|?hy#fKg8X_3@gY_TZ!}Vx|+nY(N_1EEL{r!rVc(Bl3y{TGawVa+L3S9$rKDoG2;!u$t0mS zzWh%+{Bn0ZcC*4gwMm6PG<3HA+rqb~;+k4j4QP4VE7ZL9=F$bumm1i!8{?qGn%nTH zp3_g!+U5}|s+0E;7xJl2el1!w>Gb1gFcn~BDgCgfDa;uC0&W$eJ1t`V%~ z^e9-T67jpo8;)1q!Iyt`8QgIMi&H)?{1 zMOAd*sCh2lqO7Oq91}>;t6+j9`B1CqxKGi^CFT9S2gb7bWuw)`(_`vEFVk3n2&$g- zMKNQExFvE?p5~+f1!5o_#|dQch*Sw^G&}4z0SfYa76ktUjU#z-=Z*|}uR^R?0O6P0 z>Hf(aiA}BG0t`9V@Zs2_GxEb6b250(BavB}N7RCQO#B`q2*ujccIoZ$niKd- zLY~38R~LBO7M`M}nb|B>WqMkfmkCG@f_HaC4tSM*`X>OUvN&3!+t34wf0Ow8!RK+cDGSS(;mc7&l5_zf09ARU`A zFoX4{n*u~Fi=}L6h}DyD!;FMDZiAm7yeee{0J7JQ4LeOJB>X-ATF%Qs@+P7e8Ol7% zzNq9J*Z_zl-(s)=O8#pbE8lKbTW?Mp#uajt&ryU_Y}+155BL~LbHr02NP66q_+4S_ zjAH2gwVos)D&%1hO>*`|qwHQ$s^wS#>1?_VV4#ld04|!`U=mI|xWxJ5uB-)!Chr@o zzIB5PCD!YcL}#K+Wj(x0bE^^2+7!;g!G+$_!k;$R<35}-C_Jc*hOT6U!)HV@^#j;g zilV{2J%I%l6M(qLj>>&6I<=Es){1@(K)>X&tGrm#z7bvv~w{1hH>9G$5^{ zE8XH5l>Bu$(s}10ETiLD7NObY_hc0WqFGU?_!d)~&Ce$;S5S4ukA^lU%)aS%$&C{c z98qk9TFWN#0v~*x-`A0bk^SM_Y{nHeJRT*2xOo84z0A@KRyl)!ioEC-h0ZF0`4mF_|9w}3LymY+aoS4KYR7-CQ?)x){U@l~TG(;=kz+iogT=vxQR zlo6m-Cw{9=Jtri`Jvlmb*lXGIJl9}b}Nc3R-wdmVGXl`S7B5^3e9?; zyM-J}QK@&lbCV;^ZC=H_Iy9loSBoQA$GXebA%$$b3DLKh2^eEx8`&p8zL7L@l`&lh zB7979nbpsc!*D!0A@V##a_F5=Ke5tHXJVMf0a^90KRTgBHDlg++E*i%eIBqB@8Ocw z7d!E6O%X$x35;QH3eFf8PjbCffLk_#I@srHtyVLq%Ri4nomXScGjBn-qXjH=L^gkv z8eY0`5|(%l6I@KGl$Yyb*7^e19?K^oOe@&Dj|b_pD*Wz`0olD3UUoJ77SO#UWL&)2IzN!CJNI0CN zS`8H*-BD%_p`LQTIH9vXfHQ=@>W~KCcfPE9UGineB>lZ3Rn~3}kYLb-ZL&EbMO5KM z%eRvZjX#3sOpMwmXTFx_assfLZw)T?jxLE zws&*D_cne0ce(xRB2`XUgek)%r;dNceF`?EIz@5$wAmIC;f$=a-;PcoEW`5;+^o*= z3KL+V>lgEFbHOp%+zLHg7W>8paL7|A>dyo}z0MLRYc!0&(i{iPMsXv%3}Y&6ce^?V zY&-cv|ASeV@H#l|NwOXA8huqqSuzi{WD17q&v0W4`SuHCf&R;@hhWK6AKDNxJTqZ^ zh-D7qx9((0Xw^kf57^|o#s~RcebiibGzBeMiJMimuA$TJQ0g;V*a+RT$IfMqY-J{t zABTch5|zGfFp+q;0_9M8wo_j@V!gfIcsk3761Q>#r+EKGIxFoIB|hYgd(T!_Vgw?k z`oNybV)LqunR@8@NQt>J$$SdSe5^%+Fx6R6H#PxhhLeS&ze9OW8y@` zGf87CPaiNF>ys&Jk=E=AId)E+#@D-AoEwjl327I#$+A~=2{(^OgN56|9X(7LE$>$k zTu*Z}X(FHRE87{v>NPcEnD+N!y{V5)#1aKpOin=!B<1Ft^Z6f!G1 zE%R-Gv+sZ36L@K@c56R}F4J45<_aEn9r;fj<1f_7!fE(54%D8hi>gi=RD9N#f}wR$ z(Hsyu5})^uh}gLxcwpEZ^!dV)6zn$=EwieOnQdRKN6D|dr%M=K;lcGry8_)AoCp1N zLE2k*8ipX^87CD8k38GilSTyx1PxS;anPQZiBT`DD#v#TyJ{{aN*%O=q_KqnS5r8c zu`Lol#8%v>G2i_8+%neFE=ehy-@@50h_Pm1hbiC-ABiD5Z+`G*r}^FIuXR)xJ*(bt zNfsc#UFsk~_I|?xK~+z4n+$UFI^}~lLM99pbG6CO?Gk+Pm)kh%dx1q=vZY|5q`4Q^ z&aU@Ur$gozL}RH*P1AorL2|{9yk;qE%zm|X#|!=QoyeEB;{H2h)2O%xdhq_C-$lQp zqSZVk#hp%{er6xIRQZAw^bLH6@EP&-(ixhrHXiN-*$bnJEer;S=W@EF{M`pwVt=D8 zk(g)2XJ~%Ux5hj^jNWpG!@V$Vg7h8nSQ44S<+QF8F{SI1VH_3QgHS>97RzA(CY4Fs z*M5h$0UNHxX>^hx#AcHK(vf+d4QTA-4v)3yNhc-|NAMouG^AC#ssQ~iA*O6_fdK>D z9h{UE#Aq>Xfx~E9sb{Q9FB*y8-ARv6?jk^d?mM`d%D3SSxh@H1*4PNDj7QN#j`j1m z+sYr2kC@toOHp4=$};DMjRKZ(bw5zi<78`gFgQ+i1BCM)lJoV9Jq=;&YA_5jiuFjJ zEHUPcMQ>%@0ylYYiCNFvss~!Uc5p{%ae04E{G8w&A@ZA_4cYqJx@apawQJ!+;z1<* zE$M-9U@nx)lk?&e=Y$E79pFud>TF=U|C{koEEJy))>n(7N2bda@TKX;%5qZgUT#r! z{zOYUG2*7XI!+|}d@m0WkF|GTF2A(?AV=-;QCViG@umIk8&UMcBFjknT_?G~suim= zfuE%R`e%PIe5F}4q`E_Dl6@?|AkN?qXova7swSV5*jQmX!w61O_f4NFdm*10g6hrp zeB4xs_*lY;H)B}-y>k0OACrs(>BkXAP+IWsnni1=i#4M)1!RcB5> zQS}`6o6g}W;+q*a!h>Cg!|}3Tnpf6ON#~@ESpKbCKwqoTPjU{_cIR%~78}sw49j64 zfU!N_aByt-tY9Urn*N&Ll1;_itu8duSMJG0VK-xWzK#Uv;kjl^hQrq8I6(#!g`BPp zuMFS?6&BR$w`)!0=4>b~-{=7vlybzgrBS+V2f=8MKc8y;qRfdG9J=Xv;{luTkNI0v zb>=A_toWx82|5@deunJhi~4ni^6Chw1F`0MESQbQ4tO)HgGapC}=zWpImogtodVQmP!5JkBIpK@o<&VGVYK};-0`^fC1e=!=R?DZCX zZWl;~dATrACY42(2v-e4LV*2<{tf+=VA2DVaDGR8pkaVAx|9CF+ z>sK8ik482avq9=&)+r?JV=8Q}Pq@bU8+wjrIHl^L11UCO*KW zu#f|Y_T}?=>k%qrXJ9CoDnX!igtsd$hMzl z!6^Y0`VJJYOA2QdYf(h2skZexfLaIC!sw|$!Y-OnV`gSjN*im@E2OB?&^-W=Ks#n? zxQ!z6ykzT<*wf8@x&a=Y@%xSV68X)pTE(IZk9piFz$>Ksv(@B+w5se_Oal46x!hrx zc){v3s3uOvqYHbdqf%+$^_BRPW9Wb-o}rgzeQ__z(IoTzoU2C&mj6EF>V5=-e!5); zz-@`h!%jyP!kK7i3uZNO=|PLQ5d9U~Mc3snP0&XXAI`+0O~Z5hXP4-i2??$rw@s*O zYiSMUu6I>u^Uv3QB)G1lHsTSlaRoO=#tY_mTx0@e7lTApJ|!OMOk#zx<(*pmqv27b zcF``~okB4c45}DMkYgzRqkcnz7T%TpRh}`U;upuoMR#Ij`gK*9eUnGH&0|i99vb?+;^QvpF)>}SQbghgcb{0U@zcUKNN5;uC7JI-?Ub&o>99ddrE=u@ zQP6D~I8x<2sx=3?oBHu83A8linc0{WWIB!m+`Gb4Syx^P zS8XF-O|j92SCYlTMCOFJs?p(*z)&9Yk`K*E@Lq08#mJFOE~Bh_CB904qjXj7+?>0s zD+X$XD$08Zp+!-`25~tr`h@XRua9#9$*M-bN_F-UAqkT?cg;4U3^6-zKFLEe{L(!a zwds8`L4%ra@{qIBxM1i*KR`H-a_fR~t|4n?WT#LP5FHjh{B&tMFG;GCmixiLI!man zeK}ca!OjR~Bc8Z*JUl0mx6&F3+W`BYH~y(nZxnDYbXH&^Oo%t(2-PcEa}d62!l^>e zEvA)4`FIaj-l%7qA;fWEVq1gw4FtHaT`GQ;6r?@yiCvAyp!XB<5uG+5VNEYdPy2xB ziFsw--($H(-1!~}HoHLpi#s<$B)MtC&z*keK`~bu^-&(Xy;8=st|Pos|NN2+st^s% zwuIHzSf~sAiFyUfJgSu3KB8B9chw?82IR_4sC@m6Y*Detz^A}cwjkgIpWX-pG@xggJcgu9mp9H;5A-i*re>qXIgc8+J!Z^p70`(s;qpkq z_Z(u%b7olvyKJgIgS9Or8TTH0r*YBzN)zl;Mh7QD9nVMyGvC>r~`QfUc0FesYzW=g)G zNd=c7IS<8`5Bm$R(>JWL=$%zDHsVk3C;nU%Z}WJ2Mcb@kz-_Q}t=Cx|A9zsX`$fxn zT@7fZ=?twlNHtO z!@+U=l+)eFZ{H|j&Wl&Sq~44BPUvcB=DGUkuazI)9S7K;cz2bzk2DtA35*hk&8;KD zZS^Rw33pCzmiaU^f=Be^Os?jzsD&A^Li!Ct^-ep{Vb15Wm#0k`juF88Xjpj=5->i8Ess78d5?=)*KzOSoJyO0dQ#j?1iY_px?Z0~;Zr zLn-Jo*p|rjqvEMe%93a~L$d%LrVIDpzLIuxA_r%z7M5(f@Srh-R&S91DzMn$^cT60 zKkT#A{CaZx9KQ}dB*I%e#7bK@u~JDe%xaxUCY17^>UQ9y4d(ip=6M+X@%FjISqfRy zsSZD!3!}(_wyi+|&XjCW}VrrpadB#>LQ7Fc6*xK&U~Ap@0g zo+D;++?Xyx5LV;mr~9vG_3QgX9==|ww4 zfsqU^R_A4+#V$oUDE|C|V=f)TbwS)U`Ck$hVLNh9{sx-oxZE0+zgL5SpUYRgf~8R^R*2+1BxI?3#B82}fy?g^OG(?!8|7Q=X?fW6>p6SwkOp!c=7U zyIwB0PrOQ_qL-HIT~H?$u(=v97dZrQKo-7&ErFcpK1x}>B!$Y~>?)i)<8m5j`^WA7 E0Xz;jmH+?% literal 0 HcmV?d00001 diff --git a/public/fonts/Renogare/Renogare.otf b/public/fonts/Renogare/Renogare.otf new file mode 100644 index 0000000000000000000000000000000000000000..3e114026c2253ed0008f6a12e97b8a04fdcc00c6 GIT binary patch literal 58508 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 literal 0 HcmV?d00001 diff --git a/public/next.svg b/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index d2f8422..0000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/app/api/status/index.tsx b/src/app/api/status/index.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/app/favicon.ico b/src/app/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 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 LrJugUA?W`A8`#=m diff --git a/src/app/globals.css b/src/app/globals.css deleted file mode 100644 index d4f491e..0000000 --- a/src/app/globals.css +++ /dev/null @@ -1,107 +0,0 @@ -:root { - --max-width: 1100px; - --border-radius: 12px; - --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono', - 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro', - 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace; - - --foreground-rgb: 0, 0, 0; - --background-start-rgb: 214, 219, 220; - --background-end-rgb: 255, 255, 255; - - --primary-glow: conic-gradient( - from 180deg at 50% 50%, - #16abff33 0deg, - #0885ff33 55deg, - #54d6ff33 120deg, - #0071ff33 160deg, - transparent 360deg - ); - --secondary-glow: radial-gradient( - rgba(255, 255, 255, 1), - rgba(255, 255, 255, 0) - ); - - --tile-start-rgb: 239, 245, 249; - --tile-end-rgb: 228, 232, 233; - --tile-border: conic-gradient( - #00000080, - #00000040, - #00000030, - #00000020, - #00000010, - #00000010, - #00000080 - ); - - --callout-rgb: 238, 240, 241; - --callout-border-rgb: 172, 175, 176; - --card-rgb: 180, 185, 188; - --card-border-rgb: 131, 134, 135; -} - -@media (prefers-color-scheme: dark) { - :root { - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; - - --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); - --secondary-glow: linear-gradient( - to bottom right, - rgba(1, 65, 255, 0), - rgba(1, 65, 255, 0), - rgba(1, 65, 255, 0.3) - ); - - --tile-start-rgb: 2, 13, 46; - --tile-end-rgb: 2, 5, 19; - --tile-border: conic-gradient( - #ffffff80, - #ffffff40, - #ffffff30, - #ffffff20, - #ffffff10, - #ffffff10, - #ffffff80 - ); - - --callout-rgb: 20, 20, 20; - --callout-border-rgb: 108, 108, 108; - --card-rgb: 100, 100, 100; - --card-border-rgb: 200, 200, 200; - } -} - -* { - box-sizing: border-box; - padding: 0; - margin: 0; -} - -html, -body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient( - to bottom, - transparent, - rgb(var(--background-end-rgb)) - ) - rgb(var(--background-start-rgb)); -} - -a { - color: inherit; - text-decoration: none; -} - -@media (prefers-color-scheme: dark) { - html { - color-scheme: dark; - } -} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index ae84562..6dbd13b 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,22 +1,26 @@ -import './globals.css' -import type { Metadata } from 'next' -import { Inter } from 'next/font/google' - -const inter = Inter({ subsets: ['latin'] }) +import "@/styles/globals.css"; +import fonts from "@/utility/fonts"; +import type { Metadata } from "next"; export const metadata: Metadata = { - title: 'Create Next App', - description: 'Generated by create next app', -} + title: "MeowcaTheoRange", + description: "hehe :3c", +}; export default function RootLayout({ children, }: { - children: React.ReactNode + children: React.ReactNode; }) { return ( - - {children} + + + + + {children} - ) + ); } diff --git a/src/app/page.module.css b/src/app/page.module.css deleted file mode 100644 index 6676d2c..0000000 --- a/src/app/page.module.css +++ /dev/null @@ -1,229 +0,0 @@ -.main { - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - padding: 6rem; - min-height: 100vh; -} - -.description { - display: inherit; - justify-content: inherit; - align-items: inherit; - font-size: 0.85rem; - max-width: var(--max-width); - width: 100%; - z-index: 2; - font-family: var(--font-mono); -} - -.description a { - display: flex; - justify-content: center; - align-items: center; - gap: 0.5rem; -} - -.description p { - position: relative; - margin: 0; - padding: 1rem; - background-color: rgba(var(--callout-rgb), 0.5); - border: 1px solid rgba(var(--callout-border-rgb), 0.3); - border-radius: var(--border-radius); -} - -.code { - font-weight: 700; - font-family: var(--font-mono); -} - -.grid { - display: grid; - grid-template-columns: repeat(4, minmax(25%, auto)); - max-width: 100%; - width: var(--max-width); -} - -.card { - padding: 1rem 1.2rem; - border-radius: var(--border-radius); - background: rgba(var(--card-rgb), 0); - border: 1px solid rgba(var(--card-border-rgb), 0); - transition: background 200ms, border 200ms; -} - -.card span { - display: inline-block; - transition: transform 200ms; -} - -.card h2 { - font-weight: 600; - margin-bottom: 0.7rem; -} - -.card p { - margin: 0; - opacity: 0.6; - font-size: 0.9rem; - line-height: 1.5; - max-width: 30ch; -} - -.center { - display: flex; - justify-content: center; - align-items: center; - position: relative; - padding: 4rem 0; -} - -.center::before { - background: var(--secondary-glow); - border-radius: 50%; - width: 480px; - height: 360px; - margin-left: -400px; -} - -.center::after { - background: var(--primary-glow); - width: 240px; - height: 180px; - z-index: -1; -} - -.center::before, -.center::after { - content: ''; - left: 50%; - position: absolute; - filter: blur(45px); - transform: translateZ(0); -} - -.logo { - position: relative; -} -/* Enable hover only on non-touch devices */ -@media (hover: hover) and (pointer: fine) { - .card:hover { - background: rgba(var(--card-rgb), 0.1); - border: 1px solid rgba(var(--card-border-rgb), 0.15); - } - - .card:hover span { - transform: translateX(4px); - } -} - -@media (prefers-reduced-motion) { - .card:hover span { - transform: none; - } -} - -/* Mobile */ -@media (max-width: 700px) { - .content { - padding: 4rem; - } - - .grid { - grid-template-columns: 1fr; - margin-bottom: 120px; - max-width: 320px; - text-align: center; - } - - .card { - padding: 1rem 2.5rem; - } - - .card h2 { - margin-bottom: 0.5rem; - } - - .center { - padding: 8rem 0 6rem; - } - - .center::before { - transform: none; - height: 300px; - } - - .description { - font-size: 0.8rem; - } - - .description a { - padding: 1rem; - } - - .description p, - .description div { - display: flex; - justify-content: center; - position: fixed; - width: 100%; - } - - .description p { - align-items: center; - inset: 0 0 auto; - padding: 2rem 1rem 1.4rem; - border-radius: 0; - border: none; - border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); - background: linear-gradient( - to bottom, - rgba(var(--background-start-rgb), 1), - rgba(var(--callout-rgb), 0.5) - ); - background-clip: padding-box; - backdrop-filter: blur(24px); - } - - .description div { - align-items: flex-end; - pointer-events: none; - inset: auto 0 0; - padding: 2rem; - height: 200px; - background: linear-gradient( - to bottom, - transparent 0%, - rgb(var(--background-end-rgb)) 40% - ); - z-index: 1; - } -} - -/* Tablet and Smaller Desktop */ -@media (min-width: 701px) and (max-width: 1120px) { - .grid { - grid-template-columns: repeat(2, 50%); - } -} - -@media (prefers-color-scheme: dark) { - .vercelLogo { - filter: invert(1); - } - - .logo { - filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70); - } -} - -@keyframes rotate { - from { - transform: rotate(360deg); - } - to { - transform: rotate(0deg); - } -} diff --git a/src/app/page.tsx b/src/app/page.tsx index 9ddf9b9..380d6e4 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,95 +1,776 @@ -import Image from 'next/image' -import styles from './page.module.css' +/* eslint-disable react/jsx-no-comment-textnodes */ +/* eslint-disable react/no-unescaped-entities */ +"use client"; +import ColourChip from "@/components/ColourChip/ColourChip"; +import Eighty from "@/components/Eighty/Eighty"; +import Floaty from "@/components/Floaty/Floaty"; +import Page from "@/components/Page/Page"; +import ProjectList, { Project } from "@/components/ProjectList/ProjectList"; +import ScrollBackInd from "@/components/ScrollBackInd/ScrollBackInd"; +import SpeedDial from "@/components/SpeedDial/SpeedDial"; +import Time from "@/components/Time/Time"; +import LastFM from "@/components/net/LastFM/LastFM"; +import { Color3 } from "@/utility/color"; +import { Space_Grotesk } from "next/font/google"; +import { useEffect, useRef, useState } from "react"; + +const space_grotesk = Space_Grotesk({ + subsets: ["latin"], + variable: "--font-Space-Grotesk", +}); export default function Home() { + const [page, setPage] = useState(0); + const body = useRef(null); + + // TIME + const dateObj = new Date(); + const [time, setTime] = useState("00:00:00 PM"); + const [date, setDate] = useState("0/0/0000"); + let animFrame = useRef(0); + + // hot reloading memory saver + useEffect(() => { + window.cancelAnimationFrame(animFrame.current); + }, []); + useEffect(() => { + function setTheTime() { + dateObj.setTime(Date.now()); + setTime( + dateObj.toLocaleTimeString("en-US", { + minute: "2-digit", + hour: "2-digit", + timeZone: "America/Chicago", + }) + ); + setDate( + dateObj.toLocaleDateString("en-US", { + weekday: "long", + day: "2-digit", + month: "long", + timeZone: "America/Chicago", + }) + ); + animFrame.current = window.requestAnimationFrame(setTheTime); + } + animFrame.current = window.requestAnimationFrame(setTheTime); + }, []); + + // LAST FM + let [player, setPlayer] = useState<{ [key: string]: any } | null | undefined>( + null + ); + const FMGate = useRef(true); + useEffect(() => { + async function LastFMGet() { + FMGate.current = false; + const api_key = "8f9b0255cc55a19f82d37c22600aff1a"; + const LAST_FM_URL = `https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=MeowcaTheoRange&api_key=${api_key}&format=json&extended=1&limit=1`; + const res = await fetch(LAST_FM_URL); + setPlayer(await res.json()); + setTimeout(() => LastFMGet(), 20000); + } + if (FMGate.current) LastFMGet(); + }, []); + + // Gallery + let [images, setImages] = useState([ + { + name: "See More", + description: "blog.abtmtr.link", + url: "https://blog.abtmtr.link/", + }, + ]); + const ImageGate = useRef(true); + useEffect(() => { + async function ImageGet() { + ImageGate.current = false; + const IMAGE_URL = `https://img.abtmtr.link/api/collections/mtr/posts`; + const res = await fetch(IMAGE_URL); + const gallery = (await res.json()).data; + setImages([ + ...gallery.posts?.map((imagePost: any) => ({ + name: imagePost.title, + description: imagePost.body.replace( + /^!\[.*?\]\((.*?)\).*(?:\n\nCharacters:.*?\n\n)(.*)\n\n.*$/gs, + "$2" + ), + image: imagePost.images[0] ?? null, + url: "https://img.abtmtr.link/" + imagePost.slug, + })), + { + name: "See More", + description: "img.abtmtr.link", + url: "https://img.abtmtr.link/", + }, + ]); + } + if (ImageGate.current) ImageGet(); + }, []); + + // Gallery + let [blog, setBlog] = useState([ + { + name: "See More", + description: "blog.abtmtr.link", + url: "https://blog.abtmtr.link/mtr/", + }, + ]); + const BlogGate = useRef(true); + useEffect(() => { + async function BlogGet() { + BlogGate.current = false; + const BLOG_URL = `https://blog.abtmtr.link/api/collections/mtr/posts`; + const res = await fetch(BLOG_URL); + const blogss = (await res.json()).data; + setBlog([ + ...blogss.posts?.map((blogPost: any) => ({ + name: blogPost.title, + description: blogPost.body.replace(/#\w*/g, ""), + url: "https://blog.abtmtr.link/mtr/" + blogPost.slug, + })), + { + name: "See More", + description: "blog.abtmtr.link", + url: "https://blog.abtmtr.link/mtr/", + }, + ]); + } + if (BlogGate.current) BlogGet(); + }, []); + + // Gallery + let [repos, setRepos] = useState([ + { + name: "See More", + description: "github.com", + url: "https://github.com/MeowcaTheoRange", + }, + ]); + const GithubGate = useRef(true); + useEffect(() => { + async function GithubGet() { + GithubGate.current = false; + const GITHUB_URL = `https://api.github.com/users/meowcatheorange/starred`; + const res = await fetch(GITHUB_URL); + const reposs = (await res.json())?.filter( + (x: any) => x.owner.login == "MeowcaTheoRange" + ); + console.log(reposs); + setRepos([ + ...reposs?.map((repository: any) => ({ + name: repository.name, + description: repository.description ?? "No description", + url: repository.html_url, + })), + { + name: "See More", + description: "github.com", + url: "https://github.com/MeowcaTheoRange", + }, + ]); + } + if (GithubGate.current) GithubGet(); + }, []); + return ( -
-
+
{ + const target = e.target as HTMLDivElement; + const curPage = Math.round(target.scrollTop / target.clientHeight); + if (curPage != page) setPage(curPage); + }} + > + + +

+ ABTMTR + + .LINK +

+ + + +
+ +

Welcome 👋

- Get started by editing  - src/app/page.tsx + I'm MeowcaTheoRange (miau-kuh-thee~oh-ray~nj). +
+ I'm a web developer, Fediverse enthusiast, and compulsory Minnesotan.

- -
- -
- Next.js Logo + I'm also known as Iszac or Theo as + well. +

+

he/they/it

+

Male

+

Minor

+

Autistic

+

I run this domain and all of the services on it.

+

+ My favourite hobbies are programming,{" "} + drawing,{" "} + occasionally making small bits of music,{" "} + obsessing over fonts, and{" "} + being pedantic. +

+

+ You may see parts of all of these aspects within this website. Please + tread carefully. +

+

+ Some other important things I think you should know about me are... +

+
    +
  • Please be patient with me.
  • +
  • + Please be understanding! Ask me for clarification if required. +
  • +
  • + I don't really like small talk - keep if brief if you want to check + up on me, please. +
  • +
  • + I'm not one to pick sides at first, usually. Being an "all or + nothing" kind of person isn't my thing, and if you don't like that, + feel free to tell me why your side is good. +
  • +
  • + I like getting tangled up in drama, but I'm not a spiteful person - + I'm usually only in it for the correlations. +
  • +
  • + You may see me hyperfixate on random stuff, like{" "} + + certain fonts + {" "} + or public transit. +
  • +
+

I believe in...

+
    +
  • Self-hosting important or personal infrastructure
  • +
  • Free and open-source material
  • +
  • Privacy as a basic human right
  • +
  • Trans rights & gay rights
  • +
  • + Autistic superiority /joke +
  • +
+

Check me out on:

+ -
+ + +

What's on this domain?

+

+ Here's a quick list of all of the web services on this domain right + now. +

+ +

Planned services

+

What I would like to put on this domain sometime in the future.

+ +

+ L10n (localization) +

+

What services I'd like to put on my server computer at home.

+ +
+ +

Current Obsessions

+

+ I'm into a lot of stuff. As of this site's publication, you'll + probably see me indulging in: +

+
    +
  • + + @winter@translunar.academy + + 's fic{" "} + + Ætherglow + +
  • +
  • Discussion of autism
  • +
  • Discussion and usage of the Fediverse
  • +
  • + + Homestuck + {" "} + and related properties +
  • +
  • + Adventures on{" "} + + MSPFA + + , sometimes +
  • +
  • Using React or Next.js
  • +
  • Creating alternatives to both because I'm just that cool
  • +
  • Anti-JS practices
  • +
  • Art and drawing
  • +
  • Using Blender
  • +
  • The MetroTransit bus system
  • +
+

and possibly much more that I can't even remember.

+

+ Want to know more? Below is my display of some of these things in + sections. Enjoy! +

+
+ +

Programming

+

I like using what some call "programming languages".

+

+ What do I call them? None of your business. All you have to know is + that I use TypeScript, React, and{" "} + Haxe. +

+

+ I also know JavaScript and some Bash{" "} + in case of emergency. +

+ +
+ +

Fonts

+

I also like UI and UI design. This includes fonts, quite a bit.

+

+ Currently, I'm liking the look of Renogare, Lexend Deca, + and Space Grotesk. This may change. +

+

+ I first used Space Grotesk for general-purpose + applications. This was on my old portfolio site and it's on TrollCall + right now. I think it just fits TrollCall; it's quirky, geometric, a + bit alien - it's right at home with the intended vibe of the site. +

+

+ On this website, I'm using Renogare as a header/title + font, and Lexend Deca for everything else. +

+

+ I found Renogare while playing{" "} + Celeste - yaknow, the game where you climb a huge + mountain for a few days? +

+

+ Renogare is a bold, geometric, display-optimized + font. It's super cool and I am in love with how it looks. +

+

+ Lexend Deca is a very strong second to{" "} + Renogare, primarily used when I can't use{" "} + Renogare, shouldn't use Renogare, or + am using Renogare but need something that{" "} + isn't Renogare. +

+

+ Lexend Deca is similar-looking to{" "} + Renogare, with a few major differences.{" "} + Lexend Deca loses the geometry, instead opting for a + beamed I, flat-top A, M, N, et al. t loses its curve, instead going + straight down. +

+

+ It also has different weights and proper OTF support - plus a bonus + series of different letter spacing choices under the{" "} + Lexend name. Deca is the tightest, + which is why I chose it. +

+

+ All in all, Lexend Deca is a good general-purpose + font, while still leaving room for Renogare to be a + great display font. +

+ +
+

+ AaIiLlMm +

+

+ Renogare +

+
+
+

+ AaIiLlMm +

+

+ Lexend Deca +

+
+
+

+ AaIiLlMm +

+

+ Space Grotesk +

+
+
+
+ +

Artistry

+

+ Artistry usually includes writing and drawing. These are the purposes + for{" "} + + my blog + {" "} + and{" "} + + my public gallery + + . +

+ + +
+ +

Branding

+

+ I don't really have strict branding guidelines, but I do have a few + important rules if you would like to refer to me in a professional or + formal context. +

+

Name

+

+ If you would like to refer to me online, you'll usually be able to use + my username MeowcaTheoRange. If that's too long, you can always + shorten it to MTR. +

+

+ Please make sure to keep the styling. It's MeowcaTheoRange, not{" "} + MeowcatHeOrange, MeowcaTheOrange, + nor Meowca Theo Range. +

+

+ The styling meowcatheorange is OK if necessary. +

+

+ If you would like to refer to me in a more professional context, my + name Iszac or the moniker Theo Range{" "} + will work just as well. +

+

+ If you are a local organization and would like to refer to me by my + legal name, please{" "} + + contact me + {" "} + and we can probably figure something out. +
+ Local means within Minnesota, by the way. +

+

Colours

+

+ If you would like to use colours to refer to me, whether that be the + primary color on a card or the color of my name, I recommend you use + these colours: +

- -
- ) + + Iszac Blue +
+ Primary +
+ + Rocco Orange +
+ Primary Negative +
+

+ Iszac Blue is literally Rocco Orange but + inverted. This colour is named after Iszac, an OC of + mine that I came up with, for the setting of Ætherglow. +
+ + ...and then I shortly named myself after said character... + +
+ If you were to use any of these colours to represnt me as a{" "} + person, use this one. +

+

+ Rocco Orange is my favourite colour orange, but now more red. + The name comes from my character Rocco, whose hair is + this colour - though this colour has been applied to more characters + like BLEND-1020.
+ If you were to use any of these colours to represnt me as an{" "} + entity, use this one whenever possible. +

+
+ + Grape Soda +
+ Secondary +
+ + Avalonian Waste +
+ Secondary Negative +
+

+ Grape Soda represents my love for grape soda. +
+ My favourite is Fanta Grape. :] +

+

+ Avalonian Waste is also literally Grape Soda{" "} + but inverted. This represents some{" "} + + old lore + {" "} + that I'm still screwing with. +

+ + + +

+ ABTMTR + + .LINK +

+ + + + + + + + + + + +

© MeowcaTheoRange 2023

+
+ + ); } diff --git a/src/components/ColourChip/ColourChip.module.css b/src/components/ColourChip/ColourChip.module.css new file mode 100644 index 0000000..074a6aa --- /dev/null +++ b/src/components/ColourChip/ColourChip.module.css @@ -0,0 +1,9 @@ +.ColourChip { + background-color: var(--mainColour); + display: inline-block; + width: 9em; + aspect-ratio: 1 / 1; + padding: 16px; + vertical-align: top; + margin: 1em; +} diff --git a/src/components/ColourChip/ColourChip.tsx b/src/components/ColourChip/ColourChip.tsx new file mode 100644 index 0000000..8bcb3c0 --- /dev/null +++ b/src/components/ColourChip/ColourChip.tsx @@ -0,0 +1,28 @@ +import { Color3 } from "@/utility/color"; +import styles from "./ColourChip.module.css"; + +export default function ColourChip({ + colour, + children, +}: { + colour: Color3; + children?: React.ReactNode; +}) { + const calcTextColor = +(Math.max(...colour.toRGB()) <= 127); + return ( +
+ {children} +

{"#" + colour.toHex()}

+
+ ); +} diff --git a/src/components/Eighty/Eighty.module.css b/src/components/Eighty/Eighty.module.css new file mode 100644 index 0000000..3bd5f66 --- /dev/null +++ b/src/components/Eighty/Eighty.module.css @@ -0,0 +1,11 @@ +.Eighty { + display: inline-block; + margin: 5px 6px; + transform-origin: center; +} + +.Eighty img { + display: inline-block; + width: 88px; + height: 31px; +} diff --git a/src/components/Eighty/Eighty.tsx b/src/components/Eighty/Eighty.tsx new file mode 100644 index 0000000..40bee3d --- /dev/null +++ b/src/components/Eighty/Eighty.tsx @@ -0,0 +1,22 @@ +import Link from "next/link"; +import styles from "./Eighty.module.css"; + +export default function Eighty({ + url, + img, + alt, +}: { + url?: string; + img: string; + alt?: string; +}) { + return url ? ( + + {alt} + + ) : ( + + {alt} + + ); +} diff --git a/src/components/Floaty/Floaty.module.css b/src/components/Floaty/Floaty.module.css new file mode 100644 index 0000000..7159d5f --- /dev/null +++ b/src/components/Floaty/Floaty.module.css @@ -0,0 +1,55 @@ +.Floaty { + display: inline-block; + max-width: calc(50vw - 64px); + min-width: 373px; + /* height: calc(50vh - 64px); */ + position: absolute !important; + right: 64px; + bottom: 64px; + text-align: end; + /* background-color: #0001; + box-shadow: 0 0 8px currentColor; + padding: 16px; */ + box-sizing: border-box; +} + +.FloatySticky { + position: sticky; +} + +.Floaty:dir(rtl) { + right: unset; + left: 64px; +} + +.FloatyTop { + bottom: unset; + top: 64px; +} + +.FloatyStart { + right: unset; + left: 64px; + text-align: start; +} + +.FloatyStart:dir(rtl) { + left: unset; + right: 64px; +} + +@media only screen and (max-width: 875px) { + .Floaty { + position: static !important; + text-align: start; + display: block; + margin: 2em 0; + max-width: none; + } + .FloatyKeep { + position: absolute !important; + text-align: unset; + display: inline-block; + margin: 0; + } +} diff --git a/src/components/Floaty/Floaty.tsx b/src/components/Floaty/Floaty.tsx new file mode 100644 index 0000000..ebd8ac6 --- /dev/null +++ b/src/components/Floaty/Floaty.tsx @@ -0,0 +1,27 @@ +import styles from "./Floaty.module.css"; + +export default function Floaty({ + children, + top = false, + start = false, + keepFloat = false, + sticky = false, +}: { + children?: React.ReactNode; + top?: boolean; + start?: boolean; + keepFloat?: boolean; + sticky?: boolean; +}) { + return ( +
+ {children} +
+ ); +} diff --git a/src/components/Nav/Nav.module.css b/src/components/Nav/Nav.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/components/Nav/Nav.tsx b/src/components/Nav/Nav.tsx new file mode 100644 index 0000000..fb49b91 --- /dev/null +++ b/src/components/Nav/Nav.tsx @@ -0,0 +1,22 @@ +import { Color3 } from "@/utility/color"; +import styles from "./Nav.module.css"; + +export default function Nav({ + children, + color, +}: { + children?: React.ReactNode; + color?: Color3; +}) { + return ( +
+ {children} +
+ ); +} diff --git a/src/components/Page/Page.module.css b/src/components/Page/Page.module.css new file mode 100644 index 0000000..b5737c8 --- /dev/null +++ b/src/components/Page/Page.module.css @@ -0,0 +1,59 @@ +.Page { + box-sizing: border-box; + width: 100vw; + min-height: 100vh; + /* overflow-y: auto; */ + overflow: hidden; + padding: 64px; + scroll-snap-align: start; + scroll-snap-stop: always; + position: relative; + background-attachment: fixed; + z-index: 1; + scroll-margin-bottom: calc(64px + (3rem + 1.5rem)); +} + +.Page > * { + position: relative; + z-index: 3; +} + +.Page .PageBgElements { + z-index: 2; + /* opacity: 0.5; */ + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 200%; + /* transform: translateY(-50%); */ + overflow: hidden; + user-select: none; + pointer-events: none; + speak: none; +} + +.PagePreview { + min-height: calc(100vh - (64px + (3rem + 1.5rem))); +} + +.PageFooter { + min-height: 50vh; + scroll-snap-align: end; +} + +.PageSpace { + padding-right: 128px; +} + +@media only screen and (max-width: 1024px) { + .Page { + font-size: 16px; + } +} + +@media only screen and (max-width: 875px) { + .PageSpace { + padding-right: 64px; + } +} diff --git a/src/components/Page/Page.tsx b/src/components/Page/Page.tsx new file mode 100644 index 0000000..2870194 --- /dev/null +++ b/src/components/Page/Page.tsx @@ -0,0 +1,57 @@ +import { Color3 } from "@/utility/color"; +import { useEffect, useRef } from "react"; +import styles from "./Page.module.css"; + +export default function Page({ + children, + color, + bg, + scroll, + preview = false, + footer = false, + floaty = false, + id, +}: { + children?: React.ReactNode; + color?: Color3; + bg?: string; + scroll: HTMLElement | null; + preview?: boolean; + footer?: boolean; + floaty?: boolean; + id?: string; +}) { + const pageobj = useRef(null); + const pageScrollAnim = useRef(0); + useEffect(() => { + if (scroll == null) return; + const handler = () => { + if (pageobj.current == null) return; + pageobj.current.style.backgroundPositionY = + -(pageobj.current.offsetTop - scroll.scrollTop) / 2 + "px"; + pageScrollAnim.current = requestAnimationFrame(handler); + }; + pageScrollAnim.current = requestAnimationFrame(handler); + // return cancelAnimationFrame(pageScrollAnim.current); + }, [scroll]); + return ( +
+ {children} +
+ ); +} diff --git a/src/components/ProjectList/ProjectList.module.css b/src/components/ProjectList/ProjectList.module.css new file mode 100644 index 0000000..f5dcd6a --- /dev/null +++ b/src/components/ProjectList/ProjectList.module.css @@ -0,0 +1,113 @@ +.ProjectList { + display: grid; + grid-auto-flow: column; + grid-auto-columns: 300px; + gap: 16px; + width: calc(100% + 128px); + box-sizing: border-box; + flex-wrap: nowrap; + justify-content: flex-start; + align-items: center; + margin-left: -64px; + padding: 8px 16px; + overflow-x: scroll; +} + +.ProjectListDoubleWide { + grid-auto-columns: 616px; +} + +.ProjectList .ProjectListProject { + display: inline-block; + padding: 8px; + aspect-ratio: 1 / 1; + flex-shrink: 0; + border: 1px solid var(--color); + background-color: var(--backgroundColor); + color: var(--color); + box-shadow: 0 0 0 var(--color); + font-size: 1rem; + text-align: left; + background-position: center; + background-size: cover; + position: relative; + overflow: hidden; + transition: box-shadow 0.125s, transform 0.125s; +} + +.ProjectListDoubleWide .ProjectListProject { + aspect-ratio: 2 / 1; +} + +.ProjectList .ProjectListProject:hover { + box-shadow: 0 8px 0 var(--color); + transform: translateY(-8px); +} + +.ProjectList .ProjectListProject:active { + box-shadow: 0 4px 0 var(--color); + transform: translateY(-4px); + font-weight: unset; +} + +.ProjectListProject .ProjectListProjectImage { + position: absolute; + left: -8px; + top: -8px; + width: calc(100% + 16px); + height: calc(100% + 16px); + object-fit: cover; + filter: blur(4px) brightness(30%); + transition: top 0.125s, filter 0.125s; + /* opacity: 0.75; */ +} + +.ProjectListProject:hover .ProjectListProjectImage { + top: 0px; + filter: blur(8px) brightness(30%); + /* opacity: 0.75; */ +} + +.ProjectListProject .ProjectListProjectDescription { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + padding: 16px; + box-sizing: border-box; +} + +.ProjectListProjectDescription .ProjectListProjectDescriptionTitle { + display: inline-block; + margin: 0; + font-family: "Renogare"; + font-size: 1.5em; + max-lines: 2; + line-clamp: 2; + line-height: 1.25em; + text-overflow: ellipsis; + overflow-x: hidden; + max-width: 100%; + white-space: nowrap; +} + +.ProjectListProjectDescription .ProjectListProjectDescriptionDescription { + margin: 0; + margin-top: 0.25em; + font-family: "Lexend Deca"; + font-size: 1em; +} + +@media only screen and (max-width: 750px) { + .ProjectList { + grid-auto-columns: calc(50% - 8px); + } + + .ProjectListDoubleWide { + grid-auto-columns: 100%; + } + + .ProjectList .ProjectListProject { + } +} diff --git a/src/components/ProjectList/ProjectList.tsx b/src/components/ProjectList/ProjectList.tsx new file mode 100644 index 0000000..0b6f581 --- /dev/null +++ b/src/components/ProjectList/ProjectList.tsx @@ -0,0 +1,71 @@ +/* eslint-disable @next/next/no-img-element */ +import { useRouter } from "next/navigation"; +import ReactMarkdown from "react-markdown"; +import rehypeRaw from "rehype-raw"; +import remarkBreaks from "remark-breaks"; +import styles from "./ProjectList.module.css"; + +export type Project = { + name: string; + url: string; + description: string; + image?: string; +}; + +export default function ProjectList({ + projects, + markdown = false, + double = false, +}: { + projects: Project[]; + markdown?: boolean; + double?: boolean; +}) { + const router = useRouter(); + return ( + + ); +} diff --git a/src/components/ScrollBackInd/ScrollBackInd.module.css b/src/components/ScrollBackInd/ScrollBackInd.module.css new file mode 100644 index 0000000..3348bd2 --- /dev/null +++ b/src/components/ScrollBackInd/ScrollBackInd.module.css @@ -0,0 +1,65 @@ +.ScrollBackInd { + position: fixed; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + gap: 16px; + left: 50vw; + transform: translateX(-50%); + bottom: 64px; + /* width: 64px; */ + height: 64px; + z-index: 9; + background-color: #0008; + color: #fff; + border-radius: 16px; + border: none; + cursor: pointer; + padding: 8px; + transition: opacity 0.25s; +} + +.ScrollBackInd span:first-child { + display: inline-block; + width: 32px; + border-radius: 8px; + font-size: 24px; + transition: text-shadow 0.25s; + font-family: "Material Symbols Outlined"; +} + +.ScrollBackInd:hover span:first-child { + text-shadow: 0 0 8px #fff; +} + +.ScrollBackInd span { + font-size: 1rem; + padding: 0 8px; + font-family: var(--font-Lexend-Deca); +} + +.ScrollBackInd img { + width: 48px; + height: 48px; + border-radius: 8px; + border: 1px solid transparent; + background: conic-gradient( + from -90deg at 50% 50%, + transparent 0%, + transparent 25%, + currentColor 30%, + currentColor 45%, + transparent 50%, + transparent 75%, + currentColor 80%, + currentColor 95%, + transparent 100% + ) + border-box; +} + +.ScrollBackIndHidden { + opacity: 0; + pointer-events: none; +} diff --git a/src/components/ScrollBackInd/ScrollBackInd.tsx b/src/components/ScrollBackInd/ScrollBackInd.tsx new file mode 100644 index 0000000..ed2e0e0 --- /dev/null +++ b/src/components/ScrollBackInd/ScrollBackInd.tsx @@ -0,0 +1,36 @@ +"use client"; +import styles from "./ScrollBackInd.module.css"; + +export default function ScrollBackInd({ + hide = false, + scroll, + player, + time, +}: { + hide?: boolean; + scroll: HTMLElement | null; + player: { [key: string]: any } | null | undefined; + time: string; +}) { + return ( + + ); +} diff --git a/src/components/Sides/Sides.module.css b/src/components/Sides/Sides.module.css new file mode 100644 index 0000000..8210f2c --- /dev/null +++ b/src/components/Sides/Sides.module.css @@ -0,0 +1,27 @@ +.Sides { + display: grid; + grid-template-columns: auto max-content; + gap: 16px; +} + +.Sides .SidesStart { + text-align: start; + max-width: 100%; +} + +.Sides .SidesEnd { + text-align: end; + max-width: 100%; +} + +@media only screen and (max-width: 750px) { + .Sides { + display: inline-block; + max-width: 100%; + } + + .Sides .SidesEnd { + text-align: start; + margin-top: 2em; + } +} diff --git a/src/components/Sides/Sides.tsx b/src/components/Sides/Sides.tsx new file mode 100644 index 0000000..94627df --- /dev/null +++ b/src/components/Sides/Sides.tsx @@ -0,0 +1,16 @@ +import styles from "./Sides.module.css"; + +export default function Sides({ + start, + end, +}: { + start?: React.ReactNode; + end?: React.ReactNode; +}) { + return ( +
+
{start}
+
{end}
+
+ ); +} diff --git a/src/components/SpeedDial/SpeedDial.module.css b/src/components/SpeedDial/SpeedDial.module.css new file mode 100644 index 0000000..32f17b9 --- /dev/null +++ b/src/components/SpeedDial/SpeedDial.module.css @@ -0,0 +1,18 @@ +.SpeedDial { + /* display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 0 0.5em; */ +} + +.SpeedDialService { + /* display: inline-block; */ +} + +.SpeedDialServiceGolden { + font-weight: bolder; +} + +.SpeedDialServicePurpose { + margin: 0; +} diff --git a/src/components/SpeedDial/SpeedDial.tsx b/src/components/SpeedDial/SpeedDial.tsx new file mode 100644 index 0000000..6581a96 --- /dev/null +++ b/src/components/SpeedDial/SpeedDial.tsx @@ -0,0 +1,34 @@ +import styles from "./SpeedDial.module.css"; + +export default function SpeedDial({ + services, +}: { + services: { + name: string; + url: string; + golden?: boolean; + purpose?: string; + }[]; +}) { + return ( +
    + {services.map((service, iter) => ( +
  • + {service.purpose ? ( +

    {service.purpose}

    + ) : ( + <> + )} + + {service.name} + +
  • + ))} +
+ ); +} diff --git a/src/components/Time/Time.module.css b/src/components/Time/Time.module.css new file mode 100644 index 0000000..32fe106 --- /dev/null +++ b/src/components/Time/Time.module.css @@ -0,0 +1,2 @@ +.Time { +} diff --git a/src/components/Time/Time.tsx b/src/components/Time/Time.tsx new file mode 100644 index 0000000..13e6f47 --- /dev/null +++ b/src/components/Time/Time.tsx @@ -0,0 +1,11 @@ +import styles from "./Time.module.css"; + +export default function Time({ time, date }: { time: string; date: string }) { + return ( +
+

{time}

+

{date}

+

Central Time (Minnesota)

+
+ ); +} diff --git a/src/components/net/LastFM/LastFM.module.css b/src/components/net/LastFM/LastFM.module.css new file mode 100644 index 0000000..25b431d --- /dev/null +++ b/src/components/net/LastFM/LastFM.module.css @@ -0,0 +1,55 @@ +.LastFM { + display: inline-grid; + grid-template-columns: auto 96px; + align-items: center; + gap: 16px; + border: 1px solid transparent; + /* background: linear-gradient( + 0deg, + var(--backgroundColor) 0%, + var(--backgroundColor) 100% + ) + padding-box, + conic-gradient( + from -90deg at 50% 50%, + transparent 0%, + transparent 35%, + currentColor 40%, + currentColor 45%, + transparent 50%, + transparent 85%, + currentColor 90%, + currentColor 95%, + transparent 100% + ) + border-box; */ + /* box-shadow: 0 0 4px currentColor; */ + box-sizing: border-box; + /* padding: 16px; */ +} + +.LastFM .LastFMAlbumArt { + border-radius: 8px; +} + +.LastFM .LastFMMetadata { +} + +.LastFM .LastFMMetadata .LastFMMetadataTitle { + font-size: 1.5em; +} + +.LastFMError { + opacity: 0.5; +} + +@media only screen and (max-width: 875px) { + .LastFM { + grid-auto-flow: column; + grid-template-columns: 96px auto; + } + + .LastFM .LastFMAlbumArt { + order: -1; + } +} diff --git a/src/components/net/LastFM/LastFM.tsx b/src/components/net/LastFM/LastFM.tsx new file mode 100644 index 0000000..6b04f88 --- /dev/null +++ b/src/components/net/LastFM/LastFM.tsx @@ -0,0 +1,38 @@ +"use client"; +import styles from "./LastFM.module.css"; + +export default function LastFM({ + player, +}: { + player: { [key: string]: any } | null | undefined; +}) { + return player != null ? ( + <> + {player?.recenttracks.track[0]["@attr"]?.nowplaying === "true" ? ( +

Currently listening to

+ ) : ( +

Last listened to

+ )} +
+
+

+ {player?.recenttracks.track[0].name} +

+

+ {player?.recenttracks.track[0].artist.name} -{" "} + {player?.recenttracks.track[0].album["#text"]} +

+
+ +
+ + ) : ( +

Hold on...

+ ); +} diff --git a/src/styles/globals.css b/src/styles/globals.css new file mode 100644 index 0000000..4b1faf9 --- /dev/null +++ b/src/styles/globals.css @@ -0,0 +1,178 @@ +:root { + font-family: var(--font-Lexend-Deca); + font-size: 20px; +} + +body, +html { + margin: 0; + box-sizing: border-box; +} + +div.body { + width: 100vw; + height: 100vh; + background-color: black; + color: white; + overflow-y: scroll; + scroll-snap-type: y mandatory; +} + +/* Markup */ + +.block > h1, +.block > h2, +.block > h3, +.block > h4 { + max-width: 85%; +} +.block > p, +.block > ul, +.block > ol { + max-width: 65%; +} + +h1 { + font-family: var(--font-Renogare); + font-size: 3rem; + margin: 0 0; + margin-bottom: 1rem; + text-wrap: balance; + font-weight: normal; +} + +h2 { + font-family: var(--font-Renogare); + font-size: 2rem; + margin: 1rem 0; + margin-bottom: 1rem; + text-wrap: balance; + font-weight: normal; +} + +h3 { + font-family: var(--font-Renogare); + font-size: 1.5rem; + margin: 1rem 0; + margin-bottom: 0.5rem; + text-wrap: balance; + font-weight: normal; +} + +h4 { + font-family: var(--font-Renogare); + font-size: 1rem; + margin: 1rem 0; + margin-bottom: 0.5rem; + text-wrap: balance; + font-weight: normal; +} + +p { + font-size: 1rem; + margin: 0.5rem 0; + line-height: 1.5rem; +} + +ul, +ol { + font-size: 1rem; + margin: 0.5rem 1em; + line-height: 1.5rem; +} + +li { + margin: 0.5em 0; +} + +small { + font-size: 0.75em; +} + +b { + font-size: 1.25em; + line-height: 1em; +} + +a { + display: inline-block; + position: relative; + color: currentColor; + transform: skew(0); + transform-origin: bottom left; + transition: all 0.125s; +} + +a.special::after { + content: " >>>"; + position: absolute; + display: inline-block; + font-weight: bold; + width: 1ch; + overflow: hidden; + transform: scaleX(0); + top: 0; + right: 0; + transition: all 0.125s; +} + +a:hover { + text-decoration-color: transparent; + transform: skew(-15deg, 0); +} + +a.special:hover { + letter-spacing: 0.25ch; + margin-right: 2ch; + font-weight: bold; + text-decoration-color: transparent; + transform: skew(-15deg, 0); +} + +a.special:hover::after { + right: -2ch; + transform: scaleX(1); +} + +a:active { + font-weight: bold; +} + +a.special:active { + transform: skew(-30deg, 0); + letter-spacing: 0.5ch; + margin-right: 5ch; +} + +a.special:active::after { + width: 4ch; + right: -5ch; +} + +.icon { + font-family: "Material Symbols Outlined"; + font-size: 24px; + line-height: 24px; +} + +/* Stinky styling */ + +.hv { + opacity: 0.5; +} + +.chip { + display: inline-block; + background-color: var(--backgroundColor); + color: var(--color); + padding: 0 1em; + margin-left: 0.25em; + margin-right: 0.25em; + border-radius: 1em; +} + +@media only screen and (max-width: 1024px) { + :root { + font-size: 16px; + } +} diff --git a/src/utility/color.ts b/src/utility/color.ts new file mode 100644 index 0000000..9f8de2b --- /dev/null +++ b/src/utility/color.ts @@ -0,0 +1,94 @@ +export type ColorTypes = [number, number, number]; + +const clamp = (n: number, mi: number, ma: number) => + Math.max(mi, Math.min(n, ma)); + +export class Color3 { + R: number; + G: number; + B: number; + constructor(red: number, green: number, blue: number) { + this.R = red; + this.G = green; + this.B = blue; + } + static clone(color3: Color3) { + return new Color3(color3.R, color3.G, color3.B); + } + static fromRGB(red: number, green: number, blue: number) { + return new Color3(red / 255, green / 255, blue / 255); + } + static fromHex(hex: string) { + // @ts-ignore + const hexSplit: [number, number, number] = ( + hex.match(new RegExp(`[0-9a-f]{1,${hex.length / 3}}`, "gi")) ?? [ + "0", + "0", + "0", + ] + ).map((x) => parseInt(x, 16) / 255); + return new Color3(...hexSplit); + } + static fromInt(int: number) { + return new Color3( + (int & 0xff0000) >> 16, + (int & 0x00ff00) >> 8, + int & 0x0000ff + ); + } + static assumeColor( + value: [number, number, number] | string | number, + rgb?: boolean + ) { + if (Color3.isColor(value)) { + if (Array.isArray(value)) + return rgb ? Color3.fromRGB(...value) : new Color3(...value); + else if (typeof value === "string") return Color3.fromHex(value); + else if (typeof value === "number") return Color3.fromInt(value); + } + throw new Error("Not a valid color type"); + } + static isColor( + value: [number, number, number] | string | number, + rgb?: boolean + ) { + return ( + (Array.isArray(value) && + value.length === 3 && + value.every((x) => typeof x === "number" && !isNaN(x))) || + (typeof value === "string" && !isNaN(parseInt(value, 16))) || + (typeof value === "number" && !isNaN(value)) + ); + } + + toHex() { + return this.toInt().toString(16).padStart(6, "0"); + } + toInt() { + return ( + (Math.round(this.R * 255) << 16) + + (Math.round(this.G * 255) << 8) + + Math.round(this.B * 255) + ); + } + toRGB(): [number, number, number] { + return [this.R * 255, this.G * 255, this.B * 255]; + } + multiply(mult: number) { + return new Color3(this.R * mult, this.G * mult, this.B * mult); + } + lighten(mult: number) { + return new Color3( + clamp(this.R + (mult / 100) * (1 - this.R), 0, 1), + clamp(this.G + (mult / 100) * (1 - this.G), 0, 1), + clamp(this.B + (mult / 100) * (1 - this.B), 0, 1) + ); + } + darken(mult: number) { + return new Color3( + clamp(this.R - (mult / 100) * this.R, 0, 1), + clamp(this.G - (mult / 100) * this.G, 0, 1), + clamp(this.B - (mult / 100) * this.B, 0, 1) + ); + } +} diff --git a/src/utility/fonts.ts b/src/utility/fonts.ts new file mode 100644 index 0000000..5faba9f --- /dev/null +++ b/src/utility/fonts.ts @@ -0,0 +1,19 @@ +import { Lexend_Deca } from "next/font/google"; +import Renogare from "next/font/local"; + +const lexend_deca = Lexend_Deca({ + subsets: ["latin"], + variable: "--font-Lexend-Deca", +}); +const lexend_deca_backup = Lexend_Deca({ + // some dumb error + subsets: ["latin"], + variable: "--font-Lexend-Deca", +}); +const renogare = Renogare({ + src: "./../../public/fonts/Renogare/Renogare.woff2", + variable: "--font-Renogare", +}); + +const fonts = `${lexend_deca.variable} ${lexend_deca_backup.variable} ${renogare.variable}`; +export default fonts;