i should commit
This commit is contained in:
		
							parent
							
								
									9365e7610c
								
							
						
					
					
						commit
						9ba3b7c861
					
				
					 28 changed files with 1719 additions and 1239 deletions
				
			
		
							
								
								
									
										729
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										729
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -1,729 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  "name": "twilight",
 | 
					 | 
				
			||||||
  "version": "0.1.0",
 | 
					 | 
				
			||||||
  "lockfileVersion": 2,
 | 
					 | 
				
			||||||
  "requires": true,
 | 
					 | 
				
			||||||
  "packages": {
 | 
					 | 
				
			||||||
    "": {
 | 
					 | 
				
			||||||
      "name": "twilight",
 | 
					 | 
				
			||||||
      "version": "0.1.0",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@next/font": "13.1.6",
 | 
					 | 
				
			||||||
        "@types/node": "18.13.0",
 | 
					 | 
				
			||||||
        "@types/react": "18.0.28",
 | 
					 | 
				
			||||||
        "@types/react-dom": "18.0.10",
 | 
					 | 
				
			||||||
        "next": "13.1.6",
 | 
					 | 
				
			||||||
        "react": "18.2.0",
 | 
					 | 
				
			||||||
        "react-dom": "18.2.0",
 | 
					 | 
				
			||||||
        "typescript": "4.9.5"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/env": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-s+W9Fdqh5MFk6ECrbnVmmAOwxKQuhGMT7xXHrkYIBMBcTiOqNWhv5KbJIboKR5STXxNXl32hllnvKaffzFaWQg=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/font": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/font/-/font-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-AITjmeb1RgX1HKMCiA39ztx2mxeAyxl4ljv2UoSBUGAbFFMg8MO7YAvjHCgFhD39hL7YTbFjol04e/BPBH5RzQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-android-arm-eabi": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-F3/6Z8LH/pGlPzR1AcjPFxx35mPqjE5xZcf+IL+KgbW9tMkp7CYi1y7qKrEWU7W4AumxX/8OINnDQWLiwLasLQ==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "arm"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "android"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-android-arm64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-cMwQjnB8vrYkWyK/H0Rf2c2pKIH4RGjpKUDvbjVAit6SbwPDpmaijLio0LWFV3/tOnY6kvzbL62lndVA0mkYpw==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "arm64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "android"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-darwin-arm64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-KKRQH4DDE4kONXCvFMNBZGDb499Hs+xcFAwvj+rfSUssIDrZOlyfJNy55rH5t2Qxed1e4K80KEJgsxKQN1/fyw==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "arm64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "darwin"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-darwin-x64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-/uOky5PaZDoaU99ohjtNcDTJ6ks/gZ5ykTQDvNZDjIoCxFe3+t06bxsTPY6tAO6uEAw5f6vVFX5H5KLwhrkZCA==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "x64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "darwin"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-freebsd-x64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-qaEALZeV7to6weSXk3Br80wtFQ7cFTpos/q+m9XVRFggu+8Ib895XhMWdJBzew6aaOcMvYR6KQ6JmHA2/eMzWw==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "x64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "freebsd"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-linux-arm-gnueabihf": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-OybkbC58A1wJ+JrJSOjGDvZzrVEQA4sprJejGqMwiZyLqhr9Eo8FXF0y6HL+m1CPCpPhXEHz/2xKoYsl16kNqw==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "arm"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "linux"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-linux-arm64-gnu": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-yCH+yDr7/4FDuWv6+GiYrPI9kcTAO3y48UmaIbrKy8ZJpi7RehJe3vIBRUmLrLaNDH3rY1rwoHi471NvR5J5NQ==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "arm64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "linux"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-linux-arm64-musl": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-ECagB8LGX25P9Mrmlc7Q/TQBb9rGScxHbv/kLqqIWs2fIXy6Y/EiBBiM72NTwuXUFCNrWR4sjUPSooVBJJ3ESQ==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "arm64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "linux"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-linux-x64-gnu": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-GT5w2mruk90V/I5g6ScuueE7fqj/d8Bui2qxdw6lFxmuTgMeol5rnzAv4uAoVQgClOUO/MULilzlODg9Ib3Y4Q==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "x64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "linux"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-linux-x64-musl": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-keFD6KvwOPzmat4TCnlnuxJCQepPN+8j3Nw876FtULxo8005Y9Ghcl7ACcR8GoiKoddAq8gxNBrpjoxjQRHeAQ==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "x64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "linux"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-win32-arm64-msvc": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-OwertslIiGQluFvHyRDzBCIB07qJjqabAmINlXUYt7/sY7Q7QPE8xVi5beBxX/rxTGPIbtyIe3faBE6Z2KywhQ==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "arm64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "win32"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-win32-ia32-msvc": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-g8zowiuP8FxUR9zslPmlju7qYbs2XBtTLVSxVikPtUDQedhcls39uKYLvOOd1JZg0ehyhopobRoH1q+MHlIN/w==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "ia32"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "win32"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@next/swc-win32-x64-msvc": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-Ls2OL9hi3YlJKGNdKv8k3X/lLgc3VmLG3a/DeTkAd+lAituJp8ZHmRmm9f9SL84fT3CotlzcgbdaCDfFwFA6bA==",
 | 
					 | 
				
			||||||
      "cpu": [
 | 
					 | 
				
			||||||
        "x64"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "optional": true,
 | 
					 | 
				
			||||||
      "os": [
 | 
					 | 
				
			||||||
        "win32"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@swc/helpers": {
 | 
					 | 
				
			||||||
      "version": "0.4.14",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "tslib": "^2.4.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@types/node": {
 | 
					 | 
				
			||||||
      "version": "18.13.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@types/prop-types": {
 | 
					 | 
				
			||||||
      "version": "15.7.5",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@types/react": {
 | 
					 | 
				
			||||||
      "version": "18.0.28",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@types/prop-types": "*",
 | 
					 | 
				
			||||||
        "@types/scheduler": "*",
 | 
					 | 
				
			||||||
        "csstype": "^3.0.2"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@types/react-dom": {
 | 
					 | 
				
			||||||
      "version": "18.0.10",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@types/react": "*"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@types/scheduler": {
 | 
					 | 
				
			||||||
      "version": "0.16.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/caniuse-lite": {
 | 
					 | 
				
			||||||
      "version": "1.0.30001451",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==",
 | 
					 | 
				
			||||||
      "funding": [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          "type": "opencollective",
 | 
					 | 
				
			||||||
          "url": "https://opencollective.com/browserslist"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          "type": "tidelift",
 | 
					 | 
				
			||||||
          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/client-only": {
 | 
					 | 
				
			||||||
      "version": "0.0.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/csstype": {
 | 
					 | 
				
			||||||
      "version": "3.1.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/js-tokens": {
 | 
					 | 
				
			||||||
      "version": "4.0.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/loose-envify": {
 | 
					 | 
				
			||||||
      "version": "1.4.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "js-tokens": "^3.0.0 || ^4.0.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "bin": {
 | 
					 | 
				
			||||||
        "loose-envify": "cli.js"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/nanoid": {
 | 
					 | 
				
			||||||
      "version": "3.3.4",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
 | 
					 | 
				
			||||||
      "bin": {
 | 
					 | 
				
			||||||
        "nanoid": "bin/nanoid.cjs"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/next": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/next/-/next-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-hHlbhKPj9pW+Cymvfzc15lvhaOZ54l+8sXDXJWm3OBNBzgrVj6hwGPmqqsXg40xO1Leq+kXpllzRPuncpC0Phw==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@next/env": "13.1.6",
 | 
					 | 
				
			||||||
        "@swc/helpers": "0.4.14",
 | 
					 | 
				
			||||||
        "caniuse-lite": "^1.0.30001406",
 | 
					 | 
				
			||||||
        "postcss": "8.4.14",
 | 
					 | 
				
			||||||
        "styled-jsx": "5.1.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "bin": {
 | 
					 | 
				
			||||||
        "next": "dist/bin/next"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=14.6.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "optionalDependencies": {
 | 
					 | 
				
			||||||
        "@next/swc-android-arm-eabi": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-android-arm64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-darwin-arm64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-darwin-x64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-freebsd-x64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-arm-gnueabihf": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-arm64-gnu": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-arm64-musl": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-x64-gnu": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-x64-musl": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-win32-arm64-msvc": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-win32-ia32-msvc": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-win32-x64-msvc": "13.1.6"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "fibers": ">= 3.1.0",
 | 
					 | 
				
			||||||
        "node-sass": "^6.0.0 || ^7.0.0",
 | 
					 | 
				
			||||||
        "react": "^18.2.0",
 | 
					 | 
				
			||||||
        "react-dom": "^18.2.0",
 | 
					 | 
				
			||||||
        "sass": "^1.3.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependenciesMeta": {
 | 
					 | 
				
			||||||
        "fibers": {
 | 
					 | 
				
			||||||
          "optional": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "node-sass": {
 | 
					 | 
				
			||||||
          "optional": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "sass": {
 | 
					 | 
				
			||||||
          "optional": true
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/picocolors": {
 | 
					 | 
				
			||||||
      "version": "1.0.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/postcss": {
 | 
					 | 
				
			||||||
      "version": "8.4.14",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
 | 
					 | 
				
			||||||
      "funding": [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          "type": "opencollective",
 | 
					 | 
				
			||||||
          "url": "https://opencollective.com/postcss/"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          "type": "tidelift",
 | 
					 | 
				
			||||||
          "url": "https://tidelift.com/funding/github/npm/postcss"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "nanoid": "^3.3.4",
 | 
					 | 
				
			||||||
        "picocolors": "^1.0.0",
 | 
					 | 
				
			||||||
        "source-map-js": "^1.0.2"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^10 || ^12 || >=14"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/react": {
 | 
					 | 
				
			||||||
      "version": "18.2.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "loose-envify": "^1.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=0.10.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/react-dom": {
 | 
					 | 
				
			||||||
      "version": "18.2.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "loose-envify": "^1.1.0",
 | 
					 | 
				
			||||||
        "scheduler": "^0.23.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "react": "^18.2.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/scheduler": {
 | 
					 | 
				
			||||||
      "version": "0.23.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "loose-envify": "^1.1.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/source-map-js": {
 | 
					 | 
				
			||||||
      "version": "1.0.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=0.10.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/styled-jsx": {
 | 
					 | 
				
			||||||
      "version": "5.1.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "client-only": "0.0.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">= 12.0.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependenciesMeta": {
 | 
					 | 
				
			||||||
        "@babel/core": {
 | 
					 | 
				
			||||||
          "optional": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "babel-plugin-macros": {
 | 
					 | 
				
			||||||
          "optional": true
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/tslib": {
 | 
					 | 
				
			||||||
      "version": "2.5.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/typescript": {
 | 
					 | 
				
			||||||
      "version": "4.9.5",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
 | 
					 | 
				
			||||||
      "bin": {
 | 
					 | 
				
			||||||
        "tsc": "bin/tsc",
 | 
					 | 
				
			||||||
        "tsserver": "bin/tsserver"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=4.2.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "dependencies": {
 | 
					 | 
				
			||||||
    "@next/env": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-s+W9Fdqh5MFk6ECrbnVmmAOwxKQuhGMT7xXHrkYIBMBcTiOqNWhv5KbJIboKR5STXxNXl32hllnvKaffzFaWQg=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/font": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/font/-/font-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-AITjmeb1RgX1HKMCiA39ztx2mxeAyxl4ljv2UoSBUGAbFFMg8MO7YAvjHCgFhD39hL7YTbFjol04e/BPBH5RzQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-android-arm-eabi": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-F3/6Z8LH/pGlPzR1AcjPFxx35mPqjE5xZcf+IL+KgbW9tMkp7CYi1y7qKrEWU7W4AumxX/8OINnDQWLiwLasLQ==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-android-arm64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-cMwQjnB8vrYkWyK/H0Rf2c2pKIH4RGjpKUDvbjVAit6SbwPDpmaijLio0LWFV3/tOnY6kvzbL62lndVA0mkYpw==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-darwin-arm64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-KKRQH4DDE4kONXCvFMNBZGDb499Hs+xcFAwvj+rfSUssIDrZOlyfJNy55rH5t2Qxed1e4K80KEJgsxKQN1/fyw==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-darwin-x64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-/uOky5PaZDoaU99ohjtNcDTJ6ks/gZ5ykTQDvNZDjIoCxFe3+t06bxsTPY6tAO6uEAw5f6vVFX5H5KLwhrkZCA==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-freebsd-x64": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-qaEALZeV7to6weSXk3Br80wtFQ7cFTpos/q+m9XVRFggu+8Ib895XhMWdJBzew6aaOcMvYR6KQ6JmHA2/eMzWw==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-linux-arm-gnueabihf": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-OybkbC58A1wJ+JrJSOjGDvZzrVEQA4sprJejGqMwiZyLqhr9Eo8FXF0y6HL+m1CPCpPhXEHz/2xKoYsl16kNqw==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-linux-arm64-gnu": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-yCH+yDr7/4FDuWv6+GiYrPI9kcTAO3y48UmaIbrKy8ZJpi7RehJe3vIBRUmLrLaNDH3rY1rwoHi471NvR5J5NQ==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-linux-arm64-musl": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-ECagB8LGX25P9Mrmlc7Q/TQBb9rGScxHbv/kLqqIWs2fIXy6Y/EiBBiM72NTwuXUFCNrWR4sjUPSooVBJJ3ESQ==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-linux-x64-gnu": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-GT5w2mruk90V/I5g6ScuueE7fqj/d8Bui2qxdw6lFxmuTgMeol5rnzAv4uAoVQgClOUO/MULilzlODg9Ib3Y4Q==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-linux-x64-musl": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-keFD6KvwOPzmat4TCnlnuxJCQepPN+8j3Nw876FtULxo8005Y9Ghcl7ACcR8GoiKoddAq8gxNBrpjoxjQRHeAQ==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-win32-arm64-msvc": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-OwertslIiGQluFvHyRDzBCIB07qJjqabAmINlXUYt7/sY7Q7QPE8xVi5beBxX/rxTGPIbtyIe3faBE6Z2KywhQ==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-win32-ia32-msvc": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-g8zowiuP8FxUR9zslPmlju7qYbs2XBtTLVSxVikPtUDQedhcls39uKYLvOOd1JZg0ehyhopobRoH1q+MHlIN/w==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@next/swc-win32-x64-msvc": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-Ls2OL9hi3YlJKGNdKv8k3X/lLgc3VmLG3a/DeTkAd+lAituJp8ZHmRmm9f9SL84fT3CotlzcgbdaCDfFwFA6bA==",
 | 
					 | 
				
			||||||
      "optional": true
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@swc/helpers": {
 | 
					 | 
				
			||||||
      "version": "0.4.14",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "tslib": "^2.4.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@types/node": {
 | 
					 | 
				
			||||||
      "version": "18.13.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@types/prop-types": {
 | 
					 | 
				
			||||||
      "version": "15.7.5",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@types/react": {
 | 
					 | 
				
			||||||
      "version": "18.0.28",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "@types/prop-types": "*",
 | 
					 | 
				
			||||||
        "@types/scheduler": "*",
 | 
					 | 
				
			||||||
        "csstype": "^3.0.2"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@types/react-dom": {
 | 
					 | 
				
			||||||
      "version": "18.0.10",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "@types/react": "*"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@types/scheduler": {
 | 
					 | 
				
			||||||
      "version": "0.16.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "caniuse-lite": {
 | 
					 | 
				
			||||||
      "version": "1.0.30001451",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "client-only": {
 | 
					 | 
				
			||||||
      "version": "0.0.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "csstype": {
 | 
					 | 
				
			||||||
      "version": "3.1.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "js-tokens": {
 | 
					 | 
				
			||||||
      "version": "4.0.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "loose-envify": {
 | 
					 | 
				
			||||||
      "version": "1.4.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "js-tokens": "^3.0.0 || ^4.0.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "nanoid": {
 | 
					 | 
				
			||||||
      "version": "3.3.4",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "next": {
 | 
					 | 
				
			||||||
      "version": "13.1.6",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/next/-/next-13.1.6.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-hHlbhKPj9pW+Cymvfzc15lvhaOZ54l+8sXDXJWm3OBNBzgrVj6hwGPmqqsXg40xO1Leq+kXpllzRPuncpC0Phw==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "@next/env": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-android-arm-eabi": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-android-arm64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-darwin-arm64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-darwin-x64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-freebsd-x64": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-arm-gnueabihf": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-arm64-gnu": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-arm64-musl": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-x64-gnu": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-linux-x64-musl": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-win32-arm64-msvc": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-win32-ia32-msvc": "13.1.6",
 | 
					 | 
				
			||||||
        "@next/swc-win32-x64-msvc": "13.1.6",
 | 
					 | 
				
			||||||
        "@swc/helpers": "0.4.14",
 | 
					 | 
				
			||||||
        "caniuse-lite": "^1.0.30001406",
 | 
					 | 
				
			||||||
        "postcss": "8.4.14",
 | 
					 | 
				
			||||||
        "styled-jsx": "5.1.1"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "picocolors": {
 | 
					 | 
				
			||||||
      "version": "1.0.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "postcss": {
 | 
					 | 
				
			||||||
      "version": "8.4.14",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "nanoid": "^3.3.4",
 | 
					 | 
				
			||||||
        "picocolors": "^1.0.0",
 | 
					 | 
				
			||||||
        "source-map-js": "^1.0.2"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "react": {
 | 
					 | 
				
			||||||
      "version": "18.2.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "loose-envify": "^1.1.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "react-dom": {
 | 
					 | 
				
			||||||
      "version": "18.2.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "loose-envify": "^1.1.0",
 | 
					 | 
				
			||||||
        "scheduler": "^0.23.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "scheduler": {
 | 
					 | 
				
			||||||
      "version": "0.23.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "loose-envify": "^1.1.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "source-map-js": {
 | 
					 | 
				
			||||||
      "version": "1.0.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "styled-jsx": {
 | 
					 | 
				
			||||||
      "version": "5.1.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "client-only": "0.0.1"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "tslib": {
 | 
					 | 
				
			||||||
      "version": "2.5.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "typescript": {
 | 
					 | 
				
			||||||
      "version": "4.9.5",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										12
									
								
								package.json
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								package.json
									
										
									
									
									
								
							| 
						 | 
					@ -13,9 +13,19 @@
 | 
				
			||||||
    "@types/node": "18.13.0",
 | 
					    "@types/node": "18.13.0",
 | 
				
			||||||
    "@types/react": "18.0.28",
 | 
					    "@types/react": "18.0.28",
 | 
				
			||||||
    "@types/react-dom": "18.0.10",
 | 
					    "@types/react-dom": "18.0.10",
 | 
				
			||||||
 | 
					    "gray-matter": "^4.0.3",
 | 
				
			||||||
 | 
					    "markdown-to-jsx": "^7.1.9",
 | 
				
			||||||
    "next": "13.1.6",
 | 
					    "next": "13.1.6",
 | 
				
			||||||
 | 
					    "next-themes": "^0.2.1",
 | 
				
			||||||
    "react": "18.2.0",
 | 
					    "react": "18.2.0",
 | 
				
			||||||
    "react-dom": "18.2.0",
 | 
					    "react-dom": "18.2.0",
 | 
				
			||||||
    "typescript": "4.9.5"
 | 
					    "react-markdown": "^8.0.5",
 | 
				
			||||||
 | 
					    "remark": "^14.0.2",
 | 
				
			||||||
 | 
					    "remark-frontmatter": "^4.0.1",
 | 
				
			||||||
 | 
					    "remark-html": "^15.0.2",
 | 
				
			||||||
 | 
					    "sass": "^1.58.0",
 | 
				
			||||||
 | 
					    "to-vfile": "^7.2.4",
 | 
				
			||||||
 | 
					    "typescript": "4.9.5",
 | 
				
			||||||
 | 
					    "use-lanyard": "^1.4.2"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								src/blog/hello.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/blog/hello.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					title: Markdown Elements
 | 
				
			||||||
 | 
					date: 19/02/2023
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Hi ~~Mars~~ Venus!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Hi ~~Mars~~ Venus!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Hi ~~Mars~~ Venus!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Hi ~~Mars~~ Venus!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Hi ~~Mars~~ Venus!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_italics_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**bold**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> blockquote
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Ordered
 | 
				
			||||||
 | 
					2. Lists
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- unordered
 | 
				
			||||||
 | 
					- lists
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`code`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[A Link](../hello.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								src/components/Image.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/components/Image.tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					import NextLink from "next/link"
 | 
				
			||||||
 | 
					import LinkStyle from "@/styles/Link.module.sass"
 | 
				
			||||||
 | 
					import { CSSProperties } from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const Image = ({ src, alt }: { src: string, alt: string }) => {
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <figure>
 | 
				
			||||||
 | 
					            <img src={src} alt={alt} />
 | 
				
			||||||
 | 
					        </figure>
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Image; 
 | 
				
			||||||
							
								
								
									
										17
									
								
								src/components/Lanyard.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/components/Lanyard.tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					import { useLanyard } from "use-lanyard";
 | 
				
			||||||
 | 
					import constants from "@/lib/constants";
 | 
				
			||||||
 | 
					import yard from "@/styles/Lanyard.module.sass"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const Lanyard = () => {
 | 
				
			||||||
 | 
					    const lanyard = useLanyard(constants.ids.discord as `${bigint}`).data
 | 
				
			||||||
 | 
					    if (!lanyard?.listening_to_spotify) return (<></>);
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <div id={yard.lanyard}>
 | 
				
			||||||
 | 
					            <img src={lanyard?.spotify?.album_art_url as string} alt="" />
 | 
				
			||||||
 | 
					            <span> {lanyard?.spotify?.song} by {lanyard?.spotify?.artist.split(';')[0]} </span>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Lanyard; 
 | 
				
			||||||
							
								
								
									
										17
									
								
								src/components/Link.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/components/Link.tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					import NextLink from "next/link"
 | 
				
			||||||
 | 
					import LinkStyle from "@/styles/Link.module.sass"
 | 
				
			||||||
 | 
					import { CSSProperties } from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const Link = ({ href, title, asList = false, withArrow = false, style }: { href: string, title: string, asList?: boolean, withArrow?: boolean, style?: CSSProperties }) => {
 | 
				
			||||||
 | 
					    const relme = [
 | 
				
			||||||
 | 
					        'fediverse'
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <NextLink style={style} href={href} rel={relme.includes(title) ? "me" : undefined}>
 | 
				
			||||||
 | 
					            {asList ? (<span className={LinkStyle.listLink}>{title}{withArrow ? " ↗" : ""}</span>) : (<span className={LinkStyle.link}>{title}{withArrow ? " ↗" : ""}</span >)}
 | 
				
			||||||
 | 
					        </NextLink>
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Link; 
 | 
				
			||||||
							
								
								
									
										21
									
								
								src/components/PostList.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/components/PostList.tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					import Link from "./Link";
 | 
				
			||||||
 | 
					import styles from "@/styles/PostList.module.sass"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const PostList = ({ posts }: {
 | 
				
			||||||
 | 
					    posts: [{ title: string, date: string, link: string }]
 | 
				
			||||||
 | 
					}) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <ul className={styles.blog_posts}>
 | 
				
			||||||
 | 
					            {posts.map(post => (
 | 
				
			||||||
 | 
					                <li className={styles.blog_post_row}>
 | 
				
			||||||
 | 
					                    <pre>{post.date}</pre >
 | 
				
			||||||
 | 
					                    <Link style={{ paddingLeft: ".5rem" }} href={post.link} title={post.title} withArrow />
 | 
				
			||||||
 | 
					                </li>
 | 
				
			||||||
 | 
					            ))}
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default PostList; 
 | 
				
			||||||
							
								
								
									
										39
									
								
								src/components/RenderWithoutJS.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								src/components/RenderWithoutJS.tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					import React, { ReactNode, useEffect, useState } from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const RenderWithoutJS = ({ children }: { children: ReactNode }) => {
 | 
				
			||||||
 | 
					    // let Mastodon = profiles.filter(p => p.platform === "Fediverse")[0]
 | 
				
			||||||
 | 
					    const [nojs, setNoJS] = useState(true)
 | 
				
			||||||
 | 
					    useEffect(() => setNoJS(false), [])
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <>
 | 
				
			||||||
 | 
					            <noscript>
 | 
				
			||||||
 | 
					                <div style={{
 | 
				
			||||||
 | 
					                    display: nojs ? "block" : "none",
 | 
				
			||||||
 | 
					                    position: "absolute",
 | 
				
			||||||
 | 
					                    top: "50%",
 | 
				
			||||||
 | 
					                    left: "50%",
 | 
				
			||||||
 | 
					                    transform: "translateX(-50%)",
 | 
				
			||||||
 | 
					                    textAlign: "center"
 | 
				
			||||||
 | 
					                }}>
 | 
				
			||||||
 | 
					                    <span>
 | 
				
			||||||
 | 
					                        This site needs Javascript to run.
 | 
				
			||||||
 | 
					                        <br />
 | 
				
			||||||
 | 
					                        Please enable this Permission and reload this Page.
 | 
				
			||||||
 | 
					                    </span>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </noscript>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {/* Mastodon Verification Link */}
 | 
				
			||||||
 | 
					            {/* <a style={{ display: "none" }} rel="me" href={Mastodon.url}>
 | 
				
			||||||
 | 
					                {Mastodon.username}
 | 
				
			||||||
 | 
					            </a> */}
 | 
				
			||||||
 | 
					            {/* END */}
 | 
				
			||||||
 | 
					            {!nojs && (<>{children}</>)}
 | 
				
			||||||
 | 
					        </>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default RenderWithoutJS;
 | 
				
			||||||
							
								
								
									
										35
									
								
								src/components/Sidebar.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/components/Sidebar.tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					import constants from "@/lib/constants"
 | 
				
			||||||
 | 
					import getProfiles from "@/lib/profiles";
 | 
				
			||||||
 | 
					import sidebar from "@/styles/Sidebar.module.sass"
 | 
				
			||||||
 | 
					import Link from "./Link";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const Sidebar = () => {
 | 
				
			||||||
 | 
					    let profiles = getProfiles()
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <aside id={sidebar.sidebar}>
 | 
				
			||||||
 | 
					            <div className={sidebar.me}>
 | 
				
			||||||
 | 
					                {constants.name}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <p className={sidebar.bio}>
 | 
				
			||||||
 | 
					                {constants.bio}
 | 
				
			||||||
 | 
					            </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <nav id={sidebar.nav}>
 | 
				
			||||||
 | 
					                <ul>
 | 
				
			||||||
 | 
					                    <Link href="/" title="home" asList />
 | 
				
			||||||
 | 
					                    <Link href="/blog" title="blog" asList />
 | 
				
			||||||
 | 
					                </ul>
 | 
				
			||||||
 | 
					                <ul>
 | 
				
			||||||
 | 
					                    {profiles.map((profile, index) => {
 | 
				
			||||||
 | 
					                        return (<Link key={index} href={profile.link} title={profile.site} asList withArrow />)
 | 
				
			||||||
 | 
					                    })}
 | 
				
			||||||
 | 
					                </ul>
 | 
				
			||||||
 | 
					            </nav>
 | 
				
			||||||
 | 
					        </aside>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Sidebar;
 | 
				
			||||||
							
								
								
									
										18
									
								
								src/lib/constants.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/lib/constants.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					const constants = {
 | 
				
			||||||
 | 
					    name: 'Lio',
 | 
				
			||||||
 | 
					    bio: "digital sorcerer",
 | 
				
			||||||
 | 
					    ids: {
 | 
				
			||||||
 | 
					        discord: '318044130796109825'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    socials: {
 | 
				
			||||||
 | 
					        fedi: "https://pounced-on.me/@lio",
 | 
				
			||||||
 | 
					        cohost: "https://cohost.org/lio",
 | 
				
			||||||
 | 
					        twitter: "https://twitter.com/@himbolion",
 | 
				
			||||||
 | 
					        git: "https://git.lio.cat/l",
 | 
				
			||||||
 | 
					        github: "https://github.com/@himbolion",
 | 
				
			||||||
 | 
					        email: "mailto:twilight@lio.zone",
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default constants
 | 
				
			||||||
							
								
								
									
										7
									
								
								src/lib/getFrontmatter.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/lib/getFrontmatter.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					import { readFileSync } from "fs";
 | 
				
			||||||
 | 
					import matter from "gray-matter";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function (path: string) {
 | 
				
			||||||
 | 
					    return matter(readFileSync(path, 'utf8'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								src/lib/listFiles.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/lib/listFiles.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					import { readdirSync } from "fs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function (path: string) {
 | 
				
			||||||
 | 
					    let files = readdirSync(path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return files.map(file => `${path}/${file}`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								src/lib/profiles.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/lib/profiles.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					import constants from "@/lib/constants"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const getProfiles = () => {
 | 
				
			||||||
 | 
					    return [
 | 
				
			||||||
 | 
					        { site: "fediverse", link: constants.socials.fedi },
 | 
				
			||||||
 | 
					        { site: "twitter", link: constants.socials.twitter },
 | 
				
			||||||
 | 
					        { site: "cohost", link: constants.socials.cohost },
 | 
				
			||||||
 | 
					        { site: "forgejo", link: constants.socials.git },
 | 
				
			||||||
 | 
					        { site: "github", link: constants.socials.github },
 | 
				
			||||||
 | 
					        { site: "email", link: constants.socials.email },
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default getProfiles
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,15 @@
 | 
				
			||||||
import '@/styles/globals.css'
 | 
					import { ThemeProvider } from "next-themes";
 | 
				
			||||||
import type { AppProps } from 'next/app'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default function App({ Component, pageProps }: AppProps) {
 | 
					import "../styles/main.sass";
 | 
				
			||||||
  return <Component {...pageProps} />
 | 
					function Void({ Component, pageProps }: any) {
 | 
				
			||||||
 | 
					  // const theme = useTheme()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <ThemeProvider enableSystem enableColorScheme >
 | 
				
			||||||
 | 
					      <Component {...pageProps} />
 | 
				
			||||||
 | 
					    </ThemeProvider>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Void;
 | 
				
			||||||
							
								
								
									
										63
									
								
								src/pages/blog/[...slug].tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								src/pages/blog/[...slug].tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,63 @@
 | 
				
			||||||
 | 
					import RenderWithoutJS from "@/components/RenderWithoutJS";
 | 
				
			||||||
 | 
					import Sidebar from "@/components/Sidebar";
 | 
				
			||||||
 | 
					import index from "@/styles/Index.module.sass"
 | 
				
			||||||
 | 
					import Lanyard from "@/components/Lanyard"
 | 
				
			||||||
 | 
					import { remark } from "remark"
 | 
				
			||||||
 | 
					import remarkFrontmatter from "remark-frontmatter"
 | 
				
			||||||
 | 
					import { read } from "to-vfile"
 | 
				
			||||||
 | 
					import listFiles from "@/lib/listFiles";
 | 
				
			||||||
 | 
					import Markdown from 'markdown-to-jsx';
 | 
				
			||||||
 | 
					import Link from "@/components/Link";
 | 
				
			||||||
 | 
					import Image from "@/components/Image";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const Post = (props: { post: string }) => {
 | 
				
			||||||
 | 
					    console.log(props.post)
 | 
				
			||||||
 | 
					    let Index = (
 | 
				
			||||||
 | 
					        <main id={index.layout}>
 | 
				
			||||||
 | 
					            <Sidebar />
 | 
				
			||||||
 | 
					            <section id={index.main}>
 | 
				
			||||||
 | 
					                <Markdown
 | 
				
			||||||
 | 
					                    children={props.post}
 | 
				
			||||||
 | 
					                    options={{
 | 
				
			||||||
 | 
					                        overrides: {
 | 
				
			||||||
 | 
					                            a: ({ ...props }) => <Link href={props.href} title={props.children[0]} withArrow />,
 | 
				
			||||||
 | 
					                            img: ({ ...props }) => <Image src={props.src} alt={props.alt} />,
 | 
				
			||||||
 | 
					                            p: ({ children, ...props }) => {
 | 
				
			||||||
 | 
					                                const ParaComponent = children[0]?.type?.name === 'img' ? 'div' : 'p'
 | 
				
			||||||
 | 
					                                return <ParaComponent {...props}>{children}</ParaComponent>
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }}
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            </section>
 | 
				
			||||||
 | 
					            <Lanyard />
 | 
				
			||||||
 | 
					        </main>
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    return <RenderWithoutJS children={Index} />
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Post
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export async function getStaticProps(context: any) {
 | 
				
			||||||
 | 
					    let post = await remark()
 | 
				
			||||||
 | 
					        .use(remarkFrontmatter)
 | 
				
			||||||
 | 
					        .process(await read(`${listFiles('./src/blog').filter(file => file.includes(context.params.slug))[0]}`))
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        props: {
 | 
				
			||||||
 | 
					            post: (post.value as string).replace(/(---)\n*([a-zA-Z0-9\/_:\s*]*)*(---)/gmi, "")
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export async function getStaticPaths() {
 | 
				
			||||||
 | 
					    let path = './src/blog'
 | 
				
			||||||
 | 
					    let paths = listFiles(path).map(file => file.replace(path, "/blog/").replace('.md', '').replace('.mdx', ''))
 | 
				
			||||||
 | 
					    // console.log(paths)
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        paths,
 | 
				
			||||||
 | 
					        fallback: 'blocking'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										42
									
								
								src/pages/blog/index.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								src/pages/blog/index.tsx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import RenderWithoutJS from "@/components/RenderWithoutJS";
 | 
				
			||||||
 | 
					import Sidebar from "@/components/Sidebar";
 | 
				
			||||||
 | 
					import index from "@/styles/Index.module.sass"
 | 
				
			||||||
 | 
					import Lanyard from "@/components/Lanyard"
 | 
				
			||||||
 | 
					import listFiles from "@/lib/listFiles";
 | 
				
			||||||
 | 
					import getFrontmatter from "@/lib/getFrontmatter";
 | 
				
			||||||
 | 
					import PostList from "@/components/PostList";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const IndexPage = (props: { posts: [{ title: string, date: string, link: string }] }) => {
 | 
				
			||||||
 | 
					    let Index = (
 | 
				
			||||||
 | 
					        <main id={index.layout}>
 | 
				
			||||||
 | 
					            <Sidebar />
 | 
				
			||||||
 | 
					            <section id={index.blogMain}>
 | 
				
			||||||
 | 
					                <h1>blog</h1>
 | 
				
			||||||
 | 
					                <PostList posts={props.posts} />
 | 
				
			||||||
 | 
					            </section>
 | 
				
			||||||
 | 
					            <Lanyard />
 | 
				
			||||||
 | 
					            {/* <Copyright /> */}
 | 
				
			||||||
 | 
					        </main>
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    return <RenderWithoutJS children={Index} />
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default IndexPage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export async function getStaticProps() {
 | 
				
			||||||
 | 
					    let blogPath = './src/blog'
 | 
				
			||||||
 | 
					    let posts = listFiles(blogPath) //
 | 
				
			||||||
 | 
					    let frontmatter = posts.map(post => {
 | 
				
			||||||
 | 
					        let matter = getFrontmatter(post).data
 | 
				
			||||||
 | 
					        return {
 | 
				
			||||||
 | 
					            ...matter,
 | 
				
			||||||
 | 
					            link: post.replace(blogPath, "/blog/").replace('.md', "").replace('.mdx', "")
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        props: {
 | 
				
			||||||
 | 
					            posts: frontmatter
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,123 +1,25 @@
 | 
				
			||||||
import Head from 'next/head'
 | 
					 | 
				
			||||||
import Image from 'next/image'
 | 
					 | 
				
			||||||
import { Inter } from '@next/font/google'
 | 
					 | 
				
			||||||
import styles from '@/styles/Home.module.css'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const inter = Inter({ subsets: ['latin'] })
 | 
					import RenderWithoutJS from "@/components/RenderWithoutJS";
 | 
				
			||||||
 | 
					import Sidebar from "@/components/Sidebar";
 | 
				
			||||||
 | 
					import index from "@/styles/Index.module.sass"
 | 
				
			||||||
 | 
					import Lanyard from "@/components/Lanyard"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default function Home() {
 | 
					const IndexPage = () => {
 | 
				
			||||||
  return (
 | 
					  let Index = (
 | 
				
			||||||
    <>
 | 
					    <main id={index.layout}>
 | 
				
			||||||
      <Head>
 | 
					      <Sidebar />
 | 
				
			||||||
        <title>Create Next App</title>
 | 
					      <section id={index.main}>
 | 
				
			||||||
        <meta name="description" content="Generated by create next app" />
 | 
					        <h1>hey!</h1>
 | 
				
			||||||
        <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
					        <p>
 | 
				
			||||||
        <link rel="icon" href="/favicon.ico" />
 | 
					          my name's Lio, and I code sometimes
 | 
				
			||||||
      </Head>
 | 
					          {/* my name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimesmy name's Lio, and I code sometimes */}
 | 
				
			||||||
      <main className={styles.main}>
 | 
					        </p>
 | 
				
			||||||
        <div className={styles.description}>
 | 
					      </section>
 | 
				
			||||||
          <p>
 | 
					      <Lanyard />
 | 
				
			||||||
            Get started by editing 
 | 
					      {/* <Copyright /> */}
 | 
				
			||||||
            <code className={styles.code}>src/pages/index.tsx</code>
 | 
					    </main>
 | 
				
			||||||
          </p>
 | 
					  );
 | 
				
			||||||
          <div>
 | 
					  return <RenderWithoutJS children={Index} />
 | 
				
			||||||
            <a
 | 
					};
 | 
				
			||||||
              href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
 | 
					 | 
				
			||||||
              target="_blank"
 | 
					 | 
				
			||||||
              rel="noopener noreferrer"
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              By{' '}
 | 
					 | 
				
			||||||
              <Image
 | 
					 | 
				
			||||||
                src="/vercel.svg"
 | 
					 | 
				
			||||||
                alt="Vercel Logo"
 | 
					 | 
				
			||||||
                className={styles.vercelLogo}
 | 
					 | 
				
			||||||
                width={100}
 | 
					 | 
				
			||||||
                height={24}
 | 
					 | 
				
			||||||
                priority
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <div className={styles.center}>
 | 
					export default IndexPage
 | 
				
			||||||
          <Image
 | 
					 | 
				
			||||||
            className={styles.logo}
 | 
					 | 
				
			||||||
            src="/next.svg"
 | 
					 | 
				
			||||||
            alt="Next.js Logo"
 | 
					 | 
				
			||||||
            width={180}
 | 
					 | 
				
			||||||
            height={37}
 | 
					 | 
				
			||||||
            priority
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
          <div className={styles.thirteen}>
 | 
					 | 
				
			||||||
            <Image
 | 
					 | 
				
			||||||
              src="/thirteen.svg"
 | 
					 | 
				
			||||||
              alt="13"
 | 
					 | 
				
			||||||
              width={40}
 | 
					 | 
				
			||||||
              height={31}
 | 
					 | 
				
			||||||
              priority
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        <div className={styles.grid}>
 | 
					 | 
				
			||||||
          <a
 | 
					 | 
				
			||||||
            href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
 | 
					 | 
				
			||||||
            className={styles.card}
 | 
					 | 
				
			||||||
            target="_blank"
 | 
					 | 
				
			||||||
            rel="noopener noreferrer"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <h2 className={inter.className}>
 | 
					 | 
				
			||||||
              Docs <span>-></span>
 | 
					 | 
				
			||||||
            </h2>
 | 
					 | 
				
			||||||
            <p className={inter.className}>
 | 
					 | 
				
			||||||
              Find in-depth information about Next.js features and API.
 | 
					 | 
				
			||||||
            </p>
 | 
					 | 
				
			||||||
          </a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <a
 | 
					 | 
				
			||||||
            href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
 | 
					 | 
				
			||||||
            className={styles.card}
 | 
					 | 
				
			||||||
            target="_blank"
 | 
					 | 
				
			||||||
            rel="noopener noreferrer"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <h2 className={inter.className}>
 | 
					 | 
				
			||||||
              Learn <span>-></span>
 | 
					 | 
				
			||||||
            </h2>
 | 
					 | 
				
			||||||
            <p className={inter.className}>
 | 
					 | 
				
			||||||
              Learn about Next.js in an interactive course with quizzes!
 | 
					 | 
				
			||||||
            </p>
 | 
					 | 
				
			||||||
          </a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <a
 | 
					 | 
				
			||||||
            href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
 | 
					 | 
				
			||||||
            className={styles.card}
 | 
					 | 
				
			||||||
            target="_blank"
 | 
					 | 
				
			||||||
            rel="noopener noreferrer"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <h2 className={inter.className}>
 | 
					 | 
				
			||||||
              Templates <span>-></span>
 | 
					 | 
				
			||||||
            </h2>
 | 
					 | 
				
			||||||
            <p className={inter.className}>
 | 
					 | 
				
			||||||
              Discover and deploy boilerplate example Next.js projects.
 | 
					 | 
				
			||||||
            </p>
 | 
					 | 
				
			||||||
          </a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <a
 | 
					 | 
				
			||||||
            href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
 | 
					 | 
				
			||||||
            className={styles.card}
 | 
					 | 
				
			||||||
            target="_blank"
 | 
					 | 
				
			||||||
            rel="noopener noreferrer"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <h2 className={inter.className}>
 | 
					 | 
				
			||||||
              Deploy <span>-></span>
 | 
					 | 
				
			||||||
            </h2>
 | 
					 | 
				
			||||||
            <p className={inter.className}>
 | 
					 | 
				
			||||||
              Instantly deploy your Next.js site to a shareable URL
 | 
					 | 
				
			||||||
              with Vercel.
 | 
					 | 
				
			||||||
            </p>
 | 
					 | 
				
			||||||
          </a>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
      </main>
 | 
					 | 
				
			||||||
    </>
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,278 +0,0 @@
 | 
				
			||||||
.main {
 | 
					 | 
				
			||||||
  display: flex;
 | 
					 | 
				
			||||||
  flex-direction: column;
 | 
					 | 
				
			||||||
  justify-content: space-between;
 | 
					 | 
				
			||||||
  align-items: center;
 | 
					 | 
				
			||||||
  padding: 6rem;
 | 
					 | 
				
			||||||
  min-height: 100vh;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.description {
 | 
					 | 
				
			||||||
  display: inherit;
 | 
					 | 
				
			||||||
  justify-content: inherit;
 | 
					 | 
				
			||||||
  align-items: inherit;
 | 
					 | 
				
			||||||
  font-size: 0.85rem;
 | 
					 | 
				
			||||||
  max-width: var(--max-width);
 | 
					 | 
				
			||||||
  width: 100%;
 | 
					 | 
				
			||||||
  z-index: 2;
 | 
					 | 
				
			||||||
  font-family: var(--font-mono);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.description a {
 | 
					 | 
				
			||||||
  display: flex;
 | 
					 | 
				
			||||||
  justify-content: center;
 | 
					 | 
				
			||||||
  align-items: center;
 | 
					 | 
				
			||||||
  gap: 0.5rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.description p {
 | 
					 | 
				
			||||||
  position: relative;
 | 
					 | 
				
			||||||
  margin: 0;
 | 
					 | 
				
			||||||
  padding: 1rem;
 | 
					 | 
				
			||||||
  background-color: rgba(var(--callout-rgb), 0.5);
 | 
					 | 
				
			||||||
  border: 1px solid rgba(var(--callout-border-rgb), 0.3);
 | 
					 | 
				
			||||||
  border-radius: var(--border-radius);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.code {
 | 
					 | 
				
			||||||
  font-weight: 700;
 | 
					 | 
				
			||||||
  font-family: var(--font-mono);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.grid {
 | 
					 | 
				
			||||||
  display: grid;
 | 
					 | 
				
			||||||
  grid-template-columns: repeat(4, minmax(25%, auto));
 | 
					 | 
				
			||||||
  width: var(--max-width);
 | 
					 | 
				
			||||||
  max-width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card {
 | 
					 | 
				
			||||||
  padding: 1rem 1.2rem;
 | 
					 | 
				
			||||||
  border-radius: var(--border-radius);
 | 
					 | 
				
			||||||
  background: rgba(var(--card-rgb), 0);
 | 
					 | 
				
			||||||
  border: 1px solid rgba(var(--card-border-rgb), 0);
 | 
					 | 
				
			||||||
  transition: background 200ms, border 200ms;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card span {
 | 
					 | 
				
			||||||
  display: inline-block;
 | 
					 | 
				
			||||||
  transition: transform 200ms;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card h2 {
 | 
					 | 
				
			||||||
  font-weight: 600;
 | 
					 | 
				
			||||||
  margin-bottom: 0.7rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card p {
 | 
					 | 
				
			||||||
  margin: 0;
 | 
					 | 
				
			||||||
  opacity: 0.6;
 | 
					 | 
				
			||||||
  font-size: 0.9rem;
 | 
					 | 
				
			||||||
  line-height: 1.5;
 | 
					 | 
				
			||||||
  max-width: 30ch;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.center {
 | 
					 | 
				
			||||||
  display: flex;
 | 
					 | 
				
			||||||
  justify-content: center;
 | 
					 | 
				
			||||||
  align-items: center;
 | 
					 | 
				
			||||||
  position: relative;
 | 
					 | 
				
			||||||
  padding: 4rem 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.center::before {
 | 
					 | 
				
			||||||
  background: var(--secondary-glow);
 | 
					 | 
				
			||||||
  border-radius: 50%;
 | 
					 | 
				
			||||||
  width: 480px;
 | 
					 | 
				
			||||||
  height: 360px;
 | 
					 | 
				
			||||||
  margin-left: -400px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.center::after {
 | 
					 | 
				
			||||||
  background: var(--primary-glow);
 | 
					 | 
				
			||||||
  width: 240px;
 | 
					 | 
				
			||||||
  height: 180px;
 | 
					 | 
				
			||||||
  z-index: -1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.center::before,
 | 
					 | 
				
			||||||
.center::after {
 | 
					 | 
				
			||||||
  content: '';
 | 
					 | 
				
			||||||
  left: 50%;
 | 
					 | 
				
			||||||
  position: absolute;
 | 
					 | 
				
			||||||
  filter: blur(45px);
 | 
					 | 
				
			||||||
  transform: translateZ(0);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.logo,
 | 
					 | 
				
			||||||
.thirteen {
 | 
					 | 
				
			||||||
  position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.thirteen {
 | 
					 | 
				
			||||||
  display: flex;
 | 
					 | 
				
			||||||
  justify-content: center;
 | 
					 | 
				
			||||||
  align-items: center;
 | 
					 | 
				
			||||||
  width: 75px;
 | 
					 | 
				
			||||||
  height: 75px;
 | 
					 | 
				
			||||||
  padding: 25px 10px;
 | 
					 | 
				
			||||||
  margin-left: 16px;
 | 
					 | 
				
			||||||
  transform: translateZ(0);
 | 
					 | 
				
			||||||
  border-radius: var(--border-radius);
 | 
					 | 
				
			||||||
  overflow: hidden;
 | 
					 | 
				
			||||||
  box-shadow: 0px 2px 8px -1px #0000001a;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.thirteen::before,
 | 
					 | 
				
			||||||
.thirteen::after {
 | 
					 | 
				
			||||||
  content: '';
 | 
					 | 
				
			||||||
  position: absolute;
 | 
					 | 
				
			||||||
  z-index: -1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Conic Gradient Animation */
 | 
					 | 
				
			||||||
.thirteen::before {
 | 
					 | 
				
			||||||
  animation: 6s rotate linear infinite;
 | 
					 | 
				
			||||||
  width: 200%;
 | 
					 | 
				
			||||||
  height: 200%;
 | 
					 | 
				
			||||||
  background: var(--tile-border);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Inner Square */
 | 
					 | 
				
			||||||
.thirteen::after {
 | 
					 | 
				
			||||||
  inset: 0;
 | 
					 | 
				
			||||||
  padding: 1px;
 | 
					 | 
				
			||||||
  border-radius: var(--border-radius);
 | 
					 | 
				
			||||||
  background: linear-gradient(
 | 
					 | 
				
			||||||
    to bottom right,
 | 
					 | 
				
			||||||
    rgba(var(--tile-start-rgb), 1),
 | 
					 | 
				
			||||||
    rgba(var(--tile-end-rgb), 1)
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
  background-clip: content-box;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Enable hover only on non-touch devices */
 | 
					 | 
				
			||||||
@media (hover: hover) and (pointer: fine) {
 | 
					 | 
				
			||||||
  .card:hover {
 | 
					 | 
				
			||||||
    background: rgba(var(--card-rgb), 0.1);
 | 
					 | 
				
			||||||
    border: 1px solid rgba(var(--card-border-rgb), 0.15);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .card:hover span {
 | 
					 | 
				
			||||||
    transform: translateX(4px);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (prefers-reduced-motion) {
 | 
					 | 
				
			||||||
  .thirteen::before {
 | 
					 | 
				
			||||||
    animation: none;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .card:hover span {
 | 
					 | 
				
			||||||
    transform: none;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Mobile */
 | 
					 | 
				
			||||||
@media (max-width: 700px) {
 | 
					 | 
				
			||||||
  .content {
 | 
					 | 
				
			||||||
    padding: 4rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .grid {
 | 
					 | 
				
			||||||
    grid-template-columns: 1fr;
 | 
					 | 
				
			||||||
    margin-bottom: 120px;
 | 
					 | 
				
			||||||
    max-width: 320px;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .card {
 | 
					 | 
				
			||||||
    padding: 1rem 2.5rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .card h2 {
 | 
					 | 
				
			||||||
    margin-bottom: 0.5rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .center {
 | 
					 | 
				
			||||||
    padding: 8rem 0 6rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .center::before {
 | 
					 | 
				
			||||||
    transform: none;
 | 
					 | 
				
			||||||
    height: 300px;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .description {
 | 
					 | 
				
			||||||
    font-size: 0.8rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .description a {
 | 
					 | 
				
			||||||
    padding: 1rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .description p,
 | 
					 | 
				
			||||||
  .description div {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    position: fixed;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .description p {
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    inset: 0 0 auto;
 | 
					 | 
				
			||||||
    padding: 2rem 1rem 1.4rem;
 | 
					 | 
				
			||||||
    border-radius: 0;
 | 
					 | 
				
			||||||
    border: none;
 | 
					 | 
				
			||||||
    border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
 | 
					 | 
				
			||||||
    background: linear-gradient(
 | 
					 | 
				
			||||||
      to bottom,
 | 
					 | 
				
			||||||
      rgba(var(--background-start-rgb), 1),
 | 
					 | 
				
			||||||
      rgba(var(--callout-rgb), 0.5)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    background-clip: padding-box;
 | 
					 | 
				
			||||||
    backdrop-filter: blur(24px);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .description div {
 | 
					 | 
				
			||||||
    align-items: flex-end;
 | 
					 | 
				
			||||||
    pointer-events: none;
 | 
					 | 
				
			||||||
    inset: auto 0 0;
 | 
					 | 
				
			||||||
    padding: 2rem;
 | 
					 | 
				
			||||||
    height: 200px;
 | 
					 | 
				
			||||||
    background: linear-gradient(
 | 
					 | 
				
			||||||
      to bottom,
 | 
					 | 
				
			||||||
      transparent 0%,
 | 
					 | 
				
			||||||
      rgb(var(--background-end-rgb)) 40%
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    z-index: 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Tablet and Smaller Desktop */
 | 
					 | 
				
			||||||
@media (min-width: 701px) and (max-width: 1120px) {
 | 
					 | 
				
			||||||
  .grid {
 | 
					 | 
				
			||||||
    grid-template-columns: repeat(2, 50%);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (prefers-color-scheme: dark) {
 | 
					 | 
				
			||||||
  .vercelLogo {
 | 
					 | 
				
			||||||
    filter: invert(1);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .logo,
 | 
					 | 
				
			||||||
  .thirteen img {
 | 
					 | 
				
			||||||
    filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@keyframes rotate {
 | 
					 | 
				
			||||||
  from {
 | 
					 | 
				
			||||||
    transform: rotate(360deg);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  to {
 | 
					 | 
				
			||||||
    transform: rotate(0deg);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										14
									
								
								src/styles/Index.module.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/styles/Index.module.sass
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					@import '_variables'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#layout
 | 
				
			||||||
 | 
					    max-width: 1000px
 | 
				
			||||||
 | 
					    margin: 6rem 0 4rem 4rem
 | 
				
			||||||
 | 
					    display: inline-flex
 | 
				
			||||||
 | 
					    @media (max-width:600px)
 | 
				
			||||||
 | 
					        display: inline-block
 | 
				
			||||||
 | 
					#main
 | 
				
			||||||
 | 
					    padding-right: 2rem
 | 
				
			||||||
 | 
					#blogMain
 | 
				
			||||||
 | 
					    padding-right: 2rem
 | 
				
			||||||
 | 
					    h1
 | 
				
			||||||
 | 
					        padding: 0 0 1rem 0
 | 
				
			||||||
							
								
								
									
										27
									
								
								src/styles/Lanyard.module.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/styles/Lanyard.module.sass
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					@import '_variables'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#lanyard
 | 
				
			||||||
 | 
					    position: fixed
 | 
				
			||||||
 | 
					    border-radius: 8px
 | 
				
			||||||
 | 
					    top: 0%
 | 
				
			||||||
 | 
					    right: 0%
 | 
				
			||||||
 | 
					    margin: 1rem
 | 
				
			||||||
 | 
					    padding: .5rem
 | 
				
			||||||
 | 
					    display: flex
 | 
				
			||||||
 | 
					    align-items: center
 | 
				
			||||||
 | 
					    @media (max-width:600px)
 | 
				
			||||||
 | 
					        top: 0
 | 
				
			||||||
 | 
					        left: 0
 | 
				
			||||||
 | 
					    &:hover
 | 
				
			||||||
 | 
					        background-color: black
 | 
				
			||||||
 | 
					    img
 | 
				
			||||||
 | 
					        margin-right: .5em
 | 
				
			||||||
 | 
					        height: 1.5em
 | 
				
			||||||
 | 
					        border-radius: 50%
 | 
				
			||||||
 | 
					        animation: spin 5s linear infinite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@keyframes spin
 | 
				
			||||||
 | 
					    from
 | 
				
			||||||
 | 
					        transform: rotate(0deg)
 | 
				
			||||||
 | 
					    to
 | 
				
			||||||
 | 
					        transform: rotate(360deg)
 | 
				
			||||||
							
								
								
									
										15
									
								
								src/styles/Link.module.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/styles/Link.module.sass
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					@import '_variables'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.listLink, .link
 | 
				
			||||||
 | 
					    color: $link
 | 
				
			||||||
 | 
					    text-decoration: none
 | 
				
			||||||
 | 
					    padding: .2rem
 | 
				
			||||||
 | 
					    border-radius: 8px
 | 
				
			||||||
 | 
					    &:hover
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        background: $link-hover
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.listLink
 | 
				
			||||||
 | 
					    display: table
 | 
				
			||||||
 | 
					    @media (max-width:600px)
 | 
				
			||||||
 | 
					        display: inline-block
 | 
				
			||||||
							
								
								
									
										7
									
								
								src/styles/PostList.module.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/styles/PostList.module.sass
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					.blog_posts
 | 
				
			||||||
 | 
					    list-style-type: none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.blog_post_row
 | 
				
			||||||
 | 
					    display: flex
 | 
				
			||||||
 | 
					    align-items: baseline
 | 
				
			||||||
 | 
					    // padding-left: 2rem
 | 
				
			||||||
							
								
								
									
										14
									
								
								src/styles/Sidebar.module.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/styles/Sidebar.module.sass
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					@import '_variables'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#sidebar
 | 
				
			||||||
 | 
					    margin-right: 2rem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.me
 | 
				
			||||||
 | 
					    font-size: $h1-size
 | 
				
			||||||
 | 
					    font-weight: bold
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#nav
 | 
				
			||||||
 | 
					    display: inline-block
 | 
				
			||||||
 | 
					    @media (max-width:600px)
 | 
				
			||||||
 | 
					        display: flex
 | 
				
			||||||
 | 
					        flex-flow: row wrap
 | 
				
			||||||
							
								
								
									
										8
									
								
								src/styles/_variables.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/styles/_variables.sass
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					// colors
 | 
				
			||||||
 | 
					$dark: #222
 | 
				
			||||||
 | 
					$light: #ffffff
 | 
				
			||||||
 | 
					$link: #ff802c
 | 
				
			||||||
 | 
					$link-hover: #ff802c48
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// font sizes
 | 
				
			||||||
 | 
					$h1-size: 1.6em
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								src/styles/fonts/Flachbau.ttf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/styles/fonts/Flachbau.ttf
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -1,107 +0,0 @@
 | 
				
			||||||
:root {
 | 
					 | 
				
			||||||
  --max-width: 1100px;
 | 
					 | 
				
			||||||
  --border-radius: 12px;
 | 
					 | 
				
			||||||
  --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono',
 | 
					 | 
				
			||||||
    'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro',
 | 
					 | 
				
			||||||
    'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --foreground-rgb: 0, 0, 0;
 | 
					 | 
				
			||||||
  --background-start-rgb: 214, 219, 220;
 | 
					 | 
				
			||||||
  --background-end-rgb: 255, 255, 255;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --primary-glow: conic-gradient(
 | 
					 | 
				
			||||||
    from 180deg at 50% 50%,
 | 
					 | 
				
			||||||
    #16abff33 0deg,
 | 
					 | 
				
			||||||
    #0885ff33 55deg,
 | 
					 | 
				
			||||||
    #54d6ff33 120deg,
 | 
					 | 
				
			||||||
    #0071ff33 160deg,
 | 
					 | 
				
			||||||
    transparent 360deg
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
  --secondary-glow: radial-gradient(
 | 
					 | 
				
			||||||
    rgba(255, 255, 255, 1),
 | 
					 | 
				
			||||||
    rgba(255, 255, 255, 0)
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --tile-start-rgb: 239, 245, 249;
 | 
					 | 
				
			||||||
  --tile-end-rgb: 228, 232, 233;
 | 
					 | 
				
			||||||
  --tile-border: conic-gradient(
 | 
					 | 
				
			||||||
    #00000080,
 | 
					 | 
				
			||||||
    #00000040,
 | 
					 | 
				
			||||||
    #00000030,
 | 
					 | 
				
			||||||
    #00000020,
 | 
					 | 
				
			||||||
    #00000010,
 | 
					 | 
				
			||||||
    #00000010,
 | 
					 | 
				
			||||||
    #00000080
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --callout-rgb: 238, 240, 241;
 | 
					 | 
				
			||||||
  --callout-border-rgb: 172, 175, 176;
 | 
					 | 
				
			||||||
  --card-rgb: 180, 185, 188;
 | 
					 | 
				
			||||||
  --card-border-rgb: 131, 134, 135;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (prefers-color-scheme: dark) {
 | 
					 | 
				
			||||||
  :root {
 | 
					 | 
				
			||||||
    --foreground-rgb: 255, 255, 255;
 | 
					 | 
				
			||||||
    --background-start-rgb: 0, 0, 0;
 | 
					 | 
				
			||||||
    --background-end-rgb: 0, 0, 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0));
 | 
					 | 
				
			||||||
    --secondary-glow: linear-gradient(
 | 
					 | 
				
			||||||
      to bottom right,
 | 
					 | 
				
			||||||
      rgba(1, 65, 255, 0),
 | 
					 | 
				
			||||||
      rgba(1, 65, 255, 0),
 | 
					 | 
				
			||||||
      rgba(1, 65, 255, 0.3)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    --tile-start-rgb: 2, 13, 46;
 | 
					 | 
				
			||||||
    --tile-end-rgb: 2, 5, 19;
 | 
					 | 
				
			||||||
    --tile-border: conic-gradient(
 | 
					 | 
				
			||||||
      #ffffff80,
 | 
					 | 
				
			||||||
      #ffffff40,
 | 
					 | 
				
			||||||
      #ffffff30,
 | 
					 | 
				
			||||||
      #ffffff20,
 | 
					 | 
				
			||||||
      #ffffff10,
 | 
					 | 
				
			||||||
      #ffffff10,
 | 
					 | 
				
			||||||
      #ffffff80
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    --callout-rgb: 20, 20, 20;
 | 
					 | 
				
			||||||
    --callout-border-rgb: 108, 108, 108;
 | 
					 | 
				
			||||||
    --card-rgb: 100, 100, 100;
 | 
					 | 
				
			||||||
    --card-border-rgb: 200, 200, 200;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* {
 | 
					 | 
				
			||||||
  box-sizing: border-box;
 | 
					 | 
				
			||||||
  padding: 0;
 | 
					 | 
				
			||||||
  margin: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
html,
 | 
					 | 
				
			||||||
body {
 | 
					 | 
				
			||||||
  max-width: 100vw;
 | 
					 | 
				
			||||||
  overflow-x: hidden;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body {
 | 
					 | 
				
			||||||
  color: rgb(var(--foreground-rgb));
 | 
					 | 
				
			||||||
  background: linear-gradient(
 | 
					 | 
				
			||||||
      to bottom,
 | 
					 | 
				
			||||||
      transparent,
 | 
					 | 
				
			||||||
      rgb(var(--background-end-rgb))
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    rgb(var(--background-start-rgb));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
a {
 | 
					 | 
				
			||||||
  color: inherit;
 | 
					 | 
				
			||||||
  text-decoration: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (prefers-color-scheme: dark) {
 | 
					 | 
				
			||||||
  html {
 | 
					 | 
				
			||||||
    color-scheme: dark;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										56
									
								
								src/styles/main.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								src/styles/main.sass
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,56 @@
 | 
				
			||||||
 | 
					@import '_variables'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					    padding: 0
 | 
				
			||||||
 | 
					    margin: 0
 | 
				
			||||||
 | 
					    text-decoration: none
 | 
				
			||||||
 | 
					    word-wrap: break-word
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					html
 | 
				
			||||||
 | 
					    font-family: "Flachbau"
 | 
				
			||||||
 | 
					    background: $dark
 | 
				
			||||||
 | 
					    color: $light
 | 
				
			||||||
 | 
					    font-size: 20px
 | 
				
			||||||
 | 
					    line-height: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@font-face
 | 
				
			||||||
 | 
					    font-family: "Flachbau"
 | 
				
			||||||
 | 
					    src: local("fonts/Flachbau.ttf") format("truetype")
 | 
				
			||||||
 | 
					    src: url("fonts/Flachbau.ttf") format("truetype")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h1
 | 
				
			||||||
 | 
					    font-size: $h1-size
 | 
				
			||||||
 | 
					p
 | 
				
			||||||
 | 
					    margin: 1rem 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul
 | 
				
			||||||
 | 
					    padding: 0
 | 
				
			||||||
 | 
					    list-style-type: none
 | 
				
			||||||
 | 
					    // display: inline-flex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ul,ol
 | 
				
			||||||
 | 
					    margin: 1rem 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					section
 | 
				
			||||||
 | 
					    display: inline-block
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					del
 | 
				
			||||||
 | 
					    text-decoration: line-through
 | 
				
			||||||
 | 
					    color: #555
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ins
 | 
				
			||||||
 | 
					    text-decoration: none
 | 
				
			||||||
 | 
					    background-color: #d4fcbc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					blockquote
 | 
				
			||||||
 | 
					    padding-left: 15px
 | 
				
			||||||
 | 
					    border-left: 3px solid #d7d7db
 | 
				
			||||||
 | 
					    font-size: 1rem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					figure
 | 
				
			||||||
 | 
					    display: flex
 | 
				
			||||||
 | 
					    flex-flow: column nowrap
 | 
				
			||||||
 | 
					    align-items: center
 | 
				
			||||||
 | 
					    margin: 1rem auto
 | 
				
			||||||
 | 
					    img
 | 
				
			||||||
 | 
					        max-width: 100%
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue