├── .gitignore
├── App startup files.rar
├── LICENSE
├── index.html
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
└── vite.svg
├── src
├── App.css
├── App.jsx
├── assets
│ ├── images
│ │ ├── bg-curvy-desktop.svg
│ │ ├── bg-curvy-mobile.svg
│ │ ├── bg-quotes.png
│ │ ├── favicon-32x32.png
│ │ ├── icon-access-anywhere.svg
│ │ ├── icon-any-file.svg
│ │ ├── icon-arrow.svg
│ │ ├── icon-collaboration.svg
│ │ ├── icon-email.svg
│ │ ├── icon-location.svg
│ │ ├── icon-phone.svg
│ │ ├── icon-security.svg
│ │ ├── illustration-stay-productive.png
│ │ ├── landing-img.png
│ │ ├── logo.svg
│ │ ├── profile-1.jpg
│ │ ├── profile-2.jpg
│ │ └── profile-3.jpg
│ └── react.svg
├── components
│ ├── FeatureBox.jsx
│ ├── Features.jsx
│ ├── Footer.jsx
│ ├── GetStarted.jsx
│ ├── Header.jsx
│ ├── Landing.jsx
│ ├── Layout.jsx
│ ├── StayProductive.jsx
│ ├── TestimonialBox.jsx
│ └── Testimonials.jsx
├── index.css
├── main.jsx
└── pages
│ └── Home.jsx
├── tailwind.config.js
└── vite.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/App startup files.rar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/App startup files.rar
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Kareem Shimes
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React
8 |
9 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tailwind-tutorial",
3 | "version": "0.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "tailwind-tutorial",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "@heroicons/react": "^2.0.18",
12 | "react": "^18.2.0",
13 | "react-dom": "^18.2.0",
14 | "react-icons": "^4.10.1",
15 | "react-router-dom": "^6.14.0"
16 | },
17 | "devDependencies": {
18 | "@types/react": "^18.0.27",
19 | "@types/react-dom": "^18.0.10",
20 | "@vitejs/plugin-react-swc": "^3.0.0",
21 | "autoprefixer": "^10.4.14",
22 | "postcss": "^8.4.24",
23 | "tailwindcss": "^3.3.2",
24 | "vite": "^4.1.0"
25 | }
26 | },
27 | "node_modules/@alloc/quick-lru": {
28 | "version": "5.2.0",
29 | "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
30 | "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
31 | "dev": true,
32 | "engines": {
33 | "node": ">=10"
34 | },
35 | "funding": {
36 | "url": "https://github.com/sponsors/sindresorhus"
37 | }
38 | },
39 | "node_modules/@esbuild/android-arm": {
40 | "version": "0.17.19",
41 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz",
42 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==",
43 | "cpu": [
44 | "arm"
45 | ],
46 | "dev": true,
47 | "optional": true,
48 | "os": [
49 | "android"
50 | ],
51 | "engines": {
52 | "node": ">=12"
53 | }
54 | },
55 | "node_modules/@esbuild/android-arm64": {
56 | "version": "0.17.19",
57 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz",
58 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==",
59 | "cpu": [
60 | "arm64"
61 | ],
62 | "dev": true,
63 | "optional": true,
64 | "os": [
65 | "android"
66 | ],
67 | "engines": {
68 | "node": ">=12"
69 | }
70 | },
71 | "node_modules/@esbuild/android-x64": {
72 | "version": "0.17.19",
73 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz",
74 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==",
75 | "cpu": [
76 | "x64"
77 | ],
78 | "dev": true,
79 | "optional": true,
80 | "os": [
81 | "android"
82 | ],
83 | "engines": {
84 | "node": ">=12"
85 | }
86 | },
87 | "node_modules/@esbuild/darwin-arm64": {
88 | "version": "0.17.19",
89 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz",
90 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==",
91 | "cpu": [
92 | "arm64"
93 | ],
94 | "dev": true,
95 | "optional": true,
96 | "os": [
97 | "darwin"
98 | ],
99 | "engines": {
100 | "node": ">=12"
101 | }
102 | },
103 | "node_modules/@esbuild/darwin-x64": {
104 | "version": "0.17.19",
105 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz",
106 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==",
107 | "cpu": [
108 | "x64"
109 | ],
110 | "dev": true,
111 | "optional": true,
112 | "os": [
113 | "darwin"
114 | ],
115 | "engines": {
116 | "node": ">=12"
117 | }
118 | },
119 | "node_modules/@esbuild/freebsd-arm64": {
120 | "version": "0.17.19",
121 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz",
122 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==",
123 | "cpu": [
124 | "arm64"
125 | ],
126 | "dev": true,
127 | "optional": true,
128 | "os": [
129 | "freebsd"
130 | ],
131 | "engines": {
132 | "node": ">=12"
133 | }
134 | },
135 | "node_modules/@esbuild/freebsd-x64": {
136 | "version": "0.17.19",
137 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz",
138 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==",
139 | "cpu": [
140 | "x64"
141 | ],
142 | "dev": true,
143 | "optional": true,
144 | "os": [
145 | "freebsd"
146 | ],
147 | "engines": {
148 | "node": ">=12"
149 | }
150 | },
151 | "node_modules/@esbuild/linux-arm": {
152 | "version": "0.17.19",
153 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz",
154 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==",
155 | "cpu": [
156 | "arm"
157 | ],
158 | "dev": true,
159 | "optional": true,
160 | "os": [
161 | "linux"
162 | ],
163 | "engines": {
164 | "node": ">=12"
165 | }
166 | },
167 | "node_modules/@esbuild/linux-arm64": {
168 | "version": "0.17.19",
169 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz",
170 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==",
171 | "cpu": [
172 | "arm64"
173 | ],
174 | "dev": true,
175 | "optional": true,
176 | "os": [
177 | "linux"
178 | ],
179 | "engines": {
180 | "node": ">=12"
181 | }
182 | },
183 | "node_modules/@esbuild/linux-ia32": {
184 | "version": "0.17.19",
185 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz",
186 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==",
187 | "cpu": [
188 | "ia32"
189 | ],
190 | "dev": true,
191 | "optional": true,
192 | "os": [
193 | "linux"
194 | ],
195 | "engines": {
196 | "node": ">=12"
197 | }
198 | },
199 | "node_modules/@esbuild/linux-loong64": {
200 | "version": "0.17.19",
201 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz",
202 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==",
203 | "cpu": [
204 | "loong64"
205 | ],
206 | "dev": true,
207 | "optional": true,
208 | "os": [
209 | "linux"
210 | ],
211 | "engines": {
212 | "node": ">=12"
213 | }
214 | },
215 | "node_modules/@esbuild/linux-mips64el": {
216 | "version": "0.17.19",
217 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz",
218 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==",
219 | "cpu": [
220 | "mips64el"
221 | ],
222 | "dev": true,
223 | "optional": true,
224 | "os": [
225 | "linux"
226 | ],
227 | "engines": {
228 | "node": ">=12"
229 | }
230 | },
231 | "node_modules/@esbuild/linux-ppc64": {
232 | "version": "0.17.19",
233 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz",
234 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==",
235 | "cpu": [
236 | "ppc64"
237 | ],
238 | "dev": true,
239 | "optional": true,
240 | "os": [
241 | "linux"
242 | ],
243 | "engines": {
244 | "node": ">=12"
245 | }
246 | },
247 | "node_modules/@esbuild/linux-riscv64": {
248 | "version": "0.17.19",
249 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz",
250 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==",
251 | "cpu": [
252 | "riscv64"
253 | ],
254 | "dev": true,
255 | "optional": true,
256 | "os": [
257 | "linux"
258 | ],
259 | "engines": {
260 | "node": ">=12"
261 | }
262 | },
263 | "node_modules/@esbuild/linux-s390x": {
264 | "version": "0.17.19",
265 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz",
266 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==",
267 | "cpu": [
268 | "s390x"
269 | ],
270 | "dev": true,
271 | "optional": true,
272 | "os": [
273 | "linux"
274 | ],
275 | "engines": {
276 | "node": ">=12"
277 | }
278 | },
279 | "node_modules/@esbuild/linux-x64": {
280 | "version": "0.17.19",
281 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz",
282 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==",
283 | "cpu": [
284 | "x64"
285 | ],
286 | "dev": true,
287 | "optional": true,
288 | "os": [
289 | "linux"
290 | ],
291 | "engines": {
292 | "node": ">=12"
293 | }
294 | },
295 | "node_modules/@esbuild/netbsd-x64": {
296 | "version": "0.17.19",
297 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz",
298 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==",
299 | "cpu": [
300 | "x64"
301 | ],
302 | "dev": true,
303 | "optional": true,
304 | "os": [
305 | "netbsd"
306 | ],
307 | "engines": {
308 | "node": ">=12"
309 | }
310 | },
311 | "node_modules/@esbuild/openbsd-x64": {
312 | "version": "0.17.19",
313 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz",
314 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==",
315 | "cpu": [
316 | "x64"
317 | ],
318 | "dev": true,
319 | "optional": true,
320 | "os": [
321 | "openbsd"
322 | ],
323 | "engines": {
324 | "node": ">=12"
325 | }
326 | },
327 | "node_modules/@esbuild/sunos-x64": {
328 | "version": "0.17.19",
329 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz",
330 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==",
331 | "cpu": [
332 | "x64"
333 | ],
334 | "dev": true,
335 | "optional": true,
336 | "os": [
337 | "sunos"
338 | ],
339 | "engines": {
340 | "node": ">=12"
341 | }
342 | },
343 | "node_modules/@esbuild/win32-arm64": {
344 | "version": "0.17.19",
345 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz",
346 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==",
347 | "cpu": [
348 | "arm64"
349 | ],
350 | "dev": true,
351 | "optional": true,
352 | "os": [
353 | "win32"
354 | ],
355 | "engines": {
356 | "node": ">=12"
357 | }
358 | },
359 | "node_modules/@esbuild/win32-ia32": {
360 | "version": "0.17.19",
361 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz",
362 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==",
363 | "cpu": [
364 | "ia32"
365 | ],
366 | "dev": true,
367 | "optional": true,
368 | "os": [
369 | "win32"
370 | ],
371 | "engines": {
372 | "node": ">=12"
373 | }
374 | },
375 | "node_modules/@esbuild/win32-x64": {
376 | "version": "0.17.19",
377 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz",
378 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==",
379 | "cpu": [
380 | "x64"
381 | ],
382 | "dev": true,
383 | "optional": true,
384 | "os": [
385 | "win32"
386 | ],
387 | "engines": {
388 | "node": ">=12"
389 | }
390 | },
391 | "node_modules/@heroicons/react": {
392 | "version": "2.0.18",
393 | "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.18.tgz",
394 | "integrity": "sha512-7TyMjRrZZMBPa+/5Y8lN0iyvUU/01PeMGX2+RE7cQWpEUIcb4QotzUObFkJDejj/HUH4qjP/eQ0gzzKs2f+6Yw==",
395 | "peerDependencies": {
396 | "react": ">= 16"
397 | }
398 | },
399 | "node_modules/@jridgewell/gen-mapping": {
400 | "version": "0.3.3",
401 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
402 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
403 | "dev": true,
404 | "dependencies": {
405 | "@jridgewell/set-array": "^1.0.1",
406 | "@jridgewell/sourcemap-codec": "^1.4.10",
407 | "@jridgewell/trace-mapping": "^0.3.9"
408 | },
409 | "engines": {
410 | "node": ">=6.0.0"
411 | }
412 | },
413 | "node_modules/@jridgewell/resolve-uri": {
414 | "version": "3.1.0",
415 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
416 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
417 | "dev": true,
418 | "engines": {
419 | "node": ">=6.0.0"
420 | }
421 | },
422 | "node_modules/@jridgewell/set-array": {
423 | "version": "1.1.2",
424 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
425 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
426 | "dev": true,
427 | "engines": {
428 | "node": ">=6.0.0"
429 | }
430 | },
431 | "node_modules/@jridgewell/sourcemap-codec": {
432 | "version": "1.4.15",
433 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
434 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
435 | "dev": true
436 | },
437 | "node_modules/@jridgewell/trace-mapping": {
438 | "version": "0.3.18",
439 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
440 | "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
441 | "dev": true,
442 | "dependencies": {
443 | "@jridgewell/resolve-uri": "3.1.0",
444 | "@jridgewell/sourcemap-codec": "1.4.14"
445 | }
446 | },
447 | "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
448 | "version": "1.4.14",
449 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
450 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
451 | "dev": true
452 | },
453 | "node_modules/@nodelib/fs.scandir": {
454 | "version": "2.1.5",
455 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
456 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
457 | "dev": true,
458 | "dependencies": {
459 | "@nodelib/fs.stat": "2.0.5",
460 | "run-parallel": "^1.1.9"
461 | },
462 | "engines": {
463 | "node": ">= 8"
464 | }
465 | },
466 | "node_modules/@nodelib/fs.stat": {
467 | "version": "2.0.5",
468 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
469 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
470 | "dev": true,
471 | "engines": {
472 | "node": ">= 8"
473 | }
474 | },
475 | "node_modules/@nodelib/fs.walk": {
476 | "version": "1.2.8",
477 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
478 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
479 | "dev": true,
480 | "dependencies": {
481 | "@nodelib/fs.scandir": "2.1.5",
482 | "fastq": "^1.6.0"
483 | },
484 | "engines": {
485 | "node": ">= 8"
486 | }
487 | },
488 | "node_modules/@remix-run/router": {
489 | "version": "1.7.0",
490 | "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.0.tgz",
491 | "integrity": "sha512-Eu1V3kz3mV0wUpVTiFHuaT8UD1gj/0VnoFHQYX35xlslQUpe8CuYoKFn9d4WZFHm3yDywz6ALZuGdnUPKrNeAw==",
492 | "engines": {
493 | "node": ">=14"
494 | }
495 | },
496 | "node_modules/@swc/core": {
497 | "version": "1.3.66",
498 | "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.66.tgz",
499 | "integrity": "sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA==",
500 | "dev": true,
501 | "hasInstallScript": true,
502 | "engines": {
503 | "node": ">=10"
504 | },
505 | "funding": {
506 | "type": "opencollective",
507 | "url": "https://opencollective.com/swc"
508 | },
509 | "optionalDependencies": {
510 | "@swc/core-darwin-arm64": "1.3.66",
511 | "@swc/core-darwin-x64": "1.3.66",
512 | "@swc/core-linux-arm-gnueabihf": "1.3.66",
513 | "@swc/core-linux-arm64-gnu": "1.3.66",
514 | "@swc/core-linux-arm64-musl": "1.3.66",
515 | "@swc/core-linux-x64-gnu": "1.3.66",
516 | "@swc/core-linux-x64-musl": "1.3.66",
517 | "@swc/core-win32-arm64-msvc": "1.3.66",
518 | "@swc/core-win32-ia32-msvc": "1.3.66",
519 | "@swc/core-win32-x64-msvc": "1.3.66"
520 | },
521 | "peerDependencies": {
522 | "@swc/helpers": "^0.5.0"
523 | },
524 | "peerDependenciesMeta": {
525 | "@swc/helpers": {
526 | "optional": true
527 | }
528 | }
529 | },
530 | "node_modules/@swc/core-darwin-arm64": {
531 | "version": "1.3.66",
532 | "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.66.tgz",
533 | "integrity": "sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw==",
534 | "cpu": [
535 | "arm64"
536 | ],
537 | "dev": true,
538 | "optional": true,
539 | "os": [
540 | "darwin"
541 | ],
542 | "engines": {
543 | "node": ">=10"
544 | }
545 | },
546 | "node_modules/@swc/core-darwin-x64": {
547 | "version": "1.3.66",
548 | "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.66.tgz",
549 | "integrity": "sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q==",
550 | "cpu": [
551 | "x64"
552 | ],
553 | "dev": true,
554 | "optional": true,
555 | "os": [
556 | "darwin"
557 | ],
558 | "engines": {
559 | "node": ">=10"
560 | }
561 | },
562 | "node_modules/@swc/core-linux-arm-gnueabihf": {
563 | "version": "1.3.66",
564 | "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.66.tgz",
565 | "integrity": "sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA==",
566 | "cpu": [
567 | "arm"
568 | ],
569 | "dev": true,
570 | "optional": true,
571 | "os": [
572 | "linux"
573 | ],
574 | "engines": {
575 | "node": ">=10"
576 | }
577 | },
578 | "node_modules/@swc/core-linux-arm64-gnu": {
579 | "version": "1.3.66",
580 | "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.66.tgz",
581 | "integrity": "sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w==",
582 | "cpu": [
583 | "arm64"
584 | ],
585 | "dev": true,
586 | "optional": true,
587 | "os": [
588 | "linux"
589 | ],
590 | "engines": {
591 | "node": ">=10"
592 | }
593 | },
594 | "node_modules/@swc/core-linux-arm64-musl": {
595 | "version": "1.3.66",
596 | "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.66.tgz",
597 | "integrity": "sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg==",
598 | "cpu": [
599 | "arm64"
600 | ],
601 | "dev": true,
602 | "optional": true,
603 | "os": [
604 | "linux"
605 | ],
606 | "engines": {
607 | "node": ">=10"
608 | }
609 | },
610 | "node_modules/@swc/core-linux-x64-gnu": {
611 | "version": "1.3.66",
612 | "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.66.tgz",
613 | "integrity": "sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q==",
614 | "cpu": [
615 | "x64"
616 | ],
617 | "dev": true,
618 | "optional": true,
619 | "os": [
620 | "linux"
621 | ],
622 | "engines": {
623 | "node": ">=10"
624 | }
625 | },
626 | "node_modules/@swc/core-linux-x64-musl": {
627 | "version": "1.3.66",
628 | "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.66.tgz",
629 | "integrity": "sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw==",
630 | "cpu": [
631 | "x64"
632 | ],
633 | "dev": true,
634 | "optional": true,
635 | "os": [
636 | "linux"
637 | ],
638 | "engines": {
639 | "node": ">=10"
640 | }
641 | },
642 | "node_modules/@swc/core-win32-arm64-msvc": {
643 | "version": "1.3.66",
644 | "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.66.tgz",
645 | "integrity": "sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw==",
646 | "cpu": [
647 | "arm64"
648 | ],
649 | "dev": true,
650 | "optional": true,
651 | "os": [
652 | "win32"
653 | ],
654 | "engines": {
655 | "node": ">=10"
656 | }
657 | },
658 | "node_modules/@swc/core-win32-ia32-msvc": {
659 | "version": "1.3.66",
660 | "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.66.tgz",
661 | "integrity": "sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q==",
662 | "cpu": [
663 | "ia32"
664 | ],
665 | "dev": true,
666 | "optional": true,
667 | "os": [
668 | "win32"
669 | ],
670 | "engines": {
671 | "node": ">=10"
672 | }
673 | },
674 | "node_modules/@swc/core-win32-x64-msvc": {
675 | "version": "1.3.66",
676 | "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.66.tgz",
677 | "integrity": "sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw==",
678 | "cpu": [
679 | "x64"
680 | ],
681 | "dev": true,
682 | "optional": true,
683 | "os": [
684 | "win32"
685 | ],
686 | "engines": {
687 | "node": ">=10"
688 | }
689 | },
690 | "node_modules/@types/prop-types": {
691 | "version": "15.7.5",
692 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
693 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
694 | "dev": true
695 | },
696 | "node_modules/@types/react": {
697 | "version": "18.2.14",
698 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz",
699 | "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==",
700 | "dev": true,
701 | "dependencies": {
702 | "@types/prop-types": "*",
703 | "@types/scheduler": "*",
704 | "csstype": "^3.0.2"
705 | }
706 | },
707 | "node_modules/@types/react-dom": {
708 | "version": "18.2.6",
709 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz",
710 | "integrity": "sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==",
711 | "dev": true,
712 | "dependencies": {
713 | "@types/react": "*"
714 | }
715 | },
716 | "node_modules/@types/scheduler": {
717 | "version": "0.16.3",
718 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
719 | "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
720 | "dev": true
721 | },
722 | "node_modules/@vitejs/plugin-react-swc": {
723 | "version": "3.3.2",
724 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz",
725 | "integrity": "sha512-VJFWY5sfoZerQRvJrh518h3AcQt6f/yTuWn4/TRB+dqmYU0NX1qz7qM5Wfd+gOQqUzQW4gxKqKN3KpE/P3+zrA==",
726 | "dev": true,
727 | "dependencies": {
728 | "@swc/core": "^1.3.61"
729 | },
730 | "peerDependencies": {
731 | "vite": "^4"
732 | }
733 | },
734 | "node_modules/any-promise": {
735 | "version": "1.3.0",
736 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
737 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
738 | "dev": true
739 | },
740 | "node_modules/anymatch": {
741 | "version": "3.1.3",
742 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
743 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
744 | "dev": true,
745 | "dependencies": {
746 | "normalize-path": "^3.0.0",
747 | "picomatch": "^2.0.4"
748 | },
749 | "engines": {
750 | "node": ">= 8"
751 | }
752 | },
753 | "node_modules/arg": {
754 | "version": "5.0.2",
755 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
756 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
757 | "dev": true
758 | },
759 | "node_modules/autoprefixer": {
760 | "version": "10.4.14",
761 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
762 | "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
763 | "dev": true,
764 | "funding": [
765 | {
766 | "type": "opencollective",
767 | "url": "https://opencollective.com/postcss/"
768 | },
769 | {
770 | "type": "tidelift",
771 | "url": "https://tidelift.com/funding/github/npm/autoprefixer"
772 | }
773 | ],
774 | "dependencies": {
775 | "browserslist": "^4.21.5",
776 | "caniuse-lite": "^1.0.30001464",
777 | "fraction.js": "^4.2.0",
778 | "normalize-range": "^0.1.2",
779 | "picocolors": "^1.0.0",
780 | "postcss-value-parser": "^4.2.0"
781 | },
782 | "bin": {
783 | "autoprefixer": "bin/autoprefixer"
784 | },
785 | "engines": {
786 | "node": "^10 || ^12 || >=14"
787 | },
788 | "peerDependencies": {
789 | "postcss": "^8.1.0"
790 | }
791 | },
792 | "node_modules/balanced-match": {
793 | "version": "1.0.2",
794 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
795 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
796 | "dev": true
797 | },
798 | "node_modules/binary-extensions": {
799 | "version": "2.2.0",
800 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
801 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
802 | "dev": true,
803 | "engines": {
804 | "node": ">=8"
805 | }
806 | },
807 | "node_modules/brace-expansion": {
808 | "version": "1.1.11",
809 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
810 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
811 | "dev": true,
812 | "dependencies": {
813 | "balanced-match": "^1.0.0",
814 | "concat-map": "0.0.1"
815 | }
816 | },
817 | "node_modules/braces": {
818 | "version": "3.0.2",
819 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
820 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
821 | "dev": true,
822 | "dependencies": {
823 | "fill-range": "^7.0.1"
824 | },
825 | "engines": {
826 | "node": ">=8"
827 | }
828 | },
829 | "node_modules/browserslist": {
830 | "version": "4.21.9",
831 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
832 | "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
833 | "dev": true,
834 | "funding": [
835 | {
836 | "type": "opencollective",
837 | "url": "https://opencollective.com/browserslist"
838 | },
839 | {
840 | "type": "tidelift",
841 | "url": "https://tidelift.com/funding/github/npm/browserslist"
842 | },
843 | {
844 | "type": "github",
845 | "url": "https://github.com/sponsors/ai"
846 | }
847 | ],
848 | "dependencies": {
849 | "caniuse-lite": "^1.0.30001503",
850 | "electron-to-chromium": "^1.4.431",
851 | "node-releases": "^2.0.12",
852 | "update-browserslist-db": "^1.0.11"
853 | },
854 | "bin": {
855 | "browserslist": "cli.js"
856 | },
857 | "engines": {
858 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
859 | }
860 | },
861 | "node_modules/camelcase-css": {
862 | "version": "2.0.1",
863 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
864 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
865 | "dev": true,
866 | "engines": {
867 | "node": ">= 6"
868 | }
869 | },
870 | "node_modules/caniuse-lite": {
871 | "version": "1.0.30001508",
872 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz",
873 | "integrity": "sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==",
874 | "dev": true,
875 | "funding": [
876 | {
877 | "type": "opencollective",
878 | "url": "https://opencollective.com/browserslist"
879 | },
880 | {
881 | "type": "tidelift",
882 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
883 | },
884 | {
885 | "type": "github",
886 | "url": "https://github.com/sponsors/ai"
887 | }
888 | ]
889 | },
890 | "node_modules/chokidar": {
891 | "version": "3.5.3",
892 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
893 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
894 | "dev": true,
895 | "funding": [
896 | {
897 | "type": "individual",
898 | "url": "https://paulmillr.com/funding/"
899 | }
900 | ],
901 | "dependencies": {
902 | "anymatch": "~3.1.2",
903 | "braces": "~3.0.2",
904 | "glob-parent": "~5.1.2",
905 | "is-binary-path": "~2.1.0",
906 | "is-glob": "~4.0.1",
907 | "normalize-path": "~3.0.0",
908 | "readdirp": "~3.6.0"
909 | },
910 | "engines": {
911 | "node": ">= 8.10.0"
912 | },
913 | "optionalDependencies": {
914 | "fsevents": "~2.3.2"
915 | }
916 | },
917 | "node_modules/chokidar/node_modules/glob-parent": {
918 | "version": "5.1.2",
919 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
920 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
921 | "dev": true,
922 | "dependencies": {
923 | "is-glob": "^4.0.1"
924 | },
925 | "engines": {
926 | "node": ">= 6"
927 | }
928 | },
929 | "node_modules/commander": {
930 | "version": "4.1.1",
931 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
932 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
933 | "dev": true,
934 | "engines": {
935 | "node": ">= 6"
936 | }
937 | },
938 | "node_modules/concat-map": {
939 | "version": "0.0.1",
940 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
941 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
942 | "dev": true
943 | },
944 | "node_modules/cssesc": {
945 | "version": "3.0.0",
946 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
947 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
948 | "dev": true,
949 | "bin": {
950 | "cssesc": "bin/cssesc"
951 | },
952 | "engines": {
953 | "node": ">=4"
954 | }
955 | },
956 | "node_modules/csstype": {
957 | "version": "3.1.2",
958 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
959 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
960 | "dev": true
961 | },
962 | "node_modules/didyoumean": {
963 | "version": "1.2.2",
964 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
965 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
966 | "dev": true
967 | },
968 | "node_modules/dlv": {
969 | "version": "1.1.3",
970 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
971 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
972 | "dev": true
973 | },
974 | "node_modules/electron-to-chromium": {
975 | "version": "1.4.441",
976 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.441.tgz",
977 | "integrity": "sha512-LlCgQ8zgYZPymf5H4aE9itwiIWH4YlCiv1HFLmmcBeFYi5E+3eaIFnjHzYtcFQbaKfAW+CqZ9pgxo33DZuoqPg==",
978 | "dev": true
979 | },
980 | "node_modules/esbuild": {
981 | "version": "0.17.19",
982 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz",
983 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==",
984 | "dev": true,
985 | "hasInstallScript": true,
986 | "bin": {
987 | "esbuild": "bin/esbuild"
988 | },
989 | "engines": {
990 | "node": ">=12"
991 | },
992 | "optionalDependencies": {
993 | "@esbuild/android-arm": "0.17.19",
994 | "@esbuild/android-arm64": "0.17.19",
995 | "@esbuild/android-x64": "0.17.19",
996 | "@esbuild/darwin-arm64": "0.17.19",
997 | "@esbuild/darwin-x64": "0.17.19",
998 | "@esbuild/freebsd-arm64": "0.17.19",
999 | "@esbuild/freebsd-x64": "0.17.19",
1000 | "@esbuild/linux-arm": "0.17.19",
1001 | "@esbuild/linux-arm64": "0.17.19",
1002 | "@esbuild/linux-ia32": "0.17.19",
1003 | "@esbuild/linux-loong64": "0.17.19",
1004 | "@esbuild/linux-mips64el": "0.17.19",
1005 | "@esbuild/linux-ppc64": "0.17.19",
1006 | "@esbuild/linux-riscv64": "0.17.19",
1007 | "@esbuild/linux-s390x": "0.17.19",
1008 | "@esbuild/linux-x64": "0.17.19",
1009 | "@esbuild/netbsd-x64": "0.17.19",
1010 | "@esbuild/openbsd-x64": "0.17.19",
1011 | "@esbuild/sunos-x64": "0.17.19",
1012 | "@esbuild/win32-arm64": "0.17.19",
1013 | "@esbuild/win32-ia32": "0.17.19",
1014 | "@esbuild/win32-x64": "0.17.19"
1015 | }
1016 | },
1017 | "node_modules/escalade": {
1018 | "version": "3.1.1",
1019 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1020 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1021 | "dev": true,
1022 | "engines": {
1023 | "node": ">=6"
1024 | }
1025 | },
1026 | "node_modules/fast-glob": {
1027 | "version": "3.2.12",
1028 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
1029 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
1030 | "dev": true,
1031 | "dependencies": {
1032 | "@nodelib/fs.stat": "^2.0.2",
1033 | "@nodelib/fs.walk": "^1.2.3",
1034 | "glob-parent": "^5.1.2",
1035 | "merge2": "^1.3.0",
1036 | "micromatch": "^4.0.4"
1037 | },
1038 | "engines": {
1039 | "node": ">=8.6.0"
1040 | }
1041 | },
1042 | "node_modules/fast-glob/node_modules/glob-parent": {
1043 | "version": "5.1.2",
1044 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1045 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1046 | "dev": true,
1047 | "dependencies": {
1048 | "is-glob": "^4.0.1"
1049 | },
1050 | "engines": {
1051 | "node": ">= 6"
1052 | }
1053 | },
1054 | "node_modules/fastq": {
1055 | "version": "1.15.0",
1056 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
1057 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
1058 | "dev": true,
1059 | "dependencies": {
1060 | "reusify": "^1.0.4"
1061 | }
1062 | },
1063 | "node_modules/fill-range": {
1064 | "version": "7.0.1",
1065 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1066 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1067 | "dev": true,
1068 | "dependencies": {
1069 | "to-regex-range": "^5.0.1"
1070 | },
1071 | "engines": {
1072 | "node": ">=8"
1073 | }
1074 | },
1075 | "node_modules/fraction.js": {
1076 | "version": "4.2.0",
1077 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
1078 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
1079 | "dev": true,
1080 | "engines": {
1081 | "node": "*"
1082 | },
1083 | "funding": {
1084 | "type": "patreon",
1085 | "url": "https://www.patreon.com/infusion"
1086 | }
1087 | },
1088 | "node_modules/fs.realpath": {
1089 | "version": "1.0.0",
1090 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1091 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1092 | "dev": true
1093 | },
1094 | "node_modules/fsevents": {
1095 | "version": "2.3.2",
1096 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1097 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1098 | "dev": true,
1099 | "hasInstallScript": true,
1100 | "optional": true,
1101 | "os": [
1102 | "darwin"
1103 | ],
1104 | "engines": {
1105 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1106 | }
1107 | },
1108 | "node_modules/function-bind": {
1109 | "version": "1.1.1",
1110 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1111 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1112 | "dev": true
1113 | },
1114 | "node_modules/glob": {
1115 | "version": "7.1.6",
1116 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1117 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
1118 | "dev": true,
1119 | "dependencies": {
1120 | "fs.realpath": "^1.0.0",
1121 | "inflight": "^1.0.4",
1122 | "inherits": "2",
1123 | "minimatch": "^3.0.4",
1124 | "once": "^1.3.0",
1125 | "path-is-absolute": "^1.0.0"
1126 | },
1127 | "engines": {
1128 | "node": "*"
1129 | },
1130 | "funding": {
1131 | "url": "https://github.com/sponsors/isaacs"
1132 | }
1133 | },
1134 | "node_modules/glob-parent": {
1135 | "version": "6.0.2",
1136 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1137 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1138 | "dev": true,
1139 | "dependencies": {
1140 | "is-glob": "^4.0.3"
1141 | },
1142 | "engines": {
1143 | "node": ">=10.13.0"
1144 | }
1145 | },
1146 | "node_modules/has": {
1147 | "version": "1.0.3",
1148 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1149 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1150 | "dev": true,
1151 | "dependencies": {
1152 | "function-bind": "^1.1.1"
1153 | },
1154 | "engines": {
1155 | "node": ">= 0.4.0"
1156 | }
1157 | },
1158 | "node_modules/inflight": {
1159 | "version": "1.0.6",
1160 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1161 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1162 | "dev": true,
1163 | "dependencies": {
1164 | "once": "^1.3.0",
1165 | "wrappy": "1"
1166 | }
1167 | },
1168 | "node_modules/inherits": {
1169 | "version": "2.0.4",
1170 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1171 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1172 | "dev": true
1173 | },
1174 | "node_modules/is-binary-path": {
1175 | "version": "2.1.0",
1176 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1177 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1178 | "dev": true,
1179 | "dependencies": {
1180 | "binary-extensions": "^2.0.0"
1181 | },
1182 | "engines": {
1183 | "node": ">=8"
1184 | }
1185 | },
1186 | "node_modules/is-core-module": {
1187 | "version": "2.12.1",
1188 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
1189 | "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
1190 | "dev": true,
1191 | "dependencies": {
1192 | "has": "^1.0.3"
1193 | },
1194 | "funding": {
1195 | "url": "https://github.com/sponsors/ljharb"
1196 | }
1197 | },
1198 | "node_modules/is-extglob": {
1199 | "version": "2.1.1",
1200 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1201 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1202 | "dev": true,
1203 | "engines": {
1204 | "node": ">=0.10.0"
1205 | }
1206 | },
1207 | "node_modules/is-glob": {
1208 | "version": "4.0.3",
1209 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1210 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1211 | "dev": true,
1212 | "dependencies": {
1213 | "is-extglob": "^2.1.1"
1214 | },
1215 | "engines": {
1216 | "node": ">=0.10.0"
1217 | }
1218 | },
1219 | "node_modules/is-number": {
1220 | "version": "7.0.0",
1221 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1222 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1223 | "dev": true,
1224 | "engines": {
1225 | "node": ">=0.12.0"
1226 | }
1227 | },
1228 | "node_modules/jiti": {
1229 | "version": "1.18.2",
1230 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
1231 | "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
1232 | "dev": true,
1233 | "bin": {
1234 | "jiti": "bin/jiti.js"
1235 | }
1236 | },
1237 | "node_modules/js-tokens": {
1238 | "version": "4.0.0",
1239 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1240 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1241 | },
1242 | "node_modules/lilconfig": {
1243 | "version": "2.1.0",
1244 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
1245 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
1246 | "dev": true,
1247 | "engines": {
1248 | "node": ">=10"
1249 | }
1250 | },
1251 | "node_modules/lines-and-columns": {
1252 | "version": "1.2.4",
1253 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1254 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
1255 | "dev": true
1256 | },
1257 | "node_modules/loose-envify": {
1258 | "version": "1.4.0",
1259 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1260 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1261 | "dependencies": {
1262 | "js-tokens": "^3.0.0 || ^4.0.0"
1263 | },
1264 | "bin": {
1265 | "loose-envify": "cli.js"
1266 | }
1267 | },
1268 | "node_modules/merge2": {
1269 | "version": "1.4.1",
1270 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1271 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1272 | "dev": true,
1273 | "engines": {
1274 | "node": ">= 8"
1275 | }
1276 | },
1277 | "node_modules/micromatch": {
1278 | "version": "4.0.5",
1279 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1280 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1281 | "dev": true,
1282 | "dependencies": {
1283 | "braces": "^3.0.2",
1284 | "picomatch": "^2.3.1"
1285 | },
1286 | "engines": {
1287 | "node": ">=8.6"
1288 | }
1289 | },
1290 | "node_modules/minimatch": {
1291 | "version": "3.1.2",
1292 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1293 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1294 | "dev": true,
1295 | "dependencies": {
1296 | "brace-expansion": "^1.1.7"
1297 | },
1298 | "engines": {
1299 | "node": "*"
1300 | }
1301 | },
1302 | "node_modules/mz": {
1303 | "version": "2.7.0",
1304 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
1305 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
1306 | "dev": true,
1307 | "dependencies": {
1308 | "any-promise": "^1.0.0",
1309 | "object-assign": "^4.0.1",
1310 | "thenify-all": "^1.0.0"
1311 | }
1312 | },
1313 | "node_modules/nanoid": {
1314 | "version": "3.3.6",
1315 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
1316 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
1317 | "dev": true,
1318 | "funding": [
1319 | {
1320 | "type": "github",
1321 | "url": "https://github.com/sponsors/ai"
1322 | }
1323 | ],
1324 | "bin": {
1325 | "nanoid": "bin/nanoid.cjs"
1326 | },
1327 | "engines": {
1328 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1329 | }
1330 | },
1331 | "node_modules/node-releases": {
1332 | "version": "2.0.12",
1333 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
1334 | "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
1335 | "dev": true
1336 | },
1337 | "node_modules/normalize-path": {
1338 | "version": "3.0.0",
1339 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1340 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1341 | "dev": true,
1342 | "engines": {
1343 | "node": ">=0.10.0"
1344 | }
1345 | },
1346 | "node_modules/normalize-range": {
1347 | "version": "0.1.2",
1348 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1349 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
1350 | "dev": true,
1351 | "engines": {
1352 | "node": ">=0.10.0"
1353 | }
1354 | },
1355 | "node_modules/object-assign": {
1356 | "version": "4.1.1",
1357 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1358 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1359 | "dev": true,
1360 | "engines": {
1361 | "node": ">=0.10.0"
1362 | }
1363 | },
1364 | "node_modules/object-hash": {
1365 | "version": "3.0.0",
1366 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1367 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1368 | "dev": true,
1369 | "engines": {
1370 | "node": ">= 6"
1371 | }
1372 | },
1373 | "node_modules/once": {
1374 | "version": "1.4.0",
1375 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1376 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1377 | "dev": true,
1378 | "dependencies": {
1379 | "wrappy": "1"
1380 | }
1381 | },
1382 | "node_modules/path-is-absolute": {
1383 | "version": "1.0.1",
1384 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1385 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1386 | "dev": true,
1387 | "engines": {
1388 | "node": ">=0.10.0"
1389 | }
1390 | },
1391 | "node_modules/path-parse": {
1392 | "version": "1.0.7",
1393 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1394 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1395 | "dev": true
1396 | },
1397 | "node_modules/picocolors": {
1398 | "version": "1.0.0",
1399 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1400 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1401 | "dev": true
1402 | },
1403 | "node_modules/picomatch": {
1404 | "version": "2.3.1",
1405 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1406 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1407 | "dev": true,
1408 | "engines": {
1409 | "node": ">=8.6"
1410 | },
1411 | "funding": {
1412 | "url": "https://github.com/sponsors/jonschlinkert"
1413 | }
1414 | },
1415 | "node_modules/pify": {
1416 | "version": "2.3.0",
1417 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1418 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
1419 | "dev": true,
1420 | "engines": {
1421 | "node": ">=0.10.0"
1422 | }
1423 | },
1424 | "node_modules/pirates": {
1425 | "version": "4.0.6",
1426 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
1427 | "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
1428 | "dev": true,
1429 | "engines": {
1430 | "node": ">= 6"
1431 | }
1432 | },
1433 | "node_modules/postcss": {
1434 | "version": "8.4.24",
1435 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
1436 | "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==",
1437 | "dev": true,
1438 | "funding": [
1439 | {
1440 | "type": "opencollective",
1441 | "url": "https://opencollective.com/postcss/"
1442 | },
1443 | {
1444 | "type": "tidelift",
1445 | "url": "https://tidelift.com/funding/github/npm/postcss"
1446 | },
1447 | {
1448 | "type": "github",
1449 | "url": "https://github.com/sponsors/ai"
1450 | }
1451 | ],
1452 | "dependencies": {
1453 | "nanoid": "^3.3.6",
1454 | "picocolors": "^1.0.0",
1455 | "source-map-js": "^1.0.2"
1456 | },
1457 | "engines": {
1458 | "node": "^10 || ^12 || >=14"
1459 | }
1460 | },
1461 | "node_modules/postcss-import": {
1462 | "version": "15.1.0",
1463 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
1464 | "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
1465 | "dev": true,
1466 | "dependencies": {
1467 | "postcss-value-parser": "^4.0.0",
1468 | "read-cache": "^1.0.0",
1469 | "resolve": "^1.1.7"
1470 | },
1471 | "engines": {
1472 | "node": ">=14.0.0"
1473 | },
1474 | "peerDependencies": {
1475 | "postcss": "^8.0.0"
1476 | }
1477 | },
1478 | "node_modules/postcss-js": {
1479 | "version": "4.0.1",
1480 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
1481 | "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
1482 | "dev": true,
1483 | "dependencies": {
1484 | "camelcase-css": "^2.0.1"
1485 | },
1486 | "engines": {
1487 | "node": "^12 || ^14 || >= 16"
1488 | },
1489 | "funding": {
1490 | "type": "opencollective",
1491 | "url": "https://opencollective.com/postcss/"
1492 | },
1493 | "peerDependencies": {
1494 | "postcss": "^8.4.21"
1495 | }
1496 | },
1497 | "node_modules/postcss-load-config": {
1498 | "version": "4.0.1",
1499 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
1500 | "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
1501 | "dev": true,
1502 | "dependencies": {
1503 | "lilconfig": "^2.0.5",
1504 | "yaml": "^2.1.1"
1505 | },
1506 | "engines": {
1507 | "node": ">= 14"
1508 | },
1509 | "funding": {
1510 | "type": "opencollective",
1511 | "url": "https://opencollective.com/postcss/"
1512 | },
1513 | "peerDependencies": {
1514 | "postcss": ">=8.0.9",
1515 | "ts-node": ">=9.0.0"
1516 | },
1517 | "peerDependenciesMeta": {
1518 | "postcss": {
1519 | "optional": true
1520 | },
1521 | "ts-node": {
1522 | "optional": true
1523 | }
1524 | }
1525 | },
1526 | "node_modules/postcss-nested": {
1527 | "version": "6.0.1",
1528 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
1529 | "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
1530 | "dev": true,
1531 | "dependencies": {
1532 | "postcss-selector-parser": "^6.0.11"
1533 | },
1534 | "engines": {
1535 | "node": ">=12.0"
1536 | },
1537 | "funding": {
1538 | "type": "opencollective",
1539 | "url": "https://opencollective.com/postcss/"
1540 | },
1541 | "peerDependencies": {
1542 | "postcss": "^8.2.14"
1543 | }
1544 | },
1545 | "node_modules/postcss-selector-parser": {
1546 | "version": "6.0.13",
1547 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
1548 | "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
1549 | "dev": true,
1550 | "dependencies": {
1551 | "cssesc": "^3.0.0",
1552 | "util-deprecate": "^1.0.2"
1553 | },
1554 | "engines": {
1555 | "node": ">=4"
1556 | }
1557 | },
1558 | "node_modules/postcss-value-parser": {
1559 | "version": "4.2.0",
1560 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1561 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
1562 | "dev": true
1563 | },
1564 | "node_modules/queue-microtask": {
1565 | "version": "1.2.3",
1566 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1567 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1568 | "dev": true,
1569 | "funding": [
1570 | {
1571 | "type": "github",
1572 | "url": "https://github.com/sponsors/feross"
1573 | },
1574 | {
1575 | "type": "patreon",
1576 | "url": "https://www.patreon.com/feross"
1577 | },
1578 | {
1579 | "type": "consulting",
1580 | "url": "https://feross.org/support"
1581 | }
1582 | ]
1583 | },
1584 | "node_modules/react": {
1585 | "version": "18.2.0",
1586 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
1587 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
1588 | "dependencies": {
1589 | "loose-envify": "^1.1.0"
1590 | },
1591 | "engines": {
1592 | "node": ">=0.10.0"
1593 | }
1594 | },
1595 | "node_modules/react-dom": {
1596 | "version": "18.2.0",
1597 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
1598 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
1599 | "dependencies": {
1600 | "loose-envify": "^1.1.0",
1601 | "scheduler": "^0.23.0"
1602 | },
1603 | "peerDependencies": {
1604 | "react": "^18.2.0"
1605 | }
1606 | },
1607 | "node_modules/react-icons": {
1608 | "version": "4.10.1",
1609 | "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz",
1610 | "integrity": "sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==",
1611 | "peerDependencies": {
1612 | "react": "*"
1613 | }
1614 | },
1615 | "node_modules/react-router": {
1616 | "version": "6.14.0",
1617 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.0.tgz",
1618 | "integrity": "sha512-OD+vkrcGbvlwkspUFDgMzsu1RXwdjNh83YgG/28lBnDzgslhCgxIqoExLlxsfTpIygp7fc+Hd3esloNwzkm2xA==",
1619 | "dependencies": {
1620 | "@remix-run/router": "1.7.0"
1621 | },
1622 | "engines": {
1623 | "node": ">=14"
1624 | },
1625 | "peerDependencies": {
1626 | "react": ">=16.8"
1627 | }
1628 | },
1629 | "node_modules/react-router-dom": {
1630 | "version": "6.14.0",
1631 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.0.tgz",
1632 | "integrity": "sha512-YEwlApKwzMMMbGbhh+Q7MsloTldcwMgHxUY/1g0uA62+B1hZo2jsybCWIDCL8zvIDB1FA0pBKY9chHbZHt+2dQ==",
1633 | "dependencies": {
1634 | "@remix-run/router": "1.7.0",
1635 | "react-router": "6.14.0"
1636 | },
1637 | "engines": {
1638 | "node": ">=14"
1639 | },
1640 | "peerDependencies": {
1641 | "react": ">=16.8",
1642 | "react-dom": ">=16.8"
1643 | }
1644 | },
1645 | "node_modules/read-cache": {
1646 | "version": "1.0.0",
1647 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1648 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1649 | "dev": true,
1650 | "dependencies": {
1651 | "pify": "^2.3.0"
1652 | }
1653 | },
1654 | "node_modules/readdirp": {
1655 | "version": "3.6.0",
1656 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1657 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1658 | "dev": true,
1659 | "dependencies": {
1660 | "picomatch": "^2.2.1"
1661 | },
1662 | "engines": {
1663 | "node": ">=8.10.0"
1664 | }
1665 | },
1666 | "node_modules/resolve": {
1667 | "version": "1.22.2",
1668 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
1669 | "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
1670 | "dev": true,
1671 | "dependencies": {
1672 | "is-core-module": "^2.11.0",
1673 | "path-parse": "^1.0.7",
1674 | "supports-preserve-symlinks-flag": "^1.0.0"
1675 | },
1676 | "bin": {
1677 | "resolve": "bin/resolve"
1678 | },
1679 | "funding": {
1680 | "url": "https://github.com/sponsors/ljharb"
1681 | }
1682 | },
1683 | "node_modules/reusify": {
1684 | "version": "1.0.4",
1685 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1686 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1687 | "dev": true,
1688 | "engines": {
1689 | "iojs": ">=1.0.0",
1690 | "node": ">=0.10.0"
1691 | }
1692 | },
1693 | "node_modules/rollup": {
1694 | "version": "3.25.3",
1695 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz",
1696 | "integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==",
1697 | "dev": true,
1698 | "bin": {
1699 | "rollup": "dist/bin/rollup"
1700 | },
1701 | "engines": {
1702 | "node": ">=14.18.0",
1703 | "npm": ">=8.0.0"
1704 | },
1705 | "optionalDependencies": {
1706 | "fsevents": "~2.3.2"
1707 | }
1708 | },
1709 | "node_modules/run-parallel": {
1710 | "version": "1.2.0",
1711 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1712 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1713 | "dev": true,
1714 | "funding": [
1715 | {
1716 | "type": "github",
1717 | "url": "https://github.com/sponsors/feross"
1718 | },
1719 | {
1720 | "type": "patreon",
1721 | "url": "https://www.patreon.com/feross"
1722 | },
1723 | {
1724 | "type": "consulting",
1725 | "url": "https://feross.org/support"
1726 | }
1727 | ],
1728 | "dependencies": {
1729 | "queue-microtask": "^1.2.2"
1730 | }
1731 | },
1732 | "node_modules/scheduler": {
1733 | "version": "0.23.0",
1734 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
1735 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
1736 | "dependencies": {
1737 | "loose-envify": "^1.1.0"
1738 | }
1739 | },
1740 | "node_modules/source-map-js": {
1741 | "version": "1.0.2",
1742 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1743 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1744 | "dev": true,
1745 | "engines": {
1746 | "node": ">=0.10.0"
1747 | }
1748 | },
1749 | "node_modules/sucrase": {
1750 | "version": "3.32.0",
1751 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz",
1752 | "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==",
1753 | "dev": true,
1754 | "dependencies": {
1755 | "@jridgewell/gen-mapping": "^0.3.2",
1756 | "commander": "^4.0.0",
1757 | "glob": "7.1.6",
1758 | "lines-and-columns": "^1.1.6",
1759 | "mz": "^2.7.0",
1760 | "pirates": "^4.0.1",
1761 | "ts-interface-checker": "^0.1.9"
1762 | },
1763 | "bin": {
1764 | "sucrase": "bin/sucrase",
1765 | "sucrase-node": "bin/sucrase-node"
1766 | },
1767 | "engines": {
1768 | "node": ">=8"
1769 | }
1770 | },
1771 | "node_modules/supports-preserve-symlinks-flag": {
1772 | "version": "1.0.0",
1773 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1774 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1775 | "dev": true,
1776 | "engines": {
1777 | "node": ">= 0.4"
1778 | },
1779 | "funding": {
1780 | "url": "https://github.com/sponsors/ljharb"
1781 | }
1782 | },
1783 | "node_modules/tailwindcss": {
1784 | "version": "3.3.2",
1785 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz",
1786 | "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==",
1787 | "dev": true,
1788 | "dependencies": {
1789 | "@alloc/quick-lru": "^5.2.0",
1790 | "arg": "^5.0.2",
1791 | "chokidar": "^3.5.3",
1792 | "didyoumean": "^1.2.2",
1793 | "dlv": "^1.1.3",
1794 | "fast-glob": "^3.2.12",
1795 | "glob-parent": "^6.0.2",
1796 | "is-glob": "^4.0.3",
1797 | "jiti": "^1.18.2",
1798 | "lilconfig": "^2.1.0",
1799 | "micromatch": "^4.0.5",
1800 | "normalize-path": "^3.0.0",
1801 | "object-hash": "^3.0.0",
1802 | "picocolors": "^1.0.0",
1803 | "postcss": "^8.4.23",
1804 | "postcss-import": "^15.1.0",
1805 | "postcss-js": "^4.0.1",
1806 | "postcss-load-config": "^4.0.1",
1807 | "postcss-nested": "^6.0.1",
1808 | "postcss-selector-parser": "^6.0.11",
1809 | "postcss-value-parser": "^4.2.0",
1810 | "resolve": "^1.22.2",
1811 | "sucrase": "^3.32.0"
1812 | },
1813 | "bin": {
1814 | "tailwind": "lib/cli.js",
1815 | "tailwindcss": "lib/cli.js"
1816 | },
1817 | "engines": {
1818 | "node": ">=14.0.0"
1819 | }
1820 | },
1821 | "node_modules/thenify": {
1822 | "version": "3.3.1",
1823 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
1824 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
1825 | "dev": true,
1826 | "dependencies": {
1827 | "any-promise": "^1.0.0"
1828 | }
1829 | },
1830 | "node_modules/thenify-all": {
1831 | "version": "1.6.0",
1832 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
1833 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
1834 | "dev": true,
1835 | "dependencies": {
1836 | "thenify": ">= 3.1.0 < 4"
1837 | },
1838 | "engines": {
1839 | "node": ">=0.8"
1840 | }
1841 | },
1842 | "node_modules/to-regex-range": {
1843 | "version": "5.0.1",
1844 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1845 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1846 | "dev": true,
1847 | "dependencies": {
1848 | "is-number": "^7.0.0"
1849 | },
1850 | "engines": {
1851 | "node": ">=8.0"
1852 | }
1853 | },
1854 | "node_modules/ts-interface-checker": {
1855 | "version": "0.1.13",
1856 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
1857 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
1858 | "dev": true
1859 | },
1860 | "node_modules/update-browserslist-db": {
1861 | "version": "1.0.11",
1862 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
1863 | "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
1864 | "dev": true,
1865 | "funding": [
1866 | {
1867 | "type": "opencollective",
1868 | "url": "https://opencollective.com/browserslist"
1869 | },
1870 | {
1871 | "type": "tidelift",
1872 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1873 | },
1874 | {
1875 | "type": "github",
1876 | "url": "https://github.com/sponsors/ai"
1877 | }
1878 | ],
1879 | "dependencies": {
1880 | "escalade": "^3.1.1",
1881 | "picocolors": "^1.0.0"
1882 | },
1883 | "bin": {
1884 | "update-browserslist-db": "cli.js"
1885 | },
1886 | "peerDependencies": {
1887 | "browserslist": ">= 4.21.0"
1888 | }
1889 | },
1890 | "node_modules/util-deprecate": {
1891 | "version": "1.0.2",
1892 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1893 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1894 | "dev": true
1895 | },
1896 | "node_modules/vite": {
1897 | "version": "4.3.9",
1898 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
1899 | "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==",
1900 | "dev": true,
1901 | "dependencies": {
1902 | "esbuild": "^0.17.5",
1903 | "postcss": "^8.4.23",
1904 | "rollup": "^3.21.0"
1905 | },
1906 | "bin": {
1907 | "vite": "bin/vite.js"
1908 | },
1909 | "engines": {
1910 | "node": "^14.18.0 || >=16.0.0"
1911 | },
1912 | "optionalDependencies": {
1913 | "fsevents": "~2.3.2"
1914 | },
1915 | "peerDependencies": {
1916 | "@types/node": ">= 14",
1917 | "less": "*",
1918 | "sass": "*",
1919 | "stylus": "*",
1920 | "sugarss": "*",
1921 | "terser": "^5.4.0"
1922 | },
1923 | "peerDependenciesMeta": {
1924 | "@types/node": {
1925 | "optional": true
1926 | },
1927 | "less": {
1928 | "optional": true
1929 | },
1930 | "sass": {
1931 | "optional": true
1932 | },
1933 | "stylus": {
1934 | "optional": true
1935 | },
1936 | "sugarss": {
1937 | "optional": true
1938 | },
1939 | "terser": {
1940 | "optional": true
1941 | }
1942 | }
1943 | },
1944 | "node_modules/wrappy": {
1945 | "version": "1.0.2",
1946 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1947 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1948 | "dev": true
1949 | },
1950 | "node_modules/yaml": {
1951 | "version": "2.3.1",
1952 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
1953 | "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
1954 | "dev": true,
1955 | "engines": {
1956 | "node": ">= 14"
1957 | }
1958 | }
1959 | }
1960 | }
1961 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tailwind-tutorial",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "@heroicons/react": "^2.0.18",
13 | "react": "^18.2.0",
14 | "react-dom": "^18.2.0",
15 | "react-icons": "^4.10.1",
16 | "react-router-dom": "^6.14.0"
17 | },
18 | "devDependencies": {
19 | "@types/react": "^18.0.27",
20 | "@types/react-dom": "^18.0.10",
21 | "@vitejs/plugin-react-swc": "^3.0.0",
22 | "autoprefixer": "^10.4.14",
23 | "postcss": "^8.4.24",
24 | "tailwindcss": "^3.3.2",
25 | "vite": "^4.1.0"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/App.css
--------------------------------------------------------------------------------
/src/App.jsx:
--------------------------------------------------------------------------------
1 | import {
2 | Route,
3 | RouterProvider,
4 | createBrowserRouter,
5 | createRoutesFromElements,
6 | } from "react-router-dom";
7 | import "./App.css";
8 | import Header from "./components/Header";
9 | import Home from "./pages/Home";
10 | import Layout from "./components/Layout";
11 |
12 | function App() {
13 | const router = createBrowserRouter(
14 | createRoutesFromElements(
15 | }>
16 | } />
17 |
18 | )
19 | );
20 | return ;
21 | }
22 |
23 | export default App;
24 |
--------------------------------------------------------------------------------
/src/assets/images/bg-curvy-desktop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/bg-curvy-mobile.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/bg-quotes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/assets/images/bg-quotes.png
--------------------------------------------------------------------------------
/src/assets/images/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/assets/images/favicon-32x32.png
--------------------------------------------------------------------------------
/src/assets/images/icon-access-anywhere.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/icon-any-file.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/icon-arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/icon-collaboration.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/icon-email.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/icon-location.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/icon-phone.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/icon-security.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/illustration-stay-productive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/assets/images/illustration-stay-productive.png
--------------------------------------------------------------------------------
/src/assets/images/landing-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/assets/images/landing-img.png
--------------------------------------------------------------------------------
/src/assets/images/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/profile-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/assets/images/profile-1.jpg
--------------------------------------------------------------------------------
/src/assets/images/profile-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/assets/images/profile-2.jpg
--------------------------------------------------------------------------------
/src/assets/images/profile-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kareem2002Shimes/Tailwind_Tutorial/e29d377dcd958222e58ea0f411f8c94e5339e7c2/src/assets/images/profile-3.jpg
--------------------------------------------------------------------------------
/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/FeatureBox.jsx:
--------------------------------------------------------------------------------
1 | function FeatureBox({ title, icon, desc }) {
2 | return (
3 |
4 |
9 |
{title}
10 |
{desc}
11 |
12 | );
13 | }
14 |
15 | export default FeatureBox;
16 |
--------------------------------------------------------------------------------
/src/components/Features.jsx:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import FeatureBox from "./FeatureBox";
3 |
4 | function Features() {
5 | const [items, setItems] = useState([
6 | {
7 | icon: "icon-access-anywhere.svg",
8 | title: "Acces your files,anywhere",
9 | desc: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut sed beatae, laboriosam enim voluptatum quia.",
10 | },
11 | {
12 | icon: "icon-security.svg",
13 | title: "Security you can trust",
14 | desc: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut sed beatae, laboriosam enim voluptatum quia.",
15 | },
16 | {
17 | icon: "icon-collaboration.svg",
18 | title: "Real-time collaboration",
19 | desc: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut sed beatae, laboriosam enim voluptatum quia.",
20 | },
21 | {
22 | icon: "icon-any-file.svg",
23 | title: "Store any type of file",
24 | desc: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut sed beatae, laboriosam enim voluptatum quia.",
25 | },
26 | ]);
27 | return (
28 |
29 |
30 |
34 | {items.map((item) => (
35 |
41 | ))}
42 |
43 |
44 |
45 | );
46 | }
47 | export default Features;
48 |
--------------------------------------------------------------------------------
/src/components/Footer.jsx:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import { Link } from "react-router-dom";
3 | import { FaFacebookF, FaTwitter, FaInstagram } from "react-icons/fa";
4 |
5 | function Footer() {
6 | const [contact, setContact] = useState([
7 | { icon: "icon-phone.svg", text: "+20121212121" },
8 | { icon: "icon-email.svg", text: "example@fylo.com" },
9 | ]);
10 | const [links, setLinks] = useState([
11 | "About Us",
12 | "Contact Us",
13 | "Jobs",
14 | "Terms",
15 | "Press",
16 | "Privacy",
17 | "Blog",
18 | ]);
19 | const [socialIcons, setSocialIcons] = useState([
20 | "facebook",
21 | "twitter",
22 | "instagram",
23 | ]);
24 | return (
25 |
26 |
27 |
28 |
33 |
34 |
35 |
36 |
41 |
42 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum
43 | nisi dignissimos unde ipsam modi facilis nam magni, assumenda ad
44 | fuga.
45 |
46 |
47 |
48 | {contact.map((item) => (
49 |
53 |
58 |
{item.text}
59 |
60 | ))}
61 |
62 |
63 | {links.map((item) => (
64 |
65 |
69 | {item}
70 |
71 |
72 | ))}
73 |
74 |
91 |
92 |
93 |
94 | );
95 | }
96 |
97 | export default Footer;
98 |
--------------------------------------------------------------------------------
/src/components/GetStarted.jsx:
--------------------------------------------------------------------------------
1 | function GetStarted() {
2 | return (
3 |
4 |
5 |
6 |
7 |
8 | Get early access today
9 |
10 |
11 | Lorem ipsum dolor sit amet consectetur, adipisicing elit. A,
12 | tempore? Vero adipisci eveniet voluptatibus cupiditate!
13 |
14 |
27 |
28 |
29 |
30 |
31 | );
32 | }
33 |
34 | export default GetStarted;
35 |
--------------------------------------------------------------------------------
/src/components/Header.jsx:
--------------------------------------------------------------------------------
1 | import { Link } from "react-router-dom";
2 | import { useEffect, useRef, useState } from "react";
3 | function Header() {
4 | const [links, setLinks] = useState(["Features", "Team", "Signin"]);
5 | const headerRef = useRef();
6 | useEffect(() => {
7 | window.addEventListener("scroll", () => {
8 | if (window.scrollY > 100) {
9 | headerRef.current.style.background = "#0c1524";
10 | headerRef.current.style.padding = "20px 0";
11 | } else {
12 | headerRef.current.style.background = "transparent";
13 | headerRef.current.style.padding = "60px 0";
14 | }
15 | });
16 | }, []);
17 | return (
18 |
22 |
23 |
24 |
29 |
30 |
31 |
32 | {links.map((link) => (
33 |
34 |
38 | {link}
39 |
40 |
41 | ))}
42 |
43 |
44 |
45 |
46 | );
47 | }
48 |
49 | export default Header;
50 |
--------------------------------------------------------------------------------
/src/components/Landing.jsx:
--------------------------------------------------------------------------------
1 | import { Link } from "react-router-dom";
2 | import LandingImg from "/src/assets/images/landing-img.png";
3 | function Landing() {
4 | return (
5 |
6 |
7 |
8 |
9 |
14 |
15 |
16 |
17 | All your files in one secure location,
18 |
19 | accessible anywhere.
20 |
21 |
22 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias
23 | iste deserunt totam itaque nisi veniam voluptas vel, eos aliquam
24 | nulla impedit commodi.
25 |
26 |
27 |
31 | Get Started
32 |
33 |
34 |
35 |
36 |
40 |
41 |
42 | );
43 | }
44 |
45 | export default Landing;
46 |
--------------------------------------------------------------------------------
/src/components/Layout.jsx:
--------------------------------------------------------------------------------
1 | import { Fragment } from "react";
2 | import Header from "./Header";
3 | import { Outlet } from "react-router-dom";
4 | import Footer from "./Footer";
5 |
6 | function Layout() {
7 | return (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | );
16 | }
17 |
18 | export default Layout;
19 |
--------------------------------------------------------------------------------
/src/components/StayProductive.jsx:
--------------------------------------------------------------------------------
1 | import { Link } from "react-router-dom";
2 | import ArrowImg from "/src/assets/images/icon-arrow.svg";
3 | import StayProductiveImg from "/src/assets/images/illustration-stay-productive.png";
4 | function StayProductive() {
5 | return (
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Stay productive,
14 |
15 | wherever you are
16 |
17 |
18 |
19 | Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolore
20 | excepturi incidunt quo deserunt quidem accusamus iure ab earum
21 | reprehenderit debitis!
22 |
23 |
24 | Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolore
25 | excepturi incidunt quo deserunt quidem accusamus iure ab earum
26 | reprehenderit debitis!
27 |
28 |
29 |
33 | See how Fylo works
34 |
39 |
40 |
41 |
42 |
43 | );
44 | }
45 |
46 | export default StayProductive;
47 |
--------------------------------------------------------------------------------
/src/components/TestimonialBox.jsx:
--------------------------------------------------------------------------------
1 | function TestimonialBox({ image, desc, name, position }) {
2 | return (
3 |
4 |
5 | {desc}
6 |
7 |
8 |
12 |
13 |
{name}
14 |
{position}
15 |
16 |
17 |
18 | );
19 | }
20 |
21 | export default TestimonialBox;
22 |
--------------------------------------------------------------------------------
/src/components/Testimonials.jsx:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import TestimonialBox from "./TestimonialBox";
3 |
4 | function Testimonials() {
5 | const [testData, setTestData] = useState([
6 | {
7 | id: 1,
8 | desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Sed, aliquid. Cum quis animi repudiandae dolorum dolor qui, ducimus minus. Pariatur laboriosam quae numquam illo nisi quod! Quis, reprehenderit. Debitis, officiis!",
9 | image: "profile-1.jpg",
10 | position: "Founder & CEO, Huddle",
11 | name: "Ahmed",
12 | },
13 | {
14 | id: 2,
15 | desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Sed, aliquid. Cum quis animi repudiandae dolorum dolor qui, ducimus minus. Pariatur laboriosam quae numquam illo nisi quod! Quis, reprehenderit. Debitis, officiis!",
16 | image: "profile-2.jpg",
17 | position: "Founder & CEO, Huddle",
18 | name: "Mohamed",
19 | },
20 | {
21 | id: 3,
22 | desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Sed, aliquid. Cum quis animi repudiandae dolorum dolor qui, ducimus minus. Pariatur laboriosam quae numquam illo nisi quod! Quis, reprehenderit. Debitis, officiis!",
23 | image: "profile-3.jpg",
24 | position: "Founder & CEO, Huddle",
25 | name: "Eman",
26 | },
27 | ]);
28 | return (
29 |
30 |
31 |
32 |
33 |
34 |
35 | {testData.map((item) => (
36 |
43 | ))}
44 |
45 |
46 |
47 | );
48 | }
49 |
50 | export default Testimonials;
51 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @layer {
6 | .container {
7 | @apply px-[30px] mx-auto;
8 | }
9 | .element-center {
10 | @apply flex justify-center items-center;
11 | }
12 | .btn {
13 | @apply bg-[#42b0d1] hover:bg-[#8cdae4] transition-all duration-200;
14 | }
15 | }
16 |
17 | body {
18 | font-family: "Raleway", sans-serif;
19 | background-color: #181e2a;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 | import './index.css'
5 |
6 | ReactDOM.createRoot(document.getElementById('root')).render(
7 |
8 |
9 | ,
10 | )
11 |
--------------------------------------------------------------------------------
/src/pages/Home.jsx:
--------------------------------------------------------------------------------
1 | import Features from "../components/Features";
2 | import StayProductive from "../components/StayProductive";
3 | import Landing from "../components/Landing";
4 | import { Fragment } from "react";
5 | import Testimonials from "../components/Testimonials";
6 | import GetStarted from "../components/GetStarted";
7 |
8 | function Home() {
9 | return (
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | );
18 | }
19 | export default Home;
20 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | export default {
3 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
4 | theme: {
5 | extend: {
6 | keyframes: {
7 | moveRight: {
8 | "0%": { transform: "translateX(0)" },
9 | "50%": { transform: "translateX(10px)" },
10 | "100%": { transform: "translateX(0)" },
11 | },
12 | },
13 | animation: {
14 | moveRight: "moveRight 1s ease-in-out infinite",
15 | },
16 | screens: {
17 | sm: "576px",
18 | md: "768px",
19 | lg: "992px",
20 | xl: "1200px",
21 | "2xl": "1400px",
22 | },
23 | colors: {
24 | primary: "#67dbda",
25 | },
26 | },
27 | },
28 | plugins: [],
29 | };
30 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react-swc'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [react()],
7 | })
8 |
--------------------------------------------------------------------------------