├── .gitignore ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── public └── vite.svg ├── src ├── App.jsx ├── assets │ └── react.svg ├── getFormValues.js ├── index.css └── main.jsx └── vite.config.js /.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 | # React Course 2 | 3 | If you enjoy the content and my teaching style, you can always enroll in my React Course (link below) 4 | 5 | [React 18 Course](https://www.udemy.com/course/react-tutorial-and-projects-course/?referralCode=FEE6A921AF07E2563CEF) 6 | 7 | ## All My Courses 8 | 9 | [Project Based Web Dev Courses](https://www.johnsmilga.com/) 10 | 11 | - FormData API 12 | 13 | [JS Nuggets - FormData API](https://youtu.be/5-x4OUM-SP8) 14 | 15 | The FormData interface provides a way to construct a set of key/value pairs representing form fields and their values, which can be sent using the fetch() or XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data". 16 | 17 | - a great solution when you have bunch of inputs 18 | - inputs must have name attribute 19 | 20 | - e.currentTarget 21 | 22 | In React, e.currentTarget returns the DOM element that triggered the event. 23 | 24 | - includes() 25 | 26 | The includes() method is a built-in method in JavaScript that is used to determine whether an array includes a certain value among its elements. The method returns a boolean value (true or false) indicating whether the array includes the specified value or not. 27 | 28 | ```js 29 | const array = [1, 2, 3, 4, 5]; 30 | 31 | console.log(array.includes(3)); // true 32 | console.log(array.includes(6)); // false 33 | ``` 34 | 35 | - Object From Entries 36 | 37 | The Object.fromEntries() static method transforms a list of key-value pairs into an object. 38 | 39 | ```js 40 | const entries = new Map([ 41 | ['foo', 'bar'], 42 | ['baz', 42], 43 | ]); 44 | 45 | const obj = Object.fromEntries(entries); 46 | 47 | console.log(obj); 48 | // Expected output: Object { foo: "bar", baz: 42 } 49 | ``` 50 | 51 | - reset() 52 | 53 | The reset() method is a built-in method in HTML that can be used to reset all form controls to their initial values. When this method is called on a form element, it will clear any user-entered data and reset the values of all form elements to their default values. 54 | 55 | ```js 56 | const onSubmit = (e) => { 57 | e.preventDefault(); 58 | const formData = new FormData(e.currentTarget); 59 | // const name = formData.get('name'); 60 | // console.log(name); 61 | // check for empty values 62 | const values = [...formData.values()]; 63 | const isEmpty = values.includes(''); 64 | if (isEmpty) { 65 | console.log('please provide all values'); 66 | return; 67 | } 68 | 69 | // get an object with all values 70 | const data = Object.fromEntries(formData); 71 | // do something 72 | console.log(data); 73 | 74 | // clear inputs 75 | e.currentTarget.reset(); 76 | }; 77 | ``` 78 | 79 | - getFormValues 80 | 81 | ```js 82 | const getFormValues = (form) => { 83 | const formData = new FormData(form); 84 | 85 | const values = [...formData.values()]; 86 | const isEmpty = values.includes(''); 87 | const data = Object.fromEntries(formData); 88 | return { isEmpty, data }; 89 | }; 90 | 91 | export default getFormValues; 92 | ``` 93 | 94 | ```js 95 | import getFormValues from './getFormValues'; 96 | 97 | const onSubmit = (e) => { 98 | e.preventDefault(); 99 | const { isEmpty, data } = getFormValues(e.currentTarget); 100 | 101 | if (isEmpty) { 102 | console.log('please provide all values'); 103 | return; 104 | } 105 | 106 | // do something 107 | console.log(data); 108 | 109 | // clear inputs 110 | e.currentTarget.reset(); 111 | }; 112 | ``` 113 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "form-data", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "form-data", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "react": "^18.2.0", 12 | "react-dom": "^18.2.0" 13 | }, 14 | "devDependencies": { 15 | "@types/react": "^18.0.27", 16 | "@types/react-dom": "^18.0.10", 17 | "@vitejs/plugin-react": "^3.1.0", 18 | "vite": "^4.1.0" 19 | } 20 | }, 21 | "node_modules/@ampproject/remapping": { 22 | "version": "2.2.0", 23 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 24 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 25 | "dev": true, 26 | "dependencies": { 27 | "@jridgewell/gen-mapping": "^0.1.0", 28 | "@jridgewell/trace-mapping": "^0.3.9" 29 | }, 30 | "engines": { 31 | "node": ">=6.0.0" 32 | } 33 | }, 34 | "node_modules/@babel/code-frame": { 35 | "version": "7.18.6", 36 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 37 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 38 | "dev": true, 39 | "dependencies": { 40 | "@babel/highlight": "^7.18.6" 41 | }, 42 | "engines": { 43 | "node": ">=6.9.0" 44 | } 45 | }, 46 | "node_modules/@babel/compat-data": { 47 | "version": "7.20.14", 48 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", 49 | "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", 50 | "dev": true, 51 | "engines": { 52 | "node": ">=6.9.0" 53 | } 54 | }, 55 | "node_modules/@babel/core": { 56 | "version": "7.20.12", 57 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", 58 | "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", 59 | "dev": true, 60 | "dependencies": { 61 | "@ampproject/remapping": "^2.1.0", 62 | "@babel/code-frame": "^7.18.6", 63 | "@babel/generator": "^7.20.7", 64 | "@babel/helper-compilation-targets": "^7.20.7", 65 | "@babel/helper-module-transforms": "^7.20.11", 66 | "@babel/helpers": "^7.20.7", 67 | "@babel/parser": "^7.20.7", 68 | "@babel/template": "^7.20.7", 69 | "@babel/traverse": "^7.20.12", 70 | "@babel/types": "^7.20.7", 71 | "convert-source-map": "^1.7.0", 72 | "debug": "^4.1.0", 73 | "gensync": "^1.0.0-beta.2", 74 | "json5": "^2.2.2", 75 | "semver": "^6.3.0" 76 | }, 77 | "engines": { 78 | "node": ">=6.9.0" 79 | }, 80 | "funding": { 81 | "type": "opencollective", 82 | "url": "https://opencollective.com/babel" 83 | } 84 | }, 85 | "node_modules/@babel/generator": { 86 | "version": "7.20.14", 87 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", 88 | "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", 89 | "dev": true, 90 | "dependencies": { 91 | "@babel/types": "^7.20.7", 92 | "@jridgewell/gen-mapping": "^0.3.2", 93 | "jsesc": "^2.5.1" 94 | }, 95 | "engines": { 96 | "node": ">=6.9.0" 97 | } 98 | }, 99 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { 100 | "version": "0.3.2", 101 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 102 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 103 | "dev": true, 104 | "dependencies": { 105 | "@jridgewell/set-array": "^1.0.1", 106 | "@jridgewell/sourcemap-codec": "^1.4.10", 107 | "@jridgewell/trace-mapping": "^0.3.9" 108 | }, 109 | "engines": { 110 | "node": ">=6.0.0" 111 | } 112 | }, 113 | "node_modules/@babel/helper-compilation-targets": { 114 | "version": "7.20.7", 115 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", 116 | "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", 117 | "dev": true, 118 | "dependencies": { 119 | "@babel/compat-data": "^7.20.5", 120 | "@babel/helper-validator-option": "^7.18.6", 121 | "browserslist": "^4.21.3", 122 | "lru-cache": "^5.1.1", 123 | "semver": "^6.3.0" 124 | }, 125 | "engines": { 126 | "node": ">=6.9.0" 127 | }, 128 | "peerDependencies": { 129 | "@babel/core": "^7.0.0" 130 | } 131 | }, 132 | "node_modules/@babel/helper-environment-visitor": { 133 | "version": "7.18.9", 134 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", 135 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", 136 | "dev": true, 137 | "engines": { 138 | "node": ">=6.9.0" 139 | } 140 | }, 141 | "node_modules/@babel/helper-function-name": { 142 | "version": "7.19.0", 143 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", 144 | "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", 145 | "dev": true, 146 | "dependencies": { 147 | "@babel/template": "^7.18.10", 148 | "@babel/types": "^7.19.0" 149 | }, 150 | "engines": { 151 | "node": ">=6.9.0" 152 | } 153 | }, 154 | "node_modules/@babel/helper-hoist-variables": { 155 | "version": "7.18.6", 156 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 157 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 158 | "dev": true, 159 | "dependencies": { 160 | "@babel/types": "^7.18.6" 161 | }, 162 | "engines": { 163 | "node": ">=6.9.0" 164 | } 165 | }, 166 | "node_modules/@babel/helper-module-imports": { 167 | "version": "7.18.6", 168 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 169 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 170 | "dev": true, 171 | "dependencies": { 172 | "@babel/types": "^7.18.6" 173 | }, 174 | "engines": { 175 | "node": ">=6.9.0" 176 | } 177 | }, 178 | "node_modules/@babel/helper-module-transforms": { 179 | "version": "7.20.11", 180 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", 181 | "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", 182 | "dev": true, 183 | "dependencies": { 184 | "@babel/helper-environment-visitor": "^7.18.9", 185 | "@babel/helper-module-imports": "^7.18.6", 186 | "@babel/helper-simple-access": "^7.20.2", 187 | "@babel/helper-split-export-declaration": "^7.18.6", 188 | "@babel/helper-validator-identifier": "^7.19.1", 189 | "@babel/template": "^7.20.7", 190 | "@babel/traverse": "^7.20.10", 191 | "@babel/types": "^7.20.7" 192 | }, 193 | "engines": { 194 | "node": ">=6.9.0" 195 | } 196 | }, 197 | "node_modules/@babel/helper-plugin-utils": { 198 | "version": "7.20.2", 199 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", 200 | "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", 201 | "dev": true, 202 | "engines": { 203 | "node": ">=6.9.0" 204 | } 205 | }, 206 | "node_modules/@babel/helper-simple-access": { 207 | "version": "7.20.2", 208 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", 209 | "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", 210 | "dev": true, 211 | "dependencies": { 212 | "@babel/types": "^7.20.2" 213 | }, 214 | "engines": { 215 | "node": ">=6.9.0" 216 | } 217 | }, 218 | "node_modules/@babel/helper-split-export-declaration": { 219 | "version": "7.18.6", 220 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 221 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 222 | "dev": true, 223 | "dependencies": { 224 | "@babel/types": "^7.18.6" 225 | }, 226 | "engines": { 227 | "node": ">=6.9.0" 228 | } 229 | }, 230 | "node_modules/@babel/helper-string-parser": { 231 | "version": "7.19.4", 232 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", 233 | "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", 234 | "dev": true, 235 | "engines": { 236 | "node": ">=6.9.0" 237 | } 238 | }, 239 | "node_modules/@babel/helper-validator-identifier": { 240 | "version": "7.19.1", 241 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", 242 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", 243 | "dev": true, 244 | "engines": { 245 | "node": ">=6.9.0" 246 | } 247 | }, 248 | "node_modules/@babel/helper-validator-option": { 249 | "version": "7.18.6", 250 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 251 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 252 | "dev": true, 253 | "engines": { 254 | "node": ">=6.9.0" 255 | } 256 | }, 257 | "node_modules/@babel/helpers": { 258 | "version": "7.20.13", 259 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", 260 | "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", 261 | "dev": true, 262 | "dependencies": { 263 | "@babel/template": "^7.20.7", 264 | "@babel/traverse": "^7.20.13", 265 | "@babel/types": "^7.20.7" 266 | }, 267 | "engines": { 268 | "node": ">=6.9.0" 269 | } 270 | }, 271 | "node_modules/@babel/highlight": { 272 | "version": "7.18.6", 273 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 274 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 275 | "dev": true, 276 | "dependencies": { 277 | "@babel/helper-validator-identifier": "^7.18.6", 278 | "chalk": "^2.0.0", 279 | "js-tokens": "^4.0.0" 280 | }, 281 | "engines": { 282 | "node": ">=6.9.0" 283 | } 284 | }, 285 | "node_modules/@babel/parser": { 286 | "version": "7.20.15", 287 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", 288 | "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", 289 | "dev": true, 290 | "bin": { 291 | "parser": "bin/babel-parser.js" 292 | }, 293 | "engines": { 294 | "node": ">=6.0.0" 295 | } 296 | }, 297 | "node_modules/@babel/plugin-transform-react-jsx-self": { 298 | "version": "7.18.6", 299 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", 300 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", 301 | "dev": true, 302 | "dependencies": { 303 | "@babel/helper-plugin-utils": "^7.18.6" 304 | }, 305 | "engines": { 306 | "node": ">=6.9.0" 307 | }, 308 | "peerDependencies": { 309 | "@babel/core": "^7.0.0-0" 310 | } 311 | }, 312 | "node_modules/@babel/plugin-transform-react-jsx-source": { 313 | "version": "7.19.6", 314 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", 315 | "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", 316 | "dev": true, 317 | "dependencies": { 318 | "@babel/helper-plugin-utils": "^7.19.0" 319 | }, 320 | "engines": { 321 | "node": ">=6.9.0" 322 | }, 323 | "peerDependencies": { 324 | "@babel/core": "^7.0.0-0" 325 | } 326 | }, 327 | "node_modules/@babel/template": { 328 | "version": "7.20.7", 329 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", 330 | "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", 331 | "dev": true, 332 | "dependencies": { 333 | "@babel/code-frame": "^7.18.6", 334 | "@babel/parser": "^7.20.7", 335 | "@babel/types": "^7.20.7" 336 | }, 337 | "engines": { 338 | "node": ">=6.9.0" 339 | } 340 | }, 341 | "node_modules/@babel/traverse": { 342 | "version": "7.20.13", 343 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", 344 | "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", 345 | "dev": true, 346 | "dependencies": { 347 | "@babel/code-frame": "^7.18.6", 348 | "@babel/generator": "^7.20.7", 349 | "@babel/helper-environment-visitor": "^7.18.9", 350 | "@babel/helper-function-name": "^7.19.0", 351 | "@babel/helper-hoist-variables": "^7.18.6", 352 | "@babel/helper-split-export-declaration": "^7.18.6", 353 | "@babel/parser": "^7.20.13", 354 | "@babel/types": "^7.20.7", 355 | "debug": "^4.1.0", 356 | "globals": "^11.1.0" 357 | }, 358 | "engines": { 359 | "node": ">=6.9.0" 360 | } 361 | }, 362 | "node_modules/@babel/types": { 363 | "version": "7.20.7", 364 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", 365 | "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", 366 | "dev": true, 367 | "dependencies": { 368 | "@babel/helper-string-parser": "^7.19.4", 369 | "@babel/helper-validator-identifier": "^7.19.1", 370 | "to-fast-properties": "^2.0.0" 371 | }, 372 | "engines": { 373 | "node": ">=6.9.0" 374 | } 375 | }, 376 | "node_modules/@esbuild/android-arm": { 377 | "version": "0.16.17", 378 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", 379 | "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", 380 | "cpu": [ 381 | "arm" 382 | ], 383 | "dev": true, 384 | "optional": true, 385 | "os": [ 386 | "android" 387 | ], 388 | "engines": { 389 | "node": ">=12" 390 | } 391 | }, 392 | "node_modules/@esbuild/android-arm64": { 393 | "version": "0.16.17", 394 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", 395 | "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", 396 | "cpu": [ 397 | "arm64" 398 | ], 399 | "dev": true, 400 | "optional": true, 401 | "os": [ 402 | "android" 403 | ], 404 | "engines": { 405 | "node": ">=12" 406 | } 407 | }, 408 | "node_modules/@esbuild/android-x64": { 409 | "version": "0.16.17", 410 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", 411 | "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", 412 | "cpu": [ 413 | "x64" 414 | ], 415 | "dev": true, 416 | "optional": true, 417 | "os": [ 418 | "android" 419 | ], 420 | "engines": { 421 | "node": ">=12" 422 | } 423 | }, 424 | "node_modules/@esbuild/darwin-arm64": { 425 | "version": "0.16.17", 426 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", 427 | "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", 428 | "cpu": [ 429 | "arm64" 430 | ], 431 | "dev": true, 432 | "optional": true, 433 | "os": [ 434 | "darwin" 435 | ], 436 | "engines": { 437 | "node": ">=12" 438 | } 439 | }, 440 | "node_modules/@esbuild/darwin-x64": { 441 | "version": "0.16.17", 442 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", 443 | "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", 444 | "cpu": [ 445 | "x64" 446 | ], 447 | "dev": true, 448 | "optional": true, 449 | "os": [ 450 | "darwin" 451 | ], 452 | "engines": { 453 | "node": ">=12" 454 | } 455 | }, 456 | "node_modules/@esbuild/freebsd-arm64": { 457 | "version": "0.16.17", 458 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", 459 | "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", 460 | "cpu": [ 461 | "arm64" 462 | ], 463 | "dev": true, 464 | "optional": true, 465 | "os": [ 466 | "freebsd" 467 | ], 468 | "engines": { 469 | "node": ">=12" 470 | } 471 | }, 472 | "node_modules/@esbuild/freebsd-x64": { 473 | "version": "0.16.17", 474 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", 475 | "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", 476 | "cpu": [ 477 | "x64" 478 | ], 479 | "dev": true, 480 | "optional": true, 481 | "os": [ 482 | "freebsd" 483 | ], 484 | "engines": { 485 | "node": ">=12" 486 | } 487 | }, 488 | "node_modules/@esbuild/linux-arm": { 489 | "version": "0.16.17", 490 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", 491 | "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", 492 | "cpu": [ 493 | "arm" 494 | ], 495 | "dev": true, 496 | "optional": true, 497 | "os": [ 498 | "linux" 499 | ], 500 | "engines": { 501 | "node": ">=12" 502 | } 503 | }, 504 | "node_modules/@esbuild/linux-arm64": { 505 | "version": "0.16.17", 506 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", 507 | "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", 508 | "cpu": [ 509 | "arm64" 510 | ], 511 | "dev": true, 512 | "optional": true, 513 | "os": [ 514 | "linux" 515 | ], 516 | "engines": { 517 | "node": ">=12" 518 | } 519 | }, 520 | "node_modules/@esbuild/linux-ia32": { 521 | "version": "0.16.17", 522 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", 523 | "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", 524 | "cpu": [ 525 | "ia32" 526 | ], 527 | "dev": true, 528 | "optional": true, 529 | "os": [ 530 | "linux" 531 | ], 532 | "engines": { 533 | "node": ">=12" 534 | } 535 | }, 536 | "node_modules/@esbuild/linux-loong64": { 537 | "version": "0.16.17", 538 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", 539 | "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", 540 | "cpu": [ 541 | "loong64" 542 | ], 543 | "dev": true, 544 | "optional": true, 545 | "os": [ 546 | "linux" 547 | ], 548 | "engines": { 549 | "node": ">=12" 550 | } 551 | }, 552 | "node_modules/@esbuild/linux-mips64el": { 553 | "version": "0.16.17", 554 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", 555 | "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", 556 | "cpu": [ 557 | "mips64el" 558 | ], 559 | "dev": true, 560 | "optional": true, 561 | "os": [ 562 | "linux" 563 | ], 564 | "engines": { 565 | "node": ">=12" 566 | } 567 | }, 568 | "node_modules/@esbuild/linux-ppc64": { 569 | "version": "0.16.17", 570 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", 571 | "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", 572 | "cpu": [ 573 | "ppc64" 574 | ], 575 | "dev": true, 576 | "optional": true, 577 | "os": [ 578 | "linux" 579 | ], 580 | "engines": { 581 | "node": ">=12" 582 | } 583 | }, 584 | "node_modules/@esbuild/linux-riscv64": { 585 | "version": "0.16.17", 586 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", 587 | "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", 588 | "cpu": [ 589 | "riscv64" 590 | ], 591 | "dev": true, 592 | "optional": true, 593 | "os": [ 594 | "linux" 595 | ], 596 | "engines": { 597 | "node": ">=12" 598 | } 599 | }, 600 | "node_modules/@esbuild/linux-s390x": { 601 | "version": "0.16.17", 602 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", 603 | "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", 604 | "cpu": [ 605 | "s390x" 606 | ], 607 | "dev": true, 608 | "optional": true, 609 | "os": [ 610 | "linux" 611 | ], 612 | "engines": { 613 | "node": ">=12" 614 | } 615 | }, 616 | "node_modules/@esbuild/linux-x64": { 617 | "version": "0.16.17", 618 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", 619 | "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", 620 | "cpu": [ 621 | "x64" 622 | ], 623 | "dev": true, 624 | "optional": true, 625 | "os": [ 626 | "linux" 627 | ], 628 | "engines": { 629 | "node": ">=12" 630 | } 631 | }, 632 | "node_modules/@esbuild/netbsd-x64": { 633 | "version": "0.16.17", 634 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", 635 | "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", 636 | "cpu": [ 637 | "x64" 638 | ], 639 | "dev": true, 640 | "optional": true, 641 | "os": [ 642 | "netbsd" 643 | ], 644 | "engines": { 645 | "node": ">=12" 646 | } 647 | }, 648 | "node_modules/@esbuild/openbsd-x64": { 649 | "version": "0.16.17", 650 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", 651 | "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", 652 | "cpu": [ 653 | "x64" 654 | ], 655 | "dev": true, 656 | "optional": true, 657 | "os": [ 658 | "openbsd" 659 | ], 660 | "engines": { 661 | "node": ">=12" 662 | } 663 | }, 664 | "node_modules/@esbuild/sunos-x64": { 665 | "version": "0.16.17", 666 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", 667 | "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", 668 | "cpu": [ 669 | "x64" 670 | ], 671 | "dev": true, 672 | "optional": true, 673 | "os": [ 674 | "sunos" 675 | ], 676 | "engines": { 677 | "node": ">=12" 678 | } 679 | }, 680 | "node_modules/@esbuild/win32-arm64": { 681 | "version": "0.16.17", 682 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", 683 | "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", 684 | "cpu": [ 685 | "arm64" 686 | ], 687 | "dev": true, 688 | "optional": true, 689 | "os": [ 690 | "win32" 691 | ], 692 | "engines": { 693 | "node": ">=12" 694 | } 695 | }, 696 | "node_modules/@esbuild/win32-ia32": { 697 | "version": "0.16.17", 698 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", 699 | "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", 700 | "cpu": [ 701 | "ia32" 702 | ], 703 | "dev": true, 704 | "optional": true, 705 | "os": [ 706 | "win32" 707 | ], 708 | "engines": { 709 | "node": ">=12" 710 | } 711 | }, 712 | "node_modules/@esbuild/win32-x64": { 713 | "version": "0.16.17", 714 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", 715 | "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", 716 | "cpu": [ 717 | "x64" 718 | ], 719 | "dev": true, 720 | "optional": true, 721 | "os": [ 722 | "win32" 723 | ], 724 | "engines": { 725 | "node": ">=12" 726 | } 727 | }, 728 | "node_modules/@jridgewell/gen-mapping": { 729 | "version": "0.1.1", 730 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 731 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 732 | "dev": true, 733 | "dependencies": { 734 | "@jridgewell/set-array": "^1.0.0", 735 | "@jridgewell/sourcemap-codec": "^1.4.10" 736 | }, 737 | "engines": { 738 | "node": ">=6.0.0" 739 | } 740 | }, 741 | "node_modules/@jridgewell/resolve-uri": { 742 | "version": "3.1.0", 743 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 744 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 745 | "dev": true, 746 | "engines": { 747 | "node": ">=6.0.0" 748 | } 749 | }, 750 | "node_modules/@jridgewell/set-array": { 751 | "version": "1.1.2", 752 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 753 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 754 | "dev": true, 755 | "engines": { 756 | "node": ">=6.0.0" 757 | } 758 | }, 759 | "node_modules/@jridgewell/sourcemap-codec": { 760 | "version": "1.4.14", 761 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 762 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 763 | "dev": true 764 | }, 765 | "node_modules/@jridgewell/trace-mapping": { 766 | "version": "0.3.17", 767 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", 768 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", 769 | "dev": true, 770 | "dependencies": { 771 | "@jridgewell/resolve-uri": "3.1.0", 772 | "@jridgewell/sourcemap-codec": "1.4.14" 773 | } 774 | }, 775 | "node_modules/@types/prop-types": { 776 | "version": "15.7.5", 777 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 778 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 779 | "dev": true 780 | }, 781 | "node_modules/@types/react": { 782 | "version": "18.0.28", 783 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", 784 | "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", 785 | "dev": true, 786 | "dependencies": { 787 | "@types/prop-types": "*", 788 | "@types/scheduler": "*", 789 | "csstype": "^3.0.2" 790 | } 791 | }, 792 | "node_modules/@types/react-dom": { 793 | "version": "18.0.11", 794 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", 795 | "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", 796 | "dev": true, 797 | "dependencies": { 798 | "@types/react": "*" 799 | } 800 | }, 801 | "node_modules/@types/scheduler": { 802 | "version": "0.16.2", 803 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 804 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 805 | "dev": true 806 | }, 807 | "node_modules/@vitejs/plugin-react": { 808 | "version": "3.1.0", 809 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", 810 | "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", 811 | "dev": true, 812 | "dependencies": { 813 | "@babel/core": "^7.20.12", 814 | "@babel/plugin-transform-react-jsx-self": "^7.18.6", 815 | "@babel/plugin-transform-react-jsx-source": "^7.19.6", 816 | "magic-string": "^0.27.0", 817 | "react-refresh": "^0.14.0" 818 | }, 819 | "engines": { 820 | "node": "^14.18.0 || >=16.0.0" 821 | }, 822 | "peerDependencies": { 823 | "vite": "^4.1.0-beta.0" 824 | } 825 | }, 826 | "node_modules/ansi-styles": { 827 | "version": "3.2.1", 828 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 829 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 830 | "dev": true, 831 | "dependencies": { 832 | "color-convert": "^1.9.0" 833 | }, 834 | "engines": { 835 | "node": ">=4" 836 | } 837 | }, 838 | "node_modules/browserslist": { 839 | "version": "4.21.5", 840 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", 841 | "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", 842 | "dev": true, 843 | "funding": [ 844 | { 845 | "type": "opencollective", 846 | "url": "https://opencollective.com/browserslist" 847 | }, 848 | { 849 | "type": "tidelift", 850 | "url": "https://tidelift.com/funding/github/npm/browserslist" 851 | } 852 | ], 853 | "dependencies": { 854 | "caniuse-lite": "^1.0.30001449", 855 | "electron-to-chromium": "^1.4.284", 856 | "node-releases": "^2.0.8", 857 | "update-browserslist-db": "^1.0.10" 858 | }, 859 | "bin": { 860 | "browserslist": "cli.js" 861 | }, 862 | "engines": { 863 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 864 | } 865 | }, 866 | "node_modules/caniuse-lite": { 867 | "version": "1.0.30001457", 868 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001457.tgz", 869 | "integrity": "sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA==", 870 | "dev": true, 871 | "funding": [ 872 | { 873 | "type": "opencollective", 874 | "url": "https://opencollective.com/browserslist" 875 | }, 876 | { 877 | "type": "tidelift", 878 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 879 | } 880 | ] 881 | }, 882 | "node_modules/chalk": { 883 | "version": "2.4.2", 884 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 885 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 886 | "dev": true, 887 | "dependencies": { 888 | "ansi-styles": "^3.2.1", 889 | "escape-string-regexp": "^1.0.5", 890 | "supports-color": "^5.3.0" 891 | }, 892 | "engines": { 893 | "node": ">=4" 894 | } 895 | }, 896 | "node_modules/color-convert": { 897 | "version": "1.9.3", 898 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 899 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 900 | "dev": true, 901 | "dependencies": { 902 | "color-name": "1.1.3" 903 | } 904 | }, 905 | "node_modules/color-name": { 906 | "version": "1.1.3", 907 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 908 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 909 | "dev": true 910 | }, 911 | "node_modules/convert-source-map": { 912 | "version": "1.9.0", 913 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 914 | "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", 915 | "dev": true 916 | }, 917 | "node_modules/csstype": { 918 | "version": "3.1.1", 919 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", 920 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", 921 | "dev": true 922 | }, 923 | "node_modules/debug": { 924 | "version": "4.3.4", 925 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 926 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 927 | "dev": true, 928 | "dependencies": { 929 | "ms": "2.1.2" 930 | }, 931 | "engines": { 932 | "node": ">=6.0" 933 | }, 934 | "peerDependenciesMeta": { 935 | "supports-color": { 936 | "optional": true 937 | } 938 | } 939 | }, 940 | "node_modules/electron-to-chromium": { 941 | "version": "1.4.302", 942 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz", 943 | "integrity": "sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw==", 944 | "dev": true 945 | }, 946 | "node_modules/esbuild": { 947 | "version": "0.16.17", 948 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", 949 | "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", 950 | "dev": true, 951 | "hasInstallScript": true, 952 | "bin": { 953 | "esbuild": "bin/esbuild" 954 | }, 955 | "engines": { 956 | "node": ">=12" 957 | }, 958 | "optionalDependencies": { 959 | "@esbuild/android-arm": "0.16.17", 960 | "@esbuild/android-arm64": "0.16.17", 961 | "@esbuild/android-x64": "0.16.17", 962 | "@esbuild/darwin-arm64": "0.16.17", 963 | "@esbuild/darwin-x64": "0.16.17", 964 | "@esbuild/freebsd-arm64": "0.16.17", 965 | "@esbuild/freebsd-x64": "0.16.17", 966 | "@esbuild/linux-arm": "0.16.17", 967 | "@esbuild/linux-arm64": "0.16.17", 968 | "@esbuild/linux-ia32": "0.16.17", 969 | "@esbuild/linux-loong64": "0.16.17", 970 | "@esbuild/linux-mips64el": "0.16.17", 971 | "@esbuild/linux-ppc64": "0.16.17", 972 | "@esbuild/linux-riscv64": "0.16.17", 973 | "@esbuild/linux-s390x": "0.16.17", 974 | "@esbuild/linux-x64": "0.16.17", 975 | "@esbuild/netbsd-x64": "0.16.17", 976 | "@esbuild/openbsd-x64": "0.16.17", 977 | "@esbuild/sunos-x64": "0.16.17", 978 | "@esbuild/win32-arm64": "0.16.17", 979 | "@esbuild/win32-ia32": "0.16.17", 980 | "@esbuild/win32-x64": "0.16.17" 981 | } 982 | }, 983 | "node_modules/escalade": { 984 | "version": "3.1.1", 985 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 986 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 987 | "dev": true, 988 | "engines": { 989 | "node": ">=6" 990 | } 991 | }, 992 | "node_modules/escape-string-regexp": { 993 | "version": "1.0.5", 994 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 995 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 996 | "dev": true, 997 | "engines": { 998 | "node": ">=0.8.0" 999 | } 1000 | }, 1001 | "node_modules/fsevents": { 1002 | "version": "2.3.2", 1003 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1004 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1005 | "dev": true, 1006 | "hasInstallScript": true, 1007 | "optional": true, 1008 | "os": [ 1009 | "darwin" 1010 | ], 1011 | "engines": { 1012 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1013 | } 1014 | }, 1015 | "node_modules/function-bind": { 1016 | "version": "1.1.1", 1017 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1018 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1019 | "dev": true 1020 | }, 1021 | "node_modules/gensync": { 1022 | "version": "1.0.0-beta.2", 1023 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1024 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1025 | "dev": true, 1026 | "engines": { 1027 | "node": ">=6.9.0" 1028 | } 1029 | }, 1030 | "node_modules/globals": { 1031 | "version": "11.12.0", 1032 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1033 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1034 | "dev": true, 1035 | "engines": { 1036 | "node": ">=4" 1037 | } 1038 | }, 1039 | "node_modules/has": { 1040 | "version": "1.0.3", 1041 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1042 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1043 | "dev": true, 1044 | "dependencies": { 1045 | "function-bind": "^1.1.1" 1046 | }, 1047 | "engines": { 1048 | "node": ">= 0.4.0" 1049 | } 1050 | }, 1051 | "node_modules/has-flag": { 1052 | "version": "3.0.0", 1053 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1054 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1055 | "dev": true, 1056 | "engines": { 1057 | "node": ">=4" 1058 | } 1059 | }, 1060 | "node_modules/is-core-module": { 1061 | "version": "2.11.0", 1062 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 1063 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 1064 | "dev": true, 1065 | "dependencies": { 1066 | "has": "^1.0.3" 1067 | }, 1068 | "funding": { 1069 | "url": "https://github.com/sponsors/ljharb" 1070 | } 1071 | }, 1072 | "node_modules/js-tokens": { 1073 | "version": "4.0.0", 1074 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1075 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1076 | }, 1077 | "node_modules/jsesc": { 1078 | "version": "2.5.2", 1079 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1080 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1081 | "dev": true, 1082 | "bin": { 1083 | "jsesc": "bin/jsesc" 1084 | }, 1085 | "engines": { 1086 | "node": ">=4" 1087 | } 1088 | }, 1089 | "node_modules/json5": { 1090 | "version": "2.2.3", 1091 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 1092 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 1093 | "dev": true, 1094 | "bin": { 1095 | "json5": "lib/cli.js" 1096 | }, 1097 | "engines": { 1098 | "node": ">=6" 1099 | } 1100 | }, 1101 | "node_modules/loose-envify": { 1102 | "version": "1.4.0", 1103 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1104 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1105 | "dependencies": { 1106 | "js-tokens": "^3.0.0 || ^4.0.0" 1107 | }, 1108 | "bin": { 1109 | "loose-envify": "cli.js" 1110 | } 1111 | }, 1112 | "node_modules/lru-cache": { 1113 | "version": "5.1.1", 1114 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 1115 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 1116 | "dev": true, 1117 | "dependencies": { 1118 | "yallist": "^3.0.2" 1119 | } 1120 | }, 1121 | "node_modules/magic-string": { 1122 | "version": "0.27.0", 1123 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", 1124 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", 1125 | "dev": true, 1126 | "dependencies": { 1127 | "@jridgewell/sourcemap-codec": "^1.4.13" 1128 | }, 1129 | "engines": { 1130 | "node": ">=12" 1131 | } 1132 | }, 1133 | "node_modules/ms": { 1134 | "version": "2.1.2", 1135 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1136 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1137 | "dev": true 1138 | }, 1139 | "node_modules/nanoid": { 1140 | "version": "3.3.4", 1141 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1142 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1143 | "dev": true, 1144 | "bin": { 1145 | "nanoid": "bin/nanoid.cjs" 1146 | }, 1147 | "engines": { 1148 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1149 | } 1150 | }, 1151 | "node_modules/node-releases": { 1152 | "version": "2.0.10", 1153 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", 1154 | "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", 1155 | "dev": true 1156 | }, 1157 | "node_modules/path-parse": { 1158 | "version": "1.0.7", 1159 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1160 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1161 | "dev": true 1162 | }, 1163 | "node_modules/picocolors": { 1164 | "version": "1.0.0", 1165 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1166 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1167 | "dev": true 1168 | }, 1169 | "node_modules/postcss": { 1170 | "version": "8.4.21", 1171 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", 1172 | "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", 1173 | "dev": true, 1174 | "funding": [ 1175 | { 1176 | "type": "opencollective", 1177 | "url": "https://opencollective.com/postcss/" 1178 | }, 1179 | { 1180 | "type": "tidelift", 1181 | "url": "https://tidelift.com/funding/github/npm/postcss" 1182 | } 1183 | ], 1184 | "dependencies": { 1185 | "nanoid": "^3.3.4", 1186 | "picocolors": "^1.0.0", 1187 | "source-map-js": "^1.0.2" 1188 | }, 1189 | "engines": { 1190 | "node": "^10 || ^12 || >=14" 1191 | } 1192 | }, 1193 | "node_modules/react": { 1194 | "version": "18.2.0", 1195 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 1196 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 1197 | "dependencies": { 1198 | "loose-envify": "^1.1.0" 1199 | }, 1200 | "engines": { 1201 | "node": ">=0.10.0" 1202 | } 1203 | }, 1204 | "node_modules/react-dom": { 1205 | "version": "18.2.0", 1206 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 1207 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 1208 | "dependencies": { 1209 | "loose-envify": "^1.1.0", 1210 | "scheduler": "^0.23.0" 1211 | }, 1212 | "peerDependencies": { 1213 | "react": "^18.2.0" 1214 | } 1215 | }, 1216 | "node_modules/react-refresh": { 1217 | "version": "0.14.0", 1218 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", 1219 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", 1220 | "dev": true, 1221 | "engines": { 1222 | "node": ">=0.10.0" 1223 | } 1224 | }, 1225 | "node_modules/resolve": { 1226 | "version": "1.22.1", 1227 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1228 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1229 | "dev": true, 1230 | "dependencies": { 1231 | "is-core-module": "^2.9.0", 1232 | "path-parse": "^1.0.7", 1233 | "supports-preserve-symlinks-flag": "^1.0.0" 1234 | }, 1235 | "bin": { 1236 | "resolve": "bin/resolve" 1237 | }, 1238 | "funding": { 1239 | "url": "https://github.com/sponsors/ljharb" 1240 | } 1241 | }, 1242 | "node_modules/rollup": { 1243 | "version": "3.17.2", 1244 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.17.2.tgz", 1245 | "integrity": "sha512-qMNZdlQPCkWodrAZ3qnJtvCAl4vpQ8q77uEujVCCbC/6CLB7Lcmvjq7HyiOSnf4fxTT9XgsE36oLHJBH49xjqA==", 1246 | "dev": true, 1247 | "bin": { 1248 | "rollup": "dist/bin/rollup" 1249 | }, 1250 | "engines": { 1251 | "node": ">=14.18.0", 1252 | "npm": ">=8.0.0" 1253 | }, 1254 | "optionalDependencies": { 1255 | "fsevents": "~2.3.2" 1256 | } 1257 | }, 1258 | "node_modules/scheduler": { 1259 | "version": "0.23.0", 1260 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 1261 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 1262 | "dependencies": { 1263 | "loose-envify": "^1.1.0" 1264 | } 1265 | }, 1266 | "node_modules/semver": { 1267 | "version": "6.3.0", 1268 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1269 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1270 | "dev": true, 1271 | "bin": { 1272 | "semver": "bin/semver.js" 1273 | } 1274 | }, 1275 | "node_modules/source-map-js": { 1276 | "version": "1.0.2", 1277 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1278 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1279 | "dev": true, 1280 | "engines": { 1281 | "node": ">=0.10.0" 1282 | } 1283 | }, 1284 | "node_modules/supports-color": { 1285 | "version": "5.5.0", 1286 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1287 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1288 | "dev": true, 1289 | "dependencies": { 1290 | "has-flag": "^3.0.0" 1291 | }, 1292 | "engines": { 1293 | "node": ">=4" 1294 | } 1295 | }, 1296 | "node_modules/supports-preserve-symlinks-flag": { 1297 | "version": "1.0.0", 1298 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1299 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1300 | "dev": true, 1301 | "engines": { 1302 | "node": ">= 0.4" 1303 | }, 1304 | "funding": { 1305 | "url": "https://github.com/sponsors/ljharb" 1306 | } 1307 | }, 1308 | "node_modules/to-fast-properties": { 1309 | "version": "2.0.0", 1310 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 1311 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 1312 | "dev": true, 1313 | "engines": { 1314 | "node": ">=4" 1315 | } 1316 | }, 1317 | "node_modules/update-browserslist-db": { 1318 | "version": "1.0.10", 1319 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", 1320 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", 1321 | "dev": true, 1322 | "funding": [ 1323 | { 1324 | "type": "opencollective", 1325 | "url": "https://opencollective.com/browserslist" 1326 | }, 1327 | { 1328 | "type": "tidelift", 1329 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1330 | } 1331 | ], 1332 | "dependencies": { 1333 | "escalade": "^3.1.1", 1334 | "picocolors": "^1.0.0" 1335 | }, 1336 | "bin": { 1337 | "browserslist-lint": "cli.js" 1338 | }, 1339 | "peerDependencies": { 1340 | "browserslist": ">= 4.21.0" 1341 | } 1342 | }, 1343 | "node_modules/vite": { 1344 | "version": "4.1.3", 1345 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.3.tgz", 1346 | "integrity": "sha512-0Zqo4/Fr/swSOBmbl+HAAhOjrqNwju+yTtoe4hQX9UsARdcuc9njyOdr6xU0DDnV7YP0RT6mgTTOiRtZgxfCxA==", 1347 | "dev": true, 1348 | "dependencies": { 1349 | "esbuild": "^0.16.14", 1350 | "postcss": "^8.4.21", 1351 | "resolve": "^1.22.1", 1352 | "rollup": "^3.10.0" 1353 | }, 1354 | "bin": { 1355 | "vite": "bin/vite.js" 1356 | }, 1357 | "engines": { 1358 | "node": "^14.18.0 || >=16.0.0" 1359 | }, 1360 | "optionalDependencies": { 1361 | "fsevents": "~2.3.2" 1362 | }, 1363 | "peerDependencies": { 1364 | "@types/node": ">= 14", 1365 | "less": "*", 1366 | "sass": "*", 1367 | "stylus": "*", 1368 | "sugarss": "*", 1369 | "terser": "^5.4.0" 1370 | }, 1371 | "peerDependenciesMeta": { 1372 | "@types/node": { 1373 | "optional": true 1374 | }, 1375 | "less": { 1376 | "optional": true 1377 | }, 1378 | "sass": { 1379 | "optional": true 1380 | }, 1381 | "stylus": { 1382 | "optional": true 1383 | }, 1384 | "sugarss": { 1385 | "optional": true 1386 | }, 1387 | "terser": { 1388 | "optional": true 1389 | } 1390 | } 1391 | }, 1392 | "node_modules/yallist": { 1393 | "version": "3.1.1", 1394 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 1395 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 1396 | "dev": true 1397 | } 1398 | }, 1399 | "dependencies": { 1400 | "@ampproject/remapping": { 1401 | "version": "2.2.0", 1402 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 1403 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 1404 | "dev": true, 1405 | "requires": { 1406 | "@jridgewell/gen-mapping": "^0.1.0", 1407 | "@jridgewell/trace-mapping": "^0.3.9" 1408 | } 1409 | }, 1410 | "@babel/code-frame": { 1411 | "version": "7.18.6", 1412 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 1413 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 1414 | "dev": true, 1415 | "requires": { 1416 | "@babel/highlight": "^7.18.6" 1417 | } 1418 | }, 1419 | "@babel/compat-data": { 1420 | "version": "7.20.14", 1421 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", 1422 | "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", 1423 | "dev": true 1424 | }, 1425 | "@babel/core": { 1426 | "version": "7.20.12", 1427 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", 1428 | "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", 1429 | "dev": true, 1430 | "requires": { 1431 | "@ampproject/remapping": "^2.1.0", 1432 | "@babel/code-frame": "^7.18.6", 1433 | "@babel/generator": "^7.20.7", 1434 | "@babel/helper-compilation-targets": "^7.20.7", 1435 | "@babel/helper-module-transforms": "^7.20.11", 1436 | "@babel/helpers": "^7.20.7", 1437 | "@babel/parser": "^7.20.7", 1438 | "@babel/template": "^7.20.7", 1439 | "@babel/traverse": "^7.20.12", 1440 | "@babel/types": "^7.20.7", 1441 | "convert-source-map": "^1.7.0", 1442 | "debug": "^4.1.0", 1443 | "gensync": "^1.0.0-beta.2", 1444 | "json5": "^2.2.2", 1445 | "semver": "^6.3.0" 1446 | } 1447 | }, 1448 | "@babel/generator": { 1449 | "version": "7.20.14", 1450 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", 1451 | "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", 1452 | "dev": true, 1453 | "requires": { 1454 | "@babel/types": "^7.20.7", 1455 | "@jridgewell/gen-mapping": "^0.3.2", 1456 | "jsesc": "^2.5.1" 1457 | }, 1458 | "dependencies": { 1459 | "@jridgewell/gen-mapping": { 1460 | "version": "0.3.2", 1461 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 1462 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 1463 | "dev": true, 1464 | "requires": { 1465 | "@jridgewell/set-array": "^1.0.1", 1466 | "@jridgewell/sourcemap-codec": "^1.4.10", 1467 | "@jridgewell/trace-mapping": "^0.3.9" 1468 | } 1469 | } 1470 | } 1471 | }, 1472 | "@babel/helper-compilation-targets": { 1473 | "version": "7.20.7", 1474 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", 1475 | "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", 1476 | "dev": true, 1477 | "requires": { 1478 | "@babel/compat-data": "^7.20.5", 1479 | "@babel/helper-validator-option": "^7.18.6", 1480 | "browserslist": "^4.21.3", 1481 | "lru-cache": "^5.1.1", 1482 | "semver": "^6.3.0" 1483 | } 1484 | }, 1485 | "@babel/helper-environment-visitor": { 1486 | "version": "7.18.9", 1487 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", 1488 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", 1489 | "dev": true 1490 | }, 1491 | "@babel/helper-function-name": { 1492 | "version": "7.19.0", 1493 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", 1494 | "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", 1495 | "dev": true, 1496 | "requires": { 1497 | "@babel/template": "^7.18.10", 1498 | "@babel/types": "^7.19.0" 1499 | } 1500 | }, 1501 | "@babel/helper-hoist-variables": { 1502 | "version": "7.18.6", 1503 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 1504 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 1505 | "dev": true, 1506 | "requires": { 1507 | "@babel/types": "^7.18.6" 1508 | } 1509 | }, 1510 | "@babel/helper-module-imports": { 1511 | "version": "7.18.6", 1512 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 1513 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 1514 | "dev": true, 1515 | "requires": { 1516 | "@babel/types": "^7.18.6" 1517 | } 1518 | }, 1519 | "@babel/helper-module-transforms": { 1520 | "version": "7.20.11", 1521 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", 1522 | "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", 1523 | "dev": true, 1524 | "requires": { 1525 | "@babel/helper-environment-visitor": "^7.18.9", 1526 | "@babel/helper-module-imports": "^7.18.6", 1527 | "@babel/helper-simple-access": "^7.20.2", 1528 | "@babel/helper-split-export-declaration": "^7.18.6", 1529 | "@babel/helper-validator-identifier": "^7.19.1", 1530 | "@babel/template": "^7.20.7", 1531 | "@babel/traverse": "^7.20.10", 1532 | "@babel/types": "^7.20.7" 1533 | } 1534 | }, 1535 | "@babel/helper-plugin-utils": { 1536 | "version": "7.20.2", 1537 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", 1538 | "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", 1539 | "dev": true 1540 | }, 1541 | "@babel/helper-simple-access": { 1542 | "version": "7.20.2", 1543 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", 1544 | "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", 1545 | "dev": true, 1546 | "requires": { 1547 | "@babel/types": "^7.20.2" 1548 | } 1549 | }, 1550 | "@babel/helper-split-export-declaration": { 1551 | "version": "7.18.6", 1552 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 1553 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 1554 | "dev": true, 1555 | "requires": { 1556 | "@babel/types": "^7.18.6" 1557 | } 1558 | }, 1559 | "@babel/helper-string-parser": { 1560 | "version": "7.19.4", 1561 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", 1562 | "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", 1563 | "dev": true 1564 | }, 1565 | "@babel/helper-validator-identifier": { 1566 | "version": "7.19.1", 1567 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", 1568 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", 1569 | "dev": true 1570 | }, 1571 | "@babel/helper-validator-option": { 1572 | "version": "7.18.6", 1573 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 1574 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 1575 | "dev": true 1576 | }, 1577 | "@babel/helpers": { 1578 | "version": "7.20.13", 1579 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", 1580 | "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", 1581 | "dev": true, 1582 | "requires": { 1583 | "@babel/template": "^7.20.7", 1584 | "@babel/traverse": "^7.20.13", 1585 | "@babel/types": "^7.20.7" 1586 | } 1587 | }, 1588 | "@babel/highlight": { 1589 | "version": "7.18.6", 1590 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 1591 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 1592 | "dev": true, 1593 | "requires": { 1594 | "@babel/helper-validator-identifier": "^7.18.6", 1595 | "chalk": "^2.0.0", 1596 | "js-tokens": "^4.0.0" 1597 | } 1598 | }, 1599 | "@babel/parser": { 1600 | "version": "7.20.15", 1601 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", 1602 | "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", 1603 | "dev": true 1604 | }, 1605 | "@babel/plugin-transform-react-jsx-self": { 1606 | "version": "7.18.6", 1607 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", 1608 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", 1609 | "dev": true, 1610 | "requires": { 1611 | "@babel/helper-plugin-utils": "^7.18.6" 1612 | } 1613 | }, 1614 | "@babel/plugin-transform-react-jsx-source": { 1615 | "version": "7.19.6", 1616 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", 1617 | "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", 1618 | "dev": true, 1619 | "requires": { 1620 | "@babel/helper-plugin-utils": "^7.19.0" 1621 | } 1622 | }, 1623 | "@babel/template": { 1624 | "version": "7.20.7", 1625 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", 1626 | "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", 1627 | "dev": true, 1628 | "requires": { 1629 | "@babel/code-frame": "^7.18.6", 1630 | "@babel/parser": "^7.20.7", 1631 | "@babel/types": "^7.20.7" 1632 | } 1633 | }, 1634 | "@babel/traverse": { 1635 | "version": "7.20.13", 1636 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", 1637 | "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", 1638 | "dev": true, 1639 | "requires": { 1640 | "@babel/code-frame": "^7.18.6", 1641 | "@babel/generator": "^7.20.7", 1642 | "@babel/helper-environment-visitor": "^7.18.9", 1643 | "@babel/helper-function-name": "^7.19.0", 1644 | "@babel/helper-hoist-variables": "^7.18.6", 1645 | "@babel/helper-split-export-declaration": "^7.18.6", 1646 | "@babel/parser": "^7.20.13", 1647 | "@babel/types": "^7.20.7", 1648 | "debug": "^4.1.0", 1649 | "globals": "^11.1.0" 1650 | } 1651 | }, 1652 | "@babel/types": { 1653 | "version": "7.20.7", 1654 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", 1655 | "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", 1656 | "dev": true, 1657 | "requires": { 1658 | "@babel/helper-string-parser": "^7.19.4", 1659 | "@babel/helper-validator-identifier": "^7.19.1", 1660 | "to-fast-properties": "^2.0.0" 1661 | } 1662 | }, 1663 | "@esbuild/android-arm": { 1664 | "version": "0.16.17", 1665 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", 1666 | "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", 1667 | "dev": true, 1668 | "optional": true 1669 | }, 1670 | "@esbuild/android-arm64": { 1671 | "version": "0.16.17", 1672 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", 1673 | "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", 1674 | "dev": true, 1675 | "optional": true 1676 | }, 1677 | "@esbuild/android-x64": { 1678 | "version": "0.16.17", 1679 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", 1680 | "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", 1681 | "dev": true, 1682 | "optional": true 1683 | }, 1684 | "@esbuild/darwin-arm64": { 1685 | "version": "0.16.17", 1686 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", 1687 | "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", 1688 | "dev": true, 1689 | "optional": true 1690 | }, 1691 | "@esbuild/darwin-x64": { 1692 | "version": "0.16.17", 1693 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", 1694 | "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", 1695 | "dev": true, 1696 | "optional": true 1697 | }, 1698 | "@esbuild/freebsd-arm64": { 1699 | "version": "0.16.17", 1700 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", 1701 | "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", 1702 | "dev": true, 1703 | "optional": true 1704 | }, 1705 | "@esbuild/freebsd-x64": { 1706 | "version": "0.16.17", 1707 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", 1708 | "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", 1709 | "dev": true, 1710 | "optional": true 1711 | }, 1712 | "@esbuild/linux-arm": { 1713 | "version": "0.16.17", 1714 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", 1715 | "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", 1716 | "dev": true, 1717 | "optional": true 1718 | }, 1719 | "@esbuild/linux-arm64": { 1720 | "version": "0.16.17", 1721 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", 1722 | "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", 1723 | "dev": true, 1724 | "optional": true 1725 | }, 1726 | "@esbuild/linux-ia32": { 1727 | "version": "0.16.17", 1728 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", 1729 | "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", 1730 | "dev": true, 1731 | "optional": true 1732 | }, 1733 | "@esbuild/linux-loong64": { 1734 | "version": "0.16.17", 1735 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", 1736 | "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", 1737 | "dev": true, 1738 | "optional": true 1739 | }, 1740 | "@esbuild/linux-mips64el": { 1741 | "version": "0.16.17", 1742 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", 1743 | "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", 1744 | "dev": true, 1745 | "optional": true 1746 | }, 1747 | "@esbuild/linux-ppc64": { 1748 | "version": "0.16.17", 1749 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", 1750 | "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", 1751 | "dev": true, 1752 | "optional": true 1753 | }, 1754 | "@esbuild/linux-riscv64": { 1755 | "version": "0.16.17", 1756 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", 1757 | "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", 1758 | "dev": true, 1759 | "optional": true 1760 | }, 1761 | "@esbuild/linux-s390x": { 1762 | "version": "0.16.17", 1763 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", 1764 | "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", 1765 | "dev": true, 1766 | "optional": true 1767 | }, 1768 | "@esbuild/linux-x64": { 1769 | "version": "0.16.17", 1770 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", 1771 | "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", 1772 | "dev": true, 1773 | "optional": true 1774 | }, 1775 | "@esbuild/netbsd-x64": { 1776 | "version": "0.16.17", 1777 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", 1778 | "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", 1779 | "dev": true, 1780 | "optional": true 1781 | }, 1782 | "@esbuild/openbsd-x64": { 1783 | "version": "0.16.17", 1784 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", 1785 | "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", 1786 | "dev": true, 1787 | "optional": true 1788 | }, 1789 | "@esbuild/sunos-x64": { 1790 | "version": "0.16.17", 1791 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", 1792 | "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", 1793 | "dev": true, 1794 | "optional": true 1795 | }, 1796 | "@esbuild/win32-arm64": { 1797 | "version": "0.16.17", 1798 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", 1799 | "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", 1800 | "dev": true, 1801 | "optional": true 1802 | }, 1803 | "@esbuild/win32-ia32": { 1804 | "version": "0.16.17", 1805 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", 1806 | "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", 1807 | "dev": true, 1808 | "optional": true 1809 | }, 1810 | "@esbuild/win32-x64": { 1811 | "version": "0.16.17", 1812 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", 1813 | "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", 1814 | "dev": true, 1815 | "optional": true 1816 | }, 1817 | "@jridgewell/gen-mapping": { 1818 | "version": "0.1.1", 1819 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 1820 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 1821 | "dev": true, 1822 | "requires": { 1823 | "@jridgewell/set-array": "^1.0.0", 1824 | "@jridgewell/sourcemap-codec": "^1.4.10" 1825 | } 1826 | }, 1827 | "@jridgewell/resolve-uri": { 1828 | "version": "3.1.0", 1829 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 1830 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 1831 | "dev": true 1832 | }, 1833 | "@jridgewell/set-array": { 1834 | "version": "1.1.2", 1835 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 1836 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 1837 | "dev": true 1838 | }, 1839 | "@jridgewell/sourcemap-codec": { 1840 | "version": "1.4.14", 1841 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 1842 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 1843 | "dev": true 1844 | }, 1845 | "@jridgewell/trace-mapping": { 1846 | "version": "0.3.17", 1847 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", 1848 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", 1849 | "dev": true, 1850 | "requires": { 1851 | "@jridgewell/resolve-uri": "3.1.0", 1852 | "@jridgewell/sourcemap-codec": "1.4.14" 1853 | } 1854 | }, 1855 | "@types/prop-types": { 1856 | "version": "15.7.5", 1857 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 1858 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 1859 | "dev": true 1860 | }, 1861 | "@types/react": { 1862 | "version": "18.0.28", 1863 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", 1864 | "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", 1865 | "dev": true, 1866 | "requires": { 1867 | "@types/prop-types": "*", 1868 | "@types/scheduler": "*", 1869 | "csstype": "^3.0.2" 1870 | } 1871 | }, 1872 | "@types/react-dom": { 1873 | "version": "18.0.11", 1874 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", 1875 | "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", 1876 | "dev": true, 1877 | "requires": { 1878 | "@types/react": "*" 1879 | } 1880 | }, 1881 | "@types/scheduler": { 1882 | "version": "0.16.2", 1883 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 1884 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 1885 | "dev": true 1886 | }, 1887 | "@vitejs/plugin-react": { 1888 | "version": "3.1.0", 1889 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", 1890 | "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", 1891 | "dev": true, 1892 | "requires": { 1893 | "@babel/core": "^7.20.12", 1894 | "@babel/plugin-transform-react-jsx-self": "^7.18.6", 1895 | "@babel/plugin-transform-react-jsx-source": "^7.19.6", 1896 | "magic-string": "^0.27.0", 1897 | "react-refresh": "^0.14.0" 1898 | } 1899 | }, 1900 | "ansi-styles": { 1901 | "version": "3.2.1", 1902 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1903 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1904 | "dev": true, 1905 | "requires": { 1906 | "color-convert": "^1.9.0" 1907 | } 1908 | }, 1909 | "browserslist": { 1910 | "version": "4.21.5", 1911 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", 1912 | "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", 1913 | "dev": true, 1914 | "requires": { 1915 | "caniuse-lite": "^1.0.30001449", 1916 | "electron-to-chromium": "^1.4.284", 1917 | "node-releases": "^2.0.8", 1918 | "update-browserslist-db": "^1.0.10" 1919 | } 1920 | }, 1921 | "caniuse-lite": { 1922 | "version": "1.0.30001457", 1923 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001457.tgz", 1924 | "integrity": "sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA==", 1925 | "dev": true 1926 | }, 1927 | "chalk": { 1928 | "version": "2.4.2", 1929 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1930 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1931 | "dev": true, 1932 | "requires": { 1933 | "ansi-styles": "^3.2.1", 1934 | "escape-string-regexp": "^1.0.5", 1935 | "supports-color": "^5.3.0" 1936 | } 1937 | }, 1938 | "color-convert": { 1939 | "version": "1.9.3", 1940 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1941 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1942 | "dev": true, 1943 | "requires": { 1944 | "color-name": "1.1.3" 1945 | } 1946 | }, 1947 | "color-name": { 1948 | "version": "1.1.3", 1949 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1950 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 1951 | "dev": true 1952 | }, 1953 | "convert-source-map": { 1954 | "version": "1.9.0", 1955 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 1956 | "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", 1957 | "dev": true 1958 | }, 1959 | "csstype": { 1960 | "version": "3.1.1", 1961 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", 1962 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", 1963 | "dev": true 1964 | }, 1965 | "debug": { 1966 | "version": "4.3.4", 1967 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1968 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1969 | "dev": true, 1970 | "requires": { 1971 | "ms": "2.1.2" 1972 | } 1973 | }, 1974 | "electron-to-chromium": { 1975 | "version": "1.4.302", 1976 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz", 1977 | "integrity": "sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw==", 1978 | "dev": true 1979 | }, 1980 | "esbuild": { 1981 | "version": "0.16.17", 1982 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", 1983 | "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", 1984 | "dev": true, 1985 | "requires": { 1986 | "@esbuild/android-arm": "0.16.17", 1987 | "@esbuild/android-arm64": "0.16.17", 1988 | "@esbuild/android-x64": "0.16.17", 1989 | "@esbuild/darwin-arm64": "0.16.17", 1990 | "@esbuild/darwin-x64": "0.16.17", 1991 | "@esbuild/freebsd-arm64": "0.16.17", 1992 | "@esbuild/freebsd-x64": "0.16.17", 1993 | "@esbuild/linux-arm": "0.16.17", 1994 | "@esbuild/linux-arm64": "0.16.17", 1995 | "@esbuild/linux-ia32": "0.16.17", 1996 | "@esbuild/linux-loong64": "0.16.17", 1997 | "@esbuild/linux-mips64el": "0.16.17", 1998 | "@esbuild/linux-ppc64": "0.16.17", 1999 | "@esbuild/linux-riscv64": "0.16.17", 2000 | "@esbuild/linux-s390x": "0.16.17", 2001 | "@esbuild/linux-x64": "0.16.17", 2002 | "@esbuild/netbsd-x64": "0.16.17", 2003 | "@esbuild/openbsd-x64": "0.16.17", 2004 | "@esbuild/sunos-x64": "0.16.17", 2005 | "@esbuild/win32-arm64": "0.16.17", 2006 | "@esbuild/win32-ia32": "0.16.17", 2007 | "@esbuild/win32-x64": "0.16.17" 2008 | } 2009 | }, 2010 | "escalade": { 2011 | "version": "3.1.1", 2012 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 2013 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 2014 | "dev": true 2015 | }, 2016 | "escape-string-regexp": { 2017 | "version": "1.0.5", 2018 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2019 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 2020 | "dev": true 2021 | }, 2022 | "fsevents": { 2023 | "version": "2.3.2", 2024 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2025 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2026 | "dev": true, 2027 | "optional": true 2028 | }, 2029 | "function-bind": { 2030 | "version": "1.1.1", 2031 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2032 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2033 | "dev": true 2034 | }, 2035 | "gensync": { 2036 | "version": "1.0.0-beta.2", 2037 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 2038 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 2039 | "dev": true 2040 | }, 2041 | "globals": { 2042 | "version": "11.12.0", 2043 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2044 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 2045 | "dev": true 2046 | }, 2047 | "has": { 2048 | "version": "1.0.3", 2049 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2050 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2051 | "dev": true, 2052 | "requires": { 2053 | "function-bind": "^1.1.1" 2054 | } 2055 | }, 2056 | "has-flag": { 2057 | "version": "3.0.0", 2058 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2059 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 2060 | "dev": true 2061 | }, 2062 | "is-core-module": { 2063 | "version": "2.11.0", 2064 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 2065 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 2066 | "dev": true, 2067 | "requires": { 2068 | "has": "^1.0.3" 2069 | } 2070 | }, 2071 | "js-tokens": { 2072 | "version": "4.0.0", 2073 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2074 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2075 | }, 2076 | "jsesc": { 2077 | "version": "2.5.2", 2078 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2079 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 2080 | "dev": true 2081 | }, 2082 | "json5": { 2083 | "version": "2.2.3", 2084 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 2085 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 2086 | "dev": true 2087 | }, 2088 | "loose-envify": { 2089 | "version": "1.4.0", 2090 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2091 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2092 | "requires": { 2093 | "js-tokens": "^3.0.0 || ^4.0.0" 2094 | } 2095 | }, 2096 | "lru-cache": { 2097 | "version": "5.1.1", 2098 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 2099 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 2100 | "dev": true, 2101 | "requires": { 2102 | "yallist": "^3.0.2" 2103 | } 2104 | }, 2105 | "magic-string": { 2106 | "version": "0.27.0", 2107 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", 2108 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", 2109 | "dev": true, 2110 | "requires": { 2111 | "@jridgewell/sourcemap-codec": "^1.4.13" 2112 | } 2113 | }, 2114 | "ms": { 2115 | "version": "2.1.2", 2116 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2117 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2118 | "dev": true 2119 | }, 2120 | "nanoid": { 2121 | "version": "3.3.4", 2122 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 2123 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 2124 | "dev": true 2125 | }, 2126 | "node-releases": { 2127 | "version": "2.0.10", 2128 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", 2129 | "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", 2130 | "dev": true 2131 | }, 2132 | "path-parse": { 2133 | "version": "1.0.7", 2134 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2135 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2136 | "dev": true 2137 | }, 2138 | "picocolors": { 2139 | "version": "1.0.0", 2140 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2141 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2142 | "dev": true 2143 | }, 2144 | "postcss": { 2145 | "version": "8.4.21", 2146 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", 2147 | "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", 2148 | "dev": true, 2149 | "requires": { 2150 | "nanoid": "^3.3.4", 2151 | "picocolors": "^1.0.0", 2152 | "source-map-js": "^1.0.2" 2153 | } 2154 | }, 2155 | "react": { 2156 | "version": "18.2.0", 2157 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 2158 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 2159 | "requires": { 2160 | "loose-envify": "^1.1.0" 2161 | } 2162 | }, 2163 | "react-dom": { 2164 | "version": "18.2.0", 2165 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 2166 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 2167 | "requires": { 2168 | "loose-envify": "^1.1.0", 2169 | "scheduler": "^0.23.0" 2170 | } 2171 | }, 2172 | "react-refresh": { 2173 | "version": "0.14.0", 2174 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", 2175 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", 2176 | "dev": true 2177 | }, 2178 | "resolve": { 2179 | "version": "1.22.1", 2180 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 2181 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 2182 | "dev": true, 2183 | "requires": { 2184 | "is-core-module": "^2.9.0", 2185 | "path-parse": "^1.0.7", 2186 | "supports-preserve-symlinks-flag": "^1.0.0" 2187 | } 2188 | }, 2189 | "rollup": { 2190 | "version": "3.17.2", 2191 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.17.2.tgz", 2192 | "integrity": "sha512-qMNZdlQPCkWodrAZ3qnJtvCAl4vpQ8q77uEujVCCbC/6CLB7Lcmvjq7HyiOSnf4fxTT9XgsE36oLHJBH49xjqA==", 2193 | "dev": true, 2194 | "requires": { 2195 | "fsevents": "~2.3.2" 2196 | } 2197 | }, 2198 | "scheduler": { 2199 | "version": "0.23.0", 2200 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 2201 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 2202 | "requires": { 2203 | "loose-envify": "^1.1.0" 2204 | } 2205 | }, 2206 | "semver": { 2207 | "version": "6.3.0", 2208 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2209 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2210 | "dev": true 2211 | }, 2212 | "source-map-js": { 2213 | "version": "1.0.2", 2214 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2215 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2216 | "dev": true 2217 | }, 2218 | "supports-color": { 2219 | "version": "5.5.0", 2220 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2221 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2222 | "dev": true, 2223 | "requires": { 2224 | "has-flag": "^3.0.0" 2225 | } 2226 | }, 2227 | "supports-preserve-symlinks-flag": { 2228 | "version": "1.0.0", 2229 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2230 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2231 | "dev": true 2232 | }, 2233 | "to-fast-properties": { 2234 | "version": "2.0.0", 2235 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2236 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 2237 | "dev": true 2238 | }, 2239 | "update-browserslist-db": { 2240 | "version": "1.0.10", 2241 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", 2242 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", 2243 | "dev": true, 2244 | "requires": { 2245 | "escalade": "^3.1.1", 2246 | "picocolors": "^1.0.0" 2247 | } 2248 | }, 2249 | "vite": { 2250 | "version": "4.1.3", 2251 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.3.tgz", 2252 | "integrity": "sha512-0Zqo4/Fr/swSOBmbl+HAAhOjrqNwju+yTtoe4hQX9UsARdcuc9njyOdr6xU0DDnV7YP0RT6mgTTOiRtZgxfCxA==", 2253 | "dev": true, 2254 | "requires": { 2255 | "esbuild": "^0.16.14", 2256 | "fsevents": "~2.3.2", 2257 | "postcss": "^8.4.21", 2258 | "resolve": "^1.22.1", 2259 | "rollup": "^3.10.0" 2260 | } 2261 | }, 2262 | "yallist": { 2263 | "version": "3.1.1", 2264 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 2265 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 2266 | "dev": true 2267 | } 2268 | } 2269 | } 2270 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "form-data", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "react": "^18.2.0", 13 | "react-dom": "^18.2.0" 14 | }, 15 | "devDependencies": { 16 | "@types/react": "^18.0.27", 17 | "@types/react-dom": "^18.0.10", 18 | "@vitejs/plugin-react": "^3.1.0", 19 | "vite": "^4.1.0" 20 | } 21 | } -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react'; 2 | import getFormValues from './getFormValues'; 3 | function Register() { 4 | const [isMember, setIsMember] = useState(false); 5 | 6 | const onSubmit = (e) => { 7 | e.preventDefault(); 8 | const { isEmpty, data } = getFormValues(e.currentTarget); 9 | 10 | if (isEmpty) { 11 | console.log('please provide all values'); 12 | return; 13 | } 14 | 15 | // do something 16 | console.log(data); 17 | 18 | // clear inputs 19 | e.currentTarget.reset(); 20 | }; 21 | 22 | return ( 23 |
24 |
25 |

{isMember ? 'Login' : 'Register'}

26 | {/* name field */} 27 | {!isMember && ( 28 |
29 | 32 | 33 |
34 | )} 35 | 36 | {/* email field */} 37 |
38 | 41 | 42 |
43 | {/* password field */} 44 |
45 | 48 | 54 |
55 | 58 | 59 |

60 | {isMember ? 'Not a member yet?' : 'Already a member?'} 61 | 68 |

69 |
70 |
71 | ); 72 | } 73 | export default Register; 74 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/getFormValues.js: -------------------------------------------------------------------------------- 1 | const getFormValues = (form) => { 2 | const formData = new FormData(form); 3 | 4 | const values = [...formData.values()]; 5 | const isEmpty = values.includes(''); 6 | const data = Object.fromEntries(formData); 7 | return { isEmpty, data }; 8 | }; 9 | 10 | export default getFormValues; 11 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | 7 | /* fonts */ 8 | @import url('https://fonts.googleapis.com/css2?family=Cabin&family=Roboto+Condensed:wght@400;700&display=swap'); 9 | 10 | html { 11 | font-size: 100%; 12 | } /*16px*/ 13 | 14 | :root { 15 | /* colors */ 16 | --primary-50: #eff6ff; 17 | --primary-100: #dbeafe; 18 | --primary-200: #bfdbfe; 19 | --primary-300: #93c5fd; 20 | --primary-400: #60a5fa; 21 | --primary-500: #3b82f6; 22 | --primary-600: #2563eb; 23 | --primary-700: #1d4ed8; 24 | --primary-800: #1e40af; 25 | --primary-900: #1e3a8a; 26 | 27 | /* grey */ 28 | --grey-50: #f0f4f8; 29 | --grey-100: #d9e2ec; 30 | --grey-200: #bcccdc; 31 | --grey-300: #9fb3c8; 32 | --grey-400: #829ab1; 33 | --grey-500: #627d98; 34 | --grey-600: #486581; 35 | --grey-700: #334e68; 36 | --grey-800: #243b53; 37 | --grey-900: #102a43; 38 | /* rest of the colors */ 39 | --black: #222; 40 | --white: #fff; 41 | --red-light: #f8d7da; 42 | --red-dark: #842029; 43 | --green-light: #d1e7dd; 44 | --green-dark: #0f5132; 45 | 46 | /* fonts */ 47 | --headingFont: 'Roboto Condensed', Sans-Serif; 48 | --bodyFont: 'Cabin', Sans-Serif; 49 | --small-text: 0.875rem; 50 | --extra-small-text: 0.7em; 51 | /* rest of the vars */ 52 | --backgroundColor: var(--grey-50); 53 | --textColor: var(--grey-900); 54 | --borderRadius: 0.25rem; 55 | --letterSpacing: 1px; 56 | --transition: 0.3s ease-in-out all; 57 | --max-width: 1120px; 58 | --fixed-width: 500px; 59 | --fluid-width: 90vw; 60 | --breakpoint-lg: 992px; 61 | --nav-height: 6rem; 62 | /* box shadow*/ 63 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 64 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 65 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 66 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 67 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 68 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 69 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 70 | } 71 | 72 | body { 73 | background: var(--backgroundColor); 74 | font-family: var(--bodyFont); 75 | font-weight: 400; 76 | line-height: 1.75; 77 | color: var(--textColor); 78 | } 79 | 80 | p { 81 | margin-bottom: 1.5rem; 82 | max-width: 40em; 83 | } 84 | 85 | h1, 86 | h2, 87 | h3, 88 | h4, 89 | h5 { 90 | margin: 0; 91 | margin-bottom: 1.38rem; 92 | font-family: var(--headingFont); 93 | font-weight: 400; 94 | line-height: 1.3; 95 | text-transform: capitalize; 96 | letter-spacing: var(--letterSpacing); 97 | } 98 | 99 | h1 { 100 | margin-top: 0; 101 | font-size: 3.052rem; 102 | } 103 | 104 | h2 { 105 | font-size: 2.441rem; 106 | } 107 | 108 | h3 { 109 | font-size: 1.953rem; 110 | } 111 | 112 | h4 { 113 | font-size: 1.563rem; 114 | } 115 | 116 | h5 { 117 | font-size: 1.25rem; 118 | } 119 | 120 | small, 121 | .text-small { 122 | font-size: var(--small-text); 123 | } 124 | 125 | a { 126 | text-decoration: none; 127 | letter-spacing: var(--letterSpacing); 128 | } 129 | a, 130 | button { 131 | line-height: 1.15; 132 | } 133 | button:disabled { 134 | cursor: not-allowed; 135 | } 136 | ul { 137 | list-style-type: none; 138 | padding: 0; 139 | } 140 | 141 | .img { 142 | width: 100%; 143 | display: block; 144 | object-fit: cover; 145 | } 146 | /* buttons */ 147 | 148 | .btn { 149 | cursor: pointer; 150 | color: var(--white); 151 | background: var(--primary-500); 152 | border: transparent; 153 | border-radius: var(--borderRadius); 154 | letter-spacing: var(--letterSpacing); 155 | padding: 0.375rem 0.75rem; 156 | box-shadow: var(--shadow-2); 157 | transition: var(--transition); 158 | text-transform: capitalize; 159 | display: inline-block; 160 | } 161 | .btn:hover { 162 | background: var(--primary-700); 163 | box-shadow: var(--shadow-3); 164 | } 165 | .btn-hipster { 166 | color: var(--primary-500); 167 | background: var(--primary-200); 168 | } 169 | .btn-hipster:hover { 170 | color: var(--primary-200); 171 | background: var(--primary-700); 172 | } 173 | .btn-block { 174 | width: 100%; 175 | } 176 | .btn-hero { 177 | font-size: 1.25rem; 178 | padding: 0.5rem 1.25rem; 179 | } 180 | .btn-danger { 181 | background: var(--red-light); 182 | color: var(--red-dark); 183 | } 184 | .btn-danger:hover { 185 | background: var(--red-dark); 186 | color: var(--white); 187 | } 188 | /* alerts */ 189 | .alert { 190 | padding: 0.375rem 0.75rem; 191 | margin-bottom: 1rem; 192 | border-color: transparent; 193 | border-radius: var(--borderRadius); 194 | text-align: center; 195 | letter-spacing: var(--letterSpacing); 196 | text-transform: capitalize; 197 | } 198 | 199 | .alert-danger { 200 | color: var(--red-dark); 201 | background: var(--red-light); 202 | } 203 | .alert-success { 204 | color: var(--green-dark); 205 | background: var(--green-light); 206 | } 207 | /* form */ 208 | 209 | .form { 210 | width: 90vw; 211 | max-width: var(--fixed-width); 212 | background: var(--white); 213 | border-radius: var(--borderRadius); 214 | box-shadow: var(--shadow-2); 215 | padding: 2rem 2.5rem; 216 | margin: 3rem auto; 217 | transition: var(--transition); 218 | } 219 | .form:hover { 220 | box-shadow: var(--shadow-4); 221 | } 222 | .form-label { 223 | display: block; 224 | font-size: var(--smallText); 225 | margin-bottom: 0.5rem; 226 | text-transform: capitalize; 227 | letter-spacing: var(--letterSpacing); 228 | } 229 | .form-input, 230 | .form-textarea, 231 | .form-select { 232 | width: 100%; 233 | padding: 0.375rem 0.75rem; 234 | border-radius: var(--borderRadius); 235 | background: var(--backgroundColor); 236 | border: 1px solid var(--grey-200); 237 | } 238 | .form-input, 239 | .form-select, 240 | .btn-block { 241 | height: 35px; 242 | } 243 | .form-row { 244 | margin-bottom: 1rem; 245 | } 246 | 247 | .form-textarea { 248 | height: 7rem; 249 | } 250 | ::placeholder { 251 | font-family: inherit; 252 | color: var(--grey-400); 253 | } 254 | .form-alert { 255 | color: var(--red-dark); 256 | letter-spacing: var(--letterSpacing); 257 | text-transform: capitalize; 258 | } 259 | /* alert */ 260 | 261 | @keyframes spinner { 262 | to { 263 | transform: rotate(360deg); 264 | } 265 | } 266 | 267 | .loading { 268 | width: 6rem; 269 | height: 6rem; 270 | border: 5px solid var(--grey-400); 271 | border-radius: 50%; 272 | border-top-color: var(--primary-500); 273 | animation: spinner 2s linear infinite; 274 | } 275 | .loading-center { 276 | margin: 0 auto; 277 | } 278 | /* title */ 279 | 280 | .title { 281 | text-align: center; 282 | } 283 | 284 | .title-underline { 285 | background: var(--primary-500); 286 | width: 7rem; 287 | height: 0.25rem; 288 | margin: 0 auto; 289 | margin-top: -1rem; 290 | } 291 | 292 | .container { 293 | width: var(--fluid-width); 294 | max-width: var(--max-width); 295 | margin: 0 auto; 296 | } 297 | .full-page { 298 | min-height: 100vh; 299 | } 300 | 301 | .coffee-info { 302 | text-align: center; 303 | text-transform: capitalize; 304 | margin-bottom: 1rem; 305 | letter-spacing: var(--letterSpacing); 306 | } 307 | .coffee-info span { 308 | display: block; 309 | } 310 | .coffee-info a { 311 | color: var(--primary-500); 312 | } 313 | 314 | @media screen and (min-width: 992px) { 315 | .coffee-info { 316 | text-align: left; 317 | } 318 | .coffee-info span { 319 | display: inline-block; 320 | margin-right: 0.5rem; 321 | } 322 | } 323 | 324 | .Toastify__toast { 325 | text-transform: capitalize; 326 | } 327 | .register-page { 328 | display: grid; 329 | align-items: center; 330 | } 331 | 332 | .form { 333 | max-width: 400px; 334 | border-top: 5px solid var(--primary-500); 335 | } 336 | h3 { 337 | text-align: center; 338 | } 339 | p { 340 | margin: 0; 341 | margin-top: 1rem; 342 | text-align: center; 343 | } 344 | .btn { 345 | margin-top: 1rem; 346 | } 347 | .member-btn { 348 | background: transparent; 349 | border: transparent; 350 | color: var(--primary-500); 351 | cursor: pointer; 352 | letter-spacing: var(--letterSpacing); 353 | } 354 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------