From 080037b6c897a4a149f25cbac4f27bb9477a238b Mon Sep 17 00:00:00 2001 From: Hadeed Ahmad Date: Wed, 5 Jun 2024 06:26:49 +0400 Subject: [PATCH] Initial commit --- .github/workflows/vite_deploy.yaml | 46 + .gitignore | 3 + README-template.md | 117 ++ README.md | 100 + assets/favicon-32x32.png | Bin 0 -> 1063 bytes assets/fonts/Karla-Bold.ttf | Bin 0 -> 44124 bytes assets/fonts/Karla-Regular.ttf | Bin 0 -> 44048 bytes assets/icon-checkbox-check.svg | 1 + assets/icon-radio-selected.svg | 1 + assets/icon-success-check.svg | 1 + index.html | 32 + package-lock.json | 2722 ++++++++++++++++++++++++++++ package.json | 31 + src/app.jsx | 18 + styles.css | 17 + tailwind.config.js | 59 + vite.config.js | 8 + 17 files changed, 3156 insertions(+) create mode 100644 .github/workflows/vite_deploy.yaml create mode 100644 .gitignore create mode 100644 README-template.md create mode 100644 README.md create mode 100644 assets/favicon-32x32.png create mode 100644 assets/fonts/Karla-Bold.ttf create mode 100644 assets/fonts/Karla-Regular.ttf create mode 100644 assets/icon-checkbox-check.svg create mode 100644 assets/icon-radio-selected.svg create mode 100644 assets/icon-success-check.svg create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/app.jsx create mode 100644 styles.css create mode 100644 tailwind.config.js create mode 100644 vite.config.js diff --git a/.github/workflows/vite_deploy.yaml b/.github/workflows/vite_deploy.yaml new file mode 100644 index 0000000..30ac7ca --- /dev/null +++ b/.github/workflows/vite_deploy.yaml @@ -0,0 +1,46 @@ +name: Deploy static content to Pages + +on: + push: + branches: ["main"] + + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "npm" + - name: Install dependencies + run: | + rm package-lock.json + npm install + - name: Build + run: npm run build + - name: Setup Pages + uses: actions/configure-pages@v4 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: "./dist" + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bf56190 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +node_modules/ +dist/ diff --git a/README-template.md b/README-template.md new file mode 100644 index 0000000..6c3ed8d --- /dev/null +++ b/README-template.md @@ -0,0 +1,117 @@ +# Frontend Mentor - Contact form solution + +This is a solution to the [Contact form challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/contact-form--G-hYlqKJj). Frontend Mentor challenges help you improve your coding skills by building realistic projects. + +## Table of contents + +- [Overview](#overview) + - [The challenge](#the-challenge) + - [Screenshot](#screenshot) + - [Links](#links) +- [My process](#my-process) + - [Built with](#built-with) + - [What I learned](#what-i-learned) + - [Continued development](#continued-development) + - [Useful resources](#useful-resources) +- [Author](#author) +- [Acknowledgments](#acknowledgments) + +**Note: Delete this note and update the table of contents based on what sections you keep.** + +## Overview + +### The challenge + +Users should be able to: + +- Complete the form and see a success toast message upon successful submission +- Receive form validation messages if: + - A required field has been missed + - The email address is not formatted correctly +- Complete the form only using their keyboard +- Have inputs, error messages, and the success message announced on their screen reader +- View the optimal layout for the interface depending on their device's screen size +- See hover and focus states for all interactive elements on the page + +### Screenshot + +![](./screenshot.jpg) + +Add a screenshot of your solution. The easiest way to do this is to use Firefox to view your project, right-click the page and select "Take a Screenshot". You can choose either a full-height screenshot or a cropped one based on how long the page is. If it's very long, it might be best to crop it. + +Alternatively, you can use a tool like [FireShot](https://getfireshot.com/) to take the screenshot. FireShot has a free option, so you don't need to purchase it. + +Then crop/optimize/edit your image however you like, add it to your project, and update the file path in the image above. + +**Note: Delete this note and the paragraphs above when you add your screenshot. If you prefer not to add a screenshot, feel free to remove this entire section.** + +### Links + +- Solution URL: [Add solution URL here](https://your-solution-url.com) +- Live Site URL: [Add live site URL here](https://your-live-site-url.com) + +## My process + +### Built with + +- Semantic HTML5 markup +- CSS custom properties +- Flexbox +- CSS Grid +- Mobile-first workflow +- [React](https://reactjs.org/) - JS library +- [Next.js](https://nextjs.org/) - React framework +- [Styled Components](https://styled-components.com/) - For styles + +**Note: These are just examples. Delete this note and replace the list above with your own choices** + +### What I learned + +Use this section to recap over some of your major learnings while working through this project. Writing these out and providing code samples of areas you want to highlight is a great way to reinforce your own knowledge. + +To see how you can add code snippets, see below: + +```html +

Some HTML code I'm proud of

+``` +```css +.proud-of-this-css { + color: papayawhip; +} +``` +```js +const proudOfThisFunc = () => { + console.log('🎉') +} +``` + +If you want more help with writing markdown, we'd recommend checking out [The Markdown Guide](https://www.markdownguide.org/) to learn more. + +**Note: Delete this note and the content within this section and replace with your own learnings.** + +### Continued development + +Use this section to outline areas that you want to continue focusing on in future projects. These could be concepts you're still not completely comfortable with or techniques you found useful that you want to refine and perfect. + +**Note: Delete this note and the content within this section and replace with your own plans for continued development.** + +### Useful resources + +- [Example resource 1](https://www.example.com) - This helped me for XYZ reason. I really liked this pattern and will use it going forward. +- [Example resource 2](https://www.example.com) - This is an amazing article which helped me finally understand XYZ. I'd recommend it to anyone still learning this concept. + +**Note: Delete this note and replace the list above with resources that helped you during the challenge. These could come in handy for anyone viewing your solution or for yourself when you look back on this project in the future.** + +## Author + +- Website - [Add your name here](https://www.your-site.com) +- Frontend Mentor - [@yourusername](https://www.frontendmentor.io/profile/yourusername) +- Twitter - [@yourusername](https://www.twitter.com/yourusername) + +**Note: Delete this note and add/remove/edit lines above based on what links you'd like to share.** + +## Acknowledgments + +This is where you can give a hat tip to anyone who helped you out on this project. Perhaps you worked in a team or got some inspiration from someone else's solution. This is the perfect place to give them some credit. + +**Note: Delete this note and edit this section's content as necessary. If you completed this challenge by yourself, feel free to delete this section entirely.** diff --git a/README.md b/README.md new file mode 100644 index 0000000..b710de4 --- /dev/null +++ b/README.md @@ -0,0 +1,100 @@ +# Frontend Mentor - Contact form + +![Design preview for the Contact form coding challenge](./design/desktop-preview.jpg) + +## Welcome! 👋 + +Thanks for checking out this front-end coding challenge. + +[Frontend Mentor](https://www.frontendmentor.io) challenges help you improve your coding skills by building realistic projects. + +**To do this challenge, you need a good understanding of HTML, CSS and JavaScript.** + +## The challenge + +Your challenge is to build out this contact form and get it looking as close to the design as possible. Pay particular attention to making this form accessible. Building accessible forms is a key skill for front-end developers. So this is a perfect challenge to practice. + +You can use any tools you like to help you complete the challenge. So if you've got something you'd like to practice, feel free to give it a go. + +Your users should be able to: + +- Complete the form and see a success toast message upon successful submission +- Receive form validation messages if: + - A required field has been missed + - The email address is not formatted correctly +- Complete the form only using their keyboard +- Have inputs, error messages, and the success message announced on their screen reader +- View the optimal layout for the interface depending on their device's screen size +- See hover and focus states for all interactive elements on the page + +Want some support on the challenge? [Join our community](https://www.frontendmentor.io/community) and ask questions in the **#help** channel. + +## Where to find everything + +Your task is to build out the project to the designs inside the `/design` folder. You will find both a mobile and a desktop version of the design. + +The designs are in JPG static format. Using JPGs will mean that you'll need to use your best judgment for styles such as `font-size`, `padding` and `margin`. + +If you would like the design files (we provide Sketch & Figma versions) to inspect the design in more detail, you can [subscribe as a PRO member](https://www.frontendmentor.io/pro). + +All the required assets for this project are in the `/assets` folder. The images are already exported for the correct screen size and optimized. + +We also include variable and static font files for the required fonts for this project. You can choose to either link to Google Fonts or use the local font files to host the fonts yourself. Note that we've removed the static font files for the font weights that aren't needed for this project. + +There is also a `style-guide.md` file containing the information you'll need, such as color palette and fonts. + +## Building your project + +Feel free to use any workflow that you feel comfortable with. Below is a suggested process, but do not feel like you need to follow these steps: + +1. Initialize your project as a public repository on [GitHub](https://github.com/). Creating a repo will make it easier to share your code with the community if you need help. If you're not sure how to do this, [have a read-through of this Try Git resource](https://try.github.io/). +2. Configure your repository to publish your code to a web address. This will also be useful if you need some help during a challenge as you can share the URL for your project with your repo URL. There are a number of ways to do this, and we provide some recommendations below. +3. Look through the designs to start planning out how you'll tackle the project. This step is crucial to help you think ahead for CSS classes to create reusable styles. +4. Before adding any styles, structure your content with HTML. Writing your HTML first can help focus your attention on creating well-structured content. +5. Write out the base styles for your project, including general content styles, such as `font-family` and `font-size`. +6. Start adding styles to the top of the page and work down. Only move on to the next section once you're happy you've completed the area you're working on. + +## Deploying your project + +As mentioned above, there are many ways to host your project for free. Our recommend hosts are: + +- [GitHub Pages](https://pages.github.com/) +- [Vercel](https://vercel.com/) +- [Netlify](https://www.netlify.com/) + +You can host your site using one of these solutions or any of our other trusted providers. [Read more about our recommended and trusted hosts](https://medium.com/frontend-mentor/frontend-mentor-trusted-hosting-providers-bf000dfebe). + +## Create a custom `README.md` + +We strongly recommend overwriting this `README.md` with a custom one. We've provided a template inside the [`README-template.md`](./README-template.md) file in this starter code. + +The template provides a guide for what to add. A custom `README` will help you explain your project and reflect on your learnings. Please feel free to edit our template as much as you like. + +Once you've added your information to the template, delete this file and rename the `README-template.md` file to `README.md`. That will make it show up as your repository's README file. + +## Submitting your solution + +Submit your solution on the platform for the rest of the community to see. Follow our ["Complete guide to submitting solutions"](https://medium.com/frontend-mentor/a-complete-guide-to-submitting-solutions-on-frontend-mentor-ac6384162248) for tips on how to do this. + +Remember, if you're looking for feedback on your solution, be sure to ask questions when submitting it. The more specific and detailed you are with your questions, the higher the chance you'll get valuable feedback from the community. + +## Sharing your solution + +There are multiple places you can share your solution: + +1. Share your solution page in the **#finished-projects** channel of our [community](https://www.frontendmentor.io/community). +2. Tweet [@frontendmentor](https://twitter.com/frontendmentor) and mention **@frontendmentor**, including the repo and live URLs in the tweet. We'd love to take a look at what you've built and help share it around. +3. Share your solution on other social channels like LinkedIn. +4. Blog about your experience building your project. Writing about your workflow, technical choices, and talking through your code is a brilliant way to reinforce what you've learned. Great platforms to write on are [dev.to](https://dev.to/), [Hashnode](https://hashnode.com/), and [CodeNewbie](https://community.codenewbie.org/). + +We provide templates to help you share your solution once you've submitted it on the platform. Please do edit them and include specific questions when you're looking for feedback. + +The more specific you are with your questions the more likely it is that another member of the community will give you feedback. + +## Got feedback for us? + +We love receiving feedback! We're always looking to improve our challenges and our platform. So if you have anything you'd like to mention, please email hi[at]frontendmentor[dot]io. + +This challenge is completely free. Please share it with anyone who will find it useful for practice. + +**Have fun building!** 🚀 diff --git a/assets/favicon-32x32.png b/assets/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2df7f089f46dd930239e418bf13e8e4c1cca0f GIT binary patch literal 1063 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 SPy-$SJ_Acy4f~gPy#EGH+Ux!R literal 0 HcmV?d00001 diff --git a/assets/fonts/Karla-Regular.ttf b/assets/fonts/Karla-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c164d0047eead543202c44f7a92ce343c6b841e9 GIT binary patch literal 44048 zcmb@v3tUyj_6I(*_de(FR^F(HyaY2uzl5@6r-iGIdtfGvPyn^npFs46?0;=X_l$HSB z9q(Omx0+kHF!zOvzf5B+emrAyPvzxgWc&Uj-Wl)H@jfyS2#0~n89Ybh**~wStkN_3 zENHlch9Ri1I4fgO%ad7*$svGkMH!VP{7ZHo={=F&+n7<5vv}}cw8u6cug=PKHK2 z>X}4X{1J64@#G>xe4UhA zF`bLD56^Yl9q&S=7^Jafima1mCO0znKO>m;Or#NiVUCGi$2g%2qu`Tpc zKCZOl=B<^^(1R=z0M6nM^+8BIV27B*5ArvFJj&k^Jd}7de_OQ71Cl^>_vL=LD~wA< z%e@-;dN6xj9KGO*(49SuZ~z;Da0YsVvqDyea3NcTu#P>8@Hy0$vs3IW!WMQN;Ww-m z;rHwg!rwSb;Cl2l=MLNlA(bm}f8H1Ie!L&TYQ7BNDh`@_EnkbUkvAfw7RYG9DZ$<0 ztmB%==CdX2F_iy2+s8iQZhSId!B6mCrQXtJ>4@~1tjK=yKzW|LS$K!0x17i`{2-H|%cN{b8@Sce3}g?{6PzA7`IvpK70LZ?dnpUu(bFeuw=_ z_J{17?a$d?vcGA6+rG^~aVT=Q>~O>3mct+2^xd4gd3EdGEwWo&x5REUx@C7O>9(lb z6Ww0ycB0#z?ylYayH|H#-+g=cJ>8FY|D^kujt-6^9OpSMa9rW|xZ~4~FFGD{e9Q3z z$Il(Vaq8(5;1uc<<224`np2w72B+;#FF5UYI^p!b)8Cw~JDHtro!y-uc8+w8b53+l zbynD^-^<=N-dcE4~Xs>sBecbD-Uah@; z_GF%Ro*th5o*|yYJV$#@@l5l~_bm5Z?zzG9NzZ3I-|)QCyJzp1-UYpv_deMBj+e7n zg4ZOkEU$O_*!CILXJ(%#`dsYuhj);-$$ORecRs;B$v*RZp7FWl^RutNZ-#HF@4J4I zpRJ#ZUvIwvzkz;({bK#b`6c94{#XZHelj_ z@&QW*JTstWz_-CXxOea)!5f1cgWCp14lEeBY~XVPj}JT@Vjc2W$a5ikLk@?W4EZGF za>(sL`auqZ+y;3K3K%qb(A+_954sU*73vil9QsITa_IcfRiWEM4}@L`vkCJEiwc_- zRvp$DwmWQJ*paa2u(M$whkX%t9omMp4rxCZgrp{+9hF?%*Ry5Nt9H;P1KAL0kW`k= zs#rC9g&Vjt@5TLiAb*&L@hBd{6Zix^lh1`F*evyuqNL-}d(zh!#a6PN>?HS-x5_Wc z$K__PRbD&1e)4wl?&`5?wixM<*tOeg`qayEQAeZv1}&GV2fBI+skdBLA-bX@6UsIBp-BP7i8_x>cz@`RD%r348U z#=rlQQ2xC?jV7KINX;7P_hiUW1$t@}8;#nH!8~RSiCTwQ%)n~dShku?WeeEjYy;cG zo?x5Vbj*?)*;e)>W{qOZCewH=e~j1gC9D#X<at zIlM2gtdu>?mhsK( zEtZeDv5YNepR>2QJ!Z-|m?!HnOI~L;*x!ZZ7eV%G*b251Gv`0pQ$qTTY#Up|w{V%I zu}oIX7GqTCcyIO$yUH5a6}E$2!|eJE+sVFVP3$InfqjP_YGr%a59}rOPxdnV7u$__ z_7!%E?Pa&wtL%T+YwUm70roRH$bMn_*^lVWJM0kqjlIr(XK%2(>@fQSz1zl)vUc_+ zGqYn%WyjI|C%MEJKVtDg^lwbw`FIz4LirXvk!PT*1{dw1=x}w zaVPc(cVp+dGy9mkvWwhgjzV_W4(Vr0oHHBgdrMqm4$@baxXePNS1fUb^^`VS;yN}|O0mTCz{gnP z1~!S`vc#>KH~+{Ix97g#xmKn5o2r$B&Y~F&4`gvhI=8TG7Dp;5>F;P z$Kib;B)Q|B1bHq(nvUlQc+SRiIk4k#CkZd>lK&oVI#PDLr!-|4Ev3+@196q2OcUOg z09(p}0r@C37-gG4aUh$Bu{<6lI}i9$=;G0MV?55jD+0DsQCE6KRvs>hXA|I7SISiLEP*8oL3lR}cax|amF~?3p@szBU21lJ zxgE91KyPP=Hf3PU7J`m9YMd|X;f*&`ZY-OOdj@brasPkEp>cvQL?aKBsE(6RiV;u5 zNh5m{SQE;p5;aazOzUal4M~ED%>$0O>dpRpdIKOyIq0i$LEZExUWI~BA-KZXFr=a$ zE5=m_Zq5WY7;}9v3&S=0zB=Advn!1;=(CB??!&sIf3Obs=f2nWktn$YdX^+klUHvR zidqapEwsL*{<)W)xM)J20<v7iSgdCH>*VH=of?G9=ZW=0)mKm+DM8)gd)U=M2D@YeA!Q(66Gs&0ao z+)3*}N|@aRH7(t}G9OIml#x+b#;#;#l;*HYSy@FT?1Bi-WE+c%SaYr^Ba0m_%%7XV z_7xh-i`X9c4GP$*uO#I_X^esi%Y+sM|JP`tJ@-BGiiz-VI!Bs)yq7%FG5;bbLeu8QbamA5;J|rlLQUo&7X(m^&$`F5wJ+3_+VJ2L-{Zs%^%_G z`Qv;Ke~IshUG^HvUdK1^jeHY-f$!qG`OEwj{wm*#QminhAUznr(;y|au$H>Po>~t+ zJ%P&!R??Hq8LRHcmmWa_g2^wt*OG4^emdsc4HL$H71N{W# z+``84t)O1ZpTxZU6ev9j`s+~x8TEezOv67Fyj!onrVHJcAniDfi0J-X-wKA}!}rx=_`#_wdAFopzSQ(_x3*dzu1E>)um5 z?3{Z~k(_)o8VA4`#K|-B9xN`~2i{x}?_5#Kj?^}YduTk+d@G210OtfbyO)Zj(Lv<> z1=t_qQ|Ty=ED~VYufULOx(V)(TuRW1M%bna-~{}Dq72dwR6DxJQkOc@)9BH#l=@y8 z8eg*T<#6GR;{0utPN}uhI4o7FlU7$*)ByfEK|>ouHn4uTLV_!4gh3uhK*z%`hcd>& zYJm3+tH?+A7uGx$6_g6UUE}X@4@$@jp<#0Y0Yt|e*^@p6( z8a9<@3$AFq+l!In&wkP**)pCx#_kkt^ulNMA-98V{1;>GuW%@3IBF4#T8>03Mxm8s zx@ds=M&|?i;Qtz{t{7+b;H4`rjh2klOb!Bb~$L2N@w`)?%25w7@H)kp2nWpFsLgaqq>dq}wcBd6Vsx|Hb@4-(NPf zaQS)j&+_Z6Kv}}Vl`oO5h2`q{;hxRTDjuvwhjMj8G}>|?>#n@TTI3g5i+%^*rLeO) zTa=T;&gk56e;@gdvbFL*n4PXC+pFX-e|;PC)M4$XjAc&Bvurc(#s+gEbm~h2yrlQo zX24*jC-VjD1DsZ#N1dN!>B?%hOnC-%n~l2Vvl?X~%avbdAnE*29)RE%cqH0SZK8Id&G+Hy+42rNdj#+}wL<{vO?8(?KS1lgJm$+CY2{d!Yv{`k z7^bpX>7V~853}mXgFYJ#*d`^Lzro!RZGM(O%0Qof!wTdftVEu}OuCm@74E6juTmvo zu=ys^nS^W{VRev|?szU2ZR_ZBw5zjUsEu7f{{)*y{o56&uK_^>f>*>Z3y8j_{t%P1SNBIJZ*#Ud{xGoA1&J4^D@6{tTR z1d^++Amoc=tOFoxByR#}40Qp>Zl!`Y-3K(b2r{)XM&qm#XsmU>8*C8z>>}VbKoY=C zdGEe4__*k=5Vi^TATbuHZwM{{Xk2QLqOU`IA9#xK33#ewoYGkBgb(lz_cXv7*%S11EM4|x%K!x!@8Pl)s{!On(^-f-j2UHj zw(`GCC;6(k4P#ll{uWEOvSkH^4BV?(fmJrEF&qTF(7!0px=VS{mh!r$^Rv|JFVZQ| z(9h7tq-%t(?uYx|Sc04f@B{Q@3CaTS4#OD~DB(;~OB zBm#vC8Q6p|8Lm9WjtKeP$4(;OCO`!s6mS%f3P_~3W6ZArXu7f|dlPYjZGfeKH+17b zYad%7A3?wRLFQ(lj0$EW`gbC$F#JQ5X+)X=zz66<1>gXneBT3F5r5bMR(Sp!fa-J{ z;6>vCvuFooc8MS867P5qtCRNvKD+BXegJ%$0DTTUEBy+Xg?KdXC4iSfn=B>#nHyjS z{ly=4KS7pbHxjdVH`v@>tT$%l1MmqdES`}!71jXe^S`n>lHpUG22W}VyqKw2(a*v< z-kcH><9*7M=%&`U0P>{Vx=Dr3n7w4vB6k%4`stxGF3~C-yP>8+?t{%nx2)@;@ww2R0LXkRJ(O0IlmQ;G5~ge8j5R z9`>sh8xG%W3@pf4_`TAwBawmCd?h@+d%@S&;CqVEfp=cpvV~eYh{X$?kGL zv7!mUjz>TK5Gh){eC!JoNSaY2Lt};XC-V@XtTTn}qF5tJ@c`zI}|weXzX`@PqJ|AHm+ilUP}7 zfk%HQ?5{)cy4S<+{{nvS zzBi1rWF4ht6@?564Ye85nM6s*%rHq~#~H?2l8)_~G%Qj-J|nBVEJr_H(AEfq#px3@ zY+@H|c!WI4IM;q+Ub%5@hN--$Fr&Q8Fj1qbpQ5Fo(j|RFq&`Vt1<}w!gXunK)R0k1 zGODCc?vgYz)RHDvKUMI=e(HUtOtsW~s#bU1R8ziju70|pZaY0I-;`Belv|inX+1qV zKgX0)nqR7)KG&2{kz+gK-b?)qfzqdnY&NN#EYfFa{g7cPCBxDWS@%+8i^}SA#LXtB z^MxVDk|(DtS3|>W=5{7g^3YoA{9y8a!LMh?x8%sza!C0FTHC{-#C=d$l)g}7W?>f& zg^ko3HLS46=_8`_r2=bV_YkFwx}vO0lE^U2yEuKh z))nRVQ7^YtzueLl<)SMV2&%RV?s40CL1$Mi(7Iyby_fohT31wwY&KP$%o1gX4GGuo zu|u?b+(@gc98+;{acQmrBShTG7Kmr-vOH6cz*yxLmz(I7Rc?NTmZmhnk`UIV7-dEg z%gM)y9+AkHZy_Wom*wh-Fm6P*EZ0gSTb64OROwDc@t$bny+#rdjUo~Vf@QhZf*v_S zt%#zC5KW5MXjCa`E$C`7qAb!8ZIMo+E}|NJkx-N%VxkOkq>3^`gvy|Zr3{K{WoR)f zL!_fJL^`bu5!K2N2}KzqhT02!o}H+*7B96WK3L**f`sLPdMY$zaERqT$Z{708+ajA zxQm{}J;L%n(sCEV54=zkxQm_-4T%!;LPFv+NeGG46h%m!g};O3D_N=9EzpsBeU!q_Dgc$*hXs(y$22c(I$7Dac-EqW{@Y>*{Ks3m2nrvAc02a{b(9!48j zol`9PCk~eVla3t<%|{6D;=CM_k@**8nC3ChqIpI0U}=)CnD#j6PJT^|n$E$4Zv)vg zjGbZthpp9!&^H{BL?yHj`&dcjySudn}&D=*4)^0u&)MG0!)BH0M-Nc z>3~!KeD?NgE7jVOwIsUJ}@k;>!wGyxg_b%0HPwSbiXwAK!-wKL(sXCZ)AF!x$SwW59!^|H&eg}2%E0_ydxZ6r?A z^|$r6^}`bK2%4;zw+-(z1EQ zW*5Rn@wVP(tIbB6H8wTCXyIa;3dBon3J_-7q#;bPnPM~EX0*)+#E061BMi3bhtSu? z6QP?8cHnGmY!qwN`Zwzz8MFSu`dft8tS=+HX#J7(S?g2Q#}Pkl4G*UE9-9N!JFRzE zZ$o^u^?HQ0*2@r9S(hO+TIV6mwEot5mi092Nr;cLjz<_{Js4rANFQV!AkuhS_q2Ag z2B)p9tkIuVZB};>-nRN4;Z3V62rm(rtUe*mSe>JmTAiVKS~XLxtd3E;tPY7ZdqtYv zB2AOPH;9yVBIPEkv(;J=uB5tIRf}+?HR^ykg_VMiNzf@2baDlqbU`Oo&`A~)5=Gub zkt;#uiW9k_MXpGZD@5e#FLL>dTwWrVm&oNoeQM<-LOT)aMaYPn;ScIr!_P#`aEs^| zT8XQM8$`kImB4&Pq1J1L3j)(Zy=FKq`tAnTbjqRyh`)<#1% z@Ip2WX`&S=BAj9vZy0SDVHj!%Hw2S}82Sl0i81&h?n%;Oa1$~UYJiklhf;~wLVgT3 zLW+V67+=;wdKFtGzY%XipTZOhA%_U{KZ@`Nk}>_aBD^NT%Obo;@}~btgl9!~N`%Kr z0`-SQxKD(8sCV=`Db&WVeuuzpqfxBiEXK0G9(C5&-W%5#*%;mWWh5c`DiM}ZsEv2M zkw&^cPlTBdj(Ytpk_!Da5sG++Hqc{aQIBBcYC7SFeq2XfA1~xbNRdsWJ_dN9EA)d& zqV%B@+6cWtJ&V$VNMq;&gx*-J_eQ)YX%D@N&>wy#B2KgEQFRf*7u4~xWCy@!So zWd(?u2Z;0mBJX^C4JgdlU7!%+%OzjE0byU=2MGOj#L2#dm&^3-2p8zU6S+cnm*V3&1_ilFcc<>eOzf36G4=_2kyDY=Je*GerE=~q$>rBFd9RNzBJ z9kz;aiNKgdZI@Uupf8OQts5nBjS>_#h_|nZaFhuB1cw(W2arBM^sJANC2t{1KBC{f zge+|!u5u5-+fWgX5@CsuF+UMXA`B4Wdg4EK7rih@gz+LQ7SiY|LN3C-BHSSOu$Fod z93cL#aEbx9Jgmyw3=ZhZcE8=}cyhg-p zC@y2MUIp zY3MXG=f6^1ep66O6Ddo?+oMV z@MA@Z)I8`VkxQIBktXXhfbkG@?m>9DNTh_t2z&rAbSgvJ&%gH_kCph2r?>cyXAu15 zW$?SxcRb_8cRVxTEpCSAo4(^&0U!Excv0y)o+j}f&u;M@&+Fnlo>SsGp7+K1oUg?f zJXggRJlC+RzX~2``hw>sJhzSTIMW%j%>c~z@XRu{3{V9q15jVXVuQz?Va-M7lo-}s zbf$x2?ImG-!ueM7Erbu@4OTQFJTLf=L?O?Y-$59x97ecUU>ZfZQ+^K^4~nz@kxwE1 zh=^YjZz~XXU4NXy`h!kONxC)Qq9ldTYDCGEZeiU+XUZPA-`N9LQx;&b% zb$R$x)SL(!b$>#4L6}YEW;2ccfBR?bw6#y~%L#*1on?mimYba{k+!ga+ z9Q-(9-q;muKHK$)%GTh1Y}Y6Aj;>GtUEI7;>qE5lf>xsWHZGKn`iR~&ANW5gaqN%T zi(R%}ScUh&UQ{4F2BBg{Y$*1@hIj6x%@MmzSz>Rh5W7xBMyIA1VmvIu{?jsy!fn`l zcp7^U*mV(K9=tAg(2lSZVt1n%qw)jnhJA?ru#4FF`V3ziT*Cer?JZoz`N8WLuQxH~ zzQtDp-{b3mAMka+A6)DMa)tJ_wB0PRmxVnm+OZO&jPwMZy2H6Uw4)nV-raH0zM&&D zp$jer=OH~1(y1UFTIq%NeQ?=hXUzw`13z32Xm=pS+e5gl#F-%(dx1l-JNF3f27(X6 zu@^W4mxO)AR8XFYONWs^3%Sy8>De4y61bF(w;8x}&<&ZuXW`<4Z!+{&A<`7#GJu0d zq@i=Tdhn9$*iu|Fc)Ad2s&E;=+eJvT7?&PgUV=2saLM3y9nx&Wr32Tu1OGHG8QgC~ z{5k9gS%L4(z_ftl*5LVPXvOE?wk`O519`szr|rP&e}GrtgVzRpdGWvC(r@^>LIK}# zRu^2i!dJf594B?T6TXztW4Ev;cqL)~RO35w+*IHudg1=T>_^Sy1%3XM>2%gG1*bUn-HxC>#3TCd^F!2xcw`VfvI38;TXaW>bR-{D6LA^JPIAC;aRcf3DyFWxmqspK=DW4S;}yO2X% zg|fILZ|%aqptw*^aiOl-bq96Eg_>&DCe)VdD=ySmT;Pl^I6||dBgU7E+1eeP>wytu zjUD#>7;V(&Jw%`P6n)+c`|DBg)X@%mZ|txShlI?)*zrRTXCNPqk^Z7@A4bm_G1t?G z2ob$H2z|N;v`GFVM1Mw#{)`eDXE6G+5mc!^M~ME67yX%l{=5w9fO;}nNPCLt!&##D z(uFOME&6R9TH*xF?`+OxJ#g;{@C5V*c$<$fU-NF}kNK`IbbJ7C!RFg6#GJ;WFnbJv zwzXjq=2kWrkOwFQECW0ZH~}~bcni=BP*BcZl(Pf0n?a)jr$Oxz>jvl!a0GOu=!JN1 zQ1?P9eGm@>JS0l4KzX;>3_Pa-W&&mb<^a+G8GtOnT%^eZ6e3;(Fak;drNAx3y$Y}h zumrFSxH{ao0k#94#&ZMi&j5A+o&_`lo&&xK@H}8A-~`|#;4MHi;0n@Q1zZDM2iyRB z1GowJJK$TucYs#FKLFnY{t5U2@Go;S78uQ30>}Ubpf_LR27nd78qYQWTYw$X<76iK z#2FSr5Ad-kz!T6Lc7ZP}0e|#WU-V~yd7I#~jtz&^^Eu!W;0wTI0Aa5IdkxrYz+MCP z8l*cKZHW>6<%@Z=FM1&aKJ;kFffY*JE&9b5b@0a_!>81y`tjRGSCueSd9;&qt8|2=X66 z{v*hL1iHuxZR%^jgx)%fo^(c!P_1pDqnc1#BXTu?wh^^3q83Kf!U!r&pwa{?O`y^w zYEdWXx1fz50L}qE1Uy(CM>)+R{Vt@ZzTAcMyO4et((gk0`}>l5{jeqFVWd2al!uY> z@SjprORh0D^n733af%I_ig09jokP1kycQfaqh_*y0{ziJ44#t zaPNaY2*jQGZWiuYfD*tGz;-|b;2FRUz_Wlxz&C)KfWHI26(jKiM&bpG#0waS@D_mw zT6h+G9%|t|jjR^LKLDHqd22@{^G|K|Hj2S!=KdpRzgfACE5HBLwyN@{-?_4G*FG*6Nv=$s;NfAD-<1uYZYu3;@(ulQm{Jl3u>9a0xbTM7tC>OLh5_I(~ zzDcbWtYqFu(-Ie&{3m!y1cS&vAS_Y$iR^!2ZoHm2&y!<%1!b` zoPQg{SVo{@cz~a;UhnD`9!WfMb9L1D3Wm{>yK4Zwb#-wI3yqA72y@Zv<(@7^V@%Gl zy}1WVjeFA7(2Dx;8N2fzeJUaPsp07>bBYs}j15St|Af~spYQ+Zu)L*1#yz*ZeVa#e z?YNApAznQ*Jv=AQ8J#`W7?r*=n|4E6%&kg)T{0~90LDg9*VcCT7%O}P!d^CE-j{Ny2Ol7CqKWhl~$bNg>>=p4TJ543eO&?h^ zXH9eN!fV^>zggm;OTN4Q8gV@rT&M>Zye(yl)_Y0r21}7z6-0}ro~7?qRlQd_d3pNq zZjC+4lgBJc9J6?0acN`Ps~(GQ)bF@fF=$#*v_n$H&iX=h6OirMSl&i1&bl>PCFrCp6^R|hXG?K1d8_!uICCDGOBPU3G= zn1dv_Eq-Ty$vaDm>eKpKwU3u31k29hX=7(Cj(MbN_Uuagrfvm0J(k|s^308eDRn1u z(!GXNWJRZKpD`kP$E?(pIggE_cEV#K9oA*ScElHPrH)!7J2~mdA@AzgMdKfu+TY7- zSTFAp{nfKvRVK|@IMmK=v7MbqT+H1A@}$B-xH;HR)kPVnl)+wn1Sdk_9f;MWG0gp* z7(!xwI%E`RA)Y>BcLt%Dmliy~d|F|}?xxDu zbK>IF^%)z+#}^Iv@_OW<@!7m=_0zR~Y&PznJ9ocv-fMYzugx=7RT+zxEa5MXi>peu zOHEf@lGY^`mq(^1CKiq=9x)(xSo)CYBJP zq|nD6PkU|Qi$5&MIljF8BV95&9kh-?q}QScY)K!0W1ad=1`+Oy6D%Qs>IP*;)PSJy z@Sp)vcQfUaZE?tJPF7v`Zjl!!f4k=8z5#(zLQ*0?#YN9YghWOX9rgC8no(B6=0_*b zs(pw!-qPT~TQ9fANFM6Y z9lVtqBKh-e?WfclX_jZZ(2U5TOmO*Q`wl%UnMLto*~j)@i`=CdBFmhl#K6?_Yju`3S*R`FL|)iHKPkuF|Oo z(PN@qe2@9pJ?8$WE~|BWpwHyvU$uLK8flJH#Q4f_akF-0mYk|wc)I=Tnw}o%M_0|L8lKd&z|=G? zZt3iGC(a`%8*YH0`=y*k4?qL+{T3e5r>5!#XFXz(ApBXpZ!=%#rTyn$D4Y*Bwij>vWG* z#N@?HNj8B&sk66WmZEP(sLSn>03`q|}H%@0mLH>hW}wR(KJ4f$?Jx7!_L z@3wg9RC^5N$9@G$Iw|x9M>+J*kHY{gQ0q>@du4S}-O3A2s<+fX_!WLlt-}j%)t48l zTk*SXKdUY>m5v#S>ggQD^?EclFhc9WsHmX5e6atIjq0`mb>+k7M@M8uMo*4(_C!t2 z$>DcbZffxN-PGTI{DRnY)TID*Ndz@~-(4EPF_*e>AJ+mYy#1VXv;CqJR4p}ESGSLV zvst2gD+$;iGQhfLrNkiFM|Sp+!}-3GeAmtb)y`PQcYdO@-u2*d>PdcFGNNxtw@gAV zC-^kM<5EXVXf%Tvyd+l_2g$Fmk2aI}IO2^^4K4h$wTDv|ESOLp_i*;EMd}$o`0*uc zR$^`qFJHHMfzmqj$&|upd)rN2G&@YP&K(UKNF61VF4+HiVFW8NtYB6 z?nJX@=d|6`0IJ?~yJo{r+ur{rcz58-rmPopCqKXV$=CKQzUuKJf9Ukb+-uAG&-s?G zn}6+vy6u~UPpjX)bwd6286~Z)|FWwaHh#U7>I*Np{1NDhdBn#R3km^eWqo^{G`jtm zRG_rhs;RZ=lr=~Ve!_p&DtgS4(#NqyYHM$lBHLRiWm;|f8R{?SVWkXw@P^mQ!U-{x zJirOf`i+t!`bPLTN-OK`Y);$xw*_0SOx!wh`?UEdOVeImF!PDzknt~G^;A#uiyjT! z>-6)#?Vh@DMR?N0>hGI2U0s^|((=Y1YCL$qPizX>H&dIa*J*bVZAuEm@(807pO@2J4DL8a-iM+UNU7esPX6V>39ub9MCZi^D!=<(>H>AvS z?SK5SV~5h(cIK<`?fr2=qEeJe9HyK)XcfU>o-2j4hoeS~Yk<~jtGkG(&;X<>&^nyh3;RojoR1J2dQV zFZ7`1-%)IkE9maUj=tQ5zU+ok)K#iU^k54*MTElw#(;8?Y8&os+<2!!3-^Ec;r`do zpZD0reZKgL`#io$y>j_W_3Fk=T>9e|Zmr(A^Sg>4>ymIz6F(+~8rf*Gie_~B`8kqE zlbz{zhHpLp<(KF0+*z@D^@=-6>&FN8pI1Gl!dg=qt^IP<1BzC^KKO3wPc?Lgf(nen zG~x~|?+Pvd?`r&2%EsuL^<_R|d?QlB224@s{JR#YEiVz^SGVoqYucT-!-g#zR;%ACtslPl z!iVjuG_?JURI;wvREwTpi!l|9e$d*8d9!1k6OIP{Y2tKq*I8!HS=FB`leSIUm^`y~ zY-akEhQ{mXn=f^*@3yLH@!ILLxw871c^5op9$1kwKWgZlA(OKDBo5wGv-!yWC#Po^ zlSfVVP94y+Ji93!HL!zpUO~H{v1z^S69w6Gx063nWBnTZl+4;%|GQO6tv^!kMP2id z60PE+Uq+2TsgCETo7JuA zD>PnJh;IAZ_Kp0GihX~~F-(a>ZsLtrT`=a+5O^`7>o3F`(#dyWfL20i@naH^XZa%1O3X zQx5V2fB%kSn;UIJ?nvZDPr}PYs)d$Iq-mr*rk7t!tT&lXwWRL9IptNpyk#}l|6Z23 zU!C;bcJ-2ai}L%T?!U=DQy;=Aqsa`qKf;GM*Yh1}X1$upcgR1hDYa?}-%Vp`A3rS@ zNc3A>LZbKKK-_8aAW8V{?0b0{zB;B=mUu_j;c01eyAeM>nzv?+T2ouwp&euXEA2RC z>(`4GeZ6(dl|_rLY-!rPyQy){9%x73%a@@YA6KtlzN}u^w252)^b@q>uRr~y{z@%M zN6@1DKz0w=nU3hih{#AjzPceKKVtX-<%hd2O1O`ow9PsMsh2^jB-F+aT8EbGQBm+P ziM6`H&$5)m0^VT2`rg&Yb=jEZDZizsuUb&?l6w)an~M`x%~aFVrOU^PHmCb# z23E~Xugb|O+BPxmg?Sm9^7`iX%}a{jgpvv{!hKQFK+?FuQbd>+R*F;>6n2C~bK_*( zy;3#d(@Rs*URyV*QA*h|bAA1Yb@Ml-Z{EG8I%8X}#_p9zN|v0SKY!kWr{-Vqh?u)A zds;>Gn%vmzA&bj$Qx{LnFW(fKQlFi*A;7nxs_?}*#C@_0LzO?k9ecr_Fjqg(<505F zna!6k*SA+lo7DdNGv$xA<15vVcxa`R+D^X18mvNo!}!xIHK9#Kt$lo)Nwdk2dsuGd z?vTP4oUY&v&y}x!T0N`oigd%?w0Wbk7+M1G?l%u@JA_qW28FH$=3St zp{jT0qi$pa>A@i%>;re5l`M-J32M>(UY~S2Rm9pf^{MNNVc(RzJlAGVw}PBkPAhur z{2eK#*YgYCUTUhVGd)@{s?K8^xww%-g^>fwSH>3Zm?IW`HmzKSjv8mQn zzAAQpf|xr(pt;F_&_gaXQ@a9uNS9OEPb$eoH?1NuH9OB!y|2H-kddK^;W^L1&@rI8rNN8eE^d<7RaR^nrReQ5x2KmJ%%9i1wD67ENAtfpFs^d+_F}N! z13uc)$JYG*QsBt`g^!QP*>5V}J16CZZy!IeUU)&Oiz^vjR$E(Ex(b?Ot$Cc1t=oj} zO1wx?wQIYwYG<2(5zG2Ih)J%`C?7FNO^CP1(2R}O3Gid#Y0S(Jjn(}t&NB@3IQhg&gV@f}` zW%}It(??C|jl~e{-?c&}RO~UsqKFmRA_jd+zG;JBr?=1GAi28AUA$jBv+uM=M^5rv zTD+*nahJmv?=L%=l~*=$g7>)4xY*FpF{Am2)afNt9`cV#2v5w*n7;YYj3-m)u8ZkA zd~)n0b$4v=!1$2^gW)BU$S|_61|I=2y2$Ytv`i@3L-sr+uw-JT-X6Ov%6IXx39tPM)x0L;KA|#i?tO zrf+ybax)q+Q|2l;lAm5y^!#;&b{y_KAIAQQS@YxTWqknY6K23S!v7F>@+&n8Je?LJ zJRCxlANXqmPha>G{#$_;>s7-*(82nL@Hm$fg!EW&$R7zjcrMcaBJjeWAn5p5(uduv zkFLG5K8Jaf`43CEjRLRL=P-Bf#9tG5tv-i&xWEhg0vALO=`txWPe!YowTK^q|p8utjUxX)qA$3{@ z_L`2c#4TW#5?13CVKrVI#m*ez1+Vnq0k8GxQT8170bcZ}z-zoZ$~F?-d>K5MD)1Ul zj+)CvdeL@)*V=v*zdb;7L>mQOYhwpKS4oq;(oIDhPYkAUd%)bPKdZE%XGRMh7f2qz zE-Kj&*fEUZ<#gvl|IzUAp=ml?c)GOBiWmt-p`_RAj*VY6p}izwO4{Dak{4%>Ypj`8 zf=@?N3ytB?()x#n2Zv42Z#ArL%Pu&$YTQrX1-$m+qnq-pKG?N9*f{8kw}0}89VNvL zubVt|)%Xc3rX;R3g-;nYb9Pulx^Y}&Rz&+LU+?iL8ykn@u1?%u?>x(?I4ia=HfR4o zRz+`9e?L=9Evi+w>3@SBh{m~4c+34Y$BBPfs6qy-P}_ll!qtR^iYe2z!`l`f;P2|%9W<(Itwfqgva>f(ZvcQ-A3XZ@p( zj`SLxJ8ef%`io1)Y}%||hz!jKAEeW?l%MpAz>|a;K;>0|*JPB^YchHeC$1>H zCZlE8GhcuhtR;tUX_*JPCFXfoP? zha^g}&|g1_k@Wgas?9cFrwXm3VGoBwcbUHdHcgB=!W#Hd^Aa(>&~j;zXsed`;LBwH zKFcP_i%NYh9A-m?bZ|jO zugjGxCROnxBlz)3HDnD6VngKysh?#Rg~h^w>I2{nE{$$#Gy=JSA5jwskhXxuD4Uf= zXo)^pjXL{9!R-n_9zd7@?pJ^x+>y>O9=VIxS(~!~XKh+MH+%AMuT7rk?9TZEyf%BO z=e+vy@BsB(40kKwxdq%wy+u%<))%PXb2q>;o{N^0$X3!h{Du@(QAttoUZ8GK?gn>5 zpkddc??Wy+RXSY^X+4y>qfwr=Z%RP{#}Anl7EU^lc;N!^%w$G>-Cr>V`G=5%~=*( zI4x~fO3JLXX;J|Y8X952^x3m#%$PlUI<+X(Tq51pT12bs)CT@XqwX-Z2mU*=9d@+n z_n+Bx;lKM?f8lqSfAl6&O4c1B*_n>TAe>#UEqv{*TP^zPwSUyDW!!wz9LbGZicvlh zSYKhSXjCh1-QsIo*6Iq@3U2c6<=x6wu@1C&B1}B3il^;W?+jIcB6;pnvTsb^3Zz}%|6z&hw9iJ zrTA*4B#{+GdOpHZS_C=0i8dBTT50<3TNVus4j#H_OP9jbAMPi+cHyUMj))=;ul}?O zWt8)i@(a>OII+l*wAB%;SF8%ivp~xLv19YWG@rt;{wd>=9`y_u)g#%zY@FBZM<*xr z_8rbo1{a!odil5x84_8P)6>h#Bb;=EI60w9ghtUc;t8CW`yKce*oJnxS-|%cTH*wE zUii8+U5i-8NzF`FyS=~cY?lk z0A8c>awnZP+51BCY515<{7LhV8eW~J99LR9@uws@W7k3FAD#H)+#RPgB{mNdau+Kx zSK6VBB_CR#@T5`b=#GV_A9pr5y8A`J8+5n5p?7a-c>CK3v)g<3R(np^^c=tSRqx(U z$Eu$Mz~SCYWl^>L+y52+7%vMAQa8hwc5$F|t4CzJUv%Q%=CeEIA*5f`i9dv2o}~2DOM3*J{(}B7_OrkT5guI8 z<5zdc(ziS#<{;z;jdlLZ-HRY;e*5D){%Q+DdZSi)<1cnGPz%ihqt``pA^aZFJv{ZLhCgY(s^QU>gG66y_*49!qA!VCWqOi{0iu;}TCDk8bu8_2bmE(N zT_?B71h=&Ghw!^ZLFjwpmbNp|jl9D5HYa2(Y&!NQ;$?Jf`)(-(I~3OKzsf_ZtEngH zM9*QR6=$QwOpRZ;hl&G!7l!`^QIu5J7T>%I{}q*m%{8Bv2K6RyP_sz~ z>tkvtzogFNH$efn#;?qhJQ04ENU!0K zNHV@45p-xj102%uINgeT6173>bI8J98ratz=hz_sV{m@K<9*ukkQS^;S}FAw+a91J zMzJVY8^wn)j;UO2bW_i3_+$7DFVVxOKXy4f@y-0CDEBP((rNcY>}5b7!?`FN8`zq` zSq#i9V3dLOROIy0HKVL?93v@H+5TeNb+J7%pzWU?4XTUfLA{!k9s^IT$B*I(53(1)^zB*I%? z>#sWd)%vM+errey&R{&y&X3RukWtq_%jOTtg<2F2CqJL4GduiwPuc-ezx79qc7YI6 zT7U7QoghE;1HQnI_JaJyI04OMAt_iaLEj(7|0-dTP$gMtDh+=O|LXsF z8q*uIfaP2jO`?{qbm30(i*OeHYgc(-*~@7~FQ>)N855f|VtCfjLCY8B{o4L>gPbY7 zoAPWy^-EJ7dp_>wJve*B=<+c$_*-|e-H=Zlw!=81oe}yy^iD6fwr}&i^eoO5XnQx3 z|I(#WOvnBWS|jp_Rt^=dKgOntR@$jkh#p$0;ooL23ESOHjkym`r`ff&H1>gn=G4{; zZ{m0Lh+En^f<}pk?-(T-o<@m=7o&vILo;JPsS|&SmkG_RrKed|OMjftVWCJbc7zN= zfQQF|q(EB3BRlZ=Upw(f@f&V~I`NgA_=6JX(H(fh@J{^e(olhSf|NxH>A;4Gkg`Z2 z9Re@b@EZOoTQ1i28a@wnH2gvQ4k7VDqeFfo4gWf875L4dA0+6Hu+Xm&^aWn@i-tdj z|C5F2Xn30GH2fj_#vb7{>uM?RnsxOienpR@Tf;k9@OpmoQ-KAS`^XnNQ=j5r2rg@> zPjupsv){~m$Q1DUXq-%uzKLVnHP zw`{py{imau(`U|J`zUw^4Jy}*Rc$v*-}LYFz18bJ1(yh~=f@TjPjl5YIumQb8u;7z zolM?IWkx6d5RVl-gY&KUj|wt@?=Gkxkzs*>*T5^qSg+FAv;G#}c8AmFFVBIAldt44 z{m-Xg)tOSv|8W9VNvx`ZE}@gRZTcy&5 zWeU!tzKuHKu;x=a#KE`D)Fk^_>XWaLrp#66$#llomA+Al6)PHAphdaE|1I{fqx$|g z!de>h*zl|cL*^&vj4K*8HZ(Zv5%vB5`!uk6$S)vuVnqJjL4hHY#sv=O-^b^}|8zhY ztq^B=bu_ZE#|{njCjPf4THR~-oX)epnP`nx@&7+h`*LkJ8T*Ksw6Mqc|HJ8D^NffD z`@SKv6cHF4ElWxNpN|9cO9Ohu43vWWeM9004_@5KGm;36XNPEYgRuo0xAW96R-1o) z3RN7r{?plE^#dv9fwQP|pjHeS%<>mug_nqPg2LXv*gz)$Q4@$9uM@KQBWj@MhsKf& zCIS0DIw#Z!9*Yi}{bGaq4cY9JQ|BaXc01VYKXm2}5V>Kw?;^|n7|!Um=`yiSa3#55 zZc;MtT%1VWD2wkma3Y|??uEJQqEGK~^0?EwRkZWQphy-H&KrYk?nIF{b9noJe;idF zZ)gPGL*U8h{|u!Eev{B(8vY2r38nO#)UkY%phI{)Z^m$xXk~cM50`|M08Y(1#=7!W z7qzKDx>S%<(DpZRL|LP(*y(LiqUIAgjQ^v=sspdP-ibek?^7KJkDA*F-K(W<#xL(v zf45*2V2`oh4d(^mEx`D=j~~t*=bJmHF*-$tqr6wZDC?m(qCLC*MY|RE9U`xF>*SpD zWPAR}UHpd!#6mlwj9StBaZUFuYTHZj?G0|*sh6(lNG}l{bMghMYYOx}M_tKV2Vd{M z@zhy1`N{2_BD-&H`#X>M%hS#BiMEmd{)98mQej396P)Rd-)FdA%WEh9yOea#WBBi9 zZ>ig&W}~rrQPo>U<6G4;7L8cFDs|ED)pF#5WAo-6TQGM^s-IPRku)esb{dpAdV0mM zA>}htO!oB-ISv1=o@@S-W`snEQ`)e3eeh+M)`Bi4rD%8a{%>DM-u~ku?S}twMq7XK z_c)Sm$h@o*HUZ8PkUfa6I%%KoDd3&N%tUzD1cO9sbrPMUMo(+0@r|eOZHbf7f=VBa z3hyJRXn3+L2oEYoqEZFR0^b~2uw+@_cQgck+t>Ab`hkm`;T*(Bf4FLbUW4RBfD$KQu<#&0kXUfX4%ITj;N%&|X7T@4gWfaG-CfnoZ=SrF+PN>ena#v zc%n~u?1lzo1!ut$bq#xPRwoTXTchzhds38H0C`Uov;!=(e-L%o@Fc;6hXfBJ&S+Sg zkG0f?xGbo^W>KQV9Ogt+n5*<^C*HXW-ot_y>l2IwJ*{#;S7=!AOq%rG>2W=sq7tXa zaq1mHWjQ^rHmKW1%8BF@Q~KZiZ1rl=ySZkwI8{no1U}Lnv3c6zlfjlGyzCe++R0b= zkaQpy29SIw?pU6v9fD1)*)eHU%~U!DJGEw{8qbfP;U{{Jd-7Uc$9dSNu5TSXc~R^0 z+IiTf?-mu)AI9olwLpAdfH|B_eMQhP4a9h~oTZEu9~TVVIj<7m7>ExH$U1l{r!Yhv zuS>RkUqG!GV*W{a5%z}-d@SIlu-Y{uI^1YrDI>D#lIyEywSCy2<|{_~l)cNPk?kke zlrO=l{dhTwxB=@Jb5^r5-r_gA=dTdELY-fcL2pP-)u)WcQ`OaP7Ztr-y=LXgHS1Td zRK_p<{mtWdmn^w^{LSANul@Y|`7gdWfBti{GaaT$i!zw{SbtBD{6u9LZ{pQ@^D+{*|sO2`Y3;HOLI|bl>S%anM+OBEKxRYE${AH$$_x<*u#4!K~4h;}*}G zJF8+wR>g+l)9TW*mj?Fzf2zCoxTdab%|7QO)Yht?C?Y?R30LNB2dH^MXhLU>#J66JA;m`)_Q5j+Wuy=o!ZWww%3_^XU1!LZKprm+jgdo zC5QX%b3z15eazf{=GR7YcJ|q4pMBO^d+oKq^_@4@SDz@xcn1#$A!-zlae+i90>X%x zB*nH7z~s+bo0vXe+pIn0+J_{zi7gl!=;ALR#$iGK+tL5;I0YRe;b~*;gBcZO?J>wU z5!&Wfb#B$ZE%nB2x`PM#!ANF+Lff2|SVDU))vWvIy8c-6s)nVV*{!=6)AnFK$9dvJ z^XZn>cUIZ7jN;p%bvkGn&3l&vPn1eAW?2BUdJ>Od;LDD_$*i%aaj9KDG;kDgS%X>V zUms=W4(ub9LlN0$Lzy|lZ?wY{D1d4_klB*v!Kx!n=h}e-oOJTwj=I-s05NNPZDYc! z|9n2ZF@9%#Q*Yn(vQw*9KY`arFbh%x_Pz+f*_x9jr2~I?;&=S}N0_6C@vZ6USyR7_ zYGxJ2lg4xJkIv8eNARbFMgorke~PtoG16U~=)w;GR3w;T#|qJQFRxHpSA1M!=msC+ z)9MApMo2i+HF)6s~@6csR^{1hbBx12&!aji8Niv_rrU3VW8lUh(X(35e9Vp4ndE4S44ntP8u zvA$%F+o36IU#rFPy>3O*Q?>6uASM++L{0%r>f>~k39IG{#TAh9(Bc`y*Ta#y);s6R zFWmbVSanRd0*Nz>&jR36`(2y7_!C6$)x?~eX!Q&5!5uw?JDLPv7JeVqW{UZTHdFs> zj4}%_Rc+(NM&{Xr^{k8rAV)SNMDBhoyw_wXP% z)e0L<^+frj$0$zq0>@FDYTaoHoUGfkr!J*Y-Tx3c)kBcB+qmC5Hslb+s9vF9Rqh6G zs$4ckr2swFp~s0f8z*|H{{&K1zw^J_OJA;@6E?SGcXsZ+;zO?%XYfaCNYyKi>HF$t z1<%&Cr`nOKrk=iWk*bEd4~kUn#y$86dNC4ByED`H-VdoNU;oRRQApMPLJWA-8|$mj zcBfdbo&3U%-SoHk+Zet<#XjTv=Or8n3#BD zaAb)xr+R+O^tdHn23*5}^}q|bJNR+poG5Pk*^wBw8GQutEl%j9H?=Ffh*_1Hou5;# zm*tdYrpk;?MU$Q^tJ|egXpB#}M%JV+&CH64PDxS6gr@|@RhrfqqnFKa$=4RQie4wP zpBWbCaM%Hu0T+0kVT5>)Um7|(z+FqW@ShPkW|*I#J9{>nCSjttK&CT$@Gd>94aexb zClE$sk?G_KO{1FRo7I{5=P!AXL;Ue+ZWCu~-Pi4iZ*~nWOHye{llw@`vU&Wi#~dZq z)yWN%a}mBAvm2u^+ddw`!?vf~+ED4RDPtb~PU90P$99%&m{2}J5wpCJ;iPeeVat1V ztWM0!OH42tT}xlAdgJ3dW4PiMPfwS*=}f*I6_p$HnJSG=uT*8yXAMbbLYco(?Y5!N z^T-N*1rinxGf(FktY*}Kf57|(y~BQvT@I;ci$PdeK3`t}#t8AGE{rEuuN3eiJVMm5 zPiVWCpkJYIdQSy;;HF#^~t%b>6{CcIdgK%2#UH( zdp8m}w)GE?M0?*zkG4L(n8{9BQNVB$8w_Qex34mEr|o!FWiqK$d3mm}Rf+1XSNmQ4 zXPS#Tms{Ejj<0_G4`hcvPMwjVR;SaI4WnSrNHV03Bo-aXK}ivlLu8V4lwb!*DA~Z| zFwaQxP@=GvSa8-0!dXgNNhs>1ErgPkw55iddCg*I+T z|2l3PYI_?u9&sMG4YjQe=%wQ=Ng}QyjF51ZM}(`WB>}=!f>A>wS&ACM_z3r65NmL2 z@mJKn_t@$8v9o)(96Pq9=fsJgGK;0G)M9bH{NB5lF1`ES<-DW){m(z&-+%O{?d;9e z(ROy~^ncjS$}%(>qhqBcu_+yPwkUJN&d!UTksJ{%+S#ZQrQt_*_LkkQ*tKG8O3*{w z*=n6&XSJ}i5!yuxi*Ze!eA$d?1=`~E_p`G(n>OXc&Ta+n#eEz*+y7v8wmYdoLki65 zjQrOxdyvEY@u@Q(pRJuO+S$_NL{RTMNmlATU}vS$nyS%u_SVDN*=Av%2-7olPz^>y|E$fSt`dAlO+>GHY2xLQ-6af9TZo z$<)r)Mij)TEfUF`WSMAZozv$n)8?+C+9KN7(IaS=sQcO31T&MBY`3%9Rtt7E!DLFn zD7wb3NK|LOvUi66%;I8dXY&O+yIrqP>vU>0<%uXKA29E6!?t*bedBK&Wb9tkmekZO zCexOsOShQHD=W*PujGTgS2lN_&dWR9z4?_qDD9r3NB2N!;Tw^^;$1O9Hs2`Ui0Z6j zu8)TM@-E+q3^C6LJ|g0xbTjha*?fU%VY_8eTewG1TfsdF)I|t-ONMIW4YKJ}b!A$? zMS|+e46!p}X2jZjByy8^0oTIXN%=7Oe55zZk`-J;!g3?B^L?{aqNfyXoKiF)X{9Qq zK}CHf)p~MsZmdZjqVdj*^_9=JDY8cI7nUyJ?Ye0O{%n=WtRKP9uc z+hctu@+s4gbpw1Ry4z`ACynDXiMm{@`LQmqBcFzpL77Xmqm@}(Pp3af#7$;5#z$Bs z*>+T^k9>!!NMbIZ-HXC6c0UUJeINbBOf;&ucdwB|UrM-- zk-Y#huql9fsnaz=z(StQ-JB+`h4oo*!LYEn7^rJ$}6b>K<%LaGLELoF24L z7Z#Ga2r8eQo3xqSj4X+Z%3J`o_lxsh7&|X6#4p@gP<)v&B%)BhNVgcO?-A|mBlDOS z=Ha&(+OJQJHic5{#~qv$q#u5xa1ZxbA%R0}bS@w1Nm(P908Oqx!#xshk|k8dDb}Pa zYcdwbZCbG~DZrEfzm?pKsY*=D%6zKa)o-R!9~iSjrKymGm2A6sFGw9gE zgOG#qW!T{g_En{r$$b&SuBS6Q-e~)=FtZ;S{u1nQ*Wl$$rt2PXvk2Lv@K2$+S6inY z%>r}W5-`ZIwL>l3-xR??DpgRh0{1B&eiw1GYgpq0k*B1Of#%$am;;*iCR(2eY|Dg= zZj&*48EkoYo2DFn{3^}Et6ZI6&%@KOJ!A6lo_qy)cokb>ggiWwL-X)dL5l?5JvrGy z{O~pl%DCr14#G~!@!t8rFn^{f_NDF1~}t|E0pxhjB`mphbk z&g>hU523!3Bi=sx4E{nB#d5TZ*r+YfgNW%K%-ROh!gn-~y+fBqzLlkr)=1Kt!e{YW z_OEo7L_179`v$$|GQ2Yaxg}(nUrzQm@ExS3jJ!-)O zQ>!8B(>T-;BPPLP@bu?GFQwHtnY{O90na;(=^TaF8SO$~XJ zxv6G+Gh zKfX)o7AM6l3A><7#GUzlA>e5YcB0I81`OT zv-W*PQgUcKfL zJ&B&Y*RX&2*|qHh#+Fi-WW9Pzx#`KQ65aak6vZ?84g$dgj|)61e8Cvm&C}Yx4=_H_pewaOF4N;$>)D`N^>UlwVyolNpq3UvJ|Ni~VJM8qKFNW0gU)0Nje(i>S z33&BHnkg3MEpd^Mm#3bd&dtvyp+ zeWq4JbHp@B4Qh1*N!4A{S%U`C2FW}4hnJ-drd_Lft#0Mn>guyAu{qMGZcI+9PfV;& zN=B&bobE!};CbD7UUoinP^TM2REc#6MI@ExvCo0s@}YWiPu?xM=Sj&{m;;AzZrt|u z?zg`M|JL!E!sp9DG}`;K6D@zRa?DHCZ04n(&E`vHGs65}Q+HthCdh>&Fw^rO zLui^_LP!*gu*K?WzLz*qo}Opf*r5ybvx@2dgY{at>eUk`UR9|E{-w;y^$pj6%+yYR7ycEVa|75EBL7J?1yj+_yVLjO_7@g+ zs`9hiFLdmy{O#4|)bhhGe(_&#{)fxH$NL(4c4aLq9nGd-nF%(9z-LFZDF_5fHa3Oq zSzh$nEP)hK<~LDG?jeOD=b2p$_Z|MSZR=llyzxcgF|R}Axd+Npo^CR2PC2pmw^nDS z*ILW;j+MjOYbSQz=uFyV03n=B5b-pD{bavKc90ZrVW+*xgQR4mHxI+C&?hh}Z2N`4 ztWdm~GAo$Dtnlce3t(0_cTZ*oToLA@HS8X?oqD72zL3@nZ;d#Tud0YUf4z##A?`K&H8Q7$zg|;=BR71ZMW6B4 zYKS}fHsG+8wXhrTP1q$Bbad1n2kfYQzXJ?F{Gq_;=)i^1(F<*VDJ2m9E192vbhN*p zj0uhm@Q;e}4~Rs27ah#3p6$jrA>)%WRr!us067V+;jerqQU;k>pP{SWU0tLV^g@io z>v%|oY^`_}P>(L&5fZ^}d>X*Wtrr8BDr*bVN2IMEMt;(KyMcFTqHlT~bC%LO%zK6; zOhP4zji3q9e%6aP*+kE~-Eh14lgJPG7U8^pT&eM4kBCn2cRy29UC|IlR8sU8)wegtWe>X53}Z1 zB+p-_)oR@X;@vam*J(Tr+J(wsXYUxdpZ@+v+KkVNXQxD&6Y6D)RzY}OUKA8Gb zqvx<0cW8=)^_DMKoU!>4;c{n6LpIXL6z7N}9a5dvYc%$z$=6rSpF6**H9CEV(YPZ$ zx^)E(tJnMJcPw1ELmyrg6H~;j4KJ3&Kz3FZSR zyi!^n8v6I0kiv4_AIKKU2uG!uioFL|6`^qW62>gxW$gB$7gESq$B*+)DQxc0Dzcfm z+SwU8^v%#WA)TGLEAX@-i?xsLOqQ{5P`sylLSf0rZ-(=K_9B}HV#w94)|-S}ij2-* z!DmV5{(U8Es|||!Ls@~1dpzhO+TMAWW*4@!a?mW=N8UB8bbS@v_K?c?P5-)?`%{QvQD z{~-hqOACO#Ld-cT_9HqkjJ9gbqx&h_8!+=^Kl{-rwl@no#;KVgXc9#zd04;z=*0we z;Td1X4D(0WNGa({f_FqX%ov001|07Me4at>`4{Y=5jHp_&ZRb#Ok#FftLTT+b}`a! zoEM7u;2lJBq-0kum6b2RUh$5|USVgX(2dJTLEnmGud5tkx+tiy?qaGc#xh;tI*1gp z@3XbI&hA>;-#f=o3CGx%f_LYJ-}lgCyh-dJ`wjC0j{5;mAr6Dc<^NjDC|W%ariAatG9{cRMPN!8;BU$JzujR< zzzTN`{G~p~F12d^4=fZ_Z0!D_HywGB_*v= zM5Uxefr)~On`=y4X=$rm-dbAP76TTFLW7|YEEF{;C~1?++e+}GWu%zSgXI`iWLBd0 zh&*Lc)8Wa60q6#Azg)Oa{!sG;;^ajp^Z)C`tO4+CD^{_3Ii-q}GeQd@9}FZGI15{p zMp&_XjPgMk_rRE#z=bg}d?)on@P%6)6%Zho2Lwb#`7Myi7WhSBw9C15WT_;VN z>>kV~iOC?`P{ihH3C##8$D!spmB_qF`*3{%!|iH{TYbpGkLkXbg;6X~@>-H-(T%rqF~(y+arK1uK%d$AtWxKrfFa$ssX#LnnG6usI2{IQ%?E z-;j$1B!(g&(J=_gKtuwGE_g2B}@S%Jzi-c?W@5n^0 zP;Ud%CuyTki;lGoJcXDJX=&Tjo{^x^weR6J^sZE=rKwl;3U?~;A>T{S2o_b0IgeQP zyX|C9gfTqa7!e`-?-LT@;~f$r@v)cS*V+(ou^c@K0*BKPVDFKKa+m)!37(UW$emH6 zaLtc#i;9a4o<2L$MKw7r!E;W6GGc+t+$gTVztl3-W8SnS;X!eE!81K(JHe+R*azul zw+b0U4%8}_y9ed_83nQ zn@?EAI!dK)j6FG%PhRL28-zqF&qXxRN_awiJ~J5^)xa-P{{fRBHf6wI \ No newline at end of file diff --git a/assets/icon-radio-selected.svg b/assets/icon-radio-selected.svg new file mode 100644 index 0000000..c38e1fa --- /dev/null +++ b/assets/icon-radio-selected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icon-success-check.svg b/assets/icon-success-check.svg new file mode 100644 index 0000000..54086a2 --- /dev/null +++ b/assets/icon-success-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..b0f7347 --- /dev/null +++ b/index.html @@ -0,0 +1,32 @@ + + + + + + + Frontend Mentor | Contact form + + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8df1772 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2722 @@ +{ + "name": "contact-form-main", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "autoprefixer": "^10.4.19", + "concurrently": "^8.2.2", + "postcss": "^8.4.38", + "prettier": "^3.2.5", + "prettier-plugin-tailwindcss": "^0.5.14", + "tailwindcss": "^3.4.3", + "vite": "^5.2.10" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001627", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz", + "integrity": "sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.789", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.789.tgz", + "integrity": "sha512-0VbyiaXoT++Fi2vHGo2ThOeS6X3vgRCWrjPeO2FeIAWL6ItiSJ9BqlH8LfCXe3X1IdcG+S0iLoNaxQWhfZoGzQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.3.0.tgz", + "integrity": "sha512-glPiBfKguqA7v8JsXO3iLjJWZ9FV1vNpoI0I9hI9Mnk5yetO9uPLSpiCEmiVijAssv2f54HpvtzvAHfhPieiDQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.1.tgz", + "integrity": "sha512-KMXpzEJMsOFyRj6ZpDTnnlJrdr9umUY+eut5vlRvjVixohitnRFIRTFw9MEu9zPlBxTHZo6xD5ftKYiQZuJYQw==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prettier": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", + "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz", + "integrity": "sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig-melody": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig-melody": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz", + "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b8f69ad --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "type": "module", + "scripts": { + "dev": "vite --open", + "build": "vite build" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "autoprefixer": "^10.4.19", + "concurrently": "^8.2.2", + "postcss": "^8.4.38", + "prettier": "^3.2.5", + "prettier-plugin-tailwindcss": "^0.5.14", + "tailwindcss": "^3.4.3", + "vite": "^5.2.10" + }, + "prettier": { + "plugins": [ + "prettier-plugin-tailwindcss" + ] + }, + "postcss": { + "plugins": { + "tailwindcss": {}, + "autoprefixer": {} + } + } +} diff --git a/src/app.jsx b/src/app.jsx new file mode 100644 index 0000000..0ce9680 --- /dev/null +++ b/src/app.jsx @@ -0,0 +1,18 @@ +export default () => { + return ( +
+

+ Lorem ipsum dolor sit amet consectetuer adipiscing +

+

+ Lorem ipsum dolor sit amet consectetuer adipiscing +

+

+ Lorem ipsum dolor sit amet consectetuer adipiscing +

+

+ Lorem ipsum dolor sit amet consectetuer adipiscing +

+
+ ); +}; diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..2ce8113 --- /dev/null +++ b/styles.css @@ -0,0 +1,17 @@ +@font-face { + font-family: "Karla"; + src: url("assets/fonts/Karla-Regular.ttf") format("truetype"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: "Karla"; + src: url("assets/fonts/Karla-Bold.ttf") format("truetype"); + font-weight: 700; + font-style: normal; +} + +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..57f5b9f --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,59 @@ +export default { + content: ["./index.html", "./src/**/*.jsx"], + theme: { + colors: { + white: "#FFFFFF", + red: "#D73C3C", + grey: { + 500: "#86A2A5", + 900: "#2A4144", + }, + green: { + 200: "#E0F1E8", + 600: "#0C7D69", + }, + }, + fontFamily: { + sans: ["Karla", "sans-serif"], + }, + fontWeight: { + regular: "400", + bold: "700", + }, + fontSize: { + heading: [ + "2rem", + { + lineHeight: 1, + letterSpacing: "-0.03125em", + fontWeight: "700", + }, + ], + "body-md": [ + "1.125rem", + { + lineHeight: 1.5, + letterSpacing: "0", + fontWeight: "400", + }, + ], + "body-sm": [ + "1rem", + { + lineHeight: 1.5, + letterSpacing: "0", + fontWeight: "400", + }, + ], + }, + spacing: { + 100: "0.5rem", + 150: "0.75", + 200: "1rem", + 300: "1.5rem", + 400: "2rem", + 500: "2.5rem", + 1600: "8rem", + }, + }, +}; diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..ad2cc5d --- /dev/null +++ b/vite.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + base: "/fem-contact-form/", + esbuild: { + jsxInject: `import React from 'react'`, + }, +});