├── .gitignore ├── README.md ├── custom.d.ts ├── favicon.png ├── index.html ├── package.json ├── screenshot.png ├── src ├── App.styles.ts ├── App.tsx ├── AppContext.tsx ├── assets │ ├── background-min.png │ ├── icon-add.svg │ ├── icon-chart.svg │ ├── icon-checked.svg │ ├── icon-completed.svg │ ├── icon-list.svg │ ├── icon-pencil.svg │ ├── icon-trash.svg │ ├── img-trophy-min.png │ ├── logo-github.svg │ ├── logo-linkedin.svg │ └── logo-telegram.svg ├── components │ ├── CompletedTasks │ │ ├── index.tsx │ │ └── styles.ts │ ├── CreateNewTask │ │ ├── index.tsx │ │ └── styles.ts │ ├── Header │ │ ├── index.tsx │ │ └── styles.ts │ ├── Progress │ │ ├── index.tsx │ │ └── styles.ts │ ├── TaskItem │ │ ├── index.tsx │ │ └── styles.ts │ ├── Title │ │ ├── index.tsx │ │ └── styles.ts │ └── TodayTasks │ │ ├── index.tsx │ │ └── styles.ts ├── globalStyles.ts ├── main.tsx ├── types │ └── Task.ts └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # To-Do List 2 | 3 | ## 📷 Screenshot 4 | [![Screenshot](https://github.com/carlosdancr/todo-list/blob/main/screenshot.png?raw=true "Screenshot")](https://github.com/carlosdancr/todo-list/blob/main/screenshot.png?raw=true "Screenshot") 5 | 6 | ## 💻 Features do projeto 7 | - Validação de formulário 8 | - Barra de progresso 9 | - Opção de deletar a tarefa 10 | - Dados salvos no LocalStorage 11 | - Responsividade 12 | 13 | ## 🚀 Tecnologias utilizadas 14 | - Vite 15 | - React 16 | - TypeScript 17 | - Styled Components 18 | 19 | ## 📌 Links 20 | - [Vite](https://vitejs.dev/) 21 | - [Styled Components](https://styled-components.com/) 22 | 23 | ## 📊 Status do projeto 24 | ✅ Concluído 25 | -------------------------------------------------------------------------------- /custom.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.svg" { 2 | import React = require("react"); 3 | export const ReactComponent: React.FunctionComponent< 4 | React.SVGProps 5 | >; 6 | const src: string; 7 | export default src; 8 | } 9 | -------------------------------------------------------------------------------- /favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosdancr/todo-list/e9dac03c670f60e08bee7b4b6254c1344db6a247/favicon.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | To-Do List 7 | 8 | 9 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "portfolio-todo", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "react": "^18.2.0", 13 | "react-dom": "^18.2.0", 14 | "styled-components": "^5.3.5", 15 | "vite-plugin-svgr": "^2.2.1" 16 | }, 17 | "devDependencies": { 18 | "@types/react": "^18.0.17", 19 | "@types/react-dom": "^18.0.6", 20 | "@types/styled-components": "^5.1.26", 21 | "@vitejs/plugin-react": "^2.0.1", 22 | "typescript": "^4.6.4", 23 | "vite": "^3.0.7" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosdancr/todo-list/e9dac03c670f60e08bee7b4b6254c1344db6a247/screenshot.png -------------------------------------------------------------------------------- /src/App.styles.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | import background from "./assets/background-min.png"; 3 | 4 | export const Container = styled.div` 5 | width: 100%; 6 | min-height: 100vh; 7 | background: url(${background}) no-repeat center center; 8 | background-size: cover; 9 | `; 10 | 11 | export const Content = styled.section` 12 | max-width: 1248px; 13 | padding: 96px 16px; 14 | margin: 0 auto; 15 | position: relative; 16 | display: grid; 17 | grid-template-columns: 1fr 1fr; 18 | column-gap: 176px; 19 | 20 | @media (max-width: 1100px) { 21 | column-gap: 80px; 22 | } 23 | 24 | @media (max-width: 768px) { 25 | grid-template-columns: 1fr; 26 | } 27 | 28 | @media (max-width: 500px) { 29 | padding: 48px 16px; 30 | } 31 | `; 32 | 33 | export const Divider = styled.div` 34 | width: 1px; 35 | min-height: calc(100vh - 272px); 36 | height: calc(100% - 192px); 37 | background: #24293f; 38 | position: absolute; 39 | top: 96px; 40 | left: 50%; 41 | 42 | @media (max-width: 768px) { 43 | display: none; 44 | } 45 | `; 46 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import GlobalStyle from "./globalStyles"; 2 | import * as C from "./App.styles"; 3 | import Header from "./components/Header"; 4 | import CreateNewTask from "./components/CreateNewTask"; 5 | import TodayTasks from "./components/TodayTasks"; 6 | import Progress from "./components/Progress"; 7 | import CompletedTasks from "./components/CompletedTasks"; 8 | 9 | const App = () => { 10 | return ( 11 | <> 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | ); 25 | }; 26 | 27 | export default App; 28 | -------------------------------------------------------------------------------- /src/AppContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext, ReactNode, useEffect, useState } from "react"; 2 | import Task from "./types/Task"; 3 | 4 | type Context = { 5 | taskList: Task[]; 6 | setTaskList: (taskList: Task[]) => void; 7 | progressBarValue: number; 8 | handleTaskDelete: (id: number) => void; 9 | handleAddTask: (taskName: string) => void; 10 | handleTaskChange: (id: number, done: boolean) => void; 11 | }; 12 | 13 | type Props = { 14 | children: ReactNode; 15 | }; 16 | 17 | export const AppContext = createContext(null); 18 | 19 | export const AppStorage = ({ children }: Props) => { 20 | const [taskList, setTaskList] = useState(() => { 21 | const data = localStorage.getItem("taskList"); 22 | return data ? JSON.parse(data) : []; 23 | }); 24 | const [progressBarValue, setProgressBarValue] = useState(0); 25 | 26 | const handleTaskDelete = (id: number) => { 27 | const newTaskList = taskList 28 | .filter((task) => task.id !== id) 29 | .map((task, index) => { 30 | task.id = index + 1; 31 | return task; 32 | }); 33 | setTaskList(newTaskList); 34 | }; 35 | 36 | const handleAddTask = (taskName: string) => { 37 | const newTaskList = [...taskList]; 38 | newTaskList.push({ 39 | id: taskList.length + 1, 40 | name: taskName, 41 | done: false, 42 | }); 43 | setTaskList(newTaskList); 44 | }; 45 | 46 | const handleTaskChange = (id: number, done: boolean) => { 47 | const newTaskList = [...taskList]; 48 | newTaskList.forEach((task) => { 49 | if (task.id === id) { 50 | task.done = done; 51 | } 52 | }); 53 | setTaskList(newTaskList); 54 | }; 55 | 56 | useEffect(() => { 57 | const handleProgressChange = () => { 58 | if (taskList.length) { 59 | const completedTasks = taskList.filter((task) => task.done); 60 | const progressBarValue = Number( 61 | ((completedTasks.length * 100) / taskList.length).toFixed() 62 | ); 63 | setProgressBarValue(progressBarValue); 64 | } else setProgressBarValue(0); 65 | }; 66 | 67 | handleProgressChange(); 68 | }, [taskList]); 69 | 70 | useEffect(() => { 71 | localStorage.setItem("taskList", JSON.stringify(taskList)); 72 | }, [taskList]); 73 | 74 | return ( 75 | 85 | {children} 86 | 87 | ); 88 | }; 89 | -------------------------------------------------------------------------------- /src/assets/background-min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosdancr/todo-list/e9dac03c670f60e08bee7b4b6254c1344db6a247/src/assets/background-min.png -------------------------------------------------------------------------------- /src/assets/icon-add.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icon-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icon-checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icon-completed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icon-list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icon-pencil.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icon-trash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/img-trophy-min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosdancr/todo-list/e9dac03c670f60e08bee7b4b6254c1344db6a247/src/assets/img-trophy-min.png -------------------------------------------------------------------------------- /src/assets/logo-github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/logo-linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/logo-telegram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/components/CompletedTasks/index.tsx: -------------------------------------------------------------------------------- 1 | import { useContext } from "react"; 2 | import { AppContext } from "../../AppContext"; 3 | import TaskItem from "../TaskItem"; 4 | import Title from "../Title"; 5 | import * as C from "./styles"; 6 | 7 | const CompletedTasks = () => { 8 | const { taskList } = useContext(AppContext); 9 | 10 | return ( 11 | 12 | 13 | 14 | <C.TaskList> 15 | {taskList.map( 16 | (task) => task.done && <TaskItem key={task.id} task={task} /> 17 | )} 18 | </C.TaskList> 19 | </C.Container> 20 | ); 21 | }; 22 | 23 | export default CompletedTasks; 24 | -------------------------------------------------------------------------------- /src/components/CompletedTasks/styles.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const Container = styled.div` 4 | max-width: 520px; 5 | grid-column: 2; 6 | grid-row: 2; 7 | 8 | @media (max-width: 768px) { 9 | max-width: 100%; 10 | grid-column: 1; 11 | grid-row: 4; 12 | } 13 | `; 14 | 15 | export const TaskList = styled.ul` 16 | display: flex; 17 | flex-direction: column; 18 | gap: 16px; 19 | `; 20 | -------------------------------------------------------------------------------- /src/components/CreateNewTask/index.tsx: -------------------------------------------------------------------------------- 1 | import Title from "../Title"; 2 | import * as C from "./styles"; 3 | import { ReactComponent as AddIcon } from "../../assets/icon-add.svg"; 4 | import { SyntheticEvent, useContext, useState } from "react"; 5 | import { AppContext } from "../../AppContext"; 6 | 7 | const CreateNewTask = () => { 8 | const [inputValue, setInputValue] = useState(""); 9 | const [error, setError] = useState(false); 10 | const { handleAddTask } = useContext(AppContext); 11 | 12 | const handleSubmit = (e: SyntheticEvent) => { 13 | e.preventDefault(); 14 | if (inputValue.length) { 15 | handleAddTask(inputValue); 16 | setInputValue(""); 17 | } else setError(true); 18 | }; 19 | 20 | const handleChange = (e: SyntheticEvent) => { 21 | const target = e.target as HTMLInputElement; 22 | if (error) setError(false); 23 | setInputValue(target.value); 24 | }; 25 | 26 | return ( 27 | <C.Container> 28 | <Title iconName="pencil" text="Criar nova tarefa" /> 29 | 30 | <form onSubmit={handleSubmit}> 31 | <C.InputContainer> 32 | <C.InputText 33 | type="text" 34 | placeholder="Nome da tarefa" 35 | value={inputValue} 36 | onChange={handleChange} 37 | error={error} 38 | /> 39 | <C.AddButton error={error}> 40 | <AddIcon /> 41 | </C.AddButton> 42 | </C.InputContainer> 43 | </form> 44 | </C.Container> 45 | ); 46 | }; 47 | 48 | export default CreateNewTask; 49 | -------------------------------------------------------------------------------- /src/components/CreateNewTask/styles.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | type Props = { 4 | error: boolean; 5 | }; 6 | 7 | export const Container = styled.div` 8 | max-width: 520px; 9 | grid-column: 1; 10 | grid-row: 1; 11 | 12 | &::after { 13 | content: ""; 14 | display: block; 15 | width: 100%; 16 | height: 1px; 17 | background: #24293f; 18 | margin: 24px 0; 19 | } 20 | 21 | @media (max-width: 768px) { 22 | max-width: 100%; 23 | } 24 | `; 25 | 26 | export const InputContainer = styled.div` 27 | display: flex; 28 | `; 29 | 30 | export const InputText = styled.input<Props>` 31 | flex: 1; 32 | height: 56px; 33 | background: ${({ error }) => (error ? "rgba(255, 54, 78, 0.25)" : "#151a37")}; 34 | border: 1px solid ${({ error }) => (error ? "#FF364E" : "#24293f")}; 35 | border-right: none; 36 | border-radius: 8px 0 0 8px; 37 | padding: 0 16px; 38 | outline: none; 39 | transition: 0.2s; 40 | 41 | font-family: "Roboto"; 42 | font-size: 1rem; 43 | line-height: 150%; 44 | font-weight: 400; 45 | color: #fff; 46 | 47 | &::placeholder { 48 | color: rgba(255, 255, 255, 0.25); 49 | } 50 | 51 | &:hover, 52 | &:focus { 53 | border-color: ${({ error }) => (error ? "#FF364E" : "#7a38fe")}; 54 | } 55 | `; 56 | 57 | export const AddButton = styled.button<Props>` 58 | width: 56px; 59 | height: 56px; 60 | background: ${({ error }) => (error ? "#FF364E" : "#7a38fe")}; 61 | border-radius: 0 8px 8px 0; 62 | transition: 0.2s; 63 | 64 | display: flex; 65 | justify-content: center; 66 | align-items: center; 67 | `; 68 | -------------------------------------------------------------------------------- /src/components/Header/index.tsx: -------------------------------------------------------------------------------- 1 | import * as C from "./styles"; 2 | import { ReactComponent as LinkedinLogo } from "../../assets/logo-linkedin.svg"; 3 | import { ReactComponent as GithubLogo } from "../../assets/logo-github.svg"; 4 | import { ReactComponent as TelegramLogo } from "../../assets/logo-telegram.svg"; 5 | 6 | const Header = () => { 7 | return ( 8 | <C.Header> 9 | <C.Container> 10 | <C.Title>To-Do List</C.Title> 11 | 12 | <C.SocialMediaList> 13 | <li> 14 | <C.Link href="https://www.linkedin.com/in/carlosdancr/"> 15 | <LinkedinLogo /> 16 | </C.Link> 17 | </li> 18 | <li> 19 | <C.Link href="https://www.github.com/carlosdancr/"> 20 | <GithubLogo /> 21 | </C.Link> 22 | </li> 23 | <li> 24 | <C.Link href="https://t.me/carlosdancr/"> 25 | <TelegramLogo /> 26 | </C.Link> 27 | </li> 28 | </C.SocialMediaList> 29 | </C.Container> 30 | </C.Header> 31 | ); 32 | }; 33 | 34 | export default Header; 35 | -------------------------------------------------------------------------------- /src/components/Header/styles.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const Header = styled.header` 4 | border-bottom: 1px solid #151a37; 5 | `; 6 | 7 | export const Container = styled.div` 8 | max-width: 1248px; 9 | padding: 20px 16px; 10 | margin: 0 auto; 11 | 12 | display: flex; 13 | justify-content: space-between; 14 | align-items: center; 15 | gap: 16px; 16 | 17 | @media (max-width: 400px) { 18 | flex-direction: column; 19 | } 20 | `; 21 | 22 | export const Title = styled.h1` 23 | font-family: "Montserrat"; 24 | font-size: 2rem; 25 | line-height: 1; 26 | font-weight: 400; 27 | color: #fff; 28 | `; 29 | 30 | export const SocialMediaList = styled.ul` 31 | display: flex; 32 | gap: 24px; 33 | `; 34 | 35 | export const Link = styled.a.attrs({ target: "_blank" })` 36 | width: 40px; 37 | height: 40px; 38 | background: linear-gradient(180deg, #151a37 0%, rgba(21, 26, 55, 0) 100%); 39 | border: 1px solid #24293f; 40 | border-radius: 12px; 41 | 42 | display: flex; 43 | justify-content: center; 44 | align-items: center; 45 | `; 46 | -------------------------------------------------------------------------------- /src/components/Progress/index.tsx: -------------------------------------------------------------------------------- 1 | import { useContext, useEffect, useState } from "react"; 2 | import { AppContext } from "../../AppContext"; 3 | import Title from "../Title"; 4 | import * as C from "./styles"; 5 | import imgUrl from "../../assets/img-trophy-min.png"; 6 | 7 | const Progress = () => { 8 | const { progressBarValue } = useContext(AppContext); 9 | 10 | return ( 11 | <C.Container> 12 | <Title iconName="chart" text="Progresso" /> 13 | 14 | <C.ProgressBar> 15 | <C.ProgressBarFill progressBarValue={progressBarValue} /> 16 | </C.ProgressBar> 17 | 18 | <C.ProgressBarValues> 19 | <span>0%</span> 20 | <span>50%</span> 21 | <span>100%</span> 22 | </C.ProgressBarValues> 23 | 24 | {progressBarValue === 100 && ( 25 | <C.TaskCompletedMessage progressBarValue={progressBarValue}> 26 | <img src={imgUrl} alt="Troféu" width="40" height="40" /> 27 | <span>Parabéns! Você concluiu todas as tarefas de hoje!</span> 28 | </C.TaskCompletedMessage> 29 | )} 30 | </C.Container> 31 | ); 32 | }; 33 | 34 | export default Progress; 35 | -------------------------------------------------------------------------------- /src/components/Progress/styles.ts: -------------------------------------------------------------------------------- 1 | import styled, { keyframes } from "styled-components"; 2 | 3 | type Props = { 4 | progressBarValue: number; 5 | }; 6 | 7 | export const Container = styled.div` 8 | max-width: 520px; 9 | grid-column: 2; 10 | grid-row: 1; 11 | align-self: end; 12 | overflow: hidden; 13 | 14 | &::after { 15 | content: ""; 16 | display: block; 17 | width: 100%; 18 | height: 1px; 19 | background: #24293f; 20 | margin: 24px 0; 21 | } 22 | 23 | @media (max-width: 768px) { 24 | max-width: 100%; 25 | grid-column: 1; 26 | grid-row: 3; 27 | } 28 | `; 29 | 30 | export const ProgressBar = styled.div` 31 | width: 100%; 32 | height: 4px; 33 | background: #282e4f; 34 | border-radius: 2px; 35 | `; 36 | 37 | export const ProgressBarFill = styled.div<Props>` 38 | width: 100%; 39 | height: 4px; 40 | border-radius: 2px; 41 | background: #40fb72; 42 | box-shadow: 0px 0px 12px 4px rgba(64, 251, 114, 0.25); 43 | transition: 0.8s; 44 | transform: translateX(${(props) => `-${100 - props.progressBarValue}%`}); 45 | `; 46 | 47 | export const ProgressBarValues = styled.div` 48 | display: flex; 49 | justify-content: space-between; 50 | align-items: center; 51 | margin-top: 8px; 52 | 53 | span { 54 | font-family: "Roboto"; 55 | font-size: 1rem; 56 | line-height: 150%; 57 | font-weight: 400; 58 | color: #fff; 59 | } 60 | `; 61 | 62 | const fadeInDown = keyframes` 63 | from { 64 | opacity: 0; 65 | transform: translate3d(0, -32px, 0); 66 | } 67 | to { 68 | opacity: initial; 69 | transform: initial; 70 | } 71 | `; 72 | 73 | export const TaskCompletedMessage = styled.div<Props>` 74 | display: flex; 75 | align-items: center; 76 | gap: 12px; 77 | background: rgba(64, 251, 114, 0.25); 78 | border: 1px solid #40fb72; 79 | border-radius: 8px; 80 | padding: 16px; 81 | max-width: 324px; 82 | height: 80px; 83 | margin: 24px auto 32px; 84 | animation: ${fadeInDown} 0.8s; 85 | 86 | span { 87 | font-family: "Roboto"; 88 | font-size: 1rem; 89 | line-height: 150%; 90 | font-weight: 700; 91 | color: #fff; 92 | } 93 | `; 94 | -------------------------------------------------------------------------------- /src/components/TaskItem/index.tsx: -------------------------------------------------------------------------------- 1 | import * as C from "./styles"; 2 | import { ReactComponent as TrashIcon } from "../../assets/icon-trash.svg"; 3 | import { ReactComponent as CheckedIcon } from "../../assets/icon-checked.svg"; 4 | import Task from "../../types/Task"; 5 | import { useContext } from "react"; 6 | import { AppContext } from "../../AppContext"; 7 | 8 | type TaskItemProps = { 9 | task: Task; 10 | }; 11 | 12 | const TaskItem = ({ task }: TaskItemProps) => { 13 | const { handleTaskChange, handleTaskDelete } = useContext(AppContext); 14 | 15 | return ( 16 | <C.Container done={task.done}> 17 | <label> 18 | <C.InputCheckbox 19 | type="checkbox" 20 | checked={task.done} 21 | onChange={(e) => handleTaskChange(task.id, e.target.checked)} 22 | /> 23 | <C.CustomCheckbox done={task.done}> 24 | {task.done && ( 25 | <C.CustomCheckboxChecked> 26 | <CheckedIcon /> 27 | </C.CustomCheckboxChecked> 28 | )} 29 | </C.CustomCheckbox> 30 | </label> 31 | 32 | <C.TaskName>{task.name}</C.TaskName> 33 | 34 | <C.TrashButton onClick={() => handleTaskDelete(task.id)}> 35 | <TrashIcon /> 36 | </C.TrashButton> 37 | </C.Container> 38 | ); 39 | }; 40 | 41 | export default TaskItem; 42 | -------------------------------------------------------------------------------- /src/components/TaskItem/styles.ts: -------------------------------------------------------------------------------- 1 | import styled, { keyframes } from "styled-components"; 2 | import checkedIcon from "../../assets/icon-checked.svg"; 3 | 4 | type Props = { 5 | done: boolean; 6 | }; 7 | 8 | const fadeInDown = keyframes` 9 | from { 10 | opacity: 0; 11 | transform: translate3d(0, -32px, 0); 12 | } 13 | to { 14 | opacity: initial; 15 | transform: initial; 16 | } 17 | `; 18 | 19 | export const Container = styled.li<Props>` 20 | max-width: 520px; 21 | height: 56px; 22 | background: ${({ done }) => (done ? "rgba(47, 90, 255, 0.25)" : "#151a37")}; 23 | border: 1px solid ${({ done }) => (done ? "#2F5AFF" : "#24293F")}; 24 | border-radius: 8px; 25 | padding: 0 16px; 26 | position: relative; 27 | animation: ${fadeInDown} 0.8s; 28 | 29 | display: flex; 30 | align-items: center; 31 | 32 | @media (max-width: 768px) { 33 | max-width: 100%; 34 | } 35 | `; 36 | 37 | export const InputCheckbox = styled.input` 38 | display: none; 39 | `; 40 | 41 | export const CustomCheckbox = styled.div<Props>` 42 | width: 32px; 43 | height: 32px; 44 | background: #060b28; 45 | border-radius: 50%; 46 | cursor: pointer; 47 | 48 | display: flex; 49 | justify-content: center; 50 | align-items: center; 51 | 52 | &:hover::after { 53 | content: ""; 54 | display: ${({ done }) => (done ? "none" : "block")}; 55 | width: 16px; 56 | height: 16px; 57 | background: url(${checkedIcon}); 58 | } 59 | `; 60 | 61 | export const CustomCheckboxChecked = styled.div` 62 | width: 24px; 63 | height: 24px; 64 | background: #2f5aff; 65 | border-radius: 50%; 66 | 67 | display: flex; 68 | justify-content: center; 69 | align-items: center; 70 | `; 71 | 72 | export const TaskName = styled.span` 73 | flex: 1; 74 | margin-left: 12px; 75 | 76 | font-family: "Roboto"; 77 | font-size: 1rem; 78 | line-height: 150%; 79 | font-weight: 400; 80 | color: #fff; 81 | `; 82 | 83 | export const TrashButton = styled.button` 84 | height: 100%; 85 | background: none; 86 | outline: none; 87 | 88 | display: flex; 89 | justify-content: center; 90 | align-items: center; 91 | 92 | svg path { 93 | transition: 0.2s; 94 | } 95 | 96 | &:hover, 97 | &:focus { 98 | svg path { 99 | fill: #ff334c; 100 | } 101 | } 102 | `; 103 | -------------------------------------------------------------------------------- /src/components/Title/index.tsx: -------------------------------------------------------------------------------- 1 | import * as C from "./styles"; 2 | 3 | type TitleProps = { 4 | iconName: "pencil" | "list" | "chart" | "completed"; 5 | text: string; 6 | }; 7 | 8 | const Title = ({ iconName, text }: TitleProps) => { 9 | const imgUrl = new URL(`/src/assets/icon-${iconName}.svg`, import.meta.url) 10 | .href; 11 | 12 | return ( 13 | <C.Container> 14 | <C.Icon> 15 | <img src={imgUrl} width="24" height="24" alt={iconName} /> 16 | </C.Icon> 17 | <C.Title>{text}</C.Title> 18 | </C.Container> 19 | ); 20 | }; 21 | 22 | export default Title; 23 | -------------------------------------------------------------------------------- /src/components/Title/styles.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const Container = styled.div` 4 | display: flex; 5 | align-items: center; 6 | gap: 12px; 7 | margin-bottom: 16px; 8 | `; 9 | 10 | export const Title = styled.h2` 11 | font-family: "Montserrat"; 12 | font-size: 1.5rem; 13 | line-height: 135%; 14 | font-weight: 400; 15 | color: #fff; 16 | `; 17 | 18 | export const Icon = styled.div` 19 | width: 40px; 20 | height: 40px; 21 | background: linear-gradient(180deg, #151a37 0%, rgba(21, 26, 55, 0) 100%); 22 | border: 1px solid #24293f; 23 | border-radius: 12px; 24 | 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | `; 29 | -------------------------------------------------------------------------------- /src/components/TodayTasks/index.tsx: -------------------------------------------------------------------------------- 1 | import { useContext } from "react"; 2 | import { AppContext } from "../../AppContext"; 3 | import TaskItem from "../TaskItem"; 4 | import Title from "../Title"; 5 | import * as C from "./styles"; 6 | 7 | const TodayTasks = () => { 8 | const { taskList, progressBarValue } = useContext(AppContext); 9 | 10 | return ( 11 | <C.Container progressBarValue={progressBarValue}> 12 | <Title iconName="list" text="Tarefas de hoje" /> 13 | 14 | {progressBarValue === 100 || taskList.length === 0 ? ( 15 | <C.TodayTasksMessage> 16 | Você não tem tarefas disponíveis 17 | </C.TodayTasksMessage> 18 | ) : ( 19 | <C.TaskList> 20 | {taskList.map( 21 | (task) => !task.done && <TaskItem key={task.id} task={task} /> 22 | )} 23 | </C.TaskList> 24 | )} 25 | </C.Container> 26 | ); 27 | }; 28 | 29 | export default TodayTasks; 30 | -------------------------------------------------------------------------------- /src/components/TodayTasks/styles.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | type Props = { 4 | progressBarValue: number; 5 | }; 6 | 7 | export const Container = styled.div<Props>` 8 | max-width: 520px; 9 | grid-column: 1; 10 | grid-row: 2; 11 | margin-top: ${(props) => (props.progressBarValue === 100 ? "-92px" : "0")}; 12 | 13 | @media (max-width: 768px) { 14 | max-width: 100%; 15 | margin-top: 0; 16 | 17 | &::after { 18 | content: ""; 19 | display: block; 20 | width: 100%; 21 | height: 1px; 22 | background: #24293f; 23 | margin: 24px 0; 24 | } 25 | } 26 | `; 27 | 28 | export const TaskList = styled.ul` 29 | display: flex; 30 | flex-direction: column; 31 | gap: 16px; 32 | `; 33 | 34 | export const TodayTasksMessage = styled.span` 35 | font-family: "Roboto"; 36 | font-size: 1rem; 37 | line-height: 150%; 38 | font-weight: 700; 39 | color: #fff; 40 | 41 | display: flex; 42 | justify-content: center; 43 | `; 44 | -------------------------------------------------------------------------------- /src/globalStyles.ts: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from "styled-components"; 2 | 3 | const GlobalStyle = createGlobalStyle` 4 | *, 5 | *::before, 6 | *::after { 7 | margin: 0; 8 | padding: 0; 9 | border: 0; 10 | box-sizing: border-box; 11 | } 12 | 13 | body { 14 | background: #060B28; 15 | color: #fff; 16 | } 17 | 18 | ul { 19 | list-style: none; 20 | } 21 | 22 | a { 23 | text-decoration: none; 24 | } 25 | 26 | button { 27 | cursor: pointer; 28 | } 29 | 30 | img { 31 | display: block; 32 | max-width: 100%; 33 | height: auto; 34 | } 35 | `; 36 | 37 | export default GlobalStyle; 38 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import App from "./App"; 4 | import { AppStorage } from "./AppContext"; 5 | 6 | ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( 7 | <React.StrictMode> 8 | <AppStorage> 9 | <App /> 10 | </AppStorage> 11 | </React.StrictMode> 12 | ); 13 | -------------------------------------------------------------------------------- /src/types/Task.ts: -------------------------------------------------------------------------------- 1 | type Task = { 2 | id: number; 3 | name: string; 4 | done: boolean; 5 | }; 6 | 7 | export default Task; 8 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// <reference types="vite/client" /> 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx", 18 | "strictNullChecks": false 19 | }, 20 | "include": ["src", "custom.d.ts"], 21 | "references": [{ "path": "./tsconfig.node.json" }] 22 | } 23 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import react from "@vitejs/plugin-react"; 3 | import viteSvgr from "vite-plugin-svgr"; 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [viteSvgr(), react()], 8 | }); 9 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.2.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" 8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.1.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": 14 | version "7.18.6" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 16 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/compat-data@^7.18.8": 21 | version "7.18.13" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" 23 | integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== 24 | 25 | "@babel/core@^7.18.10", "@babel/core@^7.18.5": 26 | version "7.18.13" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" 28 | integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.18.6" 32 | "@babel/generator" "^7.18.13" 33 | "@babel/helper-compilation-targets" "^7.18.9" 34 | "@babel/helper-module-transforms" "^7.18.9" 35 | "@babel/helpers" "^7.18.9" 36 | "@babel/parser" "^7.18.13" 37 | "@babel/template" "^7.18.10" 38 | "@babel/traverse" "^7.18.13" 39 | "@babel/types" "^7.18.13" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.1" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.18.13": 47 | version "7.18.13" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" 49 | integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== 50 | dependencies: 51 | "@babel/types" "^7.18.13" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": 56 | version "7.18.6" 57 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" 58 | integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== 59 | dependencies: 60 | "@babel/types" "^7.18.6" 61 | 62 | "@babel/helper-compilation-targets@^7.18.9": 63 | version "7.18.9" 64 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" 65 | integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== 66 | dependencies: 67 | "@babel/compat-data" "^7.18.8" 68 | "@babel/helper-validator-option" "^7.18.6" 69 | browserslist "^4.20.2" 70 | semver "^6.3.0" 71 | 72 | "@babel/helper-environment-visitor@^7.18.9": 73 | version "7.18.9" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 75 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 76 | 77 | "@babel/helper-function-name@^7.18.9": 78 | version "7.18.9" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" 80 | integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== 81 | dependencies: 82 | "@babel/template" "^7.18.6" 83 | "@babel/types" "^7.18.9" 84 | 85 | "@babel/helper-hoist-variables@^7.18.6": 86 | version "7.18.6" 87 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 88 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 89 | dependencies: 90 | "@babel/types" "^7.18.6" 91 | 92 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.18.6": 93 | version "7.18.6" 94 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" 95 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 96 | dependencies: 97 | "@babel/types" "^7.18.6" 98 | 99 | "@babel/helper-module-transforms@^7.18.9": 100 | version "7.18.9" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" 102 | integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== 103 | dependencies: 104 | "@babel/helper-environment-visitor" "^7.18.9" 105 | "@babel/helper-module-imports" "^7.18.6" 106 | "@babel/helper-simple-access" "^7.18.6" 107 | "@babel/helper-split-export-declaration" "^7.18.6" 108 | "@babel/helper-validator-identifier" "^7.18.6" 109 | "@babel/template" "^7.18.6" 110 | "@babel/traverse" "^7.18.9" 111 | "@babel/types" "^7.18.9" 112 | 113 | "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9": 114 | version "7.18.9" 115 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" 116 | integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== 117 | 118 | "@babel/helper-simple-access@^7.18.6": 119 | version "7.18.6" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" 121 | integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== 122 | dependencies: 123 | "@babel/types" "^7.18.6" 124 | 125 | "@babel/helper-split-export-declaration@^7.18.6": 126 | version "7.18.6" 127 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 128 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 129 | dependencies: 130 | "@babel/types" "^7.18.6" 131 | 132 | "@babel/helper-string-parser@^7.18.10": 133 | version "7.18.10" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" 135 | integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== 136 | 137 | "@babel/helper-validator-identifier@^7.18.6": 138 | version "7.18.6" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" 140 | integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== 141 | 142 | "@babel/helper-validator-option@^7.18.6": 143 | version "7.18.6" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" 145 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 146 | 147 | "@babel/helpers@^7.18.9": 148 | version "7.18.9" 149 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" 150 | integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== 151 | dependencies: 152 | "@babel/template" "^7.18.6" 153 | "@babel/traverse" "^7.18.9" 154 | "@babel/types" "^7.18.9" 155 | 156 | "@babel/highlight@^7.18.6": 157 | version "7.18.6" 158 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 159 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 160 | dependencies: 161 | "@babel/helper-validator-identifier" "^7.18.6" 162 | chalk "^2.0.0" 163 | js-tokens "^4.0.0" 164 | 165 | "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": 166 | version "7.18.13" 167 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" 168 | integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== 169 | 170 | "@babel/plugin-syntax-jsx@^7.18.6": 171 | version "7.18.6" 172 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" 173 | integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== 174 | dependencies: 175 | "@babel/helper-plugin-utils" "^7.18.6" 176 | 177 | "@babel/plugin-transform-react-jsx-development@^7.18.6": 178 | version "7.18.6" 179 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" 180 | integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== 181 | dependencies: 182 | "@babel/plugin-transform-react-jsx" "^7.18.6" 183 | 184 | "@babel/plugin-transform-react-jsx-self@^7.18.6": 185 | version "7.18.6" 186 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7" 187 | integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig== 188 | dependencies: 189 | "@babel/helper-plugin-utils" "^7.18.6" 190 | 191 | "@babel/plugin-transform-react-jsx-source@^7.18.6": 192 | version "7.18.6" 193 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz#06e9ae8a14d2bc19ce6e3c447d842032a50598fc" 194 | integrity sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw== 195 | dependencies: 196 | "@babel/helper-plugin-utils" "^7.18.6" 197 | 198 | "@babel/plugin-transform-react-jsx@^7.18.10", "@babel/plugin-transform-react-jsx@^7.18.6": 199 | version "7.18.10" 200 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1" 201 | integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A== 202 | dependencies: 203 | "@babel/helper-annotate-as-pure" "^7.18.6" 204 | "@babel/helper-module-imports" "^7.18.6" 205 | "@babel/helper-plugin-utils" "^7.18.9" 206 | "@babel/plugin-syntax-jsx" "^7.18.6" 207 | "@babel/types" "^7.18.10" 208 | 209 | "@babel/template@^7.18.10", "@babel/template@^7.18.6": 210 | version "7.18.10" 211 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" 212 | integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== 213 | dependencies: 214 | "@babel/code-frame" "^7.18.6" 215 | "@babel/parser" "^7.18.10" 216 | "@babel/types" "^7.18.10" 217 | 218 | "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9", "@babel/traverse@^7.4.5": 219 | version "7.18.13" 220 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" 221 | integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== 222 | dependencies: 223 | "@babel/code-frame" "^7.18.6" 224 | "@babel/generator" "^7.18.13" 225 | "@babel/helper-environment-visitor" "^7.18.9" 226 | "@babel/helper-function-name" "^7.18.9" 227 | "@babel/helper-hoist-variables" "^7.18.6" 228 | "@babel/helper-split-export-declaration" "^7.18.6" 229 | "@babel/parser" "^7.18.13" 230 | "@babel/types" "^7.18.13" 231 | debug "^4.1.0" 232 | globals "^11.1.0" 233 | 234 | "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9": 235 | version "7.18.13" 236 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" 237 | integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== 238 | dependencies: 239 | "@babel/helper-string-parser" "^7.18.10" 240 | "@babel/helper-validator-identifier" "^7.18.6" 241 | to-fast-properties "^2.0.0" 242 | 243 | "@emotion/is-prop-valid@^1.1.0": 244 | version "1.2.0" 245 | resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" 246 | integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== 247 | dependencies: 248 | "@emotion/memoize" "^0.8.0" 249 | 250 | "@emotion/memoize@^0.8.0": 251 | version "0.8.0" 252 | resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" 253 | integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== 254 | 255 | "@emotion/stylis@^0.8.4": 256 | version "0.8.5" 257 | resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" 258 | integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== 259 | 260 | "@emotion/unitless@^0.7.4": 261 | version "0.7.5" 262 | resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" 263 | integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== 264 | 265 | "@esbuild/linux-loong64@0.14.54": 266 | version "0.14.54" 267 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" 268 | integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== 269 | 270 | "@jridgewell/gen-mapping@^0.1.0": 271 | version "0.1.1" 272 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 273 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 274 | dependencies: 275 | "@jridgewell/set-array" "^1.0.0" 276 | "@jridgewell/sourcemap-codec" "^1.4.10" 277 | 278 | "@jridgewell/gen-mapping@^0.3.2": 279 | version "0.3.2" 280 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 281 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 282 | dependencies: 283 | "@jridgewell/set-array" "^1.0.1" 284 | "@jridgewell/sourcemap-codec" "^1.4.10" 285 | "@jridgewell/trace-mapping" "^0.3.9" 286 | 287 | "@jridgewell/resolve-uri@^3.0.3": 288 | version "3.1.0" 289 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 290 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 291 | 292 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 293 | version "1.1.2" 294 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 295 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 296 | 297 | "@jridgewell/sourcemap-codec@^1.4.10": 298 | version "1.4.14" 299 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 300 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 301 | 302 | "@jridgewell/trace-mapping@^0.3.9": 303 | version "0.3.15" 304 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" 305 | integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== 306 | dependencies: 307 | "@jridgewell/resolve-uri" "^3.0.3" 308 | "@jridgewell/sourcemap-codec" "^1.4.10" 309 | 310 | "@rollup/pluginutils@^4.2.1": 311 | version "4.2.1" 312 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" 313 | integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== 314 | dependencies: 315 | estree-walker "^2.0.1" 316 | picomatch "^2.2.2" 317 | 318 | "@svgr/babel-plugin-add-jsx-attribute@^6.3.1": 319 | version "6.3.1" 320 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.3.1.tgz#b9a5d84902be75a05ede92e70b338d28ab63fa74" 321 | integrity sha512-jDBKArXYO1u0B1dmd2Nf8Oy6aTF5vLDfLoO9Oon/GLkqZ/NiggYWZA+a2HpUMH4ITwNqS3z43k8LWApB8S583w== 322 | 323 | "@svgr/babel-plugin-remove-jsx-attribute@^6.3.1": 324 | version "6.3.1" 325 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.3.1.tgz#4877995452efc997b36777abe1fde9705ef78e8b" 326 | integrity sha512-dQzyJ4prwjcFd929T43Z8vSYiTlTu8eafV40Z2gO7zy/SV5GT+ogxRJRBIKWomPBOiaVXFg3jY4S5hyEN3IBjQ== 327 | 328 | "@svgr/babel-plugin-remove-jsx-empty-expression@^6.3.1": 329 | version "6.3.1" 330 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.3.1.tgz#2d67a0e92904c9be149a5b22d3a3797ce4d7b514" 331 | integrity sha512-HBOUc1XwSU67fU26V5Sfb8MQsT0HvUyxru7d0oBJ4rA2s4HW3PhyAPC7fV/mdsSGpAvOdd8Wpvkjsr0fWPUO7A== 332 | 333 | "@svgr/babel-plugin-replace-jsx-attribute-value@^6.3.1": 334 | version "6.3.1" 335 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.3.1.tgz#306f5247139c53af70d1778f2719647c747998ee" 336 | integrity sha512-C12e6aN4BXAolRrI601gPn5MDFCRHO7C4TM8Kks+rDtl8eEq+NN1sak0eAzJu363x3TmHXdZn7+Efd2nr9I5dA== 337 | 338 | "@svgr/babel-plugin-svg-dynamic-title@^6.3.1": 339 | version "6.3.1" 340 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.3.1.tgz#6ce26d34cbc93eb81737ef528528907c292e7aa2" 341 | integrity sha512-6NU55Mmh3M5u2CfCCt6TX29/pPneutrkJnnDCHbKZnjukZmmgUAZLtZ2g6ZoSPdarowaQmAiBRgAHqHmG0vuqA== 342 | 343 | "@svgr/babel-plugin-svg-em-dimensions@^6.3.1": 344 | version "6.3.1" 345 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.3.1.tgz#5ade2a724b290873c30529d1d8cd23523856287a" 346 | integrity sha512-HV1NGHYTTe1vCNKlBgq/gKuCSfaRlKcHIADn7P8w8U3Zvujdw1rmusutghJ1pZJV7pDt3Gt8ws+SVrqHnBO/Qw== 347 | 348 | "@svgr/babel-plugin-transform-react-native-svg@^6.3.1": 349 | version "6.3.1" 350 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.3.1.tgz#d654f509d692c3a09dfb475757a44bd9f6ad7ddf" 351 | integrity sha512-2wZhSHvTolFNeKDAN/ZmIeSz2O9JSw72XD+o2bNp2QAaWqa8KGpn5Yk5WHso6xqfSAiRzAE+GXlsrBO4UP9LLw== 352 | 353 | "@svgr/babel-plugin-transform-svg-component@^6.3.1": 354 | version "6.3.1" 355 | resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.3.1.tgz#21a285dbffdce9567c437ebf0d081bf9210807e6" 356 | integrity sha512-cZ8Tr6ZAWNUFfDeCKn/pGi976iWSkS8ijmEYKosP+6ktdZ7lW9HVLHojyusPw3w0j8PI4VBeWAXAmi/2G7owxw== 357 | 358 | "@svgr/babel-preset@^6.3.1": 359 | version "6.3.1" 360 | resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.3.1.tgz#8bd1ead79637d395e9362b01dd37cfd59702e152" 361 | integrity sha512-tQtWtzuMMQ3opH7je+MpwfuRA1Hf3cKdSgTtAYwOBDfmhabP7rcTfBi3E7V3MuwJNy/Y02/7/RutvwS1W4Qv9g== 362 | dependencies: 363 | "@svgr/babel-plugin-add-jsx-attribute" "^6.3.1" 364 | "@svgr/babel-plugin-remove-jsx-attribute" "^6.3.1" 365 | "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.3.1" 366 | "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.3.1" 367 | "@svgr/babel-plugin-svg-dynamic-title" "^6.3.1" 368 | "@svgr/babel-plugin-svg-em-dimensions" "^6.3.1" 369 | "@svgr/babel-plugin-transform-react-native-svg" "^6.3.1" 370 | "@svgr/babel-plugin-transform-svg-component" "^6.3.1" 371 | 372 | "@svgr/core@^6.3.1": 373 | version "6.3.1" 374 | resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.3.1.tgz#752adf49d8d5473b15d76ca741961de093f715bd" 375 | integrity sha512-Sm3/7OdXbQreemf9aO25keerZSbnKMpGEfmH90EyYpj1e8wMD4TuwJIb3THDSgRMWk1kYJfSRulELBy4gVgZUA== 376 | dependencies: 377 | "@svgr/plugin-jsx" "^6.3.1" 378 | camelcase "^6.2.0" 379 | cosmiconfig "^7.0.1" 380 | 381 | "@svgr/hast-util-to-babel-ast@^6.3.1": 382 | version "6.3.1" 383 | resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.3.1.tgz#59614e24d2a4a28010e02089213b3448d905769d" 384 | integrity sha512-NgyCbiTQIwe3wHe/VWOUjyxmpUmsrBjdoIxKpXt3Nqc3TN30BpJG22OxBvVzsAh9jqep0w0/h8Ywvdk3D9niNQ== 385 | dependencies: 386 | "@babel/types" "^7.18.4" 387 | entities "^4.3.0" 388 | 389 | "@svgr/plugin-jsx@^6.3.1": 390 | version "6.3.1" 391 | resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.3.1.tgz#de7b2de824296b836d6b874d498377896e367f50" 392 | integrity sha512-r9+0mYG3hD4nNtUgsTXWGYJomv/bNd7kC16zvsM70I/bGeoCi/3lhTmYqeN6ChWX317OtQCSZZbH4wq9WwoXbw== 393 | dependencies: 394 | "@babel/core" "^7.18.5" 395 | "@svgr/babel-preset" "^6.3.1" 396 | "@svgr/hast-util-to-babel-ast" "^6.3.1" 397 | svg-parser "^2.0.4" 398 | 399 | "@types/hoist-non-react-statics@*": 400 | version "3.3.1" 401 | resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" 402 | integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== 403 | dependencies: 404 | "@types/react" "*" 405 | hoist-non-react-statics "^3.3.0" 406 | 407 | "@types/parse-json@^4.0.0": 408 | version "4.0.0" 409 | resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" 410 | integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== 411 | 412 | "@types/prop-types@*": 413 | version "15.7.5" 414 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 415 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 416 | 417 | "@types/react-dom@^18.0.6": 418 | version "18.0.6" 419 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" 420 | integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== 421 | dependencies: 422 | "@types/react" "*" 423 | 424 | "@types/react@*", "@types/react@^18.0.17": 425 | version "18.0.18" 426 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.18.tgz#9f16f33d57bc5d9dca848d12c3572110ff9429ac" 427 | integrity sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg== 428 | dependencies: 429 | "@types/prop-types" "*" 430 | "@types/scheduler" "*" 431 | csstype "^3.0.2" 432 | 433 | "@types/scheduler@*": 434 | version "0.16.2" 435 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 436 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 437 | 438 | "@types/styled-components@^5.1.26": 439 | version "5.1.26" 440 | resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af" 441 | integrity sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw== 442 | dependencies: 443 | "@types/hoist-non-react-statics" "*" 444 | "@types/react" "*" 445 | csstype "^3.0.2" 446 | 447 | "@vitejs/plugin-react@^2.0.1": 448 | version "2.0.1" 449 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-2.0.1.tgz#3197c01d8e4a4eb9fed829c7888c467a43aadd4e" 450 | integrity sha512-uINzNHmjrbunlFtyVkST6lY1ewSfz/XwLufG0PIqvLGnpk2nOIOa/1CACTDNcKi1/RwaCzJLmsXwm1NsUVV/NA== 451 | dependencies: 452 | "@babel/core" "^7.18.10" 453 | "@babel/plugin-transform-react-jsx" "^7.18.10" 454 | "@babel/plugin-transform-react-jsx-development" "^7.18.6" 455 | "@babel/plugin-transform-react-jsx-self" "^7.18.6" 456 | "@babel/plugin-transform-react-jsx-source" "^7.18.6" 457 | magic-string "^0.26.2" 458 | react-refresh "^0.14.0" 459 | 460 | ansi-styles@^3.2.1: 461 | version "3.2.1" 462 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 463 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 464 | dependencies: 465 | color-convert "^1.9.0" 466 | 467 | "babel-plugin-styled-components@>= 1.12.0": 468 | version "2.0.7" 469 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz#c81ef34b713f9da2b7d3f5550df0d1e19e798086" 470 | integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== 471 | dependencies: 472 | "@babel/helper-annotate-as-pure" "^7.16.0" 473 | "@babel/helper-module-imports" "^7.16.0" 474 | babel-plugin-syntax-jsx "^6.18.0" 475 | lodash "^4.17.11" 476 | picomatch "^2.3.0" 477 | 478 | babel-plugin-syntax-jsx@^6.18.0: 479 | version "6.18.0" 480 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 481 | integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== 482 | 483 | browserslist@^4.20.2: 484 | version "4.21.3" 485 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" 486 | integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== 487 | dependencies: 488 | caniuse-lite "^1.0.30001370" 489 | electron-to-chromium "^1.4.202" 490 | node-releases "^2.0.6" 491 | update-browserslist-db "^1.0.5" 492 | 493 | callsites@^3.0.0: 494 | version "3.1.0" 495 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 496 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 497 | 498 | camelcase@^6.2.0: 499 | version "6.3.0" 500 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 501 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 502 | 503 | camelize@^1.0.0: 504 | version "1.0.0" 505 | resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" 506 | integrity sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg== 507 | 508 | caniuse-lite@^1.0.30001370: 509 | version "1.0.30001387" 510 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001387.tgz#90d2b9bdfcc3ab9a5b9addee00a25ef86c9e2e1e" 511 | integrity sha512-fKDH0F1KOJvR+mWSOvhj8lVRr/Q/mc5u5nabU2vi1/sgvlSqEsE8dOq0Hy/BqVbDkCYQPRRHB1WRjW6PGB/7PA== 512 | 513 | chalk@^2.0.0: 514 | version "2.4.2" 515 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 516 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 517 | dependencies: 518 | ansi-styles "^3.2.1" 519 | escape-string-regexp "^1.0.5" 520 | supports-color "^5.3.0" 521 | 522 | color-convert@^1.9.0: 523 | version "1.9.3" 524 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 525 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 526 | dependencies: 527 | color-name "1.1.3" 528 | 529 | color-name@1.1.3: 530 | version "1.1.3" 531 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 532 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 533 | 534 | convert-source-map@^1.7.0: 535 | version "1.8.0" 536 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" 537 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 538 | dependencies: 539 | safe-buffer "~5.1.1" 540 | 541 | cosmiconfig@^7.0.1: 542 | version "7.0.1" 543 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" 544 | integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== 545 | dependencies: 546 | "@types/parse-json" "^4.0.0" 547 | import-fresh "^3.2.1" 548 | parse-json "^5.0.0" 549 | path-type "^4.0.0" 550 | yaml "^1.10.0" 551 | 552 | css-color-keywords@^1.0.0: 553 | version "1.0.0" 554 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 555 | integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== 556 | 557 | css-to-react-native@^3.0.0: 558 | version "3.0.0" 559 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" 560 | integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== 561 | dependencies: 562 | camelize "^1.0.0" 563 | css-color-keywords "^1.0.0" 564 | postcss-value-parser "^4.0.2" 565 | 566 | csstype@^3.0.2: 567 | version "3.1.0" 568 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" 569 | integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== 570 | 571 | debug@^4.1.0: 572 | version "4.3.4" 573 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 574 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 575 | dependencies: 576 | ms "2.1.2" 577 | 578 | electron-to-chromium@^1.4.202: 579 | version "1.4.237" 580 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.237.tgz#c695c5fedc3bb48f04ba1b39470c5aef2aaafd84" 581 | integrity sha512-vxVyGJcsgArNOVUJcXm+7iY3PJAfmSapEszQD1HbyPLl0qoCmNQ1o/EX3RI7Et5/88In9oLxX3SGF8J3orkUgA== 582 | 583 | entities@^4.3.0: 584 | version "4.3.1" 585 | resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" 586 | integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== 587 | 588 | error-ex@^1.3.1: 589 | version "1.3.2" 590 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 591 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 592 | dependencies: 593 | is-arrayish "^0.2.1" 594 | 595 | esbuild-android-64@0.14.54: 596 | version "0.14.54" 597 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" 598 | integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== 599 | 600 | esbuild-android-arm64@0.14.54: 601 | version "0.14.54" 602 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" 603 | integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== 604 | 605 | esbuild-darwin-64@0.14.54: 606 | version "0.14.54" 607 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" 608 | integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== 609 | 610 | esbuild-darwin-arm64@0.14.54: 611 | version "0.14.54" 612 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" 613 | integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== 614 | 615 | esbuild-freebsd-64@0.14.54: 616 | version "0.14.54" 617 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" 618 | integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== 619 | 620 | esbuild-freebsd-arm64@0.14.54: 621 | version "0.14.54" 622 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" 623 | integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== 624 | 625 | esbuild-linux-32@0.14.54: 626 | version "0.14.54" 627 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" 628 | integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== 629 | 630 | esbuild-linux-64@0.14.54: 631 | version "0.14.54" 632 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" 633 | integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== 634 | 635 | esbuild-linux-arm64@0.14.54: 636 | version "0.14.54" 637 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" 638 | integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== 639 | 640 | esbuild-linux-arm@0.14.54: 641 | version "0.14.54" 642 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" 643 | integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== 644 | 645 | esbuild-linux-mips64le@0.14.54: 646 | version "0.14.54" 647 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" 648 | integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== 649 | 650 | esbuild-linux-ppc64le@0.14.54: 651 | version "0.14.54" 652 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" 653 | integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== 654 | 655 | esbuild-linux-riscv64@0.14.54: 656 | version "0.14.54" 657 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" 658 | integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== 659 | 660 | esbuild-linux-s390x@0.14.54: 661 | version "0.14.54" 662 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" 663 | integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== 664 | 665 | esbuild-netbsd-64@0.14.54: 666 | version "0.14.54" 667 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" 668 | integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== 669 | 670 | esbuild-openbsd-64@0.14.54: 671 | version "0.14.54" 672 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" 673 | integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== 674 | 675 | esbuild-sunos-64@0.14.54: 676 | version "0.14.54" 677 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" 678 | integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== 679 | 680 | esbuild-windows-32@0.14.54: 681 | version "0.14.54" 682 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" 683 | integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== 684 | 685 | esbuild-windows-64@0.14.54: 686 | version "0.14.54" 687 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" 688 | integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== 689 | 690 | esbuild-windows-arm64@0.14.54: 691 | version "0.14.54" 692 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" 693 | integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== 694 | 695 | esbuild@^0.14.47: 696 | version "0.14.54" 697 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" 698 | integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== 699 | optionalDependencies: 700 | "@esbuild/linux-loong64" "0.14.54" 701 | esbuild-android-64 "0.14.54" 702 | esbuild-android-arm64 "0.14.54" 703 | esbuild-darwin-64 "0.14.54" 704 | esbuild-darwin-arm64 "0.14.54" 705 | esbuild-freebsd-64 "0.14.54" 706 | esbuild-freebsd-arm64 "0.14.54" 707 | esbuild-linux-32 "0.14.54" 708 | esbuild-linux-64 "0.14.54" 709 | esbuild-linux-arm "0.14.54" 710 | esbuild-linux-arm64 "0.14.54" 711 | esbuild-linux-mips64le "0.14.54" 712 | esbuild-linux-ppc64le "0.14.54" 713 | esbuild-linux-riscv64 "0.14.54" 714 | esbuild-linux-s390x "0.14.54" 715 | esbuild-netbsd-64 "0.14.54" 716 | esbuild-openbsd-64 "0.14.54" 717 | esbuild-sunos-64 "0.14.54" 718 | esbuild-windows-32 "0.14.54" 719 | esbuild-windows-64 "0.14.54" 720 | esbuild-windows-arm64 "0.14.54" 721 | 722 | escalade@^3.1.1: 723 | version "3.1.1" 724 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 725 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 726 | 727 | escape-string-regexp@^1.0.5: 728 | version "1.0.5" 729 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 730 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 731 | 732 | estree-walker@^2.0.1: 733 | version "2.0.2" 734 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 735 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 736 | 737 | fsevents@~2.3.2: 738 | version "2.3.2" 739 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 740 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 741 | 742 | function-bind@^1.1.1: 743 | version "1.1.1" 744 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 745 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 746 | 747 | gensync@^1.0.0-beta.2: 748 | version "1.0.0-beta.2" 749 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 750 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 751 | 752 | globals@^11.1.0: 753 | version "11.12.0" 754 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 755 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 756 | 757 | has-flag@^3.0.0: 758 | version "3.0.0" 759 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 760 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 761 | 762 | has@^1.0.3: 763 | version "1.0.3" 764 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 765 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 766 | dependencies: 767 | function-bind "^1.1.1" 768 | 769 | hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: 770 | version "3.3.2" 771 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" 772 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== 773 | dependencies: 774 | react-is "^16.7.0" 775 | 776 | import-fresh@^3.2.1: 777 | version "3.3.0" 778 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 779 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 780 | dependencies: 781 | parent-module "^1.0.0" 782 | resolve-from "^4.0.0" 783 | 784 | is-arrayish@^0.2.1: 785 | version "0.2.1" 786 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 787 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 788 | 789 | is-core-module@^2.9.0: 790 | version "2.10.0" 791 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" 792 | integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== 793 | dependencies: 794 | has "^1.0.3" 795 | 796 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 797 | version "4.0.0" 798 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 799 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 800 | 801 | jsesc@^2.5.1: 802 | version "2.5.2" 803 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 804 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 805 | 806 | json-parse-even-better-errors@^2.3.0: 807 | version "2.3.1" 808 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 809 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 810 | 811 | json5@^2.2.1: 812 | version "2.2.1" 813 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" 814 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 815 | 816 | lines-and-columns@^1.1.6: 817 | version "1.2.4" 818 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 819 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 820 | 821 | lodash@^4.17.11: 822 | version "4.17.21" 823 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 824 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 825 | 826 | loose-envify@^1.1.0: 827 | version "1.4.0" 828 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 829 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 830 | dependencies: 831 | js-tokens "^3.0.0 || ^4.0.0" 832 | 833 | magic-string@^0.26.2: 834 | version "0.26.3" 835 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.3.tgz#25840b875140f7b4785ab06bddc384270b7dd452" 836 | integrity sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg== 837 | dependencies: 838 | sourcemap-codec "^1.4.8" 839 | 840 | ms@2.1.2: 841 | version "2.1.2" 842 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 843 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 844 | 845 | nanoid@^3.3.4: 846 | version "3.3.4" 847 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 848 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 849 | 850 | node-releases@^2.0.6: 851 | version "2.0.6" 852 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" 853 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== 854 | 855 | parent-module@^1.0.0: 856 | version "1.0.1" 857 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 858 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 859 | dependencies: 860 | callsites "^3.0.0" 861 | 862 | parse-json@^5.0.0: 863 | version "5.2.0" 864 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 865 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 866 | dependencies: 867 | "@babel/code-frame" "^7.0.0" 868 | error-ex "^1.3.1" 869 | json-parse-even-better-errors "^2.3.0" 870 | lines-and-columns "^1.1.6" 871 | 872 | path-parse@^1.0.7: 873 | version "1.0.7" 874 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 875 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 876 | 877 | path-type@^4.0.0: 878 | version "4.0.0" 879 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 880 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 881 | 882 | picocolors@^1.0.0: 883 | version "1.0.0" 884 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 885 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 886 | 887 | picomatch@^2.2.2, picomatch@^2.3.0: 888 | version "2.3.1" 889 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 890 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 891 | 892 | postcss-value-parser@^4.0.2: 893 | version "4.2.0" 894 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 895 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 896 | 897 | postcss@^8.4.16: 898 | version "8.4.16" 899 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" 900 | integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== 901 | dependencies: 902 | nanoid "^3.3.4" 903 | picocolors "^1.0.0" 904 | source-map-js "^1.0.2" 905 | 906 | react-dom@^18.2.0: 907 | version "18.2.0" 908 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 909 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 910 | dependencies: 911 | loose-envify "^1.1.0" 912 | scheduler "^0.23.0" 913 | 914 | react-is@^16.7.0: 915 | version "16.13.1" 916 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 917 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 918 | 919 | react-refresh@^0.14.0: 920 | version "0.14.0" 921 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" 922 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== 923 | 924 | react@^18.2.0: 925 | version "18.2.0" 926 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 927 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 928 | dependencies: 929 | loose-envify "^1.1.0" 930 | 931 | resolve-from@^4.0.0: 932 | version "4.0.0" 933 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 934 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 935 | 936 | resolve@^1.22.1: 937 | version "1.22.1" 938 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 939 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 940 | dependencies: 941 | is-core-module "^2.9.0" 942 | path-parse "^1.0.7" 943 | supports-preserve-symlinks-flag "^1.0.0" 944 | 945 | "rollup@>=2.75.6 <2.77.0 || ~2.77.0": 946 | version "2.77.3" 947 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" 948 | integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== 949 | optionalDependencies: 950 | fsevents "~2.3.2" 951 | 952 | safe-buffer@~5.1.1: 953 | version "5.1.2" 954 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 955 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 956 | 957 | scheduler@^0.23.0: 958 | version "0.23.0" 959 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 960 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 961 | dependencies: 962 | loose-envify "^1.1.0" 963 | 964 | semver@^6.3.0: 965 | version "6.3.0" 966 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 967 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 968 | 969 | shallowequal@^1.1.0: 970 | version "1.1.0" 971 | resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" 972 | integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== 973 | 974 | source-map-js@^1.0.2: 975 | version "1.0.2" 976 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 977 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 978 | 979 | sourcemap-codec@^1.4.8: 980 | version "1.4.8" 981 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 982 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 983 | 984 | styled-components@^5.3.5: 985 | version "5.3.5" 986 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.5.tgz#a750a398d01f1ca73af16a241dec3da6deae5ec4" 987 | integrity sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg== 988 | dependencies: 989 | "@babel/helper-module-imports" "^7.0.0" 990 | "@babel/traverse" "^7.4.5" 991 | "@emotion/is-prop-valid" "^1.1.0" 992 | "@emotion/stylis" "^0.8.4" 993 | "@emotion/unitless" "^0.7.4" 994 | babel-plugin-styled-components ">= 1.12.0" 995 | css-to-react-native "^3.0.0" 996 | hoist-non-react-statics "^3.0.0" 997 | shallowequal "^1.1.0" 998 | supports-color "^5.5.0" 999 | 1000 | supports-color@^5.3.0, supports-color@^5.5.0: 1001 | version "5.5.0" 1002 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1003 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1004 | dependencies: 1005 | has-flag "^3.0.0" 1006 | 1007 | supports-preserve-symlinks-flag@^1.0.0: 1008 | version "1.0.0" 1009 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1010 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1011 | 1012 | svg-parser@^2.0.4: 1013 | version "2.0.4" 1014 | resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" 1015 | integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== 1016 | 1017 | to-fast-properties@^2.0.0: 1018 | version "2.0.0" 1019 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1020 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1021 | 1022 | typescript@^4.6.4: 1023 | version "4.8.2" 1024 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" 1025 | integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== 1026 | 1027 | update-browserslist-db@^1.0.5: 1028 | version "1.0.5" 1029 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" 1030 | integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== 1031 | dependencies: 1032 | escalade "^3.1.1" 1033 | picocolors "^1.0.0" 1034 | 1035 | vite-plugin-svgr@^2.2.1: 1036 | version "2.2.1" 1037 | resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-2.2.1.tgz#6e1132a3b66f71e1d69e8c5fe989393260184ac3" 1038 | integrity sha512-+EqwahbwjETJH/ssA/66dNYyKN1cO0AStq96MuXmq5maU7AePBMf2lDKfQna49tJZAjtRz+R899BWCsUUP45Fg== 1039 | dependencies: 1040 | "@rollup/pluginutils" "^4.2.1" 1041 | "@svgr/core" "^6.3.1" 1042 | 1043 | vite@^3.0.7: 1044 | version "3.0.9" 1045 | resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.9.tgz#45fac22c2a5290a970f23d66c1aef56a04be8a30" 1046 | integrity sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw== 1047 | dependencies: 1048 | esbuild "^0.14.47" 1049 | postcss "^8.4.16" 1050 | resolve "^1.22.1" 1051 | rollup ">=2.75.6 <2.77.0 || ~2.77.0" 1052 | optionalDependencies: 1053 | fsevents "~2.3.2" 1054 | 1055 | yaml@^1.10.0: 1056 | version "1.10.2" 1057 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 1058 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 1059 | --------------------------------------------------------------------------------