From c16dfef974506e76db206ab854170f4cb1204179 Mon Sep 17 00:00:00 2001 From: Vijay Karanjkar Date: Sat, 17 Dec 2022 21:41:48 +0530 Subject: [PATCH] Create Interview Page --- .gitignore | 24 + index.html | 13 + package.json | 24 + public/microphone.png | Bin 0 -> 2279 bytes public/vite.svg | 1 + src/App.css | 41 ++ src/App.jsx | 15 + src/assets/react.svg | 1 + src/components/Interview/Interview.css | 0 src/components/Interview/Interview.jsx | 15 + src/components/Interview/Questions.js | 54 ++ src/components/Interview/Sidebar/Sidebar.jsx | 50 ++ src/components/Interview/Sidebar/Sidebar.scss | 54 ++ .../SpeechRecognition/SpeechRecognition.jsx | 87 +++ .../SpeechRecognition/SpeechRecognition.scss | 0 src/index.css | 70 +++ src/main.jsx | 10 + vite.config.js | 7 + yarn.lock | 538 ++++++++++++++++++ 19 files changed, 1004 insertions(+) create mode 100644 .gitignore create mode 100644 index.html create mode 100644 package.json create mode 100644 public/microphone.png create mode 100644 public/vite.svg create mode 100644 src/App.css create mode 100644 src/App.jsx create mode 100644 src/assets/react.svg create mode 100644 src/components/Interview/Interview.css create mode 100644 src/components/Interview/Interview.jsx create mode 100644 src/components/Interview/Questions.js create mode 100644 src/components/Interview/Sidebar/Sidebar.jsx create mode 100644 src/components/Interview/Sidebar/Sidebar.scss create mode 100644 src/components/Interview/SpeechRecognition/SpeechRecognition.jsx create mode 100644 src/components/Interview/SpeechRecognition/SpeechRecognition.scss create mode 100644 src/index.css create mode 100644 src/main.jsx create mode 100644 vite.config.js create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/index.html b/index.html new file mode 100644 index 0000000..79c4701 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..0a532b5 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "interview-prep", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.2.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-icons": "^4.7.1", + "sass": "^1.57.0" + }, + "devDependencies": { + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.9", + "@vitejs/plugin-react-swc": "^3.0.0", + "vite": "^4.0.0" + } +} diff --git a/public/microphone.png b/public/microphone.png new file mode 100644 index 0000000000000000000000000000000000000000..7e07349e86c268d2e4c71db38b9628ddaac1b1bf GIT binary patch literal 2279 zcmVZn=@q^0D00{-96(ce}5*`&HA!rf}0!or~YkdSC1Og}!5DO!+ zvkS{i_sNIZv1YgS1^pP*`Blw_d%LI4x&J?tR{`hu@vkQYnt(r;NjtvamvfJM=w^@POu$(E zlhf7KUjbju)ES0BAYk_RKijfNSypz{{}jTZXypn))EjTRCno|%>*67lhXKPhO^SoX zTseITCH;eJ+q?}CVd{-j0lF-!!q|&P^WL8K`S9?E?JdzYEkT_d4$nR1XIlb(8Uu)g zR#&4$1fk-xaeQ#_C?ZhOKL~(`AX%ritFmE0`N(0Ej~vF414n3jxrt;lc}K9tuoRu` zXC(R>flC&~FSSh?5DF$unZ)qX!(BPF+jHAVB~yqkA4C_}YYVY}>qz?ayuh zbi32?p11x(pdbKnep`_>%geT8&~=X+^;xYFu28wHgtt= zIWQKAuTi*t($sG^Hu5q%Xa4 zB4vY0KP_jTFx)EpjqefodBgVz%+Qx--m@wDP0k|l^O6gFGZ_uV8-YpJ+{I8=#YFr&>{JLphNQg zK!@aWphNQgK!@b}fey*{109mjfevvTfzeQ00YcHL-Y%pI0k&>>$*D`3TH0uHA(*XR^E8l6eww%U-W^dJ>6-;=6&div5+k=-fSLdgXLS zJ^~%$I0BvKknTABb`#BO9|42`cT`hYG11lIyXE&e8-dMhAH_cY5%%$8G_QFi*Y0%7 zIV<32g>zQG0e4hmln%xy9n64PcjwxjZpqn*bZ-<^Ok~glkLB8pUO8tY@Uwy!0-lES zw5?9{#{rUUr##~aZJ2Ft+Vn!e1VCZi$pIZ|l_LPH3Gb%4 zwI*6YLEuOib43OMsF=-e+H_q&AuUu?*Q2N*kuVmM^PkSf@ zTHA{EeB!1}*9BDN-vG8DJuC9Lu{0EOv_c6eN}vF-h6%EBFXK$;I%sZ^eZNTZh@9gEDTN*goa`rbBD`oL^(_1vY z+=!~8=zXDB)r;BtEUtTesK7PADKn|hpS7`WaD6Vt)~#E0+T>fmgm9Gz!54OH{C)QJ z7yiEC{p+X9*dcIJ;zT02f7gDRPb5&=#}~>zV1U zDO4BK#pW#S?9a5x-&-VbHNvwsOXfW7c6&V;Nm;reUTy{03j}PDOX?$)?{?m2$--5` zZPR=ZxD#hr!VXkwLb1w*&KqJiza6YbaxX9tm2Y*mk5fE*qZ+M^uSB>Tcrg^M`gV8w zEnBo|lw}8IsOnV+!&IfLr{fCR3UUbLb=%O5^^vMqyW2Msia#dsLxkr;k*XUVG^YoD zJmSIo;)4oO>;eY+J%<+{RujKL4gLfq4U4bWEUnt@g&ohHg@5)?)kmn_1E8wQ7T3iu z_sUjhmMvN}N)4U_3`OtvN<8r4>#SI4^$JDq0gl-sQ@hHCZW0MS@nyl-4va-)b8Tey z&0a16;Q44wqGZHRK{o+|4b|<@+9$8@%GT0FPmK|bSAekyO*Y9{Uaz0vxq#vDwJ9?d zygef#qFW=O)zxm>iPpwvSeD%gj23uRtb*^0?>IT`l7*{=+W|9%G7|vhS&&LUKCXlutQ!-ni{GZoO46$o*#he^WJS&5**nhU za*KqX_y(BOf>r@VCE(>j$(S#p6HurD*vD^w7aX&@Et|FeL#wwU$xk-HB0-IkoLowc~`@u8xDdjw_! zXSxo`F@fKS#R@OGDZOz{tlkz5hmC%%BPRhj8OqOl+E>t(*sL4S-1d+8zn-7;$;BT0 zImgI+vod4Oj1Ki1R&M~j`x4@8$-k9zNM1mP=1D*=FbV0n_GTDqU!Am<`Uaj zw7Ye1OLuO!GNmyc)2&>@*M{#?gOS)BN!nf>qXM%kcJCQrK(L_ny1xPJA;UfJ?YKvgOLh729zm5ClH8&t|gV=e?R4cnOKl^yS{ zDWN~Wre`*JW}>eM+U;vqr+iWRfg^J5K%P9_@P8gsmS&5$)TaOd002ovPDHLkV1g^s BX0`wT literal 0 HcmV?d00001 diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..93695e1 --- /dev/null +++ b/src/App.css @@ -0,0 +1,41 @@ +/* #root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} */ diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..55b70fe --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,15 @@ +import { useState } from 'react'; +import Interview from './components/Interview/Interview'; +import './App.css'; + +function App() { + const [count, setCount] = useState(0) + + return ( +
+ +
+ ); +} + +export default App; diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Interview/Interview.css b/src/components/Interview/Interview.css new file mode 100644 index 0000000..e69de29 diff --git a/src/components/Interview/Interview.jsx b/src/components/Interview/Interview.jsx new file mode 100644 index 0000000..9f6f2b8 --- /dev/null +++ b/src/components/Interview/Interview.jsx @@ -0,0 +1,15 @@ +import React, { useState } from 'react'; +import Sidebar from './Sidebar/Sidebar'; +import SpeechRecognition from './SpeechRecognition/SpeechRecognition'; +import questions from "./Questions"; +import "./Interview.css"; + +function Interview() { + const [active, setActive] = useState(questions[0].question); + const [category, setCategory] = useState(questions[0].category); + return ( + + ); +} + +export default Interview; \ No newline at end of file diff --git a/src/components/Interview/Questions.js b/src/components/Interview/Questions.js new file mode 100644 index 0000000..9522b75 --- /dev/null +++ b/src/components/Interview/Questions.js @@ -0,0 +1,54 @@ +const questions = [ + { + question: "Tell me about yourself.", + sampleAnswer: "From a very early age I've been a problem solver. I was that kid who would take apart anything so I could see how it worked—and then try to put it back together. As you can imagine, it drove my parents nuts. But even though I tortured my family at times, the tinkering trait has served me well in my career. After graduating from Purdue, I was recruited into a field technician job and got paid to take apart broken packaging equipment. It was like living the dream. That job also made me realize I'm really good with difficult customers, and that's what helped me land my current account manager role. While I love my job and have been successful in it, it has moved me away from the manufacturing floor. Now, the reason I'm so interested in this position is that it seems to provide a really great blend of one-on-one work with clients and hands-on problem solving. Why this answer worked well:He gave a vivid image of his childhood home and told a memorable story about it.He picked two prominent required skills from the job description, problem solving and customer service, and built this interesting narrative around it.He showed how his career successfully evolved before he was even asked about that.", + category: "General", + }, + { + question: "What is your greatest strength?", + sampleAnswer: "What I bring to the team is a strong record in relationship building. I'm happiest when I'm engaging and strategizing about how we can help one another. I find that in sales, some people can be overly transactional. I think my superpower is in establishing more meaningful connections. I've gotten strong feedback in the past. One client said I was the best business development person he'd ever met. These types of connections have turned into big sales wins. For example, last year, I doubled my client base and outperformed my peers by 40%. And it's probably relevant to share that I started in that role without any contacts in the field. Today, there isn't a Fortune 100 company that doesn't know about the product I sold last. Why this answer worked well:She was specific and shared real numbers.She stayed relevant. The experience and the story all came together and she supported it all with numbers.", + category: "General", + }, + { + question: "What is your greatest weakness?", + sampleAnswer: "I get excited when people on my team brainstorm about big new ideas. I sometimes get so caught up in the moment that I volunteer to do too much. I know this can be a distraction in ways that put me at risk of not getting work done properly or missing deadlines. I've been reflecting on why this happens. As I've become more conscious of this pattern, I'm working on ways to contain the negative aspects of my eagerness. One way that I do this is to still go to brainstorming meetings but to be more careful about offering to do the next steps—or limit it to one project that my boss supports. Fortunately, though, the job we're discussing seems well-suited for people like me, people that bring a lot of enthusiasm to the job and are ready to keep getting better and better at the follow-through. Why this answer worked well:He shared a story about how a weakness would negatively impact his work and stress him out.He turned his self-awareness into a plan to help him manage that weakness so he would be successful in the future.He shared specific details, which made the story feel relatable.", + category: "General", + }, + { + question: "Why should we hire you?", + sampleAnswer: "I've got both the experience and target audience rapport that you're looking for. I've built two corporate training programs from scratch and developed the kind of interactive video programs that you're looking to create. When employees fill out feedback forms, they speak highly of my professionalism and clarity that they've encountered. Here’s a quick example. A close friend of mine on your marketing team says that this company is a great cultural fit given my background and values. I have an insatiable level of curiosity and tend to do lots of research on any topic that I'm less than an expert in. And I know your values include constant learning. That really resonates with my passion. I'm just eager to become part of a fast-growing, mission-oriented organization like yours. Why this answer worked well:He spoke about his core strengths in a way that related to the job requirements.He used favorable feedback from some of his previous coworkers, and their positive observations were helpful.He talked about why he was a good cultural fit for the organization.", + category: "General", + }, + { + question: "Why do you want to work here?", + sampleAnswer: "The first thing that prompted me to apply is your commitment to service. I've been a customer for five years since I first bought a house. We had a big storm that damaged my roof last year, and I was impressed by how caring and prompt your customer service representatives were as I worked through it. I'm also excited about your upcoming merger. I can see how this is going to set you apart in the insurance industry. I'd love to help you through the process of integrating the two companies. Having supported a merger three years ago, I know what an intricate and stressful process that can be. I have a few specific ideas on how I might ease the transition. Lastly, I applied because I see this as an opportunity for me to broaden my financial services experience. This seems to be a natural fit based on my understanding of regulated industries. Why this answer worked well:He has done his homework and sees an opportunity to help this company through a challenging and exciting transition.He made it about them first and then wove in some of his own personal career goals.", + category: "General", + }, + { + question: "What kind of tech team dynamic do you excel in?", + sampleAnswer: "I am coming into this interview process as a very experienced candidate. I started out my career at a company that was very methodical and top-down, and over my career I have seen innovation occur in a very decentralized bottom-up approach. Managers, in this later context, are mentors and colleagues as much as they are bosses. I have tried to shape and gravitate towards team dynamics where senior leadership sets clear parameters for conduct and goals to achieve—without micromanaging all the execution details. In effect, I aim for the best of both worlds. The overall dynamic should be geared towards innovating, hopefully in a fail-fast incremental basis that enables us to delight our customers and allows us to learn from their feedback. This makes work exciting and meaningful and would keep our offering fresh. Why this answer worked well:It showed two contrasting choices with clear tradeoffs.It used the question to demonstrate experience.It made the case that you don’t need to choose between the two options and that both can co-exist and help teams succeed. It closed with a focus on tangible outcomes dedicated to the customer, which is a great touch—especially with an approach geared towards learning.", + category: "Software Engineering", + }, + { + question: "Let’s say there are two kinds of tech workers: the innovators and the executors. Which of these categories do you fit into?", + sampleAnswer: "I believe that engineers need to have a sense of the larger product vision. Additionally, they also need to understand what it takes to execute and get an idea from 0 to 1. At present, I still want to stay close to the execution since I enjoy the thrill of iterating on a product, getting smaller features out, receiving feedback, and finally getting an MVP out the door to push growth and revenue. Eventually, I want to lead a suite of products that will help our strategic vision of creating a connected workforce and establish a track record of delivering products that will set me up for success. I feel like I can help your company accomplish its product roadmap and boost my own career in the process. Why this answer worked well:The candidate co-opted both approaches and still made an explicit choice.It explained why one approach was chosen over the other.The candidate framed the choice as part of a larger career journey rather than a random choice.", + category: "Software Engineering", + }, + { + question: "How do you measure success for yourself technically?", + sampleAnswer: "I think an example will explain both how I focus on the customers and how helping them defines my success. In my roles as a professional services engineer, I have to make our products more configurable so that customers can create settings that meet their needs. Since our products are inherently very flexible, it makes no sense that all customers are forced to use the same settings. I have built tools that allow customers to easily toggle options and make the tools work the way they want. I measure my success in flawlessly deploying these features in a timely fashion and ensuring that a diverse set of customers adopt our tools, which leads to customer loyalty and growth in revenue. Why this answer worked well:The candidate was customer-centric, which is an increasingly desired quality in tech candidates.The candidate explained product capability and how the work made more of it possible for the end users.The success criteria were measurable.", + category: "Software Engineering", + }, + { + question: "Why do you think that technical teams need to be inclusive and represent a variety of backgrounds?", + sampleAnswer: "Inclusivity is about ensuring your team and its products reflect the world we live in and the improvements we wish to make. In my previous role, I led a team of engineers to build chat features so customer service divisions could easily type messages in English. We had a new team member join whose spoken language was not English. Using her insights, we were able to build a new feature that auto-completed messages for non-native English speakers so the tool becomes more accessible for them. This is what inclusivity means to me: inclusive teams make more inclusive products, which means happier customers and more growth and revenue. Why this answer worked well:It defined the term clearly right away.It showed how using inclusivity in a team as a bridge to products and customers makes an example more relatable.It married the definition of inclusivity with measurable outcomes, which is a great way to close out the answer.", + category: "Software Engineering", + }, + { + question: "When you join a new technical initiative, what is the first thing you do?", + sampleAnswer: "Based on my research, I have found that your company prefers for incoming engineers to get their hands dirty right away. They learn by joining existing initiatives, shadowing engineering leads and completing tasks that enable them to learn the stack and forge relationships. I will find an area that is short of help, and I am optimistic that such needs exist given your company’s four key growth areas. Having done that, I’ll also help debug and scale existing capabilities. That will give me a sense of the core and tech landscape while adding value as well. Upon demonstrating my capabilities, I will start setting goals to own specific functionality that I can take from 0 to 1, with the trust of the team that I will have earned in my early days. Why this answer worked well:It was based in the company culture, which showed prior effort to gain knowledge and research.It demonstrated an onboarding strategy crafted to produce near and long-term wins.It ended on an aspirational note about ownership.", + category: "Software Engineering", + }, +]; + +export default questions; \ No newline at end of file diff --git a/src/components/Interview/Sidebar/Sidebar.jsx b/src/components/Interview/Sidebar/Sidebar.jsx new file mode 100644 index 0000000..1d497a2 --- /dev/null +++ b/src/components/Interview/Sidebar/Sidebar.jsx @@ -0,0 +1,50 @@ +import React, { useState } from 'react' +import questions from '../Questions'; +import "./Sidebar.scss"; + +function Sidebar(props) { + const { + active, + setActive, + category, + setCategory + } = props; + + const handleChange = (e) => { + setCategory(e.target.value); + } + + return ( +
+
+ +
+ { + questions.map((question) => { + if (category === question.category) { + if (active !== question.question) { + return ( +
setActive(question.question)}> + {question.question} +
+ ) + } + + return ( +
+ {question.question} +
+ ); + } + }) + } +
+
+
+ ) +} + +export default Sidebar \ No newline at end of file diff --git a/src/components/Interview/Sidebar/Sidebar.scss b/src/components/Interview/Sidebar/Sidebar.scss new file mode 100644 index 0000000..8812241 --- /dev/null +++ b/src/components/Interview/Sidebar/Sidebar.scss @@ -0,0 +1,54 @@ +.sidenav { + width: 380px; + height: 100vh; + color: #BCBCBC; + background-color: #000; + position: sticky; + overflow: hidden; + font-family: 'Avenir Next', sans-serif; + font-style: normal; + font-weight: 700; + font-size: 18px; + border-radius: 10px; + box-shadow: inset 0px 4px 8px rgba(252, 252, 252, 0.37); +} + +.sidenav__wrapper { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.sidenav__wrapper--links { + // padding-top: 100px; + display: block; + width: 100%; +} +.sidenav__wrapper--link { + width: 100%; + margin-left: 15px; + margin-bottom: 25px; + transition: all 200ms ease-in-out; + display: flex; + align-items: center; + justify-content: flex-start; + span { + display: inline-block; + } + &:hover { + color: #fff; + cursor: pointer; + div { + display: inline-block; + } + } +} + +.active { + color: #fff; + cursor: pointer; + div { + display: inline-block; + } +} diff --git a/src/components/Interview/SpeechRecognition/SpeechRecognition.jsx b/src/components/Interview/SpeechRecognition/SpeechRecognition.jsx new file mode 100644 index 0000000..54a9883 --- /dev/null +++ b/src/components/Interview/SpeechRecognition/SpeechRecognition.jsx @@ -0,0 +1,87 @@ +import axios from 'axios'; +import React, { useState, useEffect } from 'react' +import { BiMicrophone } from 'react-icons/bi'; + +const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition +const mic = new SpeechRecognition() + +mic.continuous = true +mic.interimResults = true +mic.lang = 'en-US' + +function SR() { + const [isListening, setIsListening] = useState(false) + const [note, setNote] = useState(null) + const [savedNotes, setSavedNotes] = useState([]) + + useEffect(() => { + handleListen() + }, [isListening]) + + const handleListen = () => { + if (isListening) { + mic.start() + mic.onend = () => { + console.log('continue..') + mic.start() + } + } else { + mic.stop() + mic.onend = () => { + console.log('Stopped Mic on Click') + } + } + mic.onstart = () => { + console.log('Mics on') + } + + mic.onresult = event => { + const transcript = Array.from(event.results) + .map(result => result[0]) + .map(result => result.transcript) + .join('') + console.log(transcript) + setNote(transcript) + mic.onerror = event => { + console.log(event.error) + } + } + } + + const handleSaveNote = () => { + // API Call + // https://08bd-2405-201-2010-5080-55f6-3a9a-7e2-eea.in.ngrok.io + let body = { + key: "73627", + questionID: 1, + email: "ashutosh@sample.com", + timeDuration: "5", + text: "lorem ipsum like like lorem ipsum" + }; + axios.post("https://08bd-2405-201-2010-5080-55f6-3a9a-7e2-eea.in.ngrok.io/api/doTextAnalysis", body, { + headers: { + 'Content-Type': 'application/json', + }, + }).then(data => console.log(data.data)); + + } + return ( + <> +
+
+ +

{note}

+
+
+ +
+
+ + ) +} + +export default SR \ No newline at end of file diff --git a/src/components/Interview/SpeechRecognition/SpeechRecognition.scss b/src/components/Interview/SpeechRecognition/SpeechRecognition.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..2f3277a --- /dev/null +++ b/src/index.css @@ -0,0 +1,70 @@ +/* :root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} */ diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..5cc5991 --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')).render( + + + , +) diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..861b04b --- /dev/null +++ b/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..f821498 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,538 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@esbuild/android-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.8.tgz#37837dd8092d98268d0c3cf682c1b4a284d33638" + integrity sha512-TGQM/tdy5EV1KoFHu0+cMrKvPR8UBLGEfwS84PTCJ07KVp21Fr488aFEL2TCamz9CxoF1np36kY6XOSdLncg2Q== + +"@esbuild/android-arm@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.8.tgz#bfe7e05ea51517948e93b190b3d8d8b7f1ce13f5" + integrity sha512-r/qxYWkC3gY+Uq24wZacAUevGGb6d7d8VpyO8R0HGg31LXVi+eUr8XxHLCcmVzAjRjlZsZfzPelGpAKP/DafKg== + +"@esbuild/android-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.8.tgz#fb625a45f3f73f153e2497bcfdf42f62225851a4" + integrity sha512-HtA4BNfrf5Nyoz3G2IS3qW4A0yckPJ1NjCMA3SiOw3zS1IfpMkbepDGp/Gdokc/tASFd38IP2uIL3W6bHJzAQw== + +"@esbuild/darwin-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.8.tgz#46ace701d2e7f9981584ec719cd8da6f6088642b" + integrity sha512-Ks8K1HGFf6LEjLnnVqB/zyaJcv7zMjbJ9txRZAwQwj+bzg8/AP0TmLBMJf9Ahwn6ATnHrhORtpydP8A/mNthXg== + +"@esbuild/darwin-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.8.tgz#a1de180765d63a247a892c3abdf32cc9497f55ab" + integrity sha512-XXh2070hatspZdG/uPqyHLFlHlGbytvT4JlqZuTU3AizcyOvmatPBSnuARvwCtJMw30wjjehcYY8DWPZ5UF2og== + +"@esbuild/freebsd-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.8.tgz#c52f25e4f74c1b50b7242a7aefd208652716a209" + integrity sha512-6DJuU3+tG9LcHCG/4K3e0AnqmmKWhUc9WDNIhLHOOdleafXwZeFvsqwfyaowNg9yUw5KipRLvV3JJMQ8kT1aPg== + +"@esbuild/freebsd-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.8.tgz#fbec93f8fd4864b5882d62e45d2adf535ef2f582" + integrity sha512-UcsCaR25C0tZWnoImprPzr7vMEMjLImlTQAIfWXU2wvjF4gBWKO9GEH2JlsKYqBjfWfGgH+HHoGSF/evZbKyxA== + +"@esbuild/linux-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.8.tgz#ba2799f92f34a0ded78963892c8e5a3117b575fe" + integrity sha512-WTL1v/OhSxgE7rEELRFNWskym0e+hKDMl4JZs7jpQp7218yJPOjdOEWsbzVEYv4G1cbbtWFvp9DtaAONtdCW5w== + +"@esbuild/linux-arm@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.8.tgz#2b17c138f32ac00299bfdc9300c88f57e6bf04f9" + integrity sha512-Hn36NbKd6Prh0Ehv1A2ObjfXtN2g81jTpmq1+uRLHrW7CJW+W8GdVgOCVwyeupADUIOOa8bars6IZGcjkwq21w== + +"@esbuild/linux-ia32@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.8.tgz#7665de87f89bde21166da55f097f91d227945108" + integrity sha512-Jt+8YBFR2Pk68oS7E9z9PtmgJrDonGdEW3Camb2plZcztKpu/OxfnxFu8f41+TYpKhzUDm5uNMwqxRH3yDYrsQ== + +"@esbuild/linux-loong64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.8.tgz#6ce9f86678d8b73dfd81672ab0477cf65e5ecf51" + integrity sha512-P+5J/U/WwPEwcKOFTlTQBK6Gqw4OytpfBvR2V+kBRb5jujwMOQ1aG8iKX14DAwCLks1YHXrXPwXXDPNWEWC59A== + +"@esbuild/linux-mips64el@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.8.tgz#6cf093dd9706e8f078868ffb91b602c1dc7f135e" + integrity sha512-RDSnljcka9UkVxcLtWv2lG5zcqkZUxIPY47ZSKytv4aoo8b05dH1gnKVWrxBZ+owp3dX48s2lXm6zp3hZHl8qw== + +"@esbuild/linux-ppc64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.8.tgz#ed3f4aa0a835fc385554711cdc0ac785d2f3856d" + integrity sha512-fNGvIKXyigXYhSflraBsqR/EBhXhuH0/0r7IpU+3reh+8yX3VjowjC/dwmqHDOSQXbcj+HJb1o9kWYi+fJQ/3g== + +"@esbuild/linux-riscv64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.8.tgz#7f1e1dee09b70041ab31ba770f9cc3cad78505f4" + integrity sha512-CsE1IKyVq/Y55PDnBUvm/e7XfvBgfb5kZxHbIEdmB9xt6cTcBkaVvv8EwLDZuYPkYI60WGl0UwyYYx9B2LLgkg== + +"@esbuild/linux-s390x@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.8.tgz#0641fbfd9fe1b7e14172ddd9c9dd396d402d54f9" + integrity sha512-k8RIN4M+GWQAfJ/oGqwxZlpzOyGF8mxp5mH1A1WUJrpSUo4pe0zkq2EoP1KMQbYkjeJi45YsjwK3IOnSoueXbA== + +"@esbuild/linux-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.8.tgz#50b960e728845c4e16497b6344ff49cd18e68410" + integrity sha512-u0hOo4E9PKyVDmPgJNeip1Tg63wxq+3KBJZKQFblqCl+d5N7n1h7pFwdN5ZzeLaaE645ep8aXzf76ndGnyOypg== + +"@esbuild/netbsd-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.8.tgz#c301af71797751766689460c2bd4516ead698c0e" + integrity sha512-wtENU7TOrnEbUes9aQuNe5PeBM4cTK5dn1W7v6XCr1LatJxAOn6Jn8yDGRsa2uKeEbAS5HeYx7uBAbTBd98OXQ== + +"@esbuild/openbsd-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.8.tgz#8f10f04c6c80f04c7c1ee89e2f60ef5c791a8d4d" + integrity sha512-Y0DRVd/PIiutCpAYvRZHkpDNN3tdSQ1oyKy6xoh5TFTElAmzdlO7CO8ABs8689gq47lJ466cQEq9adJrKXrgXg== + +"@esbuild/sunos-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.8.tgz#463cb5d29997216391eaeaca25ed8549dd464f8e" + integrity sha512-eKg0I3C5z4NTF396Yo9QByXA8DdRS7QiYPFf6JHcED0BanyLW/jX8csUy96wyGivTNrmU0mCOShbeLgzb0eX7w== + +"@esbuild/win32-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.8.tgz#f69f45591a0d5c54f52c9fdc124fb3c54c823b42" + integrity sha512-M2BZhsa7z8kMGre96HTMXpm266cfJkbdtcZgVfAL8hY4ptkh5MwNDasl85CDo++ffW2issVT+W/xIGJOr0v2pg== + +"@esbuild/win32-ia32@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.8.tgz#0fd3cba945998c5907b63a2af2943b248461e272" + integrity sha512-mzzHVpnuHQT+IrptiW+uUswEMpVIueYuAkjwt1m4tQuVq9dGWqCA1y9EE+W3S19nMg6JvHMbaRjv3mlCcmi0rA== + +"@esbuild/win32-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.8.tgz#f77f4f51b1e088fd82e5dce258e83e5d255dc8ac" + integrity sha512-Zgzyn7njXpSSe1YGQk03eW4uei4QoZKloe/TBQZXgQHo6ul/ux0BtYdLz3MZ8WDlvqTG3QnLV4+gtV5ordM0+g== + +"@swc/core-darwin-arm64@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.23.tgz#5e52f19bf96eef92d2ae0533e1598a717b2ca765" + integrity sha512-IGOEHmE4aBDX7gQWpanI3A0ni47UcvX7rmcy0H8kE6mm/y7mEMWskvNsYhYzJl4GVZgw38v1/lL/A7MRX6g71A== + +"@swc/core-darwin-x64@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.23.tgz#3a466b47821284e7fcab6ee7c5b8251dfec0697a" + integrity sha512-eQSN+JJqx/5Dk2C5uet2l7HifGsDBorQHD3PAVnge5jxl+rXU/zbzX9Un56+uuUB0QYeS4Dyr8cN7NHuIKGxBA== + +"@swc/core-linux-arm-gnueabihf@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.23.tgz#42984694b7ffc508188e64bdba6379c37fbf4abf" + integrity sha512-zxYvggbw6R/sTNey0qgsigFMY59DYepm1+JNojxOKjbnvxmgyeIa5sPdu/5gLj0TtJOiWvSGrpMPNUIVreUSGA== + +"@swc/core-linux-arm64-gnu@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.23.tgz#6579f0f715a9646ab0ddcbaec2cd94815788c4af" + integrity sha512-l8UWhcNvZ6RzNZBBToMYuKYijF0h7mbw2RuFV5rpCYF/k/Wh85PaDHPQIQ6qjMHJsIBHYXUt0HLAP+fiAfBiDw== + +"@swc/core-linux-arm64-musl@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.23.tgz#5c377db95ca3ceca3222945ce170398691e57863" + integrity sha512-TZDPp1wUE1ynVyY0vwIToyOULKEQ91H49R+p6Iu/2YY+UQQwUamhX0Gp8O85RT+j72/iHyhbQkz7yRg6v+GB5A== + +"@swc/core-linux-x64-gnu@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.23.tgz#e77b3a63c800418ea234d70c1a0ad5762367b6d5" + integrity sha512-rKqWnOmUyQfoKZuuXs/S0RNobN+kcUyMtwoCdRdCNqOlk1XZRCMpjGc9Aqn73K3xlZ6JXX6oLrXKn375b2dydw== + +"@swc/core-linux-x64-musl@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.23.tgz#f8cac09286f9ffaffe990ef61e759ce3785fd02e" + integrity sha512-1MK9eocIhuIr/+yUKnTNHpYovMQvfKTJQbU4UMfQLg2qyCGKAvO+jOy5JIGR9x04MWqz9U3EHHS/7Id35ekhFQ== + +"@swc/core-win32-arm64-msvc@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.23.tgz#7a723c3e5360573b5c1d21e504e3c11cc3cc024c" + integrity sha512-3nmdugj0SJIGWeCJBhvPWIfnE2Ax8H2KZsJfcaWmWg0SDh19aAt48Ncyd8WHHBandJmVm2fSjaANSjp+cS2S9A== + +"@swc/core-win32-ia32-msvc@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.23.tgz#43a439fc21144682e624d46ba4da5e7bb33b2629" + integrity sha512-2AlGRhys1BsfLjXyWOd+5J/Ko2kkVQVuy3ZR8OBGy7XI54p0PpepabloYI9irr+4bi9vtyxoc5rS21PmJxB83Q== + +"@swc/core-win32-x64-msvc@1.3.23": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.23.tgz#00ad332d847f2e3961d7bba4d1886dd767e1f92e" + integrity sha512-qYKP8sIM7VVLuDb5BkRBoHy28OHZWrUhPTO7WgpErhVVM9wnzmMi/Jgg8SyfMy6oheBjO0QiwWbXONxBwByjnQ== + +"@swc/core@^1.3.22": + version "1.3.23" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.23.tgz#62078fb161fad7edf7c8a8267cceccdeb2ab4a0d" + integrity sha512-Aa7yw5+7ErOxr+G0J1eU2hkb9nEMSdt1Ye3isdAgg9mrsPuttk+cfLp6nP/Lux/VUnu5k4eOxeTy9UhjJhRAFw== + optionalDependencies: + "@swc/core-darwin-arm64" "1.3.23" + "@swc/core-darwin-x64" "1.3.23" + "@swc/core-linux-arm-gnueabihf" "1.3.23" + "@swc/core-linux-arm64-gnu" "1.3.23" + "@swc/core-linux-arm64-musl" "1.3.23" + "@swc/core-linux-x64-gnu" "1.3.23" + "@swc/core-linux-x64-musl" "1.3.23" + "@swc/core-win32-arm64-msvc" "1.3.23" + "@swc/core-win32-ia32-msvc" "1.3.23" + "@swc/core-win32-x64-msvc" "1.3.23" + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/react-dom@^18.0.9": + version "18.0.9" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.9.tgz#ffee5e4bfc2a2f8774b15496474f8e7fe8d0b504" + integrity sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.0.26": + version "18.0.26" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" + integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@vitejs/plugin-react-swc@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.0.1.tgz#7c904f889967f2240e04ac13582399a061468990" + integrity sha512-3GQ2oruZO9j8dSHcI0MUeOZQBhjYyDQsF/pKY4Px+CJxn0M16OhgFeEzUjeuwci4zhhjoNIDE9aFNaV5GMQ09g== + dependencies: + "@swc/core" "^1.3.22" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a" + integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +"chokidar@>=3.0.0 <4.0.0": + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + 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" + optionalDependencies: + fsevents "~2.3.2" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +csstype@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" + integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +esbuild@^0.16.3: + version "0.16.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.8.tgz#e6a383ad7b321421a299b7bd66cb0a96eac6d70d" + integrity sha512-RKxRaLYAI5b/IVJ5k8jK3bO2G7cch2ZIZFbfKHbBzpwsWt9+VChcBEndNISBBZ5c3WwekFfkfl11/2QfIGHgDw== + optionalDependencies: + "@esbuild/android-arm" "0.16.8" + "@esbuild/android-arm64" "0.16.8" + "@esbuild/android-x64" "0.16.8" + "@esbuild/darwin-arm64" "0.16.8" + "@esbuild/darwin-x64" "0.16.8" + "@esbuild/freebsd-arm64" "0.16.8" + "@esbuild/freebsd-x64" "0.16.8" + "@esbuild/linux-arm" "0.16.8" + "@esbuild/linux-arm64" "0.16.8" + "@esbuild/linux-ia32" "0.16.8" + "@esbuild/linux-loong64" "0.16.8" + "@esbuild/linux-mips64el" "0.16.8" + "@esbuild/linux-ppc64" "0.16.8" + "@esbuild/linux-riscv64" "0.16.8" + "@esbuild/linux-s390x" "0.16.8" + "@esbuild/linux-x64" "0.16.8" + "@esbuild/netbsd-x64" "0.16.8" + "@esbuild/openbsd-x64" "0.16.8" + "@esbuild/sunos-x64" "0.16.8" + "@esbuild/win32-arm64" "0.16.8" + "@esbuild/win32-ia32" "0.16.8" + "@esbuild/win32-x64" "0.16.8" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +immutable@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +postcss@^8.4.20: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-icons@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.7.1.tgz#0f4b25a5694e6972677cb189d2a72eabea7a8345" + integrity sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw== + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rollup@^3.7.0: + version "3.7.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.7.5.tgz#db580f8eda50237b0721ddea301fb981cd992933" + integrity sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ== + optionalDependencies: + fsevents "~2.3.2" + +sass@^1.57.0: + version "1.57.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.0.tgz#64c4144ed4e1c0ccb96dc18aef2c424cdbc0c12b" + integrity sha512-IZNEJDTK1cF5B1cGA593TPAV/1S0ysUDxq9XHjX/+SMy0QfUny+nfUsq5ZP7wWSl4eEf7wDJcEZ8ABYFmh3m/w== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +vite@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.1.tgz#e0a54d818c28ae47fd27bcac6a4a952c6a658502" + integrity sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g== + dependencies: + esbuild "^0.16.3" + postcss "^8.4.20" + resolve "^1.22.1" + rollup "^3.7.0" + optionalDependencies: + fsevents "~2.3.2"