From 6b068ccd9156de8515203d0000c3a2a8ecb9c5fb Mon Sep 17 00:00:00 2001 From: Stanisław Zagórowski Date: Fri, 12 Jan 2024 23:24:47 +0100 Subject: luax: just reluax --- flake.lock | 60 - flake.nix | 18 - front.nix | 20 - front/.gitignore | 24 - front/default.nix | 17 - front/index.html | 27 - front/node-env.nix | 689 ------ front/node-packages.nix | 2591 -------------------- front/package.json | 32 - front/pnpm-lock.yaml | 1488 ----------- front/public/CNAME | 1 - .../assets/games/bumbling-builders/screenshot1.png | Bin 58058 -> 0 bytes .../assets/games/bumbling-builders/screenshot2.png | Bin 99514 -> 0 bytes .../assets/games/bumbling-builders/screenshot3.png | Bin 44823 -> 0 bytes .../assets/games/bumbling-builders/thumbnail.png | Bin 468975 -> 0 bytes front/public/assets/games/dicemask/thumbnail.png | Bin 5538916 -> 0 bytes .../public/assets/games/greachers/screenshot1.png | Bin 3649 -> 0 bytes .../public/assets/games/greachers/screenshot2.png | Bin 3678 -> 0 bytes .../public/assets/games/greachers/screenshot3.png | Bin 4072 -> 0 bytes front/public/assets/games/greachers/title.png | Bin 4920 -> 0 bytes front/public/assets/games/loud/screenshot1.jpg | Bin 89887 -> 0 bytes front/public/assets/games/loud/screenshot2.jpg | Bin 99070 -> 0 bytes front/public/assets/games/loud/screenshot3.jpg | Bin 106199 -> 0 bytes front/public/assets/games/loud/thumbnail.jpg | Bin 47291 -> 0 bytes front/public/assets/games/miro/screenshot1.png | Bin 16082 -> 0 bytes front/public/assets/games/miro/screenshot2.png | Bin 16874 -> 0 bytes front/public/assets/games/miro/screenshot3.png | Bin 18886 -> 0 bytes front/public/assets/games/miro/thumbnail.png | Bin 6602 -> 0 bytes .../assets/games/mr-final-boss/screenshot1.png | Bin 1450742 -> 0 bytes .../assets/games/mr-final-boss/screenshot2.png | Bin 1989016 -> 0 bytes .../assets/games/mr-final-boss/screenshot3.png | Bin 1439568 -> 0 bytes .../assets/games/mr-final-boss/screenshot4.png | Bin 2193361 -> 0 bytes .../assets/games/mr-final-boss/thumbnail.png | Bin 41705 -> 0 bytes .../assets/games/riff-n-rage/screenshot1.png | Bin 10890 -> 0 bytes .../assets/games/riff-n-rage/screenshot2.png | Bin 10833 -> 0 bytes .../public/assets/games/riff-n-rage/thumbnail.png | Bin 3685 -> 0 bytes .../assets/games/survive-the-temple/cover.png | Bin 7797 -> 0 bytes .../assets/games/survive-the-temple/screenshot.png | Bin 156733 -> 0 bytes .../public/assets/games/thermal-trail/gameart.png | Bin 34983 -> 0 bytes .../assets/games/thermal-trail/screenshot1.png | Bin 59904 -> 0 bytes .../assets/games/thermal-trail/screenshot2.png | Bin 50655 -> 0 bytes .../assets/games/thermal-trail/screenshot3.png | Bin 59175 -> 0 bytes .../assets/games/thermal-trail/screenshot4.png | Bin 61715 -> 0 bytes .../assets/games/thermal-trail/thumbnail.png | Bin 34372 -> 0 bytes .../assets/games/third-party/screenshot1.jpg | Bin 27953 -> 0 bytes .../assets/games/third-party/screenshot2.jpg | Bin 75854 -> 0 bytes .../assets/games/third-party/screenshot3.jpg | Bin 86290 -> 0 bytes .../assets/games/third-party/screenshot4.jpg | Bin 115453 -> 0 bytes .../public/assets/games/third-party/thumbnail.png | Bin 38018 -> 0 bytes front/public/assets/games/wuzmag/screenshot1.png | Bin 20205 -> 0 bytes front/public/assets/games/wuzmag/screenshot2.png | Bin 27941 -> 0 bytes front/public/assets/games/wuzmag/screenshot3.png | Bin 26136 -> 0 bytes front/public/assets/games/wuzmag/thumbnail.png | Bin 10256 -> 0 bytes .../public/assets/games/your-left/screenshot1.jpg | Bin 46052 -> 0 bytes .../public/assets/games/your-left/screenshot2.jpg | Bin 69916 -> 0 bytes .../public/assets/games/your-left/screenshot3.jpg | Bin 69533 -> 0 bytes front/public/assets/games/your-left/thumbnail.png | Bin 55977 -> 0 bytes front/public/assets/images/android.png | Bin 4572 -> 0 bytes front/public/assets/images/android.svg | 56 - front/public/assets/images/cpp.png | Bin 6630 -> 0 bytes front/public/assets/images/cpp.svg | 41 - front/public/assets/images/csharp.png | Bin 7481 -> 0 bytes front/public/assets/images/csharp.svg | 58 - front/public/assets/images/duckpfp.png | Bin 2602 -> 0 bytes front/public/assets/images/favicon.png | Bin 1608 -> 0 bytes front/public/assets/images/favicon.svg | 54 - front/public/assets/images/github.png | Bin 8133 -> 0 bytes front/public/assets/images/github.svg | 66 - front/public/assets/images/godot.png | Bin 7910 -> 0 bytes front/public/assets/images/godot.svg | 64 - front/public/assets/images/html5.png | Bin 4446 -> 0 bytes front/public/assets/images/html5.svg | 56 - front/public/assets/images/hyprland.png | Bin 6829 -> 0 bytes front/public/assets/images/hyprland.svg | 50 - front/public/assets/images/linux.png | Bin 3487 -> 0 bytes front/public/assets/images/linux.svg | 42 - front/public/assets/images/macos.png | Bin 2469 -> 0 bytes front/public/assets/images/macos.svg | 39 - front/public/assets/images/monogame.png | Bin 12087 -> 0 bytes front/public/assets/images/pfp.png | Bin 1074 -> 0 bytes front/public/assets/images/placeholder.png | Bin 9636 -> 0 bytes front/public/assets/images/playstation.png | Bin 5762 -> 0 bytes front/public/assets/images/playstation.svg | 61 - front/public/assets/images/switch.png | Bin 4736 -> 0 bytes front/public/assets/images/switch.svg | 43 - front/public/assets/images/symbols.png | Bin 431 -> 0 bytes front/public/assets/images/thumbnail.png | Bin 119178 -> 0 bytes front/public/assets/images/thumbnail.svg | 70 - front/public/assets/images/thumbnail.zvg | 67 - front/public/assets/images/unity.png | Bin 8893 -> 0 bytes front/public/assets/images/unity.svg | 56 - front/public/assets/images/windows.png | Bin 2446 -> 0 bytes front/public/assets/images/windows.svg | 56 - front/public/assets/images/xamarin.png | Bin 15826 -> 0 bytes front/public/assets/images/xbox.png | Bin 8038 -> 0 bytes front/public/assets/images/xbox.svg | 74 - front/public/assets/loose/github-yellow.svg | 66 - front/public/assets/loose/itch-yellow.svg | 55 - front/public/assets/loose/twitter-yellow.svg | 91 - front/public/assets/loose/web-yellow.svg | 58 - front/public/assets/projects/hyprload/logo.png | Bin 31147 -> 0 bytes front/public/assets/projects/spirit-mod/demo1.gif | Bin 1075246 -> 0 bytes front/public/assets/projects/spirit-mod/demo2.gif | Bin 4380429 -> 0 bytes .../assets/projects/spirit-mod/thumbnail.png | Bin 73781 -> 0 bytes .../assets/projects/spirit-mod/thumbnail.webp | Bin 266196 -> 0 bytes front/src/app.css | 161 -- front/src/app.tsx | 37 - front/src/components/animated_bg.tsx | 126 - front/src/components/carousel.css | 68 - front/src/components/carousel.tsx | 31 - front/src/components/navbar-item.tsx | 8 - front/src/components/navbar.css | 278 --- front/src/components/navbar.tsx | 20 - front/src/components/project.css | 137 -- front/src/components/project.tsx | 98 - front/src/data/games.json | 229 -- front/src/data/projects.json | 53 - front/src/index.css | 108 - front/src/main.tsx | 5 - front/src/pages/contact.css | 22 - front/src/pages/contact.tsx | 34 - front/src/pages/games.css | 0 front/src/pages/games.tsx | 27 - front/src/pages/home.tsx | 29 - front/src/pages/projects.tsx | 27 - front/src/vite-env.d.ts | 1 - front/tsconfig.json | 32 - front/tsconfig.node.json | 10 - front/vite.config.ts | 10 - luax/common.luax | 16 +- luax/pages/contact.luax | 4 +- luax/public/app.css | 171 -- luax/public/assets | 1 - luax/public/assets/app.css | 171 ++ luax/public/assets/carousel.css | 69 + luax/public/assets/contact.css | 22 + .../assets/games/bumbling-builders/screenshot1.png | Bin 0 -> 58058 bytes .../assets/games/bumbling-builders/screenshot2.png | Bin 0 -> 99514 bytes .../assets/games/bumbling-builders/screenshot3.png | Bin 0 -> 44823 bytes .../assets/games/bumbling-builders/thumbnail.png | Bin 0 -> 468975 bytes luax/public/assets/games/dicemask/thumbnail.png | Bin 0 -> 5538916 bytes luax/public/assets/games/greachers/screenshot1.png | Bin 0 -> 3649 bytes luax/public/assets/games/greachers/screenshot2.png | Bin 0 -> 3678 bytes luax/public/assets/games/greachers/screenshot3.png | Bin 0 -> 4072 bytes luax/public/assets/games/greachers/title.png | Bin 0 -> 4920 bytes luax/public/assets/games/loud/screenshot1.jpg | Bin 0 -> 89887 bytes luax/public/assets/games/loud/screenshot2.jpg | Bin 0 -> 99070 bytes luax/public/assets/games/loud/screenshot3.jpg | Bin 0 -> 106199 bytes luax/public/assets/games/loud/thumbnail.jpg | Bin 0 -> 47291 bytes luax/public/assets/games/miro/screenshot1.png | Bin 0 -> 16082 bytes luax/public/assets/games/miro/screenshot2.png | Bin 0 -> 16874 bytes luax/public/assets/games/miro/screenshot3.png | Bin 0 -> 18886 bytes luax/public/assets/games/miro/thumbnail.png | Bin 0 -> 6602 bytes .../assets/games/mr-final-boss/screenshot1.png | Bin 0 -> 1450742 bytes .../assets/games/mr-final-boss/screenshot2.png | Bin 0 -> 1989016 bytes .../assets/games/mr-final-boss/screenshot3.png | Bin 0 -> 1439568 bytes .../assets/games/mr-final-boss/screenshot4.png | Bin 0 -> 2193361 bytes .../assets/games/mr-final-boss/thumbnail.png | Bin 0 -> 41705 bytes .../assets/games/riff-n-rage/screenshot1.png | Bin 0 -> 10890 bytes .../assets/games/riff-n-rage/screenshot2.png | Bin 0 -> 10833 bytes luax/public/assets/games/riff-n-rage/thumbnail.png | Bin 0 -> 3685 bytes .../assets/games/survive-the-temple/cover.png | Bin 0 -> 7797 bytes .../assets/games/survive-the-temple/screenshot.png | Bin 0 -> 156733 bytes luax/public/assets/games/thermal-trail/gameart.png | Bin 0 -> 34983 bytes .../assets/games/thermal-trail/screenshot1.png | Bin 0 -> 59904 bytes .../assets/games/thermal-trail/screenshot2.png | Bin 0 -> 50655 bytes .../assets/games/thermal-trail/screenshot3.png | Bin 0 -> 59175 bytes .../assets/games/thermal-trail/screenshot4.png | Bin 0 -> 61715 bytes .../assets/games/thermal-trail/thumbnail.png | Bin 0 -> 34372 bytes .../assets/games/third-party/screenshot1.jpg | Bin 0 -> 27953 bytes .../assets/games/third-party/screenshot2.jpg | Bin 0 -> 75854 bytes .../assets/games/third-party/screenshot3.jpg | Bin 0 -> 86290 bytes .../assets/games/third-party/screenshot4.jpg | Bin 0 -> 115453 bytes luax/public/assets/games/third-party/thumbnail.png | Bin 0 -> 38018 bytes luax/public/assets/games/wuzmag/screenshot1.png | Bin 0 -> 20205 bytes luax/public/assets/games/wuzmag/screenshot2.png | Bin 0 -> 27941 bytes luax/public/assets/games/wuzmag/screenshot3.png | Bin 0 -> 26136 bytes luax/public/assets/games/wuzmag/thumbnail.png | Bin 0 -> 10256 bytes luax/public/assets/games/your-left/screenshot1.jpg | Bin 0 -> 46052 bytes luax/public/assets/games/your-left/screenshot2.jpg | Bin 0 -> 69916 bytes luax/public/assets/games/your-left/screenshot3.jpg | Bin 0 -> 69533 bytes luax/public/assets/games/your-left/thumbnail.png | Bin 0 -> 55977 bytes luax/public/assets/images/android.png | Bin 0 -> 4572 bytes luax/public/assets/images/android.svg | 56 + luax/public/assets/images/cpp.png | Bin 0 -> 6630 bytes luax/public/assets/images/cpp.svg | 41 + luax/public/assets/images/csharp.png | Bin 0 -> 7481 bytes luax/public/assets/images/csharp.svg | 58 + luax/public/assets/images/duckpfp.png | Bin 0 -> 2602 bytes luax/public/assets/images/favicon.png | Bin 0 -> 1608 bytes luax/public/assets/images/favicon.svg | 54 + luax/public/assets/images/github.png | Bin 0 -> 8133 bytes luax/public/assets/images/github.svg | 66 + luax/public/assets/images/godot.png | Bin 0 -> 7910 bytes luax/public/assets/images/godot.svg | 64 + luax/public/assets/images/html5.png | Bin 0 -> 4446 bytes luax/public/assets/images/html5.svg | 56 + luax/public/assets/images/hyprland.png | Bin 0 -> 6829 bytes luax/public/assets/images/hyprland.svg | 50 + luax/public/assets/images/linux.png | Bin 0 -> 3487 bytes luax/public/assets/images/linux.svg | 42 + luax/public/assets/images/macos.png | Bin 0 -> 2469 bytes luax/public/assets/images/macos.svg | 39 + luax/public/assets/images/monogame.png | Bin 0 -> 12087 bytes luax/public/assets/images/pfp.png | Bin 0 -> 1074 bytes luax/public/assets/images/placeholder.png | Bin 0 -> 9636 bytes luax/public/assets/images/playstation.png | Bin 0 -> 5762 bytes luax/public/assets/images/playstation.svg | 61 + luax/public/assets/images/switch.png | Bin 0 -> 4736 bytes luax/public/assets/images/switch.svg | 43 + luax/public/assets/images/symbols.png | Bin 0 -> 431 bytes luax/public/assets/images/thumbnail.png | Bin 0 -> 119178 bytes luax/public/assets/images/thumbnail.svg | 70 + luax/public/assets/images/thumbnail.zvg | 67 + luax/public/assets/images/unity.png | Bin 0 -> 8893 bytes luax/public/assets/images/unity.svg | 56 + luax/public/assets/images/windows.png | Bin 0 -> 2446 bytes luax/public/assets/images/windows.svg | 56 + luax/public/assets/images/xamarin.png | Bin 0 -> 15826 bytes luax/public/assets/images/xbox.png | Bin 0 -> 8038 bytes luax/public/assets/images/xbox.svg | 74 + luax/public/assets/index.css | 108 + luax/public/assets/index.js | 91 + luax/public/assets/loose/github-yellow.svg | 66 + luax/public/assets/loose/itch-yellow.svg | 55 + luax/public/assets/loose/twitter-yellow.svg | 91 + luax/public/assets/loose/web-yellow.svg | 58 + luax/public/assets/navbar.css | 278 +++ luax/public/assets/project.css | 126 + luax/public/assets/projects/hyprload/logo.png | Bin 0 -> 31147 bytes luax/public/assets/projects/spirit-mod/demo1.gif | Bin 0 -> 1075246 bytes luax/public/assets/projects/spirit-mod/demo2.gif | Bin 0 -> 4380429 bytes .../assets/projects/spirit-mod/thumbnail.png | Bin 0 -> 73781 bytes .../assets/projects/spirit-mod/thumbnail.webp | Bin 0 -> 266196 bytes luax/public/carousel.css | 69 - luax/public/contact.css | 22 - luax/public/index.css | 108 - luax/public/index.js | 91 - luax/public/navbar.css | 278 --- luax/public/project.css | 126 - 240 files changed, 2098 insertions(+), 8617 deletions(-) delete mode 100644 flake.lock delete mode 100644 flake.nix delete mode 100644 front.nix delete mode 100644 front/.gitignore delete mode 100644 front/default.nix delete mode 100644 front/index.html delete mode 100644 front/node-env.nix delete mode 100644 front/node-packages.nix delete mode 100644 front/package.json delete mode 100644 front/pnpm-lock.yaml delete mode 100644 front/public/CNAME delete mode 100644 front/public/assets/games/bumbling-builders/screenshot1.png delete mode 100644 front/public/assets/games/bumbling-builders/screenshot2.png delete mode 100644 front/public/assets/games/bumbling-builders/screenshot3.png delete mode 100644 front/public/assets/games/bumbling-builders/thumbnail.png delete mode 100644 front/public/assets/games/dicemask/thumbnail.png delete mode 100644 front/public/assets/games/greachers/screenshot1.png delete mode 100644 front/public/assets/games/greachers/screenshot2.png delete mode 100644 front/public/assets/games/greachers/screenshot3.png delete mode 100644 front/public/assets/games/greachers/title.png delete mode 100644 front/public/assets/games/loud/screenshot1.jpg delete mode 100644 front/public/assets/games/loud/screenshot2.jpg delete mode 100644 front/public/assets/games/loud/screenshot3.jpg delete mode 100644 front/public/assets/games/loud/thumbnail.jpg delete mode 100644 front/public/assets/games/miro/screenshot1.png delete mode 100644 front/public/assets/games/miro/screenshot2.png delete mode 100644 front/public/assets/games/miro/screenshot3.png delete mode 100644 front/public/assets/games/miro/thumbnail.png delete mode 100644 front/public/assets/games/mr-final-boss/screenshot1.png delete mode 100644 front/public/assets/games/mr-final-boss/screenshot2.png delete mode 100644 front/public/assets/games/mr-final-boss/screenshot3.png delete mode 100644 front/public/assets/games/mr-final-boss/screenshot4.png delete mode 100644 front/public/assets/games/mr-final-boss/thumbnail.png delete mode 100644 front/public/assets/games/riff-n-rage/screenshot1.png delete mode 100644 front/public/assets/games/riff-n-rage/screenshot2.png delete mode 100644 front/public/assets/games/riff-n-rage/thumbnail.png delete mode 100644 front/public/assets/games/survive-the-temple/cover.png delete mode 100644 front/public/assets/games/survive-the-temple/screenshot.png delete mode 100644 front/public/assets/games/thermal-trail/gameart.png delete mode 100644 front/public/assets/games/thermal-trail/screenshot1.png delete mode 100644 front/public/assets/games/thermal-trail/screenshot2.png delete mode 100644 front/public/assets/games/thermal-trail/screenshot3.png delete mode 100644 front/public/assets/games/thermal-trail/screenshot4.png delete mode 100644 front/public/assets/games/thermal-trail/thumbnail.png delete mode 100644 front/public/assets/games/third-party/screenshot1.jpg delete mode 100644 front/public/assets/games/third-party/screenshot2.jpg delete mode 100644 front/public/assets/games/third-party/screenshot3.jpg delete mode 100644 front/public/assets/games/third-party/screenshot4.jpg delete mode 100644 front/public/assets/games/third-party/thumbnail.png delete mode 100644 front/public/assets/games/wuzmag/screenshot1.png delete mode 100644 front/public/assets/games/wuzmag/screenshot2.png delete mode 100644 front/public/assets/games/wuzmag/screenshot3.png delete mode 100644 front/public/assets/games/wuzmag/thumbnail.png delete mode 100644 front/public/assets/games/your-left/screenshot1.jpg delete mode 100644 front/public/assets/games/your-left/screenshot2.jpg delete mode 100644 front/public/assets/games/your-left/screenshot3.jpg delete mode 100644 front/public/assets/games/your-left/thumbnail.png delete mode 100644 front/public/assets/images/android.png delete mode 100644 front/public/assets/images/android.svg delete mode 100644 front/public/assets/images/cpp.png delete mode 100644 front/public/assets/images/cpp.svg delete mode 100644 front/public/assets/images/csharp.png delete mode 100644 front/public/assets/images/csharp.svg delete mode 100644 front/public/assets/images/duckpfp.png delete mode 100644 front/public/assets/images/favicon.png delete mode 100644 front/public/assets/images/favicon.svg delete mode 100644 front/public/assets/images/github.png delete mode 100644 front/public/assets/images/github.svg delete mode 100644 front/public/assets/images/godot.png delete mode 100644 front/public/assets/images/godot.svg delete mode 100644 front/public/assets/images/html5.png delete mode 100644 front/public/assets/images/html5.svg delete mode 100644 front/public/assets/images/hyprland.png delete mode 100644 front/public/assets/images/hyprland.svg delete mode 100644 front/public/assets/images/linux.png delete mode 100644 front/public/assets/images/linux.svg delete mode 100644 front/public/assets/images/macos.png delete mode 100644 front/public/assets/images/macos.svg delete mode 100644 front/public/assets/images/monogame.png delete mode 100644 front/public/assets/images/pfp.png delete mode 100644 front/public/assets/images/placeholder.png delete mode 100644 front/public/assets/images/playstation.png delete mode 100644 front/public/assets/images/playstation.svg delete mode 100644 front/public/assets/images/switch.png delete mode 100644 front/public/assets/images/switch.svg delete mode 100644 front/public/assets/images/symbols.png delete mode 100644 front/public/assets/images/thumbnail.png delete mode 100644 front/public/assets/images/thumbnail.svg delete mode 100644 front/public/assets/images/thumbnail.zvg delete mode 100644 front/public/assets/images/unity.png delete mode 100644 front/public/assets/images/unity.svg delete mode 100644 front/public/assets/images/windows.png delete mode 100644 front/public/assets/images/windows.svg delete mode 100644 front/public/assets/images/xamarin.png delete mode 100644 front/public/assets/images/xbox.png delete mode 100644 front/public/assets/images/xbox.svg delete mode 100644 front/public/assets/loose/github-yellow.svg delete mode 100644 front/public/assets/loose/itch-yellow.svg delete mode 100644 front/public/assets/loose/twitter-yellow.svg delete mode 100644 front/public/assets/loose/web-yellow.svg delete mode 100644 front/public/assets/projects/hyprload/logo.png delete mode 100644 front/public/assets/projects/spirit-mod/demo1.gif delete mode 100644 front/public/assets/projects/spirit-mod/demo2.gif delete mode 100644 front/public/assets/projects/spirit-mod/thumbnail.png delete mode 100644 front/public/assets/projects/spirit-mod/thumbnail.webp delete mode 100644 front/src/app.css delete mode 100644 front/src/app.tsx delete mode 100644 front/src/components/animated_bg.tsx delete mode 100644 front/src/components/carousel.css delete mode 100644 front/src/components/carousel.tsx delete mode 100644 front/src/components/navbar-item.tsx delete mode 100644 front/src/components/navbar.css delete mode 100644 front/src/components/navbar.tsx delete mode 100644 front/src/components/project.css delete mode 100644 front/src/components/project.tsx delete mode 100644 front/src/data/games.json delete mode 100644 front/src/data/projects.json delete mode 100644 front/src/index.css delete mode 100644 front/src/main.tsx delete mode 100644 front/src/pages/contact.css delete mode 100644 front/src/pages/contact.tsx delete mode 100644 front/src/pages/games.css delete mode 100644 front/src/pages/games.tsx delete mode 100644 front/src/pages/home.tsx delete mode 100644 front/src/pages/projects.tsx delete mode 100644 front/src/vite-env.d.ts delete mode 100644 front/tsconfig.json delete mode 100644 front/tsconfig.node.json delete mode 100644 front/vite.config.ts delete mode 100644 luax/public/app.css delete mode 120000 luax/public/assets create mode 100644 luax/public/assets/app.css create mode 100644 luax/public/assets/carousel.css create mode 100644 luax/public/assets/contact.css create mode 100644 luax/public/assets/games/bumbling-builders/screenshot1.png create mode 100644 luax/public/assets/games/bumbling-builders/screenshot2.png create mode 100644 luax/public/assets/games/bumbling-builders/screenshot3.png create mode 100644 luax/public/assets/games/bumbling-builders/thumbnail.png create mode 100644 luax/public/assets/games/dicemask/thumbnail.png create mode 100644 luax/public/assets/games/greachers/screenshot1.png create mode 100644 luax/public/assets/games/greachers/screenshot2.png create mode 100644 luax/public/assets/games/greachers/screenshot3.png create mode 100644 luax/public/assets/games/greachers/title.png create mode 100644 luax/public/assets/games/loud/screenshot1.jpg create mode 100644 luax/public/assets/games/loud/screenshot2.jpg create mode 100644 luax/public/assets/games/loud/screenshot3.jpg create mode 100644 luax/public/assets/games/loud/thumbnail.jpg create mode 100644 luax/public/assets/games/miro/screenshot1.png create mode 100644 luax/public/assets/games/miro/screenshot2.png create mode 100644 luax/public/assets/games/miro/screenshot3.png create mode 100644 luax/public/assets/games/miro/thumbnail.png create mode 100644 luax/public/assets/games/mr-final-boss/screenshot1.png create mode 100644 luax/public/assets/games/mr-final-boss/screenshot2.png create mode 100644 luax/public/assets/games/mr-final-boss/screenshot3.png create mode 100644 luax/public/assets/games/mr-final-boss/screenshot4.png create mode 100644 luax/public/assets/games/mr-final-boss/thumbnail.png create mode 100644 luax/public/assets/games/riff-n-rage/screenshot1.png create mode 100644 luax/public/assets/games/riff-n-rage/screenshot2.png create mode 100644 luax/public/assets/games/riff-n-rage/thumbnail.png create mode 100644 luax/public/assets/games/survive-the-temple/cover.png create mode 100644 luax/public/assets/games/survive-the-temple/screenshot.png create mode 100644 luax/public/assets/games/thermal-trail/gameart.png create mode 100644 luax/public/assets/games/thermal-trail/screenshot1.png create mode 100644 luax/public/assets/games/thermal-trail/screenshot2.png create mode 100644 luax/public/assets/games/thermal-trail/screenshot3.png create mode 100644 luax/public/assets/games/thermal-trail/screenshot4.png create mode 100644 luax/public/assets/games/thermal-trail/thumbnail.png create mode 100644 luax/public/assets/games/third-party/screenshot1.jpg create mode 100644 luax/public/assets/games/third-party/screenshot2.jpg create mode 100644 luax/public/assets/games/third-party/screenshot3.jpg create mode 100644 luax/public/assets/games/third-party/screenshot4.jpg create mode 100644 luax/public/assets/games/third-party/thumbnail.png create mode 100644 luax/public/assets/games/wuzmag/screenshot1.png create mode 100644 luax/public/assets/games/wuzmag/screenshot2.png create mode 100644 luax/public/assets/games/wuzmag/screenshot3.png create mode 100644 luax/public/assets/games/wuzmag/thumbnail.png create mode 100644 luax/public/assets/games/your-left/screenshot1.jpg create mode 100644 luax/public/assets/games/your-left/screenshot2.jpg create mode 100644 luax/public/assets/games/your-left/screenshot3.jpg create mode 100644 luax/public/assets/games/your-left/thumbnail.png create mode 100644 luax/public/assets/images/android.png create mode 100644 luax/public/assets/images/android.svg create mode 100644 luax/public/assets/images/cpp.png create mode 100644 luax/public/assets/images/cpp.svg create mode 100644 luax/public/assets/images/csharp.png create mode 100644 luax/public/assets/images/csharp.svg create mode 100644 luax/public/assets/images/duckpfp.png create mode 100644 luax/public/assets/images/favicon.png create mode 100644 luax/public/assets/images/favicon.svg create mode 100644 luax/public/assets/images/github.png create mode 100644 luax/public/assets/images/github.svg create mode 100644 luax/public/assets/images/godot.png create mode 100644 luax/public/assets/images/godot.svg create mode 100644 luax/public/assets/images/html5.png create mode 100644 luax/public/assets/images/html5.svg create mode 100644 luax/public/assets/images/hyprland.png create mode 100644 luax/public/assets/images/hyprland.svg create mode 100644 luax/public/assets/images/linux.png create mode 100644 luax/public/assets/images/linux.svg create mode 100644 luax/public/assets/images/macos.png create mode 100644 luax/public/assets/images/macos.svg create mode 100644 luax/public/assets/images/monogame.png create mode 100644 luax/public/assets/images/pfp.png create mode 100644 luax/public/assets/images/placeholder.png create mode 100644 luax/public/assets/images/playstation.png create mode 100644 luax/public/assets/images/playstation.svg create mode 100644 luax/public/assets/images/switch.png create mode 100644 luax/public/assets/images/switch.svg create mode 100644 luax/public/assets/images/symbols.png create mode 100644 luax/public/assets/images/thumbnail.png create mode 100644 luax/public/assets/images/thumbnail.svg create mode 100644 luax/public/assets/images/thumbnail.zvg create mode 100644 luax/public/assets/images/unity.png create mode 100644 luax/public/assets/images/unity.svg create mode 100644 luax/public/assets/images/windows.png create mode 100644 luax/public/assets/images/windows.svg create mode 100644 luax/public/assets/images/xamarin.png create mode 100644 luax/public/assets/images/xbox.png create mode 100644 luax/public/assets/images/xbox.svg create mode 100644 luax/public/assets/index.css create mode 100644 luax/public/assets/index.js create mode 100644 luax/public/assets/loose/github-yellow.svg create mode 100644 luax/public/assets/loose/itch-yellow.svg create mode 100644 luax/public/assets/loose/twitter-yellow.svg create mode 100644 luax/public/assets/loose/web-yellow.svg create mode 100644 luax/public/assets/navbar.css create mode 100644 luax/public/assets/project.css create mode 100644 luax/public/assets/projects/hyprload/logo.png create mode 100644 luax/public/assets/projects/spirit-mod/demo1.gif create mode 100644 luax/public/assets/projects/spirit-mod/demo2.gif create mode 100644 luax/public/assets/projects/spirit-mod/thumbnail.png create mode 100644 luax/public/assets/projects/spirit-mod/thumbnail.webp delete mode 100644 luax/public/carousel.css delete mode 100644 luax/public/contact.css delete mode 100644 luax/public/index.css delete mode 100644 luax/public/index.js delete mode 100644 luax/public/navbar.css delete mode 100644 luax/public/project.css diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 1e7d448..0000000 --- a/flake.lock +++ /dev/null @@ -1,60 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1703992652, - "narHash": "sha256-C0o8AUyu8xYgJ36kOxJfXIroy9if/G6aJbNOpA5W0+M=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "32f63574c85fbc80e4ba1fbb932cde9619bad25e", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-23.11", - "type": "indirect" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index f2babcf..0000000 --- a/flake.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - description = "All the components of duckonaut.dev"; - inputs = { - nixpkgs.url = "nixpkgs/nixos-23.11"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: - let - pkgs = nixpkgs.legacyPackages.${system}; - in - rec { - packages."duckonaut.dev-front" = import ./front.nix { pkgs = pkgs; }; - packages.default = packages."duckonaut.dev-front"; - } - ); -} diff --git a/front.nix b/front.nix deleted file mode 100644 index 62fab40..0000000 --- a/front.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ pkgs ? import {} }: - let - nodeDependencies = (pkgs.callPackage ./front/default.nix {}).nodeDependencies; - stdenv = pkgs.stdenv; - nodejs = pkgs.nodejs; - tsc = pkgs.typescript; - in - - stdenv.mkDerivation { - name = "duckonaut.dev-front"; - src = ./front; - buildInputs = [nodejs tsc]; - buildPhase = '' - ln -s ${nodeDependencies}/lib/node_modules ./node_modules - export PATH="${nodeDependencies}/bin:$PATH" - - npm run build - cp -r dist $out/ - ''; - } diff --git a/front/.gitignore b/front/.gitignore deleted file mode 100644 index a547bf3..0000000 --- a/front/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/front/default.nix b/front/default.nix deleted file mode 100644 index 425ad0b..0000000 --- a/front/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -# This file has been generated by node2nix 1.11.1. Do not edit! - -{pkgs ? import { - inherit system; - }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs"}: - -let - nodeEnv = import ./node-env.nix { - inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; - inherit pkgs nodejs; - libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; - }; -in -import ./node-packages.nix { - inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; - inherit nodeEnv; -} diff --git a/front/index.html b/front/index.html deleted file mode 100644 index f1ed751..0000000 --- a/front/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - duckonaut.dev - - - -
- - - - diff --git a/front/node-env.nix b/front/node-env.nix deleted file mode 100644 index bc1e366..0000000 --- a/front/node-env.nix +++ /dev/null @@ -1,689 +0,0 @@ -# This file originates from node2nix - -{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}: - -let - # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master - utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux; - - python = if nodejs ? python then nodejs.python else python2; - - # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise - tarWrapper = runCommand "tarWrapper" {} '' - mkdir -p $out/bin - - cat > $out/bin/tar <> $out/nix-support/hydra-build-products - ''; - }; - - # Common shell logic - installPackage = writeShellScript "install-package" '' - installPackage() { - local packageName=$1 src=$2 - - local strippedName - - local DIR=$PWD - cd $TMPDIR - - unpackFile $src - - # Make the base dir in which the target dependency resides first - mkdir -p "$(dirname "$DIR/$packageName")" - - if [ -f "$src" ] - then - # Figure out what directory has been unpacked - packageDir="$(find . -maxdepth 1 -type d | tail -1)" - - # Restore write permissions to make building work - find "$packageDir" -type d -exec chmod u+x {} \; - chmod -R u+w "$packageDir" - - # Move the extracted tarball into the output folder - mv "$packageDir" "$DIR/$packageName" - elif [ -d "$src" ] - then - # Get a stripped name (without hash) of the source directory. - # On old nixpkgs it's already set internally. - if [ -z "$strippedName" ] - then - strippedName="$(stripHash $src)" - fi - - # Restore write permissions to make building work - chmod -R u+w "$strippedName" - - # Move the extracted directory into the output folder - mv "$strippedName" "$DIR/$packageName" - fi - - # Change to the package directory to install dependencies - cd "$DIR/$packageName" - } - ''; - - # Bundle the dependencies of the package - # - # Only include dependencies if they don't exist. They may also be bundled in the package. - includeDependencies = {dependencies}: - lib.optionalString (dependencies != []) ( - '' - mkdir -p node_modules - cd node_modules - '' - + (lib.concatMapStrings (dependency: - '' - if [ ! -e "${dependency.packageName}" ]; then - ${composePackage dependency} - fi - '' - ) dependencies) - + '' - cd .. - '' - ); - - # Recursively composes the dependencies of a package - composePackage = { name, packageName, src, dependencies ? [], ... }@args: - builtins.addErrorContext "while evaluating node package '${packageName}'" '' - installPackage "${packageName}" "${src}" - ${includeDependencies { inherit dependencies; }} - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - ''; - - pinpointDependencies = {dependencies, production}: - let - pinpointDependenciesFromPackageJSON = writeTextFile { - name = "pinpointDependencies.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - function resolveDependencyVersion(location, name) { - if(location == process.env['NIX_STORE']) { - return null; - } else { - var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); - - if(fs.existsSync(dependencyPackageJSON)) { - var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); - - if(dependencyPackageObj.name == name) { - return dependencyPackageObj.version; - } - } else { - return resolveDependencyVersion(path.resolve(location, ".."), name); - } - } - } - - function replaceDependencies(dependencies) { - if(typeof dependencies == "object" && dependencies !== null) { - for(var dependency in dependencies) { - var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); - - if(resolvedVersion === null) { - process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); - } else { - dependencies[dependency] = resolvedVersion; - } - } - } - } - - /* Read the package.json configuration */ - var packageObj = JSON.parse(fs.readFileSync('./package.json')); - - /* Pinpoint all dependencies */ - replaceDependencies(packageObj.dependencies); - if(process.argv[2] == "development") { - replaceDependencies(packageObj.devDependencies); - } - else { - packageObj.devDependencies = {}; - } - replaceDependencies(packageObj.optionalDependencies); - replaceDependencies(packageObj.peerDependencies); - - /* Write the fixed package.json file */ - fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); - ''; - }; - in - '' - node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} - - ${lib.optionalString (dependencies != []) - '' - if [ -d node_modules ] - then - cd node_modules - ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} - cd .. - fi - ''} - ''; - - # Recursively traverses all dependencies of a package and pinpoints all - # dependencies in the package.json file to the versions that are actually - # being used. - - pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: - '' - if [ -d "${packageName}" ] - then - cd "${packageName}" - ${pinpointDependencies { inherit dependencies production; }} - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - fi - ''; - - # Extract the Node.js source code which is used to compile packages with - # native bindings - nodeSources = runCommand "node-sources" {} '' - tar --no-same-owner --no-same-permissions -xf ${nodejs.src} - mv node-* $out - ''; - - # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) - addIntegrityFieldsScript = writeTextFile { - name = "addintegrityfields.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - function augmentDependencies(baseDir, dependencies) { - for(var dependencyName in dependencies) { - var dependency = dependencies[dependencyName]; - - // Open package.json and augment metadata fields - var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); - var packageJSONPath = path.join(packageJSONDir, "package.json"); - - if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored - console.log("Adding metadata fields to: "+packageJSONPath); - var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); - - if(dependency.integrity) { - packageObj["_integrity"] = dependency.integrity; - } else { - packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads. - } - - if(dependency.resolved) { - packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided - } else { - packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. - } - - if(dependency.from !== undefined) { // Adopt from property if one has been provided - packageObj["_from"] = dependency.from; - } - - fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); - } - - // Augment transitive dependencies - if(dependency.dependencies !== undefined) { - augmentDependencies(packageJSONDir, dependency.dependencies); - } - } - } - - if(fs.existsSync("./package-lock.json")) { - var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); - - if(![1, 2].includes(packageLock.lockfileVersion)) { - process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); - process.exit(1); - } - - if(packageLock.dependencies !== undefined) { - augmentDependencies(".", packageLock.dependencies); - } - } - ''; - }; - - # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes - reconstructPackageLock = writeTextFile { - name = "reconstructpackagelock.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - var packageObj = JSON.parse(fs.readFileSync("package.json")); - - var lockObj = { - name: packageObj.name, - version: packageObj.version, - lockfileVersion: 2, - requires: true, - packages: { - "": { - name: packageObj.name, - version: packageObj.version, - license: packageObj.license, - bin: packageObj.bin, - dependencies: packageObj.dependencies, - engines: packageObj.engines, - optionalDependencies: packageObj.optionalDependencies - } - }, - dependencies: {} - }; - - function augmentPackageJSON(filePath, packages, dependencies) { - var packageJSON = path.join(filePath, "package.json"); - if(fs.existsSync(packageJSON)) { - var packageObj = JSON.parse(fs.readFileSync(packageJSON)); - packages[filePath] = { - version: packageObj.version, - integrity: "sha1-000000000000000000000000000=", - dependencies: packageObj.dependencies, - engines: packageObj.engines, - optionalDependencies: packageObj.optionalDependencies - }; - dependencies[packageObj.name] = { - version: packageObj.version, - integrity: "sha1-000000000000000000000000000=", - dependencies: {} - }; - processDependencies(path.join(filePath, "node_modules"), packages, dependencies[packageObj.name].dependencies); - } - } - - function processDependencies(dir, packages, dependencies) { - if(fs.existsSync(dir)) { - var files = fs.readdirSync(dir); - - files.forEach(function(entry) { - var filePath = path.join(dir, entry); - var stats = fs.statSync(filePath); - - if(stats.isDirectory()) { - if(entry.substr(0, 1) == "@") { - // When we encounter a namespace folder, augment all packages belonging to the scope - var pkgFiles = fs.readdirSync(filePath); - - pkgFiles.forEach(function(entry) { - if(stats.isDirectory()) { - var pkgFilePath = path.join(filePath, entry); - augmentPackageJSON(pkgFilePath, packages, dependencies); - } - }); - } else { - augmentPackageJSON(filePath, packages, dependencies); - } - } - }); - } - } - - processDependencies("node_modules", lockObj.packages, lockObj.dependencies); - - fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); - ''; - }; - - # Script that links bins defined in package.json to the node_modules bin directory - # NPM does not do this for top-level packages itself anymore as of v7 - linkBinsScript = writeTextFile { - name = "linkbins.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - var packageObj = JSON.parse(fs.readFileSync("package.json")); - - var nodeModules = Array(packageObj.name.split("/").length).fill("..").join(path.sep); - - if(packageObj.bin !== undefined) { - fs.mkdirSync(path.join(nodeModules, ".bin")) - - if(typeof packageObj.bin == "object") { - Object.keys(packageObj.bin).forEach(function(exe) { - if(fs.existsSync(packageObj.bin[exe])) { - console.log("linking bin '" + exe + "'"); - fs.symlinkSync( - path.join("..", packageObj.name, packageObj.bin[exe]), - path.join(nodeModules, ".bin", exe) - ); - } - else { - console.log("skipping non-existent bin '" + exe + "'"); - } - }) - } - else { - if(fs.existsSync(packageObj.bin)) { - console.log("linking bin '" + packageObj.bin + "'"); - fs.symlinkSync( - path.join("..", packageObj.name, packageObj.bin), - path.join(nodeModules, ".bin", packageObj.name.split("/").pop()) - ); - } - else { - console.log("skipping non-existent bin '" + packageObj.bin + "'"); - } - } - } - else if(packageObj.directories !== undefined && packageObj.directories.bin !== undefined) { - fs.mkdirSync(path.join(nodeModules, ".bin")) - - fs.readdirSync(packageObj.directories.bin).forEach(function(exe) { - if(fs.existsSync(path.join(packageObj.directories.bin, exe))) { - console.log("linking bin '" + exe + "'"); - fs.symlinkSync( - path.join("..", packageObj.name, packageObj.directories.bin, exe), - path.join(nodeModules, ".bin", exe) - ); - } - else { - console.log("skipping non-existent bin '" + exe + "'"); - } - }) - } - ''; - }; - - prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: - let - forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; - in - '' - # Pinpoint the versions of all dependencies to the ones that are actually being used - echo "pinpointing versions of dependencies..." - source $pinpointDependenciesScriptPath - - # Patch the shebangs of the bundled modules to prevent them from - # calling executables outside the Nix store as much as possible - patchShebangs . - - # Deploy the Node.js package by running npm install. Since the - # dependencies have been provided already by ourselves, it should not - # attempt to install them again, which is good, because we want to make - # it Nix's responsibility. If it needs to install any dependencies - # anyway (e.g. because the dependency parameters are - # incomplete/incorrect), it fails. - # - # The other responsibilities of NPM are kept -- version checks, build - # steps, postprocessing etc. - - export HOME=$TMPDIR - cd "${packageName}" - runHook preRebuild - - ${lib.optionalString bypassCache '' - ${lib.optionalString reconstructLock '' - if [ -f package-lock.json ] - then - echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" - echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" - rm package-lock.json - else - echo "No package-lock.json file found, reconstructing..." - fi - - node ${reconstructPackageLock} - ''} - - node ${addIntegrityFieldsScript} - ''} - - npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild - - runHook postRebuild - - if [ "''${dontNpmInstall-}" != "1" ] - then - # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. - rm -f npm-shrinkwrap.json - - npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install - fi - - # Link executables defined in package.json - node ${linkBinsScript} - ''; - - # Builds and composes an NPM package including all its dependencies - buildNodePackage = - { name - , packageName - , version ? null - , dependencies ? [] - , buildInputs ? [] - , production ? true - , npmFlags ? "" - , dontNpmInstall ? false - , bypassCache ? false - , reconstructLock ? false - , preRebuild ? "" - , dontStrip ? true - , unpackPhase ? "true" - , buildPhase ? "true" - , meta ? {} - , ... }@args: - - let - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; - in - stdenv.mkDerivation ({ - name = "${name}${if version == null then "" else "-${version}"}"; - buildInputs = [ tarWrapper python nodejs ] - ++ lib.optional (stdenv.isLinux) utillinux - ++ lib.optional (stdenv.isDarwin) libtool - ++ buildInputs; - - inherit nodejs; - - inherit dontStrip; # Stripping may fail a build for some package deployments - inherit dontNpmInstall preRebuild unpackPhase buildPhase; - - compositionScript = composePackage args; - pinpointDependenciesScript = pinpointDependenciesOfPackage args; - - passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; - - installPhase = '' - source ${installPackage} - - # Create and enter a root node_modules/ folder - mkdir -p $out/lib/node_modules - cd $out/lib/node_modules - - # Compose the package and all its dependencies - source $compositionScriptPath - - ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} - - # Create symlink to the deployed executable folder, if applicable - if [ -d "$out/lib/node_modules/.bin" ] - then - ln -s $out/lib/node_modules/.bin $out/bin - - # Fixup all executables - ls $out/bin/* | while read i - do - file="$(readlink -f "$i")" - chmod u+rwx "$file" - if isScript "$file" - then - sed -i 's/\r$//' "$file" # convert crlf to lf - fi - done - fi - - # Create symlinks to the deployed manual page folders, if applicable - if [ -d "$out/lib/node_modules/${packageName}/man" ] - then - mkdir -p $out/share - for dir in "$out/lib/node_modules/${packageName}/man/"* - do - mkdir -p $out/share/man/$(basename "$dir") - for page in "$dir"/* - do - ln -s $page $out/share/man/$(basename "$dir") - done - done - fi - - # Run post install hook, if provided - runHook postInstall - ''; - - meta = { - # default to Node.js' platforms - platforms = nodejs.meta.platforms; - } // meta; - } // extraArgs); - - # Builds a node environment (a node_modules folder and a set of binaries) - buildNodeDependencies = - { name - , packageName - , version ? null - , src - , dependencies ? [] - , buildInputs ? [] - , production ? true - , npmFlags ? "" - , dontNpmInstall ? false - , bypassCache ? false - , reconstructLock ? false - , dontStrip ? true - , unpackPhase ? "true" - , buildPhase ? "true" - , ... }@args: - - let - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; - in - stdenv.mkDerivation ({ - name = "node-dependencies-${name}${if version == null then "" else "-${version}"}"; - - buildInputs = [ tarWrapper python nodejs ] - ++ lib.optional (stdenv.isLinux) utillinux - ++ lib.optional (stdenv.isDarwin) libtool - ++ buildInputs; - - inherit dontStrip; # Stripping may fail a build for some package deployments - inherit dontNpmInstall unpackPhase buildPhase; - - includeScript = includeDependencies { inherit dependencies; }; - pinpointDependenciesScript = pinpointDependenciesOfPackage args; - - passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; - - installPhase = '' - source ${installPackage} - - mkdir -p $out/${packageName} - cd $out/${packageName} - - source $includeScriptPath - - # Create fake package.json to make the npm commands work properly - cp ${src}/package.json . - chmod 644 package.json - ${lib.optionalString bypassCache '' - if [ -f ${src}/package-lock.json ] - then - cp ${src}/package-lock.json . - chmod 644 package-lock.json - fi - ''} - - # Go to the parent folder to make sure that all packages are pinpointed - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - - ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} - - # Expose the executables that were installed - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - - mv ${packageName} lib - ln -s $out/lib/node_modules/.bin $out/bin - ''; - } // extraArgs); - - # Builds a development shell - buildNodeShell = - { name - , packageName - , version ? null - , src - , dependencies ? [] - , buildInputs ? [] - , production ? true - , npmFlags ? "" - , dontNpmInstall ? false - , bypassCache ? false - , reconstructLock ? false - , dontStrip ? true - , unpackPhase ? "true" - , buildPhase ? "true" - , ... }@args: - - let - nodeDependencies = buildNodeDependencies args; - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ]; - in - stdenv.mkDerivation ({ - name = "node-shell-${name}${if version == null then "" else "-${version}"}"; - - buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; - buildCommand = '' - mkdir -p $out/bin - cat > $out/bin/shell <=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - dev: true - - /@babel/code-frame/7.22.10: - resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.10 - chalk: 2.4.2 - dev: true - - /@babel/compat-data/7.22.9: - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core/7.22.10: - resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.10 - '@babel/generator': 7.22.10 - '@babel/helper-compilation-targets': 7.22.10 - '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.10 - '@babel/helpers': 7.22.10 - '@babel/parser': 7.22.10 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.10 - '@babel/types': 7.22.10 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator/7.22.10: - resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - jsesc: 2.5.2 - dev: true - - /@babel/helper-annotate-as-pure/7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - - /@babel/helper-compilation-targets/7.22.10: - resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - - /@babel/helper-environment-visitor/7.22.5: - resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-function-name/7.22.5: - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.5 - '@babel/types': 7.22.10 - dev: true - - /@babel/helper-hoist-variables/7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - - /@babel/helper-module-imports/7.22.5: - resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - - /@babel/helper-module-transforms/7.22.9_@babel+core@7.22.10: - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.10 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 - dev: true - - /@babel/helper-plugin-utils/7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-simple-access/7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - - /@babel/helper-split-export-declaration/7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - - /@babel/helper-string-parser/7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-identifier/7.22.5: - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-option/7.22.5: - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers/7.22.10: - resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.10 - '@babel/types': 7.22.10 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/highlight/7.22.10: - resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - - /@babel/parser/7.22.10: - resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.22.10 - dev: true - - /@babel/plugin-syntax-jsx/7.22.5: - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-react-jsx-development/7.22.5: - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/plugin-transform-react-jsx': 7.22.5 - dev: true - - /@babel/plugin-transform-react-jsx/7.22.5: - resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5 - '@babel/types': 7.22.10 - dev: true - - /@babel/runtime/7.22.10: - resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.0 - dev: false - - /@babel/template/7.22.5: - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.10 - '@babel/parser': 7.22.10 - '@babel/types': 7.22.10 - dev: true - - /@babel/traverse/7.22.10: - resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.10 - '@babel/generator': 7.22.10 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.10 - '@babel/types': 7.22.10 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types/7.22.10: - resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 - to-fast-properties: 2.0.0 - dev: true - - /@esbuild/android-arm/0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64/0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64/0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64/0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64/0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64/0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64/0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm/0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64/0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32/0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64/0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el/0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64/0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64/0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x/0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64/0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64/0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64/0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64/0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64/0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32/0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64/0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@jridgewell/gen-mapping/0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 - dev: true - - /@jridgewell/resolve-uri/3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/set-array/1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/sourcemap-codec/1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - - /@jridgewell/trace-mapping/0.3.19: - resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /@preact/preset-vite/2.5.0_preact@10.17.0+vite@4.4.9: - resolution: {integrity: sha512-BUhfB2xQ6ex0yPkrT1Z3LbfPzjpJecOZwQ/xJrXGFSZD84+ObyS//41RdEoQCMWsM0t7UHGaujUxUBub7WM1Jw==} - peerDependencies: - '@babel/core': 7.x - vite: 2.x || 3.x || 4.x - dependencies: - '@babel/plugin-transform-react-jsx': 7.22.5 - '@babel/plugin-transform-react-jsx-development': 7.22.5 - '@prefresh/vite': 2.4.1_preact@10.17.0+vite@4.4.9 - '@rollup/pluginutils': 4.2.1 - babel-plugin-transform-hook-names: 1.0.2 - debug: 4.3.4 - kolorist: 1.8.0 - resolve: 1.22.4 - vite: 4.4.9 - transitivePeerDependencies: - - preact - - supports-color - dev: true - - /@prefresh/babel-plugin/0.5.0: - resolution: {integrity: sha512-joAwpkUDwo7ZqJnufXRGzUb+udk20RBgfA8oLPBh5aJH2LeStmV1luBfeJTztPdyCscC2j2SmZ/tVxFRMIxAEw==} - dev: true - - /@prefresh/core/1.5.1_preact@10.17.0: - resolution: {integrity: sha512-e0mB0Oxtog6ZpKPDBYbzFniFJDIktuKMzOHp7sguntU+ot0yi6dbhJRE9Css1qf0u16wdSZjpL2W2ODWuU05Cw==} - peerDependencies: - preact: ^10.0.0 - dependencies: - preact: 10.17.0 - dev: true - - /@prefresh/utils/1.2.0: - resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==} - dev: true - - /@prefresh/vite/2.4.1_preact@10.17.0+vite@4.4.9: - resolution: {integrity: sha512-vthWmEqu8TZFeyrBNc9YE5SiC3DVSzPgsOCp/WQ7FqdHpOIJi7Z8XvCK06rBPOtG4914S52MjG9Ls22eVAiuqQ==} - peerDependencies: - preact: ^10.4.0 - vite: '>=2.0.0' - dependencies: - '@babel/core': 7.22.10 - '@prefresh/babel-plugin': 0.5.0 - '@prefresh/core': 1.5.1_preact@10.17.0 - '@prefresh/utils': 1.2.0 - '@rollup/pluginutils': 4.2.1 - preact: 10.17.0 - vite: 4.4.9 - transitivePeerDependencies: - - supports-color - dev: true - - /@rollup/pluginutils/4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - - /@types/gl-react-dom/3.15.5: - resolution: {integrity: sha512-H3GoEkyHRy0ALg1EwFhS/40rD2ofamuDBlKsx/DylnH86vGDuYQRJ7OYISXvoczQINdKpkRdoFE2cB6xp7A6Sw==} - dependencies: - '@types/gl-react': 3.15.5 - '@types/react': 18.2.20 - dev: true - - /@types/gl-react/3.15.5: - resolution: {integrity: sha512-QYgfNKVORF7ggEMXPYz8VPQJiUIq6pLI82Rwtk1dIWrRARzVYZibupWlt9MhUNbBUL0bPQ+xPV1/dQMk5WC6Lg==} - dependencies: - '@types/react': 18.2.20 - csstype: 3.1.2 - dev: true - - /@types/prop-types/15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - dev: true - - /@types/react-slick/0.23.10: - resolution: {integrity: sha512-ZiqdencANDZy6sWOWJ54LDvebuXFEhDlHtXU9FFipQR2BcYU2QJxZhvJPW6YK7cocibUiNn+YvDTbt1HtCIBVA==} - dependencies: - '@types/react': 18.2.20 - dev: true - - /@types/react/18.2.20: - resolution: {integrity: sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 - dev: true - - /@types/scheduler/0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - dev: true - - /add-line-numbers/1.0.1: - resolution: {integrity: sha512-w+2a1malCvWwACQFBpZ5/uwmHGaGYT+aGIxA8ONF5vlhe6X/gD3eR8qVoLWa+5nnWAOq2LuPbrqDYqj1pn0WMg==} - dependencies: - pad-left: 1.0.2 - dev: false - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /array-union/1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} - engines: {node: '>=0.10.0'} - dependencies: - array-uniq: 1.0.3 - dev: true - - /array-uniq/1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} - dev: true - - /async/3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: true - - /atob-lite/1.0.0: - resolution: {integrity: sha512-ArXcmHR/vwSN37HLVap/Y5SKpz12CuEybxe1sIYl7th/S6SQPrVMNFt6rblJzCOAxn0SHbXpknUtqbAIeo3Aow==} - dev: false - - /babel-plugin-transform-hook-names/1.0.2: - resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} - peerDependencies: - '@babel/core': ^7.12.10 - dev: true - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /bit-twiddle/1.0.2: - resolution: {integrity: sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==} - dev: false - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /browserslist/4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001521 - electron-to-chromium: 1.4.492 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11_browserslist@4.21.10 - dev: true - - /caniuse-lite/1.0.30001521: - resolution: {integrity: sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==} - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /classnames/2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} - dev: false - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - - /commander/11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} - engines: {node: '>=16'} - dev: true - - /commondir/1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: true - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /convert-source-map/1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false - - /csstype/3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - dev: true - - /cwise-compiler/1.1.3: - resolution: {integrity: sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==} - dependencies: - uniq: 1.0.1 - dev: false - - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /dup/1.0.0: - resolution: {integrity: sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==} - dev: false - - /electron-to-chromium/1.4.492: - resolution: {integrity: sha512-36K9b/6skMVwAIEsC7GiQ8I8N3soCALVSHqWHzNDtGemAcI9Xu8hP02cywWM0A794rTHm0b0zHPeLJHtgFVamQ==} - dev: true - - /email-addresses/5.0.0: - resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} - dev: true - - /enquire.js/2.1.6: - resolution: {integrity: sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==} - dev: false - - /esbuild/0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true - - /estree-walker/2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true - - /filename-reserved-regex/2.0.0: - resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} - engines: {node: '>=4'} - dev: true - - /filenamify/4.3.0: - resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} - engines: {node: '>=8'} - dependencies: - filename-reserved-regex: 2.0.0 - strip-outer: 1.0.1 - trim-repeated: 1.0.0 - dev: true - - /find-cache-dir/3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - - /fs-extra/11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true - - /gh-pages/6.0.0: - resolution: {integrity: sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 3.2.4 - commander: 11.0.0 - email-addresses: 5.0.0 - filenamify: 4.3.0 - find-cache-dir: 3.3.2 - fs-extra: 11.1.1 - globby: 6.1.0 - dev: true - - /gl-constants/1.0.0: - resolution: {integrity: sha512-3DNyoAUdb1c+o7jNk5Nm7eh6RSQFi9ZmMQIQb2xxsO27rUopE+IUhoh4xlUvZYBn1YPgUC8BlCnrVjXq/d2dQA==} - dev: false - - /gl-format-compiler-error/1.0.3: - resolution: {integrity: sha512-FtQaBYlsM/rnz7YhLkxG9dLcNDB+ExErIsFV2DXl0nk+YgIZ2i0jMob4BrhT9dNa179zFb0gZMWpNAokytK+Ug==} - dependencies: - add-line-numbers: 1.0.1 - gl-constants: 1.0.0 - glsl-shader-name: 1.0.0 - sprintf-js: 1.1.3 - dev: false - - /gl-react-dom/5.2.1_gl-react@5.2.0: - resolution: {integrity: sha512-RZxOovktk8czle/FiMbiEJJxHLICoHEzxU46GeQ9tqiWMYxj/wj01VbqGVlrn6wVZ+fx77bhRxzn5ptW2uuxbA==} - peerDependencies: - gl-react: '*' - react: '*' - dependencies: - gl-react: 5.2.0 - invariant: 2.2.4 - prop-types: 15.8.1 - raf: 3.4.1 - webgltexture-loader-dom: 1.0.0 - dev: false - - /gl-react/5.2.0: - resolution: {integrity: sha512-A/FxG65e8Zx2RYi9+kYpeAwfFb7qQN0T6BCRXcUiwevUC//i3cH53w0AQRGj1mm96NVvD412mYJatl52qlDuxw==} - peerDependencies: - react: '*' - dependencies: - gl-shader: 4.3.1 - invariant: 2.2.4 - ndarray: 1.0.19 - prop-types: 15.8.1 - typedarray-pool: 1.2.0 - webgltexture-loader: 1.0.0 - webgltexture-loader-ndarray: 1.2.0 - dev: false - - /gl-shader/4.3.1: - resolution: {integrity: sha512-xLoN6XtRLlg97SEqtuzfKc+pVWpVkQ3YjDI1kuCale8tF7+zMhiKlMfmG4IMQPMdKJZQbIc/Ny8ZusEpfh5U+w==} - dependencies: - gl-format-compiler-error: 1.0.3 - weakmap-shim: 1.1.1 - dev: false - - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /globby/6.1.0: - resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} - engines: {node: '>=0.10.0'} - dependencies: - array-union: 1.0.2 - glob: 7.2.3 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - dev: true - - /glsl-shader-name/1.0.0: - resolution: {integrity: sha512-OtHon0dPCbJD+IrVA1vw9QDlp2cS/f9z8X/0y+W7Qy1oZ3U1iFAQUEco2v30V0SAlVLDG5rEfhjEfc3DKdGbFQ==} - dependencies: - atob-lite: 1.0.0 - glsl-tokenizer: 2.1.5 - dev: false - - /glsl-tokenizer/2.1.5: - resolution: {integrity: sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==} - dependencies: - through2: 0.6.5 - dev: false - - /graceful-fs/4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - - /history/5.3.0: - resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} - dependencies: - '@babel/runtime': 7.22.10 - dev: false - - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /invariant/2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /iota-array/1.0.0: - resolution: {integrity: sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==} - dev: false - - /is-buffer/1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: false - - /is-core-module/2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} - dependencies: - has: 1.0.3 - dev: true - - /isarray/0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /json2mq/0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} - dependencies: - string-convert: 0.2.1 - dev: false - - /json5/2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: true - - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.0 - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - - /kolorist/1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - - /lodash.debounce/4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false - - /loose-envify/1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false - - /lru-cache/5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - dev: true - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: true - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - - /nanoid/3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /ndarray-ops/1.2.2: - resolution: {integrity: sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw==} - dependencies: - cwise-compiler: 1.1.3 - dev: false - - /ndarray/1.0.19: - resolution: {integrity: sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==} - dependencies: - iota-array: 1.0.0 - is-buffer: 1.1.6 - dev: false - - /node-releases/2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: true - - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: true - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - - /pad-left/1.0.2: - resolution: {integrity: sha512-saxSV1EYAytuZDtQYEwi0DPzooG6aN18xyHrnJtzwjVwmMauzkEecd7hynVJGolNGk1Pl9tltmZqfze4TZTCxg==} - engines: {node: '>=0.10.0'} - dependencies: - repeat-string: 1.6.1 - dev: false - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /performance-now/2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: false - - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pify/2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true - - /pinkie-promise/2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - dependencies: - pinkie: 2.0.4 - dev: true - - /pinkie/2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - dev: true - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - - /postcss/8.4.28: - resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /preact-router/4.1.2_preact@10.17.0: - resolution: {integrity: sha512-uICUaUFYh+XQ+6vZtQn1q+X6rSqwq+zorWOCLWPF5FAsQh3EJ+RsDQ9Ee+fjk545YWQHfUxhrBAaemfxEnMOUg==} - peerDependencies: - preact: '>=10' - dependencies: - preact: 10.17.0 - dev: false - - /preact/10.17.0: - resolution: {integrity: sha512-SNsI8cbaCcUS5tbv9nlXuCfIXnJ9ysBMWk0WnB6UWwcVA3qZ2O6FxqDFECMAMttvLQcW/HaNZUe2BLidyvrVYw==} - - /prop-types/15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - dev: false - - /raf/3.4.1: - resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} - dependencies: - performance-now: 2.1.0 - dev: false - - /react-is/16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: false - - /react-slick/0.29.0: - resolution: {integrity: sha512-TGdOKE+ZkJHHeC4aaoH85m8RnFyWqdqRfAGkhd6dirmATXMZWAxOpTLmw2Ll/jPTQ3eEG7ercFr/sbzdeYCJXA==} - peerDependencies: - react: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - classnames: 2.3.2 - enquire.js: 2.1.6 - json2mq: 0.2.0 - lodash.debounce: 4.0.8 - resize-observer-polyfill: 1.5.1 - dev: false - - /readable-stream/1.0.34: - resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 0.0.1 - string_decoder: 0.10.31 - dev: false - - /regenerator-runtime/0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - dev: false - - /repeat-string/1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: false - - /resize-observer-polyfill/1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false - - /resolve/1.22.4: - resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} - hasBin: true - dependencies: - is-core-module: 2.13.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /rollup/3.28.0: - resolution: {integrity: sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /semver/6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true - - /slick-carousel/1.8.1: - resolution: {integrity: sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==} - peerDependencies: - jquery: '>=1.8.0' - dev: false - - /source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - - /sprintf-js/1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - dev: false - - /string-convert/0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - dev: false - - /string_decoder/0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} - dev: false - - /strip-outer/1.0.1: - resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /through2/0.6.5: - resolution: {integrity: sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==} - dependencies: - readable-stream: 1.0.34 - xtend: 4.0.2 - dev: false - - /to-fast-properties/2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: true - - /trim-repeated/1.0.0: - resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /typedarray-pool/1.2.0: - resolution: {integrity: sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==} - dependencies: - bit-twiddle: 1.0.2 - dup: 1.0.0 - dev: false - - /typescript/5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - - /uniq/1.0.1: - resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} - dev: false - - /universalify/2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: true - - /update-browserslist-db/1.0.11_browserslist@4.21.10: - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.10 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - - /vite/4.4.9: - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.18.20 - postcss: 8.4.28 - rollup: 3.28.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /weakmap-shim/1.1.1: - resolution: {integrity: sha512-/wNyG+1FpiHhnfQo+TuA/XAUpvOOkKVl0A4qpT+oGcj5SlZCLmM+M1Py/3Sj8sy+YrEauCVITOxCsZKo6sPbQg==} - dev: false - - /webgltexture-loader-dom-canvas/1.0.0: - resolution: {integrity: sha512-lRDoPVE4GXFyfsl/E5+sZd7m6304RmBRky0SmgHlqJZJySFrCbQMF/hMQkWNWM5iYks84kRUGlwugW/c6OgpDw==} - dependencies: - webgltexture-loader: 1.0.0 - dev: false - - /webgltexture-loader-dom-image-url/1.0.0: - resolution: {integrity: sha512-KiQ16cLBTjoCQfdvfy1SQP3wMWEPW9ADqsODyhd+6nMg7qD6FmewF3OZs6chF4yfDtlVVXRYI/cDGF1K9MK5Mg==} - dependencies: - webgltexture-loader: 1.0.0 - dev: false - - /webgltexture-loader-dom-video/1.0.0: - resolution: {integrity: sha512-o3zB2XQEMAqgHQeNavoy4q5/lwIIt1MjF6Qj+pUDju9VlovJXGJiCIZ/suv715YgS3k36/pg97847GhV3bHczQ==} - dependencies: - webgltexture-loader: 1.0.0 - dev: false - - /webgltexture-loader-dom/1.0.0: - resolution: {integrity: sha512-JavQ9Hvv3DIYx6WuqzVa76bn2YCcq1lazUdzf277VZWrmxVCln5QFjyTfWZozgYtT21lVeu6MdMOUIbY4xhjqA==} - dependencies: - webgltexture-loader-dom-canvas: 1.0.0 - webgltexture-loader-dom-image-url: 1.0.0 - webgltexture-loader-dom-video: 1.0.0 - dev: false - - /webgltexture-loader-ndarray/1.2.0: - resolution: {integrity: sha512-gWTIqCOYs1XK6Yp4G7XvFDhvCvr6wFjTLPRN/HGBouF4u0to2fAIh5+2cxzEs1WE7eSwsxg1y5aNi1jRXSX+zA==} - dependencies: - ndarray: 1.0.19 - ndarray-ops: 1.2.2 - typedarray-pool: 1.2.0 - webgltexture-loader: 1.0.0 - dev: false - - /webgltexture-loader/1.0.0: - resolution: {integrity: sha512-TbQUdr0Bc3tcJ4pKIFoM9dKyLdYNf9Uxq05oZuIT+2e/vCcfaQS+WjNmW1FwYqaBrzcLr9CA/HBAmvyaS/REGw==} - dev: false - - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /yallist/3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true diff --git a/front/public/CNAME b/front/public/CNAME deleted file mode 100644 index 4fafb77..0000000 --- a/front/public/CNAME +++ /dev/null @@ -1 +0,0 @@ -duckonaut.dev diff --git a/front/public/assets/games/bumbling-builders/screenshot1.png b/front/public/assets/games/bumbling-builders/screenshot1.png deleted file mode 100644 index 7a8a2db..0000000 Binary files a/front/public/assets/games/bumbling-builders/screenshot1.png and /dev/null differ diff --git a/front/public/assets/games/bumbling-builders/screenshot2.png b/front/public/assets/games/bumbling-builders/screenshot2.png deleted file mode 100644 index 5eb0a1f..0000000 Binary files a/front/public/assets/games/bumbling-builders/screenshot2.png and /dev/null differ diff --git a/front/public/assets/games/bumbling-builders/screenshot3.png b/front/public/assets/games/bumbling-builders/screenshot3.png deleted file mode 100644 index 41f65ac..0000000 Binary files a/front/public/assets/games/bumbling-builders/screenshot3.png and /dev/null differ diff --git a/front/public/assets/games/bumbling-builders/thumbnail.png b/front/public/assets/games/bumbling-builders/thumbnail.png deleted file mode 100644 index 1c723a2..0000000 Binary files a/front/public/assets/games/bumbling-builders/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/dicemask/thumbnail.png b/front/public/assets/games/dicemask/thumbnail.png deleted file mode 100644 index f9bc9ee..0000000 Binary files a/front/public/assets/games/dicemask/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/greachers/screenshot1.png b/front/public/assets/games/greachers/screenshot1.png deleted file mode 100644 index 444106e..0000000 Binary files a/front/public/assets/games/greachers/screenshot1.png and /dev/null differ diff --git a/front/public/assets/games/greachers/screenshot2.png b/front/public/assets/games/greachers/screenshot2.png deleted file mode 100644 index e968c4f..0000000 Binary files a/front/public/assets/games/greachers/screenshot2.png and /dev/null differ diff --git a/front/public/assets/games/greachers/screenshot3.png b/front/public/assets/games/greachers/screenshot3.png deleted file mode 100644 index 6433fb6..0000000 Binary files a/front/public/assets/games/greachers/screenshot3.png and /dev/null differ diff --git a/front/public/assets/games/greachers/title.png b/front/public/assets/games/greachers/title.png deleted file mode 100644 index cdb3e67..0000000 Binary files a/front/public/assets/games/greachers/title.png and /dev/null differ diff --git a/front/public/assets/games/loud/screenshot1.jpg b/front/public/assets/games/loud/screenshot1.jpg deleted file mode 100644 index 8192c15..0000000 Binary files a/front/public/assets/games/loud/screenshot1.jpg and /dev/null differ diff --git a/front/public/assets/games/loud/screenshot2.jpg b/front/public/assets/games/loud/screenshot2.jpg deleted file mode 100644 index 88a1ffe..0000000 Binary files a/front/public/assets/games/loud/screenshot2.jpg and /dev/null differ diff --git a/front/public/assets/games/loud/screenshot3.jpg b/front/public/assets/games/loud/screenshot3.jpg deleted file mode 100644 index dfbe555..0000000 Binary files a/front/public/assets/games/loud/screenshot3.jpg and /dev/null differ diff --git a/front/public/assets/games/loud/thumbnail.jpg b/front/public/assets/games/loud/thumbnail.jpg deleted file mode 100644 index 9ec9764..0000000 Binary files a/front/public/assets/games/loud/thumbnail.jpg and /dev/null differ diff --git a/front/public/assets/games/miro/screenshot1.png b/front/public/assets/games/miro/screenshot1.png deleted file mode 100644 index 5ba2365..0000000 Binary files a/front/public/assets/games/miro/screenshot1.png and /dev/null differ diff --git a/front/public/assets/games/miro/screenshot2.png b/front/public/assets/games/miro/screenshot2.png deleted file mode 100644 index 706e47a..0000000 Binary files a/front/public/assets/games/miro/screenshot2.png and /dev/null differ diff --git a/front/public/assets/games/miro/screenshot3.png b/front/public/assets/games/miro/screenshot3.png deleted file mode 100644 index 237be9c..0000000 Binary files a/front/public/assets/games/miro/screenshot3.png and /dev/null differ diff --git a/front/public/assets/games/miro/thumbnail.png b/front/public/assets/games/miro/thumbnail.png deleted file mode 100644 index 152acfc..0000000 Binary files a/front/public/assets/games/miro/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/mr-final-boss/screenshot1.png b/front/public/assets/games/mr-final-boss/screenshot1.png deleted file mode 100644 index d13f639..0000000 Binary files a/front/public/assets/games/mr-final-boss/screenshot1.png and /dev/null differ diff --git a/front/public/assets/games/mr-final-boss/screenshot2.png b/front/public/assets/games/mr-final-boss/screenshot2.png deleted file mode 100644 index 6b07d1c..0000000 Binary files a/front/public/assets/games/mr-final-boss/screenshot2.png and /dev/null differ diff --git a/front/public/assets/games/mr-final-boss/screenshot3.png b/front/public/assets/games/mr-final-boss/screenshot3.png deleted file mode 100644 index bf6d965..0000000 Binary files a/front/public/assets/games/mr-final-boss/screenshot3.png and /dev/null differ diff --git a/front/public/assets/games/mr-final-boss/screenshot4.png b/front/public/assets/games/mr-final-boss/screenshot4.png deleted file mode 100644 index c6b4cbe..0000000 Binary files a/front/public/assets/games/mr-final-boss/screenshot4.png and /dev/null differ diff --git a/front/public/assets/games/mr-final-boss/thumbnail.png b/front/public/assets/games/mr-final-boss/thumbnail.png deleted file mode 100644 index 024dab4..0000000 Binary files a/front/public/assets/games/mr-final-boss/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/riff-n-rage/screenshot1.png b/front/public/assets/games/riff-n-rage/screenshot1.png deleted file mode 100644 index 6a9b075..0000000 Binary files a/front/public/assets/games/riff-n-rage/screenshot1.png and /dev/null differ diff --git a/front/public/assets/games/riff-n-rage/screenshot2.png b/front/public/assets/games/riff-n-rage/screenshot2.png deleted file mode 100644 index 5b68901..0000000 Binary files a/front/public/assets/games/riff-n-rage/screenshot2.png and /dev/null differ diff --git a/front/public/assets/games/riff-n-rage/thumbnail.png b/front/public/assets/games/riff-n-rage/thumbnail.png deleted file mode 100644 index fa8dcad..0000000 Binary files a/front/public/assets/games/riff-n-rage/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/survive-the-temple/cover.png b/front/public/assets/games/survive-the-temple/cover.png deleted file mode 100644 index 5394eeb..0000000 Binary files a/front/public/assets/games/survive-the-temple/cover.png and /dev/null differ diff --git a/front/public/assets/games/survive-the-temple/screenshot.png b/front/public/assets/games/survive-the-temple/screenshot.png deleted file mode 100644 index 92b8ba9..0000000 Binary files a/front/public/assets/games/survive-the-temple/screenshot.png and /dev/null differ diff --git a/front/public/assets/games/thermal-trail/gameart.png b/front/public/assets/games/thermal-trail/gameart.png deleted file mode 100644 index 34c82bc..0000000 Binary files a/front/public/assets/games/thermal-trail/gameart.png and /dev/null differ diff --git a/front/public/assets/games/thermal-trail/screenshot1.png b/front/public/assets/games/thermal-trail/screenshot1.png deleted file mode 100644 index 4b940aa..0000000 Binary files a/front/public/assets/games/thermal-trail/screenshot1.png and /dev/null differ diff --git a/front/public/assets/games/thermal-trail/screenshot2.png b/front/public/assets/games/thermal-trail/screenshot2.png deleted file mode 100644 index 0594eb9..0000000 Binary files a/front/public/assets/games/thermal-trail/screenshot2.png and /dev/null differ diff --git a/front/public/assets/games/thermal-trail/screenshot3.png b/front/public/assets/games/thermal-trail/screenshot3.png deleted file mode 100644 index b5a4a6d..0000000 Binary files a/front/public/assets/games/thermal-trail/screenshot3.png and /dev/null differ diff --git a/front/public/assets/games/thermal-trail/screenshot4.png b/front/public/assets/games/thermal-trail/screenshot4.png deleted file mode 100644 index 1356226..0000000 Binary files a/front/public/assets/games/thermal-trail/screenshot4.png and /dev/null differ diff --git a/front/public/assets/games/thermal-trail/thumbnail.png b/front/public/assets/games/thermal-trail/thumbnail.png deleted file mode 100644 index d779c51..0000000 Binary files a/front/public/assets/games/thermal-trail/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/third-party/screenshot1.jpg b/front/public/assets/games/third-party/screenshot1.jpg deleted file mode 100644 index 6052ea2..0000000 Binary files a/front/public/assets/games/third-party/screenshot1.jpg and /dev/null differ diff --git a/front/public/assets/games/third-party/screenshot2.jpg b/front/public/assets/games/third-party/screenshot2.jpg deleted file mode 100644 index 7a16edf..0000000 Binary files a/front/public/assets/games/third-party/screenshot2.jpg and /dev/null differ diff --git a/front/public/assets/games/third-party/screenshot3.jpg b/front/public/assets/games/third-party/screenshot3.jpg deleted file mode 100644 index 57e2d5b..0000000 Binary files a/front/public/assets/games/third-party/screenshot3.jpg and /dev/null differ diff --git a/front/public/assets/games/third-party/screenshot4.jpg b/front/public/assets/games/third-party/screenshot4.jpg deleted file mode 100644 index 331594a..0000000 Binary files a/front/public/assets/games/third-party/screenshot4.jpg and /dev/null differ diff --git a/front/public/assets/games/third-party/thumbnail.png b/front/public/assets/games/third-party/thumbnail.png deleted file mode 100644 index c3cd158..0000000 Binary files a/front/public/assets/games/third-party/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/wuzmag/screenshot1.png b/front/public/assets/games/wuzmag/screenshot1.png deleted file mode 100644 index 186be8c..0000000 Binary files a/front/public/assets/games/wuzmag/screenshot1.png and /dev/null differ diff --git a/front/public/assets/games/wuzmag/screenshot2.png b/front/public/assets/games/wuzmag/screenshot2.png deleted file mode 100644 index 683d7ee..0000000 Binary files a/front/public/assets/games/wuzmag/screenshot2.png and /dev/null differ diff --git a/front/public/assets/games/wuzmag/screenshot3.png b/front/public/assets/games/wuzmag/screenshot3.png deleted file mode 100644 index b5398bb..0000000 Binary files a/front/public/assets/games/wuzmag/screenshot3.png and /dev/null differ diff --git a/front/public/assets/games/wuzmag/thumbnail.png b/front/public/assets/games/wuzmag/thumbnail.png deleted file mode 100644 index 0e6dea1..0000000 Binary files a/front/public/assets/games/wuzmag/thumbnail.png and /dev/null differ diff --git a/front/public/assets/games/your-left/screenshot1.jpg b/front/public/assets/games/your-left/screenshot1.jpg deleted file mode 100644 index e76861a..0000000 Binary files a/front/public/assets/games/your-left/screenshot1.jpg and /dev/null differ diff --git a/front/public/assets/games/your-left/screenshot2.jpg b/front/public/assets/games/your-left/screenshot2.jpg deleted file mode 100644 index 9e0f674..0000000 Binary files a/front/public/assets/games/your-left/screenshot2.jpg and /dev/null differ diff --git a/front/public/assets/games/your-left/screenshot3.jpg b/front/public/assets/games/your-left/screenshot3.jpg deleted file mode 100644 index d025ec1..0000000 Binary files a/front/public/assets/games/your-left/screenshot3.jpg and /dev/null differ diff --git a/front/public/assets/games/your-left/thumbnail.png b/front/public/assets/games/your-left/thumbnail.png deleted file mode 100644 index 95f5c17..0000000 Binary files a/front/public/assets/games/your-left/thumbnail.png and /dev/null differ diff --git a/front/public/assets/images/android.png b/front/public/assets/images/android.png deleted file mode 100644 index d1cef88..0000000 Binary files a/front/public/assets/images/android.png and /dev/null differ diff --git a/front/public/assets/images/android.svg b/front/public/assets/images/android.svg deleted file mode 100644 index 910aaab..0000000 --- a/front/public/assets/images/android.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/front/public/assets/images/cpp.png b/front/public/assets/images/cpp.png deleted file mode 100644 index ab883f7..0000000 Binary files a/front/public/assets/images/cpp.png and /dev/null differ diff --git a/front/public/assets/images/cpp.svg b/front/public/assets/images/cpp.svg deleted file mode 100644 index f306183..0000000 --- a/front/public/assets/images/cpp.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - diff --git a/front/public/assets/images/csharp.png b/front/public/assets/images/csharp.png deleted file mode 100644 index 065aa53..0000000 Binary files a/front/public/assets/images/csharp.png and /dev/null differ diff --git a/front/public/assets/images/csharp.svg b/front/public/assets/images/csharp.svg deleted file mode 100644 index 77d5b38..0000000 --- a/front/public/assets/images/csharp.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/front/public/assets/images/duckpfp.png b/front/public/assets/images/duckpfp.png deleted file mode 100644 index bdad92c..0000000 Binary files a/front/public/assets/images/duckpfp.png and /dev/null differ diff --git a/front/public/assets/images/favicon.png b/front/public/assets/images/favicon.png deleted file mode 100644 index 3cfd37a..0000000 Binary files a/front/public/assets/images/favicon.png and /dev/null differ diff --git a/front/public/assets/images/favicon.svg b/front/public/assets/images/favicon.svg deleted file mode 100644 index 3614084..0000000 --- a/front/public/assets/images/favicon.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - diff --git a/front/public/assets/images/github.png b/front/public/assets/images/github.png deleted file mode 100644 index 0954581..0000000 Binary files a/front/public/assets/images/github.png and /dev/null differ diff --git a/front/public/assets/images/github.svg b/front/public/assets/images/github.svg deleted file mode 100644 index 11f84aa..0000000 --- a/front/public/assets/images/github.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/front/public/assets/images/godot.png b/front/public/assets/images/godot.png deleted file mode 100644 index 4f2bc22..0000000 Binary files a/front/public/assets/images/godot.png and /dev/null differ diff --git a/front/public/assets/images/godot.svg b/front/public/assets/images/godot.svg deleted file mode 100644 index 6a2176a..0000000 --- a/front/public/assets/images/godot.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/front/public/assets/images/html5.png b/front/public/assets/images/html5.png deleted file mode 100644 index e0dcb1f..0000000 Binary files a/front/public/assets/images/html5.png and /dev/null differ diff --git a/front/public/assets/images/html5.svg b/front/public/assets/images/html5.svg deleted file mode 100644 index 70959e4..0000000 --- a/front/public/assets/images/html5.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/front/public/assets/images/hyprland.png b/front/public/assets/images/hyprland.png deleted file mode 100644 index 36d8162..0000000 Binary files a/front/public/assets/images/hyprland.png and /dev/null differ diff --git a/front/public/assets/images/hyprland.svg b/front/public/assets/images/hyprland.svg deleted file mode 100644 index 1f03c7e..0000000 --- a/front/public/assets/images/hyprland.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - diff --git a/front/public/assets/images/linux.png b/front/public/assets/images/linux.png deleted file mode 100644 index 492d0bf..0000000 Binary files a/front/public/assets/images/linux.png and /dev/null differ diff --git a/front/public/assets/images/linux.svg b/front/public/assets/images/linux.svg deleted file mode 100644 index cab00df..0000000 --- a/front/public/assets/images/linux.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - diff --git a/front/public/assets/images/macos.png b/front/public/assets/images/macos.png deleted file mode 100644 index 1f4625c..0000000 Binary files a/front/public/assets/images/macos.png and /dev/null differ diff --git a/front/public/assets/images/macos.svg b/front/public/assets/images/macos.svg deleted file mode 100644 index ec4dc0c..0000000 --- a/front/public/assets/images/macos.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - diff --git a/front/public/assets/images/monogame.png b/front/public/assets/images/monogame.png deleted file mode 100644 index 8648bcc..0000000 Binary files a/front/public/assets/images/monogame.png and /dev/null differ diff --git a/front/public/assets/images/pfp.png b/front/public/assets/images/pfp.png deleted file mode 100644 index a18b664..0000000 Binary files a/front/public/assets/images/pfp.png and /dev/null differ diff --git a/front/public/assets/images/placeholder.png b/front/public/assets/images/placeholder.png deleted file mode 100644 index 97084c7..0000000 Binary files a/front/public/assets/images/placeholder.png and /dev/null differ diff --git a/front/public/assets/images/playstation.png b/front/public/assets/images/playstation.png deleted file mode 100644 index dd22b43..0000000 Binary files a/front/public/assets/images/playstation.png and /dev/null differ diff --git a/front/public/assets/images/playstation.svg b/front/public/assets/images/playstation.svg deleted file mode 100644 index 5d56897..0000000 --- a/front/public/assets/images/playstation.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - diff --git a/front/public/assets/images/switch.png b/front/public/assets/images/switch.png deleted file mode 100644 index 723817e..0000000 Binary files a/front/public/assets/images/switch.png and /dev/null differ diff --git a/front/public/assets/images/switch.svg b/front/public/assets/images/switch.svg deleted file mode 100644 index 4d891ae..0000000 --- a/front/public/assets/images/switch.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - diff --git a/front/public/assets/images/symbols.png b/front/public/assets/images/symbols.png deleted file mode 100644 index 3d0e9aa..0000000 Binary files a/front/public/assets/images/symbols.png and /dev/null differ diff --git a/front/public/assets/images/thumbnail.png b/front/public/assets/images/thumbnail.png deleted file mode 100644 index f343a8b..0000000 Binary files a/front/public/assets/images/thumbnail.png and /dev/null differ diff --git a/front/public/assets/images/thumbnail.svg b/front/public/assets/images/thumbnail.svg deleted file mode 100644 index 3783fe1..0000000 --- a/front/public/assets/images/thumbnail.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - -duckonaut.dev diff --git a/front/public/assets/images/thumbnail.zvg b/front/public/assets/images/thumbnail.zvg deleted file mode 100644 index 4d675af..0000000 --- a/front/public/assets/images/thumbnail.zvg +++ /dev/null @@ -1,67 +0,0 @@ - - - -duckonaut.dev diff --git a/front/public/assets/images/unity.png b/front/public/assets/images/unity.png deleted file mode 100644 index 5fea459..0000000 Binary files a/front/public/assets/images/unity.png and /dev/null differ diff --git a/front/public/assets/images/unity.svg b/front/public/assets/images/unity.svg deleted file mode 100644 index b9d1859..0000000 --- a/front/public/assets/images/unity.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/front/public/assets/images/windows.png b/front/public/assets/images/windows.png deleted file mode 100644 index a09553e..0000000 Binary files a/front/public/assets/images/windows.png and /dev/null differ diff --git a/front/public/assets/images/windows.svg b/front/public/assets/images/windows.svg deleted file mode 100644 index cb347b6..0000000 --- a/front/public/assets/images/windows.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/front/public/assets/images/xamarin.png b/front/public/assets/images/xamarin.png deleted file mode 100644 index 91ce4ac..0000000 Binary files a/front/public/assets/images/xamarin.png and /dev/null differ diff --git a/front/public/assets/images/xbox.png b/front/public/assets/images/xbox.png deleted file mode 100644 index 9a439ba..0000000 Binary files a/front/public/assets/images/xbox.png and /dev/null differ diff --git a/front/public/assets/images/xbox.svg b/front/public/assets/images/xbox.svg deleted file mode 100644 index 13d7bdd..0000000 --- a/front/public/assets/images/xbox.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - Xbox Logo - - - - image/svg+xml - - Xbox Logo - - - - - - - - - diff --git a/front/public/assets/loose/github-yellow.svg b/front/public/assets/loose/github-yellow.svg deleted file mode 100644 index f81e9b9..0000000 --- a/front/public/assets/loose/github-yellow.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/front/public/assets/loose/itch-yellow.svg b/front/public/assets/loose/itch-yellow.svg deleted file mode 100644 index 008c7b1..0000000 --- a/front/public/assets/loose/itch-yellow.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/front/public/assets/loose/twitter-yellow.svg b/front/public/assets/loose/twitter-yellow.svg deleted file mode 100644 index ec6168d..0000000 --- a/front/public/assets/loose/twitter-yellow.svg +++ /dev/null @@ -1,91 +0,0 @@ - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/front/public/assets/loose/web-yellow.svg b/front/public/assets/loose/web-yellow.svg deleted file mode 100644 index b61babc..0000000 --- a/front/public/assets/loose/web-yellow.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/front/public/assets/projects/hyprload/logo.png b/front/public/assets/projects/hyprload/logo.png deleted file mode 100644 index 92fb9ce..0000000 Binary files a/front/public/assets/projects/hyprload/logo.png and /dev/null differ diff --git a/front/public/assets/projects/spirit-mod/demo1.gif b/front/public/assets/projects/spirit-mod/demo1.gif deleted file mode 100644 index 324de0c..0000000 Binary files a/front/public/assets/projects/spirit-mod/demo1.gif and /dev/null differ diff --git a/front/public/assets/projects/spirit-mod/demo2.gif b/front/public/assets/projects/spirit-mod/demo2.gif deleted file mode 100644 index 4e87fd8..0000000 Binary files a/front/public/assets/projects/spirit-mod/demo2.gif and /dev/null differ diff --git a/front/public/assets/projects/spirit-mod/thumbnail.png b/front/public/assets/projects/spirit-mod/thumbnail.png deleted file mode 100644 index 55f8d7e..0000000 Binary files a/front/public/assets/projects/spirit-mod/thumbnail.png and /dev/null differ diff --git a/front/public/assets/projects/spirit-mod/thumbnail.webp b/front/public/assets/projects/spirit-mod/thumbnail.webp deleted file mode 100644 index 0250f72..0000000 Binary files a/front/public/assets/projects/spirit-mod/thumbnail.webp and /dev/null differ diff --git a/front/src/app.css b/front/src/app.css deleted file mode 100644 index b16cfea..0000000 --- a/front/src/app.css +++ /dev/null @@ -1,161 +0,0 @@ -#app-main { - font-family: 'Hack', monospace; - max-width: 1280px; - margin: 0 auto; - padding: 2rem 2rem 2rem 2rem; - text-align: center; -} - -#app { - margin: 0 auto; - text-align: center; - align-content: center; - justify-content: center; -} - -.logo { - height: 6em; - padding: 1.5em; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.preact:hover { - filter: drop-shadow(0 0 2em #673ab8aa); -} - -/* fade in */ -@keyframes fade-in { - 0% { - opacity: 0; - transform: translateY(1em); - } - 60% { - transform: translateY(-0.2em); - } - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.main-info > * { - animation: fade-in 0.2s ease-in; -} - -.main-info { - text-align: center; -} - -@media (min-width: 1150px) { - .main-info { - margin-top: 72px; - } -} - -.main-info-image { - width: 128px; - height: 128px; - border-radius: 100%; - margin: 6px 6px 6px 6px; -} - -.main-info-title { - font-size: 42pt; -} - -.main-info-subtitle { - font-size: 26pt; - font-style: italic; - color: #5c6370; -} - -.quiet { - color: var(--color-gray); - font-style: italic; -} - -.section { - font-size: 22pt; -} - -.highlight { - color: #e5c07b; -} - -.back-shadows { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, var(--color-bg) 10%, var(--color-bg) 90%, rgba(0, 0, 0, 0) 100%); -} - -@media (max-width: 480px) { - .back-shadows { - margin: auto; - max-width: 80%; - } - .main-info-title { - font-size: 32pt; - } - - .main-info-subtitle { - font-size: 18pt; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .back-shadows { - margin: auto; - max-width: 60%; - } - .main-info-title { - font-size: 42pt; - } - - .main-info-subtitle { - font-size: 26pt; - } -} - -@media (min-width: 1150px) { - .back-shadows { - margin: auto; - max-width: 40%; - } - .main-info-title { - font-size: 42pt; - } - - .main-info-subtitle { - font-size: 26pt; - } -} - - -@media (max-width: 480px) { - .about-paragraph { - margin: auto; - font-size: 16pt; - max-width: 90%; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .about-paragraph { - margin: auto; - font-size: 18pt; - max-width: 80%; - } -} - -@media (min-width: 1150px) { - .about-paragraph { - margin: auto; - font-size: 18pt; - max-width: 60%; - } -} diff --git a/front/src/app.tsx b/front/src/app.tsx deleted file mode 100644 index ba081c9..0000000 --- a/front/src/app.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import './app.css' -import { Navbar } from './components/navbar' -import Contact from './pages/contact'; -import Games from './pages/games'; -import Home from './pages/home' -import { Router, Route, CustomHistory } from 'preact-router'; -import Projects from './pages/projects'; -import { HashHistory, createHashHistory } from 'history'; -import { AnimatedBg } from './components/animated_bg'; - -const hashHistoryAdapter = (hashHistory: HashHistory): CustomHistory => { - return { - listen: (callback) => hashHistory.listen(({ location }) => callback(location)), - location: hashHistory.location, - push: hashHistory.push, - replace: hashHistory.replace - }; -}; -export function App() { - const history = hashHistoryAdapter(createHashHistory()); - - return ( - <> - -
-
- - - - - - - -
- - ) -} diff --git a/front/src/components/animated_bg.tsx b/front/src/components/animated_bg.tsx deleted file mode 100644 index b5fdbb0..0000000 --- a/front/src/components/animated_bg.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import { Shaders, Node, GLSL } from "gl-react"; -import { Surface } from "gl-react-dom"; -import React, { FunctionComponent } from "preact/compat"; -import { PropsWithChildren } from "preact/compat"; - -const shaders = Shaders.create({ - letters: { - frag: GLSL` -precision highp float; -varying vec2 uv; -uniform vec3 color; -uniform sampler2D t; -uniform float time; -uniform vec2 tiles; -uniform float symbol_count; - -vec2 map_to_symbol_uv(vec2 image_coord, float symbol_index) { - float symbol_width = 1.0 / symbol_count; - float symbol_height = 1.0; - float symbol_x = symbol_index * symbol_width; - return vec2(symbol_x + image_coord.x * symbol_width, image_coord.y * symbol_height); -} - -vec2 tile_index(vec2 p, vec2 tiles) { - return vec2(floor(p.x * tiles.x), floor(p.y * tiles.y)); -} - -vec2 tilefy (vec2 p, vec2 tiles) { - return vec2(fract(p.x * tiles.x), fract(p.y * tiles.y)); -} - -float randf(float n) { - return fract(sin(n) * 43758.5453123); -} - -void main() { - vec2 tile = tile_index(uv, tiles); - float tilerand = randf(tile.x + tile.y * tiles.x); - float v = tilerand + randf(floor(tilerand * time)); - float diff = fract(tilerand * time); - float s = floor(v * 9.0); - vec2 tp = tilefy(uv, tiles); - vec2 tp_center = vec2(0.5, 0.5); - float d = distance(tp, tp_center); - float scale = min(sin(diff * 3.1415) * 1.2, 1.0); - tp = tp_center + (tp - tp_center) / scale; - if (tp.x < 0.0 || tp.x > 1.0 || tp.y < 0.0 || tp.y > 1.0) { - gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); - return; - } - vec2 p = map_to_symbol_uv(tp, mod(s, symbol_count)); - vec4 c = texture2D(t, p); - c.rgb *= color; - c.a *= uv.y * 4.0; - gl_FragColor = vec4(c.rgb * c.a, c.a); -} -` - } -}); - -const fps = 60; - -const AnimatedBgInternal = ({ tick }: { tick: number }) => { - const t = "/assets/images/symbols.png"; - - return ( -
- - - -
- ); -} - -// a higher order component that provides a tick prop -// that updates every 1/refreshRate seconds -// -// accepts a JSX component as an argument -const timeLoop = ( - C: FunctionComponent>, - { refreshRate }: { refreshRate: number } -) => { - return class TimeLoop extends React.Component { - interval: any; - state = { tick: 0 }; - - componentDidMount() { - this.interval = setInterval(() => { - this.setState({ tick: this.state.tick + 1 }); - }, 1000 / refreshRate); - } - - componentWillUnmount() { - clearInterval(this.interval); - } - - render() { - return ; - } - }; -} - -const checkWebGL = () => { - try { - const canvas = document.createElement("canvas"); - return !!( - window.WebGLRenderingContext && - (canvas.getContext("webgl") || canvas.getContext("experimental-webgl")) - ); - } catch (e) { - return false; - } -} - -export const AnimatedBg = checkWebGL() ? timeLoop(AnimatedBgInternal, { refreshRate: fps }) : () =>
; diff --git a/front/src/components/carousel.css b/front/src/components/carousel.css deleted file mode 100644 index f311805..0000000 --- a/front/src/components/carousel.css +++ /dev/null @@ -1,68 +0,0 @@ -.carousel-content { - align-self: center; - max-height: 100%; - white-space: nowrap; - -ms-overflow-style: none; /* hide scrollbar in IE and Edge */ - scrollbar-width: none; /* hide scrollbar in Firefox */ -} - -.carousel-item { - width: 100%; - flex-shrink: 0; - height: auto; - float: left; - text-align: center; - transition: all 250ms linear; - white-space: nowrap; - vertical-align: middle; -} - -.slick-slider { - margin: 24px; -} - -.slick-slide { - margin: 0 auto; - border-radius: 10px; - text-align: center; - float: none !important; - display: inline-block !important; - vertical-align: middle; - min-height: 1px; -} - -.carousel-item > * { - border-radius: 10px; - vertical-align: middle; - width: 100%; - height: auto; -} - -.slick-dots li button::before { - color: var(--color-fg) !important; -} - -@media (max-width: 1150px) { - .carousel-wrapper { - margin: 60px auto; - width: 330px; - height: 220px; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .carousel-wrapper { - margin: 60px auto; - width: 480px; - height: 360px; - } -} - -@media (min-width: 1150px) { - .carousel-wrapper { - float: right; - width: 480px; - height: 360px; - } -} - diff --git a/front/src/components/carousel.tsx b/front/src/components/carousel.tsx deleted file mode 100644 index af9279b..0000000 --- a/front/src/components/carousel.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import './carousel.css'; -import Slider, { Settings } from 'react-slick'; -import "slick-carousel/slick/slick.css"; -import "slick-carousel/slick/slick-theme.css"; - -export default function Carousel(props: { children: any }) { - const settings: Settings = { - dots: true, - infinite: true, - speed: 500, - slidesToShow: 1, - slidesToScroll: 1 - }; - - return ( - - ); -} diff --git a/front/src/components/navbar-item.tsx b/front/src/components/navbar-item.tsx deleted file mode 100644 index c2f2306..0000000 --- a/front/src/components/navbar-item.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import * as preact from "preact"; - -export function NavbarItem(props: any) { - const { name, href, children, rel } = props; - - return (preact.createElement("div", { className: "navbar-item" }, - preact.createElement("a", { className: "navbar-item-" + name, href: href, rel: rel }, children))); -} diff --git a/front/src/components/navbar.css b/front/src/components/navbar.css deleted file mode 100644 index 9120052..0000000 --- a/front/src/components/navbar.css +++ /dev/null @@ -1,278 +0,0 @@ -/* on big screens, navbar is fixed to the top of the screen */ -.navbar-container { - position: fixed; - /* gradient from top to bottom, full to transparent */ - top: 0; - width: 100%; - z-index: 9999; - margin: auto; -} - -/* on smaller ones, make it behave as a normal element laid out at the top of the page */ -@media (max-width: 1150px) { - .navbar-container { - position: static; - } -} - -.navbar { - padding-top: 20pt; - padding-bottom: 12pt; - align-items: center; - justify-content: center; - align-self: center; - background: linear-gradient(to bottom, var(--color-bg) 0%, var(--color-bg) 75%, rgba(0, 0, 0, 0) 100%); -} - -.navbar-icon { - font-family: Hack, monospace; - font-weight: 500; - color: #646cff; - font-size: 1.5em; - padding: 0.5em; - margin: 0.5em; -} - -.navbar { - align-self: center; - display: block; - width: 100%; - text-align: center; -} - -.navbar-item { - font-family: Hack, monospace; - font-size: 18pt; - text-align: center; - float: none; - clear: left; - display: inline-block; - margin: 0 0.25em; - transition: all 0.2s ease-in-out; -} - -.navbar-item:hover { - padding-left: 0.5em; - padding-right: 0.5em; - transition: all 0.2s ease-in-out; -} - -.navbar-current { - font-weight: bold; -} - -/* home */ - -.navbar-item-home:link { - color: #98C379; - text-decoration: none; -} - -.navbar-item-home:visited { - color: #98C379; - text-decoration: none; -} - -.navbar-item-home:hover { - color: #afd088; - text-decoration: underline; -} - -.navbar-item-home:active { - color: #afd088; - text-decoration: underline; -} - -/* games */ - -.navbar-item-games:link { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-games:visited { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-games:hover { - color: #ef7a80; - text-decoration: underline; -} - -.navbar-item-games:active { - color: #ef7a90; - text-decoration: underline; -} - -/* projects */ - -.navbar-item-projects:link { - color: #d19a66; - text-decoration: none; -} - -.navbar-item-projects:visited { - color: #d19a66; - text-decoration: none; -} - -.navbar-item-projects:hover { - color: #dfa873; - text-decoration: underline; -} - -.navbar-item-projects:active { - color: #dffa73; - text-decoration: underline; -} - -/* github */ - -.navbar-item-github:link { - color: #c678dd; - text-decoration: none; -} - -.navbar-item-github:visited { - color: #c678dd; - text-decoration: none; -} - -.navbar-item-github:hover { - color: #d286eb; - text-decoration: underline; -} - -.navbar-item-github:active { - color: #d286eb; - text-decoration: underline; -} - -/* itch */ - -.navbar-item-itch:link { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-itch:visited { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-itch:hover { - color: #ef7a80; - text-decoration: underline; -} - -.navbar-item-itch:active { - color: #ef7a90; - text-decoration: underline; -} - -/* twitter */ - -.navbar-item-twitter:link { - text-decoration: none; -} - -.navbar-item-twitter:visited { - text-decoration: none; -} - -.navbar-item-twitter:hover { - text-decoration: underline; -} - -.navbar-item-twitter:active { - text-decoration: underline; -} - -/* mastodon */ - -.navbar-item-mastodon:link { - color: #6a4ae0; - text-decoration: none; -} - -.navbar-item-mastodon:visited { - color: #6a4ae0; - text-decoration: none; -} - -.navbar-item-mastodon:hover { - color: #7a55e8; - text-decoration: underline; -} - -.navbar-item-mastodon:active { - color: #7a55e8; - text-decoration: underline; -} - -/* cohost */ - -.navbar-item-cohost:link { - color: #b63b73; - text-decoration: none; -} - -.navbar-item-cohost:visited { - color: #b63b73; - text-decoration: none; -} - -.navbar-item-cohost:hover { - color: #c54a7f; - text-decoration: underline; -} - -.navbar-item-cohost:active { - color: #c54a7f; - text-decoration: underline; -} - -/* tumblr */ - -.navbar-item-tumblr:link { - color: #00b8ff; - text-decoration: none; -} - -.navbar-item-tumblr:visited { - color: #00b8ff; - text-decoration: none; -} - -.navbar-item-tumblr:hover { - color: #00c5ff; - text-decoration: underline; -} - -.navbar-item-tumblr:active { - color: #00c5ff; - text-decoration: underline; -} - -/* contact */ - -.navbar-item-contact:link { - color: #e5c07b; - text-decoration: none; -} - -.navbar-item-contact:visited { - color: #e5c07b; - text-decoration: none; -} - -.navbar-item-contact:hover { - color: #f2ce89; - text-decoration: underline; -} - -.navbar-item-contact:active { - color: #f2ce89; - text-decoration: underline; -} diff --git a/front/src/components/navbar.tsx b/front/src/components/navbar.tsx deleted file mode 100644 index ba3d7d7..0000000 --- a/front/src/components/navbar.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import './navbar.css'; - -import { NavbarItem } from './navbar-item'; - -export function Navbar() { - return ( - - ); -} diff --git a/front/src/components/project.css b/front/src/components/project.css deleted file mode 100644 index 89ce30f..0000000 --- a/front/src/components/project.css +++ /dev/null @@ -1,137 +0,0 @@ -.icon { - display: inline; - width: 32px; - height: 32px; - transition: 0.3s; - transform-origin: center; - filter: brightness(70%) -} - -.icon:hover { - filter: brightness(80%); -} - -.icon-row { - width: 320px; - height: 36px; -} - -.icon-container { - height: 36px; - float: right; -} - -.icon-text { - width: auto; - height: 36px; - line-height: 36px; - float: left; - vertical-align: middle; - margin-right: 8px; - color: #5c6370; -} - -.projects-container { - width: 100%; - max-width: 1120px; - margin: auto; - margin-top: 24pt; - margin-bottom: 48pt; - align-items: center; - justify-content: center; - align-self: center; -} - -.project { - display: table; - align-self: center; - clear: both; - margin-bottom: 24pt; -} - -.project-info { - font-size: 14pt; -} - -.project-description { - font-size: 16pt; - text-align: justify; -} - -.project-image-gallery { - margin-left: 24px; - margin-right: 10px; -} - -@media (max-width: 1150px) { - .project-title { - text-align: center; - font-size: 24pt; - margin-bottom: 8px; - text-decoration-line: underline; - } - - .project-image-gallery { - margin: 60px auto; - width: 330px; - height: 220px; - } - - .project-info { - float: none; - width: 90%; - margin: auto; - } - - .project-description { - font-size: 14pt; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .project-title { - text-align: center; - font-size: 24pt; - margin-bottom: 8px; - text-decoration-line: underline; - } - .project-image-gallery { - margin: 60px auto; - width: 480px; - height: 360px; - } - - .project-info { - float: none; - width: 90%; - margin: auto; - } - - .project-description { - font-size: 14pt; - } -} - -@media (min-width: 1150px) { - .project-title { - text-align: left; - font-size: 32pt; - margin-bottom: 8px; - text-decoration-line: underline; - } - .project-image-gallery { - float: right; - width: 480px; - height: 360px; - } - .project-info { - float: left; - max-width: 600px; - } - - .project-description { - font-size: 16pt; - } -} - - diff --git a/front/src/components/project.tsx b/front/src/components/project.tsx deleted file mode 100644 index cd5cb89..0000000 --- a/front/src/components/project.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import Carousel from "./carousel"; -import './project.css'; - -enum ProjectType { - GAME = "game", - PROJECT = "project", -} - -export enum ProjectTech { - CSHARP = "csharp", - RUST = "rust", - C = "c", - CPP = "cpp", - JAVASCRIPT = "javascript", - TYPESCRIPT = "typescript", - HTML = "html", - CSS = "css", - - PREACT = "preact", - UNITY = "unity", - GODOT = "godot", - MONOGAME = "monogame", -} - -export enum ProjectTarget { - WEB = "html5", - WINDOWS = "windows", - LINUX = "linux", - MACOS = "macos", - ANDROID = "android", - XBOX = "xbox", - PLAYSTATION = "playstation", - SWITCH = "switch", - HYPRLAND = "hyprland", -} - -export interface ProjectDescriptor { - name: string; - name_normalized: string; - type: ProjectType; - link: string; - tech: ProjectTech[]; - targets: ProjectTarget[]; - images: string[]; - description: string; -} - -function getProjectImageLink(project: ProjectDescriptor, image: string) { - return `assets/${project.type}s/${project.name_normalized}/${image}`; -} - -function getProjectTechIconLink(tech: ProjectTech) { - return `assets/images/${tech}.png`; -} - -function getProjectTargetIconLink(target: ProjectTarget) { - return `assets/images/${target}.png`; -} - -export function Project(props: ProjectDescriptor) { - return ( -
- -
-
-
Made using
-
- {props.tech.map((tech) => ( - - ))} -
-
-
-
Available on
-
- {props.targets.map((target) => ( - - ))} -
-
-
-
- { - // use description as html -
- } -
-
- {props.images && props.images.length > 0 && - - {props.images.map((image) => ( - - ))} - - } -
- ); -} diff --git a/front/src/data/games.json b/front/src/data/games.json deleted file mode 100644 index 0e6a070..0000000 --- a/front/src/data/games.json +++ /dev/null @@ -1,229 +0,0 @@ -[ - { - "name": "Mr Final Boss", - "name_normalized": "mr-final-boss", - "type": "game", - "link": "https://jellingfish-games.itch.io/mr-final-boss", - "tech": [ - "unity", - "csharp" - ], - "targets": [ - "windows", - "html5" - ], - "images": [ - "thumbnail.png", - "screenshot1.png", - "screenshot2.png", - "screenshot3.png", - "screenshot4.png" - ], - "description": "The legends say that one day, brave Heroes will slay the evil and malicious Ignatius, the Chaos Bringer... But YOU won't go down without a fight! Be the bossfight everyone is dreading and hunt down as many Heroes as you can in your last stand using a variety of abilities you can choose from!
Game made in 72 hours for Ludum Dare 50, with the theme \"Delay the Inevitable\"." - }, - { - "name": "BUMBLING BUILDERS", - "name_normalized": "bumbling-builders", - "type": "game", - "link": "https://oroshibu.itch.io/bumbling-builders", - "tech": [ - "unity", - "csharp" - ], - "targets": [ - "windows", - "html5" - ], - "images": [ - "thumbnail.png", - "screenshot1.png", - "screenshot2.png", - "screenshot3.png" - ], - "description": "A physics puzzle game in which you need to protect little creatures from danger that could come from any direction. Build forts with tetris-style blocks. The game features 30+ levels, multiple distinct enemies and a star rating system.
Game made in 72 hours for Ludum Dare 49, with the theme \"Unstable\"." - }, - { - "name": "LOUD: My Road To Fame", - "name_normalized": "loud", - "type": "game", - "link": "https://store.steampowered.com/app/1838290/LOUD_My_Road_to_Fame/", - "tech": [ - "unity", - "csharp" - ], - "targets": [ - "windows", - "xbox", - "playstation", - "switch" - ], - "images": [ - "thumbnail.jpg", - "screenshot1.jpg", - "screenshot2.jpg", - "screenshot3.jpg" - ], - "description": "A wholesome, music-filled arcade rhythm game in which a young, reclusive rocker goes on a journey of self-discovery. Once she begins to follow her dreams and finds her inner voice, she discovers that it is LOUD!
One of the games I've worked on at Hyperstrange" - }, - { - "name": "WUZMAG", - "name_normalized": "wuzmag", - "type": "game", - "link": "https://duckonaut.itch.io/wuzmag", - "tech": [ - "unity", - "csharp" - ], - "targets": [ - "windows", - "html5" - ], - "images": [ - "thumbnail.png", - "screenshot1.png", - "screenshot2.png", - "screenshot3.png" - ], - "description": "Turn based arcade survival game. Survive as long as you can by freezing enemies and using them to defeat more enemies.
Game made in roughly 8 hours for a private game jam with friends." - }, - { - "name": "Miro", - "name_normalized": "miro", - "type": "game", - "link": "https://duckonaut.itch.io/miro", - "tech": [ - "monogame", - "csharp" - ], - "targets": [ - "windows" - ], - "images": [ - "thumbnail.png", - "screenshot1.png", - "screenshot2.png", - "screenshot3.png" - ], - "description": "Small chill game made mostly as an experiment for a nice 2D renderer mechanic. Infect the world around you, breaking it down into its simplest components.
Game made in roughly 8 hours for a private game jam with friends." - }, - { - "name": "Thermal Trail", - "name_normalized": "thermal-trail", - "type": "game", - "link": "https://duckonaut.itch.io/thermal-trail", - "tech": [ - "godot", - "csharp" - ], - "targets": [ - "windows", - "html5" - ], - "images": [ - "gameart.png", - "screenshot1.png", - "screenshot2.png", - "screenshot3.png", - "screenshot4.png" - ], - "description": "Play as Yolka, a mountain goat who found an unknown egg. Keep the egg warm as you navigate the 3 distinct worlds, and bring it to the hottest place you know: the depths of a volcano.
Game made in a week for Newgrounds July Jam 2021, with the theme \"Egg\"." - }, - { - "name": "Greachers", - "name_normalized": "greachers", - "type": "game", - "link": "https://duckonaut.itch.io/greachers", - "tech": [ - "monogame", - "csharp" - ], - "targets": [ - "windows" - ], - "images": [ - "title.png", - "screenshot1.png", - "screenshot2.png", - "screenshot3.png" - ], - "description": "Tiny idle simulation game where you manage a team of randomly generated little fellas as they fight other greachers in a sidescrolling world with beautiful procedurally generated graphics.
Game made in 2 weeks for LOWREZJAM 2021, with the theme \"Minibeasts\"." - }, - { - "name": "Third Party", - "name_normalized": "third-party", - "type": "game", - "link": "https://duckonaut.itch.io/third-party", - "tech": [ - "godot" - ], - "targets": [ - "windows", - "html5" - ], - "images": [ - "thumbnail.png", - "screenshot1.jpg", - "screenshot2.jpg", - "screenshot3.jpg", - "screenshot4.jpg" - ], - "description": "A top-down stealth game where you play as a spy tasked with stealing important data from a rivaling government. Your task would be easy enough if your objective wasn’t in a underground top-secret facility handling an alien outbreak. Without access to conventional stealth techniques, use corpses of your enemies to sneak through the battlefield.
Game made in 72 hours for Ludum Dare 48, with the theme \"Deeper and deeper\"." - }, - { - "name": "Your Left", - "name_normalized": "your-left", - "type": "game", - "link": "https://xatriv.itch.io/your-left", - "tech": [ - "unity", - "csharp" - ], - "targets": [ - "windows" - ], - "images": [ - "thumbnail.png", - "screenshot1.jpg", - "screenshot2.jpg", - "screenshot3.jpg" - ], - "description": "A simple pacman-inspired arcade game. Try to grab all the stars in a randomly generated maze before the time expires, while your controls are scattered all over the screen. Get as far as you can to get the highest score.
Game made in 8 hours for Jam Jam, a local in-person event organized by KNTG Polygon, with the theme \"One Click\"." - }, - { - "name": "Riff n' Rage", - "name_normalized": "riff-n-rage", - "type": "game", - "link": "https://duckonaut.itch.io/riff-n-rage", - "tech": [ - "monogame", - "csharp" - ], - "targets": [ - "windows" - ], - "images": [ - "thumbnail.png", - "screenshot1.png", - "screenshot2.png" - ], - "description": "You just got your first guitar, and through sheer luck managed to land in the king's throne room, trying to entertain him. Sadly, his subjects aren't huge fans of your music. Dodge them while trying to play the best you can, or the king won't be merciful.
Game made in 48 hours for a special solo game jam among friends. My theme was \"Power at a price\"." - }, - { - "name": "Survive the Temple", - "name_normalized": "survive-the-temple", - "type": "game", - "link": "https://duckonaut.itch.io/survive-the-temple", - "tech": [ - "godot" - ], - "targets": [ - "windows", - "html5" - ], - "images": [ - "cover.png", - "screenshot.png" - ], - "description": "A quick movement focused platformer that tests your short term memory. Survive the trap system of an ancient temple! Dash through the lanterns in the correct order before the time runs out, or face certain death!
Game made in 48 hours for Ludum Dare Compo 47 with the theme \"Stuck in a loop\"." - } -] diff --git a/front/src/data/projects.json b/front/src/data/projects.json deleted file mode 100644 index b31b164..0000000 --- a/front/src/data/projects.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "name": "hyprload", - "name_normalized": "hyprload", - "type": "project", - "link": "https://github.com/duckonaut/hyprload", - "tech": [ - "cpp" - ], - "targets": [ - "linux", - "hyprland" - ], - "images": [ - "logo.png" - ], - "description": "hyprload acts as a plugin manager for the Hyprland Wayland Compositor. It's loaded as a plugin and allows easy, declarative installation and updates of other plugins." - }, - { - "name": "split-monitor-workspaces", - "name_normalized": "split-monitor-workspaces", - "type": "project", - "link": "https://github.com/duckonaut/split-monitor-workspaces", - "tech": [ - "cpp" - ], - "targets": [ - "linux", - "hyprland" - ], - "description": "A small plugin for the Hyprland Wayland Compositor that allows you to have different workspace namespaces on different monitors." - }, - { - "name": "Spirit Mod", - "name_normalized": "spirit-mod", - "type": "project", - "link": "https://spiritmod.fandom.com/wiki/Spirit_Mod_Wiki", - "tech": [ - "csharp" - ], - "targets": [ - "windows", - "linux", - "macos" - ], - "images": [ - "thumbnail.png", - "demo1.gif", - "demo2.gif" - ], - "description": "The Spirit Mod is one of the largest mods for Terraria: with more than 1300 items, 8 bosses, and hundreds of enemies, as well as 3 new events and 3 brand new biomes, the mod has a lot to offer.
I had the privilege of contributing some system code, mainly the \"Stargoop\" system." - } -] diff --git a/front/src/index.css b/front/src/index.css deleted file mode 100644 index 9941a36..0000000 --- a/front/src/index.css +++ /dev/null @@ -1,108 +0,0 @@ -:root { - font-weight: 400; - - color-scheme: dark; - color: var(--color-fg); - background-color: var(--color-bg); - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; - - /* variables */ - --color-bg: #161f30; - --color-fg: #a3b3d9; - --color-search-blue: #083C5A; - --color-white: #a3b3d9; - --color-gray: #647089; - --color-dark-gray: #3e4451; - --color-context: #6b737f; - --color-light-gray: #c8ccd4; - --color-tree-gray: #1b1f27; - --color-blue: #6080dd; - --color-vivid-blue: #61afef; - --color-dark-blue: #223E55; - --color-folder-blue: #61afef; - --color-light-blue: #a3b3d9; - --color-green: #449871; - --color-cyan: #56b6c2; - --color-light-green: #98c379; - --color-red: #c13251; - --color-orange: #c18a56; - --color-light-red: #e06c75; - --color-yellow: #e5c07b; - --color-purple: #604bd8; - --color-magenta: #b071fc; -} - -a:link { - font-weight: 500; - color: #4fc1ff; - text-decoration: inherit; -} - -a:visited { - color: #4fc1ff; -} - -a:hover { - color: #60d2ff; -} - -a:active { - color: #66d8ff; -} - - -body { - margin: 0; - /* display: flex; */ - /* place-items: center; */ - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -span { - display: inline; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -.hack { - font-family: Hack, monospace; - font-weight: 500; -} - -.grow { - transition: all .2s ease-in-out; - transform: scale(1); -} - -.grow:hover { - transition: all .2s ease-in-out; - transform: scale(1.1); -} diff --git a/front/src/main.tsx b/front/src/main.tsx deleted file mode 100644 index 846cd1e..0000000 --- a/front/src/main.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { render } from 'preact' -import { App } from './app.tsx' -import './index.css' - -render(, document.getElementById('app')!) diff --git a/front/src/pages/contact.css b/front/src/pages/contact.css deleted file mode 100644 index 93b63bd..0000000 --- a/front/src/pages/contact.css +++ /dev/null @@ -1,22 +0,0 @@ -.contact-container { - width: 100%; - max-width: 1120px; - margin: auto; - margin-top: 24pt; - margin-bottom: 48pt; - align-items: center; - justify-content: center; - align-self: center; - font-size: 18pt; -} - -.contact { - margin-top: 24pt; - margin-bottom: 8pt; - font-size: 20pt; - color: #98C379; -} - -.highlight { - color: #e5c07b; -} diff --git a/front/src/pages/contact.tsx b/front/src/pages/contact.tsx deleted file mode 100644 index efc9eba..0000000 --- a/front/src/pages/contact.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import './contact.css'; - -export default function Contact() { - return ( -
-
- Contact -
-
-
- Discord -
- - usually the fastest way to reach me -
- EchoDuck#7866 - -
- Matrix -
- for the FOSS folks -
- @echoduck:matrix.org - -
- Email -
- I check my email daily -
- duckonaut@gmail.com -
-
- ); -} diff --git a/front/src/pages/games.css b/front/src/pages/games.css deleted file mode 100644 index e69de29..0000000 diff --git a/front/src/pages/games.tsx b/front/src/pages/games.tsx deleted file mode 100644 index 6d0d2bd..0000000 --- a/front/src/pages/games.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Project, ProjectDescriptor } from '../components/project'; -import projectsJson from '../data/games.json'; - -const projects: ProjectDescriptor[] = projectsJson as ProjectDescriptor[]; - -export default function Games() { - return ( - <> -
-
- Game Projects -
-
- games I've worked on -
-
- { - projects.map((project) => ( - Project(project) - )) - } -
-
- - ); -} - diff --git a/front/src/pages/home.tsx b/front/src/pages/home.tsx deleted file mode 100644 index c44cef9..0000000 --- a/front/src/pages/home.tsx +++ /dev/null @@ -1,29 +0,0 @@ -export default function Home() { - return ( - <> -
-
- Stanisław Zagórowski -
-
- aka Duckonaut, EchoDuck -
- - -
-

- Hello! I'm a programmer, game designer, and artist. I'm currently a student at the Warsaw University of - Technology, studying Computer Science. A list of the games I've worked on is in the games section. Other projects I've been a part of are available in the projects section. - I also enjoy some lower-level programming and learning about the inner workings of various systems. The main - technologies I use are C#, Unity - , Python, Rust and C, - although I'm also familiar with Godot, C++ - , Java and some JavaScript and TypeScript. -

-
-
- - ); -} diff --git a/front/src/pages/projects.tsx b/front/src/pages/projects.tsx deleted file mode 100644 index 2753f91..0000000 --- a/front/src/pages/projects.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Project, ProjectDescriptor } from '../components/project'; -import projectsJson from '../data/projects.json'; - -const projects: ProjectDescriptor[] = projectsJson as ProjectDescriptor[]; - -export default function Projects() { - return ( - <> -
-
- Other Projects -
-
- projects that are not games -
- -
- { - projects.map((project) => ( - Project(project) - )) - } -
-
- - ); -} diff --git a/front/src/vite-env.d.ts b/front/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/front/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/front/tsconfig.json b/front/tsconfig.json deleted file mode 100644 index 907453c..0000000 --- a/front/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "module": "ESNext", - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "jsxImportSource": "preact", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - - "baseUrl": "./", - "paths": { - "react": ["node_modules/preact/compat"], - "react-dom": ["node_modules/preact/compat"] - } - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/front/tsconfig.node.json b/front/tsconfig.node.json deleted file mode 100644 index 42872c5..0000000 --- a/front/tsconfig.node.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/front/vite.config.ts b/front/vite.config.ts deleted file mode 100644 index 075ba1f..0000000 --- a/front/vite.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from 'vite' -import preact from '@preact/preset-vite' - -// https://vitejs.dev/config/ -export default defineConfig({ - define: { - global: 'window', - }, - plugins: [preact()], -}) diff --git a/luax/common.luax b/luax/common.luax index dcd443c..8d12b41 100644 --- a/luax/common.luax +++ b/luax/common.luax @@ -23,14 +23,14 @@ return - - - - - - - - + + + + + + + + diff --git a/luax/pages/contact.luax b/luax/pages/contact.luax index f7085ab..95ad0fb 100644 --- a/luax/pages/contact.luax +++ b/luax/pages/contact.luax @@ -18,14 +18,14 @@ return function()
for the FOSS folks
- *@echoduck:matrix.org + @echoduck:matrix.org
Email
I check my email daily
- duckonaut*@gmail.com + duckonaut@gmail.com
end diff --git a/luax/public/app.css b/luax/public/app.css deleted file mode 100644 index c390f73..0000000 --- a/luax/public/app.css +++ /dev/null @@ -1,171 +0,0 @@ -#app-main { - font-family: 'Hack', monospace; - max-width: 1280px; - margin: 0 auto; - padding: 2rem 2rem 2rem 2rem; - text-align: center; -} - -#app { - margin: 0 auto; - text-align: center; - align-content: center; - justify-content: center; -} - -.logo { - height: 6em; - padding: 1.5em; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.preact:hover { - filter: drop-shadow(0 0 2em #673ab8aa); -} - -/* fade in */ -@keyframes fade-in { - 0% { - opacity: 0; - transform: translateY(1em); - } - 60% { - transform: translateY(-0.2em); - } - 100% { - opacity: 1; - transform: translateY(0); - } -} - -.main-info > * { - animation: fade-in 0.2s ease-in; -} - -.main-info { - text-align: center; -} - -@media (min-width: 1150px) { - .main-info { - margin-top: 72px; - } -} - -.main-info-image { - width: 128px; - height: 128px; - border-radius: 100%; - margin: 6px 6px 6px 6px; -} - -.main-info-title { - font-size: 42pt; -} - -.main-info-subtitle { - font-size: 26pt; - font-style: italic; - color: #5c6370; -} - -.quiet { - color: var(--color-gray); - font-style: italic; -} - -.section { - font-size: 22pt; -} - -.highlight { - color: #e5c07b; -} - -.back-shadows { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, var(--color-bg) 10%, var(--color-bg) 90%, rgba(0, 0, 0, 0) 100%); -} - -#animated-bg { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: -10; -} - - -@media (max-width: 480px) { - .back-shadows { - margin: auto; - max-width: 80%; - } - .main-info-title { - font-size: 32pt; - } - - .main-info-subtitle { - font-size: 18pt; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .back-shadows { - margin: auto; - max-width: 60%; - } - .main-info-title { - font-size: 42pt; - } - - .main-info-subtitle { - font-size: 26pt; - } -} - -@media (min-width: 1150px) { - .back-shadows { - margin: auto; - max-width: 40%; - } - .main-info-title { - font-size: 42pt; - } - - .main-info-subtitle { - font-size: 26pt; - } -} - - -@media (max-width: 480px) { - .about-paragraph { - margin: auto; - font-size: 16pt; - max-width: 90%; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .about-paragraph { - margin: auto; - font-size: 18pt; - max-width: 80%; - } -} - -@media (min-width: 1150px) { - .about-paragraph { - margin: auto; - font-size: 18pt; - max-width: 60%; - } -} diff --git a/luax/public/assets b/luax/public/assets deleted file mode 120000 index d36378d..0000000 --- a/luax/public/assets +++ /dev/null @@ -1 +0,0 @@ -../../front/public/assets \ No newline at end of file diff --git a/luax/public/assets/app.css b/luax/public/assets/app.css new file mode 100644 index 0000000..c390f73 --- /dev/null +++ b/luax/public/assets/app.css @@ -0,0 +1,171 @@ +#app-main { + font-family: 'Hack', monospace; + max-width: 1280px; + margin: 0 auto; + padding: 2rem 2rem 2rem 2rem; + text-align: center; +} + +#app { + margin: 0 auto; + text-align: center; + align-content: center; + justify-content: center; +} + +.logo { + height: 6em; + padding: 1.5em; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.preact:hover { + filter: drop-shadow(0 0 2em #673ab8aa); +} + +/* fade in */ +@keyframes fade-in { + 0% { + opacity: 0; + transform: translateY(1em); + } + 60% { + transform: translateY(-0.2em); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.main-info > * { + animation: fade-in 0.2s ease-in; +} + +.main-info { + text-align: center; +} + +@media (min-width: 1150px) { + .main-info { + margin-top: 72px; + } +} + +.main-info-image { + width: 128px; + height: 128px; + border-radius: 100%; + margin: 6px 6px 6px 6px; +} + +.main-info-title { + font-size: 42pt; +} + +.main-info-subtitle { + font-size: 26pt; + font-style: italic; + color: #5c6370; +} + +.quiet { + color: var(--color-gray); + font-style: italic; +} + +.section { + font-size: 22pt; +} + +.highlight { + color: #e5c07b; +} + +.back-shadows { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: -1; + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, var(--color-bg) 10%, var(--color-bg) 90%, rgba(0, 0, 0, 0) 100%); +} + +#animated-bg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -10; +} + + +@media (max-width: 480px) { + .back-shadows { + margin: auto; + max-width: 80%; + } + .main-info-title { + font-size: 32pt; + } + + .main-info-subtitle { + font-size: 18pt; + } +} + +@media (max-width: 1150px) and (min-width: 480px) { + .back-shadows { + margin: auto; + max-width: 60%; + } + .main-info-title { + font-size: 42pt; + } + + .main-info-subtitle { + font-size: 26pt; + } +} + +@media (min-width: 1150px) { + .back-shadows { + margin: auto; + max-width: 40%; + } + .main-info-title { + font-size: 42pt; + } + + .main-info-subtitle { + font-size: 26pt; + } +} + + +@media (max-width: 480px) { + .about-paragraph { + margin: auto; + font-size: 16pt; + max-width: 90%; + } +} + +@media (max-width: 1150px) and (min-width: 480px) { + .about-paragraph { + margin: auto; + font-size: 18pt; + max-width: 80%; + } +} + +@media (min-width: 1150px) { + .about-paragraph { + margin: auto; + font-size: 18pt; + max-width: 60%; + } +} diff --git a/luax/public/assets/carousel.css b/luax/public/assets/carousel.css new file mode 100644 index 0000000..2465370 --- /dev/null +++ b/luax/public/assets/carousel.css @@ -0,0 +1,69 @@ +.carousel-content { + align-self: center; + max-height: 100%; + white-space: nowrap; + -ms-overflow-style: none; /* hide scrollbar in IE and Edge */ + scrollbar-width: none; /* hide scrollbar in Firefox */ +} + +.carousel-item { + width: 100%; + flex-shrink: 0; + height: auto; + float: left; + text-align: center; + transition: all 250ms linear; + white-space: nowrap; + vertical-align: middle; +} + +.slick-slider { + margin: 24px; +} + +.slick-slide { + margin: 0 auto; + border-radius: 10px; + text-align: center; + float: none !important; + display: inline-block !important; + vertical-align: middle; + min-height: 1px; +} + +/* .carousel-item > * { */ +/* border-radius: 10px; */ +/* vertical-align: middle; */ +/* width: 100%; */ +/* height: auto; */ +/* } */ + +.slick-dots li button::before { + color: var(--color-fg) !important; +} + +@media (max-width: 1150px) { + .carousel-wrapper { + margin: 60px auto; + width: 330px; + height: 220px; + } +} + +@media (max-width: 1150px) and (min-width: 480px) { + .carousel-wrapper { + margin: 60px auto; + width: 480px; + height: 360px; + } +} + +@media (min-width: 1150px) { + .carousel-wrapper { + float: right; + width: 480px; + height: 360px; + } +} + + diff --git a/luax/public/assets/contact.css b/luax/public/assets/contact.css new file mode 100644 index 0000000..93b63bd --- /dev/null +++ b/luax/public/assets/contact.css @@ -0,0 +1,22 @@ +.contact-container { + width: 100%; + max-width: 1120px; + margin: auto; + margin-top: 24pt; + margin-bottom: 48pt; + align-items: center; + justify-content: center; + align-self: center; + font-size: 18pt; +} + +.contact { + margin-top: 24pt; + margin-bottom: 8pt; + font-size: 20pt; + color: #98C379; +} + +.highlight { + color: #e5c07b; +} diff --git a/luax/public/assets/games/bumbling-builders/screenshot1.png b/luax/public/assets/games/bumbling-builders/screenshot1.png new file mode 100644 index 0000000..7a8a2db Binary files /dev/null and b/luax/public/assets/games/bumbling-builders/screenshot1.png differ diff --git a/luax/public/assets/games/bumbling-builders/screenshot2.png b/luax/public/assets/games/bumbling-builders/screenshot2.png new file mode 100644 index 0000000..5eb0a1f Binary files /dev/null and b/luax/public/assets/games/bumbling-builders/screenshot2.png differ diff --git a/luax/public/assets/games/bumbling-builders/screenshot3.png b/luax/public/assets/games/bumbling-builders/screenshot3.png new file mode 100644 index 0000000..41f65ac Binary files /dev/null and b/luax/public/assets/games/bumbling-builders/screenshot3.png differ diff --git a/luax/public/assets/games/bumbling-builders/thumbnail.png b/luax/public/assets/games/bumbling-builders/thumbnail.png new file mode 100644 index 0000000..1c723a2 Binary files /dev/null and b/luax/public/assets/games/bumbling-builders/thumbnail.png differ diff --git a/luax/public/assets/games/dicemask/thumbnail.png b/luax/public/assets/games/dicemask/thumbnail.png new file mode 100644 index 0000000..f9bc9ee Binary files /dev/null and b/luax/public/assets/games/dicemask/thumbnail.png differ diff --git a/luax/public/assets/games/greachers/screenshot1.png b/luax/public/assets/games/greachers/screenshot1.png new file mode 100644 index 0000000..444106e Binary files /dev/null and b/luax/public/assets/games/greachers/screenshot1.png differ diff --git a/luax/public/assets/games/greachers/screenshot2.png b/luax/public/assets/games/greachers/screenshot2.png new file mode 100644 index 0000000..e968c4f Binary files /dev/null and b/luax/public/assets/games/greachers/screenshot2.png differ diff --git a/luax/public/assets/games/greachers/screenshot3.png b/luax/public/assets/games/greachers/screenshot3.png new file mode 100644 index 0000000..6433fb6 Binary files /dev/null and b/luax/public/assets/games/greachers/screenshot3.png differ diff --git a/luax/public/assets/games/greachers/title.png b/luax/public/assets/games/greachers/title.png new file mode 100644 index 0000000..cdb3e67 Binary files /dev/null and b/luax/public/assets/games/greachers/title.png differ diff --git a/luax/public/assets/games/loud/screenshot1.jpg b/luax/public/assets/games/loud/screenshot1.jpg new file mode 100644 index 0000000..8192c15 Binary files /dev/null and b/luax/public/assets/games/loud/screenshot1.jpg differ diff --git a/luax/public/assets/games/loud/screenshot2.jpg b/luax/public/assets/games/loud/screenshot2.jpg new file mode 100644 index 0000000..88a1ffe Binary files /dev/null and b/luax/public/assets/games/loud/screenshot2.jpg differ diff --git a/luax/public/assets/games/loud/screenshot3.jpg b/luax/public/assets/games/loud/screenshot3.jpg new file mode 100644 index 0000000..dfbe555 Binary files /dev/null and b/luax/public/assets/games/loud/screenshot3.jpg differ diff --git a/luax/public/assets/games/loud/thumbnail.jpg b/luax/public/assets/games/loud/thumbnail.jpg new file mode 100644 index 0000000..9ec9764 Binary files /dev/null and b/luax/public/assets/games/loud/thumbnail.jpg differ diff --git a/luax/public/assets/games/miro/screenshot1.png b/luax/public/assets/games/miro/screenshot1.png new file mode 100644 index 0000000..5ba2365 Binary files /dev/null and b/luax/public/assets/games/miro/screenshot1.png differ diff --git a/luax/public/assets/games/miro/screenshot2.png b/luax/public/assets/games/miro/screenshot2.png new file mode 100644 index 0000000..706e47a Binary files /dev/null and b/luax/public/assets/games/miro/screenshot2.png differ diff --git a/luax/public/assets/games/miro/screenshot3.png b/luax/public/assets/games/miro/screenshot3.png new file mode 100644 index 0000000..237be9c Binary files /dev/null and b/luax/public/assets/games/miro/screenshot3.png differ diff --git a/luax/public/assets/games/miro/thumbnail.png b/luax/public/assets/games/miro/thumbnail.png new file mode 100644 index 0000000..152acfc Binary files /dev/null and b/luax/public/assets/games/miro/thumbnail.png differ diff --git a/luax/public/assets/games/mr-final-boss/screenshot1.png b/luax/public/assets/games/mr-final-boss/screenshot1.png new file mode 100644 index 0000000..d13f639 Binary files /dev/null and b/luax/public/assets/games/mr-final-boss/screenshot1.png differ diff --git a/luax/public/assets/games/mr-final-boss/screenshot2.png b/luax/public/assets/games/mr-final-boss/screenshot2.png new file mode 100644 index 0000000..6b07d1c Binary files /dev/null and b/luax/public/assets/games/mr-final-boss/screenshot2.png differ diff --git a/luax/public/assets/games/mr-final-boss/screenshot3.png b/luax/public/assets/games/mr-final-boss/screenshot3.png new file mode 100644 index 0000000..bf6d965 Binary files /dev/null and b/luax/public/assets/games/mr-final-boss/screenshot3.png differ diff --git a/luax/public/assets/games/mr-final-boss/screenshot4.png b/luax/public/assets/games/mr-final-boss/screenshot4.png new file mode 100644 index 0000000..c6b4cbe Binary files /dev/null and b/luax/public/assets/games/mr-final-boss/screenshot4.png differ diff --git a/luax/public/assets/games/mr-final-boss/thumbnail.png b/luax/public/assets/games/mr-final-boss/thumbnail.png new file mode 100644 index 0000000..024dab4 Binary files /dev/null and b/luax/public/assets/games/mr-final-boss/thumbnail.png differ diff --git a/luax/public/assets/games/riff-n-rage/screenshot1.png b/luax/public/assets/games/riff-n-rage/screenshot1.png new file mode 100644 index 0000000..6a9b075 Binary files /dev/null and b/luax/public/assets/games/riff-n-rage/screenshot1.png differ diff --git a/luax/public/assets/games/riff-n-rage/screenshot2.png b/luax/public/assets/games/riff-n-rage/screenshot2.png new file mode 100644 index 0000000..5b68901 Binary files /dev/null and b/luax/public/assets/games/riff-n-rage/screenshot2.png differ diff --git a/luax/public/assets/games/riff-n-rage/thumbnail.png b/luax/public/assets/games/riff-n-rage/thumbnail.png new file mode 100644 index 0000000..fa8dcad Binary files /dev/null and b/luax/public/assets/games/riff-n-rage/thumbnail.png differ diff --git a/luax/public/assets/games/survive-the-temple/cover.png b/luax/public/assets/games/survive-the-temple/cover.png new file mode 100644 index 0000000..5394eeb Binary files /dev/null and b/luax/public/assets/games/survive-the-temple/cover.png differ diff --git a/luax/public/assets/games/survive-the-temple/screenshot.png b/luax/public/assets/games/survive-the-temple/screenshot.png new file mode 100644 index 0000000..92b8ba9 Binary files /dev/null and b/luax/public/assets/games/survive-the-temple/screenshot.png differ diff --git a/luax/public/assets/games/thermal-trail/gameart.png b/luax/public/assets/games/thermal-trail/gameart.png new file mode 100644 index 0000000..34c82bc Binary files /dev/null and b/luax/public/assets/games/thermal-trail/gameart.png differ diff --git a/luax/public/assets/games/thermal-trail/screenshot1.png b/luax/public/assets/games/thermal-trail/screenshot1.png new file mode 100644 index 0000000..4b940aa Binary files /dev/null and b/luax/public/assets/games/thermal-trail/screenshot1.png differ diff --git a/luax/public/assets/games/thermal-trail/screenshot2.png b/luax/public/assets/games/thermal-trail/screenshot2.png new file mode 100644 index 0000000..0594eb9 Binary files /dev/null and b/luax/public/assets/games/thermal-trail/screenshot2.png differ diff --git a/luax/public/assets/games/thermal-trail/screenshot3.png b/luax/public/assets/games/thermal-trail/screenshot3.png new file mode 100644 index 0000000..b5a4a6d Binary files /dev/null and b/luax/public/assets/games/thermal-trail/screenshot3.png differ diff --git a/luax/public/assets/games/thermal-trail/screenshot4.png b/luax/public/assets/games/thermal-trail/screenshot4.png new file mode 100644 index 0000000..1356226 Binary files /dev/null and b/luax/public/assets/games/thermal-trail/screenshot4.png differ diff --git a/luax/public/assets/games/thermal-trail/thumbnail.png b/luax/public/assets/games/thermal-trail/thumbnail.png new file mode 100644 index 0000000..d779c51 Binary files /dev/null and b/luax/public/assets/games/thermal-trail/thumbnail.png differ diff --git a/luax/public/assets/games/third-party/screenshot1.jpg b/luax/public/assets/games/third-party/screenshot1.jpg new file mode 100644 index 0000000..6052ea2 Binary files /dev/null and b/luax/public/assets/games/third-party/screenshot1.jpg differ diff --git a/luax/public/assets/games/third-party/screenshot2.jpg b/luax/public/assets/games/third-party/screenshot2.jpg new file mode 100644 index 0000000..7a16edf Binary files /dev/null and b/luax/public/assets/games/third-party/screenshot2.jpg differ diff --git a/luax/public/assets/games/third-party/screenshot3.jpg b/luax/public/assets/games/third-party/screenshot3.jpg new file mode 100644 index 0000000..57e2d5b Binary files /dev/null and b/luax/public/assets/games/third-party/screenshot3.jpg differ diff --git a/luax/public/assets/games/third-party/screenshot4.jpg b/luax/public/assets/games/third-party/screenshot4.jpg new file mode 100644 index 0000000..331594a Binary files /dev/null and b/luax/public/assets/games/third-party/screenshot4.jpg differ diff --git a/luax/public/assets/games/third-party/thumbnail.png b/luax/public/assets/games/third-party/thumbnail.png new file mode 100644 index 0000000..c3cd158 Binary files /dev/null and b/luax/public/assets/games/third-party/thumbnail.png differ diff --git a/luax/public/assets/games/wuzmag/screenshot1.png b/luax/public/assets/games/wuzmag/screenshot1.png new file mode 100644 index 0000000..186be8c Binary files /dev/null and b/luax/public/assets/games/wuzmag/screenshot1.png differ diff --git a/luax/public/assets/games/wuzmag/screenshot2.png b/luax/public/assets/games/wuzmag/screenshot2.png new file mode 100644 index 0000000..683d7ee Binary files /dev/null and b/luax/public/assets/games/wuzmag/screenshot2.png differ diff --git a/luax/public/assets/games/wuzmag/screenshot3.png b/luax/public/assets/games/wuzmag/screenshot3.png new file mode 100644 index 0000000..b5398bb Binary files /dev/null and b/luax/public/assets/games/wuzmag/screenshot3.png differ diff --git a/luax/public/assets/games/wuzmag/thumbnail.png b/luax/public/assets/games/wuzmag/thumbnail.png new file mode 100644 index 0000000..0e6dea1 Binary files /dev/null and b/luax/public/assets/games/wuzmag/thumbnail.png differ diff --git a/luax/public/assets/games/your-left/screenshot1.jpg b/luax/public/assets/games/your-left/screenshot1.jpg new file mode 100644 index 0000000..e76861a Binary files /dev/null and b/luax/public/assets/games/your-left/screenshot1.jpg differ diff --git a/luax/public/assets/games/your-left/screenshot2.jpg b/luax/public/assets/games/your-left/screenshot2.jpg new file mode 100644 index 0000000..9e0f674 Binary files /dev/null and b/luax/public/assets/games/your-left/screenshot2.jpg differ diff --git a/luax/public/assets/games/your-left/screenshot3.jpg b/luax/public/assets/games/your-left/screenshot3.jpg new file mode 100644 index 0000000..d025ec1 Binary files /dev/null and b/luax/public/assets/games/your-left/screenshot3.jpg differ diff --git a/luax/public/assets/games/your-left/thumbnail.png b/luax/public/assets/games/your-left/thumbnail.png new file mode 100644 index 0000000..95f5c17 Binary files /dev/null and b/luax/public/assets/games/your-left/thumbnail.png differ diff --git a/luax/public/assets/images/android.png b/luax/public/assets/images/android.png new file mode 100644 index 0000000..d1cef88 Binary files /dev/null and b/luax/public/assets/images/android.png differ diff --git a/luax/public/assets/images/android.svg b/luax/public/assets/images/android.svg new file mode 100644 index 0000000..910aaab --- /dev/null +++ b/luax/public/assets/images/android.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/luax/public/assets/images/cpp.png b/luax/public/assets/images/cpp.png new file mode 100644 index 0000000..ab883f7 Binary files /dev/null and b/luax/public/assets/images/cpp.png differ diff --git a/luax/public/assets/images/cpp.svg b/luax/public/assets/images/cpp.svg new file mode 100644 index 0000000..f306183 --- /dev/null +++ b/luax/public/assets/images/cpp.svg @@ -0,0 +1,41 @@ + + + + + + diff --git a/luax/public/assets/images/csharp.png b/luax/public/assets/images/csharp.png new file mode 100644 index 0000000..065aa53 Binary files /dev/null and b/luax/public/assets/images/csharp.png differ diff --git a/luax/public/assets/images/csharp.svg b/luax/public/assets/images/csharp.svg new file mode 100644 index 0000000..77d5b38 --- /dev/null +++ b/luax/public/assets/images/csharp.svg @@ -0,0 +1,58 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/luax/public/assets/images/duckpfp.png b/luax/public/assets/images/duckpfp.png new file mode 100644 index 0000000..bdad92c Binary files /dev/null and b/luax/public/assets/images/duckpfp.png differ diff --git a/luax/public/assets/images/favicon.png b/luax/public/assets/images/favicon.png new file mode 100644 index 0000000..3cfd37a Binary files /dev/null and b/luax/public/assets/images/favicon.png differ diff --git a/luax/public/assets/images/favicon.svg b/luax/public/assets/images/favicon.svg new file mode 100644 index 0000000..3614084 --- /dev/null +++ b/luax/public/assets/images/favicon.svg @@ -0,0 +1,54 @@ + + + + diff --git a/luax/public/assets/images/github.png b/luax/public/assets/images/github.png new file mode 100644 index 0000000..0954581 Binary files /dev/null and b/luax/public/assets/images/github.png differ diff --git a/luax/public/assets/images/github.svg b/luax/public/assets/images/github.svg new file mode 100644 index 0000000..11f84aa --- /dev/null +++ b/luax/public/assets/images/github.svg @@ -0,0 +1,66 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/luax/public/assets/images/godot.png b/luax/public/assets/images/godot.png new file mode 100644 index 0000000..4f2bc22 Binary files /dev/null and b/luax/public/assets/images/godot.png differ diff --git a/luax/public/assets/images/godot.svg b/luax/public/assets/images/godot.svg new file mode 100644 index 0000000..6a2176a --- /dev/null +++ b/luax/public/assets/images/godot.svg @@ -0,0 +1,64 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/luax/public/assets/images/html5.png b/luax/public/assets/images/html5.png new file mode 100644 index 0000000..e0dcb1f Binary files /dev/null and b/luax/public/assets/images/html5.png differ diff --git a/luax/public/assets/images/html5.svg b/luax/public/assets/images/html5.svg new file mode 100644 index 0000000..70959e4 --- /dev/null +++ b/luax/public/assets/images/html5.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/luax/public/assets/images/hyprland.png b/luax/public/assets/images/hyprland.png new file mode 100644 index 0000000..36d8162 Binary files /dev/null and b/luax/public/assets/images/hyprland.png differ diff --git a/luax/public/assets/images/hyprland.svg b/luax/public/assets/images/hyprland.svg new file mode 100644 index 0000000..1f03c7e --- /dev/null +++ b/luax/public/assets/images/hyprland.svg @@ -0,0 +1,50 @@ + + + + + + + + + + diff --git a/luax/public/assets/images/linux.png b/luax/public/assets/images/linux.png new file mode 100644 index 0000000..492d0bf Binary files /dev/null and b/luax/public/assets/images/linux.png differ diff --git a/luax/public/assets/images/linux.svg b/luax/public/assets/images/linux.svg new file mode 100644 index 0000000..cab00df --- /dev/null +++ b/luax/public/assets/images/linux.svg @@ -0,0 +1,42 @@ + + + + + + diff --git a/luax/public/assets/images/macos.png b/luax/public/assets/images/macos.png new file mode 100644 index 0000000..1f4625c Binary files /dev/null and b/luax/public/assets/images/macos.png differ diff --git a/luax/public/assets/images/macos.svg b/luax/public/assets/images/macos.svg new file mode 100644 index 0000000..ec4dc0c --- /dev/null +++ b/luax/public/assets/images/macos.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/luax/public/assets/images/monogame.png b/luax/public/assets/images/monogame.png new file mode 100644 index 0000000..8648bcc Binary files /dev/null and b/luax/public/assets/images/monogame.png differ diff --git a/luax/public/assets/images/pfp.png b/luax/public/assets/images/pfp.png new file mode 100644 index 0000000..a18b664 Binary files /dev/null and b/luax/public/assets/images/pfp.png differ diff --git a/luax/public/assets/images/placeholder.png b/luax/public/assets/images/placeholder.png new file mode 100644 index 0000000..97084c7 Binary files /dev/null and b/luax/public/assets/images/placeholder.png differ diff --git a/luax/public/assets/images/playstation.png b/luax/public/assets/images/playstation.png new file mode 100644 index 0000000..dd22b43 Binary files /dev/null and b/luax/public/assets/images/playstation.png differ diff --git a/luax/public/assets/images/playstation.svg b/luax/public/assets/images/playstation.svg new file mode 100644 index 0000000..5d56897 --- /dev/null +++ b/luax/public/assets/images/playstation.svg @@ -0,0 +1,61 @@ + + + + + + + image/svg+xml + + + + + + + + + diff --git a/luax/public/assets/images/switch.png b/luax/public/assets/images/switch.png new file mode 100644 index 0000000..723817e Binary files /dev/null and b/luax/public/assets/images/switch.png differ diff --git a/luax/public/assets/images/switch.svg b/luax/public/assets/images/switch.svg new file mode 100644 index 0000000..4d891ae --- /dev/null +++ b/luax/public/assets/images/switch.svg @@ -0,0 +1,43 @@ + + + + + + diff --git a/luax/public/assets/images/symbols.png b/luax/public/assets/images/symbols.png new file mode 100644 index 0000000..3d0e9aa Binary files /dev/null and b/luax/public/assets/images/symbols.png differ diff --git a/luax/public/assets/images/thumbnail.png b/luax/public/assets/images/thumbnail.png new file mode 100644 index 0000000..f343a8b Binary files /dev/null and b/luax/public/assets/images/thumbnail.png differ diff --git a/luax/public/assets/images/thumbnail.svg b/luax/public/assets/images/thumbnail.svg new file mode 100644 index 0000000..3783fe1 --- /dev/null +++ b/luax/public/assets/images/thumbnail.svg @@ -0,0 +1,70 @@ + + + +duckonaut.dev diff --git a/luax/public/assets/images/thumbnail.zvg b/luax/public/assets/images/thumbnail.zvg new file mode 100644 index 0000000..4d675af --- /dev/null +++ b/luax/public/assets/images/thumbnail.zvg @@ -0,0 +1,67 @@ + + + +duckonaut.dev diff --git a/luax/public/assets/images/unity.png b/luax/public/assets/images/unity.png new file mode 100644 index 0000000..5fea459 Binary files /dev/null and b/luax/public/assets/images/unity.png differ diff --git a/luax/public/assets/images/unity.svg b/luax/public/assets/images/unity.svg new file mode 100644 index 0000000..b9d1859 --- /dev/null +++ b/luax/public/assets/images/unity.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/luax/public/assets/images/windows.png b/luax/public/assets/images/windows.png new file mode 100644 index 0000000..a09553e Binary files /dev/null and b/luax/public/assets/images/windows.png differ diff --git a/luax/public/assets/images/windows.svg b/luax/public/assets/images/windows.svg new file mode 100644 index 0000000..cb347b6 --- /dev/null +++ b/luax/public/assets/images/windows.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/luax/public/assets/images/xamarin.png b/luax/public/assets/images/xamarin.png new file mode 100644 index 0000000..91ce4ac Binary files /dev/null and b/luax/public/assets/images/xamarin.png differ diff --git a/luax/public/assets/images/xbox.png b/luax/public/assets/images/xbox.png new file mode 100644 index 0000000..9a439ba Binary files /dev/null and b/luax/public/assets/images/xbox.png differ diff --git a/luax/public/assets/images/xbox.svg b/luax/public/assets/images/xbox.svg new file mode 100644 index 0000000..13d7bdd --- /dev/null +++ b/luax/public/assets/images/xbox.svg @@ -0,0 +1,74 @@ + + + + + Xbox Logo + + + + image/svg+xml + + Xbox Logo + + + + + + + + + diff --git a/luax/public/assets/index.css b/luax/public/assets/index.css new file mode 100644 index 0000000..9941a36 --- /dev/null +++ b/luax/public/assets/index.css @@ -0,0 +1,108 @@ +:root { + font-weight: 400; + + color-scheme: dark; + color: var(--color-fg); + background-color: var(--color-bg); + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; + + /* variables */ + --color-bg: #161f30; + --color-fg: #a3b3d9; + --color-search-blue: #083C5A; + --color-white: #a3b3d9; + --color-gray: #647089; + --color-dark-gray: #3e4451; + --color-context: #6b737f; + --color-light-gray: #c8ccd4; + --color-tree-gray: #1b1f27; + --color-blue: #6080dd; + --color-vivid-blue: #61afef; + --color-dark-blue: #223E55; + --color-folder-blue: #61afef; + --color-light-blue: #a3b3d9; + --color-green: #449871; + --color-cyan: #56b6c2; + --color-light-green: #98c379; + --color-red: #c13251; + --color-orange: #c18a56; + --color-light-red: #e06c75; + --color-yellow: #e5c07b; + --color-purple: #604bd8; + --color-magenta: #b071fc; +} + +a:link { + font-weight: 500; + color: #4fc1ff; + text-decoration: inherit; +} + +a:visited { + color: #4fc1ff; +} + +a:hover { + color: #60d2ff; +} + +a:active { + color: #66d8ff; +} + + +body { + margin: 0; + /* display: flex; */ + /* place-items: center; */ + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +span { + display: inline; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.hack { + font-family: Hack, monospace; + font-weight: 500; +} + +.grow { + transition: all .2s ease-in-out; + transform: scale(1); +} + +.grow:hover { + transition: all .2s ease-in-out; + transform: scale(1.1); +} diff --git a/luax/public/assets/index.js b/luax/public/assets/index.js new file mode 100644 index 0000000..51716de --- /dev/null +++ b/luax/public/assets/index.js @@ -0,0 +1,91 @@ +$(document).ready(function() { + $('.carousel-wrapper').slick({ + dots: true, + infinite: true, + speed: 500, + slidesToShow: 1, + slidesToScroll: 1 + }); + + var canvas_parent = document.getElementById('animated-bg'); + var canvas = document.createElement('canvas'); + canvas.width = window.innerWidth; + canvas.height = window.innerHeight / 2; + window.sandbox_canvas = canvas; + + canvas_parent.appendChild(canvas, null, { filtering: 'nearest' }); + var sandbox = new GlslCanvas(canvas); + // randomize time + sandbox.timeLoad = Math.random() * 100000; + + window.sandbox = sandbox; // for access + + const shader_code = ` +precision highp float; +uniform vec3 color; +uniform sampler2D t; +uniform vec2 tiles; +uniform float u_time; +uniform vec2 u_resolution; +uniform float symbol_count; + +vec2 map_to_symbol_uv(vec2 image_coord, float symbol_index) { + float symbol_width = 1.0 / symbol_count; + float symbol_height = 1.0; + float symbol_x = symbol_index * symbol_width; + return vec2(symbol_x + image_coord.x * symbol_width, image_coord.y * symbol_height); +} + +vec2 tile_index(vec2 p, vec2 tiles) { + return vec2(floor(p.x * tiles.x), floor(p.y * tiles.y)); +} + +vec2 tilefy (vec2 p, vec2 tiles) { + return vec2(fract(p.x * tiles.x), fract(p.y * tiles.y)); +} + +float randf(float n) { + return fract(sin(n) * 43758.5453123); +} + +void main() { + vec2 uv = gl_FragCoord.xy / u_resolution.xy; + vec2 tile = tile_index(uv, tiles); + float tilerand = randf(tile.x + tile.y * tiles.x); + float v = tilerand + randf(floor(tilerand * u_time)); + float diff = fract(tilerand * u_time); + float s = floor(v * 9.0); + vec2 tp = tilefy(uv, tiles); + vec2 tp_center = vec2(0.5, 0.5); + float d = distance(tp, tp_center); + float scale = min(sin(diff * 3.1415) * 1.2, 1.0); + tp = tp_center + (tp - tp_center) / scale; + if (tp.x < 0.0 || tp.x > 1.0 || tp.y < 0.0 || tp.y > 1.0) { + gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); + return; + } + vec2 p = map_to_symbol_uv(tp, mod(s, symbol_count)); + vec4 c = texture2D(t, p); + c.rgb *= color; + c.a *= uv.y * 4.0; + gl_FragColor = vec4(c.rgb * c.a, c.a); +} +` + + sandbox.load(shader_code); + + sandbox.setUniform('t', "/assets/images/symbols.png"); + + sandbox.setUniform('color', 42 / 255, 42 / 255, 80 / 255); + + sandbox.setUniform('symbol_count', 9); + + sandbox.setUniform('tiles', Math.ceil(window.innerWidth / 32), Math.ceil(window.innerHeight / 64)); + + addEventListener('resize', function() { + window.sandbox_canvas.width = window.innerWidth; + window.sandbox_canvas.height = window.innerHeight / 2; + window.sandbox.setUniform('tiles', Math.ceil(window.innerWidth / 32), Math.ceil(window.innerHeight / 64)); + }); +}); + diff --git a/luax/public/assets/loose/github-yellow.svg b/luax/public/assets/loose/github-yellow.svg new file mode 100644 index 0000000..f81e9b9 --- /dev/null +++ b/luax/public/assets/loose/github-yellow.svg @@ -0,0 +1,66 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/luax/public/assets/loose/itch-yellow.svg b/luax/public/assets/loose/itch-yellow.svg new file mode 100644 index 0000000..008c7b1 --- /dev/null +++ b/luax/public/assets/loose/itch-yellow.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/luax/public/assets/loose/twitter-yellow.svg b/luax/public/assets/loose/twitter-yellow.svg new file mode 100644 index 0000000..ec6168d --- /dev/null +++ b/luax/public/assets/loose/twitter-yellow.svg @@ -0,0 +1,91 @@ + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/luax/public/assets/loose/web-yellow.svg b/luax/public/assets/loose/web-yellow.svg new file mode 100644 index 0000000..b61babc --- /dev/null +++ b/luax/public/assets/loose/web-yellow.svg @@ -0,0 +1,58 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/luax/public/assets/navbar.css b/luax/public/assets/navbar.css new file mode 100644 index 0000000..9120052 --- /dev/null +++ b/luax/public/assets/navbar.css @@ -0,0 +1,278 @@ +/* on big screens, navbar is fixed to the top of the screen */ +.navbar-container { + position: fixed; + /* gradient from top to bottom, full to transparent */ + top: 0; + width: 100%; + z-index: 9999; + margin: auto; +} + +/* on smaller ones, make it behave as a normal element laid out at the top of the page */ +@media (max-width: 1150px) { + .navbar-container { + position: static; + } +} + +.navbar { + padding-top: 20pt; + padding-bottom: 12pt; + align-items: center; + justify-content: center; + align-self: center; + background: linear-gradient(to bottom, var(--color-bg) 0%, var(--color-bg) 75%, rgba(0, 0, 0, 0) 100%); +} + +.navbar-icon { + font-family: Hack, monospace; + font-weight: 500; + color: #646cff; + font-size: 1.5em; + padding: 0.5em; + margin: 0.5em; +} + +.navbar { + align-self: center; + display: block; + width: 100%; + text-align: center; +} + +.navbar-item { + font-family: Hack, monospace; + font-size: 18pt; + text-align: center; + float: none; + clear: left; + display: inline-block; + margin: 0 0.25em; + transition: all 0.2s ease-in-out; +} + +.navbar-item:hover { + padding-left: 0.5em; + padding-right: 0.5em; + transition: all 0.2s ease-in-out; +} + +.navbar-current { + font-weight: bold; +} + +/* home */ + +.navbar-item-home:link { + color: #98C379; + text-decoration: none; +} + +.navbar-item-home:visited { + color: #98C379; + text-decoration: none; +} + +.navbar-item-home:hover { + color: #afd088; + text-decoration: underline; +} + +.navbar-item-home:active { + color: #afd088; + text-decoration: underline; +} + +/* games */ + +.navbar-item-games:link { + color: #e06c75; + text-decoration: none; +} + +.navbar-item-games:visited { + color: #e06c75; + text-decoration: none; +} + +.navbar-item-games:hover { + color: #ef7a80; + text-decoration: underline; +} + +.navbar-item-games:active { + color: #ef7a90; + text-decoration: underline; +} + +/* projects */ + +.navbar-item-projects:link { + color: #d19a66; + text-decoration: none; +} + +.navbar-item-projects:visited { + color: #d19a66; + text-decoration: none; +} + +.navbar-item-projects:hover { + color: #dfa873; + text-decoration: underline; +} + +.navbar-item-projects:active { + color: #dffa73; + text-decoration: underline; +} + +/* github */ + +.navbar-item-github:link { + color: #c678dd; + text-decoration: none; +} + +.navbar-item-github:visited { + color: #c678dd; + text-decoration: none; +} + +.navbar-item-github:hover { + color: #d286eb; + text-decoration: underline; +} + +.navbar-item-github:active { + color: #d286eb; + text-decoration: underline; +} + +/* itch */ + +.navbar-item-itch:link { + color: #e06c75; + text-decoration: none; +} + +.navbar-item-itch:visited { + color: #e06c75; + text-decoration: none; +} + +.navbar-item-itch:hover { + color: #ef7a80; + text-decoration: underline; +} + +.navbar-item-itch:active { + color: #ef7a90; + text-decoration: underline; +} + +/* twitter */ + +.navbar-item-twitter:link { + text-decoration: none; +} + +.navbar-item-twitter:visited { + text-decoration: none; +} + +.navbar-item-twitter:hover { + text-decoration: underline; +} + +.navbar-item-twitter:active { + text-decoration: underline; +} + +/* mastodon */ + +.navbar-item-mastodon:link { + color: #6a4ae0; + text-decoration: none; +} + +.navbar-item-mastodon:visited { + color: #6a4ae0; + text-decoration: none; +} + +.navbar-item-mastodon:hover { + color: #7a55e8; + text-decoration: underline; +} + +.navbar-item-mastodon:active { + color: #7a55e8; + text-decoration: underline; +} + +/* cohost */ + +.navbar-item-cohost:link { + color: #b63b73; + text-decoration: none; +} + +.navbar-item-cohost:visited { + color: #b63b73; + text-decoration: none; +} + +.navbar-item-cohost:hover { + color: #c54a7f; + text-decoration: underline; +} + +.navbar-item-cohost:active { + color: #c54a7f; + text-decoration: underline; +} + +/* tumblr */ + +.navbar-item-tumblr:link { + color: #00b8ff; + text-decoration: none; +} + +.navbar-item-tumblr:visited { + color: #00b8ff; + text-decoration: none; +} + +.navbar-item-tumblr:hover { + color: #00c5ff; + text-decoration: underline; +} + +.navbar-item-tumblr:active { + color: #00c5ff; + text-decoration: underline; +} + +/* contact */ + +.navbar-item-contact:link { + color: #e5c07b; + text-decoration: none; +} + +.navbar-item-contact:visited { + color: #e5c07b; + text-decoration: none; +} + +.navbar-item-contact:hover { + color: #f2ce89; + text-decoration: underline; +} + +.navbar-item-contact:active { + color: #f2ce89; + text-decoration: underline; +} diff --git a/luax/public/assets/project.css b/luax/public/assets/project.css new file mode 100644 index 0000000..742c072 --- /dev/null +++ b/luax/public/assets/project.css @@ -0,0 +1,126 @@ +.icon { + display: inline; + width: 32px; + height: 32px; + transition: 0.3s; + transform-origin: center; + filter: brightness(70%) +} + +.icon:hover { + filter: brightness(80%); +} + +.icon-row { + width: 320px; + height: 36px; +} + +.icon-container { + height: 36px; + float: right; +} + +.icon-text { + width: auto; + height: 36px; + line-height: 36px; + float: left; + vertical-align: middle; + margin-right: 8px; + color: #5c6370; +} + +.project { + display: table; + align-self: center; + clear: both; + margin-top: 24pt; +} + +.project-info { + font-size: 14pt; +} + +.project-description { + font-size: 16pt; + text-align: justify; +} + +.project-image-gallery { + margin-left: 24px; + margin-right: 10px; +} + +@media (max-width: 1150px) { + .project-title { + text-align: center; + font-size: 24pt; + margin-bottom: 8px; + text-decoration-line: underline; + } + + .project-image-gallery { + margin: 60px auto; + width: 330px; + height: 220px; + } + + .project-info { + float: none; + width: 90%; + margin: auto; + } + + .project-description { + font-size: 14pt; + } +} + +@media (max-width: 1150px) and (min-width: 480px) { + .project-title { + text-align: center; + font-size: 24pt; + margin-bottom: 8px; + text-decoration-line: underline; + } + .project-image-gallery { + margin: 60px auto; + width: 480px; + height: 360px; + } + + .project-info { + float: none; + width: 90%; + margin: auto; + } + + .project-description { + font-size: 14pt; + } +} + +@media (min-width: 1150px) { + .project-title { + text-align: left; + font-size: 32pt; + margin-bottom: 8px; + text-decoration-line: underline; + } + .project-image-gallery { + float: right; + width: 480px; + height: 360px; + } + .project-info { + float: left; + max-width: 600px; + } + + .project-description { + font-size: 16pt; + } +} + + diff --git a/luax/public/assets/projects/hyprload/logo.png b/luax/public/assets/projects/hyprload/logo.png new file mode 100644 index 0000000..92fb9ce Binary files /dev/null and b/luax/public/assets/projects/hyprload/logo.png differ diff --git a/luax/public/assets/projects/spirit-mod/demo1.gif b/luax/public/assets/projects/spirit-mod/demo1.gif new file mode 100644 index 0000000..324de0c Binary files /dev/null and b/luax/public/assets/projects/spirit-mod/demo1.gif differ diff --git a/luax/public/assets/projects/spirit-mod/demo2.gif b/luax/public/assets/projects/spirit-mod/demo2.gif new file mode 100644 index 0000000..4e87fd8 Binary files /dev/null and b/luax/public/assets/projects/spirit-mod/demo2.gif differ diff --git a/luax/public/assets/projects/spirit-mod/thumbnail.png b/luax/public/assets/projects/spirit-mod/thumbnail.png new file mode 100644 index 0000000..55f8d7e Binary files /dev/null and b/luax/public/assets/projects/spirit-mod/thumbnail.png differ diff --git a/luax/public/assets/projects/spirit-mod/thumbnail.webp b/luax/public/assets/projects/spirit-mod/thumbnail.webp new file mode 100644 index 0000000..0250f72 Binary files /dev/null and b/luax/public/assets/projects/spirit-mod/thumbnail.webp differ diff --git a/luax/public/carousel.css b/luax/public/carousel.css deleted file mode 100644 index 2465370..0000000 --- a/luax/public/carousel.css +++ /dev/null @@ -1,69 +0,0 @@ -.carousel-content { - align-self: center; - max-height: 100%; - white-space: nowrap; - -ms-overflow-style: none; /* hide scrollbar in IE and Edge */ - scrollbar-width: none; /* hide scrollbar in Firefox */ -} - -.carousel-item { - width: 100%; - flex-shrink: 0; - height: auto; - float: left; - text-align: center; - transition: all 250ms linear; - white-space: nowrap; - vertical-align: middle; -} - -.slick-slider { - margin: 24px; -} - -.slick-slide { - margin: 0 auto; - border-radius: 10px; - text-align: center; - float: none !important; - display: inline-block !important; - vertical-align: middle; - min-height: 1px; -} - -/* .carousel-item > * { */ -/* border-radius: 10px; */ -/* vertical-align: middle; */ -/* width: 100%; */ -/* height: auto; */ -/* } */ - -.slick-dots li button::before { - color: var(--color-fg) !important; -} - -@media (max-width: 1150px) { - .carousel-wrapper { - margin: 60px auto; - width: 330px; - height: 220px; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .carousel-wrapper { - margin: 60px auto; - width: 480px; - height: 360px; - } -} - -@media (min-width: 1150px) { - .carousel-wrapper { - float: right; - width: 480px; - height: 360px; - } -} - - diff --git a/luax/public/contact.css b/luax/public/contact.css deleted file mode 100644 index 93b63bd..0000000 --- a/luax/public/contact.css +++ /dev/null @@ -1,22 +0,0 @@ -.contact-container { - width: 100%; - max-width: 1120px; - margin: auto; - margin-top: 24pt; - margin-bottom: 48pt; - align-items: center; - justify-content: center; - align-self: center; - font-size: 18pt; -} - -.contact { - margin-top: 24pt; - margin-bottom: 8pt; - font-size: 20pt; - color: #98C379; -} - -.highlight { - color: #e5c07b; -} diff --git a/luax/public/index.css b/luax/public/index.css deleted file mode 100644 index 9941a36..0000000 --- a/luax/public/index.css +++ /dev/null @@ -1,108 +0,0 @@ -:root { - font-weight: 400; - - color-scheme: dark; - color: var(--color-fg); - background-color: var(--color-bg); - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; - - /* variables */ - --color-bg: #161f30; - --color-fg: #a3b3d9; - --color-search-blue: #083C5A; - --color-white: #a3b3d9; - --color-gray: #647089; - --color-dark-gray: #3e4451; - --color-context: #6b737f; - --color-light-gray: #c8ccd4; - --color-tree-gray: #1b1f27; - --color-blue: #6080dd; - --color-vivid-blue: #61afef; - --color-dark-blue: #223E55; - --color-folder-blue: #61afef; - --color-light-blue: #a3b3d9; - --color-green: #449871; - --color-cyan: #56b6c2; - --color-light-green: #98c379; - --color-red: #c13251; - --color-orange: #c18a56; - --color-light-red: #e06c75; - --color-yellow: #e5c07b; - --color-purple: #604bd8; - --color-magenta: #b071fc; -} - -a:link { - font-weight: 500; - color: #4fc1ff; - text-decoration: inherit; -} - -a:visited { - color: #4fc1ff; -} - -a:hover { - color: #60d2ff; -} - -a:active { - color: #66d8ff; -} - - -body { - margin: 0; - /* display: flex; */ - /* place-items: center; */ - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -span { - display: inline; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -.hack { - font-family: Hack, monospace; - font-weight: 500; -} - -.grow { - transition: all .2s ease-in-out; - transform: scale(1); -} - -.grow:hover { - transition: all .2s ease-in-out; - transform: scale(1.1); -} diff --git a/luax/public/index.js b/luax/public/index.js deleted file mode 100644 index 51716de..0000000 --- a/luax/public/index.js +++ /dev/null @@ -1,91 +0,0 @@ -$(document).ready(function() { - $('.carousel-wrapper').slick({ - dots: true, - infinite: true, - speed: 500, - slidesToShow: 1, - slidesToScroll: 1 - }); - - var canvas_parent = document.getElementById('animated-bg'); - var canvas = document.createElement('canvas'); - canvas.width = window.innerWidth; - canvas.height = window.innerHeight / 2; - window.sandbox_canvas = canvas; - - canvas_parent.appendChild(canvas, null, { filtering: 'nearest' }); - var sandbox = new GlslCanvas(canvas); - // randomize time - sandbox.timeLoad = Math.random() * 100000; - - window.sandbox = sandbox; // for access - - const shader_code = ` -precision highp float; -uniform vec3 color; -uniform sampler2D t; -uniform vec2 tiles; -uniform float u_time; -uniform vec2 u_resolution; -uniform float symbol_count; - -vec2 map_to_symbol_uv(vec2 image_coord, float symbol_index) { - float symbol_width = 1.0 / symbol_count; - float symbol_height = 1.0; - float symbol_x = symbol_index * symbol_width; - return vec2(symbol_x + image_coord.x * symbol_width, image_coord.y * symbol_height); -} - -vec2 tile_index(vec2 p, vec2 tiles) { - return vec2(floor(p.x * tiles.x), floor(p.y * tiles.y)); -} - -vec2 tilefy (vec2 p, vec2 tiles) { - return vec2(fract(p.x * tiles.x), fract(p.y * tiles.y)); -} - -float randf(float n) { - return fract(sin(n) * 43758.5453123); -} - -void main() { - vec2 uv = gl_FragCoord.xy / u_resolution.xy; - vec2 tile = tile_index(uv, tiles); - float tilerand = randf(tile.x + tile.y * tiles.x); - float v = tilerand + randf(floor(tilerand * u_time)); - float diff = fract(tilerand * u_time); - float s = floor(v * 9.0); - vec2 tp = tilefy(uv, tiles); - vec2 tp_center = vec2(0.5, 0.5); - float d = distance(tp, tp_center); - float scale = min(sin(diff * 3.1415) * 1.2, 1.0); - tp = tp_center + (tp - tp_center) / scale; - if (tp.x < 0.0 || tp.x > 1.0 || tp.y < 0.0 || tp.y > 1.0) { - gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); - return; - } - vec2 p = map_to_symbol_uv(tp, mod(s, symbol_count)); - vec4 c = texture2D(t, p); - c.rgb *= color; - c.a *= uv.y * 4.0; - gl_FragColor = vec4(c.rgb * c.a, c.a); -} -` - - sandbox.load(shader_code); - - sandbox.setUniform('t', "/assets/images/symbols.png"); - - sandbox.setUniform('color', 42 / 255, 42 / 255, 80 / 255); - - sandbox.setUniform('symbol_count', 9); - - sandbox.setUniform('tiles', Math.ceil(window.innerWidth / 32), Math.ceil(window.innerHeight / 64)); - - addEventListener('resize', function() { - window.sandbox_canvas.width = window.innerWidth; - window.sandbox_canvas.height = window.innerHeight / 2; - window.sandbox.setUniform('tiles', Math.ceil(window.innerWidth / 32), Math.ceil(window.innerHeight / 64)); - }); -}); - diff --git a/luax/public/navbar.css b/luax/public/navbar.css deleted file mode 100644 index 9120052..0000000 --- a/luax/public/navbar.css +++ /dev/null @@ -1,278 +0,0 @@ -/* on big screens, navbar is fixed to the top of the screen */ -.navbar-container { - position: fixed; - /* gradient from top to bottom, full to transparent */ - top: 0; - width: 100%; - z-index: 9999; - margin: auto; -} - -/* on smaller ones, make it behave as a normal element laid out at the top of the page */ -@media (max-width: 1150px) { - .navbar-container { - position: static; - } -} - -.navbar { - padding-top: 20pt; - padding-bottom: 12pt; - align-items: center; - justify-content: center; - align-self: center; - background: linear-gradient(to bottom, var(--color-bg) 0%, var(--color-bg) 75%, rgba(0, 0, 0, 0) 100%); -} - -.navbar-icon { - font-family: Hack, monospace; - font-weight: 500; - color: #646cff; - font-size: 1.5em; - padding: 0.5em; - margin: 0.5em; -} - -.navbar { - align-self: center; - display: block; - width: 100%; - text-align: center; -} - -.navbar-item { - font-family: Hack, monospace; - font-size: 18pt; - text-align: center; - float: none; - clear: left; - display: inline-block; - margin: 0 0.25em; - transition: all 0.2s ease-in-out; -} - -.navbar-item:hover { - padding-left: 0.5em; - padding-right: 0.5em; - transition: all 0.2s ease-in-out; -} - -.navbar-current { - font-weight: bold; -} - -/* home */ - -.navbar-item-home:link { - color: #98C379; - text-decoration: none; -} - -.navbar-item-home:visited { - color: #98C379; - text-decoration: none; -} - -.navbar-item-home:hover { - color: #afd088; - text-decoration: underline; -} - -.navbar-item-home:active { - color: #afd088; - text-decoration: underline; -} - -/* games */ - -.navbar-item-games:link { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-games:visited { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-games:hover { - color: #ef7a80; - text-decoration: underline; -} - -.navbar-item-games:active { - color: #ef7a90; - text-decoration: underline; -} - -/* projects */ - -.navbar-item-projects:link { - color: #d19a66; - text-decoration: none; -} - -.navbar-item-projects:visited { - color: #d19a66; - text-decoration: none; -} - -.navbar-item-projects:hover { - color: #dfa873; - text-decoration: underline; -} - -.navbar-item-projects:active { - color: #dffa73; - text-decoration: underline; -} - -/* github */ - -.navbar-item-github:link { - color: #c678dd; - text-decoration: none; -} - -.navbar-item-github:visited { - color: #c678dd; - text-decoration: none; -} - -.navbar-item-github:hover { - color: #d286eb; - text-decoration: underline; -} - -.navbar-item-github:active { - color: #d286eb; - text-decoration: underline; -} - -/* itch */ - -.navbar-item-itch:link { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-itch:visited { - color: #e06c75; - text-decoration: none; -} - -.navbar-item-itch:hover { - color: #ef7a80; - text-decoration: underline; -} - -.navbar-item-itch:active { - color: #ef7a90; - text-decoration: underline; -} - -/* twitter */ - -.navbar-item-twitter:link { - text-decoration: none; -} - -.navbar-item-twitter:visited { - text-decoration: none; -} - -.navbar-item-twitter:hover { - text-decoration: underline; -} - -.navbar-item-twitter:active { - text-decoration: underline; -} - -/* mastodon */ - -.navbar-item-mastodon:link { - color: #6a4ae0; - text-decoration: none; -} - -.navbar-item-mastodon:visited { - color: #6a4ae0; - text-decoration: none; -} - -.navbar-item-mastodon:hover { - color: #7a55e8; - text-decoration: underline; -} - -.navbar-item-mastodon:active { - color: #7a55e8; - text-decoration: underline; -} - -/* cohost */ - -.navbar-item-cohost:link { - color: #b63b73; - text-decoration: none; -} - -.navbar-item-cohost:visited { - color: #b63b73; - text-decoration: none; -} - -.navbar-item-cohost:hover { - color: #c54a7f; - text-decoration: underline; -} - -.navbar-item-cohost:active { - color: #c54a7f; - text-decoration: underline; -} - -/* tumblr */ - -.navbar-item-tumblr:link { - color: #00b8ff; - text-decoration: none; -} - -.navbar-item-tumblr:visited { - color: #00b8ff; - text-decoration: none; -} - -.navbar-item-tumblr:hover { - color: #00c5ff; - text-decoration: underline; -} - -.navbar-item-tumblr:active { - color: #00c5ff; - text-decoration: underline; -} - -/* contact */ - -.navbar-item-contact:link { - color: #e5c07b; - text-decoration: none; -} - -.navbar-item-contact:visited { - color: #e5c07b; - text-decoration: none; -} - -.navbar-item-contact:hover { - color: #f2ce89; - text-decoration: underline; -} - -.navbar-item-contact:active { - color: #f2ce89; - text-decoration: underline; -} diff --git a/luax/public/project.css b/luax/public/project.css deleted file mode 100644 index 742c072..0000000 --- a/luax/public/project.css +++ /dev/null @@ -1,126 +0,0 @@ -.icon { - display: inline; - width: 32px; - height: 32px; - transition: 0.3s; - transform-origin: center; - filter: brightness(70%) -} - -.icon:hover { - filter: brightness(80%); -} - -.icon-row { - width: 320px; - height: 36px; -} - -.icon-container { - height: 36px; - float: right; -} - -.icon-text { - width: auto; - height: 36px; - line-height: 36px; - float: left; - vertical-align: middle; - margin-right: 8px; - color: #5c6370; -} - -.project { - display: table; - align-self: center; - clear: both; - margin-top: 24pt; -} - -.project-info { - font-size: 14pt; -} - -.project-description { - font-size: 16pt; - text-align: justify; -} - -.project-image-gallery { - margin-left: 24px; - margin-right: 10px; -} - -@media (max-width: 1150px) { - .project-title { - text-align: center; - font-size: 24pt; - margin-bottom: 8px; - text-decoration-line: underline; - } - - .project-image-gallery { - margin: 60px auto; - width: 330px; - height: 220px; - } - - .project-info { - float: none; - width: 90%; - margin: auto; - } - - .project-description { - font-size: 14pt; - } -} - -@media (max-width: 1150px) and (min-width: 480px) { - .project-title { - text-align: center; - font-size: 24pt; - margin-bottom: 8px; - text-decoration-line: underline; - } - .project-image-gallery { - margin: 60px auto; - width: 480px; - height: 360px; - } - - .project-info { - float: none; - width: 90%; - margin: auto; - } - - .project-description { - font-size: 14pt; - } -} - -@media (min-width: 1150px) { - .project-title { - text-align: left; - font-size: 32pt; - margin-bottom: 8px; - text-decoration-line: underline; - } - .project-image-gallery { - float: right; - width: 480px; - height: 360px; - } - .project-info { - float: left; - max-width: 600px; - } - - .project-description { - font-size: 16pt; - } -} - - -- cgit v1.3.1