├── .gitignore ├── README.md ├── design ├── active-states-theme-1.jpg ├── active-states-theme-2.jpg ├── active-states-theme-3.jpg ├── desktop-design-theme-1.jpg ├── desktop-design-theme-2.jpg ├── desktop-design-theme-3.jpg ├── desktop-preview.jpg ├── mobile-design-theme-1.jpg ├── mobile-design-theme-2.jpg └── mobile-design-theme-3.jpg ├── index.html ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── logo.png ├── src ├── App.jsx ├── assets │ └── Styles.css ├── components │ ├── calculator │ │ ├── Calculator.jsx │ │ ├── Keypad.jsx │ │ └── Screen.jsx │ ├── header │ │ ├── Header.jsx │ │ ├── ThemeButtons.jsx │ │ ├── ThemeNumbers.jsx │ │ └── ThemeSwitcher.jsx │ └── styles │ │ ├── GlobalStyles.js │ │ ├── Theme.styled.js │ │ └── ThemeSwitching.styled.js └── 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 | # Frontend Mentor - Calculator app 2 | 3 | This is a solution to the [Calculator app challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/calculator-app-9lteq5N29). Frontend Mentor challenges help you improve your coding skills by building realistic projects. 4 | 5 | # Table of contents 6 | 7 | - [Frontend Mentor - Calculator appt page solution](#frontend-mentor---calculator-app) 8 | - [Table of contents](#table-of-contents) 9 | - [Overview](#overview) 10 | - [The challenge](#the-challenge) 11 | - [Screenshot](#screenshot) 12 | - [Links](#links) 13 | - [My process](#my-process) 14 | - [Built with](#built-with) 15 | - [Author](#author) 16 | 17 | 18 | ## Overview 19 | 20 | ### The challenge 21 | 22 | Users should be able to: 23 | 24 | - See the size of the elements adjust based on their device's screen size 25 | - Perform mathematical operations like addition, subtraction, multiplication, and division 26 | - Adjust the color theme based on their preference 27 | - Bonus: Have their initial theme preference checked using prefers-color-scheme and have any additional changes saved in the browser 28 | 29 | ### Screenshot 30 | 31 | ![](./design/desktop-preview.jpg) 32 | 33 | ### Links 34 | 35 | - Live Site URL: [Add live site URL here](https://monicatvera.github.io/calculator/) 36 | 37 | ## My process 38 | 39 | ### Built with 40 | 41 | - [React](https://reactjs.org/) - JS library 42 | - [Vite](https://vitejs.dev/) - framework 43 | - [Styled Components](https://styled-components.com/) - Styled Components 44 | 45 | ## Author 46 | 47 | - Mónica Ilenia Tardón Vera - [@monicatvera](https://github.com/monicatvera) 48 | - Frontend Mentor - [@monicatvera](https://www.frontendmentor.io/profile/monicatvera) -------------------------------------------------------------------------------- /design/active-states-theme-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/active-states-theme-1.jpg -------------------------------------------------------------------------------- /design/active-states-theme-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/active-states-theme-2.jpg -------------------------------------------------------------------------------- /design/active-states-theme-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/active-states-theme-3.jpg -------------------------------------------------------------------------------- /design/desktop-design-theme-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/desktop-design-theme-1.jpg -------------------------------------------------------------------------------- /design/desktop-design-theme-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/desktop-design-theme-2.jpg -------------------------------------------------------------------------------- /design/desktop-design-theme-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/desktop-design-theme-3.jpg -------------------------------------------------------------------------------- /design/desktop-preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/desktop-preview.jpg -------------------------------------------------------------------------------- /design/mobile-design-theme-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/mobile-design-theme-1.jpg -------------------------------------------------------------------------------- /design/mobile-design-theme-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/mobile-design-theme-2.jpg -------------------------------------------------------------------------------- /design/mobile-design-theme-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/design/mobile-design-theme-3.jpg -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Calculator 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "calculator", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "calculator", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "react": "^18.2.0", 12 | "react-dom": "^18.2.0", 13 | "react-router-dom": "^6.4.3", 14 | "styled-components": "^5.3.6" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.0.22", 18 | "@types/react-dom": "^18.0.7", 19 | "@vitejs/plugin-react": "^2.2.0", 20 | "gh-pages": "^4.0.0", 21 | "vite": "^3.2.0" 22 | } 23 | }, 24 | "node_modules/@ampproject/remapping": { 25 | "version": "2.2.0", 26 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 27 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 28 | "dev": true, 29 | "dependencies": { 30 | "@jridgewell/gen-mapping": "^0.1.0", 31 | "@jridgewell/trace-mapping": "^0.3.9" 32 | }, 33 | "engines": { 34 | "node": ">=6.0.0" 35 | } 36 | }, 37 | "node_modules/@babel/code-frame": { 38 | "version": "7.18.6", 39 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 40 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 41 | "dependencies": { 42 | "@babel/highlight": "^7.18.6" 43 | }, 44 | "engines": { 45 | "node": ">=6.9.0" 46 | } 47 | }, 48 | "node_modules/@babel/compat-data": { 49 | "version": "7.20.1", 50 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", 51 | "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", 52 | "dev": true, 53 | "engines": { 54 | "node": ">=6.9.0" 55 | } 56 | }, 57 | "node_modules/@babel/core": { 58 | "version": "7.19.6", 59 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", 60 | "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", 61 | "dev": true, 62 | "dependencies": { 63 | "@ampproject/remapping": "^2.1.0", 64 | "@babel/code-frame": "^7.18.6", 65 | "@babel/generator": "^7.19.6", 66 | "@babel/helper-compilation-targets": "^7.19.3", 67 | "@babel/helper-module-transforms": "^7.19.6", 68 | "@babel/helpers": "^7.19.4", 69 | "@babel/parser": "^7.19.6", 70 | "@babel/template": "^7.18.10", 71 | "@babel/traverse": "^7.19.6", 72 | "@babel/types": "^7.19.4", 73 | "convert-source-map": "^1.7.0", 74 | "debug": "^4.1.0", 75 | "gensync": "^1.0.0-beta.2", 76 | "json5": "^2.2.1", 77 | "semver": "^6.3.0" 78 | }, 79 | "engines": { 80 | "node": ">=6.9.0" 81 | }, 82 | "funding": { 83 | "type": "opencollective", 84 | "url": "https://opencollective.com/babel" 85 | } 86 | }, 87 | "node_modules/@babel/generator": { 88 | "version": "7.20.1", 89 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz", 90 | "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==", 91 | "dependencies": { 92 | "@babel/types": "^7.20.0", 93 | "@jridgewell/gen-mapping": "^0.3.2", 94 | "jsesc": "^2.5.1" 95 | }, 96 | "engines": { 97 | "node": ">=6.9.0" 98 | } 99 | }, 100 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { 101 | "version": "0.3.2", 102 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 103 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 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-annotate-as-pure": { 114 | "version": "7.18.6", 115 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", 116 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", 117 | "dependencies": { 118 | "@babel/types": "^7.18.6" 119 | }, 120 | "engines": { 121 | "node": ">=6.9.0" 122 | } 123 | }, 124 | "node_modules/@babel/helper-compilation-targets": { 125 | "version": "7.20.0", 126 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", 127 | "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", 128 | "dev": true, 129 | "dependencies": { 130 | "@babel/compat-data": "^7.20.0", 131 | "@babel/helper-validator-option": "^7.18.6", 132 | "browserslist": "^4.21.3", 133 | "semver": "^6.3.0" 134 | }, 135 | "engines": { 136 | "node": ">=6.9.0" 137 | }, 138 | "peerDependencies": { 139 | "@babel/core": "^7.0.0" 140 | } 141 | }, 142 | "node_modules/@babel/helper-environment-visitor": { 143 | "version": "7.18.9", 144 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", 145 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", 146 | "engines": { 147 | "node": ">=6.9.0" 148 | } 149 | }, 150 | "node_modules/@babel/helper-function-name": { 151 | "version": "7.19.0", 152 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", 153 | "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", 154 | "dependencies": { 155 | "@babel/template": "^7.18.10", 156 | "@babel/types": "^7.19.0" 157 | }, 158 | "engines": { 159 | "node": ">=6.9.0" 160 | } 161 | }, 162 | "node_modules/@babel/helper-hoist-variables": { 163 | "version": "7.18.6", 164 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 165 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 166 | "dependencies": { 167 | "@babel/types": "^7.18.6" 168 | }, 169 | "engines": { 170 | "node": ">=6.9.0" 171 | } 172 | }, 173 | "node_modules/@babel/helper-module-imports": { 174 | "version": "7.18.6", 175 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 176 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 177 | "dependencies": { 178 | "@babel/types": "^7.18.6" 179 | }, 180 | "engines": { 181 | "node": ">=6.9.0" 182 | } 183 | }, 184 | "node_modules/@babel/helper-module-transforms": { 185 | "version": "7.19.6", 186 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", 187 | "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", 188 | "dev": true, 189 | "dependencies": { 190 | "@babel/helper-environment-visitor": "^7.18.9", 191 | "@babel/helper-module-imports": "^7.18.6", 192 | "@babel/helper-simple-access": "^7.19.4", 193 | "@babel/helper-split-export-declaration": "^7.18.6", 194 | "@babel/helper-validator-identifier": "^7.19.1", 195 | "@babel/template": "^7.18.10", 196 | "@babel/traverse": "^7.19.6", 197 | "@babel/types": "^7.19.4" 198 | }, 199 | "engines": { 200 | "node": ">=6.9.0" 201 | } 202 | }, 203 | "node_modules/@babel/helper-plugin-utils": { 204 | "version": "7.19.0", 205 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", 206 | "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", 207 | "dev": true, 208 | "engines": { 209 | "node": ">=6.9.0" 210 | } 211 | }, 212 | "node_modules/@babel/helper-simple-access": { 213 | "version": "7.19.4", 214 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", 215 | "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", 216 | "dev": true, 217 | "dependencies": { 218 | "@babel/types": "^7.19.4" 219 | }, 220 | "engines": { 221 | "node": ">=6.9.0" 222 | } 223 | }, 224 | "node_modules/@babel/helper-split-export-declaration": { 225 | "version": "7.18.6", 226 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 227 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 228 | "dependencies": { 229 | "@babel/types": "^7.18.6" 230 | }, 231 | "engines": { 232 | "node": ">=6.9.0" 233 | } 234 | }, 235 | "node_modules/@babel/helper-string-parser": { 236 | "version": "7.19.4", 237 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", 238 | "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", 239 | "engines": { 240 | "node": ">=6.9.0" 241 | } 242 | }, 243 | "node_modules/@babel/helper-validator-identifier": { 244 | "version": "7.19.1", 245 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", 246 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", 247 | "engines": { 248 | "node": ">=6.9.0" 249 | } 250 | }, 251 | "node_modules/@babel/helper-validator-option": { 252 | "version": "7.18.6", 253 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 254 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 255 | "dev": true, 256 | "engines": { 257 | "node": ">=6.9.0" 258 | } 259 | }, 260 | "node_modules/@babel/helpers": { 261 | "version": "7.20.1", 262 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", 263 | "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", 264 | "dev": true, 265 | "dependencies": { 266 | "@babel/template": "^7.18.10", 267 | "@babel/traverse": "^7.20.1", 268 | "@babel/types": "^7.20.0" 269 | }, 270 | "engines": { 271 | "node": ">=6.9.0" 272 | } 273 | }, 274 | "node_modules/@babel/highlight": { 275 | "version": "7.18.6", 276 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 277 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 278 | "dependencies": { 279 | "@babel/helper-validator-identifier": "^7.18.6", 280 | "chalk": "^2.0.0", 281 | "js-tokens": "^4.0.0" 282 | }, 283 | "engines": { 284 | "node": ">=6.9.0" 285 | } 286 | }, 287 | "node_modules/@babel/parser": { 288 | "version": "7.20.1", 289 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", 290 | "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==", 291 | "bin": { 292 | "parser": "bin/babel-parser.js" 293 | }, 294 | "engines": { 295 | "node": ">=6.0.0" 296 | } 297 | }, 298 | "node_modules/@babel/plugin-syntax-jsx": { 299 | "version": "7.18.6", 300 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", 301 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", 302 | "dev": true, 303 | "dependencies": { 304 | "@babel/helper-plugin-utils": "^7.18.6" 305 | }, 306 | "engines": { 307 | "node": ">=6.9.0" 308 | }, 309 | "peerDependencies": { 310 | "@babel/core": "^7.0.0-0" 311 | } 312 | }, 313 | "node_modules/@babel/plugin-transform-react-jsx": { 314 | "version": "7.19.0", 315 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", 316 | "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", 317 | "dev": true, 318 | "dependencies": { 319 | "@babel/helper-annotate-as-pure": "^7.18.6", 320 | "@babel/helper-module-imports": "^7.18.6", 321 | "@babel/helper-plugin-utils": "^7.19.0", 322 | "@babel/plugin-syntax-jsx": "^7.18.6", 323 | "@babel/types": "^7.19.0" 324 | }, 325 | "engines": { 326 | "node": ">=6.9.0" 327 | }, 328 | "peerDependencies": { 329 | "@babel/core": "^7.0.0-0" 330 | } 331 | }, 332 | "node_modules/@babel/plugin-transform-react-jsx-development": { 333 | "version": "7.18.6", 334 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", 335 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", 336 | "dev": true, 337 | "dependencies": { 338 | "@babel/plugin-transform-react-jsx": "^7.18.6" 339 | }, 340 | "engines": { 341 | "node": ">=6.9.0" 342 | }, 343 | "peerDependencies": { 344 | "@babel/core": "^7.0.0-0" 345 | } 346 | }, 347 | "node_modules/@babel/plugin-transform-react-jsx-self": { 348 | "version": "7.18.6", 349 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", 350 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", 351 | "dev": true, 352 | "dependencies": { 353 | "@babel/helper-plugin-utils": "^7.18.6" 354 | }, 355 | "engines": { 356 | "node": ">=6.9.0" 357 | }, 358 | "peerDependencies": { 359 | "@babel/core": "^7.0.0-0" 360 | } 361 | }, 362 | "node_modules/@babel/plugin-transform-react-jsx-source": { 363 | "version": "7.19.6", 364 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", 365 | "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", 366 | "dev": true, 367 | "dependencies": { 368 | "@babel/helper-plugin-utils": "^7.19.0" 369 | }, 370 | "engines": { 371 | "node": ">=6.9.0" 372 | }, 373 | "peerDependencies": { 374 | "@babel/core": "^7.0.0-0" 375 | } 376 | }, 377 | "node_modules/@babel/template": { 378 | "version": "7.18.10", 379 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", 380 | "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", 381 | "dependencies": { 382 | "@babel/code-frame": "^7.18.6", 383 | "@babel/parser": "^7.18.10", 384 | "@babel/types": "^7.18.10" 385 | }, 386 | "engines": { 387 | "node": ">=6.9.0" 388 | } 389 | }, 390 | "node_modules/@babel/traverse": { 391 | "version": "7.20.1", 392 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", 393 | "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", 394 | "dependencies": { 395 | "@babel/code-frame": "^7.18.6", 396 | "@babel/generator": "^7.20.1", 397 | "@babel/helper-environment-visitor": "^7.18.9", 398 | "@babel/helper-function-name": "^7.19.0", 399 | "@babel/helper-hoist-variables": "^7.18.6", 400 | "@babel/helper-split-export-declaration": "^7.18.6", 401 | "@babel/parser": "^7.20.1", 402 | "@babel/types": "^7.20.0", 403 | "debug": "^4.1.0", 404 | "globals": "^11.1.0" 405 | }, 406 | "engines": { 407 | "node": ">=6.9.0" 408 | } 409 | }, 410 | "node_modules/@babel/types": { 411 | "version": "7.20.0", 412 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", 413 | "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", 414 | "dependencies": { 415 | "@babel/helper-string-parser": "^7.19.4", 416 | "@babel/helper-validator-identifier": "^7.19.1", 417 | "to-fast-properties": "^2.0.0" 418 | }, 419 | "engines": { 420 | "node": ">=6.9.0" 421 | } 422 | }, 423 | "node_modules/@emotion/is-prop-valid": { 424 | "version": "1.2.0", 425 | "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", 426 | "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", 427 | "dependencies": { 428 | "@emotion/memoize": "^0.8.0" 429 | } 430 | }, 431 | "node_modules/@emotion/memoize": { 432 | "version": "0.8.0", 433 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", 434 | "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" 435 | }, 436 | "node_modules/@emotion/stylis": { 437 | "version": "0.8.5", 438 | "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", 439 | "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" 440 | }, 441 | "node_modules/@emotion/unitless": { 442 | "version": "0.7.5", 443 | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", 444 | "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" 445 | }, 446 | "node_modules/@esbuild/android-arm": { 447 | "version": "0.15.12", 448 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz", 449 | "integrity": "sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==", 450 | "cpu": [ 451 | "arm" 452 | ], 453 | "dev": true, 454 | "optional": true, 455 | "os": [ 456 | "android" 457 | ], 458 | "engines": { 459 | "node": ">=12" 460 | } 461 | }, 462 | "node_modules/@esbuild/linux-loong64": { 463 | "version": "0.15.12", 464 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz", 465 | "integrity": "sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==", 466 | "cpu": [ 467 | "loong64" 468 | ], 469 | "dev": true, 470 | "optional": true, 471 | "os": [ 472 | "linux" 473 | ], 474 | "engines": { 475 | "node": ">=12" 476 | } 477 | }, 478 | "node_modules/@jridgewell/gen-mapping": { 479 | "version": "0.1.1", 480 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 481 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 482 | "dev": true, 483 | "dependencies": { 484 | "@jridgewell/set-array": "^1.0.0", 485 | "@jridgewell/sourcemap-codec": "^1.4.10" 486 | }, 487 | "engines": { 488 | "node": ">=6.0.0" 489 | } 490 | }, 491 | "node_modules/@jridgewell/resolve-uri": { 492 | "version": "3.1.0", 493 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 494 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 495 | "engines": { 496 | "node": ">=6.0.0" 497 | } 498 | }, 499 | "node_modules/@jridgewell/set-array": { 500 | "version": "1.1.2", 501 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 502 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 503 | "engines": { 504 | "node": ">=6.0.0" 505 | } 506 | }, 507 | "node_modules/@jridgewell/sourcemap-codec": { 508 | "version": "1.4.14", 509 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 510 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" 511 | }, 512 | "node_modules/@jridgewell/trace-mapping": { 513 | "version": "0.3.17", 514 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", 515 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", 516 | "dependencies": { 517 | "@jridgewell/resolve-uri": "3.1.0", 518 | "@jridgewell/sourcemap-codec": "1.4.14" 519 | } 520 | }, 521 | "node_modules/@remix-run/router": { 522 | "version": "1.0.3", 523 | "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz", 524 | "integrity": "sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q==", 525 | "engines": { 526 | "node": ">=14" 527 | } 528 | }, 529 | "node_modules/@types/prop-types": { 530 | "version": "15.7.5", 531 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 532 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 533 | "dev": true 534 | }, 535 | "node_modules/@types/react": { 536 | "version": "18.0.24", 537 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.24.tgz", 538 | "integrity": "sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q==", 539 | "dev": true, 540 | "dependencies": { 541 | "@types/prop-types": "*", 542 | "@types/scheduler": "*", 543 | "csstype": "^3.0.2" 544 | } 545 | }, 546 | "node_modules/@types/react-dom": { 547 | "version": "18.0.8", 548 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz", 549 | "integrity": "sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==", 550 | "dev": true, 551 | "dependencies": { 552 | "@types/react": "*" 553 | } 554 | }, 555 | "node_modules/@types/scheduler": { 556 | "version": "0.16.2", 557 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 558 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 559 | "dev": true 560 | }, 561 | "node_modules/@vitejs/plugin-react": { 562 | "version": "2.2.0", 563 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz", 564 | "integrity": "sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==", 565 | "dev": true, 566 | "dependencies": { 567 | "@babel/core": "^7.19.6", 568 | "@babel/plugin-transform-react-jsx": "^7.19.0", 569 | "@babel/plugin-transform-react-jsx-development": "^7.18.6", 570 | "@babel/plugin-transform-react-jsx-self": "^7.18.6", 571 | "@babel/plugin-transform-react-jsx-source": "^7.19.6", 572 | "magic-string": "^0.26.7", 573 | "react-refresh": "^0.14.0" 574 | }, 575 | "engines": { 576 | "node": "^14.18.0 || >=16.0.0" 577 | }, 578 | "peerDependencies": { 579 | "vite": "^3.0.0" 580 | } 581 | }, 582 | "node_modules/ansi-styles": { 583 | "version": "3.2.1", 584 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 585 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 586 | "dependencies": { 587 | "color-convert": "^1.9.0" 588 | }, 589 | "engines": { 590 | "node": ">=4" 591 | } 592 | }, 593 | "node_modules/array-union": { 594 | "version": "1.0.2", 595 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 596 | "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", 597 | "dev": true, 598 | "dependencies": { 599 | "array-uniq": "^1.0.1" 600 | }, 601 | "engines": { 602 | "node": ">=0.10.0" 603 | } 604 | }, 605 | "node_modules/array-uniq": { 606 | "version": "1.0.3", 607 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 608 | "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", 609 | "dev": true, 610 | "engines": { 611 | "node": ">=0.10.0" 612 | } 613 | }, 614 | "node_modules/async": { 615 | "version": "2.6.4", 616 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", 617 | "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", 618 | "dev": true, 619 | "dependencies": { 620 | "lodash": "^4.17.14" 621 | } 622 | }, 623 | "node_modules/babel-plugin-styled-components": { 624 | "version": "2.0.7", 625 | "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", 626 | "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", 627 | "dependencies": { 628 | "@babel/helper-annotate-as-pure": "^7.16.0", 629 | "@babel/helper-module-imports": "^7.16.0", 630 | "babel-plugin-syntax-jsx": "^6.18.0", 631 | "lodash": "^4.17.11", 632 | "picomatch": "^2.3.0" 633 | }, 634 | "peerDependencies": { 635 | "styled-components": ">= 2" 636 | } 637 | }, 638 | "node_modules/babel-plugin-syntax-jsx": { 639 | "version": "6.18.0", 640 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", 641 | "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" 642 | }, 643 | "node_modules/balanced-match": { 644 | "version": "1.0.2", 645 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 646 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 647 | "dev": true 648 | }, 649 | "node_modules/brace-expansion": { 650 | "version": "1.1.11", 651 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 652 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 653 | "dev": true, 654 | "dependencies": { 655 | "balanced-match": "^1.0.0", 656 | "concat-map": "0.0.1" 657 | } 658 | }, 659 | "node_modules/browserslist": { 660 | "version": "4.21.4", 661 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", 662 | "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", 663 | "dev": true, 664 | "funding": [ 665 | { 666 | "type": "opencollective", 667 | "url": "https://opencollective.com/browserslist" 668 | }, 669 | { 670 | "type": "tidelift", 671 | "url": "https://tidelift.com/funding/github/npm/browserslist" 672 | } 673 | ], 674 | "dependencies": { 675 | "caniuse-lite": "^1.0.30001400", 676 | "electron-to-chromium": "^1.4.251", 677 | "node-releases": "^2.0.6", 678 | "update-browserslist-db": "^1.0.9" 679 | }, 680 | "bin": { 681 | "browserslist": "cli.js" 682 | }, 683 | "engines": { 684 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 685 | } 686 | }, 687 | "node_modules/camelize": { 688 | "version": "1.0.1", 689 | "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", 690 | "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", 691 | "funding": { 692 | "url": "https://github.com/sponsors/ljharb" 693 | } 694 | }, 695 | "node_modules/caniuse-lite": { 696 | "version": "1.0.30001429", 697 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz", 698 | "integrity": "sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg==", 699 | "dev": true, 700 | "funding": [ 701 | { 702 | "type": "opencollective", 703 | "url": "https://opencollective.com/browserslist" 704 | }, 705 | { 706 | "type": "tidelift", 707 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 708 | } 709 | ] 710 | }, 711 | "node_modules/chalk": { 712 | "version": "2.4.2", 713 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 714 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 715 | "dependencies": { 716 | "ansi-styles": "^3.2.1", 717 | "escape-string-regexp": "^1.0.5", 718 | "supports-color": "^5.3.0" 719 | }, 720 | "engines": { 721 | "node": ">=4" 722 | } 723 | }, 724 | "node_modules/color-convert": { 725 | "version": "1.9.3", 726 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 727 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 728 | "dependencies": { 729 | "color-name": "1.1.3" 730 | } 731 | }, 732 | "node_modules/color-name": { 733 | "version": "1.1.3", 734 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 735 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 736 | }, 737 | "node_modules/commander": { 738 | "version": "2.20.3", 739 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 740 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 741 | "dev": true 742 | }, 743 | "node_modules/commondir": { 744 | "version": "1.0.1", 745 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 746 | "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", 747 | "dev": true 748 | }, 749 | "node_modules/concat-map": { 750 | "version": "0.0.1", 751 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 752 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 753 | "dev": true 754 | }, 755 | "node_modules/convert-source-map": { 756 | "version": "1.9.0", 757 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 758 | "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", 759 | "dev": true 760 | }, 761 | "node_modules/css-color-keywords": { 762 | "version": "1.0.0", 763 | "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", 764 | "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", 765 | "engines": { 766 | "node": ">=4" 767 | } 768 | }, 769 | "node_modules/css-to-react-native": { 770 | "version": "3.0.0", 771 | "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", 772 | "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", 773 | "dependencies": { 774 | "camelize": "^1.0.0", 775 | "css-color-keywords": "^1.0.0", 776 | "postcss-value-parser": "^4.0.2" 777 | } 778 | }, 779 | "node_modules/csstype": { 780 | "version": "3.1.1", 781 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", 782 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", 783 | "dev": true 784 | }, 785 | "node_modules/debug": { 786 | "version": "4.3.4", 787 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 788 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 789 | "dependencies": { 790 | "ms": "2.1.2" 791 | }, 792 | "engines": { 793 | "node": ">=6.0" 794 | }, 795 | "peerDependenciesMeta": { 796 | "supports-color": { 797 | "optional": true 798 | } 799 | } 800 | }, 801 | "node_modules/electron-to-chromium": { 802 | "version": "1.4.284", 803 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", 804 | "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", 805 | "dev": true 806 | }, 807 | "node_modules/email-addresses": { 808 | "version": "3.1.0", 809 | "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", 810 | "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", 811 | "dev": true 812 | }, 813 | "node_modules/esbuild": { 814 | "version": "0.15.12", 815 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz", 816 | "integrity": "sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==", 817 | "dev": true, 818 | "hasInstallScript": true, 819 | "bin": { 820 | "esbuild": "bin/esbuild" 821 | }, 822 | "engines": { 823 | "node": ">=12" 824 | }, 825 | "optionalDependencies": { 826 | "@esbuild/android-arm": "0.15.12", 827 | "@esbuild/linux-loong64": "0.15.12", 828 | "esbuild-android-64": "0.15.12", 829 | "esbuild-android-arm64": "0.15.12", 830 | "esbuild-darwin-64": "0.15.12", 831 | "esbuild-darwin-arm64": "0.15.12", 832 | "esbuild-freebsd-64": "0.15.12", 833 | "esbuild-freebsd-arm64": "0.15.12", 834 | "esbuild-linux-32": "0.15.12", 835 | "esbuild-linux-64": "0.15.12", 836 | "esbuild-linux-arm": "0.15.12", 837 | "esbuild-linux-arm64": "0.15.12", 838 | "esbuild-linux-mips64le": "0.15.12", 839 | "esbuild-linux-ppc64le": "0.15.12", 840 | "esbuild-linux-riscv64": "0.15.12", 841 | "esbuild-linux-s390x": "0.15.12", 842 | "esbuild-netbsd-64": "0.15.12", 843 | "esbuild-openbsd-64": "0.15.12", 844 | "esbuild-sunos-64": "0.15.12", 845 | "esbuild-windows-32": "0.15.12", 846 | "esbuild-windows-64": "0.15.12", 847 | "esbuild-windows-arm64": "0.15.12" 848 | } 849 | }, 850 | "node_modules/esbuild-android-64": { 851 | "version": "0.15.12", 852 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz", 853 | "integrity": "sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==", 854 | "cpu": [ 855 | "x64" 856 | ], 857 | "dev": true, 858 | "optional": true, 859 | "os": [ 860 | "android" 861 | ], 862 | "engines": { 863 | "node": ">=12" 864 | } 865 | }, 866 | "node_modules/esbuild-android-arm64": { 867 | "version": "0.15.12", 868 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz", 869 | "integrity": "sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==", 870 | "cpu": [ 871 | "arm64" 872 | ], 873 | "dev": true, 874 | "optional": true, 875 | "os": [ 876 | "android" 877 | ], 878 | "engines": { 879 | "node": ">=12" 880 | } 881 | }, 882 | "node_modules/esbuild-darwin-64": { 883 | "version": "0.15.12", 884 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz", 885 | "integrity": "sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==", 886 | "cpu": [ 887 | "x64" 888 | ], 889 | "dev": true, 890 | "optional": true, 891 | "os": [ 892 | "darwin" 893 | ], 894 | "engines": { 895 | "node": ">=12" 896 | } 897 | }, 898 | "node_modules/esbuild-darwin-arm64": { 899 | "version": "0.15.12", 900 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz", 901 | "integrity": "sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==", 902 | "cpu": [ 903 | "arm64" 904 | ], 905 | "dev": true, 906 | "optional": true, 907 | "os": [ 908 | "darwin" 909 | ], 910 | "engines": { 911 | "node": ">=12" 912 | } 913 | }, 914 | "node_modules/esbuild-freebsd-64": { 915 | "version": "0.15.12", 916 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz", 917 | "integrity": "sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==", 918 | "cpu": [ 919 | "x64" 920 | ], 921 | "dev": true, 922 | "optional": true, 923 | "os": [ 924 | "freebsd" 925 | ], 926 | "engines": { 927 | "node": ">=12" 928 | } 929 | }, 930 | "node_modules/esbuild-freebsd-arm64": { 931 | "version": "0.15.12", 932 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz", 933 | "integrity": "sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==", 934 | "cpu": [ 935 | "arm64" 936 | ], 937 | "dev": true, 938 | "optional": true, 939 | "os": [ 940 | "freebsd" 941 | ], 942 | "engines": { 943 | "node": ">=12" 944 | } 945 | }, 946 | "node_modules/esbuild-linux-32": { 947 | "version": "0.15.12", 948 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz", 949 | "integrity": "sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==", 950 | "cpu": [ 951 | "ia32" 952 | ], 953 | "dev": true, 954 | "optional": true, 955 | "os": [ 956 | "linux" 957 | ], 958 | "engines": { 959 | "node": ">=12" 960 | } 961 | }, 962 | "node_modules/esbuild-linux-64": { 963 | "version": "0.15.12", 964 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz", 965 | "integrity": "sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==", 966 | "cpu": [ 967 | "x64" 968 | ], 969 | "dev": true, 970 | "optional": true, 971 | "os": [ 972 | "linux" 973 | ], 974 | "engines": { 975 | "node": ">=12" 976 | } 977 | }, 978 | "node_modules/esbuild-linux-arm": { 979 | "version": "0.15.12", 980 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz", 981 | "integrity": "sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==", 982 | "cpu": [ 983 | "arm" 984 | ], 985 | "dev": true, 986 | "optional": true, 987 | "os": [ 988 | "linux" 989 | ], 990 | "engines": { 991 | "node": ">=12" 992 | } 993 | }, 994 | "node_modules/esbuild-linux-arm64": { 995 | "version": "0.15.12", 996 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz", 997 | "integrity": "sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==", 998 | "cpu": [ 999 | "arm64" 1000 | ], 1001 | "dev": true, 1002 | "optional": true, 1003 | "os": [ 1004 | "linux" 1005 | ], 1006 | "engines": { 1007 | "node": ">=12" 1008 | } 1009 | }, 1010 | "node_modules/esbuild-linux-mips64le": { 1011 | "version": "0.15.12", 1012 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz", 1013 | "integrity": "sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==", 1014 | "cpu": [ 1015 | "mips64el" 1016 | ], 1017 | "dev": true, 1018 | "optional": true, 1019 | "os": [ 1020 | "linux" 1021 | ], 1022 | "engines": { 1023 | "node": ">=12" 1024 | } 1025 | }, 1026 | "node_modules/esbuild-linux-ppc64le": { 1027 | "version": "0.15.12", 1028 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz", 1029 | "integrity": "sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==", 1030 | "cpu": [ 1031 | "ppc64" 1032 | ], 1033 | "dev": true, 1034 | "optional": true, 1035 | "os": [ 1036 | "linux" 1037 | ], 1038 | "engines": { 1039 | "node": ">=12" 1040 | } 1041 | }, 1042 | "node_modules/esbuild-linux-riscv64": { 1043 | "version": "0.15.12", 1044 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz", 1045 | "integrity": "sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==", 1046 | "cpu": [ 1047 | "riscv64" 1048 | ], 1049 | "dev": true, 1050 | "optional": true, 1051 | "os": [ 1052 | "linux" 1053 | ], 1054 | "engines": { 1055 | "node": ">=12" 1056 | } 1057 | }, 1058 | "node_modules/esbuild-linux-s390x": { 1059 | "version": "0.15.12", 1060 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz", 1061 | "integrity": "sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==", 1062 | "cpu": [ 1063 | "s390x" 1064 | ], 1065 | "dev": true, 1066 | "optional": true, 1067 | "os": [ 1068 | "linux" 1069 | ], 1070 | "engines": { 1071 | "node": ">=12" 1072 | } 1073 | }, 1074 | "node_modules/esbuild-netbsd-64": { 1075 | "version": "0.15.12", 1076 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz", 1077 | "integrity": "sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==", 1078 | "cpu": [ 1079 | "x64" 1080 | ], 1081 | "dev": true, 1082 | "optional": true, 1083 | "os": [ 1084 | "netbsd" 1085 | ], 1086 | "engines": { 1087 | "node": ">=12" 1088 | } 1089 | }, 1090 | "node_modules/esbuild-openbsd-64": { 1091 | "version": "0.15.12", 1092 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz", 1093 | "integrity": "sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==", 1094 | "cpu": [ 1095 | "x64" 1096 | ], 1097 | "dev": true, 1098 | "optional": true, 1099 | "os": [ 1100 | "openbsd" 1101 | ], 1102 | "engines": { 1103 | "node": ">=12" 1104 | } 1105 | }, 1106 | "node_modules/esbuild-sunos-64": { 1107 | "version": "0.15.12", 1108 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz", 1109 | "integrity": "sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==", 1110 | "cpu": [ 1111 | "x64" 1112 | ], 1113 | "dev": true, 1114 | "optional": true, 1115 | "os": [ 1116 | "sunos" 1117 | ], 1118 | "engines": { 1119 | "node": ">=12" 1120 | } 1121 | }, 1122 | "node_modules/esbuild-windows-32": { 1123 | "version": "0.15.12", 1124 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz", 1125 | "integrity": "sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==", 1126 | "cpu": [ 1127 | "ia32" 1128 | ], 1129 | "dev": true, 1130 | "optional": true, 1131 | "os": [ 1132 | "win32" 1133 | ], 1134 | "engines": { 1135 | "node": ">=12" 1136 | } 1137 | }, 1138 | "node_modules/esbuild-windows-64": { 1139 | "version": "0.15.12", 1140 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz", 1141 | "integrity": "sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==", 1142 | "cpu": [ 1143 | "x64" 1144 | ], 1145 | "dev": true, 1146 | "optional": true, 1147 | "os": [ 1148 | "win32" 1149 | ], 1150 | "engines": { 1151 | "node": ">=12" 1152 | } 1153 | }, 1154 | "node_modules/esbuild-windows-arm64": { 1155 | "version": "0.15.12", 1156 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz", 1157 | "integrity": "sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==", 1158 | "cpu": [ 1159 | "arm64" 1160 | ], 1161 | "dev": true, 1162 | "optional": true, 1163 | "os": [ 1164 | "win32" 1165 | ], 1166 | "engines": { 1167 | "node": ">=12" 1168 | } 1169 | }, 1170 | "node_modules/escalade": { 1171 | "version": "3.1.1", 1172 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1173 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1174 | "dev": true, 1175 | "engines": { 1176 | "node": ">=6" 1177 | } 1178 | }, 1179 | "node_modules/escape-string-regexp": { 1180 | "version": "1.0.5", 1181 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1182 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 1183 | "engines": { 1184 | "node": ">=0.8.0" 1185 | } 1186 | }, 1187 | "node_modules/filename-reserved-regex": { 1188 | "version": "2.0.0", 1189 | "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", 1190 | "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", 1191 | "dev": true, 1192 | "engines": { 1193 | "node": ">=4" 1194 | } 1195 | }, 1196 | "node_modules/filenamify": { 1197 | "version": "4.3.0", 1198 | "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", 1199 | "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", 1200 | "dev": true, 1201 | "dependencies": { 1202 | "filename-reserved-regex": "^2.0.0", 1203 | "strip-outer": "^1.0.1", 1204 | "trim-repeated": "^1.0.0" 1205 | }, 1206 | "engines": { 1207 | "node": ">=8" 1208 | }, 1209 | "funding": { 1210 | "url": "https://github.com/sponsors/sindresorhus" 1211 | } 1212 | }, 1213 | "node_modules/find-cache-dir": { 1214 | "version": "3.3.2", 1215 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", 1216 | "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", 1217 | "dev": true, 1218 | "dependencies": { 1219 | "commondir": "^1.0.1", 1220 | "make-dir": "^3.0.2", 1221 | "pkg-dir": "^4.1.0" 1222 | }, 1223 | "engines": { 1224 | "node": ">=8" 1225 | }, 1226 | "funding": { 1227 | "url": "https://github.com/avajs/find-cache-dir?sponsor=1" 1228 | } 1229 | }, 1230 | "node_modules/find-up": { 1231 | "version": "4.1.0", 1232 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 1233 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 1234 | "dev": true, 1235 | "dependencies": { 1236 | "locate-path": "^5.0.0", 1237 | "path-exists": "^4.0.0" 1238 | }, 1239 | "engines": { 1240 | "node": ">=8" 1241 | } 1242 | }, 1243 | "node_modules/fs-extra": { 1244 | "version": "8.1.0", 1245 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 1246 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 1247 | "dev": true, 1248 | "dependencies": { 1249 | "graceful-fs": "^4.2.0", 1250 | "jsonfile": "^4.0.0", 1251 | "universalify": "^0.1.0" 1252 | }, 1253 | "engines": { 1254 | "node": ">=6 <7 || >=8" 1255 | } 1256 | }, 1257 | "node_modules/fs.realpath": { 1258 | "version": "1.0.0", 1259 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1260 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1261 | "dev": true 1262 | }, 1263 | "node_modules/fsevents": { 1264 | "version": "2.3.2", 1265 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1266 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1267 | "dev": true, 1268 | "hasInstallScript": true, 1269 | "optional": true, 1270 | "os": [ 1271 | "darwin" 1272 | ], 1273 | "engines": { 1274 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1275 | } 1276 | }, 1277 | "node_modules/function-bind": { 1278 | "version": "1.1.1", 1279 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1280 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1281 | "dev": true 1282 | }, 1283 | "node_modules/gensync": { 1284 | "version": "1.0.0-beta.2", 1285 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1286 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1287 | "dev": true, 1288 | "engines": { 1289 | "node": ">=6.9.0" 1290 | } 1291 | }, 1292 | "node_modules/gh-pages": { 1293 | "version": "4.0.0", 1294 | "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-4.0.0.tgz", 1295 | "integrity": "sha512-p8S0T3aGJc68MtwOcZusul5qPSNZCalap3NWbhRUZYu1YOdp+EjZ+4kPmRM8h3NNRdqw00yuevRjlkuSzCn7iQ==", 1296 | "dev": true, 1297 | "dependencies": { 1298 | "async": "^2.6.1", 1299 | "commander": "^2.18.0", 1300 | "email-addresses": "^3.0.1", 1301 | "filenamify": "^4.3.0", 1302 | "find-cache-dir": "^3.3.1", 1303 | "fs-extra": "^8.1.0", 1304 | "globby": "^6.1.0" 1305 | }, 1306 | "bin": { 1307 | "gh-pages": "bin/gh-pages.js", 1308 | "gh-pages-clean": "bin/gh-pages-clean.js" 1309 | }, 1310 | "engines": { 1311 | "node": ">=10" 1312 | } 1313 | }, 1314 | "node_modules/glob": { 1315 | "version": "7.2.3", 1316 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1317 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1318 | "dev": true, 1319 | "dependencies": { 1320 | "fs.realpath": "^1.0.0", 1321 | "inflight": "^1.0.4", 1322 | "inherits": "2", 1323 | "minimatch": "^3.1.1", 1324 | "once": "^1.3.0", 1325 | "path-is-absolute": "^1.0.0" 1326 | }, 1327 | "engines": { 1328 | "node": "*" 1329 | }, 1330 | "funding": { 1331 | "url": "https://github.com/sponsors/isaacs" 1332 | } 1333 | }, 1334 | "node_modules/globals": { 1335 | "version": "11.12.0", 1336 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1337 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1338 | "engines": { 1339 | "node": ">=4" 1340 | } 1341 | }, 1342 | "node_modules/globby": { 1343 | "version": "6.1.0", 1344 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", 1345 | "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", 1346 | "dev": true, 1347 | "dependencies": { 1348 | "array-union": "^1.0.1", 1349 | "glob": "^7.0.3", 1350 | "object-assign": "^4.0.1", 1351 | "pify": "^2.0.0", 1352 | "pinkie-promise": "^2.0.0" 1353 | }, 1354 | "engines": { 1355 | "node": ">=0.10.0" 1356 | } 1357 | }, 1358 | "node_modules/graceful-fs": { 1359 | "version": "4.2.10", 1360 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 1361 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 1362 | "dev": true 1363 | }, 1364 | "node_modules/has": { 1365 | "version": "1.0.3", 1366 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1367 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1368 | "dev": true, 1369 | "dependencies": { 1370 | "function-bind": "^1.1.1" 1371 | }, 1372 | "engines": { 1373 | "node": ">= 0.4.0" 1374 | } 1375 | }, 1376 | "node_modules/has-flag": { 1377 | "version": "3.0.0", 1378 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1379 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1380 | "engines": { 1381 | "node": ">=4" 1382 | } 1383 | }, 1384 | "node_modules/hoist-non-react-statics": { 1385 | "version": "3.3.2", 1386 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 1387 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 1388 | "dependencies": { 1389 | "react-is": "^16.7.0" 1390 | } 1391 | }, 1392 | "node_modules/hoist-non-react-statics/node_modules/react-is": { 1393 | "version": "16.13.1", 1394 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 1395 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 1396 | }, 1397 | "node_modules/inflight": { 1398 | "version": "1.0.6", 1399 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1400 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1401 | "dev": true, 1402 | "dependencies": { 1403 | "once": "^1.3.0", 1404 | "wrappy": "1" 1405 | } 1406 | }, 1407 | "node_modules/inherits": { 1408 | "version": "2.0.4", 1409 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1410 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1411 | "dev": true 1412 | }, 1413 | "node_modules/is-core-module": { 1414 | "version": "2.11.0", 1415 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 1416 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 1417 | "dev": true, 1418 | "dependencies": { 1419 | "has": "^1.0.3" 1420 | }, 1421 | "funding": { 1422 | "url": "https://github.com/sponsors/ljharb" 1423 | } 1424 | }, 1425 | "node_modules/js-tokens": { 1426 | "version": "4.0.0", 1427 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1428 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1429 | }, 1430 | "node_modules/jsesc": { 1431 | "version": "2.5.2", 1432 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1433 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1434 | "bin": { 1435 | "jsesc": "bin/jsesc" 1436 | }, 1437 | "engines": { 1438 | "node": ">=4" 1439 | } 1440 | }, 1441 | "node_modules/json5": { 1442 | "version": "2.2.1", 1443 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 1444 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 1445 | "dev": true, 1446 | "bin": { 1447 | "json5": "lib/cli.js" 1448 | }, 1449 | "engines": { 1450 | "node": ">=6" 1451 | } 1452 | }, 1453 | "node_modules/jsonfile": { 1454 | "version": "4.0.0", 1455 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 1456 | "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", 1457 | "dev": true, 1458 | "optionalDependencies": { 1459 | "graceful-fs": "^4.1.6" 1460 | } 1461 | }, 1462 | "node_modules/locate-path": { 1463 | "version": "5.0.0", 1464 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1465 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1466 | "dev": true, 1467 | "dependencies": { 1468 | "p-locate": "^4.1.0" 1469 | }, 1470 | "engines": { 1471 | "node": ">=8" 1472 | } 1473 | }, 1474 | "node_modules/lodash": { 1475 | "version": "4.17.21", 1476 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1477 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 1478 | }, 1479 | "node_modules/loose-envify": { 1480 | "version": "1.4.0", 1481 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1482 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1483 | "dependencies": { 1484 | "js-tokens": "^3.0.0 || ^4.0.0" 1485 | }, 1486 | "bin": { 1487 | "loose-envify": "cli.js" 1488 | } 1489 | }, 1490 | "node_modules/magic-string": { 1491 | "version": "0.26.7", 1492 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", 1493 | "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", 1494 | "dev": true, 1495 | "dependencies": { 1496 | "sourcemap-codec": "^1.4.8" 1497 | }, 1498 | "engines": { 1499 | "node": ">=12" 1500 | } 1501 | }, 1502 | "node_modules/make-dir": { 1503 | "version": "3.1.0", 1504 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 1505 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 1506 | "dev": true, 1507 | "dependencies": { 1508 | "semver": "^6.0.0" 1509 | }, 1510 | "engines": { 1511 | "node": ">=8" 1512 | }, 1513 | "funding": { 1514 | "url": "https://github.com/sponsors/sindresorhus" 1515 | } 1516 | }, 1517 | "node_modules/minimatch": { 1518 | "version": "3.1.2", 1519 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1520 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1521 | "dev": true, 1522 | "dependencies": { 1523 | "brace-expansion": "^1.1.7" 1524 | }, 1525 | "engines": { 1526 | "node": "*" 1527 | } 1528 | }, 1529 | "node_modules/ms": { 1530 | "version": "2.1.2", 1531 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1532 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1533 | }, 1534 | "node_modules/nanoid": { 1535 | "version": "3.3.4", 1536 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1537 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1538 | "dev": true, 1539 | "bin": { 1540 | "nanoid": "bin/nanoid.cjs" 1541 | }, 1542 | "engines": { 1543 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1544 | } 1545 | }, 1546 | "node_modules/node-releases": { 1547 | "version": "2.0.6", 1548 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", 1549 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", 1550 | "dev": true 1551 | }, 1552 | "node_modules/object-assign": { 1553 | "version": "4.1.1", 1554 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1555 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1556 | "dev": true, 1557 | "engines": { 1558 | "node": ">=0.10.0" 1559 | } 1560 | }, 1561 | "node_modules/once": { 1562 | "version": "1.4.0", 1563 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1564 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1565 | "dev": true, 1566 | "dependencies": { 1567 | "wrappy": "1" 1568 | } 1569 | }, 1570 | "node_modules/p-limit": { 1571 | "version": "2.3.0", 1572 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1573 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1574 | "dev": true, 1575 | "dependencies": { 1576 | "p-try": "^2.0.0" 1577 | }, 1578 | "engines": { 1579 | "node": ">=6" 1580 | }, 1581 | "funding": { 1582 | "url": "https://github.com/sponsors/sindresorhus" 1583 | } 1584 | }, 1585 | "node_modules/p-locate": { 1586 | "version": "4.1.0", 1587 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1588 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1589 | "dev": true, 1590 | "dependencies": { 1591 | "p-limit": "^2.2.0" 1592 | }, 1593 | "engines": { 1594 | "node": ">=8" 1595 | } 1596 | }, 1597 | "node_modules/p-try": { 1598 | "version": "2.2.0", 1599 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1600 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1601 | "dev": true, 1602 | "engines": { 1603 | "node": ">=6" 1604 | } 1605 | }, 1606 | "node_modules/path-exists": { 1607 | "version": "4.0.0", 1608 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1609 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1610 | "dev": true, 1611 | "engines": { 1612 | "node": ">=8" 1613 | } 1614 | }, 1615 | "node_modules/path-is-absolute": { 1616 | "version": "1.0.1", 1617 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1618 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1619 | "dev": true, 1620 | "engines": { 1621 | "node": ">=0.10.0" 1622 | } 1623 | }, 1624 | "node_modules/path-parse": { 1625 | "version": "1.0.7", 1626 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1627 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1628 | "dev": true 1629 | }, 1630 | "node_modules/picocolors": { 1631 | "version": "1.0.0", 1632 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1633 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1634 | "dev": true 1635 | }, 1636 | "node_modules/picomatch": { 1637 | "version": "2.3.1", 1638 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1639 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1640 | "engines": { 1641 | "node": ">=8.6" 1642 | }, 1643 | "funding": { 1644 | "url": "https://github.com/sponsors/jonschlinkert" 1645 | } 1646 | }, 1647 | "node_modules/pify": { 1648 | "version": "2.3.0", 1649 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1650 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 1651 | "dev": true, 1652 | "engines": { 1653 | "node": ">=0.10.0" 1654 | } 1655 | }, 1656 | "node_modules/pinkie": { 1657 | "version": "2.0.4", 1658 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1659 | "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", 1660 | "dev": true, 1661 | "engines": { 1662 | "node": ">=0.10.0" 1663 | } 1664 | }, 1665 | "node_modules/pinkie-promise": { 1666 | "version": "2.0.1", 1667 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1668 | "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", 1669 | "dev": true, 1670 | "dependencies": { 1671 | "pinkie": "^2.0.0" 1672 | }, 1673 | "engines": { 1674 | "node": ">=0.10.0" 1675 | } 1676 | }, 1677 | "node_modules/pkg-dir": { 1678 | "version": "4.2.0", 1679 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 1680 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 1681 | "dev": true, 1682 | "dependencies": { 1683 | "find-up": "^4.0.0" 1684 | }, 1685 | "engines": { 1686 | "node": ">=8" 1687 | } 1688 | }, 1689 | "node_modules/postcss": { 1690 | "version": "8.4.18", 1691 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", 1692 | "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", 1693 | "dev": true, 1694 | "funding": [ 1695 | { 1696 | "type": "opencollective", 1697 | "url": "https://opencollective.com/postcss/" 1698 | }, 1699 | { 1700 | "type": "tidelift", 1701 | "url": "https://tidelift.com/funding/github/npm/postcss" 1702 | } 1703 | ], 1704 | "dependencies": { 1705 | "nanoid": "^3.3.4", 1706 | "picocolors": "^1.0.0", 1707 | "source-map-js": "^1.0.2" 1708 | }, 1709 | "engines": { 1710 | "node": "^10 || ^12 || >=14" 1711 | } 1712 | }, 1713 | "node_modules/postcss-value-parser": { 1714 | "version": "4.2.0", 1715 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 1716 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" 1717 | }, 1718 | "node_modules/react": { 1719 | "version": "18.2.0", 1720 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 1721 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 1722 | "dependencies": { 1723 | "loose-envify": "^1.1.0" 1724 | }, 1725 | "engines": { 1726 | "node": ">=0.10.0" 1727 | } 1728 | }, 1729 | "node_modules/react-dom": { 1730 | "version": "18.2.0", 1731 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 1732 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 1733 | "dependencies": { 1734 | "loose-envify": "^1.1.0", 1735 | "scheduler": "^0.23.0" 1736 | }, 1737 | "peerDependencies": { 1738 | "react": "^18.2.0" 1739 | } 1740 | }, 1741 | "node_modules/react-is": { 1742 | "version": "18.2.0", 1743 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", 1744 | "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", 1745 | "peer": true 1746 | }, 1747 | "node_modules/react-refresh": { 1748 | "version": "0.14.0", 1749 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", 1750 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", 1751 | "dev": true, 1752 | "engines": { 1753 | "node": ">=0.10.0" 1754 | } 1755 | }, 1756 | "node_modules/react-router": { 1757 | "version": "6.4.3", 1758 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.3.tgz", 1759 | "integrity": "sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==", 1760 | "dependencies": { 1761 | "@remix-run/router": "1.0.3" 1762 | }, 1763 | "engines": { 1764 | "node": ">=14" 1765 | }, 1766 | "peerDependencies": { 1767 | "react": ">=16.8" 1768 | } 1769 | }, 1770 | "node_modules/react-router-dom": { 1771 | "version": "6.4.3", 1772 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.3.tgz", 1773 | "integrity": "sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==", 1774 | "dependencies": { 1775 | "@remix-run/router": "1.0.3", 1776 | "react-router": "6.4.3" 1777 | }, 1778 | "engines": { 1779 | "node": ">=14" 1780 | }, 1781 | "peerDependencies": { 1782 | "react": ">=16.8", 1783 | "react-dom": ">=16.8" 1784 | } 1785 | }, 1786 | "node_modules/resolve": { 1787 | "version": "1.22.1", 1788 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1789 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1790 | "dev": true, 1791 | "dependencies": { 1792 | "is-core-module": "^2.9.0", 1793 | "path-parse": "^1.0.7", 1794 | "supports-preserve-symlinks-flag": "^1.0.0" 1795 | }, 1796 | "bin": { 1797 | "resolve": "bin/resolve" 1798 | }, 1799 | "funding": { 1800 | "url": "https://github.com/sponsors/ljharb" 1801 | } 1802 | }, 1803 | "node_modules/rollup": { 1804 | "version": "2.79.1", 1805 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", 1806 | "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", 1807 | "dev": true, 1808 | "bin": { 1809 | "rollup": "dist/bin/rollup" 1810 | }, 1811 | "engines": { 1812 | "node": ">=10.0.0" 1813 | }, 1814 | "optionalDependencies": { 1815 | "fsevents": "~2.3.2" 1816 | } 1817 | }, 1818 | "node_modules/scheduler": { 1819 | "version": "0.23.0", 1820 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 1821 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 1822 | "dependencies": { 1823 | "loose-envify": "^1.1.0" 1824 | } 1825 | }, 1826 | "node_modules/semver": { 1827 | "version": "6.3.0", 1828 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1829 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1830 | "dev": true, 1831 | "bin": { 1832 | "semver": "bin/semver.js" 1833 | } 1834 | }, 1835 | "node_modules/shallowequal": { 1836 | "version": "1.1.0", 1837 | "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", 1838 | "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" 1839 | }, 1840 | "node_modules/source-map-js": { 1841 | "version": "1.0.2", 1842 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1843 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1844 | "dev": true, 1845 | "engines": { 1846 | "node": ">=0.10.0" 1847 | } 1848 | }, 1849 | "node_modules/sourcemap-codec": { 1850 | "version": "1.4.8", 1851 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1852 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 1853 | "dev": true 1854 | }, 1855 | "node_modules/strip-outer": { 1856 | "version": "1.0.1", 1857 | "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", 1858 | "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", 1859 | "dev": true, 1860 | "dependencies": { 1861 | "escape-string-regexp": "^1.0.2" 1862 | }, 1863 | "engines": { 1864 | "node": ">=0.10.0" 1865 | } 1866 | }, 1867 | "node_modules/styled-components": { 1868 | "version": "5.3.6", 1869 | "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", 1870 | "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", 1871 | "hasInstallScript": true, 1872 | "dependencies": { 1873 | "@babel/helper-module-imports": "^7.0.0", 1874 | "@babel/traverse": "^7.4.5", 1875 | "@emotion/is-prop-valid": "^1.1.0", 1876 | "@emotion/stylis": "^0.8.4", 1877 | "@emotion/unitless": "^0.7.4", 1878 | "babel-plugin-styled-components": ">= 1.12.0", 1879 | "css-to-react-native": "^3.0.0", 1880 | "hoist-non-react-statics": "^3.0.0", 1881 | "shallowequal": "^1.1.0", 1882 | "supports-color": "^5.5.0" 1883 | }, 1884 | "engines": { 1885 | "node": ">=10" 1886 | }, 1887 | "funding": { 1888 | "type": "opencollective", 1889 | "url": "https://opencollective.com/styled-components" 1890 | }, 1891 | "peerDependencies": { 1892 | "react": ">= 16.8.0", 1893 | "react-dom": ">= 16.8.0", 1894 | "react-is": ">= 16.8.0" 1895 | } 1896 | }, 1897 | "node_modules/supports-color": { 1898 | "version": "5.5.0", 1899 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1900 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1901 | "dependencies": { 1902 | "has-flag": "^3.0.0" 1903 | }, 1904 | "engines": { 1905 | "node": ">=4" 1906 | } 1907 | }, 1908 | "node_modules/supports-preserve-symlinks-flag": { 1909 | "version": "1.0.0", 1910 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1911 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1912 | "dev": true, 1913 | "engines": { 1914 | "node": ">= 0.4" 1915 | }, 1916 | "funding": { 1917 | "url": "https://github.com/sponsors/ljharb" 1918 | } 1919 | }, 1920 | "node_modules/to-fast-properties": { 1921 | "version": "2.0.0", 1922 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 1923 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 1924 | "engines": { 1925 | "node": ">=4" 1926 | } 1927 | }, 1928 | "node_modules/trim-repeated": { 1929 | "version": "1.0.0", 1930 | "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", 1931 | "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", 1932 | "dev": true, 1933 | "dependencies": { 1934 | "escape-string-regexp": "^1.0.2" 1935 | }, 1936 | "engines": { 1937 | "node": ">=0.10.0" 1938 | } 1939 | }, 1940 | "node_modules/universalify": { 1941 | "version": "0.1.2", 1942 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 1943 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 1944 | "dev": true, 1945 | "engines": { 1946 | "node": ">= 4.0.0" 1947 | } 1948 | }, 1949 | "node_modules/update-browserslist-db": { 1950 | "version": "1.0.10", 1951 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", 1952 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", 1953 | "dev": true, 1954 | "funding": [ 1955 | { 1956 | "type": "opencollective", 1957 | "url": "https://opencollective.com/browserslist" 1958 | }, 1959 | { 1960 | "type": "tidelift", 1961 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1962 | } 1963 | ], 1964 | "dependencies": { 1965 | "escalade": "^3.1.1", 1966 | "picocolors": "^1.0.0" 1967 | }, 1968 | "bin": { 1969 | "browserslist-lint": "cli.js" 1970 | }, 1971 | "peerDependencies": { 1972 | "browserslist": ">= 4.21.0" 1973 | } 1974 | }, 1975 | "node_modules/vite": { 1976 | "version": "3.2.2", 1977 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", 1978 | "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", 1979 | "dev": true, 1980 | "dependencies": { 1981 | "esbuild": "^0.15.9", 1982 | "postcss": "^8.4.18", 1983 | "resolve": "^1.22.1", 1984 | "rollup": "^2.79.1" 1985 | }, 1986 | "bin": { 1987 | "vite": "bin/vite.js" 1988 | }, 1989 | "engines": { 1990 | "node": "^14.18.0 || >=16.0.0" 1991 | }, 1992 | "optionalDependencies": { 1993 | "fsevents": "~2.3.2" 1994 | }, 1995 | "peerDependencies": { 1996 | "less": "*", 1997 | "sass": "*", 1998 | "stylus": "*", 1999 | "sugarss": "*", 2000 | "terser": "^5.4.0" 2001 | }, 2002 | "peerDependenciesMeta": { 2003 | "less": { 2004 | "optional": true 2005 | }, 2006 | "sass": { 2007 | "optional": true 2008 | }, 2009 | "stylus": { 2010 | "optional": true 2011 | }, 2012 | "sugarss": { 2013 | "optional": true 2014 | }, 2015 | "terser": { 2016 | "optional": true 2017 | } 2018 | } 2019 | }, 2020 | "node_modules/wrappy": { 2021 | "version": "1.0.2", 2022 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2023 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2024 | "dev": true 2025 | } 2026 | }, 2027 | "dependencies": { 2028 | "@ampproject/remapping": { 2029 | "version": "2.2.0", 2030 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 2031 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 2032 | "dev": true, 2033 | "requires": { 2034 | "@jridgewell/gen-mapping": "^0.1.0", 2035 | "@jridgewell/trace-mapping": "^0.3.9" 2036 | } 2037 | }, 2038 | "@babel/code-frame": { 2039 | "version": "7.18.6", 2040 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 2041 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 2042 | "requires": { 2043 | "@babel/highlight": "^7.18.6" 2044 | } 2045 | }, 2046 | "@babel/compat-data": { 2047 | "version": "7.20.1", 2048 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", 2049 | "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", 2050 | "dev": true 2051 | }, 2052 | "@babel/core": { 2053 | "version": "7.19.6", 2054 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", 2055 | "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", 2056 | "dev": true, 2057 | "requires": { 2058 | "@ampproject/remapping": "^2.1.0", 2059 | "@babel/code-frame": "^7.18.6", 2060 | "@babel/generator": "^7.19.6", 2061 | "@babel/helper-compilation-targets": "^7.19.3", 2062 | "@babel/helper-module-transforms": "^7.19.6", 2063 | "@babel/helpers": "^7.19.4", 2064 | "@babel/parser": "^7.19.6", 2065 | "@babel/template": "^7.18.10", 2066 | "@babel/traverse": "^7.19.6", 2067 | "@babel/types": "^7.19.4", 2068 | "convert-source-map": "^1.7.0", 2069 | "debug": "^4.1.0", 2070 | "gensync": "^1.0.0-beta.2", 2071 | "json5": "^2.2.1", 2072 | "semver": "^6.3.0" 2073 | } 2074 | }, 2075 | "@babel/generator": { 2076 | "version": "7.20.1", 2077 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz", 2078 | "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==", 2079 | "requires": { 2080 | "@babel/types": "^7.20.0", 2081 | "@jridgewell/gen-mapping": "^0.3.2", 2082 | "jsesc": "^2.5.1" 2083 | }, 2084 | "dependencies": { 2085 | "@jridgewell/gen-mapping": { 2086 | "version": "0.3.2", 2087 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 2088 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 2089 | "requires": { 2090 | "@jridgewell/set-array": "^1.0.1", 2091 | "@jridgewell/sourcemap-codec": "^1.4.10", 2092 | "@jridgewell/trace-mapping": "^0.3.9" 2093 | } 2094 | } 2095 | } 2096 | }, 2097 | "@babel/helper-annotate-as-pure": { 2098 | "version": "7.18.6", 2099 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", 2100 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", 2101 | "requires": { 2102 | "@babel/types": "^7.18.6" 2103 | } 2104 | }, 2105 | "@babel/helper-compilation-targets": { 2106 | "version": "7.20.0", 2107 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", 2108 | "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", 2109 | "dev": true, 2110 | "requires": { 2111 | "@babel/compat-data": "^7.20.0", 2112 | "@babel/helper-validator-option": "^7.18.6", 2113 | "browserslist": "^4.21.3", 2114 | "semver": "^6.3.0" 2115 | } 2116 | }, 2117 | "@babel/helper-environment-visitor": { 2118 | "version": "7.18.9", 2119 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", 2120 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" 2121 | }, 2122 | "@babel/helper-function-name": { 2123 | "version": "7.19.0", 2124 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", 2125 | "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", 2126 | "requires": { 2127 | "@babel/template": "^7.18.10", 2128 | "@babel/types": "^7.19.0" 2129 | } 2130 | }, 2131 | "@babel/helper-hoist-variables": { 2132 | "version": "7.18.6", 2133 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 2134 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 2135 | "requires": { 2136 | "@babel/types": "^7.18.6" 2137 | } 2138 | }, 2139 | "@babel/helper-module-imports": { 2140 | "version": "7.18.6", 2141 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 2142 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 2143 | "requires": { 2144 | "@babel/types": "^7.18.6" 2145 | } 2146 | }, 2147 | "@babel/helper-module-transforms": { 2148 | "version": "7.19.6", 2149 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", 2150 | "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", 2151 | "dev": true, 2152 | "requires": { 2153 | "@babel/helper-environment-visitor": "^7.18.9", 2154 | "@babel/helper-module-imports": "^7.18.6", 2155 | "@babel/helper-simple-access": "^7.19.4", 2156 | "@babel/helper-split-export-declaration": "^7.18.6", 2157 | "@babel/helper-validator-identifier": "^7.19.1", 2158 | "@babel/template": "^7.18.10", 2159 | "@babel/traverse": "^7.19.6", 2160 | "@babel/types": "^7.19.4" 2161 | } 2162 | }, 2163 | "@babel/helper-plugin-utils": { 2164 | "version": "7.19.0", 2165 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", 2166 | "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", 2167 | "dev": true 2168 | }, 2169 | "@babel/helper-simple-access": { 2170 | "version": "7.19.4", 2171 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", 2172 | "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", 2173 | "dev": true, 2174 | "requires": { 2175 | "@babel/types": "^7.19.4" 2176 | } 2177 | }, 2178 | "@babel/helper-split-export-declaration": { 2179 | "version": "7.18.6", 2180 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 2181 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 2182 | "requires": { 2183 | "@babel/types": "^7.18.6" 2184 | } 2185 | }, 2186 | "@babel/helper-string-parser": { 2187 | "version": "7.19.4", 2188 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", 2189 | "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" 2190 | }, 2191 | "@babel/helper-validator-identifier": { 2192 | "version": "7.19.1", 2193 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", 2194 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" 2195 | }, 2196 | "@babel/helper-validator-option": { 2197 | "version": "7.18.6", 2198 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 2199 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 2200 | "dev": true 2201 | }, 2202 | "@babel/helpers": { 2203 | "version": "7.20.1", 2204 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", 2205 | "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", 2206 | "dev": true, 2207 | "requires": { 2208 | "@babel/template": "^7.18.10", 2209 | "@babel/traverse": "^7.20.1", 2210 | "@babel/types": "^7.20.0" 2211 | } 2212 | }, 2213 | "@babel/highlight": { 2214 | "version": "7.18.6", 2215 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 2216 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 2217 | "requires": { 2218 | "@babel/helper-validator-identifier": "^7.18.6", 2219 | "chalk": "^2.0.0", 2220 | "js-tokens": "^4.0.0" 2221 | } 2222 | }, 2223 | "@babel/parser": { 2224 | "version": "7.20.1", 2225 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", 2226 | "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==" 2227 | }, 2228 | "@babel/plugin-syntax-jsx": { 2229 | "version": "7.18.6", 2230 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", 2231 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", 2232 | "dev": true, 2233 | "requires": { 2234 | "@babel/helper-plugin-utils": "^7.18.6" 2235 | } 2236 | }, 2237 | "@babel/plugin-transform-react-jsx": { 2238 | "version": "7.19.0", 2239 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", 2240 | "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", 2241 | "dev": true, 2242 | "requires": { 2243 | "@babel/helper-annotate-as-pure": "^7.18.6", 2244 | "@babel/helper-module-imports": "^7.18.6", 2245 | "@babel/helper-plugin-utils": "^7.19.0", 2246 | "@babel/plugin-syntax-jsx": "^7.18.6", 2247 | "@babel/types": "^7.19.0" 2248 | } 2249 | }, 2250 | "@babel/plugin-transform-react-jsx-development": { 2251 | "version": "7.18.6", 2252 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", 2253 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", 2254 | "dev": true, 2255 | "requires": { 2256 | "@babel/plugin-transform-react-jsx": "^7.18.6" 2257 | } 2258 | }, 2259 | "@babel/plugin-transform-react-jsx-self": { 2260 | "version": "7.18.6", 2261 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", 2262 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", 2263 | "dev": true, 2264 | "requires": { 2265 | "@babel/helper-plugin-utils": "^7.18.6" 2266 | } 2267 | }, 2268 | "@babel/plugin-transform-react-jsx-source": { 2269 | "version": "7.19.6", 2270 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", 2271 | "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", 2272 | "dev": true, 2273 | "requires": { 2274 | "@babel/helper-plugin-utils": "^7.19.0" 2275 | } 2276 | }, 2277 | "@babel/template": { 2278 | "version": "7.18.10", 2279 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", 2280 | "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", 2281 | "requires": { 2282 | "@babel/code-frame": "^7.18.6", 2283 | "@babel/parser": "^7.18.10", 2284 | "@babel/types": "^7.18.10" 2285 | } 2286 | }, 2287 | "@babel/traverse": { 2288 | "version": "7.20.1", 2289 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", 2290 | "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", 2291 | "requires": { 2292 | "@babel/code-frame": "^7.18.6", 2293 | "@babel/generator": "^7.20.1", 2294 | "@babel/helper-environment-visitor": "^7.18.9", 2295 | "@babel/helper-function-name": "^7.19.0", 2296 | "@babel/helper-hoist-variables": "^7.18.6", 2297 | "@babel/helper-split-export-declaration": "^7.18.6", 2298 | "@babel/parser": "^7.20.1", 2299 | "@babel/types": "^7.20.0", 2300 | "debug": "^4.1.0", 2301 | "globals": "^11.1.0" 2302 | } 2303 | }, 2304 | "@babel/types": { 2305 | "version": "7.20.0", 2306 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", 2307 | "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", 2308 | "requires": { 2309 | "@babel/helper-string-parser": "^7.19.4", 2310 | "@babel/helper-validator-identifier": "^7.19.1", 2311 | "to-fast-properties": "^2.0.0" 2312 | } 2313 | }, 2314 | "@emotion/is-prop-valid": { 2315 | "version": "1.2.0", 2316 | "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", 2317 | "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", 2318 | "requires": { 2319 | "@emotion/memoize": "^0.8.0" 2320 | } 2321 | }, 2322 | "@emotion/memoize": { 2323 | "version": "0.8.0", 2324 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", 2325 | "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" 2326 | }, 2327 | "@emotion/stylis": { 2328 | "version": "0.8.5", 2329 | "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", 2330 | "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" 2331 | }, 2332 | "@emotion/unitless": { 2333 | "version": "0.7.5", 2334 | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", 2335 | "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" 2336 | }, 2337 | "@esbuild/android-arm": { 2338 | "version": "0.15.12", 2339 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz", 2340 | "integrity": "sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==", 2341 | "dev": true, 2342 | "optional": true 2343 | }, 2344 | "@esbuild/linux-loong64": { 2345 | "version": "0.15.12", 2346 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz", 2347 | "integrity": "sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==", 2348 | "dev": true, 2349 | "optional": true 2350 | }, 2351 | "@jridgewell/gen-mapping": { 2352 | "version": "0.1.1", 2353 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 2354 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 2355 | "dev": true, 2356 | "requires": { 2357 | "@jridgewell/set-array": "^1.0.0", 2358 | "@jridgewell/sourcemap-codec": "^1.4.10" 2359 | } 2360 | }, 2361 | "@jridgewell/resolve-uri": { 2362 | "version": "3.1.0", 2363 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 2364 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" 2365 | }, 2366 | "@jridgewell/set-array": { 2367 | "version": "1.1.2", 2368 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 2369 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" 2370 | }, 2371 | "@jridgewell/sourcemap-codec": { 2372 | "version": "1.4.14", 2373 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 2374 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" 2375 | }, 2376 | "@jridgewell/trace-mapping": { 2377 | "version": "0.3.17", 2378 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", 2379 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", 2380 | "requires": { 2381 | "@jridgewell/resolve-uri": "3.1.0", 2382 | "@jridgewell/sourcemap-codec": "1.4.14" 2383 | } 2384 | }, 2385 | "@remix-run/router": { 2386 | "version": "1.0.3", 2387 | "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz", 2388 | "integrity": "sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q==" 2389 | }, 2390 | "@types/prop-types": { 2391 | "version": "15.7.5", 2392 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 2393 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 2394 | "dev": true 2395 | }, 2396 | "@types/react": { 2397 | "version": "18.0.24", 2398 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.24.tgz", 2399 | "integrity": "sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q==", 2400 | "dev": true, 2401 | "requires": { 2402 | "@types/prop-types": "*", 2403 | "@types/scheduler": "*", 2404 | "csstype": "^3.0.2" 2405 | } 2406 | }, 2407 | "@types/react-dom": { 2408 | "version": "18.0.8", 2409 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz", 2410 | "integrity": "sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==", 2411 | "dev": true, 2412 | "requires": { 2413 | "@types/react": "*" 2414 | } 2415 | }, 2416 | "@types/scheduler": { 2417 | "version": "0.16.2", 2418 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 2419 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 2420 | "dev": true 2421 | }, 2422 | "@vitejs/plugin-react": { 2423 | "version": "2.2.0", 2424 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz", 2425 | "integrity": "sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==", 2426 | "dev": true, 2427 | "requires": { 2428 | "@babel/core": "^7.19.6", 2429 | "@babel/plugin-transform-react-jsx": "^7.19.0", 2430 | "@babel/plugin-transform-react-jsx-development": "^7.18.6", 2431 | "@babel/plugin-transform-react-jsx-self": "^7.18.6", 2432 | "@babel/plugin-transform-react-jsx-source": "^7.19.6", 2433 | "magic-string": "^0.26.7", 2434 | "react-refresh": "^0.14.0" 2435 | } 2436 | }, 2437 | "ansi-styles": { 2438 | "version": "3.2.1", 2439 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 2440 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 2441 | "requires": { 2442 | "color-convert": "^1.9.0" 2443 | } 2444 | }, 2445 | "array-union": { 2446 | "version": "1.0.2", 2447 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 2448 | "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", 2449 | "dev": true, 2450 | "requires": { 2451 | "array-uniq": "^1.0.1" 2452 | } 2453 | }, 2454 | "array-uniq": { 2455 | "version": "1.0.3", 2456 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 2457 | "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", 2458 | "dev": true 2459 | }, 2460 | "async": { 2461 | "version": "2.6.4", 2462 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", 2463 | "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", 2464 | "dev": true, 2465 | "requires": { 2466 | "lodash": "^4.17.14" 2467 | } 2468 | }, 2469 | "babel-plugin-styled-components": { 2470 | "version": "2.0.7", 2471 | "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", 2472 | "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", 2473 | "requires": { 2474 | "@babel/helper-annotate-as-pure": "^7.16.0", 2475 | "@babel/helper-module-imports": "^7.16.0", 2476 | "babel-plugin-syntax-jsx": "^6.18.0", 2477 | "lodash": "^4.17.11", 2478 | "picomatch": "^2.3.0" 2479 | } 2480 | }, 2481 | "babel-plugin-syntax-jsx": { 2482 | "version": "6.18.0", 2483 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", 2484 | "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" 2485 | }, 2486 | "balanced-match": { 2487 | "version": "1.0.2", 2488 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2489 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 2490 | "dev": true 2491 | }, 2492 | "brace-expansion": { 2493 | "version": "1.1.11", 2494 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2495 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2496 | "dev": true, 2497 | "requires": { 2498 | "balanced-match": "^1.0.0", 2499 | "concat-map": "0.0.1" 2500 | } 2501 | }, 2502 | "browserslist": { 2503 | "version": "4.21.4", 2504 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", 2505 | "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", 2506 | "dev": true, 2507 | "requires": { 2508 | "caniuse-lite": "^1.0.30001400", 2509 | "electron-to-chromium": "^1.4.251", 2510 | "node-releases": "^2.0.6", 2511 | "update-browserslist-db": "^1.0.9" 2512 | } 2513 | }, 2514 | "camelize": { 2515 | "version": "1.0.1", 2516 | "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", 2517 | "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" 2518 | }, 2519 | "caniuse-lite": { 2520 | "version": "1.0.30001429", 2521 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz", 2522 | "integrity": "sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg==", 2523 | "dev": true 2524 | }, 2525 | "chalk": { 2526 | "version": "2.4.2", 2527 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2528 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2529 | "requires": { 2530 | "ansi-styles": "^3.2.1", 2531 | "escape-string-regexp": "^1.0.5", 2532 | "supports-color": "^5.3.0" 2533 | } 2534 | }, 2535 | "color-convert": { 2536 | "version": "1.9.3", 2537 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 2538 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 2539 | "requires": { 2540 | "color-name": "1.1.3" 2541 | } 2542 | }, 2543 | "color-name": { 2544 | "version": "1.1.3", 2545 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 2546 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 2547 | }, 2548 | "commander": { 2549 | "version": "2.20.3", 2550 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 2551 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 2552 | "dev": true 2553 | }, 2554 | "commondir": { 2555 | "version": "1.0.1", 2556 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 2557 | "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", 2558 | "dev": true 2559 | }, 2560 | "concat-map": { 2561 | "version": "0.0.1", 2562 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2563 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2564 | "dev": true 2565 | }, 2566 | "convert-source-map": { 2567 | "version": "1.9.0", 2568 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 2569 | "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", 2570 | "dev": true 2571 | }, 2572 | "css-color-keywords": { 2573 | "version": "1.0.0", 2574 | "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", 2575 | "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" 2576 | }, 2577 | "css-to-react-native": { 2578 | "version": "3.0.0", 2579 | "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", 2580 | "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", 2581 | "requires": { 2582 | "camelize": "^1.0.0", 2583 | "css-color-keywords": "^1.0.0", 2584 | "postcss-value-parser": "^4.0.2" 2585 | } 2586 | }, 2587 | "csstype": { 2588 | "version": "3.1.1", 2589 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", 2590 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", 2591 | "dev": true 2592 | }, 2593 | "debug": { 2594 | "version": "4.3.4", 2595 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 2596 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2597 | "requires": { 2598 | "ms": "2.1.2" 2599 | } 2600 | }, 2601 | "electron-to-chromium": { 2602 | "version": "1.4.284", 2603 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", 2604 | "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", 2605 | "dev": true 2606 | }, 2607 | "email-addresses": { 2608 | "version": "3.1.0", 2609 | "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", 2610 | "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", 2611 | "dev": true 2612 | }, 2613 | "esbuild": { 2614 | "version": "0.15.12", 2615 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz", 2616 | "integrity": "sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==", 2617 | "dev": true, 2618 | "requires": { 2619 | "@esbuild/android-arm": "0.15.12", 2620 | "@esbuild/linux-loong64": "0.15.12", 2621 | "esbuild-android-64": "0.15.12", 2622 | "esbuild-android-arm64": "0.15.12", 2623 | "esbuild-darwin-64": "0.15.12", 2624 | "esbuild-darwin-arm64": "0.15.12", 2625 | "esbuild-freebsd-64": "0.15.12", 2626 | "esbuild-freebsd-arm64": "0.15.12", 2627 | "esbuild-linux-32": "0.15.12", 2628 | "esbuild-linux-64": "0.15.12", 2629 | "esbuild-linux-arm": "0.15.12", 2630 | "esbuild-linux-arm64": "0.15.12", 2631 | "esbuild-linux-mips64le": "0.15.12", 2632 | "esbuild-linux-ppc64le": "0.15.12", 2633 | "esbuild-linux-riscv64": "0.15.12", 2634 | "esbuild-linux-s390x": "0.15.12", 2635 | "esbuild-netbsd-64": "0.15.12", 2636 | "esbuild-openbsd-64": "0.15.12", 2637 | "esbuild-sunos-64": "0.15.12", 2638 | "esbuild-windows-32": "0.15.12", 2639 | "esbuild-windows-64": "0.15.12", 2640 | "esbuild-windows-arm64": "0.15.12" 2641 | } 2642 | }, 2643 | "esbuild-android-64": { 2644 | "version": "0.15.12", 2645 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz", 2646 | "integrity": "sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==", 2647 | "dev": true, 2648 | "optional": true 2649 | }, 2650 | "esbuild-android-arm64": { 2651 | "version": "0.15.12", 2652 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz", 2653 | "integrity": "sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==", 2654 | "dev": true, 2655 | "optional": true 2656 | }, 2657 | "esbuild-darwin-64": { 2658 | "version": "0.15.12", 2659 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz", 2660 | "integrity": "sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==", 2661 | "dev": true, 2662 | "optional": true 2663 | }, 2664 | "esbuild-darwin-arm64": { 2665 | "version": "0.15.12", 2666 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz", 2667 | "integrity": "sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==", 2668 | "dev": true, 2669 | "optional": true 2670 | }, 2671 | "esbuild-freebsd-64": { 2672 | "version": "0.15.12", 2673 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz", 2674 | "integrity": "sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==", 2675 | "dev": true, 2676 | "optional": true 2677 | }, 2678 | "esbuild-freebsd-arm64": { 2679 | "version": "0.15.12", 2680 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz", 2681 | "integrity": "sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==", 2682 | "dev": true, 2683 | "optional": true 2684 | }, 2685 | "esbuild-linux-32": { 2686 | "version": "0.15.12", 2687 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz", 2688 | "integrity": "sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==", 2689 | "dev": true, 2690 | "optional": true 2691 | }, 2692 | "esbuild-linux-64": { 2693 | "version": "0.15.12", 2694 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz", 2695 | "integrity": "sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==", 2696 | "dev": true, 2697 | "optional": true 2698 | }, 2699 | "esbuild-linux-arm": { 2700 | "version": "0.15.12", 2701 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz", 2702 | "integrity": "sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==", 2703 | "dev": true, 2704 | "optional": true 2705 | }, 2706 | "esbuild-linux-arm64": { 2707 | "version": "0.15.12", 2708 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz", 2709 | "integrity": "sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==", 2710 | "dev": true, 2711 | "optional": true 2712 | }, 2713 | "esbuild-linux-mips64le": { 2714 | "version": "0.15.12", 2715 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz", 2716 | "integrity": "sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==", 2717 | "dev": true, 2718 | "optional": true 2719 | }, 2720 | "esbuild-linux-ppc64le": { 2721 | "version": "0.15.12", 2722 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz", 2723 | "integrity": "sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==", 2724 | "dev": true, 2725 | "optional": true 2726 | }, 2727 | "esbuild-linux-riscv64": { 2728 | "version": "0.15.12", 2729 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz", 2730 | "integrity": "sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==", 2731 | "dev": true, 2732 | "optional": true 2733 | }, 2734 | "esbuild-linux-s390x": { 2735 | "version": "0.15.12", 2736 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz", 2737 | "integrity": "sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==", 2738 | "dev": true, 2739 | "optional": true 2740 | }, 2741 | "esbuild-netbsd-64": { 2742 | "version": "0.15.12", 2743 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz", 2744 | "integrity": "sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==", 2745 | "dev": true, 2746 | "optional": true 2747 | }, 2748 | "esbuild-openbsd-64": { 2749 | "version": "0.15.12", 2750 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz", 2751 | "integrity": "sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==", 2752 | "dev": true, 2753 | "optional": true 2754 | }, 2755 | "esbuild-sunos-64": { 2756 | "version": "0.15.12", 2757 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz", 2758 | "integrity": "sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==", 2759 | "dev": true, 2760 | "optional": true 2761 | }, 2762 | "esbuild-windows-32": { 2763 | "version": "0.15.12", 2764 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz", 2765 | "integrity": "sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==", 2766 | "dev": true, 2767 | "optional": true 2768 | }, 2769 | "esbuild-windows-64": { 2770 | "version": "0.15.12", 2771 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz", 2772 | "integrity": "sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==", 2773 | "dev": true, 2774 | "optional": true 2775 | }, 2776 | "esbuild-windows-arm64": { 2777 | "version": "0.15.12", 2778 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz", 2779 | "integrity": "sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==", 2780 | "dev": true, 2781 | "optional": true 2782 | }, 2783 | "escalade": { 2784 | "version": "3.1.1", 2785 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 2786 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 2787 | "dev": true 2788 | }, 2789 | "escape-string-regexp": { 2790 | "version": "1.0.5", 2791 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2792 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 2793 | }, 2794 | "filename-reserved-regex": { 2795 | "version": "2.0.0", 2796 | "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", 2797 | "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", 2798 | "dev": true 2799 | }, 2800 | "filenamify": { 2801 | "version": "4.3.0", 2802 | "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", 2803 | "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", 2804 | "dev": true, 2805 | "requires": { 2806 | "filename-reserved-regex": "^2.0.0", 2807 | "strip-outer": "^1.0.1", 2808 | "trim-repeated": "^1.0.0" 2809 | } 2810 | }, 2811 | "find-cache-dir": { 2812 | "version": "3.3.2", 2813 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", 2814 | "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", 2815 | "dev": true, 2816 | "requires": { 2817 | "commondir": "^1.0.1", 2818 | "make-dir": "^3.0.2", 2819 | "pkg-dir": "^4.1.0" 2820 | } 2821 | }, 2822 | "find-up": { 2823 | "version": "4.1.0", 2824 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 2825 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 2826 | "dev": true, 2827 | "requires": { 2828 | "locate-path": "^5.0.0", 2829 | "path-exists": "^4.0.0" 2830 | } 2831 | }, 2832 | "fs-extra": { 2833 | "version": "8.1.0", 2834 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 2835 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 2836 | "dev": true, 2837 | "requires": { 2838 | "graceful-fs": "^4.2.0", 2839 | "jsonfile": "^4.0.0", 2840 | "universalify": "^0.1.0" 2841 | } 2842 | }, 2843 | "fs.realpath": { 2844 | "version": "1.0.0", 2845 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2846 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 2847 | "dev": true 2848 | }, 2849 | "fsevents": { 2850 | "version": "2.3.2", 2851 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2852 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2853 | "dev": true, 2854 | "optional": true 2855 | }, 2856 | "function-bind": { 2857 | "version": "1.1.1", 2858 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2859 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2860 | "dev": true 2861 | }, 2862 | "gensync": { 2863 | "version": "1.0.0-beta.2", 2864 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 2865 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 2866 | "dev": true 2867 | }, 2868 | "gh-pages": { 2869 | "version": "4.0.0", 2870 | "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-4.0.0.tgz", 2871 | "integrity": "sha512-p8S0T3aGJc68MtwOcZusul5qPSNZCalap3NWbhRUZYu1YOdp+EjZ+4kPmRM8h3NNRdqw00yuevRjlkuSzCn7iQ==", 2872 | "dev": true, 2873 | "requires": { 2874 | "async": "^2.6.1", 2875 | "commander": "^2.18.0", 2876 | "email-addresses": "^3.0.1", 2877 | "filenamify": "^4.3.0", 2878 | "find-cache-dir": "^3.3.1", 2879 | "fs-extra": "^8.1.0", 2880 | "globby": "^6.1.0" 2881 | } 2882 | }, 2883 | "glob": { 2884 | "version": "7.2.3", 2885 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 2886 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 2887 | "dev": true, 2888 | "requires": { 2889 | "fs.realpath": "^1.0.0", 2890 | "inflight": "^1.0.4", 2891 | "inherits": "2", 2892 | "minimatch": "^3.1.1", 2893 | "once": "^1.3.0", 2894 | "path-is-absolute": "^1.0.0" 2895 | } 2896 | }, 2897 | "globals": { 2898 | "version": "11.12.0", 2899 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2900 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" 2901 | }, 2902 | "globby": { 2903 | "version": "6.1.0", 2904 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", 2905 | "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", 2906 | "dev": true, 2907 | "requires": { 2908 | "array-union": "^1.0.1", 2909 | "glob": "^7.0.3", 2910 | "object-assign": "^4.0.1", 2911 | "pify": "^2.0.0", 2912 | "pinkie-promise": "^2.0.0" 2913 | } 2914 | }, 2915 | "graceful-fs": { 2916 | "version": "4.2.10", 2917 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 2918 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 2919 | "dev": true 2920 | }, 2921 | "has": { 2922 | "version": "1.0.3", 2923 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2924 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2925 | "dev": true, 2926 | "requires": { 2927 | "function-bind": "^1.1.1" 2928 | } 2929 | }, 2930 | "has-flag": { 2931 | "version": "3.0.0", 2932 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2933 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 2934 | }, 2935 | "hoist-non-react-statics": { 2936 | "version": "3.3.2", 2937 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 2938 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 2939 | "requires": { 2940 | "react-is": "^16.7.0" 2941 | }, 2942 | "dependencies": { 2943 | "react-is": { 2944 | "version": "16.13.1", 2945 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 2946 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 2947 | } 2948 | } 2949 | }, 2950 | "inflight": { 2951 | "version": "1.0.6", 2952 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2953 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 2954 | "dev": true, 2955 | "requires": { 2956 | "once": "^1.3.0", 2957 | "wrappy": "1" 2958 | } 2959 | }, 2960 | "inherits": { 2961 | "version": "2.0.4", 2962 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2963 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2964 | "dev": true 2965 | }, 2966 | "is-core-module": { 2967 | "version": "2.11.0", 2968 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 2969 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 2970 | "dev": true, 2971 | "requires": { 2972 | "has": "^1.0.3" 2973 | } 2974 | }, 2975 | "js-tokens": { 2976 | "version": "4.0.0", 2977 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2978 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2979 | }, 2980 | "jsesc": { 2981 | "version": "2.5.2", 2982 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2983 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" 2984 | }, 2985 | "json5": { 2986 | "version": "2.2.1", 2987 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 2988 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 2989 | "dev": true 2990 | }, 2991 | "jsonfile": { 2992 | "version": "4.0.0", 2993 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 2994 | "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", 2995 | "dev": true, 2996 | "requires": { 2997 | "graceful-fs": "^4.1.6" 2998 | } 2999 | }, 3000 | "locate-path": { 3001 | "version": "5.0.0", 3002 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 3003 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 3004 | "dev": true, 3005 | "requires": { 3006 | "p-locate": "^4.1.0" 3007 | } 3008 | }, 3009 | "lodash": { 3010 | "version": "4.17.21", 3011 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 3012 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 3013 | }, 3014 | "loose-envify": { 3015 | "version": "1.4.0", 3016 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3017 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3018 | "requires": { 3019 | "js-tokens": "^3.0.0 || ^4.0.0" 3020 | } 3021 | }, 3022 | "magic-string": { 3023 | "version": "0.26.7", 3024 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", 3025 | "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", 3026 | "dev": true, 3027 | "requires": { 3028 | "sourcemap-codec": "^1.4.8" 3029 | } 3030 | }, 3031 | "make-dir": { 3032 | "version": "3.1.0", 3033 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 3034 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 3035 | "dev": true, 3036 | "requires": { 3037 | "semver": "^6.0.0" 3038 | } 3039 | }, 3040 | "minimatch": { 3041 | "version": "3.1.2", 3042 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3043 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3044 | "dev": true, 3045 | "requires": { 3046 | "brace-expansion": "^1.1.7" 3047 | } 3048 | }, 3049 | "ms": { 3050 | "version": "2.1.2", 3051 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3052 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 3053 | }, 3054 | "nanoid": { 3055 | "version": "3.3.4", 3056 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 3057 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 3058 | "dev": true 3059 | }, 3060 | "node-releases": { 3061 | "version": "2.0.6", 3062 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", 3063 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", 3064 | "dev": true 3065 | }, 3066 | "object-assign": { 3067 | "version": "4.1.1", 3068 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3069 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 3070 | "dev": true 3071 | }, 3072 | "once": { 3073 | "version": "1.4.0", 3074 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3075 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 3076 | "dev": true, 3077 | "requires": { 3078 | "wrappy": "1" 3079 | } 3080 | }, 3081 | "p-limit": { 3082 | "version": "2.3.0", 3083 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 3084 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 3085 | "dev": true, 3086 | "requires": { 3087 | "p-try": "^2.0.0" 3088 | } 3089 | }, 3090 | "p-locate": { 3091 | "version": "4.1.0", 3092 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 3093 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 3094 | "dev": true, 3095 | "requires": { 3096 | "p-limit": "^2.2.0" 3097 | } 3098 | }, 3099 | "p-try": { 3100 | "version": "2.2.0", 3101 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 3102 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 3103 | "dev": true 3104 | }, 3105 | "path-exists": { 3106 | "version": "4.0.0", 3107 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3108 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3109 | "dev": true 3110 | }, 3111 | "path-is-absolute": { 3112 | "version": "1.0.1", 3113 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3114 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 3115 | "dev": true 3116 | }, 3117 | "path-parse": { 3118 | "version": "1.0.7", 3119 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 3120 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 3121 | "dev": true 3122 | }, 3123 | "picocolors": { 3124 | "version": "1.0.0", 3125 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 3126 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 3127 | "dev": true 3128 | }, 3129 | "picomatch": { 3130 | "version": "2.3.1", 3131 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3132 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 3133 | }, 3134 | "pify": { 3135 | "version": "2.3.0", 3136 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3137 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 3138 | "dev": true 3139 | }, 3140 | "pinkie": { 3141 | "version": "2.0.4", 3142 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3143 | "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", 3144 | "dev": true 3145 | }, 3146 | "pinkie-promise": { 3147 | "version": "2.0.1", 3148 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3149 | "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", 3150 | "dev": true, 3151 | "requires": { 3152 | "pinkie": "^2.0.0" 3153 | } 3154 | }, 3155 | "pkg-dir": { 3156 | "version": "4.2.0", 3157 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 3158 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 3159 | "dev": true, 3160 | "requires": { 3161 | "find-up": "^4.0.0" 3162 | } 3163 | }, 3164 | "postcss": { 3165 | "version": "8.4.18", 3166 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", 3167 | "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", 3168 | "dev": true, 3169 | "requires": { 3170 | "nanoid": "^3.3.4", 3171 | "picocolors": "^1.0.0", 3172 | "source-map-js": "^1.0.2" 3173 | } 3174 | }, 3175 | "postcss-value-parser": { 3176 | "version": "4.2.0", 3177 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 3178 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" 3179 | }, 3180 | "react": { 3181 | "version": "18.2.0", 3182 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 3183 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 3184 | "requires": { 3185 | "loose-envify": "^1.1.0" 3186 | } 3187 | }, 3188 | "react-dom": { 3189 | "version": "18.2.0", 3190 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 3191 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 3192 | "requires": { 3193 | "loose-envify": "^1.1.0", 3194 | "scheduler": "^0.23.0" 3195 | } 3196 | }, 3197 | "react-is": { 3198 | "version": "18.2.0", 3199 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", 3200 | "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", 3201 | "peer": true 3202 | }, 3203 | "react-refresh": { 3204 | "version": "0.14.0", 3205 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", 3206 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", 3207 | "dev": true 3208 | }, 3209 | "react-router": { 3210 | "version": "6.4.3", 3211 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.3.tgz", 3212 | "integrity": "sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==", 3213 | "requires": { 3214 | "@remix-run/router": "1.0.3" 3215 | } 3216 | }, 3217 | "react-router-dom": { 3218 | "version": "6.4.3", 3219 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.3.tgz", 3220 | "integrity": "sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==", 3221 | "requires": { 3222 | "@remix-run/router": "1.0.3", 3223 | "react-router": "6.4.3" 3224 | } 3225 | }, 3226 | "resolve": { 3227 | "version": "1.22.1", 3228 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 3229 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 3230 | "dev": true, 3231 | "requires": { 3232 | "is-core-module": "^2.9.0", 3233 | "path-parse": "^1.0.7", 3234 | "supports-preserve-symlinks-flag": "^1.0.0" 3235 | } 3236 | }, 3237 | "rollup": { 3238 | "version": "2.79.1", 3239 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", 3240 | "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", 3241 | "dev": true, 3242 | "requires": { 3243 | "fsevents": "~2.3.2" 3244 | } 3245 | }, 3246 | "scheduler": { 3247 | "version": "0.23.0", 3248 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 3249 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 3250 | "requires": { 3251 | "loose-envify": "^1.1.0" 3252 | } 3253 | }, 3254 | "semver": { 3255 | "version": "6.3.0", 3256 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 3257 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 3258 | "dev": true 3259 | }, 3260 | "shallowequal": { 3261 | "version": "1.1.0", 3262 | "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", 3263 | "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" 3264 | }, 3265 | "source-map-js": { 3266 | "version": "1.0.2", 3267 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 3268 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 3269 | "dev": true 3270 | }, 3271 | "sourcemap-codec": { 3272 | "version": "1.4.8", 3273 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 3274 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 3275 | "dev": true 3276 | }, 3277 | "strip-outer": { 3278 | "version": "1.0.1", 3279 | "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", 3280 | "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", 3281 | "dev": true, 3282 | "requires": { 3283 | "escape-string-regexp": "^1.0.2" 3284 | } 3285 | }, 3286 | "styled-components": { 3287 | "version": "5.3.6", 3288 | "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", 3289 | "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", 3290 | "requires": { 3291 | "@babel/helper-module-imports": "^7.0.0", 3292 | "@babel/traverse": "^7.4.5", 3293 | "@emotion/is-prop-valid": "^1.1.0", 3294 | "@emotion/stylis": "^0.8.4", 3295 | "@emotion/unitless": "^0.7.4", 3296 | "babel-plugin-styled-components": ">= 1.12.0", 3297 | "css-to-react-native": "^3.0.0", 3298 | "hoist-non-react-statics": "^3.0.0", 3299 | "shallowequal": "^1.1.0", 3300 | "supports-color": "^5.5.0" 3301 | } 3302 | }, 3303 | "supports-color": { 3304 | "version": "5.5.0", 3305 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3306 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3307 | "requires": { 3308 | "has-flag": "^3.0.0" 3309 | } 3310 | }, 3311 | "supports-preserve-symlinks-flag": { 3312 | "version": "1.0.0", 3313 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 3314 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 3315 | "dev": true 3316 | }, 3317 | "to-fast-properties": { 3318 | "version": "2.0.0", 3319 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 3320 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" 3321 | }, 3322 | "trim-repeated": { 3323 | "version": "1.0.0", 3324 | "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", 3325 | "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", 3326 | "dev": true, 3327 | "requires": { 3328 | "escape-string-regexp": "^1.0.2" 3329 | } 3330 | }, 3331 | "universalify": { 3332 | "version": "0.1.2", 3333 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 3334 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 3335 | "dev": true 3336 | }, 3337 | "update-browserslist-db": { 3338 | "version": "1.0.10", 3339 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", 3340 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", 3341 | "dev": true, 3342 | "requires": { 3343 | "escalade": "^3.1.1", 3344 | "picocolors": "^1.0.0" 3345 | } 3346 | }, 3347 | "vite": { 3348 | "version": "3.2.2", 3349 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", 3350 | "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", 3351 | "dev": true, 3352 | "requires": { 3353 | "esbuild": "^0.15.9", 3354 | "fsevents": "~2.3.2", 3355 | "postcss": "^8.4.18", 3356 | "resolve": "^1.22.1", 3357 | "rollup": "^2.79.1" 3358 | } 3359 | }, 3360 | "wrappy": { 3361 | "version": "1.0.2", 3362 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3363 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 3364 | "dev": true 3365 | } 3366 | } 3367 | } 3368 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "homepage":"https://monicatvera.github.io/calculator", 3 | "name": "calculator", 4 | "private": true, 5 | "version": "0.0.0", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vite", 9 | "build": "vite build", 10 | "preview": "vite preview", 11 | "deploy": "gh-pages -d dist" 12 | }, 13 | "dependencies": { 14 | "react": "^18.2.0", 15 | "react-dom": "^18.2.0", 16 | "react-router-dom": "^6.4.3", 17 | "styled-components": "^5.3.6" 18 | }, 19 | "devDependencies": { 20 | "@types/react": "^18.0.22", 21 | "@types/react-dom": "^18.0.7", 22 | "@vitejs/plugin-react": "^2.2.0", 23 | "gh-pages": "^4.0.0", 24 | "vite": "^3.2.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/public/favicon.ico -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monicatvera/calculator/f815c9b4e14e9d52ba78027345f33c92b4b1c0e2/public/logo.png -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState} from "react"; 2 | import { BrowserRouter, Routes, Route } from "react-router-dom"; 3 | import { ThemeProvider } from "styled-components"; 4 | import { GlobalStyles } from "@/components/styles/GlobalStyles"; 5 | import { basic } from "@/components/styles/Theme.styled"; 6 | import Header from "@/components/header/Header"; 7 | import Calculator from "@/components/calculator/Calculator"; 8 | 9 | 10 | function App() { 11 | const [selectedTheme, setSelectedTheme] = useState(basic); 12 | 13 | // function to handle user theme selection on click and save it to local storage 14 | const HandleThemeChange = (theme) => { 15 | setSelectedTheme(theme); 16 | toggleActiveTheme(theme); 17 | localStorage.setItem("current-theme", JSON.stringify(theme)); 18 | }; 19 | function toggleActiveTheme(theme) { 20 | const themeBtns = document.querySelectorAll(".theme-btn"); 21 | themeBtns.forEach((themeBtn) => { 22 | if (themeBtn.classList.contains(theme.name)) { 23 | themeBtn.classList.add("active"); 24 | } else { 25 | themeBtn.classList.remove("active"); 26 | } 27 | }); 28 | } 29 | // react hook to get the theme selected by the user that is saved in local storage 30 | useEffect(() => { 31 | const currentTheme = JSON.parse(localStorage.getItem("current-theme")); 32 | 33 | if (currentTheme) { 34 | setSelectedTheme(currentTheme); 35 | toggleActiveTheme(currentTheme); 36 | } 37 | }, []); 38 | 39 | return ( 40 | 41 | 42 | 43 |
44 | 45 | } /> 46 | 47 | 48 | 49 | ); 50 | } 51 | 52 | export default App; 53 | -------------------------------------------------------------------------------- /src/assets/Styles.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=League+Spartan:wght@700&display=swap"); 2 | :root { 3 | --main-font: "League Spartan", sans-serif; 4 | } 5 | 6 | /* GENERAL */ 7 | * { 8 | margin: 0; 9 | padding: 0; 10 | } 11 | body { 12 | -ms-overflow-style: none; /* for Internet Explorer, Edge */ 13 | scrollbar-width: none; /* for Firefox */ 14 | overflow-y: scroll; 15 | box-sizing: border-box; 16 | font-family: var(--main-font); 17 | } 18 | body::-webkit-scrollbar { 19 | display: none; /* for Chrome, Safari, and Opera */ 20 | } 21 | 22 | image { 23 | display: block; 24 | } 25 | ul, 26 | ol, 27 | li { 28 | padding: 0; 29 | margin: 0; 30 | } 31 | /* HEADER */ 32 | header { 33 | display: flex; 34 | flex-direction: row; 35 | justify-content: space-between; 36 | max-width: 100%; 37 | width: 538px; 38 | margin: 0 auto; 39 | margin-top: 5.5rem; 40 | padding: 1rem 0; 41 | align-items: center; 42 | } 43 | .themes { 44 | display: flex; 45 | flex-direction: row; 46 | gap: 1.5rem; 47 | align-items: flex-end; 48 | } 49 | .themes p { 50 | font-size: 0.75rem; 51 | letter-spacing: 1px; 52 | } 53 | .theme-toggle { 54 | display: flex; 55 | flex-direction: column; 56 | align-items: center; 57 | gap: 5px; 58 | font-weight: 0.9rem; 59 | } 60 | .theme-number, 61 | .theme-value { 62 | display: flex; 63 | flex-direction: row; 64 | } 65 | .theme-number { 66 | gap: 0.9rem; 67 | } 68 | .theme-value { 69 | gap: 2px; 70 | } 71 | .theme-value { 72 | border-radius: 15px; 73 | padding: 5px 4px; 74 | width: 60px; 75 | max-width: 100%; 76 | } 77 | .theme-btn.active { 78 | background-color: hsl(6, 63%, 50%); 79 | } 80 | .theme-numbers { 81 | display: flex; 82 | flex-direction: column; 83 | } 84 | 85 | /* CALCULATOR */ 86 | .calculator { 87 | display: flex; 88 | flex-direction: column; 89 | margin: 0 auto; 90 | max-width: 100%; 91 | width: 538px; 92 | margin-bottom: 5rem; 93 | } 94 | .calculator * { 95 | transition: background-color 1s, color 0.1s ease-in-out; 96 | } 97 | 98 | .calculator button { 99 | border: none; 100 | font-size: 32px; 101 | font-weight: 700; 102 | cursor: pointer; 103 | } 104 | 105 | .screen { 106 | font-size: 3.3rem; 107 | padding: 2.5rem 1.9rem; 108 | text-align: right; 109 | height: 2.9rem; 110 | letter-spacing: 1px; 111 | border-radius: 5px; 112 | margin-top: 0.9rem; 113 | text-align: right; 114 | display: flex; 115 | flex-direction: row; 116 | justify-content: flex-end; 117 | } 118 | 119 | .keypad { 120 | display: grid; 121 | row-gap: 1.9rem; 122 | column-gap: 1.3rem; 123 | grid-template: repeat(5, 1fr) / repeat(4, 1fr); 124 | grid-auto-flow: row; 125 | padding: 2rem; 126 | border-radius: 5px; 127 | margin-top: 1.6rem; 128 | } 129 | .keypad button { 130 | border-radius: 10px; 131 | } 132 | .key, 133 | .operator { 134 | padding: 0.8rem 0 0.5rem 0; 135 | text-align: center; 136 | border-radius: 10px; 137 | } 138 | #del, 139 | #reset-key, 140 | #equals-key { 141 | font-size: 1.5rem; 142 | } 143 | #reset-key { 144 | grid-column: 1 / span 2; 145 | } 146 | #equals-key { 147 | grid-column: 3 / span 2; 148 | } 149 | 150 | @media screen and (max-width: 600px) { 151 | header, 152 | .calculator { 153 | width: 90%; 154 | } 155 | } 156 | @media screen and (max-width: 440px) { 157 | .keypad { 158 | padding: 1rem; 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /src/components/calculator/Calculator.jsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import React from "react"; 3 | import { useEffect } from "react"; 4 | import Screen from "@/components/calculator/Screen"; 5 | import Keypad from "@/components/calculator/Keypad"; 6 | 7 | export default function Calculator() { 8 | const [calc, setCalc] = useState(""); 9 | const [calculated, setCalculated] = useState(false); 10 | const operations = ["/", "*", "+", "-", "."]; 11 | const numbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]; 12 | const ref = React.createRef(); 13 | 14 | const updateCalc = (value) => { 15 | const displayValue = ref.current; 16 | //************* BEFORE CALCULATION *************// 17 | if (value === "0" && calc === "0") { 18 | return clear(); 19 | } else if ( 20 | (operations.includes(value) && calc === "") || 21 | (operations.includes(value) && operations.includes(calc.slice(-1))) 22 | ) { 23 | return; 24 | } else if (!operations.includes(value)) { 25 | setCalc((+calc + +value).toString()); 26 | 27 | if (calc.length > 7) { 28 | displayValue.style.fontSize = "2.5rem"; 29 | } 30 | if (calc.length === 11 && !operations.includes(value)) { 31 | displayValue.style.width = "fit-content"; 32 | displayValue.style.overflow = "hidden"; 33 | return setCalc(calc.toString()); 34 | } else if (calc.length === 11 && operations.includes(value)) { 35 | console.log("hi"); 36 | } else { 37 | console.error(); 38 | } 39 | } 40 | 41 | //************* AFTER CALCULATION *************// 42 | //When you did calculation but continue operation with the result number 43 | if (calculated === true && operations.includes(value)) { 44 | setCalculated(false); 45 | } 46 | //When you did calculation but start with a new number instead of operation 47 | else if (calculated === true && !operations.includes(value)) { 48 | setCalculated(false); 49 | return setCalc(value); 50 | } else if (calculated === true && value === "0") { 51 | setCalculated(false); 52 | return setCalc(""); 53 | } else { 54 | console.error(); 55 | } 56 | setCalc(calc + value); 57 | }; 58 | 59 | const calculate = () => { 60 | if (eval(calc) === undefined) { 61 | return; 62 | } 63 | setCalculated(true); 64 | setCalc(eval(calc).toString()); 65 | }; 66 | const clear = () => { 67 | setCalculated(false); 68 | setCalc(""); 69 | }; 70 | const del = () => { 71 | if (calc === "") { 72 | return; 73 | } 74 | const displayValue = ref.current; 75 | if (calc.length < 7) { 76 | displayValue.style.fontSize = "3.3rem"; 77 | } 78 | 79 | const value = calc.slice(0, -1); 80 | setCalc(value); 81 | }; 82 | 83 | const onKeyDown = (e) => { 84 | if (operations.includes(e.key) || numbers.includes(e.key)) { 85 | updateCalc(e.key); 86 | } else if (e.key === "Enter" || e.key === "=") { 87 | calculate(); 88 | } else if (e.key === "Backspace") del(); 89 | }; 90 | useEffect(() => { 91 | window.addEventListener("keydown", onKeyDown); 92 | return () => { 93 | window.removeEventListener("keydown", onKeyDown); 94 | }; 95 | }); 96 | return ( 97 |
98 |
99 | 100 | 107 |
108 |
109 | ); 110 | } 111 | -------------------------------------------------------------------------------- /src/components/calculator/Keypad.jsx: -------------------------------------------------------------------------------- 1 | 2 | const Keypad = (props) => { 3 | return ( 4 |
5 | 14 | 17 | 20 | 23 | 26 | 29 | 32 | 39 | 42 | 45 | 48 | 55 | 58 | 61 | 68 | 75 | 83 | 91 |
92 | ); 93 | }; 94 | export default Keypad; 95 | -------------------------------------------------------------------------------- /src/components/calculator/Screen.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | const Screen = React.forwardRef((props, ref) => ( 3 |
4 |

{props.calc || "0"}

5 |
6 | )); 7 | 8 | export default Screen; 9 | -------------------------------------------------------------------------------- /src/components/header/Header.jsx: -------------------------------------------------------------------------------- 1 | import ThemeSwitcher from "@/components/header/ThemeSwitcher"; 2 | 3 | const Header = ({ HandleThemeChange }) => { 4 | return ( 5 |
6 |

calc

7 | 8 |
9 | ); 10 | }; 11 | 12 | export default Header; 13 | -------------------------------------------------------------------------------- /src/components/header/ThemeButtons.jsx: -------------------------------------------------------------------------------- 1 | import { ThemeButton } from "@/components/styles/ThemeSwitching.styled"; 2 | import { basic, light, dark } from "@/components/styles/Theme.styled"; 3 | import ThemeNumbers from "@/components/header/ThemeNumbers"; 4 | 5 | const ThemeButtons = (props) => { 6 | return ( 7 | 29 | ); 30 | }; 31 | 32 | export default ThemeButtons; 33 | -------------------------------------------------------------------------------- /src/components/header/ThemeNumbers.jsx: -------------------------------------------------------------------------------- 1 | const ThemeNumbers = () => { 2 | return ( 3 |
4 |
5 | 1 6 |
7 |
8 | 2 9 |
10 |
11 | 3 12 |
13 |
14 | ); 15 | }; 16 | 17 | export default ThemeNumbers; 18 | -------------------------------------------------------------------------------- /src/components/header/ThemeSwitcher.jsx: -------------------------------------------------------------------------------- 1 | import ThemeButtons from "@/components/header/ThemeButtons"; 2 | 3 | const ThemeSwitcher = (props) => { 4 | return ( 5 |
6 |

THEME

7 | 8 |
9 | ); 10 | }; 11 | 12 | export default ThemeSwitcher; 13 | -------------------------------------------------------------------------------- /src/components/styles/GlobalStyles.js: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from "styled-components"; 2 | 3 | export const GlobalStyles = createGlobalStyle` 4 | 5 | body { 6 | background-color: ${({ theme }) => theme.colors.background}; 7 | color: ${({ theme }) => theme.colors.text}; 8 | } 9 | 10 | header { 11 | color: ${({ theme }) => theme.colors.headerText}; 12 | } 13 | .keypad { 14 | background-color: ${({ theme }) => theme.colors.keypad}; 15 | } 16 | .key, .operator { 17 | border-radius: 5px; 18 | background-color: ${({ theme }) => theme.colors.key}; 19 | box-shadow: 0 4px 0 0 ${({ theme }) => theme.colors.keyShadow}; 20 | color: ${({ theme }) => theme.colors.keyText}; 21 | &:hover { 22 | background-color: ${({ theme }) => theme.colors.numberKeyHover}; 23 | } 24 | } 25 | .screen { 26 | border-radius: 5px; 27 | background-color: ${({ theme }) => theme.colors.screen}; 28 | color: ${({ theme }) => theme.colors.screenText}; 29 | } 30 | .del, .reset { 31 | border-radius: 5px; 32 | background-color: ${({ theme }) => theme.colors.actionKey}; 33 | box-shadow: 0 4px 0 0 ${({ theme }) => theme.colors.actionKeyShadow}; 34 | color: ${({ theme }) => theme.colors.actionKeyText}; 35 | &:hover { 36 | background-color: ${({ theme }) => theme.colors.actionKeyHover}; 37 | } 38 | } 39 | .equals-key { 40 | border-radius: 5px; 41 | background-color: ${({ theme }) => theme.colors.equalsKey}; 42 | box-shadow: 0 4px 0 0 ${({ theme }) => theme.colors.equalsKeyShadow}; 43 | color: ${({ theme }) => theme.colors.equalsKeyText}; 44 | &:hover { 45 | background-color: ${({ theme }) => theme.colors.equalKeyHover}; 46 | } 47 | } 48 | .theme-value { 49 | background-color: ${({ theme }) => theme.colors.keypad}; 50 | } 51 | 52 | .theme-btn.active 53 | { 54 | background-color: ${({ theme }) => theme.colors.equalsKey}; 55 | &:hover { 56 | background-color: ${({ theme }) => theme.colors.equalKeyHover}; 57 | } 58 | } 59 | 60 | 61 | 62 | `; 63 | -------------------------------------------------------------------------------- /src/components/styles/Theme.styled.js: -------------------------------------------------------------------------------- 1 | export const basic = { 2 | name: "basic", 3 | colors: { 4 | headerText: "hsl(30,25%,89%)", 5 | background: "hsl(222, 26%, 31%)", 6 | keypad: "hsl(223, 31%, 20%)", 7 | screen: "hsl(224, 36%, 15%)", 8 | screenText: "hsl(30,25%,89%)", 9 | actionKey: "hsl(225, 21%, 49%)", 10 | actionKeyShadow: "hsl(224, 28%, 35%)", 11 | actionKeyText: "hsl(30, 25%, 89%)", 12 | equalsKey: "hsl(6, 63%, 50%)", 13 | equalsKeyShadow: "hsl(6, 70%, 34%)", 14 | equalsKeyText: "hsl(30, 25%, 89%)", 15 | key: "hsl(30, 25%, 89%)", 16 | keyText: "hsl(221, 14%, 31%)", 17 | keyShadow: "hsl(28, 16%, 65%)", 18 | numberKeyHover: "white", 19 | actionKeyHover: "#A2B2E1", 20 | equalKeyHover: "#F96B5B", 21 | }, 22 | }; 23 | 24 | export const light = { 25 | name: "light", 26 | colors: { 27 | headerText: "hsl(0, 0%, 20%)", 28 | background: "hsl(0, 0%, 90%)", 29 | keypad: "hsl(0, 5%, 81%)", 30 | screen: "hsl(0, 0%, 93%)", 31 | screenText: "hsl(0, 0%, 20%)", 32 | actionKey: "hsl(185, 42%, 37%)", 33 | actionKeyShadow: "hsl(185, 58%, 25%)", 34 | actionKeyText: "hsl(30, 25%, 89%)", 35 | equalsKey: "hsl(25, 98%, 40%)", 36 | equalsKeyShadow: "hsl(25, 99%, 27%)", 37 | equalsKeyText: "hsl(60, 10%, 19%)", 38 | key: "hsl(45, 7%, 89%)", 39 | keyText: "hsl(60, 10%, 19%)", 40 | keyShadow: "hsl(35, 11%, 61%)", 41 | numberKeyHover: "white", 42 | actionKeyHover: "#62B5BC", 43 | equalKeyHover: "#FF8A38", 44 | }, 45 | }; 46 | 47 | export const dark = { 48 | name: "dark", 49 | colors: { 50 | headerText: "hsl(52, 100%, 62%)", 51 | background: "hsl(268, 75%, 9%)", 52 | keypad: "hsl(268, 71%, 12%)", 53 | screen: "hsl(268, 71%, 12%)", 54 | screenText: "hsl(52, 100%, 62%)", 55 | actionKey: "hsl(281, 89%, 26%)", 56 | actionKeyShadow: "hsl(285, 91%, 52%)", 57 | actionKeyText: "hsl(30, 25%, 89%)", 58 | equalsKey: "hsl(176, 100%, 44%)", 59 | equalsKeyShadow: "hsl(177, 92%, 70%)", 60 | equalsKeyText: "hsl(198, 20%, 13%)", 61 | key: " hsl(268, 47%, 21%)", 62 | keyText: "hsl(52, 100%, 62%)", 63 | keyShadow: "hsl(290, 70%, 36%)", 64 | numberKeyHover: "#6C34AC", 65 | actionKeyHover: "#8631AF", 66 | equalKeyHover: "#93FFF8", 67 | }, 68 | }; 69 | -------------------------------------------------------------------------------- /src/components/styles/ThemeSwitching.styled.js: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const ThemeButton = styled.button` 4 | background-color: transparent; 5 | border: none; 6 | border-radius: 50%; 7 | width: 1rem; 8 | height: 0.8rem; 9 | cursor: pointer; 10 | 11 | `; 12 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import "@/assets/Styles.css"; 5 | 6 | ReactDOM.createRoot(document.getElementById('root')).render( 7 | 8 | 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import * as path from "path"; 3 | import react from "@vitejs/plugin-react"; 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | base:'/calculator/', 8 | plugins: [react()], 9 | resolve: { 10 | alias: [{ find: "@", replacement: path.resolve(__dirname, "./src") }], 11 | }, 12 | }); 13 | --------------------------------------------------------------------------------