├── .gitignore ├── index.html ├── package.json ├── src ├── App.jsx ├── assets │ └── todoLogo.svg ├── components │ ├── Header │ │ ├── header.module.css │ │ └── index.jsx │ ├── Task │ │ ├── index.jsx │ │ └── task.module.css │ └── Tasks │ │ ├── index.jsx │ │ └── tasks.module.css ├── main.jsx └── styles │ └── global.css ├── vite.config.js └── 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 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | To Do App 11 | 12 | 13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "todo-tutorial", 3 | "private": true, 4 | "version": "0.0.0", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "react": "^18.0.0", 12 | "react-dom": "^18.0.0", 13 | "react-icons": "^4.4.0" 14 | }, 15 | "devDependencies": { 16 | "@types/react": "^18.0.0", 17 | "@types/react-dom": "^18.0.0", 18 | "@vitejs/plugin-react": "^1.3.0", 19 | "vite": "^2.9.9" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import { Header } from "./components/Header"; 3 | import { Tasks } from "./components/Tasks"; 4 | 5 | const LOCAL_STORAGE_KEY = 'todo:tasks'; 6 | 7 | function App() { 8 | const [tasks, setTasks] = useState([]); 9 | 10 | function loadSavedTasks() { 11 | const saved = localStorage.getItem(LOCAL_STORAGE_KEY); 12 | if(saved) { 13 | setTasks(JSON.parse(saved)); 14 | } 15 | } 16 | 17 | function setTasksAndSave(newTasks) { 18 | setTasks(newTasks); 19 | localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(newTasks)); 20 | } 21 | 22 | useEffect(() => { 23 | loadSavedTasks(); 24 | }, []) 25 | 26 | function addTask(taskTitle) { 27 | setTasksAndSave([...tasks, { 28 | id: crypto.randomUUID(), 29 | title: taskTitle, 30 | isCompleted: false 31 | }]); 32 | } 33 | 34 | function deleteTaskById(taskId) { 35 | const newTasks = tasks.filter(task => task.id !== taskId); 36 | setTasksAndSave(newTasks); 37 | } 38 | 39 | function toggleTaskCompletedById(taskId) { 40 | const newTasks = tasks.map(task => { 41 | if(task.id === taskId) { 42 | return { 43 | ...task, 44 | isCompleted: !task.isCompleted 45 | } 46 | } 47 | return task; 48 | }); 49 | setTasksAndSave(newTasks); 50 | } 51 | 52 | return ( 53 | <> 54 |
55 | 60 | 61 | ) 62 | } 63 | 64 | export default App 65 | -------------------------------------------------------------------------------- /src/assets/todoLogo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/components/Header/header.module.css: -------------------------------------------------------------------------------- 1 | .header { 2 | background: #0D0D0D; 3 | display: flex; 4 | align-items: center; 5 | justify-content: center; 6 | height: 200px; 7 | position: relative; 8 | } 9 | 10 | .newTaskForm { 11 | position: absolute; 12 | height: 54px; 13 | bottom: -27px; 14 | width: 100%; 15 | max-width: 736px; 16 | display: flex; 17 | gap: 8px; 18 | padding: 0 1rem; 19 | } 20 | 21 | .newTaskForm input { 22 | height: 100%; 23 | flex: 1; 24 | color: #fff; 25 | background: #262626; 26 | border: 1px solid #0D0D0D; 27 | border-radius: 8px; 28 | padding: 0 16px; 29 | font-size: 16px; 30 | } 31 | 32 | .newTaskForm input::placeholder { 33 | color: #808080; 34 | } 35 | 36 | .newTaskForm button { 37 | height: 100%; 38 | padding: 0 16px; 39 | background: #1E6F9F; 40 | color: #fff; 41 | border: none; 42 | border-radius: 8px; 43 | display: flex; 44 | align-items: center; 45 | gap: 6px; 46 | font-weight: 700; 47 | font-size: 14px; 48 | } -------------------------------------------------------------------------------- /src/components/Header/index.jsx: -------------------------------------------------------------------------------- 1 | import todoLogo from '../../assets/todoLogo.svg'; 2 | import styles from './header.module.css'; 3 | import { AiOutlinePlusCircle } from 'react-icons/ai'; 4 | import { useState } from 'react'; 5 | 6 | export function Header({ handleAddTask }) { 7 | const [title, setTitle] = useState(''); 8 | 9 | function handleSubmit(event) { 10 | event.preventDefault(); 11 | 12 | handleAddTask(title); 13 | setTitle(''); 14 | } 15 | 16 | function onChangeTitle(event) { 17 | setTitle(event.target.value); 18 | } 19 | 20 | return ( 21 |
22 | 23 | 24 |
25 | 26 | 27 |
28 |
29 | ) 30 | } -------------------------------------------------------------------------------- /src/components/Task/index.jsx: -------------------------------------------------------------------------------- 1 | import styles from './task.module.css'; 2 | import { BsFillCheckCircleFill } from 'react-icons/bs'; 3 | import { TbTrash } from 'react-icons/tb'; 4 | 5 | export function Task({ task, onDelete, onComplete }) { 6 | return ( 7 |
8 | 11 | 12 |

13 | {task.title} 14 |

15 | 16 | 19 |
20 | ) 21 | } -------------------------------------------------------------------------------- /src/components/Task/task.module.css: -------------------------------------------------------------------------------- 1 | .task { 2 | width: 100%; 3 | background: #262626; 4 | border: 1px solid #333333; 5 | padding: 16px; 6 | border-radius: 8px; 7 | display: flex; 8 | align-items: center; 9 | justify-content: space-between; 10 | gap: 12px; 11 | } 12 | 13 | .task p { 14 | font-size: 14px; 15 | line-height: 19px; 16 | color: #F2F2F2; 17 | margin-right: auto; 18 | } 19 | 20 | p.textCompleted { 21 | color: #808080; 22 | text-decoration: line-through; 23 | } 24 | 25 | .checkContainer { 26 | width: 18px; 27 | height: 18px; 28 | background: none; 29 | border: none; 30 | } 31 | 32 | .checkContainer div { 33 | width: 100%; 34 | height: 100%; 35 | border-radius: 999px; 36 | border: 2px solid #4EA8DE; 37 | } 38 | 39 | .checkContainer svg { 40 | width: 100%; 41 | height: 100%; 42 | color: #5E60CE; 43 | } 44 | 45 | .deleteButton { 46 | background: none; 47 | border: none; 48 | color: #808080; 49 | } -------------------------------------------------------------------------------- /src/components/Tasks/index.jsx: -------------------------------------------------------------------------------- 1 | import { Task } from '../Task'; 2 | import styles from './tasks.module.css'; 3 | 4 | export function Tasks({ tasks, onDelete, onComplete }) { 5 | const tasksQuantity = tasks.length; 6 | const completedTasks = tasks.filter(task => task.isCompleted).length; 7 | 8 | return ( 9 |
10 |
11 |
12 |

Created tasks

13 | {tasksQuantity} 14 |
15 | 16 |
17 |

Completed tasks

18 | {completedTasks} of {tasksQuantity} 19 |
20 |
21 | 22 |
23 | {tasks.map((task) => ( 24 | 25 | ))} 26 |
27 |
28 | ) 29 | } -------------------------------------------------------------------------------- /src/components/Tasks/tasks.module.css: -------------------------------------------------------------------------------- 1 | .tasks { 2 | width: 100%; 3 | max-width: 736px; 4 | margin: 0 auto; 5 | margin-top: 90px; 6 | padding: 0 1rem; 7 | } 8 | 9 | .header { 10 | display: flex; 11 | align-items: center; 12 | justify-content: space-between; 13 | margin-bottom: 24px; 14 | } 15 | 16 | .header > div { 17 | display: flex; 18 | align-items: center; 19 | gap: 8px; 20 | } 21 | 22 | .header p { 23 | color: #4EA8DE; 24 | font-size: 14px; 25 | font-weight: 700; 26 | } 27 | 28 | .textPurple { 29 | color: #8284FA !important; 30 | } 31 | 32 | .header span { 33 | background: #333333; 34 | color: #D9D9D9; 35 | padding: 3px 9px; 36 | border-radius: 999px; 37 | font-size: 12px; 38 | font-weight: 700; 39 | } 40 | 41 | .list { 42 | display: flex; 43 | flex-direction: column; 44 | gap: 12px; 45 | } -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './styles/global.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')).render( 7 | 8 | 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /src/styles/global.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | font-family: 'Inter', sans-serif; 6 | } 7 | 8 | body { 9 | background: #191919; 10 | color: #F2F2F2; 11 | min-height: 100vh; 12 | } 13 | 14 | button { 15 | cursor: pointer; 16 | } 17 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()] 7 | }) 8 | -------------------------------------------------------------------------------- /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.16.7": 14 | version "7.16.7" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" 16 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== 17 | dependencies: 18 | "@babel/highlight" "^7.16.7" 19 | 20 | "@babel/compat-data@^7.17.10": 21 | version "7.18.5" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.5.tgz#acac0c839e317038c73137fbb6ef71a1d6238471" 23 | integrity sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg== 24 | 25 | "@babel/core@^7.17.10": 26 | version "7.18.5" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000" 28 | integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.16.7" 32 | "@babel/generator" "^7.18.2" 33 | "@babel/helper-compilation-targets" "^7.18.2" 34 | "@babel/helper-module-transforms" "^7.18.0" 35 | "@babel/helpers" "^7.18.2" 36 | "@babel/parser" "^7.18.5" 37 | "@babel/template" "^7.16.7" 38 | "@babel/traverse" "^7.18.5" 39 | "@babel/types" "^7.18.4" 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.2": 47 | version "7.18.2" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" 49 | integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== 50 | dependencies: 51 | "@babel/types" "^7.18.2" 52 | "@jridgewell/gen-mapping" "^0.3.0" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-annotate-as-pure@^7.16.7": 56 | version "7.16.7" 57 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" 58 | integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== 59 | dependencies: 60 | "@babel/types" "^7.16.7" 61 | 62 | "@babel/helper-compilation-targets@^7.18.2": 63 | version "7.18.2" 64 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" 65 | integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== 66 | dependencies: 67 | "@babel/compat-data" "^7.17.10" 68 | "@babel/helper-validator-option" "^7.16.7" 69 | browserslist "^4.20.2" 70 | semver "^6.3.0" 71 | 72 | "@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": 73 | version "7.18.2" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" 75 | integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== 76 | 77 | "@babel/helper-function-name@^7.17.9": 78 | version "7.17.9" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" 80 | integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== 81 | dependencies: 82 | "@babel/template" "^7.16.7" 83 | "@babel/types" "^7.17.0" 84 | 85 | "@babel/helper-hoist-variables@^7.16.7": 86 | version "7.16.7" 87 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" 88 | integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== 89 | dependencies: 90 | "@babel/types" "^7.16.7" 91 | 92 | "@babel/helper-module-imports@^7.16.7": 93 | version "7.16.7" 94 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" 95 | integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== 96 | dependencies: 97 | "@babel/types" "^7.16.7" 98 | 99 | "@babel/helper-module-transforms@^7.18.0": 100 | version "7.18.0" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" 102 | integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== 103 | dependencies: 104 | "@babel/helper-environment-visitor" "^7.16.7" 105 | "@babel/helper-module-imports" "^7.16.7" 106 | "@babel/helper-simple-access" "^7.17.7" 107 | "@babel/helper-split-export-declaration" "^7.16.7" 108 | "@babel/helper-validator-identifier" "^7.16.7" 109 | "@babel/template" "^7.16.7" 110 | "@babel/traverse" "^7.18.0" 111 | "@babel/types" "^7.18.0" 112 | 113 | "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12": 114 | version "7.17.12" 115 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" 116 | integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== 117 | 118 | "@babel/helper-simple-access@^7.17.7": 119 | version "7.18.2" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" 121 | integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== 122 | dependencies: 123 | "@babel/types" "^7.18.2" 124 | 125 | "@babel/helper-split-export-declaration@^7.16.7": 126 | version "7.16.7" 127 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" 128 | integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== 129 | dependencies: 130 | "@babel/types" "^7.16.7" 131 | 132 | "@babel/helper-validator-identifier@^7.16.7": 133 | version "7.16.7" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" 135 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== 136 | 137 | "@babel/helper-validator-option@^7.16.7": 138 | version "7.16.7" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" 140 | integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== 141 | 142 | "@babel/helpers@^7.18.2": 143 | version "7.18.2" 144 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" 145 | integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== 146 | dependencies: 147 | "@babel/template" "^7.16.7" 148 | "@babel/traverse" "^7.18.2" 149 | "@babel/types" "^7.18.2" 150 | 151 | "@babel/highlight@^7.16.7": 152 | version "7.17.12" 153 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" 154 | integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== 155 | dependencies: 156 | "@babel/helper-validator-identifier" "^7.16.7" 157 | chalk "^2.0.0" 158 | js-tokens "^4.0.0" 159 | 160 | "@babel/parser@^7.16.7", "@babel/parser@^7.18.5": 161 | version "7.18.5" 162 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.5.tgz#337062363436a893a2d22faa60be5bb37091c83c" 163 | integrity sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw== 164 | 165 | "@babel/plugin-syntax-jsx@^7.17.12": 166 | version "7.17.12" 167 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47" 168 | integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog== 169 | dependencies: 170 | "@babel/helper-plugin-utils" "^7.17.12" 171 | 172 | "@babel/plugin-transform-react-jsx-development@^7.16.7": 173 | version "7.16.7" 174 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" 175 | integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== 176 | dependencies: 177 | "@babel/plugin-transform-react-jsx" "^7.16.7" 178 | 179 | "@babel/plugin-transform-react-jsx-self@^7.16.7": 180 | version "7.17.12" 181 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.17.12.tgz#7f2e9b8c08d6a4204733138d8c29d4dba4bb66c2" 182 | integrity sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q== 183 | dependencies: 184 | "@babel/helper-plugin-utils" "^7.17.12" 185 | 186 | "@babel/plugin-transform-react-jsx-source@^7.16.7": 187 | version "7.16.7" 188 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz#1879c3f23629d287cc6186a6c683154509ec70c0" 189 | integrity sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw== 190 | dependencies: 191 | "@babel/helper-plugin-utils" "^7.16.7" 192 | 193 | "@babel/plugin-transform-react-jsx@^7.16.7", "@babel/plugin-transform-react-jsx@^7.17.3": 194 | version "7.17.12" 195 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz#2aa20022709cd6a3f40b45d60603d5f269586dba" 196 | integrity sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ== 197 | dependencies: 198 | "@babel/helper-annotate-as-pure" "^7.16.7" 199 | "@babel/helper-module-imports" "^7.16.7" 200 | "@babel/helper-plugin-utils" "^7.17.12" 201 | "@babel/plugin-syntax-jsx" "^7.17.12" 202 | "@babel/types" "^7.17.12" 203 | 204 | "@babel/template@^7.16.7": 205 | version "7.16.7" 206 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" 207 | integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== 208 | dependencies: 209 | "@babel/code-frame" "^7.16.7" 210 | "@babel/parser" "^7.16.7" 211 | "@babel/types" "^7.16.7" 212 | 213 | "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.18.5": 214 | version "7.18.5" 215 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.5.tgz#94a8195ad9642801837988ab77f36e992d9a20cd" 216 | integrity sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA== 217 | dependencies: 218 | "@babel/code-frame" "^7.16.7" 219 | "@babel/generator" "^7.18.2" 220 | "@babel/helper-environment-visitor" "^7.18.2" 221 | "@babel/helper-function-name" "^7.17.9" 222 | "@babel/helper-hoist-variables" "^7.16.7" 223 | "@babel/helper-split-export-declaration" "^7.16.7" 224 | "@babel/parser" "^7.18.5" 225 | "@babel/types" "^7.18.4" 226 | debug "^4.1.0" 227 | globals "^11.1.0" 228 | 229 | "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.12", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.18.4": 230 | version "7.18.4" 231 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" 232 | integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== 233 | dependencies: 234 | "@babel/helper-validator-identifier" "^7.16.7" 235 | to-fast-properties "^2.0.0" 236 | 237 | "@jridgewell/gen-mapping@^0.1.0": 238 | version "0.1.1" 239 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 240 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 241 | dependencies: 242 | "@jridgewell/set-array" "^1.0.0" 243 | "@jridgewell/sourcemap-codec" "^1.4.10" 244 | 245 | "@jridgewell/gen-mapping@^0.3.0": 246 | version "0.3.1" 247 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" 248 | integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== 249 | dependencies: 250 | "@jridgewell/set-array" "^1.0.0" 251 | "@jridgewell/sourcemap-codec" "^1.4.10" 252 | "@jridgewell/trace-mapping" "^0.3.9" 253 | 254 | "@jridgewell/resolve-uri@^3.0.3": 255 | version "3.0.7" 256 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" 257 | integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== 258 | 259 | "@jridgewell/set-array@^1.0.0": 260 | version "1.1.1" 261 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" 262 | integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== 263 | 264 | "@jridgewell/sourcemap-codec@^1.4.10": 265 | version "1.4.13" 266 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" 267 | integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== 268 | 269 | "@jridgewell/trace-mapping@^0.3.9": 270 | version "0.3.13" 271 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" 272 | integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== 273 | dependencies: 274 | "@jridgewell/resolve-uri" "^3.0.3" 275 | "@jridgewell/sourcemap-codec" "^1.4.10" 276 | 277 | "@rollup/pluginutils@^4.2.1": 278 | version "4.2.1" 279 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" 280 | integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== 281 | dependencies: 282 | estree-walker "^2.0.1" 283 | picomatch "^2.2.2" 284 | 285 | "@types/prop-types@*": 286 | version "15.7.5" 287 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 288 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 289 | 290 | "@types/react-dom@^18.0.0": 291 | version "18.0.5" 292 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.5.tgz#330b2d472c22f796e5531446939eacef8378444a" 293 | integrity sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA== 294 | dependencies: 295 | "@types/react" "*" 296 | 297 | "@types/react@*", "@types/react@^18.0.0": 298 | version "18.0.14" 299 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.14.tgz#e016616ffff51dba01b04945610fe3671fdbe06d" 300 | integrity sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q== 301 | dependencies: 302 | "@types/prop-types" "*" 303 | "@types/scheduler" "*" 304 | csstype "^3.0.2" 305 | 306 | "@types/scheduler@*": 307 | version "0.16.2" 308 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 309 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 310 | 311 | "@vitejs/plugin-react@^1.3.0": 312 | version "1.3.2" 313 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz#2fcf0b6ce9bcdcd4cec5c760c199779d5657ece1" 314 | integrity sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA== 315 | dependencies: 316 | "@babel/core" "^7.17.10" 317 | "@babel/plugin-transform-react-jsx" "^7.17.3" 318 | "@babel/plugin-transform-react-jsx-development" "^7.16.7" 319 | "@babel/plugin-transform-react-jsx-self" "^7.16.7" 320 | "@babel/plugin-transform-react-jsx-source" "^7.16.7" 321 | "@rollup/pluginutils" "^4.2.1" 322 | react-refresh "^0.13.0" 323 | resolve "^1.22.0" 324 | 325 | ansi-styles@^3.2.1: 326 | version "3.2.1" 327 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 328 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 329 | dependencies: 330 | color-convert "^1.9.0" 331 | 332 | browserslist@^4.20.2: 333 | version "4.21.0" 334 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.0.tgz#7ab19572361a140ecd1e023e2c1ed95edda0cefe" 335 | integrity sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA== 336 | dependencies: 337 | caniuse-lite "^1.0.30001358" 338 | electron-to-chromium "^1.4.164" 339 | node-releases "^2.0.5" 340 | update-browserslist-db "^1.0.0" 341 | 342 | caniuse-lite@^1.0.30001358: 343 | version "1.0.30001359" 344 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001359.tgz#a1c1cbe1c2da9e689638813618b4219acbd4925e" 345 | integrity sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw== 346 | 347 | chalk@^2.0.0: 348 | version "2.4.2" 349 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 350 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 351 | dependencies: 352 | ansi-styles "^3.2.1" 353 | escape-string-regexp "^1.0.5" 354 | supports-color "^5.3.0" 355 | 356 | color-convert@^1.9.0: 357 | version "1.9.3" 358 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 359 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 360 | dependencies: 361 | color-name "1.1.3" 362 | 363 | color-name@1.1.3: 364 | version "1.1.3" 365 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 366 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 367 | 368 | convert-source-map@^1.7.0: 369 | version "1.8.0" 370 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" 371 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 372 | dependencies: 373 | safe-buffer "~5.1.1" 374 | 375 | csstype@^3.0.2: 376 | version "3.1.0" 377 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" 378 | integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== 379 | 380 | debug@^4.1.0: 381 | version "4.3.4" 382 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 383 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 384 | dependencies: 385 | ms "2.1.2" 386 | 387 | electron-to-chromium@^1.4.164: 388 | version "1.4.170" 389 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.170.tgz#0415fc489402e09bfbe1f0c99bbf4d73f31d48d4" 390 | integrity sha512-rZ8PZLhK4ORPjFqLp9aqC4/S1j4qWFsPPz13xmWdrbBkU/LlxMcok+f+6f8YnQ57MiZwKtOaW15biZZsY5Igvw== 391 | 392 | esbuild-android-64@0.14.47: 393 | version "0.14.47" 394 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" 395 | integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== 396 | 397 | esbuild-android-arm64@0.14.47: 398 | version "0.14.47" 399 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" 400 | integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== 401 | 402 | esbuild-darwin-64@0.14.47: 403 | version "0.14.47" 404 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" 405 | integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== 406 | 407 | esbuild-darwin-arm64@0.14.47: 408 | version "0.14.47" 409 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" 410 | integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== 411 | 412 | esbuild-freebsd-64@0.14.47: 413 | version "0.14.47" 414 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" 415 | integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== 416 | 417 | esbuild-freebsd-arm64@0.14.47: 418 | version "0.14.47" 419 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" 420 | integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== 421 | 422 | esbuild-linux-32@0.14.47: 423 | version "0.14.47" 424 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" 425 | integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== 426 | 427 | esbuild-linux-64@0.14.47: 428 | version "0.14.47" 429 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" 430 | integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== 431 | 432 | esbuild-linux-arm64@0.14.47: 433 | version "0.14.47" 434 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" 435 | integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== 436 | 437 | esbuild-linux-arm@0.14.47: 438 | version "0.14.47" 439 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" 440 | integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== 441 | 442 | esbuild-linux-mips64le@0.14.47: 443 | version "0.14.47" 444 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" 445 | integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== 446 | 447 | esbuild-linux-ppc64le@0.14.47: 448 | version "0.14.47" 449 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" 450 | integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== 451 | 452 | esbuild-linux-riscv64@0.14.47: 453 | version "0.14.47" 454 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" 455 | integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== 456 | 457 | esbuild-linux-s390x@0.14.47: 458 | version "0.14.47" 459 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" 460 | integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== 461 | 462 | esbuild-netbsd-64@0.14.47: 463 | version "0.14.47" 464 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" 465 | integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== 466 | 467 | esbuild-openbsd-64@0.14.47: 468 | version "0.14.47" 469 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" 470 | integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== 471 | 472 | esbuild-sunos-64@0.14.47: 473 | version "0.14.47" 474 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" 475 | integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== 476 | 477 | esbuild-windows-32@0.14.47: 478 | version "0.14.47" 479 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" 480 | integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== 481 | 482 | esbuild-windows-64@0.14.47: 483 | version "0.14.47" 484 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" 485 | integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== 486 | 487 | esbuild-windows-arm64@0.14.47: 488 | version "0.14.47" 489 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" 490 | integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== 491 | 492 | esbuild@^0.14.27: 493 | version "0.14.47" 494 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" 495 | integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== 496 | optionalDependencies: 497 | esbuild-android-64 "0.14.47" 498 | esbuild-android-arm64 "0.14.47" 499 | esbuild-darwin-64 "0.14.47" 500 | esbuild-darwin-arm64 "0.14.47" 501 | esbuild-freebsd-64 "0.14.47" 502 | esbuild-freebsd-arm64 "0.14.47" 503 | esbuild-linux-32 "0.14.47" 504 | esbuild-linux-64 "0.14.47" 505 | esbuild-linux-arm "0.14.47" 506 | esbuild-linux-arm64 "0.14.47" 507 | esbuild-linux-mips64le "0.14.47" 508 | esbuild-linux-ppc64le "0.14.47" 509 | esbuild-linux-riscv64 "0.14.47" 510 | esbuild-linux-s390x "0.14.47" 511 | esbuild-netbsd-64 "0.14.47" 512 | esbuild-openbsd-64 "0.14.47" 513 | esbuild-sunos-64 "0.14.47" 514 | esbuild-windows-32 "0.14.47" 515 | esbuild-windows-64 "0.14.47" 516 | esbuild-windows-arm64 "0.14.47" 517 | 518 | escalade@^3.1.1: 519 | version "3.1.1" 520 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 521 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 522 | 523 | escape-string-regexp@^1.0.5: 524 | version "1.0.5" 525 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 526 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 527 | 528 | estree-walker@^2.0.1: 529 | version "2.0.2" 530 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 531 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 532 | 533 | fsevents@~2.3.2: 534 | version "2.3.2" 535 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 536 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 537 | 538 | function-bind@^1.1.1: 539 | version "1.1.1" 540 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 541 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 542 | 543 | gensync@^1.0.0-beta.2: 544 | version "1.0.0-beta.2" 545 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 546 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 547 | 548 | globals@^11.1.0: 549 | version "11.12.0" 550 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 551 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 552 | 553 | has-flag@^3.0.0: 554 | version "3.0.0" 555 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 556 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 557 | 558 | has@^1.0.3: 559 | version "1.0.3" 560 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 561 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 562 | dependencies: 563 | function-bind "^1.1.1" 564 | 565 | is-core-module@^2.9.0: 566 | version "2.9.0" 567 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" 568 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== 569 | dependencies: 570 | has "^1.0.3" 571 | 572 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 573 | version "4.0.0" 574 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 575 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 576 | 577 | jsesc@^2.5.1: 578 | version "2.5.2" 579 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 580 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 581 | 582 | json5@^2.2.1: 583 | version "2.2.1" 584 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" 585 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 586 | 587 | loose-envify@^1.1.0: 588 | version "1.4.0" 589 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 590 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 591 | dependencies: 592 | js-tokens "^3.0.0 || ^4.0.0" 593 | 594 | ms@2.1.2: 595 | version "2.1.2" 596 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 597 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 598 | 599 | nanoid@^3.3.4: 600 | version "3.3.4" 601 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 602 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 603 | 604 | node-releases@^2.0.5: 605 | version "2.0.5" 606 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" 607 | integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== 608 | 609 | path-parse@^1.0.7: 610 | version "1.0.7" 611 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 612 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 613 | 614 | picocolors@^1.0.0: 615 | version "1.0.0" 616 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 617 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 618 | 619 | picomatch@^2.2.2: 620 | version "2.3.1" 621 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 622 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 623 | 624 | postcss@^8.4.13: 625 | version "8.4.14" 626 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" 627 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== 628 | dependencies: 629 | nanoid "^3.3.4" 630 | picocolors "^1.0.0" 631 | source-map-js "^1.0.2" 632 | 633 | react-dom@^18.0.0: 634 | version "18.2.0" 635 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 636 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 637 | dependencies: 638 | loose-envify "^1.1.0" 639 | scheduler "^0.23.0" 640 | 641 | react-icons@^4.4.0: 642 | version "4.4.0" 643 | resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703" 644 | integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg== 645 | 646 | react-refresh@^0.13.0: 647 | version "0.13.0" 648 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.13.0.tgz#cbd01a4482a177a5da8d44c9755ebb1f26d5a1c1" 649 | integrity sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg== 650 | 651 | react@^18.0.0: 652 | version "18.2.0" 653 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 654 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 655 | dependencies: 656 | loose-envify "^1.1.0" 657 | 658 | resolve@^1.22.0: 659 | version "1.22.1" 660 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 661 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 662 | dependencies: 663 | is-core-module "^2.9.0" 664 | path-parse "^1.0.7" 665 | supports-preserve-symlinks-flag "^1.0.0" 666 | 667 | rollup@^2.59.0: 668 | version "2.75.7" 669 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.7.tgz#221ff11887ae271e37dcc649ba32ce1590aaa0b9" 670 | integrity sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ== 671 | optionalDependencies: 672 | fsevents "~2.3.2" 673 | 674 | safe-buffer@~5.1.1: 675 | version "5.1.2" 676 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 677 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 678 | 679 | scheduler@^0.23.0: 680 | version "0.23.0" 681 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 682 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 683 | dependencies: 684 | loose-envify "^1.1.0" 685 | 686 | semver@^6.3.0: 687 | version "6.3.0" 688 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 689 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 690 | 691 | source-map-js@^1.0.2: 692 | version "1.0.2" 693 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 694 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 695 | 696 | supports-color@^5.3.0: 697 | version "5.5.0" 698 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 699 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 700 | dependencies: 701 | has-flag "^3.0.0" 702 | 703 | supports-preserve-symlinks-flag@^1.0.0: 704 | version "1.0.0" 705 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 706 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 707 | 708 | to-fast-properties@^2.0.0: 709 | version "2.0.0" 710 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 711 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 712 | 713 | update-browserslist-db@^1.0.0: 714 | version "1.0.4" 715 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" 716 | integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== 717 | dependencies: 718 | escalade "^3.1.1" 719 | picocolors "^1.0.0" 720 | 721 | vite@^2.9.9: 722 | version "2.9.12" 723 | resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.12.tgz#b1d636b0a8ac636afe9d83e3792d4895509a941b" 724 | integrity sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew== 725 | dependencies: 726 | esbuild "^0.14.27" 727 | postcss "^8.4.13" 728 | resolve "^1.22.0" 729 | rollup "^2.59.0" 730 | optionalDependencies: 731 | fsevents "~2.3.2" 732 | --------------------------------------------------------------------------------