├── movie-mania ├── .gitignore ├── tailwind.config.js ├── src │ ├── input.css │ ├── index.html │ ├── data.js │ ├── index.js │ └── output.css ├── package.json ├── readme.md └── package-lock.json ├── .gitignore ├── otp-box ├── index.css ├── index.html ├── readme.md └── index.js └── README.md /movie-mania/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | node_modules 3 | -------------------------------------------------------------------------------- /movie-mania/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{html,js}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | } 9 | 10 | -------------------------------------------------------------------------------- /movie-mania/src/input.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer components { 6 | .card { 7 | background-color: rgb(230, 229, 229); 8 | border: 1px solid rgb(169, 164, 164); 9 | padding: 5px; 10 | border-radius: 10px; 11 | } 12 | } -------------------------------------------------------------------------------- /movie-mania/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "movie-mania", 3 | "version": "1.0.0", 4 | "description": "A Movie Dashboard", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [ 10 | "JavaScript", 11 | "TailwindCSS" 12 | ], 13 | "author": "Tapas Adhikary", 14 | "license": "MIT", 15 | "devDependencies": { 16 | "tailwindcss": "^3.4.4" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /otp-box/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: black; 3 | color: #ffffff; 4 | } 5 | 6 | .otp-box-container { 7 | display: flex; 8 | flex-direction: column; 9 | justify-content: center; 10 | align-items: center; 11 | } 12 | 13 | .otp-box-list { 14 | display: flex; 15 | } 16 | 17 | .otp-box-list .otp-box { 18 | width: 20px; 19 | margin-right: 5px; 20 | text-align: center; 21 | box-shadow: 1px 1px 1px 1px teal; 22 | border: none; 23 | border-radius: 5px; 24 | } 25 | 26 | .otp-validate-message { 27 | border-radius: 5px; 28 | padding: 2px; 29 | } 30 | 31 | .otp-validate-message.success { 32 | border: 1px solid #58dd10; 33 | color: green 34 | } 35 | 36 | .otp-validate-message.fail { 37 | border: 1px solid #e00d0d; 38 | color:red 39 | } -------------------------------------------------------------------------------- /movie-mania/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |...
21 | 22 | 23 |
8 |
9 | ## 🫶 Support
10 | Liked it? You can show your support with a STAR(⭐).
11 |
12 | ### Many Thanks to all the `Stargazers` who have supported this project with stars(⭐)
13 |
14 | [](https://github.com/tapascript/js-projects/stargazers)
15 |
16 | ### Sponsor My Work
17 |
18 | I am an independent educator who creates meaningful projects to teach programming. You can support me further by [sponsoring me on GitHub](https://github.com/sponsors/atapas).
19 |
20 |
21 | ## Running the app locally with VS Code
22 | - Clone/Fork the repository
23 | - Import the `otp-box` project into the VS Code Editor
24 | - Install Live Server Extension
25 | - Open up the `index.html` and run it with Live Server.
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # js-projects
2 |
3 | A bunch of projects built with plain JavaScript, HTML, and CSS. These projects are for educational purposes and used in the videos on the [tapaScript English](https://www.youtube.com/tapasadhikary) and [tapaScript বাংলা](https://www.youtube.com/@tapascript-bangla) channels.
4 |
5 | ## 🫶 Support
6 | Liked it? You can show your support with a STAR(⭐).
7 |
8 | ### Many Thanks to all the `Stargazers` who have supported this project with stars(⭐)
9 |
10 | [](https://github.com/tapascript/js-projects/stargazers)
11 |
12 | ### Sponsor My Work
13 |
14 | > I am an independent educator who creates meaningful projects to teach programming. You can support me further by [sponsoring me on GitHub](https://github.com/sponsors/atapas).
15 |
16 | ## TOC
17 |
18 | | Project | Video | Technology Stack |
19 | | ----------- | ----------- | ----------- |
20 | | [Generate, Validate, Expire OTP](https://github.com/tapascript/js-projects/tree/main/otp-box) | [Video Tutorial](https://www.youtube.com/watch?v=zjGwq0ep2Aw) - Bangla(বাংলা) | JavaScript, HTML, CSS |
21 | | [Movie Mania - Take One](https://github.com/tapascript/js-projects/tree/movie-mania-take-one) | [Video Tutorial](https://www.youtube.com/watch?v=zjGwq0ep2Aw) - Bangla(বাংলা) | JavaScript, HTML, TailwindCSS |
22 | | [Movie Mania - Take Two](https://github.com/tapascript/js-projects/tree/movie-mania-take-two) | [Video Tutorial](https://youtu.be/ag1LlKbz0Go) - Bangla(বাংলা) | JavaScript, HTML, TailwindCSS |
23 |
--------------------------------------------------------------------------------
/movie-mania/readme.md:
--------------------------------------------------------------------------------
1 | মনে করুন আপনি একজন online ভিডিও অ্যাপের মালিক। অ্যাপের নাম মুভি ম্যানিয়া। আপনি আপনার ড্যাশবোর্ডে আপনার অ্যাপের users দের উপরের কিছু তথ্য জানতে চান। ধরে নিন আপনার backend টিম আপনার UI টিমকে এইরকম একটি API response দিয়েছে যেখানে মুভির review এবং rating সম্পর্কে ইনফর্মেশন পাওয়া যায়।
2 |
3 | ```js
4 | const movieReviewData = [
5 | [
6 | {
7 | "id": '663a0a05bfe65e5778eedf58',
8 | "title": "The Avengers",
9 | "content": 'I am an Avenger fan... Big fan',
10 | "rating": 4,
11 | "by": "Peter D",
12 | "on": 1718508747000
13 |
14 | },
15 | {
16 | "id": '663a0a05bfe65e5778eedf58',
17 | "title": "The Avengers",
18 | "content": 'Great movie! Will watch again.',
19 | "rating": 5,
20 | "by": "Kiran K",
21 | "on": 1718076747000
22 | }
23 | ],
24 | [
25 | {
26 | "id": '664acd311387e2ad2e8be48b',
27 | "title": "Interstellar",
28 | "content": 'What a movie, super scifi',
29 | "rating": 5,
30 | "by": "Akram K",
31 | "on": 1718508775000
32 | }
33 | ]
34 | ];
35 | ```
36 |
37 | Response একটি জাভাস্ক্রিপ্ট Array, যার elements গুলো আবার Array। প্রথম Array টি movie `The Avengers`, এবং দ্বিতীয় Array টি movie `Interstellar` এর রিভিউ আর rating এর details দেয়।
38 |
39 | এইবারে আপনি আপনার UI টিমকে বললেন এই ফিচার গুলো implement করার জন্য
40 |
41 | - টোটাল কত মুভি আছে তার একটা সংখ্যা গণনা করতে হবে।
42 | - সব মুভির গড়(average) rating গণনা করতে হবে।
43 | - টোটাল কতগুলো রিভিউ পেয়েছে সব মুভি মিলিয়ে তার একটা সংখ্যা গণনা করতে হবে।
44 | - প্রত্যেকটি মুভির যেই যেই rating পেয়েছে সেই তথ্য গণনা করতে হবে।
45 | - প্রত্যেকটি মুভির যেই যেই রিভিউ পেয়েছে সেই তথ্য গণনা করতে হবে।
46 | - সামান্য HTML, TailwindCSS, JavaScript দিয়ে একটি ড্যাশবোর্ড বানাতে হবে যেখানে উপরের সব গণনার output দেখাতে হবে।
47 | - যদি নুতুন কোন মুভির রিভিউ বা rating এর details backend API response এ এড হয়, সেই ক্ষেত্রে গণনা বা ড্যাশবোর্ডের কোড change করা চলবে না।
--------------------------------------------------------------------------------
/otp-box/index.js:
--------------------------------------------------------------------------------
1 | let generatedOTP;
2 |
3 | const otpExpireElem = document.getElementById('otp-expires-id');
4 |
5 | function expireOTP() {
6 |
7 | const totalTime = 15000;
8 | const interval = 1000;
9 |
10 | let slice = totalTime / interval;
11 |
12 | const intvId = setInterval(function() {
13 | otpExpireElem.innerText = `OTP will expire in ${slice} seconds`;
14 | slice = slice - 1;
15 | }, interval);
16 |
17 | setTimeout(function() {
18 | otpExpireElem.innerText = "OTP Expired";
19 | clearInterval(intvId);
20 | generateOTP();
21 | }, totalTime);
22 |
23 | }
24 |
25 | function tackleOTPBoxes() {
26 | const boxes = document.getElementById("otp-box-list-id");
27 | boxes.addEventListener("input", function(e) {
28 | const target = e.target;
29 | const value = target.value;
30 |
31 | if(isNaN(value)) {
32 | target.value = "";
33 | return;
34 | }
35 |
36 | const nextElement = target.nextElementSibling;
37 |
38 | if(nextElement) {
39 | nextElement.focus();
40 | }
41 |
42 | validateOTP();
43 | })
44 | }
45 |
46 | function generateOTP() {
47 | generatedOTP = Math.floor(1000 + Math.random() * 9000);
48 | const otpElem = document.getElementById("geenerated-otp-id");
49 |
50 | otpElem.innerText = `Your OTP: ${generatedOTP}`;
51 |
52 | expireOTP();
53 | }
54 |
55 | function validateOTP() {
56 | let typedNumber = "";
57 | const boxListElem = document.getElementById("otp-box-list-id");
58 | [...boxListElem.children].forEach((elem) => {
59 | typedNumber = typedNumber + elem.value;
60 | });
61 |
62 | console.log(generatedOTP, typedNumber);
63 |
64 | const result = (generatedOTP === parseInt(typedNumber, 10));
65 | const resultElem = document.getElementById("result-id");
66 | if (result) {
67 | resultElem.innerText = "OTP has been validate successfully";
68 | resultElem.classList.remove("fail");
69 | resultElem.classList.add("success");
70 | } else {
71 | resultElem.innerText = "OTP is Invalid";
72 | resultElem.classList.remove("success");
73 | resultElem.classList.add("fail");
74 | }
75 |
76 |
77 | }
78 |
79 |
80 | function init() {
81 | console.log('JavaScript initialization done!!!')
82 | tackleOTPBoxes();
83 | setTimeout(generateOTP, 2000);
84 | }
85 |
86 | init();
--------------------------------------------------------------------------------
/movie-mania/src/index.js:
--------------------------------------------------------------------------------
1 | import { getMovieReviewData } from "./data.js";
2 |
3 | function init() {
4 | const movieReviewData = getMovieReviewData();
5 | paintStatistics(movieReviewData);
6 | paintMovieData(movieReviewData);
7 | }
8 |
9 | function paintStatistics(movieReviewData) {
10 |
11 | const flatReviewData = movieReviewData.flat();
12 |
13 | const totalMovies = movieReviewData.length;
14 | const totalReviews = flatReviewData.length;
15 | const totalRating = flatReviewData.reduce((acc, item) => {
16 | return acc + item.rating;
17 | }, 0);
18 | const avgRating = (totalRating/totalReviews).toFixed(2);
19 |
20 | const totalMoviesEl = document.getElementById("tMoviesId");
21 | addStat(totalMoviesEl, totalMovies);
22 |
23 | const avgRatingEL = document.getElementById("tAvgRatingId");
24 | addStat(avgRatingEL, avgRating);
25 |
26 | const totalReviewsEl = document.getElementById("tReviewsId");
27 | addStat(totalReviewsEl, totalReviews);
28 | }
29 |
30 | function addStat(elem, value) {
31 | const spanEL = document.createElement("span");
32 | spanEL.classList.add("text-6xl")
33 | spanEL.innerText = value;
34 | elem.appendChild(spanEL);
35 | }
36 |
37 | function paintMovieData(movieReviewData) {
38 | const flatReviewData = movieReviewData.flat();
39 | const movieListEL = document.querySelector("#movieListId UL");
40 |
41 | console.log(movieListEL);
42 |
43 | flatReviewData.map((movie) => {
44 | console.log(movie);
45 |
46 | const liElem = document.createElement("li");
47 | liElem.classList.add("card", "p-2", "my-2");
48 |
49 | const titleElem = document.createElement("p");
50 | titleElem.classList.add("text-xl", "mb-2");
51 | titleElem.innerText = `${movie.title} - ${movie.rating}`;
52 | liElem.appendChild(titleElem);
53 |
54 | const reviewElem = document.createElement("p");
55 | reviewElem.classList.add("mx-2", "mb-2");
56 | reviewElem.innerText = movie.content;
57 | liElem.appendChild(reviewElem);
58 |
59 | const byEleme = document.createElement("p");
60 | byEleme.classList.add("mx-2", "mb-2");
61 | byEleme.innerText = `By ${movie.by} on ${new Intl.DateTimeFormat('en-IN').format(movie.on)}`;
62 | liElem.appendChild(byEleme);
63 |
64 | movieListEL.appendChild(liElem);
65 | })
66 | }
67 |
68 | init();
69 |
70 |
--------------------------------------------------------------------------------
/movie-mania/src/output.css:
--------------------------------------------------------------------------------
1 | /*
2 | ! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com
3 | */
4 |
5 | /*
6 | 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
7 | 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
8 | */
9 |
10 | *,
11 | ::before,
12 | ::after {
13 | box-sizing: border-box;
14 | /* 1 */
15 | border-width: 0;
16 | /* 2 */
17 | border-style: solid;
18 | /* 2 */
19 | border-color: #e5e7eb;
20 | /* 2 */
21 | }
22 |
23 | ::before,
24 | ::after {
25 | --tw-content: '';
26 | }
27 |
28 | /*
29 | 1. Use a consistent sensible line-height in all browsers.
30 | 2. Prevent adjustments of font size after orientation changes in iOS.
31 | 3. Use a more readable tab size.
32 | 4. Use the user's configured `sans` font-family by default.
33 | 5. Use the user's configured `sans` font-feature-settings by default.
34 | 6. Use the user's configured `sans` font-variation-settings by default.
35 | 7. Disable tap highlights on iOS
36 | */
37 |
38 | html,
39 | :host {
40 | line-height: 1.5;
41 | /* 1 */
42 | -webkit-text-size-adjust: 100%;
43 | /* 2 */
44 | -moz-tab-size: 4;
45 | /* 3 */
46 | -o-tab-size: 4;
47 | tab-size: 4;
48 | /* 3 */
49 | font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
50 | /* 4 */
51 | font-feature-settings: normal;
52 | /* 5 */
53 | font-variation-settings: normal;
54 | /* 6 */
55 | -webkit-tap-highlight-color: transparent;
56 | /* 7 */
57 | }
58 |
59 | /*
60 | 1. Remove the margin in all browsers.
61 | 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
62 | */
63 |
64 | body {
65 | margin: 0;
66 | /* 1 */
67 | line-height: inherit;
68 | /* 2 */
69 | }
70 |
71 | /*
72 | 1. Add the correct height in Firefox.
73 | 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
74 | 3. Ensure horizontal rules are visible by default.
75 | */
76 |
77 | hr {
78 | height: 0;
79 | /* 1 */
80 | color: inherit;
81 | /* 2 */
82 | border-top-width: 1px;
83 | /* 3 */
84 | }
85 |
86 | /*
87 | Add the correct text decoration in Chrome, Edge, and Safari.
88 | */
89 |
90 | abbr:where([title]) {
91 | -webkit-text-decoration: underline dotted;
92 | text-decoration: underline dotted;
93 | }
94 |
95 | /*
96 | Remove the default font size and weight for headings.
97 | */
98 |
99 | h1,
100 | h2,
101 | h3,
102 | h4,
103 | h5,
104 | h6 {
105 | font-size: inherit;
106 | font-weight: inherit;
107 | }
108 |
109 | /*
110 | Reset links to optimize for opt-in styling instead of opt-out.
111 | */
112 |
113 | a {
114 | color: inherit;
115 | text-decoration: inherit;
116 | }
117 |
118 | /*
119 | Add the correct font weight in Edge and Safari.
120 | */
121 |
122 | b,
123 | strong {
124 | font-weight: bolder;
125 | }
126 |
127 | /*
128 | 1. Use the user's configured `mono` font-family by default.
129 | 2. Use the user's configured `mono` font-feature-settings by default.
130 | 3. Use the user's configured `mono` font-variation-settings by default.
131 | 4. Correct the odd `em` font sizing in all browsers.
132 | */
133 |
134 | code,
135 | kbd,
136 | samp,
137 | pre {
138 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
139 | /* 1 */
140 | font-feature-settings: normal;
141 | /* 2 */
142 | font-variation-settings: normal;
143 | /* 3 */
144 | font-size: 1em;
145 | /* 4 */
146 | }
147 |
148 | /*
149 | Add the correct font size in all browsers.
150 | */
151 |
152 | small {
153 | font-size: 80%;
154 | }
155 |
156 | /*
157 | Prevent `sub` and `sup` elements from affecting the line height in all browsers.
158 | */
159 |
160 | sub,
161 | sup {
162 | font-size: 75%;
163 | line-height: 0;
164 | position: relative;
165 | vertical-align: baseline;
166 | }
167 |
168 | sub {
169 | bottom: -0.25em;
170 | }
171 |
172 | sup {
173 | top: -0.5em;
174 | }
175 |
176 | /*
177 | 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
178 | 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
179 | 3. Remove gaps between table borders by default.
180 | */
181 |
182 | table {
183 | text-indent: 0;
184 | /* 1 */
185 | border-color: inherit;
186 | /* 2 */
187 | border-collapse: collapse;
188 | /* 3 */
189 | }
190 |
191 | /*
192 | 1. Change the font styles in all browsers.
193 | 2. Remove the margin in Firefox and Safari.
194 | 3. Remove default padding in all browsers.
195 | */
196 |
197 | button,
198 | input,
199 | optgroup,
200 | select,
201 | textarea {
202 | font-family: inherit;
203 | /* 1 */
204 | font-feature-settings: inherit;
205 | /* 1 */
206 | font-variation-settings: inherit;
207 | /* 1 */
208 | font-size: 100%;
209 | /* 1 */
210 | font-weight: inherit;
211 | /* 1 */
212 | line-height: inherit;
213 | /* 1 */
214 | letter-spacing: inherit;
215 | /* 1 */
216 | color: inherit;
217 | /* 1 */
218 | margin: 0;
219 | /* 2 */
220 | padding: 0;
221 | /* 3 */
222 | }
223 |
224 | /*
225 | Remove the inheritance of text transform in Edge and Firefox.
226 | */
227 |
228 | button,
229 | select {
230 | text-transform: none;
231 | }
232 |
233 | /*
234 | 1. Correct the inability to style clickable types in iOS and Safari.
235 | 2. Remove default button styles.
236 | */
237 |
238 | button,
239 | input:where([type='button']),
240 | input:where([type='reset']),
241 | input:where([type='submit']) {
242 | -webkit-appearance: button;
243 | /* 1 */
244 | background-color: transparent;
245 | /* 2 */
246 | background-image: none;
247 | /* 2 */
248 | }
249 |
250 | /*
251 | Use the modern Firefox focus style for all focusable elements.
252 | */
253 |
254 | :-moz-focusring {
255 | outline: auto;
256 | }
257 |
258 | /*
259 | Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
260 | */
261 |
262 | :-moz-ui-invalid {
263 | box-shadow: none;
264 | }
265 |
266 | /*
267 | Add the correct vertical alignment in Chrome and Firefox.
268 | */
269 |
270 | progress {
271 | vertical-align: baseline;
272 | }
273 |
274 | /*
275 | Correct the cursor style of increment and decrement buttons in Safari.
276 | */
277 |
278 | ::-webkit-inner-spin-button,
279 | ::-webkit-outer-spin-button {
280 | height: auto;
281 | }
282 |
283 | /*
284 | 1. Correct the odd appearance in Chrome and Safari.
285 | 2. Correct the outline style in Safari.
286 | */
287 |
288 | [type='search'] {
289 | -webkit-appearance: textfield;
290 | /* 1 */
291 | outline-offset: -2px;
292 | /* 2 */
293 | }
294 |
295 | /*
296 | Remove the inner padding in Chrome and Safari on macOS.
297 | */
298 |
299 | ::-webkit-search-decoration {
300 | -webkit-appearance: none;
301 | }
302 |
303 | /*
304 | 1. Correct the inability to style clickable types in iOS and Safari.
305 | 2. Change font properties to `inherit` in Safari.
306 | */
307 |
308 | ::-webkit-file-upload-button {
309 | -webkit-appearance: button;
310 | /* 1 */
311 | font: inherit;
312 | /* 2 */
313 | }
314 |
315 | /*
316 | Add the correct display in Chrome and Safari.
317 | */
318 |
319 | summary {
320 | display: list-item;
321 | }
322 |
323 | /*
324 | Removes the default spacing and border for appropriate elements.
325 | */
326 |
327 | blockquote,
328 | dl,
329 | dd,
330 | h1,
331 | h2,
332 | h3,
333 | h4,
334 | h5,
335 | h6,
336 | hr,
337 | figure,
338 | p,
339 | pre {
340 | margin: 0;
341 | }
342 |
343 | fieldset {
344 | margin: 0;
345 | padding: 0;
346 | }
347 |
348 | legend {
349 | padding: 0;
350 | }
351 |
352 | ol,
353 | ul,
354 | menu {
355 | list-style: none;
356 | margin: 0;
357 | padding: 0;
358 | }
359 |
360 | /*
361 | Reset default styling for dialogs.
362 | */
363 |
364 | dialog {
365 | padding: 0;
366 | }
367 |
368 | /*
369 | Prevent resizing textareas horizontally by default.
370 | */
371 |
372 | textarea {
373 | resize: vertical;
374 | }
375 |
376 | /*
377 | 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
378 | 2. Set the default placeholder color to the user's configured gray 400 color.
379 | */
380 |
381 | input::-moz-placeholder, textarea::-moz-placeholder {
382 | opacity: 1;
383 | /* 1 */
384 | color: #9ca3af;
385 | /* 2 */
386 | }
387 |
388 | input::placeholder,
389 | textarea::placeholder {
390 | opacity: 1;
391 | /* 1 */
392 | color: #9ca3af;
393 | /* 2 */
394 | }
395 |
396 | /*
397 | Set the default cursor for buttons.
398 | */
399 |
400 | button,
401 | [role="button"] {
402 | cursor: pointer;
403 | }
404 |
405 | /*
406 | Make sure disabled buttons don't get the pointer cursor.
407 | */
408 |
409 | :disabled {
410 | cursor: default;
411 | }
412 |
413 | /*
414 | 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
415 | 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
416 | This can trigger a poorly considered lint error in some tools but is included by design.
417 | */
418 |
419 | img,
420 | svg,
421 | video,
422 | canvas,
423 | audio,
424 | iframe,
425 | embed,
426 | object {
427 | display: block;
428 | /* 1 */
429 | vertical-align: middle;
430 | /* 2 */
431 | }
432 |
433 | /*
434 | Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
435 | */
436 |
437 | img,
438 | video {
439 | max-width: 100%;
440 | height: auto;
441 | }
442 |
443 | /* Make elements with the HTML hidden attribute stay hidden by default */
444 |
445 | [hidden] {
446 | display: none;
447 | }
448 |
449 | *, ::before, ::after {
450 | --tw-border-spacing-x: 0;
451 | --tw-border-spacing-y: 0;
452 | --tw-translate-x: 0;
453 | --tw-translate-y: 0;
454 | --tw-rotate: 0;
455 | --tw-skew-x: 0;
456 | --tw-skew-y: 0;
457 | --tw-scale-x: 1;
458 | --tw-scale-y: 1;
459 | --tw-pan-x: ;
460 | --tw-pan-y: ;
461 | --tw-pinch-zoom: ;
462 | --tw-scroll-snap-strictness: proximity;
463 | --tw-gradient-from-position: ;
464 | --tw-gradient-via-position: ;
465 | --tw-gradient-to-position: ;
466 | --tw-ordinal: ;
467 | --tw-slashed-zero: ;
468 | --tw-numeric-figure: ;
469 | --tw-numeric-spacing: ;
470 | --tw-numeric-fraction: ;
471 | --tw-ring-inset: ;
472 | --tw-ring-offset-width: 0px;
473 | --tw-ring-offset-color: #fff;
474 | --tw-ring-color: rgb(59 130 246 / 0.5);
475 | --tw-ring-offset-shadow: 0 0 #0000;
476 | --tw-ring-shadow: 0 0 #0000;
477 | --tw-shadow: 0 0 #0000;
478 | --tw-shadow-colored: 0 0 #0000;
479 | --tw-blur: ;
480 | --tw-brightness: ;
481 | --tw-contrast: ;
482 | --tw-grayscale: ;
483 | --tw-hue-rotate: ;
484 | --tw-invert: ;
485 | --tw-saturate: ;
486 | --tw-sepia: ;
487 | --tw-drop-shadow: ;
488 | --tw-backdrop-blur: ;
489 | --tw-backdrop-brightness: ;
490 | --tw-backdrop-contrast: ;
491 | --tw-backdrop-grayscale: ;
492 | --tw-backdrop-hue-rotate: ;
493 | --tw-backdrop-invert: ;
494 | --tw-backdrop-opacity: ;
495 | --tw-backdrop-saturate: ;
496 | --tw-backdrop-sepia: ;
497 | --tw-contain-size: ;
498 | --tw-contain-layout: ;
499 | --tw-contain-paint: ;
500 | --tw-contain-style: ;
501 | }
502 |
503 | ::backdrop {
504 | --tw-border-spacing-x: 0;
505 | --tw-border-spacing-y: 0;
506 | --tw-translate-x: 0;
507 | --tw-translate-y: 0;
508 | --tw-rotate: 0;
509 | --tw-skew-x: 0;
510 | --tw-skew-y: 0;
511 | --tw-scale-x: 1;
512 | --tw-scale-y: 1;
513 | --tw-pan-x: ;
514 | --tw-pan-y: ;
515 | --tw-pinch-zoom: ;
516 | --tw-scroll-snap-strictness: proximity;
517 | --tw-gradient-from-position: ;
518 | --tw-gradient-via-position: ;
519 | --tw-gradient-to-position: ;
520 | --tw-ordinal: ;
521 | --tw-slashed-zero: ;
522 | --tw-numeric-figure: ;
523 | --tw-numeric-spacing: ;
524 | --tw-numeric-fraction: ;
525 | --tw-ring-inset: ;
526 | --tw-ring-offset-width: 0px;
527 | --tw-ring-offset-color: #fff;
528 | --tw-ring-color: rgb(59 130 246 / 0.5);
529 | --tw-ring-offset-shadow: 0 0 #0000;
530 | --tw-ring-shadow: 0 0 #0000;
531 | --tw-shadow: 0 0 #0000;
532 | --tw-shadow-colored: 0 0 #0000;
533 | --tw-blur: ;
534 | --tw-brightness: ;
535 | --tw-contrast: ;
536 | --tw-grayscale: ;
537 | --tw-hue-rotate: ;
538 | --tw-invert: ;
539 | --tw-saturate: ;
540 | --tw-sepia: ;
541 | --tw-drop-shadow: ;
542 | --tw-backdrop-blur: ;
543 | --tw-backdrop-brightness: ;
544 | --tw-backdrop-contrast: ;
545 | --tw-backdrop-grayscale: ;
546 | --tw-backdrop-hue-rotate: ;
547 | --tw-backdrop-invert: ;
548 | --tw-backdrop-opacity: ;
549 | --tw-backdrop-saturate: ;
550 | --tw-backdrop-sepia: ;
551 | --tw-contain-size: ;
552 | --tw-contain-layout: ;
553 | --tw-contain-paint: ;
554 | --tw-contain-style: ;
555 | }
556 |
557 | .card {
558 | background-color: rgb(230, 229, 229);
559 | border: 1px solid rgb(169, 164, 164);
560 | padding: 5px;
561 | border-radius: 10px;
562 | }
563 |
564 | .my-2 {
565 | margin-top: 0.5rem;
566 | margin-bottom: 0.5rem;
567 | }
568 |
569 | .mx-2 {
570 | margin-left: 0.5rem;
571 | margin-right: 0.5rem;
572 | }
573 |
574 | .mb-2 {
575 | margin-bottom: 0.5rem;
576 | }
577 |
578 | .flex {
579 | display: flex;
580 | }
581 |
582 | .flex-col {
583 | flex-direction: column;
584 | }
585 |
586 | .justify-around {
587 | justify-content: space-around;
588 | }
589 |
590 | .bg-black {
591 | --tw-bg-opacity: 1;
592 | background-color: rgb(0 0 0 / var(--tw-bg-opacity));
593 | }
594 |
595 | .p-2 {
596 | padding: 0.5rem;
597 | }
598 |
599 | .p-8 {
600 | padding: 2rem;
601 | }
602 |
603 | .p-4 {
604 | padding: 1rem;
605 | }
606 |
607 | .text-3xl {
608 | font-size: 1.875rem;
609 | line-height: 2.25rem;
610 | }
611 |
612 | .text-2xl {
613 | font-size: 1.5rem;
614 | line-height: 2rem;
615 | }
616 |
617 | .text-xl {
618 | font-size: 1.25rem;
619 | line-height: 1.75rem;
620 | }
621 |
622 | .text-6xl {
623 | font-size: 3.75rem;
624 | line-height: 1;
625 | }
626 |
627 | .text-white {
628 | --tw-text-opacity: 1;
629 | color: rgb(255 255 255 / var(--tw-text-opacity));
630 | }
--------------------------------------------------------------------------------
/movie-mania/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "movie-mania",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "movie-mania",
9 | "version": "1.0.0",
10 | "license": "MIT",
11 | "devDependencies": {
12 | "tailwindcss": "^3.4.4"
13 | }
14 | },
15 | "node_modules/@alloc/quick-lru": {
16 | "version": "5.2.0",
17 | "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
18 | "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
19 | "dev": true,
20 | "license": "MIT",
21 | "engines": {
22 | "node": ">=10"
23 | },
24 | "funding": {
25 | "url": "https://github.com/sponsors/sindresorhus"
26 | }
27 | },
28 | "node_modules/@isaacs/cliui": {
29 | "version": "8.0.2",
30 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
31 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
32 | "dev": true,
33 | "license": "ISC",
34 | "dependencies": {
35 | "string-width": "^5.1.2",
36 | "string-width-cjs": "npm:string-width@^4.2.0",
37 | "strip-ansi": "^7.0.1",
38 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
39 | "wrap-ansi": "^8.1.0",
40 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
41 | },
42 | "engines": {
43 | "node": ">=12"
44 | }
45 | },
46 | "node_modules/@jridgewell/gen-mapping": {
47 | "version": "0.3.5",
48 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
49 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
50 | "dev": true,
51 | "license": "MIT",
52 | "dependencies": {
53 | "@jridgewell/set-array": "^1.2.1",
54 | "@jridgewell/sourcemap-codec": "^1.4.10",
55 | "@jridgewell/trace-mapping": "^0.3.24"
56 | },
57 | "engines": {
58 | "node": ">=6.0.0"
59 | }
60 | },
61 | "node_modules/@jridgewell/resolve-uri": {
62 | "version": "3.1.2",
63 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
64 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
65 | "dev": true,
66 | "license": "MIT",
67 | "engines": {
68 | "node": ">=6.0.0"
69 | }
70 | },
71 | "node_modules/@jridgewell/set-array": {
72 | "version": "1.2.1",
73 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
74 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
75 | "dev": true,
76 | "license": "MIT",
77 | "engines": {
78 | "node": ">=6.0.0"
79 | }
80 | },
81 | "node_modules/@jridgewell/sourcemap-codec": {
82 | "version": "1.4.15",
83 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
84 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
85 | "dev": true,
86 | "license": "MIT"
87 | },
88 | "node_modules/@jridgewell/trace-mapping": {
89 | "version": "0.3.25",
90 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
91 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
92 | "dev": true,
93 | "license": "MIT",
94 | "dependencies": {
95 | "@jridgewell/resolve-uri": "^3.1.0",
96 | "@jridgewell/sourcemap-codec": "^1.4.14"
97 | }
98 | },
99 | "node_modules/@nodelib/fs.scandir": {
100 | "version": "2.1.5",
101 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
102 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
103 | "dev": true,
104 | "license": "MIT",
105 | "dependencies": {
106 | "@nodelib/fs.stat": "2.0.5",
107 | "run-parallel": "^1.1.9"
108 | },
109 | "engines": {
110 | "node": ">= 8"
111 | }
112 | },
113 | "node_modules/@nodelib/fs.stat": {
114 | "version": "2.0.5",
115 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
116 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
117 | "dev": true,
118 | "license": "MIT",
119 | "engines": {
120 | "node": ">= 8"
121 | }
122 | },
123 | "node_modules/@nodelib/fs.walk": {
124 | "version": "1.2.8",
125 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
126 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
127 | "dev": true,
128 | "license": "MIT",
129 | "dependencies": {
130 | "@nodelib/fs.scandir": "2.1.5",
131 | "fastq": "^1.6.0"
132 | },
133 | "engines": {
134 | "node": ">= 8"
135 | }
136 | },
137 | "node_modules/@pkgjs/parseargs": {
138 | "version": "0.11.0",
139 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
140 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
141 | "dev": true,
142 | "license": "MIT",
143 | "optional": true,
144 | "engines": {
145 | "node": ">=14"
146 | }
147 | },
148 | "node_modules/ansi-regex": {
149 | "version": "6.0.1",
150 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
151 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
152 | "dev": true,
153 | "license": "MIT",
154 | "engines": {
155 | "node": ">=12"
156 | },
157 | "funding": {
158 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
159 | }
160 | },
161 | "node_modules/ansi-styles": {
162 | "version": "6.2.1",
163 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
164 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
165 | "dev": true,
166 | "license": "MIT",
167 | "engines": {
168 | "node": ">=12"
169 | },
170 | "funding": {
171 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
172 | }
173 | },
174 | "node_modules/any-promise": {
175 | "version": "1.3.0",
176 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
177 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
178 | "dev": true,
179 | "license": "MIT"
180 | },
181 | "node_modules/anymatch": {
182 | "version": "3.1.3",
183 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
184 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
185 | "dev": true,
186 | "license": "ISC",
187 | "dependencies": {
188 | "normalize-path": "^3.0.0",
189 | "picomatch": "^2.0.4"
190 | },
191 | "engines": {
192 | "node": ">= 8"
193 | }
194 | },
195 | "node_modules/arg": {
196 | "version": "5.0.2",
197 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
198 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
199 | "dev": true,
200 | "license": "MIT"
201 | },
202 | "node_modules/balanced-match": {
203 | "version": "1.0.2",
204 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
205 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
206 | "dev": true,
207 | "license": "MIT"
208 | },
209 | "node_modules/binary-extensions": {
210 | "version": "2.3.0",
211 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
212 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
213 | "dev": true,
214 | "license": "MIT",
215 | "engines": {
216 | "node": ">=8"
217 | },
218 | "funding": {
219 | "url": "https://github.com/sponsors/sindresorhus"
220 | }
221 | },
222 | "node_modules/brace-expansion": {
223 | "version": "2.0.1",
224 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
225 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
226 | "dev": true,
227 | "license": "MIT",
228 | "dependencies": {
229 | "balanced-match": "^1.0.0"
230 | }
231 | },
232 | "node_modules/braces": {
233 | "version": "3.0.3",
234 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
235 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
236 | "dev": true,
237 | "license": "MIT",
238 | "dependencies": {
239 | "fill-range": "^7.1.1"
240 | },
241 | "engines": {
242 | "node": ">=8"
243 | }
244 | },
245 | "node_modules/camelcase-css": {
246 | "version": "2.0.1",
247 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
248 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
249 | "dev": true,
250 | "license": "MIT",
251 | "engines": {
252 | "node": ">= 6"
253 | }
254 | },
255 | "node_modules/chokidar": {
256 | "version": "3.6.0",
257 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
258 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
259 | "dev": true,
260 | "license": "MIT",
261 | "dependencies": {
262 | "anymatch": "~3.1.2",
263 | "braces": "~3.0.2",
264 | "glob-parent": "~5.1.2",
265 | "is-binary-path": "~2.1.0",
266 | "is-glob": "~4.0.1",
267 | "normalize-path": "~3.0.0",
268 | "readdirp": "~3.6.0"
269 | },
270 | "engines": {
271 | "node": ">= 8.10.0"
272 | },
273 | "funding": {
274 | "url": "https://paulmillr.com/funding/"
275 | },
276 | "optionalDependencies": {
277 | "fsevents": "~2.3.2"
278 | }
279 | },
280 | "node_modules/chokidar/node_modules/glob-parent": {
281 | "version": "5.1.2",
282 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
283 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
284 | "dev": true,
285 | "license": "ISC",
286 | "dependencies": {
287 | "is-glob": "^4.0.1"
288 | },
289 | "engines": {
290 | "node": ">= 6"
291 | }
292 | },
293 | "node_modules/color-convert": {
294 | "version": "2.0.1",
295 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
296 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
297 | "dev": true,
298 | "license": "MIT",
299 | "dependencies": {
300 | "color-name": "~1.1.4"
301 | },
302 | "engines": {
303 | "node": ">=7.0.0"
304 | }
305 | },
306 | "node_modules/color-name": {
307 | "version": "1.1.4",
308 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
309 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
310 | "dev": true,
311 | "license": "MIT"
312 | },
313 | "node_modules/commander": {
314 | "version": "4.1.1",
315 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
316 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
317 | "dev": true,
318 | "license": "MIT",
319 | "engines": {
320 | "node": ">= 6"
321 | }
322 | },
323 | "node_modules/cross-spawn": {
324 | "version": "7.0.3",
325 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
326 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
327 | "dev": true,
328 | "license": "MIT",
329 | "dependencies": {
330 | "path-key": "^3.1.0",
331 | "shebang-command": "^2.0.0",
332 | "which": "^2.0.1"
333 | },
334 | "engines": {
335 | "node": ">= 8"
336 | }
337 | },
338 | "node_modules/cssesc": {
339 | "version": "3.0.0",
340 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
341 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
342 | "dev": true,
343 | "license": "MIT",
344 | "bin": {
345 | "cssesc": "bin/cssesc"
346 | },
347 | "engines": {
348 | "node": ">=4"
349 | }
350 | },
351 | "node_modules/didyoumean": {
352 | "version": "1.2.2",
353 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
354 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
355 | "dev": true,
356 | "license": "Apache-2.0"
357 | },
358 | "node_modules/dlv": {
359 | "version": "1.1.3",
360 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
361 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
362 | "dev": true,
363 | "license": "MIT"
364 | },
365 | "node_modules/eastasianwidth": {
366 | "version": "0.2.0",
367 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
368 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
369 | "dev": true,
370 | "license": "MIT"
371 | },
372 | "node_modules/emoji-regex": {
373 | "version": "9.2.2",
374 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
375 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
376 | "dev": true,
377 | "license": "MIT"
378 | },
379 | "node_modules/fast-glob": {
380 | "version": "3.3.2",
381 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
382 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
383 | "dev": true,
384 | "license": "MIT",
385 | "dependencies": {
386 | "@nodelib/fs.stat": "^2.0.2",
387 | "@nodelib/fs.walk": "^1.2.3",
388 | "glob-parent": "^5.1.2",
389 | "merge2": "^1.3.0",
390 | "micromatch": "^4.0.4"
391 | },
392 | "engines": {
393 | "node": ">=8.6.0"
394 | }
395 | },
396 | "node_modules/fast-glob/node_modules/glob-parent": {
397 | "version": "5.1.2",
398 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
399 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
400 | "dev": true,
401 | "license": "ISC",
402 | "dependencies": {
403 | "is-glob": "^4.0.1"
404 | },
405 | "engines": {
406 | "node": ">= 6"
407 | }
408 | },
409 | "node_modules/fastq": {
410 | "version": "1.17.1",
411 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
412 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
413 | "dev": true,
414 | "license": "ISC",
415 | "dependencies": {
416 | "reusify": "^1.0.4"
417 | }
418 | },
419 | "node_modules/fill-range": {
420 | "version": "7.1.1",
421 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
422 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
423 | "dev": true,
424 | "license": "MIT",
425 | "dependencies": {
426 | "to-regex-range": "^5.0.1"
427 | },
428 | "engines": {
429 | "node": ">=8"
430 | }
431 | },
432 | "node_modules/foreground-child": {
433 | "version": "3.2.1",
434 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
435 | "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
436 | "dev": true,
437 | "license": "ISC",
438 | "dependencies": {
439 | "cross-spawn": "^7.0.0",
440 | "signal-exit": "^4.0.1"
441 | },
442 | "engines": {
443 | "node": ">=14"
444 | },
445 | "funding": {
446 | "url": "https://github.com/sponsors/isaacs"
447 | }
448 | },
449 | "node_modules/fsevents": {
450 | "version": "2.3.3",
451 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
452 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
453 | "dev": true,
454 | "hasInstallScript": true,
455 | "license": "MIT",
456 | "optional": true,
457 | "os": [
458 | "darwin"
459 | ],
460 | "engines": {
461 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
462 | }
463 | },
464 | "node_modules/function-bind": {
465 | "version": "1.1.2",
466 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
467 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
468 | "dev": true,
469 | "license": "MIT",
470 | "funding": {
471 | "url": "https://github.com/sponsors/ljharb"
472 | }
473 | },
474 | "node_modules/glob": {
475 | "version": "10.4.1",
476 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
477 | "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
478 | "dev": true,
479 | "license": "ISC",
480 | "dependencies": {
481 | "foreground-child": "^3.1.0",
482 | "jackspeak": "^3.1.2",
483 | "minimatch": "^9.0.4",
484 | "minipass": "^7.1.2",
485 | "path-scurry": "^1.11.1"
486 | },
487 | "bin": {
488 | "glob": "dist/esm/bin.mjs"
489 | },
490 | "engines": {
491 | "node": ">=16 || 14 >=14.18"
492 | },
493 | "funding": {
494 | "url": "https://github.com/sponsors/isaacs"
495 | }
496 | },
497 | "node_modules/glob-parent": {
498 | "version": "6.0.2",
499 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
500 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
501 | "dev": true,
502 | "license": "ISC",
503 | "dependencies": {
504 | "is-glob": "^4.0.3"
505 | },
506 | "engines": {
507 | "node": ">=10.13.0"
508 | }
509 | },
510 | "node_modules/hasown": {
511 | "version": "2.0.2",
512 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
513 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
514 | "dev": true,
515 | "license": "MIT",
516 | "dependencies": {
517 | "function-bind": "^1.1.2"
518 | },
519 | "engines": {
520 | "node": ">= 0.4"
521 | }
522 | },
523 | "node_modules/is-binary-path": {
524 | "version": "2.1.0",
525 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
526 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
527 | "dev": true,
528 | "license": "MIT",
529 | "dependencies": {
530 | "binary-extensions": "^2.0.0"
531 | },
532 | "engines": {
533 | "node": ">=8"
534 | }
535 | },
536 | "node_modules/is-core-module": {
537 | "version": "2.13.1",
538 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
539 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
540 | "dev": true,
541 | "license": "MIT",
542 | "dependencies": {
543 | "hasown": "^2.0.0"
544 | },
545 | "funding": {
546 | "url": "https://github.com/sponsors/ljharb"
547 | }
548 | },
549 | "node_modules/is-extglob": {
550 | "version": "2.1.1",
551 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
552 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
553 | "dev": true,
554 | "license": "MIT",
555 | "engines": {
556 | "node": ">=0.10.0"
557 | }
558 | },
559 | "node_modules/is-fullwidth-code-point": {
560 | "version": "3.0.0",
561 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
562 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
563 | "dev": true,
564 | "license": "MIT",
565 | "engines": {
566 | "node": ">=8"
567 | }
568 | },
569 | "node_modules/is-glob": {
570 | "version": "4.0.3",
571 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
572 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
573 | "dev": true,
574 | "license": "MIT",
575 | "dependencies": {
576 | "is-extglob": "^2.1.1"
577 | },
578 | "engines": {
579 | "node": ">=0.10.0"
580 | }
581 | },
582 | "node_modules/is-number": {
583 | "version": "7.0.0",
584 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
585 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
586 | "dev": true,
587 | "license": "MIT",
588 | "engines": {
589 | "node": ">=0.12.0"
590 | }
591 | },
592 | "node_modules/isexe": {
593 | "version": "2.0.0",
594 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
595 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
596 | "dev": true,
597 | "license": "ISC"
598 | },
599 | "node_modules/jackspeak": {
600 | "version": "3.4.0",
601 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
602 | "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
603 | "dev": true,
604 | "license": "BlueOak-1.0.0",
605 | "dependencies": {
606 | "@isaacs/cliui": "^8.0.2"
607 | },
608 | "engines": {
609 | "node": ">=14"
610 | },
611 | "funding": {
612 | "url": "https://github.com/sponsors/isaacs"
613 | },
614 | "optionalDependencies": {
615 | "@pkgjs/parseargs": "^0.11.0"
616 | }
617 | },
618 | "node_modules/jiti": {
619 | "version": "1.21.6",
620 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
621 | "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
622 | "dev": true,
623 | "license": "MIT",
624 | "bin": {
625 | "jiti": "bin/jiti.js"
626 | }
627 | },
628 | "node_modules/lilconfig": {
629 | "version": "2.1.0",
630 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
631 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
632 | "dev": true,
633 | "license": "MIT",
634 | "engines": {
635 | "node": ">=10"
636 | }
637 | },
638 | "node_modules/lines-and-columns": {
639 | "version": "1.2.4",
640 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
641 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
642 | "dev": true,
643 | "license": "MIT"
644 | },
645 | "node_modules/lru-cache": {
646 | "version": "10.2.2",
647 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
648 | "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
649 | "dev": true,
650 | "license": "ISC",
651 | "engines": {
652 | "node": "14 || >=16.14"
653 | }
654 | },
655 | "node_modules/merge2": {
656 | "version": "1.4.1",
657 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
658 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
659 | "dev": true,
660 | "license": "MIT",
661 | "engines": {
662 | "node": ">= 8"
663 | }
664 | },
665 | "node_modules/micromatch": {
666 | "version": "4.0.7",
667 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
668 | "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
669 | "dev": true,
670 | "license": "MIT",
671 | "dependencies": {
672 | "braces": "^3.0.3",
673 | "picomatch": "^2.3.1"
674 | },
675 | "engines": {
676 | "node": ">=8.6"
677 | }
678 | },
679 | "node_modules/minimatch": {
680 | "version": "9.0.4",
681 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
682 | "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
683 | "dev": true,
684 | "license": "ISC",
685 | "dependencies": {
686 | "brace-expansion": "^2.0.1"
687 | },
688 | "engines": {
689 | "node": ">=16 || 14 >=14.17"
690 | },
691 | "funding": {
692 | "url": "https://github.com/sponsors/isaacs"
693 | }
694 | },
695 | "node_modules/minipass": {
696 | "version": "7.1.2",
697 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
698 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
699 | "dev": true,
700 | "license": "ISC",
701 | "engines": {
702 | "node": ">=16 || 14 >=14.17"
703 | }
704 | },
705 | "node_modules/mz": {
706 | "version": "2.7.0",
707 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
708 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
709 | "dev": true,
710 | "license": "MIT",
711 | "dependencies": {
712 | "any-promise": "^1.0.0",
713 | "object-assign": "^4.0.1",
714 | "thenify-all": "^1.0.0"
715 | }
716 | },
717 | "node_modules/nanoid": {
718 | "version": "3.3.7",
719 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
720 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
721 | "dev": true,
722 | "funding": [
723 | {
724 | "type": "github",
725 | "url": "https://github.com/sponsors/ai"
726 | }
727 | ],
728 | "license": "MIT",
729 | "bin": {
730 | "nanoid": "bin/nanoid.cjs"
731 | },
732 | "engines": {
733 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
734 | }
735 | },
736 | "node_modules/normalize-path": {
737 | "version": "3.0.0",
738 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
739 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
740 | "dev": true,
741 | "license": "MIT",
742 | "engines": {
743 | "node": ">=0.10.0"
744 | }
745 | },
746 | "node_modules/object-assign": {
747 | "version": "4.1.1",
748 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
749 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
750 | "dev": true,
751 | "license": "MIT",
752 | "engines": {
753 | "node": ">=0.10.0"
754 | }
755 | },
756 | "node_modules/object-hash": {
757 | "version": "3.0.0",
758 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
759 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
760 | "dev": true,
761 | "license": "MIT",
762 | "engines": {
763 | "node": ">= 6"
764 | }
765 | },
766 | "node_modules/path-key": {
767 | "version": "3.1.1",
768 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
769 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
770 | "dev": true,
771 | "license": "MIT",
772 | "engines": {
773 | "node": ">=8"
774 | }
775 | },
776 | "node_modules/path-parse": {
777 | "version": "1.0.7",
778 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
779 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
780 | "dev": true,
781 | "license": "MIT"
782 | },
783 | "node_modules/path-scurry": {
784 | "version": "1.11.1",
785 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
786 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
787 | "dev": true,
788 | "license": "BlueOak-1.0.0",
789 | "dependencies": {
790 | "lru-cache": "^10.2.0",
791 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
792 | },
793 | "engines": {
794 | "node": ">=16 || 14 >=14.18"
795 | },
796 | "funding": {
797 | "url": "https://github.com/sponsors/isaacs"
798 | }
799 | },
800 | "node_modules/picocolors": {
801 | "version": "1.0.1",
802 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
803 | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
804 | "dev": true,
805 | "license": "ISC"
806 | },
807 | "node_modules/picomatch": {
808 | "version": "2.3.1",
809 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
810 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
811 | "dev": true,
812 | "license": "MIT",
813 | "engines": {
814 | "node": ">=8.6"
815 | },
816 | "funding": {
817 | "url": "https://github.com/sponsors/jonschlinkert"
818 | }
819 | },
820 | "node_modules/pify": {
821 | "version": "2.3.0",
822 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
823 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
824 | "dev": true,
825 | "license": "MIT",
826 | "engines": {
827 | "node": ">=0.10.0"
828 | }
829 | },
830 | "node_modules/pirates": {
831 | "version": "4.0.6",
832 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
833 | "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
834 | "dev": true,
835 | "license": "MIT",
836 | "engines": {
837 | "node": ">= 6"
838 | }
839 | },
840 | "node_modules/postcss": {
841 | "version": "8.4.38",
842 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
843 | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
844 | "dev": true,
845 | "funding": [
846 | {
847 | "type": "opencollective",
848 | "url": "https://opencollective.com/postcss/"
849 | },
850 | {
851 | "type": "tidelift",
852 | "url": "https://tidelift.com/funding/github/npm/postcss"
853 | },
854 | {
855 | "type": "github",
856 | "url": "https://github.com/sponsors/ai"
857 | }
858 | ],
859 | "license": "MIT",
860 | "dependencies": {
861 | "nanoid": "^3.3.7",
862 | "picocolors": "^1.0.0",
863 | "source-map-js": "^1.2.0"
864 | },
865 | "engines": {
866 | "node": "^10 || ^12 || >=14"
867 | }
868 | },
869 | "node_modules/postcss-import": {
870 | "version": "15.1.0",
871 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
872 | "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
873 | "dev": true,
874 | "license": "MIT",
875 | "dependencies": {
876 | "postcss-value-parser": "^4.0.0",
877 | "read-cache": "^1.0.0",
878 | "resolve": "^1.1.7"
879 | },
880 | "engines": {
881 | "node": ">=14.0.0"
882 | },
883 | "peerDependencies": {
884 | "postcss": "^8.0.0"
885 | }
886 | },
887 | "node_modules/postcss-js": {
888 | "version": "4.0.1",
889 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
890 | "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
891 | "dev": true,
892 | "license": "MIT",
893 | "dependencies": {
894 | "camelcase-css": "^2.0.1"
895 | },
896 | "engines": {
897 | "node": "^12 || ^14 || >= 16"
898 | },
899 | "funding": {
900 | "type": "opencollective",
901 | "url": "https://opencollective.com/postcss/"
902 | },
903 | "peerDependencies": {
904 | "postcss": "^8.4.21"
905 | }
906 | },
907 | "node_modules/postcss-load-config": {
908 | "version": "4.0.2",
909 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
910 | "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
911 | "dev": true,
912 | "funding": [
913 | {
914 | "type": "opencollective",
915 | "url": "https://opencollective.com/postcss/"
916 | },
917 | {
918 | "type": "github",
919 | "url": "https://github.com/sponsors/ai"
920 | }
921 | ],
922 | "license": "MIT",
923 | "dependencies": {
924 | "lilconfig": "^3.0.0",
925 | "yaml": "^2.3.4"
926 | },
927 | "engines": {
928 | "node": ">= 14"
929 | },
930 | "peerDependencies": {
931 | "postcss": ">=8.0.9",
932 | "ts-node": ">=9.0.0"
933 | },
934 | "peerDependenciesMeta": {
935 | "postcss": {
936 | "optional": true
937 | },
938 | "ts-node": {
939 | "optional": true
940 | }
941 | }
942 | },
943 | "node_modules/postcss-load-config/node_modules/lilconfig": {
944 | "version": "3.1.2",
945 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
946 | "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
947 | "dev": true,
948 | "license": "MIT",
949 | "engines": {
950 | "node": ">=14"
951 | },
952 | "funding": {
953 | "url": "https://github.com/sponsors/antonk52"
954 | }
955 | },
956 | "node_modules/postcss-nested": {
957 | "version": "6.0.1",
958 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
959 | "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
960 | "dev": true,
961 | "license": "MIT",
962 | "dependencies": {
963 | "postcss-selector-parser": "^6.0.11"
964 | },
965 | "engines": {
966 | "node": ">=12.0"
967 | },
968 | "funding": {
969 | "type": "opencollective",
970 | "url": "https://opencollective.com/postcss/"
971 | },
972 | "peerDependencies": {
973 | "postcss": "^8.2.14"
974 | }
975 | },
976 | "node_modules/postcss-selector-parser": {
977 | "version": "6.1.0",
978 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
979 | "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
980 | "dev": true,
981 | "license": "MIT",
982 | "dependencies": {
983 | "cssesc": "^3.0.0",
984 | "util-deprecate": "^1.0.2"
985 | },
986 | "engines": {
987 | "node": ">=4"
988 | }
989 | },
990 | "node_modules/postcss-value-parser": {
991 | "version": "4.2.0",
992 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
993 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
994 | "dev": true,
995 | "license": "MIT"
996 | },
997 | "node_modules/queue-microtask": {
998 | "version": "1.2.3",
999 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1000 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1001 | "dev": true,
1002 | "funding": [
1003 | {
1004 | "type": "github",
1005 | "url": "https://github.com/sponsors/feross"
1006 | },
1007 | {
1008 | "type": "patreon",
1009 | "url": "https://www.patreon.com/feross"
1010 | },
1011 | {
1012 | "type": "consulting",
1013 | "url": "https://feross.org/support"
1014 | }
1015 | ],
1016 | "license": "MIT"
1017 | },
1018 | "node_modules/read-cache": {
1019 | "version": "1.0.0",
1020 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1021 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1022 | "dev": true,
1023 | "license": "MIT",
1024 | "dependencies": {
1025 | "pify": "^2.3.0"
1026 | }
1027 | },
1028 | "node_modules/readdirp": {
1029 | "version": "3.6.0",
1030 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1031 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1032 | "dev": true,
1033 | "license": "MIT",
1034 | "dependencies": {
1035 | "picomatch": "^2.2.1"
1036 | },
1037 | "engines": {
1038 | "node": ">=8.10.0"
1039 | }
1040 | },
1041 | "node_modules/resolve": {
1042 | "version": "1.22.8",
1043 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
1044 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
1045 | "dev": true,
1046 | "license": "MIT",
1047 | "dependencies": {
1048 | "is-core-module": "^2.13.0",
1049 | "path-parse": "^1.0.7",
1050 | "supports-preserve-symlinks-flag": "^1.0.0"
1051 | },
1052 | "bin": {
1053 | "resolve": "bin/resolve"
1054 | },
1055 | "funding": {
1056 | "url": "https://github.com/sponsors/ljharb"
1057 | }
1058 | },
1059 | "node_modules/reusify": {
1060 | "version": "1.0.4",
1061 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1062 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1063 | "dev": true,
1064 | "license": "MIT",
1065 | "engines": {
1066 | "iojs": ">=1.0.0",
1067 | "node": ">=0.10.0"
1068 | }
1069 | },
1070 | "node_modules/run-parallel": {
1071 | "version": "1.2.0",
1072 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1073 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1074 | "dev": true,
1075 | "funding": [
1076 | {
1077 | "type": "github",
1078 | "url": "https://github.com/sponsors/feross"
1079 | },
1080 | {
1081 | "type": "patreon",
1082 | "url": "https://www.patreon.com/feross"
1083 | },
1084 | {
1085 | "type": "consulting",
1086 | "url": "https://feross.org/support"
1087 | }
1088 | ],
1089 | "license": "MIT",
1090 | "dependencies": {
1091 | "queue-microtask": "^1.2.2"
1092 | }
1093 | },
1094 | "node_modules/shebang-command": {
1095 | "version": "2.0.0",
1096 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1097 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1098 | "dev": true,
1099 | "license": "MIT",
1100 | "dependencies": {
1101 | "shebang-regex": "^3.0.0"
1102 | },
1103 | "engines": {
1104 | "node": ">=8"
1105 | }
1106 | },
1107 | "node_modules/shebang-regex": {
1108 | "version": "3.0.0",
1109 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1110 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1111 | "dev": true,
1112 | "license": "MIT",
1113 | "engines": {
1114 | "node": ">=8"
1115 | }
1116 | },
1117 | "node_modules/signal-exit": {
1118 | "version": "4.1.0",
1119 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
1120 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
1121 | "dev": true,
1122 | "license": "ISC",
1123 | "engines": {
1124 | "node": ">=14"
1125 | },
1126 | "funding": {
1127 | "url": "https://github.com/sponsors/isaacs"
1128 | }
1129 | },
1130 | "node_modules/source-map-js": {
1131 | "version": "1.2.0",
1132 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
1133 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
1134 | "dev": true,
1135 | "license": "BSD-3-Clause",
1136 | "engines": {
1137 | "node": ">=0.10.0"
1138 | }
1139 | },
1140 | "node_modules/string-width": {
1141 | "version": "5.1.2",
1142 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
1143 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
1144 | "dev": true,
1145 | "license": "MIT",
1146 | "dependencies": {
1147 | "eastasianwidth": "^0.2.0",
1148 | "emoji-regex": "^9.2.2",
1149 | "strip-ansi": "^7.0.1"
1150 | },
1151 | "engines": {
1152 | "node": ">=12"
1153 | },
1154 | "funding": {
1155 | "url": "https://github.com/sponsors/sindresorhus"
1156 | }
1157 | },
1158 | "node_modules/string-width-cjs": {
1159 | "name": "string-width",
1160 | "version": "4.2.3",
1161 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1162 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1163 | "dev": true,
1164 | "license": "MIT",
1165 | "dependencies": {
1166 | "emoji-regex": "^8.0.0",
1167 | "is-fullwidth-code-point": "^3.0.0",
1168 | "strip-ansi": "^6.0.1"
1169 | },
1170 | "engines": {
1171 | "node": ">=8"
1172 | }
1173 | },
1174 | "node_modules/string-width-cjs/node_modules/ansi-regex": {
1175 | "version": "5.0.1",
1176 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1177 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1178 | "dev": true,
1179 | "license": "MIT",
1180 | "engines": {
1181 | "node": ">=8"
1182 | }
1183 | },
1184 | "node_modules/string-width-cjs/node_modules/emoji-regex": {
1185 | "version": "8.0.0",
1186 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1187 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1188 | "dev": true,
1189 | "license": "MIT"
1190 | },
1191 | "node_modules/string-width-cjs/node_modules/strip-ansi": {
1192 | "version": "6.0.1",
1193 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1194 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1195 | "dev": true,
1196 | "license": "MIT",
1197 | "dependencies": {
1198 | "ansi-regex": "^5.0.1"
1199 | },
1200 | "engines": {
1201 | "node": ">=8"
1202 | }
1203 | },
1204 | "node_modules/strip-ansi": {
1205 | "version": "7.1.0",
1206 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
1207 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
1208 | "dev": true,
1209 | "license": "MIT",
1210 | "dependencies": {
1211 | "ansi-regex": "^6.0.1"
1212 | },
1213 | "engines": {
1214 | "node": ">=12"
1215 | },
1216 | "funding": {
1217 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
1218 | }
1219 | },
1220 | "node_modules/strip-ansi-cjs": {
1221 | "name": "strip-ansi",
1222 | "version": "6.0.1",
1223 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1224 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1225 | "dev": true,
1226 | "license": "MIT",
1227 | "dependencies": {
1228 | "ansi-regex": "^5.0.1"
1229 | },
1230 | "engines": {
1231 | "node": ">=8"
1232 | }
1233 | },
1234 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
1235 | "version": "5.0.1",
1236 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1237 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1238 | "dev": true,
1239 | "license": "MIT",
1240 | "engines": {
1241 | "node": ">=8"
1242 | }
1243 | },
1244 | "node_modules/sucrase": {
1245 | "version": "3.35.0",
1246 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
1247 | "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
1248 | "dev": true,
1249 | "license": "MIT",
1250 | "dependencies": {
1251 | "@jridgewell/gen-mapping": "^0.3.2",
1252 | "commander": "^4.0.0",
1253 | "glob": "^10.3.10",
1254 | "lines-and-columns": "^1.1.6",
1255 | "mz": "^2.7.0",
1256 | "pirates": "^4.0.1",
1257 | "ts-interface-checker": "^0.1.9"
1258 | },
1259 | "bin": {
1260 | "sucrase": "bin/sucrase",
1261 | "sucrase-node": "bin/sucrase-node"
1262 | },
1263 | "engines": {
1264 | "node": ">=16 || 14 >=14.17"
1265 | }
1266 | },
1267 | "node_modules/supports-preserve-symlinks-flag": {
1268 | "version": "1.0.0",
1269 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1270 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1271 | "dev": true,
1272 | "license": "MIT",
1273 | "engines": {
1274 | "node": ">= 0.4"
1275 | },
1276 | "funding": {
1277 | "url": "https://github.com/sponsors/ljharb"
1278 | }
1279 | },
1280 | "node_modules/tailwindcss": {
1281 | "version": "3.4.4",
1282 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz",
1283 | "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==",
1284 | "dev": true,
1285 | "license": "MIT",
1286 | "dependencies": {
1287 | "@alloc/quick-lru": "^5.2.0",
1288 | "arg": "^5.0.2",
1289 | "chokidar": "^3.5.3",
1290 | "didyoumean": "^1.2.2",
1291 | "dlv": "^1.1.3",
1292 | "fast-glob": "^3.3.0",
1293 | "glob-parent": "^6.0.2",
1294 | "is-glob": "^4.0.3",
1295 | "jiti": "^1.21.0",
1296 | "lilconfig": "^2.1.0",
1297 | "micromatch": "^4.0.5",
1298 | "normalize-path": "^3.0.0",
1299 | "object-hash": "^3.0.0",
1300 | "picocolors": "^1.0.0",
1301 | "postcss": "^8.4.23",
1302 | "postcss-import": "^15.1.0",
1303 | "postcss-js": "^4.0.1",
1304 | "postcss-load-config": "^4.0.1",
1305 | "postcss-nested": "^6.0.1",
1306 | "postcss-selector-parser": "^6.0.11",
1307 | "resolve": "^1.22.2",
1308 | "sucrase": "^3.32.0"
1309 | },
1310 | "bin": {
1311 | "tailwind": "lib/cli.js",
1312 | "tailwindcss": "lib/cli.js"
1313 | },
1314 | "engines": {
1315 | "node": ">=14.0.0"
1316 | }
1317 | },
1318 | "node_modules/thenify": {
1319 | "version": "3.3.1",
1320 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
1321 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
1322 | "dev": true,
1323 | "license": "MIT",
1324 | "dependencies": {
1325 | "any-promise": "^1.0.0"
1326 | }
1327 | },
1328 | "node_modules/thenify-all": {
1329 | "version": "1.6.0",
1330 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
1331 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
1332 | "dev": true,
1333 | "license": "MIT",
1334 | "dependencies": {
1335 | "thenify": ">= 3.1.0 < 4"
1336 | },
1337 | "engines": {
1338 | "node": ">=0.8"
1339 | }
1340 | },
1341 | "node_modules/to-regex-range": {
1342 | "version": "5.0.1",
1343 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1344 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1345 | "dev": true,
1346 | "license": "MIT",
1347 | "dependencies": {
1348 | "is-number": "^7.0.0"
1349 | },
1350 | "engines": {
1351 | "node": ">=8.0"
1352 | }
1353 | },
1354 | "node_modules/ts-interface-checker": {
1355 | "version": "0.1.13",
1356 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
1357 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
1358 | "dev": true,
1359 | "license": "Apache-2.0"
1360 | },
1361 | "node_modules/util-deprecate": {
1362 | "version": "1.0.2",
1363 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1364 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1365 | "dev": true,
1366 | "license": "MIT"
1367 | },
1368 | "node_modules/which": {
1369 | "version": "2.0.2",
1370 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1371 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1372 | "dev": true,
1373 | "license": "ISC",
1374 | "dependencies": {
1375 | "isexe": "^2.0.0"
1376 | },
1377 | "bin": {
1378 | "node-which": "bin/node-which"
1379 | },
1380 | "engines": {
1381 | "node": ">= 8"
1382 | }
1383 | },
1384 | "node_modules/wrap-ansi": {
1385 | "version": "8.1.0",
1386 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
1387 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
1388 | "dev": true,
1389 | "license": "MIT",
1390 | "dependencies": {
1391 | "ansi-styles": "^6.1.0",
1392 | "string-width": "^5.0.1",
1393 | "strip-ansi": "^7.0.1"
1394 | },
1395 | "engines": {
1396 | "node": ">=12"
1397 | },
1398 | "funding": {
1399 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1400 | }
1401 | },
1402 | "node_modules/wrap-ansi-cjs": {
1403 | "name": "wrap-ansi",
1404 | "version": "7.0.0",
1405 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1406 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1407 | "dev": true,
1408 | "license": "MIT",
1409 | "dependencies": {
1410 | "ansi-styles": "^4.0.0",
1411 | "string-width": "^4.1.0",
1412 | "strip-ansi": "^6.0.0"
1413 | },
1414 | "engines": {
1415 | "node": ">=10"
1416 | },
1417 | "funding": {
1418 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1419 | }
1420 | },
1421 | "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
1422 | "version": "5.0.1",
1423 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1424 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1425 | "dev": true,
1426 | "license": "MIT",
1427 | "engines": {
1428 | "node": ">=8"
1429 | }
1430 | },
1431 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
1432 | "version": "4.3.0",
1433 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1434 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1435 | "dev": true,
1436 | "license": "MIT",
1437 | "dependencies": {
1438 | "color-convert": "^2.0.1"
1439 | },
1440 | "engines": {
1441 | "node": ">=8"
1442 | },
1443 | "funding": {
1444 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1445 | }
1446 | },
1447 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
1448 | "version": "8.0.0",
1449 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1450 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1451 | "dev": true,
1452 | "license": "MIT"
1453 | },
1454 | "node_modules/wrap-ansi-cjs/node_modules/string-width": {
1455 | "version": "4.2.3",
1456 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1457 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1458 | "dev": true,
1459 | "license": "MIT",
1460 | "dependencies": {
1461 | "emoji-regex": "^8.0.0",
1462 | "is-fullwidth-code-point": "^3.0.0",
1463 | "strip-ansi": "^6.0.1"
1464 | },
1465 | "engines": {
1466 | "node": ">=8"
1467 | }
1468 | },
1469 | "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
1470 | "version": "6.0.1",
1471 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1472 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1473 | "dev": true,
1474 | "license": "MIT",
1475 | "dependencies": {
1476 | "ansi-regex": "^5.0.1"
1477 | },
1478 | "engines": {
1479 | "node": ">=8"
1480 | }
1481 | },
1482 | "node_modules/yaml": {
1483 | "version": "2.4.5",
1484 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
1485 | "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
1486 | "dev": true,
1487 | "license": "ISC",
1488 | "bin": {
1489 | "yaml": "bin.mjs"
1490 | },
1491 | "engines": {
1492 | "node": ">= 14"
1493 | }
1494 | }
1495 | }
1496 | }
1497 |
--------------------------------------------------------------------------------