├── .gitignore ├── .vscode └── settings.json ├── README.md ├── app ├── head.tsx ├── layout.tsx └── page.tsx ├── next.config.js ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public └── favicon.ico ├── styles └── globals.css ├── tailwind.config.js └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | .pnpm-debug.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib", 3 | "typescript.enablePromptUseWorkspaceTsdk": true 4 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). 2 | 3 | ## Linktree 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | ``` 12 | 13 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 14 | 15 | You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. 16 | 17 | [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. 18 | 19 | The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. 20 | 21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. 22 | 23 | ## Learn More 24 | 25 | To learn more about Next.js, take a look at the following resources: 26 | 27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 | 30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 31 | 32 | ## Deploy on Vercel 33 | 34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 | 36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 37 | -------------------------------------------------------------------------------- /app/head.tsx: -------------------------------------------------------------------------------- 1 | export default function Head() { 2 | return ( 3 | <> 4 | Linktree 5 | 6 | 7 | 8 | 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | import '../styles/globals.css'; 2 | 3 | export default function RootLayout({ 4 | children, 5 | }: { 6 | children: React.ReactNode; 7 | }) { 8 | return ( 9 | 10 | {children} 11 | 12 | ); 13 | } 14 | -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- 1 | import Image from 'next/image'; 2 | import { get } from '@vercel/edge-config'; 3 | import { redirect } from 'next/navigation'; 4 | 5 | export const dynamic = 'force-dynamic', 6 | runtime = 'edge'; 7 | 8 | function TwitterIcon() { 9 | return ( 10 | 17 | 18 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | ); 30 | } 31 | 32 | function GitHubIcon() { 33 | return ( 34 | 41 | 42 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | ); 54 | } 55 | 56 | function LinkCard({ 57 | href, 58 | title, 59 | image, 60 | }: { 61 | href: string; 62 | title: string; 63 | image?: string; 64 | }) { 65 | return ( 66 | 72 |
73 |
74 | {image && ( 75 | {title} 82 | )} 83 |
84 |

85 | {title} 86 |

87 |
88 |
89 | ); 90 | } 91 | 92 | interface Data { 93 | name: string; 94 | avatar: string; 95 | links: Link[]; 96 | socials: Social[]; 97 | } 98 | 99 | interface Link { 100 | href: string; 101 | title: string; 102 | image?: string; 103 | } 104 | 105 | interface Social { 106 | href: string; 107 | title: string; 108 | } 109 | 110 | export default async function HomePage() { 111 | const data: Data | undefined = await get('linktree'); 112 | 113 | if (!data) { 114 | // not working yet https://github.com/vercel/next.js/issues/44232 115 | redirect('https://linktr.ee/selenagomez'); 116 | } 117 | 118 | return ( 119 |
120 | {data.name} 128 |

{data.name}

129 | {data.links.map((link) => ( 130 | 131 | ))} 132 |
133 | {data.socials.map((social) => ( 134 | 141 | {social.href.includes('twitter') ? ( 142 | 143 | ) : social.href.includes('github') ? ( 144 | 145 | ) : null} 146 | 147 | ))} 148 |
149 |
150 | ); 151 | } 152 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | experimental: { 4 | appDir: true, 5 | }, 6 | images: { 7 | domains: ['pbs.twimg.com'], 8 | }, 9 | }; 10 | 11 | module.exports = nextConfig; 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "next dev", 5 | "build": "next build", 6 | "start": "next start", 7 | "lint": "next lint" 8 | }, 9 | "dependencies": { 10 | "@next/font": "13.1.1", 11 | "@types/node": "18.11.18", 12 | "@types/react": "18.0.26", 13 | "@types/react-dom": "18.0.10", 14 | "@vercel/edge-config": "^0.1.0", 15 | "autoprefixer": "^10.4.13", 16 | "next": "13.1.1", 17 | "postcss": "^8.4.21", 18 | "react": "18.2.0", 19 | "react-dom": "18.2.0", 20 | "tailwindcss": "^3.2.4", 21 | "typescript": "4.9.4" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@next/font': 13.1.1 5 | '@types/node': 18.11.18 6 | '@types/react': 18.0.26 7 | '@types/react-dom': 18.0.10 8 | '@vercel/edge-config': ^0.1.0 9 | autoprefixer: ^10.4.13 10 | next: 13.1.1 11 | postcss: ^8.4.21 12 | react: 18.2.0 13 | react-dom: 18.2.0 14 | tailwindcss: ^3.2.4 15 | typescript: 4.9.4 16 | 17 | dependencies: 18 | '@next/font': 13.1.1 19 | '@types/node': 18.11.18 20 | '@types/react': 18.0.26 21 | '@types/react-dom': 18.0.10 22 | '@vercel/edge-config': 0.1.0 23 | autoprefixer: 10.4.13_postcss@8.4.21 24 | next: 13.1.1_biqbaboplfbrettd7655fr4n2y 25 | postcss: 8.4.21 26 | react: 18.2.0 27 | react-dom: 18.2.0_react@18.2.0 28 | tailwindcss: 3.2.4_postcss@8.4.21 29 | typescript: 4.9.4 30 | 31 | packages: 32 | 33 | /@next/env/13.1.1: 34 | resolution: {integrity: sha512-vFMyXtPjSAiOXOywMojxfKIqE3VWN5RCAx+tT3AS3pcKjMLFTCJFUWsKv8hC+87Z1F4W3r68qTwDFZIFmd5Xkw==} 35 | dev: false 36 | 37 | /@next/font/13.1.1: 38 | resolution: {integrity: sha512-amygRorS05hYK1/XQRZo5qBl7l2fpHnezeKU/cNveWU5QJg+sg8gMGkUXHtvesNKpiKIJshBRH1TzvO+2sKpvQ==} 39 | dev: false 40 | 41 | /@next/swc-android-arm-eabi/13.1.1: 42 | resolution: {integrity: sha512-qnFCx1kT3JTWhWve4VkeWuZiyjG0b5T6J2iWuin74lORCupdrNukxkq9Pm+Z7PsatxuwVJMhjUoYz7H4cWzx2A==} 43 | engines: {node: '>= 10'} 44 | cpu: [arm] 45 | os: [android] 46 | requiresBuild: true 47 | dev: false 48 | optional: true 49 | 50 | /@next/swc-android-arm64/13.1.1: 51 | resolution: {integrity: sha512-eCiZhTzjySubNqUnNkQCjU3Fh+ep3C6b5DCM5FKzsTH/3Gr/4Y7EiaPZKILbvnXmhWtKPIdcY6Zjx51t4VeTfA==} 52 | engines: {node: '>= 10'} 53 | cpu: [arm64] 54 | os: [android] 55 | requiresBuild: true 56 | dev: false 57 | optional: true 58 | 59 | /@next/swc-darwin-arm64/13.1.1: 60 | resolution: {integrity: sha512-9zRJSSIwER5tu9ADDkPw5rIZ+Np44HTXpYMr0rkM656IvssowPxmhK0rTreC1gpUCYwFsRbxarUJnJsTWiutPg==} 61 | engines: {node: '>= 10'} 62 | cpu: [arm64] 63 | os: [darwin] 64 | requiresBuild: true 65 | dev: false 66 | optional: true 67 | 68 | /@next/swc-darwin-x64/13.1.1: 69 | resolution: {integrity: sha512-qWr9qEn5nrnlhB0rtjSdR00RRZEtxg4EGvicIipqZWEyayPxhUu6NwKiG8wZiYZCLfJ5KWr66PGSNeDMGlNaiA==} 70 | engines: {node: '>= 10'} 71 | cpu: [x64] 72 | os: [darwin] 73 | requiresBuild: true 74 | dev: false 75 | optional: true 76 | 77 | /@next/swc-freebsd-x64/13.1.1: 78 | resolution: {integrity: sha512-UwP4w/NcQ7V/VJEj3tGVszgb4pyUCt3lzJfUhjDMUmQbzG9LDvgiZgAGMYH6L21MoyAATJQPDGiAMWAPKsmumA==} 79 | engines: {node: '>= 10'} 80 | cpu: [x64] 81 | os: [freebsd] 82 | requiresBuild: true 83 | dev: false 84 | optional: true 85 | 86 | /@next/swc-linux-arm-gnueabihf/13.1.1: 87 | resolution: {integrity: sha512-CnsxmKHco9sosBs1XcvCXP845Db+Wx1G0qouV5+Gr+HT/ZlDYEWKoHVDgnJXLVEQzq4FmHddBNGbXvgqM1Gfkg==} 88 | engines: {node: '>= 10'} 89 | cpu: [arm] 90 | os: [linux] 91 | requiresBuild: true 92 | dev: false 93 | optional: true 94 | 95 | /@next/swc-linux-arm64-gnu/13.1.1: 96 | resolution: {integrity: sha512-JfDq1eri5Dif+VDpTkONRd083780nsMCOKoFG87wA0sa4xL8LGcXIBAkUGIC1uVy9SMsr2scA9CySLD/i+Oqiw==} 97 | engines: {node: '>= 10'} 98 | cpu: [arm64] 99 | os: [linux] 100 | requiresBuild: true 101 | dev: false 102 | optional: true 103 | 104 | /@next/swc-linux-arm64-musl/13.1.1: 105 | resolution: {integrity: sha512-GA67ZbDq2AW0CY07zzGt07M5b5Yaq5qUpFIoW3UFfjOPgb0Sqf3DAW7GtFMK1sF4ROHsRDMGQ9rnT0VM2dVfKA==} 106 | engines: {node: '>= 10'} 107 | cpu: [arm64] 108 | os: [linux] 109 | requiresBuild: true 110 | dev: false 111 | optional: true 112 | 113 | /@next/swc-linux-x64-gnu/13.1.1: 114 | resolution: {integrity: sha512-nnjuBrbzvqaOJaV+XgT8/+lmXrSCOt1YYZn/irbDb2fR2QprL6Q7WJNgwsZNxiLSfLdv+2RJGGegBx9sLBEzGA==} 115 | engines: {node: '>= 10'} 116 | cpu: [x64] 117 | os: [linux] 118 | requiresBuild: true 119 | dev: false 120 | optional: true 121 | 122 | /@next/swc-linux-x64-musl/13.1.1: 123 | resolution: {integrity: sha512-CM9xnAQNIZ8zf/igbIT/i3xWbQZYaF397H+JroF5VMOCUleElaMdQLL5riJml8wUfPoN3dtfn2s4peSr3azz/g==} 124 | engines: {node: '>= 10'} 125 | cpu: [x64] 126 | os: [linux] 127 | requiresBuild: true 128 | dev: false 129 | optional: true 130 | 131 | /@next/swc-win32-arm64-msvc/13.1.1: 132 | resolution: {integrity: sha512-pzUHOGrbgfGgPlOMx9xk3QdPJoRPU+om84hqVoe6u+E0RdwOG0Ho/2UxCgDqmvpUrMab1Deltlt6RqcXFpnigQ==} 133 | engines: {node: '>= 10'} 134 | cpu: [arm64] 135 | os: [win32] 136 | requiresBuild: true 137 | dev: false 138 | optional: true 139 | 140 | /@next/swc-win32-ia32-msvc/13.1.1: 141 | resolution: {integrity: sha512-WeX8kVS46aobM9a7Xr/kEPcrTyiwJqQv/tbw6nhJ4fH9xNZ+cEcyPoQkwPo570dCOLz3Zo9S2q0E6lJ/EAUOBg==} 142 | engines: {node: '>= 10'} 143 | cpu: [ia32] 144 | os: [win32] 145 | requiresBuild: true 146 | dev: false 147 | optional: true 148 | 149 | /@next/swc-win32-x64-msvc/13.1.1: 150 | resolution: {integrity: sha512-mVF0/3/5QAc5EGVnb8ll31nNvf3BWpPY4pBb84tk+BfQglWLqc5AC9q1Ht/YMWiEgs8ALNKEQ3GQnbY0bJF2Gg==} 151 | engines: {node: '>= 10'} 152 | cpu: [x64] 153 | os: [win32] 154 | requiresBuild: true 155 | dev: false 156 | optional: true 157 | 158 | /@nodelib/fs.scandir/2.1.5: 159 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 160 | engines: {node: '>= 8'} 161 | dependencies: 162 | '@nodelib/fs.stat': 2.0.5 163 | run-parallel: 1.2.0 164 | dev: false 165 | 166 | /@nodelib/fs.stat/2.0.5: 167 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 168 | engines: {node: '>= 8'} 169 | dev: false 170 | 171 | /@nodelib/fs.walk/1.2.8: 172 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 173 | engines: {node: '>= 8'} 174 | dependencies: 175 | '@nodelib/fs.scandir': 2.1.5 176 | fastq: 1.15.0 177 | dev: false 178 | 179 | /@swc/helpers/0.4.14: 180 | resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} 181 | dependencies: 182 | tslib: 2.4.1 183 | dev: false 184 | 185 | /@types/node/18.11.18: 186 | resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} 187 | dev: false 188 | 189 | /@types/prop-types/15.7.5: 190 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 191 | dev: false 192 | 193 | /@types/react-dom/18.0.10: 194 | resolution: {integrity: sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==} 195 | dependencies: 196 | '@types/react': 18.0.26 197 | dev: false 198 | 199 | /@types/react/18.0.26: 200 | resolution: {integrity: sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==} 201 | dependencies: 202 | '@types/prop-types': 15.7.5 203 | '@types/scheduler': 0.16.2 204 | csstype: 3.1.1 205 | dev: false 206 | 207 | /@types/scheduler/0.16.2: 208 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} 209 | dev: false 210 | 211 | /@vercel/edge-config/0.1.0: 212 | resolution: {integrity: sha512-1kN/09w5gjjWquXZGdVAavoB+VwF0RukdcIIuuTFtPPPQsl7IXa9KM3d04YLxKbp+VDQLVOaNmvLfkmVbMEW8A==} 213 | engines: {node: '>=14.6'} 214 | dev: false 215 | 216 | /acorn-node/1.8.2: 217 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} 218 | dependencies: 219 | acorn: 7.4.1 220 | acorn-walk: 7.2.0 221 | xtend: 4.0.2 222 | dev: false 223 | 224 | /acorn-walk/7.2.0: 225 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 226 | engines: {node: '>=0.4.0'} 227 | dev: false 228 | 229 | /acorn/7.4.1: 230 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 231 | engines: {node: '>=0.4.0'} 232 | hasBin: true 233 | dev: false 234 | 235 | /anymatch/3.1.3: 236 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 237 | engines: {node: '>= 8'} 238 | dependencies: 239 | normalize-path: 3.0.0 240 | picomatch: 2.3.1 241 | dev: false 242 | 243 | /arg/5.0.2: 244 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 245 | dev: false 246 | 247 | /autoprefixer/10.4.13_postcss@8.4.21: 248 | resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} 249 | engines: {node: ^10 || ^12 || >=14} 250 | hasBin: true 251 | peerDependencies: 252 | postcss: ^8.1.0 253 | dependencies: 254 | browserslist: 4.21.4 255 | caniuse-lite: 1.0.30001442 256 | fraction.js: 4.2.0 257 | normalize-range: 0.1.2 258 | picocolors: 1.0.0 259 | postcss: 8.4.21 260 | postcss-value-parser: 4.2.0 261 | dev: false 262 | 263 | /binary-extensions/2.2.0: 264 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 265 | engines: {node: '>=8'} 266 | dev: false 267 | 268 | /braces/3.0.2: 269 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 270 | engines: {node: '>=8'} 271 | dependencies: 272 | fill-range: 7.0.1 273 | dev: false 274 | 275 | /browserslist/4.21.4: 276 | resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} 277 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 278 | hasBin: true 279 | dependencies: 280 | caniuse-lite: 1.0.30001442 281 | electron-to-chromium: 1.4.284 282 | node-releases: 2.0.8 283 | update-browserslist-db: 1.0.10_browserslist@4.21.4 284 | dev: false 285 | 286 | /camelcase-css/2.0.1: 287 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 288 | engines: {node: '>= 6'} 289 | dev: false 290 | 291 | /caniuse-lite/1.0.30001442: 292 | resolution: {integrity: sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==} 293 | dev: false 294 | 295 | /chokidar/3.5.3: 296 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 297 | engines: {node: '>= 8.10.0'} 298 | dependencies: 299 | anymatch: 3.1.3 300 | braces: 3.0.2 301 | glob-parent: 5.1.2 302 | is-binary-path: 2.1.0 303 | is-glob: 4.0.3 304 | normalize-path: 3.0.0 305 | readdirp: 3.6.0 306 | optionalDependencies: 307 | fsevents: 2.3.2 308 | dev: false 309 | 310 | /client-only/0.0.1: 311 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 312 | dev: false 313 | 314 | /color-name/1.1.4: 315 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 316 | dev: false 317 | 318 | /cssesc/3.0.0: 319 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 320 | engines: {node: '>=4'} 321 | hasBin: true 322 | dev: false 323 | 324 | /csstype/3.1.1: 325 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 326 | dev: false 327 | 328 | /defined/1.0.1: 329 | resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} 330 | dev: false 331 | 332 | /detective/5.2.1: 333 | resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} 334 | engines: {node: '>=0.8.0'} 335 | hasBin: true 336 | dependencies: 337 | acorn-node: 1.8.2 338 | defined: 1.0.1 339 | minimist: 1.2.7 340 | dev: false 341 | 342 | /didyoumean/1.2.2: 343 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 344 | dev: false 345 | 346 | /dlv/1.1.3: 347 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 348 | dev: false 349 | 350 | /electron-to-chromium/1.4.284: 351 | resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} 352 | dev: false 353 | 354 | /escalade/3.1.1: 355 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 356 | engines: {node: '>=6'} 357 | dev: false 358 | 359 | /fast-glob/3.2.12: 360 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 361 | engines: {node: '>=8.6.0'} 362 | dependencies: 363 | '@nodelib/fs.stat': 2.0.5 364 | '@nodelib/fs.walk': 1.2.8 365 | glob-parent: 5.1.2 366 | merge2: 1.4.1 367 | micromatch: 4.0.5 368 | dev: false 369 | 370 | /fastq/1.15.0: 371 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 372 | dependencies: 373 | reusify: 1.0.4 374 | dev: false 375 | 376 | /fill-range/7.0.1: 377 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 378 | engines: {node: '>=8'} 379 | dependencies: 380 | to-regex-range: 5.0.1 381 | dev: false 382 | 383 | /fraction.js/4.2.0: 384 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 385 | dev: false 386 | 387 | /fsevents/2.3.2: 388 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 389 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 390 | os: [darwin] 391 | requiresBuild: true 392 | dev: false 393 | optional: true 394 | 395 | /function-bind/1.1.1: 396 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 397 | dev: false 398 | 399 | /glob-parent/5.1.2: 400 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 401 | engines: {node: '>= 6'} 402 | dependencies: 403 | is-glob: 4.0.3 404 | dev: false 405 | 406 | /glob-parent/6.0.2: 407 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 408 | engines: {node: '>=10.13.0'} 409 | dependencies: 410 | is-glob: 4.0.3 411 | dev: false 412 | 413 | /has/1.0.3: 414 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 415 | engines: {node: '>= 0.4.0'} 416 | dependencies: 417 | function-bind: 1.1.1 418 | dev: false 419 | 420 | /is-binary-path/2.1.0: 421 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 422 | engines: {node: '>=8'} 423 | dependencies: 424 | binary-extensions: 2.2.0 425 | dev: false 426 | 427 | /is-core-module/2.11.0: 428 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 429 | dependencies: 430 | has: 1.0.3 431 | dev: false 432 | 433 | /is-extglob/2.1.1: 434 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 435 | engines: {node: '>=0.10.0'} 436 | dev: false 437 | 438 | /is-glob/4.0.3: 439 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 440 | engines: {node: '>=0.10.0'} 441 | dependencies: 442 | is-extglob: 2.1.1 443 | dev: false 444 | 445 | /is-number/7.0.0: 446 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 447 | engines: {node: '>=0.12.0'} 448 | dev: false 449 | 450 | /js-tokens/4.0.0: 451 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 452 | dev: false 453 | 454 | /lilconfig/2.0.6: 455 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} 456 | engines: {node: '>=10'} 457 | dev: false 458 | 459 | /loose-envify/1.4.0: 460 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 461 | hasBin: true 462 | dependencies: 463 | js-tokens: 4.0.0 464 | dev: false 465 | 466 | /merge2/1.4.1: 467 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 468 | engines: {node: '>= 8'} 469 | dev: false 470 | 471 | /micromatch/4.0.5: 472 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 473 | engines: {node: '>=8.6'} 474 | dependencies: 475 | braces: 3.0.2 476 | picomatch: 2.3.1 477 | dev: false 478 | 479 | /minimist/1.2.7: 480 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} 481 | dev: false 482 | 483 | /nanoid/3.3.4: 484 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 485 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 486 | hasBin: true 487 | dev: false 488 | 489 | /next/13.1.1_biqbaboplfbrettd7655fr4n2y: 490 | resolution: {integrity: sha512-R5eBAaIa3X7LJeYvv1bMdGnAVF4fVToEjim7MkflceFPuANY3YyvFxXee/A+acrSYwYPvOvf7f6v/BM/48ea5w==} 491 | engines: {node: '>=14.6.0'} 492 | hasBin: true 493 | peerDependencies: 494 | fibers: '>= 3.1.0' 495 | node-sass: ^6.0.0 || ^7.0.0 496 | react: ^18.2.0 497 | react-dom: ^18.2.0 498 | sass: ^1.3.0 499 | peerDependenciesMeta: 500 | fibers: 501 | optional: true 502 | node-sass: 503 | optional: true 504 | sass: 505 | optional: true 506 | dependencies: 507 | '@next/env': 13.1.1 508 | '@swc/helpers': 0.4.14 509 | caniuse-lite: 1.0.30001442 510 | postcss: 8.4.14 511 | react: 18.2.0 512 | react-dom: 18.2.0_react@18.2.0 513 | styled-jsx: 5.1.1_react@18.2.0 514 | optionalDependencies: 515 | '@next/swc-android-arm-eabi': 13.1.1 516 | '@next/swc-android-arm64': 13.1.1 517 | '@next/swc-darwin-arm64': 13.1.1 518 | '@next/swc-darwin-x64': 13.1.1 519 | '@next/swc-freebsd-x64': 13.1.1 520 | '@next/swc-linux-arm-gnueabihf': 13.1.1 521 | '@next/swc-linux-arm64-gnu': 13.1.1 522 | '@next/swc-linux-arm64-musl': 13.1.1 523 | '@next/swc-linux-x64-gnu': 13.1.1 524 | '@next/swc-linux-x64-musl': 13.1.1 525 | '@next/swc-win32-arm64-msvc': 13.1.1 526 | '@next/swc-win32-ia32-msvc': 13.1.1 527 | '@next/swc-win32-x64-msvc': 13.1.1 528 | transitivePeerDependencies: 529 | - '@babel/core' 530 | - babel-plugin-macros 531 | dev: false 532 | 533 | /node-releases/2.0.8: 534 | resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} 535 | dev: false 536 | 537 | /normalize-path/3.0.0: 538 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 539 | engines: {node: '>=0.10.0'} 540 | dev: false 541 | 542 | /normalize-range/0.1.2: 543 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 544 | engines: {node: '>=0.10.0'} 545 | dev: false 546 | 547 | /object-hash/3.0.0: 548 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 549 | engines: {node: '>= 6'} 550 | dev: false 551 | 552 | /path-parse/1.0.7: 553 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 554 | dev: false 555 | 556 | /picocolors/1.0.0: 557 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 558 | dev: false 559 | 560 | /picomatch/2.3.1: 561 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 562 | engines: {node: '>=8.6'} 563 | dev: false 564 | 565 | /pify/2.3.0: 566 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 567 | engines: {node: '>=0.10.0'} 568 | dev: false 569 | 570 | /postcss-import/14.1.0_postcss@8.4.21: 571 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} 572 | engines: {node: '>=10.0.0'} 573 | peerDependencies: 574 | postcss: ^8.0.0 575 | dependencies: 576 | postcss: 8.4.21 577 | postcss-value-parser: 4.2.0 578 | read-cache: 1.0.0 579 | resolve: 1.22.1 580 | dev: false 581 | 582 | /postcss-js/4.0.0_postcss@8.4.21: 583 | resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} 584 | engines: {node: ^12 || ^14 || >= 16} 585 | peerDependencies: 586 | postcss: ^8.3.3 587 | dependencies: 588 | camelcase-css: 2.0.1 589 | postcss: 8.4.21 590 | dev: false 591 | 592 | /postcss-load-config/3.1.4_postcss@8.4.21: 593 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 594 | engines: {node: '>= 10'} 595 | peerDependencies: 596 | postcss: '>=8.0.9' 597 | ts-node: '>=9.0.0' 598 | peerDependenciesMeta: 599 | postcss: 600 | optional: true 601 | ts-node: 602 | optional: true 603 | dependencies: 604 | lilconfig: 2.0.6 605 | postcss: 8.4.21 606 | yaml: 1.10.2 607 | dev: false 608 | 609 | /postcss-nested/6.0.0_postcss@8.4.21: 610 | resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} 611 | engines: {node: '>=12.0'} 612 | peerDependencies: 613 | postcss: ^8.2.14 614 | dependencies: 615 | postcss: 8.4.21 616 | postcss-selector-parser: 6.0.11 617 | dev: false 618 | 619 | /postcss-selector-parser/6.0.11: 620 | resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} 621 | engines: {node: '>=4'} 622 | dependencies: 623 | cssesc: 3.0.0 624 | util-deprecate: 1.0.2 625 | dev: false 626 | 627 | /postcss-value-parser/4.2.0: 628 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 629 | dev: false 630 | 631 | /postcss/8.4.14: 632 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 633 | engines: {node: ^10 || ^12 || >=14} 634 | dependencies: 635 | nanoid: 3.3.4 636 | picocolors: 1.0.0 637 | source-map-js: 1.0.2 638 | dev: false 639 | 640 | /postcss/8.4.21: 641 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 642 | engines: {node: ^10 || ^12 || >=14} 643 | dependencies: 644 | nanoid: 3.3.4 645 | picocolors: 1.0.0 646 | source-map-js: 1.0.2 647 | dev: false 648 | 649 | /queue-microtask/1.2.3: 650 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 651 | dev: false 652 | 653 | /quick-lru/5.1.1: 654 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 655 | engines: {node: '>=10'} 656 | dev: false 657 | 658 | /react-dom/18.2.0_react@18.2.0: 659 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 660 | peerDependencies: 661 | react: ^18.2.0 662 | dependencies: 663 | loose-envify: 1.4.0 664 | react: 18.2.0 665 | scheduler: 0.23.0 666 | dev: false 667 | 668 | /react/18.2.0: 669 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 670 | engines: {node: '>=0.10.0'} 671 | dependencies: 672 | loose-envify: 1.4.0 673 | dev: false 674 | 675 | /read-cache/1.0.0: 676 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 677 | dependencies: 678 | pify: 2.3.0 679 | dev: false 680 | 681 | /readdirp/3.6.0: 682 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 683 | engines: {node: '>=8.10.0'} 684 | dependencies: 685 | picomatch: 2.3.1 686 | dev: false 687 | 688 | /resolve/1.22.1: 689 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 690 | hasBin: true 691 | dependencies: 692 | is-core-module: 2.11.0 693 | path-parse: 1.0.7 694 | supports-preserve-symlinks-flag: 1.0.0 695 | dev: false 696 | 697 | /reusify/1.0.4: 698 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 699 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 700 | dev: false 701 | 702 | /run-parallel/1.2.0: 703 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 704 | dependencies: 705 | queue-microtask: 1.2.3 706 | dev: false 707 | 708 | /scheduler/0.23.0: 709 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 710 | dependencies: 711 | loose-envify: 1.4.0 712 | dev: false 713 | 714 | /source-map-js/1.0.2: 715 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 716 | engines: {node: '>=0.10.0'} 717 | dev: false 718 | 719 | /styled-jsx/5.1.1_react@18.2.0: 720 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 721 | engines: {node: '>= 12.0.0'} 722 | peerDependencies: 723 | '@babel/core': '*' 724 | babel-plugin-macros: '*' 725 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 726 | peerDependenciesMeta: 727 | '@babel/core': 728 | optional: true 729 | babel-plugin-macros: 730 | optional: true 731 | dependencies: 732 | client-only: 0.0.1 733 | react: 18.2.0 734 | dev: false 735 | 736 | /supports-preserve-symlinks-flag/1.0.0: 737 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 738 | engines: {node: '>= 0.4'} 739 | dev: false 740 | 741 | /tailwindcss/3.2.4_postcss@8.4.21: 742 | resolution: {integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==} 743 | engines: {node: '>=12.13.0'} 744 | hasBin: true 745 | peerDependencies: 746 | postcss: ^8.0.9 747 | dependencies: 748 | arg: 5.0.2 749 | chokidar: 3.5.3 750 | color-name: 1.1.4 751 | detective: 5.2.1 752 | didyoumean: 1.2.2 753 | dlv: 1.1.3 754 | fast-glob: 3.2.12 755 | glob-parent: 6.0.2 756 | is-glob: 4.0.3 757 | lilconfig: 2.0.6 758 | micromatch: 4.0.5 759 | normalize-path: 3.0.0 760 | object-hash: 3.0.0 761 | picocolors: 1.0.0 762 | postcss: 8.4.21 763 | postcss-import: 14.1.0_postcss@8.4.21 764 | postcss-js: 4.0.0_postcss@8.4.21 765 | postcss-load-config: 3.1.4_postcss@8.4.21 766 | postcss-nested: 6.0.0_postcss@8.4.21 767 | postcss-selector-parser: 6.0.11 768 | postcss-value-parser: 4.2.0 769 | quick-lru: 5.1.1 770 | resolve: 1.22.1 771 | transitivePeerDependencies: 772 | - ts-node 773 | dev: false 774 | 775 | /to-regex-range/5.0.1: 776 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 777 | engines: {node: '>=8.0'} 778 | dependencies: 779 | is-number: 7.0.0 780 | dev: false 781 | 782 | /tslib/2.4.1: 783 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} 784 | dev: false 785 | 786 | /typescript/4.9.4: 787 | resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} 788 | engines: {node: '>=4.2.0'} 789 | hasBin: true 790 | dev: false 791 | 792 | /update-browserslist-db/1.0.10_browserslist@4.21.4: 793 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 794 | hasBin: true 795 | peerDependencies: 796 | browserslist: '>= 4.21.0' 797 | dependencies: 798 | browserslist: 4.21.4 799 | escalade: 3.1.1 800 | picocolors: 1.0.0 801 | dev: false 802 | 803 | /util-deprecate/1.0.2: 804 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 805 | dev: false 806 | 807 | /xtend/4.0.2: 808 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 809 | engines: {node: '>=0.4'} 810 | dev: false 811 | 812 | /yaml/1.10.2: 813 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 814 | engines: {node: '>= 6'} 815 | dev: false 816 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leerob/linktree/8e30f119c54b0bf640ae2c7231a2e118ce8c0339/public/favicon.ico -------------------------------------------------------------------------------- /styles/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | height: 100vh; 7 | background-image: linear-gradient( 8 | 25deg, 9 | hsl(240deg 15% 13%) 0%, 10 | hsl(233deg 22% 15%) 11%, 11 | hsl(226deg 30% 17%) 23%, 12 | hsl(221deg 40% 18%) 36%, 13 | hsl(215deg 52% 19%) 48%, 14 | hsl(221deg 62% 26%) 61%, 15 | hsl(238deg 46% 36%) 74%, 16 | hsl(264deg 54% 40%) 87%, 17 | hsl(287deg 84% 36%) 100% 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | './app/**/*.{js,ts,jsx,tsx}', 5 | './pages/**/*.{js,ts,jsx,tsx}', 6 | './components/**/*.{js,ts,jsx,tsx}', 7 | ], 8 | theme: { 9 | extend: {}, 10 | }, 11 | plugins: [], 12 | }; 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "strict": true, 12 | "forceConsistentCasingInFileNames": true, 13 | "noEmit": true, 14 | "esModuleInterop": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "jsx": "preserve", 20 | "incremental": true, 21 | "plugins": [ 22 | { 23 | "name": "next" 24 | } 25 | ] 26 | }, 27 | "include": [ 28 | "next-env.d.ts", 29 | "**/*.ts", 30 | "**/*.tsx", 31 | ".next/types/**/*.ts" 32 | ], 33 | "exclude": [ 34 | "node_modules" 35 | ] 36 | } 37 | --------------------------------------------------------------------------------