├── .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 |
29 | );
30 | }
31 |
32 | function GitHubIcon() {
33 | return (
34 |
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 |
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 |
128 |
{data.name}
129 | {data.links.map((link) => (
130 |
131 | ))}
132 |
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 |
--------------------------------------------------------------------------------