├── .gitignore
├── README.md
├── components
├── Footer.js
└── Header.js
├── jsconfig.json
├── next.config.js
├── package-lock.json
├── package.json
├── pages
├── _app.js
├── _document.js
├── api
│ └── hello.js
├── edit
│ └── [title].js
├── index.js
└── todos.js
├── postcss.config.js
├── public
├── favicon.ico
├── next.svg
└── vercel.svg
├── styles
└── globals.css
└── tailwind.config.js
/.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 |
27 | # local env files
28 | .env*.local
29 |
30 | # vercel
31 | .vercel
32 |
33 | # typescript
34 | *.tsbuildinfo
35 | next-env.d.ts
36 |
--------------------------------------------------------------------------------
/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 | ## Getting Started
4 |
5 | First, run the development server:
6 |
7 | ```bash
8 | npm run dev
9 | # or
10 | yarn dev
11 | # or
12 | pnpm dev
13 | ```
14 |
15 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
16 |
17 | You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
18 |
19 | [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.js`.
20 |
21 | 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.
22 |
23 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
24 |
25 | ## Learn More
26 |
27 | To learn more about Next.js, take a look at the following resources:
28 |
29 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
30 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
31 |
32 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
33 |
34 | ## Deploy on Vercel
35 |
36 | 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.
37 |
38 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
39 |
--------------------------------------------------------------------------------
/components/Footer.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | const Footer = () => {
4 | return (
118 | )
119 | }
120 |
121 | export default Footer
--------------------------------------------------------------------------------
/components/Header.js:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 | import React from 'react'
3 |
4 | const Header = () => {
5 | return (
6 |
23 | )
24 | }
25 |
26 | export default Header
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "paths": {
4 | "@/*": ["./*"]
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | reactStrictMode: true,
4 | }
5 |
6 | module.exports = nextConfig
7 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "todolist",
3 | "version": "0.1.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "todolist",
9 | "version": "0.1.0",
10 | "dependencies": {
11 | "autoprefixer": "10.4.14",
12 | "next": "13.3.4",
13 | "postcss": "8.4.23",
14 | "react": "18.2.0",
15 | "react-dom": "18.2.0",
16 | "tailwindcss": "3.3.2"
17 | }
18 | },
19 | "node_modules/@alloc/quick-lru": {
20 | "version": "5.2.0",
21 | "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
22 | "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
23 | "engines": {
24 | "node": ">=10"
25 | },
26 | "funding": {
27 | "url": "https://github.com/sponsors/sindresorhus"
28 | }
29 | },
30 | "node_modules/@jridgewell/gen-mapping": {
31 | "version": "0.3.3",
32 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
33 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
34 | "dependencies": {
35 | "@jridgewell/set-array": "^1.0.1",
36 | "@jridgewell/sourcemap-codec": "^1.4.10",
37 | "@jridgewell/trace-mapping": "^0.3.9"
38 | },
39 | "engines": {
40 | "node": ">=6.0.0"
41 | }
42 | },
43 | "node_modules/@jridgewell/resolve-uri": {
44 | "version": "3.1.0",
45 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
46 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
47 | "engines": {
48 | "node": ">=6.0.0"
49 | }
50 | },
51 | "node_modules/@jridgewell/set-array": {
52 | "version": "1.1.2",
53 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
54 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
55 | "engines": {
56 | "node": ">=6.0.0"
57 | }
58 | },
59 | "node_modules/@jridgewell/sourcemap-codec": {
60 | "version": "1.4.15",
61 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
62 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
63 | },
64 | "node_modules/@jridgewell/trace-mapping": {
65 | "version": "0.3.18",
66 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
67 | "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
68 | "dependencies": {
69 | "@jridgewell/resolve-uri": "3.1.0",
70 | "@jridgewell/sourcemap-codec": "1.4.14"
71 | }
72 | },
73 | "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
74 | "version": "1.4.14",
75 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
76 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
77 | },
78 | "node_modules/@next/env": {
79 | "version": "13.3.4",
80 | "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.4.tgz",
81 | "integrity": "sha512-oTK/wRV2qga86m/4VdrR1+/56UA6U1Qv3sIgowB+bZjahniZLEG5BmmQjfoGv7ZuLXBZ8Eec6hkL9BqJcrEL2g=="
82 | },
83 | "node_modules/@next/swc-darwin-arm64": {
84 | "version": "13.3.4",
85 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.4.tgz",
86 | "integrity": "sha512-vux7RWfzxy1lD21CMwZsy9Ej+0+LZdIIj1gEhVmzOQqQZ5N56h8JamrjIVCfDL+Lpj8KwOmFZbPHE8qaYnL2pg==",
87 | "cpu": [
88 | "arm64"
89 | ],
90 | "optional": true,
91 | "os": [
92 | "darwin"
93 | ],
94 | "engines": {
95 | "node": ">= 10"
96 | }
97 | },
98 | "node_modules/@next/swc-darwin-x64": {
99 | "version": "13.3.4",
100 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.4.tgz",
101 | "integrity": "sha512-1tb+6JT98+t7UIhVQpKL7zegKnCs9RKU6cKNyj+DYKuC/NVl49/JaIlmwCwK8Ibl+RXxJrK7uSXSIO71feXsgw==",
102 | "cpu": [
103 | "x64"
104 | ],
105 | "optional": true,
106 | "os": [
107 | "darwin"
108 | ],
109 | "engines": {
110 | "node": ">= 10"
111 | }
112 | },
113 | "node_modules/@next/swc-linux-arm64-gnu": {
114 | "version": "13.3.4",
115 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.4.tgz",
116 | "integrity": "sha512-UqcKkYTKslf5YAJNtZ5XV1D5MQJIkVtDHL8OehDZERHzqOe7jvy41HFto33IDPPU8gJiP5eJb3V9U26uifqHjw==",
117 | "cpu": [
118 | "arm64"
119 | ],
120 | "optional": true,
121 | "os": [
122 | "linux"
123 | ],
124 | "engines": {
125 | "node": ">= 10"
126 | }
127 | },
128 | "node_modules/@next/swc-linux-arm64-musl": {
129 | "version": "13.3.4",
130 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.4.tgz",
131 | "integrity": "sha512-HE/FmE8VvstAfehyo/XsrhGgz97cEr7uf9IfkgJ/unqSXE0CDshDn/4as6rRid74eDR8/exi7c2tdo49Tuqxrw==",
132 | "cpu": [
133 | "arm64"
134 | ],
135 | "optional": true,
136 | "os": [
137 | "linux"
138 | ],
139 | "engines": {
140 | "node": ">= 10"
141 | }
142 | },
143 | "node_modules/@next/swc-linux-x64-gnu": {
144 | "version": "13.3.4",
145 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.4.tgz",
146 | "integrity": "sha512-xU+ugaupGA4SL5aK1ZYEqVHrW3TPOhxVcpaJLfpANm2443J4GfxCmOacu9XcSgy5c51Mq7C9uZ1LODKHfZosRQ==",
147 | "cpu": [
148 | "x64"
149 | ],
150 | "optional": true,
151 | "os": [
152 | "linux"
153 | ],
154 | "engines": {
155 | "node": ">= 10"
156 | }
157 | },
158 | "node_modules/@next/swc-linux-x64-musl": {
159 | "version": "13.3.4",
160 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.4.tgz",
161 | "integrity": "sha512-cZvmf5KcYeTfIK6bCypfmxGUjme53Ep7hx94JJtGrYgCA1VwEuYdh+KouubJaQCH3aqnNE7+zGnVEupEKfoaaA==",
162 | "cpu": [
163 | "x64"
164 | ],
165 | "optional": true,
166 | "os": [
167 | "linux"
168 | ],
169 | "engines": {
170 | "node": ">= 10"
171 | }
172 | },
173 | "node_modules/@next/swc-win32-arm64-msvc": {
174 | "version": "13.3.4",
175 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.4.tgz",
176 | "integrity": "sha512-7dL+CAUAjmgnVbjXPIpdj7/AQKFqEUL3bKtaOIE1JzJ5UMHHAXCPwzQtibrsvQpf9MwcAmiv8aburD3xH1xf8w==",
177 | "cpu": [
178 | "arm64"
179 | ],
180 | "optional": true,
181 | "os": [
182 | "win32"
183 | ],
184 | "engines": {
185 | "node": ">= 10"
186 | }
187 | },
188 | "node_modules/@next/swc-win32-ia32-msvc": {
189 | "version": "13.3.4",
190 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.4.tgz",
191 | "integrity": "sha512-qplTyzEl1vPkS+/DRK3pKSL0HeXrPHkYsV7U6gboHYpfqoHY+bcLUj3gwVUa9PEHRIoq4vXvPzx/WtzE6q52ng==",
192 | "cpu": [
193 | "ia32"
194 | ],
195 | "optional": true,
196 | "os": [
197 | "win32"
198 | ],
199 | "engines": {
200 | "node": ">= 10"
201 | }
202 | },
203 | "node_modules/@next/swc-win32-x64-msvc": {
204 | "version": "13.3.4",
205 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.4.tgz",
206 | "integrity": "sha512-usdvZT7JHrTuXC+4OKN5mCzUkviFkCyJJTkEz8jhBpucg+T7s83e7owm3oNFzmj5iKfvxU2St6VkcnSgpFvEYA==",
207 | "cpu": [
208 | "x64"
209 | ],
210 | "optional": true,
211 | "os": [
212 | "win32"
213 | ],
214 | "engines": {
215 | "node": ">= 10"
216 | }
217 | },
218 | "node_modules/@nodelib/fs.scandir": {
219 | "version": "2.1.5",
220 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
221 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
222 | "dependencies": {
223 | "@nodelib/fs.stat": "2.0.5",
224 | "run-parallel": "^1.1.9"
225 | },
226 | "engines": {
227 | "node": ">= 8"
228 | }
229 | },
230 | "node_modules/@nodelib/fs.stat": {
231 | "version": "2.0.5",
232 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
233 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
234 | "engines": {
235 | "node": ">= 8"
236 | }
237 | },
238 | "node_modules/@nodelib/fs.walk": {
239 | "version": "1.2.8",
240 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
241 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
242 | "dependencies": {
243 | "@nodelib/fs.scandir": "2.1.5",
244 | "fastq": "^1.6.0"
245 | },
246 | "engines": {
247 | "node": ">= 8"
248 | }
249 | },
250 | "node_modules/@swc/helpers": {
251 | "version": "0.5.1",
252 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz",
253 | "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==",
254 | "dependencies": {
255 | "tslib": "^2.4.0"
256 | }
257 | },
258 | "node_modules/any-promise": {
259 | "version": "1.3.0",
260 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
261 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
262 | },
263 | "node_modules/anymatch": {
264 | "version": "3.1.3",
265 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
266 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
267 | "dependencies": {
268 | "normalize-path": "^3.0.0",
269 | "picomatch": "^2.0.4"
270 | },
271 | "engines": {
272 | "node": ">= 8"
273 | }
274 | },
275 | "node_modules/arg": {
276 | "version": "5.0.2",
277 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
278 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
279 | },
280 | "node_modules/autoprefixer": {
281 | "version": "10.4.14",
282 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
283 | "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
284 | "funding": [
285 | {
286 | "type": "opencollective",
287 | "url": "https://opencollective.com/postcss/"
288 | },
289 | {
290 | "type": "tidelift",
291 | "url": "https://tidelift.com/funding/github/npm/autoprefixer"
292 | }
293 | ],
294 | "dependencies": {
295 | "browserslist": "^4.21.5",
296 | "caniuse-lite": "^1.0.30001464",
297 | "fraction.js": "^4.2.0",
298 | "normalize-range": "^0.1.2",
299 | "picocolors": "^1.0.0",
300 | "postcss-value-parser": "^4.2.0"
301 | },
302 | "bin": {
303 | "autoprefixer": "bin/autoprefixer"
304 | },
305 | "engines": {
306 | "node": "^10 || ^12 || >=14"
307 | },
308 | "peerDependencies": {
309 | "postcss": "^8.1.0"
310 | }
311 | },
312 | "node_modules/balanced-match": {
313 | "version": "1.0.2",
314 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
315 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
316 | },
317 | "node_modules/binary-extensions": {
318 | "version": "2.2.0",
319 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
320 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
321 | "engines": {
322 | "node": ">=8"
323 | }
324 | },
325 | "node_modules/brace-expansion": {
326 | "version": "1.1.11",
327 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
328 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
329 | "dependencies": {
330 | "balanced-match": "^1.0.0",
331 | "concat-map": "0.0.1"
332 | }
333 | },
334 | "node_modules/braces": {
335 | "version": "3.0.2",
336 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
337 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
338 | "dependencies": {
339 | "fill-range": "^7.0.1"
340 | },
341 | "engines": {
342 | "node": ">=8"
343 | }
344 | },
345 | "node_modules/browserslist": {
346 | "version": "4.21.5",
347 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
348 | "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
349 | "funding": [
350 | {
351 | "type": "opencollective",
352 | "url": "https://opencollective.com/browserslist"
353 | },
354 | {
355 | "type": "tidelift",
356 | "url": "https://tidelift.com/funding/github/npm/browserslist"
357 | }
358 | ],
359 | "dependencies": {
360 | "caniuse-lite": "^1.0.30001449",
361 | "electron-to-chromium": "^1.4.284",
362 | "node-releases": "^2.0.8",
363 | "update-browserslist-db": "^1.0.10"
364 | },
365 | "bin": {
366 | "browserslist": "cli.js"
367 | },
368 | "engines": {
369 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
370 | }
371 | },
372 | "node_modules/busboy": {
373 | "version": "1.6.0",
374 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
375 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
376 | "dependencies": {
377 | "streamsearch": "^1.1.0"
378 | },
379 | "engines": {
380 | "node": ">=10.16.0"
381 | }
382 | },
383 | "node_modules/camelcase-css": {
384 | "version": "2.0.1",
385 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
386 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
387 | "engines": {
388 | "node": ">= 6"
389 | }
390 | },
391 | "node_modules/caniuse-lite": {
392 | "version": "1.0.30001482",
393 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz",
394 | "integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==",
395 | "funding": [
396 | {
397 | "type": "opencollective",
398 | "url": "https://opencollective.com/browserslist"
399 | },
400 | {
401 | "type": "tidelift",
402 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
403 | },
404 | {
405 | "type": "github",
406 | "url": "https://github.com/sponsors/ai"
407 | }
408 | ]
409 | },
410 | "node_modules/chokidar": {
411 | "version": "3.5.3",
412 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
413 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
414 | "funding": [
415 | {
416 | "type": "individual",
417 | "url": "https://paulmillr.com/funding/"
418 | }
419 | ],
420 | "dependencies": {
421 | "anymatch": "~3.1.2",
422 | "braces": "~3.0.2",
423 | "glob-parent": "~5.1.2",
424 | "is-binary-path": "~2.1.0",
425 | "is-glob": "~4.0.1",
426 | "normalize-path": "~3.0.0",
427 | "readdirp": "~3.6.0"
428 | },
429 | "engines": {
430 | "node": ">= 8.10.0"
431 | },
432 | "optionalDependencies": {
433 | "fsevents": "~2.3.2"
434 | }
435 | },
436 | "node_modules/chokidar/node_modules/glob-parent": {
437 | "version": "5.1.2",
438 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
439 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
440 | "dependencies": {
441 | "is-glob": "^4.0.1"
442 | },
443 | "engines": {
444 | "node": ">= 6"
445 | }
446 | },
447 | "node_modules/client-only": {
448 | "version": "0.0.1",
449 | "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
450 | "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
451 | },
452 | "node_modules/commander": {
453 | "version": "4.1.1",
454 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
455 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
456 | "engines": {
457 | "node": ">= 6"
458 | }
459 | },
460 | "node_modules/concat-map": {
461 | "version": "0.0.1",
462 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
463 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
464 | },
465 | "node_modules/cssesc": {
466 | "version": "3.0.0",
467 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
468 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
469 | "bin": {
470 | "cssesc": "bin/cssesc"
471 | },
472 | "engines": {
473 | "node": ">=4"
474 | }
475 | },
476 | "node_modules/didyoumean": {
477 | "version": "1.2.2",
478 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
479 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
480 | },
481 | "node_modules/dlv": {
482 | "version": "1.1.3",
483 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
484 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
485 | },
486 | "node_modules/electron-to-chromium": {
487 | "version": "1.4.380",
488 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.380.tgz",
489 | "integrity": "sha512-XKGdI4pWM78eLH2cbXJHiBnWUwFSzZM7XujsB6stDiGu9AeSqziedP6amNLpJzE3i0rLTcfAwdCTs5ecP5yeSg=="
490 | },
491 | "node_modules/escalade": {
492 | "version": "3.1.1",
493 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
494 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
495 | "engines": {
496 | "node": ">=6"
497 | }
498 | },
499 | "node_modules/fast-glob": {
500 | "version": "3.2.12",
501 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
502 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
503 | "dependencies": {
504 | "@nodelib/fs.stat": "^2.0.2",
505 | "@nodelib/fs.walk": "^1.2.3",
506 | "glob-parent": "^5.1.2",
507 | "merge2": "^1.3.0",
508 | "micromatch": "^4.0.4"
509 | },
510 | "engines": {
511 | "node": ">=8.6.0"
512 | }
513 | },
514 | "node_modules/fast-glob/node_modules/glob-parent": {
515 | "version": "5.1.2",
516 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
517 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
518 | "dependencies": {
519 | "is-glob": "^4.0.1"
520 | },
521 | "engines": {
522 | "node": ">= 6"
523 | }
524 | },
525 | "node_modules/fastq": {
526 | "version": "1.15.0",
527 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
528 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
529 | "dependencies": {
530 | "reusify": "^1.0.4"
531 | }
532 | },
533 | "node_modules/fill-range": {
534 | "version": "7.0.1",
535 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
536 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
537 | "dependencies": {
538 | "to-regex-range": "^5.0.1"
539 | },
540 | "engines": {
541 | "node": ">=8"
542 | }
543 | },
544 | "node_modules/fraction.js": {
545 | "version": "4.2.0",
546 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
547 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
548 | "engines": {
549 | "node": "*"
550 | },
551 | "funding": {
552 | "type": "patreon",
553 | "url": "https://www.patreon.com/infusion"
554 | }
555 | },
556 | "node_modules/fs.realpath": {
557 | "version": "1.0.0",
558 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
559 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
560 | },
561 | "node_modules/fsevents": {
562 | "version": "2.3.2",
563 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
564 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
565 | "hasInstallScript": true,
566 | "optional": true,
567 | "os": [
568 | "darwin"
569 | ],
570 | "engines": {
571 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
572 | }
573 | },
574 | "node_modules/function-bind": {
575 | "version": "1.1.1",
576 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
577 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
578 | },
579 | "node_modules/glob": {
580 | "version": "7.1.6",
581 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
582 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
583 | "dependencies": {
584 | "fs.realpath": "^1.0.0",
585 | "inflight": "^1.0.4",
586 | "inherits": "2",
587 | "minimatch": "^3.0.4",
588 | "once": "^1.3.0",
589 | "path-is-absolute": "^1.0.0"
590 | },
591 | "engines": {
592 | "node": "*"
593 | },
594 | "funding": {
595 | "url": "https://github.com/sponsors/isaacs"
596 | }
597 | },
598 | "node_modules/glob-parent": {
599 | "version": "6.0.2",
600 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
601 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
602 | "dependencies": {
603 | "is-glob": "^4.0.3"
604 | },
605 | "engines": {
606 | "node": ">=10.13.0"
607 | }
608 | },
609 | "node_modules/has": {
610 | "version": "1.0.3",
611 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
612 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
613 | "dependencies": {
614 | "function-bind": "^1.1.1"
615 | },
616 | "engines": {
617 | "node": ">= 0.4.0"
618 | }
619 | },
620 | "node_modules/inflight": {
621 | "version": "1.0.6",
622 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
623 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
624 | "dependencies": {
625 | "once": "^1.3.0",
626 | "wrappy": "1"
627 | }
628 | },
629 | "node_modules/inherits": {
630 | "version": "2.0.4",
631 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
632 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
633 | },
634 | "node_modules/is-binary-path": {
635 | "version": "2.1.0",
636 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
637 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
638 | "dependencies": {
639 | "binary-extensions": "^2.0.0"
640 | },
641 | "engines": {
642 | "node": ">=8"
643 | }
644 | },
645 | "node_modules/is-core-module": {
646 | "version": "2.12.0",
647 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
648 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
649 | "dependencies": {
650 | "has": "^1.0.3"
651 | },
652 | "funding": {
653 | "url": "https://github.com/sponsors/ljharb"
654 | }
655 | },
656 | "node_modules/is-extglob": {
657 | "version": "2.1.1",
658 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
659 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
660 | "engines": {
661 | "node": ">=0.10.0"
662 | }
663 | },
664 | "node_modules/is-glob": {
665 | "version": "4.0.3",
666 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
667 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
668 | "dependencies": {
669 | "is-extglob": "^2.1.1"
670 | },
671 | "engines": {
672 | "node": ">=0.10.0"
673 | }
674 | },
675 | "node_modules/is-number": {
676 | "version": "7.0.0",
677 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
678 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
679 | "engines": {
680 | "node": ">=0.12.0"
681 | }
682 | },
683 | "node_modules/jiti": {
684 | "version": "1.18.2",
685 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
686 | "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
687 | "bin": {
688 | "jiti": "bin/jiti.js"
689 | }
690 | },
691 | "node_modules/js-tokens": {
692 | "version": "4.0.0",
693 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
694 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
695 | },
696 | "node_modules/lilconfig": {
697 | "version": "2.1.0",
698 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
699 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
700 | "engines": {
701 | "node": ">=10"
702 | }
703 | },
704 | "node_modules/lines-and-columns": {
705 | "version": "1.2.4",
706 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
707 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
708 | },
709 | "node_modules/loose-envify": {
710 | "version": "1.4.0",
711 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
712 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
713 | "dependencies": {
714 | "js-tokens": "^3.0.0 || ^4.0.0"
715 | },
716 | "bin": {
717 | "loose-envify": "cli.js"
718 | }
719 | },
720 | "node_modules/merge2": {
721 | "version": "1.4.1",
722 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
723 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
724 | "engines": {
725 | "node": ">= 8"
726 | }
727 | },
728 | "node_modules/micromatch": {
729 | "version": "4.0.5",
730 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
731 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
732 | "dependencies": {
733 | "braces": "^3.0.2",
734 | "picomatch": "^2.3.1"
735 | },
736 | "engines": {
737 | "node": ">=8.6"
738 | }
739 | },
740 | "node_modules/minimatch": {
741 | "version": "3.1.2",
742 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
743 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
744 | "dependencies": {
745 | "brace-expansion": "^1.1.7"
746 | },
747 | "engines": {
748 | "node": "*"
749 | }
750 | },
751 | "node_modules/mz": {
752 | "version": "2.7.0",
753 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
754 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
755 | "dependencies": {
756 | "any-promise": "^1.0.0",
757 | "object-assign": "^4.0.1",
758 | "thenify-all": "^1.0.0"
759 | }
760 | },
761 | "node_modules/nanoid": {
762 | "version": "3.3.6",
763 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
764 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
765 | "funding": [
766 | {
767 | "type": "github",
768 | "url": "https://github.com/sponsors/ai"
769 | }
770 | ],
771 | "bin": {
772 | "nanoid": "bin/nanoid.cjs"
773 | },
774 | "engines": {
775 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
776 | }
777 | },
778 | "node_modules/next": {
779 | "version": "13.3.4",
780 | "resolved": "https://registry.npmjs.org/next/-/next-13.3.4.tgz",
781 | "integrity": "sha512-sod7HeokBSvH5QV0KB+pXeLfcXUlLrGnVUXxHpmhilQ+nQYT3Im2O8DswD5e4uqbR8Pvdu9pcWgb1CbXZQZlmQ==",
782 | "dependencies": {
783 | "@next/env": "13.3.4",
784 | "@swc/helpers": "0.5.1",
785 | "busboy": "1.6.0",
786 | "caniuse-lite": "^1.0.30001406",
787 | "postcss": "8.4.14",
788 | "styled-jsx": "5.1.1"
789 | },
790 | "bin": {
791 | "next": "dist/bin/next"
792 | },
793 | "engines": {
794 | "node": ">=16.8.0"
795 | },
796 | "optionalDependencies": {
797 | "@next/swc-darwin-arm64": "13.3.4",
798 | "@next/swc-darwin-x64": "13.3.4",
799 | "@next/swc-linux-arm64-gnu": "13.3.4",
800 | "@next/swc-linux-arm64-musl": "13.3.4",
801 | "@next/swc-linux-x64-gnu": "13.3.4",
802 | "@next/swc-linux-x64-musl": "13.3.4",
803 | "@next/swc-win32-arm64-msvc": "13.3.4",
804 | "@next/swc-win32-ia32-msvc": "13.3.4",
805 | "@next/swc-win32-x64-msvc": "13.3.4"
806 | },
807 | "peerDependencies": {
808 | "@opentelemetry/api": "^1.1.0",
809 | "fibers": ">= 3.1.0",
810 | "node-sass": "^6.0.0 || ^7.0.0",
811 | "react": "^18.2.0",
812 | "react-dom": "^18.2.0",
813 | "sass": "^1.3.0"
814 | },
815 | "peerDependenciesMeta": {
816 | "@opentelemetry/api": {
817 | "optional": true
818 | },
819 | "fibers": {
820 | "optional": true
821 | },
822 | "node-sass": {
823 | "optional": true
824 | },
825 | "sass": {
826 | "optional": true
827 | }
828 | }
829 | },
830 | "node_modules/next/node_modules/postcss": {
831 | "version": "8.4.14",
832 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
833 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
834 | "funding": [
835 | {
836 | "type": "opencollective",
837 | "url": "https://opencollective.com/postcss/"
838 | },
839 | {
840 | "type": "tidelift",
841 | "url": "https://tidelift.com/funding/github/npm/postcss"
842 | }
843 | ],
844 | "dependencies": {
845 | "nanoid": "^3.3.4",
846 | "picocolors": "^1.0.0",
847 | "source-map-js": "^1.0.2"
848 | },
849 | "engines": {
850 | "node": "^10 || ^12 || >=14"
851 | }
852 | },
853 | "node_modules/node-releases": {
854 | "version": "2.0.10",
855 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
856 | "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
857 | },
858 | "node_modules/normalize-path": {
859 | "version": "3.0.0",
860 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
861 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
862 | "engines": {
863 | "node": ">=0.10.0"
864 | }
865 | },
866 | "node_modules/normalize-range": {
867 | "version": "0.1.2",
868 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
869 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
870 | "engines": {
871 | "node": ">=0.10.0"
872 | }
873 | },
874 | "node_modules/object-assign": {
875 | "version": "4.1.1",
876 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
877 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
878 | "engines": {
879 | "node": ">=0.10.0"
880 | }
881 | },
882 | "node_modules/object-hash": {
883 | "version": "3.0.0",
884 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
885 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
886 | "engines": {
887 | "node": ">= 6"
888 | }
889 | },
890 | "node_modules/once": {
891 | "version": "1.4.0",
892 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
893 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
894 | "dependencies": {
895 | "wrappy": "1"
896 | }
897 | },
898 | "node_modules/path-is-absolute": {
899 | "version": "1.0.1",
900 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
901 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
902 | "engines": {
903 | "node": ">=0.10.0"
904 | }
905 | },
906 | "node_modules/path-parse": {
907 | "version": "1.0.7",
908 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
909 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
910 | },
911 | "node_modules/picocolors": {
912 | "version": "1.0.0",
913 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
914 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
915 | },
916 | "node_modules/picomatch": {
917 | "version": "2.3.1",
918 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
919 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
920 | "engines": {
921 | "node": ">=8.6"
922 | },
923 | "funding": {
924 | "url": "https://github.com/sponsors/jonschlinkert"
925 | }
926 | },
927 | "node_modules/pify": {
928 | "version": "2.3.0",
929 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
930 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
931 | "engines": {
932 | "node": ">=0.10.0"
933 | }
934 | },
935 | "node_modules/pirates": {
936 | "version": "4.0.5",
937 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
938 | "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
939 | "engines": {
940 | "node": ">= 6"
941 | }
942 | },
943 | "node_modules/postcss": {
944 | "version": "8.4.23",
945 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
946 | "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
947 | "funding": [
948 | {
949 | "type": "opencollective",
950 | "url": "https://opencollective.com/postcss/"
951 | },
952 | {
953 | "type": "tidelift",
954 | "url": "https://tidelift.com/funding/github/npm/postcss"
955 | },
956 | {
957 | "type": "github",
958 | "url": "https://github.com/sponsors/ai"
959 | }
960 | ],
961 | "dependencies": {
962 | "nanoid": "^3.3.6",
963 | "picocolors": "^1.0.0",
964 | "source-map-js": "^1.0.2"
965 | },
966 | "engines": {
967 | "node": "^10 || ^12 || >=14"
968 | }
969 | },
970 | "node_modules/postcss-import": {
971 | "version": "15.1.0",
972 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
973 | "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
974 | "dependencies": {
975 | "postcss-value-parser": "^4.0.0",
976 | "read-cache": "^1.0.0",
977 | "resolve": "^1.1.7"
978 | },
979 | "engines": {
980 | "node": ">=14.0.0"
981 | },
982 | "peerDependencies": {
983 | "postcss": "^8.0.0"
984 | }
985 | },
986 | "node_modules/postcss-js": {
987 | "version": "4.0.1",
988 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
989 | "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
990 | "dependencies": {
991 | "camelcase-css": "^2.0.1"
992 | },
993 | "engines": {
994 | "node": "^12 || ^14 || >= 16"
995 | },
996 | "funding": {
997 | "type": "opencollective",
998 | "url": "https://opencollective.com/postcss/"
999 | },
1000 | "peerDependencies": {
1001 | "postcss": "^8.4.21"
1002 | }
1003 | },
1004 | "node_modules/postcss-load-config": {
1005 | "version": "4.0.1",
1006 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
1007 | "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
1008 | "dependencies": {
1009 | "lilconfig": "^2.0.5",
1010 | "yaml": "^2.1.1"
1011 | },
1012 | "engines": {
1013 | "node": ">= 14"
1014 | },
1015 | "funding": {
1016 | "type": "opencollective",
1017 | "url": "https://opencollective.com/postcss/"
1018 | },
1019 | "peerDependencies": {
1020 | "postcss": ">=8.0.9",
1021 | "ts-node": ">=9.0.0"
1022 | },
1023 | "peerDependenciesMeta": {
1024 | "postcss": {
1025 | "optional": true
1026 | },
1027 | "ts-node": {
1028 | "optional": true
1029 | }
1030 | }
1031 | },
1032 | "node_modules/postcss-nested": {
1033 | "version": "6.0.1",
1034 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
1035 | "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
1036 | "dependencies": {
1037 | "postcss-selector-parser": "^6.0.11"
1038 | },
1039 | "engines": {
1040 | "node": ">=12.0"
1041 | },
1042 | "funding": {
1043 | "type": "opencollective",
1044 | "url": "https://opencollective.com/postcss/"
1045 | },
1046 | "peerDependencies": {
1047 | "postcss": "^8.2.14"
1048 | }
1049 | },
1050 | "node_modules/postcss-selector-parser": {
1051 | "version": "6.0.12",
1052 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz",
1053 | "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==",
1054 | "dependencies": {
1055 | "cssesc": "^3.0.0",
1056 | "util-deprecate": "^1.0.2"
1057 | },
1058 | "engines": {
1059 | "node": ">=4"
1060 | }
1061 | },
1062 | "node_modules/postcss-value-parser": {
1063 | "version": "4.2.0",
1064 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1065 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
1066 | },
1067 | "node_modules/queue-microtask": {
1068 | "version": "1.2.3",
1069 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1070 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1071 | "funding": [
1072 | {
1073 | "type": "github",
1074 | "url": "https://github.com/sponsors/feross"
1075 | },
1076 | {
1077 | "type": "patreon",
1078 | "url": "https://www.patreon.com/feross"
1079 | },
1080 | {
1081 | "type": "consulting",
1082 | "url": "https://feross.org/support"
1083 | }
1084 | ]
1085 | },
1086 | "node_modules/react": {
1087 | "version": "18.2.0",
1088 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
1089 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
1090 | "dependencies": {
1091 | "loose-envify": "^1.1.0"
1092 | },
1093 | "engines": {
1094 | "node": ">=0.10.0"
1095 | }
1096 | },
1097 | "node_modules/react-dom": {
1098 | "version": "18.2.0",
1099 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
1100 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
1101 | "dependencies": {
1102 | "loose-envify": "^1.1.0",
1103 | "scheduler": "^0.23.0"
1104 | },
1105 | "peerDependencies": {
1106 | "react": "^18.2.0"
1107 | }
1108 | },
1109 | "node_modules/read-cache": {
1110 | "version": "1.0.0",
1111 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1112 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1113 | "dependencies": {
1114 | "pify": "^2.3.0"
1115 | }
1116 | },
1117 | "node_modules/readdirp": {
1118 | "version": "3.6.0",
1119 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1120 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1121 | "dependencies": {
1122 | "picomatch": "^2.2.1"
1123 | },
1124 | "engines": {
1125 | "node": ">=8.10.0"
1126 | }
1127 | },
1128 | "node_modules/resolve": {
1129 | "version": "1.22.2",
1130 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
1131 | "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
1132 | "dependencies": {
1133 | "is-core-module": "^2.11.0",
1134 | "path-parse": "^1.0.7",
1135 | "supports-preserve-symlinks-flag": "^1.0.0"
1136 | },
1137 | "bin": {
1138 | "resolve": "bin/resolve"
1139 | },
1140 | "funding": {
1141 | "url": "https://github.com/sponsors/ljharb"
1142 | }
1143 | },
1144 | "node_modules/reusify": {
1145 | "version": "1.0.4",
1146 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1147 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1148 | "engines": {
1149 | "iojs": ">=1.0.0",
1150 | "node": ">=0.10.0"
1151 | }
1152 | },
1153 | "node_modules/run-parallel": {
1154 | "version": "1.2.0",
1155 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1156 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1157 | "funding": [
1158 | {
1159 | "type": "github",
1160 | "url": "https://github.com/sponsors/feross"
1161 | },
1162 | {
1163 | "type": "patreon",
1164 | "url": "https://www.patreon.com/feross"
1165 | },
1166 | {
1167 | "type": "consulting",
1168 | "url": "https://feross.org/support"
1169 | }
1170 | ],
1171 | "dependencies": {
1172 | "queue-microtask": "^1.2.2"
1173 | }
1174 | },
1175 | "node_modules/scheduler": {
1176 | "version": "0.23.0",
1177 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
1178 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
1179 | "dependencies": {
1180 | "loose-envify": "^1.1.0"
1181 | }
1182 | },
1183 | "node_modules/source-map-js": {
1184 | "version": "1.0.2",
1185 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1186 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1187 | "engines": {
1188 | "node": ">=0.10.0"
1189 | }
1190 | },
1191 | "node_modules/streamsearch": {
1192 | "version": "1.1.0",
1193 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
1194 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
1195 | "engines": {
1196 | "node": ">=10.0.0"
1197 | }
1198 | },
1199 | "node_modules/styled-jsx": {
1200 | "version": "5.1.1",
1201 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
1202 | "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
1203 | "dependencies": {
1204 | "client-only": "0.0.1"
1205 | },
1206 | "engines": {
1207 | "node": ">= 12.0.0"
1208 | },
1209 | "peerDependencies": {
1210 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
1211 | },
1212 | "peerDependenciesMeta": {
1213 | "@babel/core": {
1214 | "optional": true
1215 | },
1216 | "babel-plugin-macros": {
1217 | "optional": true
1218 | }
1219 | }
1220 | },
1221 | "node_modules/sucrase": {
1222 | "version": "3.32.0",
1223 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz",
1224 | "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==",
1225 | "dependencies": {
1226 | "@jridgewell/gen-mapping": "^0.3.2",
1227 | "commander": "^4.0.0",
1228 | "glob": "7.1.6",
1229 | "lines-and-columns": "^1.1.6",
1230 | "mz": "^2.7.0",
1231 | "pirates": "^4.0.1",
1232 | "ts-interface-checker": "^0.1.9"
1233 | },
1234 | "bin": {
1235 | "sucrase": "bin/sucrase",
1236 | "sucrase-node": "bin/sucrase-node"
1237 | },
1238 | "engines": {
1239 | "node": ">=8"
1240 | }
1241 | },
1242 | "node_modules/supports-preserve-symlinks-flag": {
1243 | "version": "1.0.0",
1244 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1245 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1246 | "engines": {
1247 | "node": ">= 0.4"
1248 | },
1249 | "funding": {
1250 | "url": "https://github.com/sponsors/ljharb"
1251 | }
1252 | },
1253 | "node_modules/tailwindcss": {
1254 | "version": "3.3.2",
1255 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz",
1256 | "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==",
1257 | "dependencies": {
1258 | "@alloc/quick-lru": "^5.2.0",
1259 | "arg": "^5.0.2",
1260 | "chokidar": "^3.5.3",
1261 | "didyoumean": "^1.2.2",
1262 | "dlv": "^1.1.3",
1263 | "fast-glob": "^3.2.12",
1264 | "glob-parent": "^6.0.2",
1265 | "is-glob": "^4.0.3",
1266 | "jiti": "^1.18.2",
1267 | "lilconfig": "^2.1.0",
1268 | "micromatch": "^4.0.5",
1269 | "normalize-path": "^3.0.0",
1270 | "object-hash": "^3.0.0",
1271 | "picocolors": "^1.0.0",
1272 | "postcss": "^8.4.23",
1273 | "postcss-import": "^15.1.0",
1274 | "postcss-js": "^4.0.1",
1275 | "postcss-load-config": "^4.0.1",
1276 | "postcss-nested": "^6.0.1",
1277 | "postcss-selector-parser": "^6.0.11",
1278 | "postcss-value-parser": "^4.2.0",
1279 | "resolve": "^1.22.2",
1280 | "sucrase": "^3.32.0"
1281 | },
1282 | "bin": {
1283 | "tailwind": "lib/cli.js",
1284 | "tailwindcss": "lib/cli.js"
1285 | },
1286 | "engines": {
1287 | "node": ">=14.0.0"
1288 | }
1289 | },
1290 | "node_modules/thenify": {
1291 | "version": "3.3.1",
1292 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
1293 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
1294 | "dependencies": {
1295 | "any-promise": "^1.0.0"
1296 | }
1297 | },
1298 | "node_modules/thenify-all": {
1299 | "version": "1.6.0",
1300 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
1301 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
1302 | "dependencies": {
1303 | "thenify": ">= 3.1.0 < 4"
1304 | },
1305 | "engines": {
1306 | "node": ">=0.8"
1307 | }
1308 | },
1309 | "node_modules/to-regex-range": {
1310 | "version": "5.0.1",
1311 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1312 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1313 | "dependencies": {
1314 | "is-number": "^7.0.0"
1315 | },
1316 | "engines": {
1317 | "node": ">=8.0"
1318 | }
1319 | },
1320 | "node_modules/ts-interface-checker": {
1321 | "version": "0.1.13",
1322 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
1323 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
1324 | },
1325 | "node_modules/tslib": {
1326 | "version": "2.5.0",
1327 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
1328 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
1329 | },
1330 | "node_modules/update-browserslist-db": {
1331 | "version": "1.0.11",
1332 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
1333 | "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
1334 | "funding": [
1335 | {
1336 | "type": "opencollective",
1337 | "url": "https://opencollective.com/browserslist"
1338 | },
1339 | {
1340 | "type": "tidelift",
1341 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1342 | },
1343 | {
1344 | "type": "github",
1345 | "url": "https://github.com/sponsors/ai"
1346 | }
1347 | ],
1348 | "dependencies": {
1349 | "escalade": "^3.1.1",
1350 | "picocolors": "^1.0.0"
1351 | },
1352 | "bin": {
1353 | "update-browserslist-db": "cli.js"
1354 | },
1355 | "peerDependencies": {
1356 | "browserslist": ">= 4.21.0"
1357 | }
1358 | },
1359 | "node_modules/util-deprecate": {
1360 | "version": "1.0.2",
1361 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1362 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
1363 | },
1364 | "node_modules/wrappy": {
1365 | "version": "1.0.2",
1366 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1367 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
1368 | },
1369 | "node_modules/yaml": {
1370 | "version": "2.2.2",
1371 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
1372 | "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
1373 | "engines": {
1374 | "node": ">= 14"
1375 | }
1376 | }
1377 | }
1378 | }
1379 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "todolist",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "autoprefixer": "10.4.14",
13 | "next": "13.3.4",
14 | "postcss": "8.4.23",
15 | "react": "18.2.0",
16 | "react-dom": "18.2.0",
17 | "tailwindcss": "3.3.2"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/pages/_app.js:
--------------------------------------------------------------------------------
1 | import Footer from '@/components/Footer'
2 | import Header from '@/components/Header'
3 | import '@/styles/globals.css'
4 |
5 | export default function App({ Component, pageProps }) {
6 | return (
7 | <>
8 |
9 |
10 |
11 |
12 |
13 | >
14 | )
15 | }
16 |
--------------------------------------------------------------------------------
/pages/_document.js:
--------------------------------------------------------------------------------
1 | import { Html, Head, Main, NextScript } from 'next/document'
2 |
3 | export default function Document() {
4 | return (
5 |
6 |
8 |
9 |
10 |
11 |
12 | )
13 | }
14 |
--------------------------------------------------------------------------------
/pages/api/hello.js:
--------------------------------------------------------------------------------
1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction
2 |
3 | export default function handler(req, res) {
4 | res.status(200).json({ name: 'John Doe' })
5 | }
6 |
--------------------------------------------------------------------------------
/pages/edit/[title].js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { useRouter } from 'next/router'
3 | import { useEffect, useState } from 'react'
4 |
5 | const Edit = () => {
6 | const router = useRouter()
7 | const { title } = router.query
8 |
9 | const [todo, setTodo] = useState({title: "", desc: ""})
10 |
11 |
12 | const updateTodo = () => {
13 | let todos = localStorage.getItem("todos")
14 | if (todos){
15 | let todosJson = JSON.parse(todos)
16 | if(todosJson.filter(value=>{ return value.title==title}).length > 0){
17 | let index = todosJson.findIndex(value=>{ return value.title==title})
18 | todosJson[index].title = todo.title
19 | todosJson[index].desc = todo.desc
20 | localStorage.setItem("todos", JSON.stringify(todosJson))
21 | alert("Todo has been updated")
22 | }
23 | else{
24 | alert("Todo does not exist")
25 | }
26 | }
27 | else{
28 | localStorage.setItem("todos", JSON.stringify([todo]))
29 | }
30 | }
31 |
32 |
33 | useEffect(() => {
34 | let todos = localStorage.getItem("todos")
35 | if (todos) {
36 | let todosJson = JSON.parse(todos)
37 | let ftodo = todosJson.filter(e => title == e.title)
38 | console.log(ftodo)
39 | if(ftodo.length>0){
40 |
41 | setTodo(ftodo[0])
42 | }
43 | }
44 |
45 |
46 | }, [router.isReady])
47 | const onChange = (e) => {
48 |
49 | setTodo({...todo, [e.target.name]: e.target.value})
50 | console.log(todo)
51 | }
52 | return (
53 |
54 |
55 |
56 |
57 |
58 |
Update a Todo
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
The best todo list app out there!
69 |
70 |
71 |
72 |
73 | )
74 | }
75 |
76 | export default Edit
--------------------------------------------------------------------------------
/pages/index.js:
--------------------------------------------------------------------------------
1 | import Image from 'next/image'
2 | import { Inter } from 'next/font/google'
3 | import { useState } from 'react'
4 |
5 | const inter = Inter({ subsets: ['latin'] })
6 |
7 | export default function Home() {
8 |
9 | const [todo, setTodo] = useState({title: "", desc: ""})
10 |
11 | const addTodo = () => {
12 | let todos = localStorage.getItem("todos")
13 | if (todos){
14 | let todosJson = JSON.parse(todos)
15 | if(todosJson.filter(value=>{ return value.title==todo.title}).length > 0){
16 | alert("Todo with this title already exists")
17 | }
18 | else{
19 | todosJson.push(todo)
20 | localStorage.setItem("todos", JSON.stringify(todosJson))
21 | alert("Todo has been added")
22 | setTodo({title: "", desc: ""})
23 | }
24 | }
25 | else{
26 | localStorage.setItem("todos", JSON.stringify([todo]))
27 | }
28 | }
29 |
30 | const onChange = (e) => {
31 |
32 | setTodo({...todo, [e.target.name]: e.target.value})
33 | console.log(todo)
34 | }
35 | return (
36 |
37 |
38 |
39 |
40 |
41 |
Add a Todo
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
Literally you probably haven't heard of them jean shorts.
52 |
53 |
54 |
55 |
56 | )
57 | }
58 |
--------------------------------------------------------------------------------
/pages/todos.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react'
2 |
3 | const todos = () => {
4 |
5 | const [todos, setTodos] = useState([])
6 | useEffect(() => {
7 | let todos = localStorage.getItem("todos")
8 | setTodos(JSON.parse(todos))
9 |
10 | }, [])
11 |
12 |
13 | const deleteTodo = (title) => {
14 | let newTodos = todos.filter(item =>{
15 | return item.title != title
16 | })
17 | localStorage.setItem("todos", JSON.stringify(newTodos))
18 | setTodos(newTodos)
19 | }
20 |
21 | const editTodo = (first) => { second }
22 | return (
23 |
24 |
25 |
26 |
Your Todos
27 | {todos.length == 0 &&
Your Todos will show up here. Please add a todo by going to the homepage
}
28 |
29 |
30 |
31 |
32 | {todos.map(item => {
33 | return
34 |
35 |

36 |
49 |
50 |
51 | })}
52 |
53 |
54 |
55 | )
56 | }
57 |
58 | export default todos
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeWithHarry/nextjs-todolist-youtube/fe0d41d1f7602dcfc39d72fcc542112a591f5e6f/public/favicon.ico
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | './pages/**/*.{js,ts,jsx,tsx,mdx}',
5 | './components/**/*.{js,ts,jsx,tsx,mdx}',
6 | './app/**/*.{js,ts,jsx,tsx,mdx}',
7 | ],
8 | theme: {
9 | extend: {
10 | backgroundImage: {
11 | 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
12 | 'gradient-conic':
13 | 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
14 | },
15 | },
16 | },
17 | plugins: [],
18 | }
19 |
--------------------------------------------------------------------------------