├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE.md ├── README.md ├── package-lock.json ├── package.json ├── rollup.config.js ├── src ├── ReactSimpleImageViewer.tsx ├── index.ts └── styles.module.css ├── tsconfig.json └── tslint.json /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /dist 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /src 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "node" 4 | script: 'true' -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Alexander Tarasov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Simple Image Viewer 2 | 3 | [![npm version](https://badge.fury.io/js/react-simple-image-viewer.svg)](https://badge.fury.io/js/react-simple-image-viewer) 4 | [![Build Status](https://travis-ci.org/specter256/react-simple-image-viewer.svg?branch=master)](https://travis-ci.org/specter256/react-simple-image-viewer) 5 | 6 | Simple image viewer component for React. 7 | 8 | # Installation 9 | 10 | ```shell 11 | $ npm install react-simple-image-viewer 12 | ``` 13 | or 14 | ```shell 15 | $ yarn add react-simple-image-viewer 16 | ``` 17 | 18 | # Example 19 | 20 | ```jsx 21 | import React, { useState, useCallback } from 'react'; 22 | import { render } from 'react-dom'; 23 | import ImageViewer from 'react-simple-image-viewer'; 24 | 25 | function App() { 26 | const [currentImage, setCurrentImage] = useState(0); 27 | const [isViewerOpen, setIsViewerOpen] = useState(false); 28 | const images = [ 29 | 'http://placeimg.com/1200/800/nature', 30 | 'http://placeimg.com/800/1200/nature', 31 | 'http://placeimg.com/1920/1080/nature', 32 | 'http://placeimg.com/1500/500/nature', 33 | ]; 34 | 35 | const openImageViewer = useCallback((index) => { 36 | setCurrentImage(index); 37 | setIsViewerOpen(true); 38 | }, []); 39 | 40 | const closeImageViewer = () => { 41 | setCurrentImage(0); 42 | setIsViewerOpen(false); 43 | }; 44 | 45 | return ( 46 |
47 | {images.map((src, index) => ( 48 | openImageViewer(index) } 51 | width="300" 52 | key={ index } 53 | style={{ margin: '2px' }} 54 | alt="" 55 | /> 56 | ))} 57 | 58 | {isViewerOpen && ( 59 | 66 | )} 67 |
68 | ); 69 | } 70 | 71 | render(, document.getElementById('app')); 72 | ``` 73 | 74 | # Demo 75 | 76 | [Try out demo on CodeSandbox](https://codesandbox.io/s/react-simple-image-viewer-demo-4itlr) 77 | 78 | # API 79 | 80 | | Property | Type | Description | 81 | | :-------------- | :-------- | :-------------------------------------------------------------------------------- | 82 | | src | string[] | Array of image URLs | 83 | | currentIndex | number | Index of image in `src` property which will be shown first when viewer is opened | 84 | | onClose | function | Callback which will be called when viewer will closed | 85 | | backgroundStyle | object | Custom styles for background of modal window | 86 | | disableScroll | boolean | Disable scrolling images by mouse wheel | 87 | | closeOnClickOutside | boolean | Whether viewer should be closed when clicking outside of image | 88 | | closeComponent | JSX.Element | Custom component for the close button | 89 | | leftArrowComponent | JSX.Element | Custom component for the left arrow | 90 | | rightArrowComponent | JSX.Element | Custom component for the right arrow | 91 | 92 | # Shortcuts 93 | 94 | | Shortcut | Description | 95 | | :-------------- | :------------------------------ | 96 | | Escape | Close the viewer | 97 | | Right Arrow / l | Next image | 98 | | Left Arrow / h | Previous image | 99 | | Mouse wheel | Scrolling previous / next image | 100 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-simple-image-viewer", 3 | "version": "1.2.2", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "react-simple-image-viewer", 9 | "version": "1.2.2", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "@rollup/plugin-typescript": "^8.3.2", 13 | "@types/css-modules": "^1.0.2", 14 | "@types/react": "^18.0.12", 15 | "@types/react-dom": "^18.0.5", 16 | "postcss": "^8.4.14", 17 | "react": "^18.1.0", 18 | "react-dom": "^18.1.0", 19 | "rollup": "^2.75.5", 20 | "rollup-plugin-postcss": "^4.0.2", 21 | "tslib": "^2.4.0", 22 | "typescript": "^4.7.3" 23 | }, 24 | "peerDependencies": { 25 | "react": "^18.1.0", 26 | "react-dom": "^18.1.0" 27 | } 28 | }, 29 | "node_modules/@babel/code-frame": { 30 | "version": "7.10.4", 31 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 32 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 33 | "dev": true, 34 | "dependencies": { 35 | "@babel/highlight": "^7.10.4" 36 | } 37 | }, 38 | "node_modules/@babel/helper-validator-identifier": { 39 | "version": "7.10.4", 40 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 41 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 42 | "dev": true 43 | }, 44 | "node_modules/@babel/highlight": { 45 | "version": "7.10.4", 46 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 47 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 48 | "dev": true, 49 | "dependencies": { 50 | "@babel/helper-validator-identifier": "^7.10.4", 51 | "chalk": "^2.0.0", 52 | "js-tokens": "^4.0.0" 53 | } 54 | }, 55 | "node_modules/@rollup/plugin-typescript": { 56 | "version": "8.3.2", 57 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", 58 | "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", 59 | "dev": true, 60 | "dependencies": { 61 | "@rollup/pluginutils": "^3.1.0", 62 | "resolve": "^1.17.0" 63 | }, 64 | "engines": { 65 | "node": ">=8.0.0" 66 | }, 67 | "peerDependencies": { 68 | "rollup": "^2.14.0", 69 | "tslib": "*", 70 | "typescript": ">=3.7.0" 71 | } 72 | }, 73 | "node_modules/@rollup/pluginutils": { 74 | "version": "3.1.0", 75 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 76 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 77 | "dev": true, 78 | "dependencies": { 79 | "@types/estree": "0.0.39", 80 | "estree-walker": "^1.0.1", 81 | "picomatch": "^2.2.2" 82 | }, 83 | "engines": { 84 | "node": ">= 8.0.0" 85 | }, 86 | "peerDependencies": { 87 | "rollup": "^1.20.0||^2.0.0" 88 | } 89 | }, 90 | "node_modules/@trysound/sax": { 91 | "version": "0.2.0", 92 | "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", 93 | "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", 94 | "dev": true, 95 | "engines": { 96 | "node": ">=10.13.0" 97 | } 98 | }, 99 | "node_modules/@types/css-modules": { 100 | "version": "1.0.2", 101 | "resolved": "https://registry.npmjs.org/@types/css-modules/-/css-modules-1.0.2.tgz", 102 | "integrity": "sha512-tyqlt2GtEBdsxJylh78zSxI/kOJK5Iz8Ta4Fxr8KLTP8mD/IgMa84D8EKPS/AWCp+MDoctgJyikrVWY28GKmcg==", 103 | "dev": true 104 | }, 105 | "node_modules/@types/estree": { 106 | "version": "0.0.39", 107 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 108 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 109 | "dev": true 110 | }, 111 | "node_modules/@types/parse-json": { 112 | "version": "4.0.0", 113 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 114 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", 115 | "dev": true 116 | }, 117 | "node_modules/@types/prop-types": { 118 | "version": "15.7.3", 119 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", 120 | "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", 121 | "dev": true 122 | }, 123 | "node_modules/@types/react": { 124 | "version": "18.0.12", 125 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.12.tgz", 126 | "integrity": "sha512-duF1OTASSBQtcigUvhuiTB1Ya3OvSy+xORCiEf20H0P0lzx+/KeVsA99U5UjLXSbyo1DRJDlLKqTeM1ngosqtg==", 127 | "dev": true, 128 | "dependencies": { 129 | "@types/prop-types": "*", 130 | "@types/scheduler": "*", 131 | "csstype": "^3.0.2" 132 | } 133 | }, 134 | "node_modules/@types/react-dom": { 135 | "version": "18.0.5", 136 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", 137 | "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", 138 | "dev": true, 139 | "dependencies": { 140 | "@types/react": "*" 141 | } 142 | }, 143 | "node_modules/@types/scheduler": { 144 | "version": "0.16.1", 145 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", 146 | "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==", 147 | "dev": true 148 | }, 149 | "node_modules/ansi-styles": { 150 | "version": "3.2.1", 151 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 152 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 153 | "dev": true, 154 | "dependencies": { 155 | "color-convert": "^1.9.0" 156 | }, 157 | "engines": { 158 | "node": ">=4" 159 | } 160 | }, 161 | "node_modules/boolbase": { 162 | "version": "1.0.0", 163 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 164 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", 165 | "dev": true 166 | }, 167 | "node_modules/browserslist": { 168 | "version": "4.19.1", 169 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", 170 | "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", 171 | "dev": true, 172 | "dependencies": { 173 | "caniuse-lite": "^1.0.30001286", 174 | "electron-to-chromium": "^1.4.17", 175 | "escalade": "^3.1.1", 176 | "node-releases": "^2.0.1", 177 | "picocolors": "^1.0.0" 178 | }, 179 | "bin": { 180 | "browserslist": "cli.js" 181 | }, 182 | "engines": { 183 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 184 | }, 185 | "funding": { 186 | "type": "opencollective", 187 | "url": "https://opencollective.com/browserslist" 188 | } 189 | }, 190 | "node_modules/caniuse-api": { 191 | "version": "3.0.0", 192 | "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", 193 | "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", 194 | "dev": true, 195 | "dependencies": { 196 | "browserslist": "^4.0.0", 197 | "caniuse-lite": "^1.0.0", 198 | "lodash.memoize": "^4.1.2", 199 | "lodash.uniq": "^4.5.0" 200 | } 201 | }, 202 | "node_modules/caniuse-lite": { 203 | "version": "1.0.30001312", 204 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", 205 | "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", 206 | "dev": true, 207 | "funding": { 208 | "type": "opencollective", 209 | "url": "https://opencollective.com/browserslist" 210 | } 211 | }, 212 | "node_modules/chalk": { 213 | "version": "2.4.2", 214 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 215 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 216 | "dev": true, 217 | "dependencies": { 218 | "ansi-styles": "^3.2.1", 219 | "escape-string-regexp": "^1.0.5", 220 | "supports-color": "^5.3.0" 221 | }, 222 | "engines": { 223 | "node": ">=4" 224 | } 225 | }, 226 | "node_modules/color-convert": { 227 | "version": "1.9.3", 228 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 229 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 230 | "dev": true, 231 | "dependencies": { 232 | "color-name": "1.1.3" 233 | } 234 | }, 235 | "node_modules/color-name": { 236 | "version": "1.1.3", 237 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 238 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 239 | "dev": true 240 | }, 241 | "node_modules/colord": { 242 | "version": "2.9.2", 243 | "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", 244 | "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", 245 | "dev": true 246 | }, 247 | "node_modules/commander": { 248 | "version": "7.2.0", 249 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", 250 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", 251 | "dev": true, 252 | "engines": { 253 | "node": ">= 10" 254 | } 255 | }, 256 | "node_modules/concat-with-sourcemaps": { 257 | "version": "1.1.0", 258 | "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", 259 | "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", 260 | "dev": true, 261 | "dependencies": { 262 | "source-map": "^0.6.1" 263 | } 264 | }, 265 | "node_modules/css-declaration-sorter": { 266 | "version": "6.1.4", 267 | "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", 268 | "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", 269 | "dev": true, 270 | "dependencies": { 271 | "timsort": "^0.3.0" 272 | }, 273 | "engines": { 274 | "node": ">= 10" 275 | }, 276 | "peerDependencies": { 277 | "postcss": "^8.0.9" 278 | } 279 | }, 280 | "node_modules/css-select": { 281 | "version": "4.2.1", 282 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", 283 | "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", 284 | "dev": true, 285 | "dependencies": { 286 | "boolbase": "^1.0.0", 287 | "css-what": "^5.1.0", 288 | "domhandler": "^4.3.0", 289 | "domutils": "^2.8.0", 290 | "nth-check": "^2.0.1" 291 | }, 292 | "funding": { 293 | "url": "https://github.com/sponsors/fb55" 294 | } 295 | }, 296 | "node_modules/css-tree": { 297 | "version": "1.1.3", 298 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", 299 | "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", 300 | "dev": true, 301 | "dependencies": { 302 | "mdn-data": "2.0.14", 303 | "source-map": "^0.6.1" 304 | }, 305 | "engines": { 306 | "node": ">=8.0.0" 307 | } 308 | }, 309 | "node_modules/css-what": { 310 | "version": "5.1.0", 311 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", 312 | "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", 313 | "dev": true, 314 | "engines": { 315 | "node": ">= 6" 316 | }, 317 | "funding": { 318 | "url": "https://github.com/sponsors/fb55" 319 | } 320 | }, 321 | "node_modules/cssesc": { 322 | "version": "3.0.0", 323 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 324 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 325 | "dev": true, 326 | "bin": { 327 | "cssesc": "bin/cssesc" 328 | }, 329 | "engines": { 330 | "node": ">=4" 331 | } 332 | }, 333 | "node_modules/cssnano": { 334 | "version": "5.0.17", 335 | "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", 336 | "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", 337 | "dev": true, 338 | "dependencies": { 339 | "cssnano-preset-default": "^5.1.12", 340 | "lilconfig": "^2.0.3", 341 | "yaml": "^1.10.2" 342 | }, 343 | "engines": { 344 | "node": "^10 || ^12 || >=14.0" 345 | }, 346 | "funding": { 347 | "type": "opencollective", 348 | "url": "https://opencollective.com/cssnano" 349 | }, 350 | "peerDependencies": { 351 | "postcss": "^8.2.15" 352 | } 353 | }, 354 | "node_modules/cssnano-preset-default": { 355 | "version": "5.1.12", 356 | "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", 357 | "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", 358 | "dev": true, 359 | "dependencies": { 360 | "css-declaration-sorter": "^6.0.3", 361 | "cssnano-utils": "^3.0.2", 362 | "postcss-calc": "^8.2.0", 363 | "postcss-colormin": "^5.2.5", 364 | "postcss-convert-values": "^5.0.4", 365 | "postcss-discard-comments": "^5.0.3", 366 | "postcss-discard-duplicates": "^5.0.3", 367 | "postcss-discard-empty": "^5.0.3", 368 | "postcss-discard-overridden": "^5.0.4", 369 | "postcss-merge-longhand": "^5.0.6", 370 | "postcss-merge-rules": "^5.0.6", 371 | "postcss-minify-font-values": "^5.0.4", 372 | "postcss-minify-gradients": "^5.0.6", 373 | "postcss-minify-params": "^5.0.5", 374 | "postcss-minify-selectors": "^5.1.3", 375 | "postcss-normalize-charset": "^5.0.3", 376 | "postcss-normalize-display-values": "^5.0.3", 377 | "postcss-normalize-positions": "^5.0.4", 378 | "postcss-normalize-repeat-style": "^5.0.4", 379 | "postcss-normalize-string": "^5.0.4", 380 | "postcss-normalize-timing-functions": "^5.0.3", 381 | "postcss-normalize-unicode": "^5.0.4", 382 | "postcss-normalize-url": "^5.0.5", 383 | "postcss-normalize-whitespace": "^5.0.4", 384 | "postcss-ordered-values": "^5.0.5", 385 | "postcss-reduce-initial": "^5.0.3", 386 | "postcss-reduce-transforms": "^5.0.4", 387 | "postcss-svgo": "^5.0.4", 388 | "postcss-unique-selectors": "^5.0.4" 389 | }, 390 | "engines": { 391 | "node": "^10 || ^12 || >=14.0" 392 | }, 393 | "peerDependencies": { 394 | "postcss": "^8.2.15" 395 | } 396 | }, 397 | "node_modules/cssnano-utils": { 398 | "version": "3.0.2", 399 | "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", 400 | "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", 401 | "dev": true, 402 | "engines": { 403 | "node": "^10 || ^12 || >=14.0" 404 | }, 405 | "peerDependencies": { 406 | "postcss": "^8.2.15" 407 | } 408 | }, 409 | "node_modules/csso": { 410 | "version": "4.2.0", 411 | "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", 412 | "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", 413 | "dev": true, 414 | "dependencies": { 415 | "css-tree": "^1.1.2" 416 | }, 417 | "engines": { 418 | "node": ">=8.0.0" 419 | } 420 | }, 421 | "node_modules/csstype": { 422 | "version": "3.0.8", 423 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", 424 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", 425 | "dev": true 426 | }, 427 | "node_modules/dom-serializer": { 428 | "version": "1.3.2", 429 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", 430 | "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", 431 | "dev": true, 432 | "dependencies": { 433 | "domelementtype": "^2.0.1", 434 | "domhandler": "^4.2.0", 435 | "entities": "^2.0.0" 436 | }, 437 | "funding": { 438 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 439 | } 440 | }, 441 | "node_modules/domelementtype": { 442 | "version": "2.2.0", 443 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", 444 | "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", 445 | "dev": true, 446 | "funding": [ 447 | { 448 | "type": "github", 449 | "url": "https://github.com/sponsors/fb55" 450 | } 451 | ] 452 | }, 453 | "node_modules/domhandler": { 454 | "version": "4.3.0", 455 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", 456 | "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", 457 | "dev": true, 458 | "dependencies": { 459 | "domelementtype": "^2.2.0" 460 | }, 461 | "engines": { 462 | "node": ">= 4" 463 | }, 464 | "funding": { 465 | "url": "https://github.com/fb55/domhandler?sponsor=1" 466 | } 467 | }, 468 | "node_modules/domutils": { 469 | "version": "2.8.0", 470 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", 471 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", 472 | "dev": true, 473 | "dependencies": { 474 | "dom-serializer": "^1.0.1", 475 | "domelementtype": "^2.2.0", 476 | "domhandler": "^4.2.0" 477 | }, 478 | "funding": { 479 | "url": "https://github.com/fb55/domutils?sponsor=1" 480 | } 481 | }, 482 | "node_modules/electron-to-chromium": { 483 | "version": "1.4.68", 484 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", 485 | "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", 486 | "dev": true 487 | }, 488 | "node_modules/entities": { 489 | "version": "2.2.0", 490 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 491 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 492 | "dev": true, 493 | "funding": { 494 | "url": "https://github.com/fb55/entities?sponsor=1" 495 | } 496 | }, 497 | "node_modules/error-ex": { 498 | "version": "1.3.2", 499 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 500 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 501 | "dev": true, 502 | "dependencies": { 503 | "is-arrayish": "^0.2.1" 504 | } 505 | }, 506 | "node_modules/escalade": { 507 | "version": "3.1.1", 508 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 509 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 510 | "dev": true, 511 | "engines": { 512 | "node": ">=6" 513 | } 514 | }, 515 | "node_modules/escape-string-regexp": { 516 | "version": "1.0.5", 517 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 518 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 519 | "dev": true, 520 | "engines": { 521 | "node": ">=0.8.0" 522 | } 523 | }, 524 | "node_modules/estree-walker": { 525 | "version": "1.0.1", 526 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 527 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 528 | "dev": true 529 | }, 530 | "node_modules/eventemitter3": { 531 | "version": "4.0.7", 532 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 533 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", 534 | "dev": true 535 | }, 536 | "node_modules/fsevents": { 537 | "version": "2.3.2", 538 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 539 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 540 | "dev": true, 541 | "hasInstallScript": true, 542 | "optional": true, 543 | "os": [ 544 | "darwin" 545 | ], 546 | "engines": { 547 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 548 | } 549 | }, 550 | "node_modules/function-bind": { 551 | "version": "1.1.1", 552 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 553 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 554 | "dev": true 555 | }, 556 | "node_modules/generic-names": { 557 | "version": "4.0.0", 558 | "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", 559 | "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", 560 | "dev": true, 561 | "dependencies": { 562 | "loader-utils": "^3.2.0" 563 | } 564 | }, 565 | "node_modules/has": { 566 | "version": "1.0.3", 567 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 568 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 569 | "dev": true, 570 | "dependencies": { 571 | "function-bind": "^1.1.1" 572 | }, 573 | "engines": { 574 | "node": ">= 0.4.0" 575 | } 576 | }, 577 | "node_modules/has-flag": { 578 | "version": "3.0.0", 579 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 580 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 581 | "dev": true, 582 | "engines": { 583 | "node": ">=4" 584 | } 585 | }, 586 | "node_modules/icss-replace-symbols": { 587 | "version": "1.1.0", 588 | "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", 589 | "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", 590 | "dev": true 591 | }, 592 | "node_modules/icss-utils": { 593 | "version": "5.1.0", 594 | "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", 595 | "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", 596 | "dev": true, 597 | "engines": { 598 | "node": "^10 || ^12 || >= 14" 599 | }, 600 | "peerDependencies": { 601 | "postcss": "^8.1.0" 602 | } 603 | }, 604 | "node_modules/import-cwd": { 605 | "version": "3.0.0", 606 | "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", 607 | "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", 608 | "dev": true, 609 | "dependencies": { 610 | "import-from": "^3.0.0" 611 | }, 612 | "engines": { 613 | "node": ">=8" 614 | } 615 | }, 616 | "node_modules/import-from": { 617 | "version": "3.0.0", 618 | "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", 619 | "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", 620 | "dev": true, 621 | "dependencies": { 622 | "resolve-from": "^5.0.0" 623 | }, 624 | "engines": { 625 | "node": ">=8" 626 | } 627 | }, 628 | "node_modules/import-from/node_modules/resolve-from": { 629 | "version": "5.0.0", 630 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 631 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 632 | "dev": true, 633 | "engines": { 634 | "node": ">=8" 635 | } 636 | }, 637 | "node_modules/is-arrayish": { 638 | "version": "0.2.1", 639 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 640 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 641 | "dev": true 642 | }, 643 | "node_modules/is-core-module": { 644 | "version": "2.4.0", 645 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", 646 | "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", 647 | "dev": true, 648 | "dependencies": { 649 | "has": "^1.0.3" 650 | }, 651 | "funding": { 652 | "url": "https://github.com/sponsors/ljharb" 653 | } 654 | }, 655 | "node_modules/js-tokens": { 656 | "version": "4.0.0", 657 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 658 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 659 | "dev": true 660 | }, 661 | "node_modules/json-parse-even-better-errors": { 662 | "version": "2.3.1", 663 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 664 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 665 | "dev": true 666 | }, 667 | "node_modules/lilconfig": { 668 | "version": "2.0.4", 669 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", 670 | "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", 671 | "dev": true, 672 | "engines": { 673 | "node": ">=10" 674 | } 675 | }, 676 | "node_modules/lines-and-columns": { 677 | "version": "1.1.6", 678 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 679 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", 680 | "dev": true 681 | }, 682 | "node_modules/loader-utils": { 683 | "version": "3.2.1", 684 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", 685 | "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", 686 | "dev": true, 687 | "engines": { 688 | "node": ">= 12.13.0" 689 | } 690 | }, 691 | "node_modules/lodash.camelcase": { 692 | "version": "4.3.0", 693 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 694 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", 695 | "dev": true 696 | }, 697 | "node_modules/lodash.memoize": { 698 | "version": "4.1.2", 699 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", 700 | "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", 701 | "dev": true 702 | }, 703 | "node_modules/lodash.uniq": { 704 | "version": "4.5.0", 705 | "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", 706 | "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", 707 | "dev": true 708 | }, 709 | "node_modules/loose-envify": { 710 | "version": "1.4.0", 711 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 712 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 713 | "dev": true, 714 | "dependencies": { 715 | "js-tokens": "^3.0.0 || ^4.0.0" 716 | }, 717 | "bin": { 718 | "loose-envify": "cli.js" 719 | } 720 | }, 721 | "node_modules/mdn-data": { 722 | "version": "2.0.14", 723 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", 724 | "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", 725 | "dev": true 726 | }, 727 | "node_modules/nanoid": { 728 | "version": "3.3.7", 729 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 730 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 731 | "dev": true, 732 | "funding": [ 733 | { 734 | "type": "github", 735 | "url": "https://github.com/sponsors/ai" 736 | } 737 | ], 738 | "bin": { 739 | "nanoid": "bin/nanoid.cjs" 740 | }, 741 | "engines": { 742 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 743 | } 744 | }, 745 | "node_modules/node-releases": { 746 | "version": "2.0.2", 747 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", 748 | "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", 749 | "dev": true 750 | }, 751 | "node_modules/normalize-url": { 752 | "version": "6.1.0", 753 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", 754 | "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", 755 | "dev": true, 756 | "engines": { 757 | "node": ">=10" 758 | }, 759 | "funding": { 760 | "url": "https://github.com/sponsors/sindresorhus" 761 | } 762 | }, 763 | "node_modules/nth-check": { 764 | "version": "2.0.1", 765 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", 766 | "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", 767 | "dev": true, 768 | "dependencies": { 769 | "boolbase": "^1.0.0" 770 | }, 771 | "funding": { 772 | "url": "https://github.com/fb55/nth-check?sponsor=1" 773 | } 774 | }, 775 | "node_modules/p-finally": { 776 | "version": "1.0.0", 777 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 778 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 779 | "dev": true, 780 | "engines": { 781 | "node": ">=4" 782 | } 783 | }, 784 | "node_modules/p-queue": { 785 | "version": "6.6.2", 786 | "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", 787 | "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", 788 | "dev": true, 789 | "dependencies": { 790 | "eventemitter3": "^4.0.4", 791 | "p-timeout": "^3.2.0" 792 | }, 793 | "engines": { 794 | "node": ">=8" 795 | }, 796 | "funding": { 797 | "url": "https://github.com/sponsors/sindresorhus" 798 | } 799 | }, 800 | "node_modules/p-timeout": { 801 | "version": "3.2.0", 802 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", 803 | "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", 804 | "dev": true, 805 | "dependencies": { 806 | "p-finally": "^1.0.0" 807 | }, 808 | "engines": { 809 | "node": ">=8" 810 | } 811 | }, 812 | "node_modules/parent-module": { 813 | "version": "1.0.1", 814 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 815 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 816 | "dev": true, 817 | "dependencies": { 818 | "callsites": "^3.0.0" 819 | }, 820 | "engines": { 821 | "node": ">=6" 822 | } 823 | }, 824 | "node_modules/parent-module/node_modules/callsites": { 825 | "version": "3.1.0", 826 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 827 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 828 | "dev": true, 829 | "engines": { 830 | "node": ">=6" 831 | } 832 | }, 833 | "node_modules/path-parse": { 834 | "version": "1.0.7", 835 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 836 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 837 | "dev": true 838 | }, 839 | "node_modules/path-type": { 840 | "version": "4.0.0", 841 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 842 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 843 | "dev": true, 844 | "engines": { 845 | "node": ">=8" 846 | } 847 | }, 848 | "node_modules/picocolors": { 849 | "version": "1.0.0", 850 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 851 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 852 | "dev": true 853 | }, 854 | "node_modules/picomatch": { 855 | "version": "2.3.0", 856 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 857 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", 858 | "dev": true, 859 | "engines": { 860 | "node": ">=8.6" 861 | }, 862 | "funding": { 863 | "url": "https://github.com/sponsors/jonschlinkert" 864 | } 865 | }, 866 | "node_modules/pify": { 867 | "version": "5.0.0", 868 | "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", 869 | "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", 870 | "dev": true, 871 | "engines": { 872 | "node": ">=10" 873 | }, 874 | "funding": { 875 | "url": "https://github.com/sponsors/sindresorhus" 876 | } 877 | }, 878 | "node_modules/postcss": { 879 | "version": "8.4.31", 880 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", 881 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", 882 | "dev": true, 883 | "funding": [ 884 | { 885 | "type": "opencollective", 886 | "url": "https://opencollective.com/postcss/" 887 | }, 888 | { 889 | "type": "tidelift", 890 | "url": "https://tidelift.com/funding/github/npm/postcss" 891 | }, 892 | { 893 | "type": "github", 894 | "url": "https://github.com/sponsors/ai" 895 | } 896 | ], 897 | "dependencies": { 898 | "nanoid": "^3.3.6", 899 | "picocolors": "^1.0.0", 900 | "source-map-js": "^1.0.2" 901 | }, 902 | "engines": { 903 | "node": "^10 || ^12 || >=14" 904 | } 905 | }, 906 | "node_modules/postcss-calc": { 907 | "version": "8.2.4", 908 | "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", 909 | "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", 910 | "dev": true, 911 | "dependencies": { 912 | "postcss-selector-parser": "^6.0.9", 913 | "postcss-value-parser": "^4.2.0" 914 | }, 915 | "peerDependencies": { 916 | "postcss": "^8.2.2" 917 | } 918 | }, 919 | "node_modules/postcss-colormin": { 920 | "version": "5.2.5", 921 | "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", 922 | "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", 923 | "dev": true, 924 | "dependencies": { 925 | "browserslist": "^4.16.6", 926 | "caniuse-api": "^3.0.0", 927 | "colord": "^2.9.1", 928 | "postcss-value-parser": "^4.2.0" 929 | }, 930 | "engines": { 931 | "node": "^10 || ^12 || >=14.0" 932 | }, 933 | "peerDependencies": { 934 | "postcss": "^8.2.15" 935 | } 936 | }, 937 | "node_modules/postcss-convert-values": { 938 | "version": "5.0.4", 939 | "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", 940 | "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", 941 | "dev": true, 942 | "dependencies": { 943 | "postcss-value-parser": "^4.2.0" 944 | }, 945 | "engines": { 946 | "node": "^10 || ^12 || >=14.0" 947 | }, 948 | "peerDependencies": { 949 | "postcss": "^8.2.15" 950 | } 951 | }, 952 | "node_modules/postcss-discard-comments": { 953 | "version": "5.0.3", 954 | "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", 955 | "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", 956 | "dev": true, 957 | "engines": { 958 | "node": "^10 || ^12 || >=14.0" 959 | }, 960 | "peerDependencies": { 961 | "postcss": "^8.2.15" 962 | } 963 | }, 964 | "node_modules/postcss-discard-duplicates": { 965 | "version": "5.0.3", 966 | "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", 967 | "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", 968 | "dev": true, 969 | "engines": { 970 | "node": "^10 || ^12 || >=14.0" 971 | }, 972 | "peerDependencies": { 973 | "postcss": "^8.2.15" 974 | } 975 | }, 976 | "node_modules/postcss-discard-empty": { 977 | "version": "5.0.3", 978 | "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", 979 | "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", 980 | "dev": true, 981 | "engines": { 982 | "node": "^10 || ^12 || >=14.0" 983 | }, 984 | "peerDependencies": { 985 | "postcss": "^8.2.15" 986 | } 987 | }, 988 | "node_modules/postcss-discard-overridden": { 989 | "version": "5.0.4", 990 | "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", 991 | "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", 992 | "dev": true, 993 | "engines": { 994 | "node": "^10 || ^12 || >=14.0" 995 | }, 996 | "peerDependencies": { 997 | "postcss": "^8.2.15" 998 | } 999 | }, 1000 | "node_modules/postcss-load-config": { 1001 | "version": "3.0.1", 1002 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz", 1003 | "integrity": "sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==", 1004 | "dev": true, 1005 | "dependencies": { 1006 | "cosmiconfig": "^7.0.0", 1007 | "import-cwd": "^3.0.0" 1008 | }, 1009 | "engines": { 1010 | "node": ">= 10" 1011 | }, 1012 | "funding": { 1013 | "type": "opencollective", 1014 | "url": "https://opencollective.com/postcss/" 1015 | } 1016 | }, 1017 | "node_modules/postcss-load-config/node_modules/cosmiconfig": { 1018 | "version": "7.0.0", 1019 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", 1020 | "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", 1021 | "dev": true, 1022 | "dependencies": { 1023 | "@types/parse-json": "^4.0.0", 1024 | "import-fresh": "^3.2.1", 1025 | "parse-json": "^5.0.0", 1026 | "path-type": "^4.0.0", 1027 | "yaml": "^1.10.0" 1028 | }, 1029 | "engines": { 1030 | "node": ">=10" 1031 | } 1032 | }, 1033 | "node_modules/postcss-load-config/node_modules/import-fresh": { 1034 | "version": "3.3.0", 1035 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1036 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1037 | "dev": true, 1038 | "dependencies": { 1039 | "parent-module": "^1.0.0", 1040 | "resolve-from": "^4.0.0" 1041 | }, 1042 | "engines": { 1043 | "node": ">=6" 1044 | }, 1045 | "funding": { 1046 | "url": "https://github.com/sponsors/sindresorhus" 1047 | } 1048 | }, 1049 | "node_modules/postcss-load-config/node_modules/parse-json": { 1050 | "version": "5.2.0", 1051 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1052 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1053 | "dev": true, 1054 | "dependencies": { 1055 | "@babel/code-frame": "^7.0.0", 1056 | "error-ex": "^1.3.1", 1057 | "json-parse-even-better-errors": "^2.3.0", 1058 | "lines-and-columns": "^1.1.6" 1059 | }, 1060 | "engines": { 1061 | "node": ">=8" 1062 | }, 1063 | "funding": { 1064 | "url": "https://github.com/sponsors/sindresorhus" 1065 | } 1066 | }, 1067 | "node_modules/postcss-load-config/node_modules/resolve-from": { 1068 | "version": "4.0.0", 1069 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1070 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1071 | "dev": true, 1072 | "engines": { 1073 | "node": ">=4" 1074 | } 1075 | }, 1076 | "node_modules/postcss-merge-longhand": { 1077 | "version": "5.0.6", 1078 | "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", 1079 | "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", 1080 | "dev": true, 1081 | "dependencies": { 1082 | "postcss-value-parser": "^4.2.0", 1083 | "stylehacks": "^5.0.3" 1084 | }, 1085 | "engines": { 1086 | "node": "^10 || ^12 || >=14.0" 1087 | }, 1088 | "peerDependencies": { 1089 | "postcss": "^8.2.15" 1090 | } 1091 | }, 1092 | "node_modules/postcss-merge-rules": { 1093 | "version": "5.0.6", 1094 | "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", 1095 | "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", 1096 | "dev": true, 1097 | "dependencies": { 1098 | "browserslist": "^4.16.6", 1099 | "caniuse-api": "^3.0.0", 1100 | "cssnano-utils": "^3.0.2", 1101 | "postcss-selector-parser": "^6.0.5" 1102 | }, 1103 | "engines": { 1104 | "node": "^10 || ^12 || >=14.0" 1105 | }, 1106 | "peerDependencies": { 1107 | "postcss": "^8.2.15" 1108 | } 1109 | }, 1110 | "node_modules/postcss-minify-font-values": { 1111 | "version": "5.0.4", 1112 | "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", 1113 | "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", 1114 | "dev": true, 1115 | "dependencies": { 1116 | "postcss-value-parser": "^4.2.0" 1117 | }, 1118 | "engines": { 1119 | "node": "^10 || ^12 || >=14.0" 1120 | }, 1121 | "peerDependencies": { 1122 | "postcss": "^8.2.15" 1123 | } 1124 | }, 1125 | "node_modules/postcss-minify-gradients": { 1126 | "version": "5.0.6", 1127 | "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", 1128 | "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", 1129 | "dev": true, 1130 | "dependencies": { 1131 | "colord": "^2.9.1", 1132 | "cssnano-utils": "^3.0.2", 1133 | "postcss-value-parser": "^4.2.0" 1134 | }, 1135 | "engines": { 1136 | "node": "^10 || ^12 || >=14.0" 1137 | }, 1138 | "peerDependencies": { 1139 | "postcss": "^8.2.15" 1140 | } 1141 | }, 1142 | "node_modules/postcss-minify-params": { 1143 | "version": "5.0.5", 1144 | "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", 1145 | "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", 1146 | "dev": true, 1147 | "dependencies": { 1148 | "browserslist": "^4.16.6", 1149 | "cssnano-utils": "^3.0.2", 1150 | "postcss-value-parser": "^4.2.0" 1151 | }, 1152 | "engines": { 1153 | "node": "^10 || ^12 || >=14.0" 1154 | }, 1155 | "peerDependencies": { 1156 | "postcss": "^8.2.15" 1157 | } 1158 | }, 1159 | "node_modules/postcss-minify-selectors": { 1160 | "version": "5.1.3", 1161 | "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", 1162 | "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", 1163 | "dev": true, 1164 | "dependencies": { 1165 | "postcss-selector-parser": "^6.0.5" 1166 | }, 1167 | "engines": { 1168 | "node": "^10 || ^12 || >=14.0" 1169 | }, 1170 | "peerDependencies": { 1171 | "postcss": "^8.2.15" 1172 | } 1173 | }, 1174 | "node_modules/postcss-modules": { 1175 | "version": "4.3.1", 1176 | "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.1.tgz", 1177 | "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", 1178 | "dev": true, 1179 | "dependencies": { 1180 | "generic-names": "^4.0.0", 1181 | "icss-replace-symbols": "^1.1.0", 1182 | "lodash.camelcase": "^4.3.0", 1183 | "postcss-modules-extract-imports": "^3.0.0", 1184 | "postcss-modules-local-by-default": "^4.0.0", 1185 | "postcss-modules-scope": "^3.0.0", 1186 | "postcss-modules-values": "^4.0.0", 1187 | "string-hash": "^1.1.1" 1188 | }, 1189 | "peerDependencies": { 1190 | "postcss": "^8.0.0" 1191 | } 1192 | }, 1193 | "node_modules/postcss-modules-extract-imports": { 1194 | "version": "3.0.0", 1195 | "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", 1196 | "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", 1197 | "dev": true, 1198 | "engines": { 1199 | "node": "^10 || ^12 || >= 14" 1200 | }, 1201 | "peerDependencies": { 1202 | "postcss": "^8.1.0" 1203 | } 1204 | }, 1205 | "node_modules/postcss-modules-local-by-default": { 1206 | "version": "4.0.0", 1207 | "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", 1208 | "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", 1209 | "dev": true, 1210 | "dependencies": { 1211 | "icss-utils": "^5.0.0", 1212 | "postcss-selector-parser": "^6.0.2", 1213 | "postcss-value-parser": "^4.1.0" 1214 | }, 1215 | "engines": { 1216 | "node": "^10 || ^12 || >= 14" 1217 | }, 1218 | "peerDependencies": { 1219 | "postcss": "^8.1.0" 1220 | } 1221 | }, 1222 | "node_modules/postcss-modules-scope": { 1223 | "version": "3.0.0", 1224 | "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", 1225 | "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", 1226 | "dev": true, 1227 | "dependencies": { 1228 | "postcss-selector-parser": "^6.0.4" 1229 | }, 1230 | "engines": { 1231 | "node": "^10 || ^12 || >= 14" 1232 | }, 1233 | "peerDependencies": { 1234 | "postcss": "^8.1.0" 1235 | } 1236 | }, 1237 | "node_modules/postcss-modules-values": { 1238 | "version": "4.0.0", 1239 | "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", 1240 | "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", 1241 | "dev": true, 1242 | "dependencies": { 1243 | "icss-utils": "^5.0.0" 1244 | }, 1245 | "engines": { 1246 | "node": "^10 || ^12 || >= 14" 1247 | }, 1248 | "peerDependencies": { 1249 | "postcss": "^8.1.0" 1250 | } 1251 | }, 1252 | "node_modules/postcss-normalize-charset": { 1253 | "version": "5.0.3", 1254 | "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", 1255 | "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", 1256 | "dev": true, 1257 | "engines": { 1258 | "node": "^10 || ^12 || >=14.0" 1259 | }, 1260 | "peerDependencies": { 1261 | "postcss": "^8.2.15" 1262 | } 1263 | }, 1264 | "node_modules/postcss-normalize-display-values": { 1265 | "version": "5.0.3", 1266 | "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", 1267 | "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", 1268 | "dev": true, 1269 | "dependencies": { 1270 | "postcss-value-parser": "^4.2.0" 1271 | }, 1272 | "engines": { 1273 | "node": "^10 || ^12 || >=14.0" 1274 | }, 1275 | "peerDependencies": { 1276 | "postcss": "^8.2.15" 1277 | } 1278 | }, 1279 | "node_modules/postcss-normalize-positions": { 1280 | "version": "5.0.4", 1281 | "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", 1282 | "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", 1283 | "dev": true, 1284 | "dependencies": { 1285 | "postcss-value-parser": "^4.2.0" 1286 | }, 1287 | "engines": { 1288 | "node": "^10 || ^12 || >=14.0" 1289 | }, 1290 | "peerDependencies": { 1291 | "postcss": "^8.2.15" 1292 | } 1293 | }, 1294 | "node_modules/postcss-normalize-repeat-style": { 1295 | "version": "5.0.4", 1296 | "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", 1297 | "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", 1298 | "dev": true, 1299 | "dependencies": { 1300 | "postcss-value-parser": "^4.2.0" 1301 | }, 1302 | "engines": { 1303 | "node": "^10 || ^12 || >=14.0" 1304 | }, 1305 | "peerDependencies": { 1306 | "postcss": "^8.2.15" 1307 | } 1308 | }, 1309 | "node_modules/postcss-normalize-string": { 1310 | "version": "5.0.4", 1311 | "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", 1312 | "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", 1313 | "dev": true, 1314 | "dependencies": { 1315 | "postcss-value-parser": "^4.2.0" 1316 | }, 1317 | "engines": { 1318 | "node": "^10 || ^12 || >=14.0" 1319 | }, 1320 | "peerDependencies": { 1321 | "postcss": "^8.2.15" 1322 | } 1323 | }, 1324 | "node_modules/postcss-normalize-timing-functions": { 1325 | "version": "5.0.3", 1326 | "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", 1327 | "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", 1328 | "dev": true, 1329 | "dependencies": { 1330 | "postcss-value-parser": "^4.2.0" 1331 | }, 1332 | "engines": { 1333 | "node": "^10 || ^12 || >=14.0" 1334 | }, 1335 | "peerDependencies": { 1336 | "postcss": "^8.2.15" 1337 | } 1338 | }, 1339 | "node_modules/postcss-normalize-unicode": { 1340 | "version": "5.0.4", 1341 | "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", 1342 | "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", 1343 | "dev": true, 1344 | "dependencies": { 1345 | "browserslist": "^4.16.6", 1346 | "postcss-value-parser": "^4.2.0" 1347 | }, 1348 | "engines": { 1349 | "node": "^10 || ^12 || >=14.0" 1350 | }, 1351 | "peerDependencies": { 1352 | "postcss": "^8.2.15" 1353 | } 1354 | }, 1355 | "node_modules/postcss-normalize-url": { 1356 | "version": "5.0.5", 1357 | "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", 1358 | "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", 1359 | "dev": true, 1360 | "dependencies": { 1361 | "normalize-url": "^6.0.1", 1362 | "postcss-value-parser": "^4.2.0" 1363 | }, 1364 | "engines": { 1365 | "node": "^10 || ^12 || >=14.0" 1366 | }, 1367 | "peerDependencies": { 1368 | "postcss": "^8.2.15" 1369 | } 1370 | }, 1371 | "node_modules/postcss-normalize-whitespace": { 1372 | "version": "5.0.4", 1373 | "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", 1374 | "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", 1375 | "dev": true, 1376 | "dependencies": { 1377 | "postcss-value-parser": "^4.2.0" 1378 | }, 1379 | "engines": { 1380 | "node": "^10 || ^12 || >=14.0" 1381 | }, 1382 | "peerDependencies": { 1383 | "postcss": "^8.2.15" 1384 | } 1385 | }, 1386 | "node_modules/postcss-ordered-values": { 1387 | "version": "5.0.5", 1388 | "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", 1389 | "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", 1390 | "dev": true, 1391 | "dependencies": { 1392 | "cssnano-utils": "^3.0.2", 1393 | "postcss-value-parser": "^4.2.0" 1394 | }, 1395 | "engines": { 1396 | "node": "^10 || ^12 || >=14.0" 1397 | }, 1398 | "peerDependencies": { 1399 | "postcss": "^8.2.15" 1400 | } 1401 | }, 1402 | "node_modules/postcss-reduce-initial": { 1403 | "version": "5.0.3", 1404 | "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", 1405 | "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", 1406 | "dev": true, 1407 | "dependencies": { 1408 | "browserslist": "^4.16.6", 1409 | "caniuse-api": "^3.0.0" 1410 | }, 1411 | "engines": { 1412 | "node": "^10 || ^12 || >=14.0" 1413 | }, 1414 | "peerDependencies": { 1415 | "postcss": "^8.2.15" 1416 | } 1417 | }, 1418 | "node_modules/postcss-reduce-transforms": { 1419 | "version": "5.0.4", 1420 | "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", 1421 | "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", 1422 | "dev": true, 1423 | "dependencies": { 1424 | "postcss-value-parser": "^4.2.0" 1425 | }, 1426 | "engines": { 1427 | "node": "^10 || ^12 || >=14.0" 1428 | }, 1429 | "peerDependencies": { 1430 | "postcss": "^8.2.15" 1431 | } 1432 | }, 1433 | "node_modules/postcss-selector-parser": { 1434 | "version": "6.0.9", 1435 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", 1436 | "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", 1437 | "dev": true, 1438 | "dependencies": { 1439 | "cssesc": "^3.0.0", 1440 | "util-deprecate": "^1.0.2" 1441 | }, 1442 | "engines": { 1443 | "node": ">=4" 1444 | } 1445 | }, 1446 | "node_modules/postcss-svgo": { 1447 | "version": "5.0.4", 1448 | "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", 1449 | "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", 1450 | "dev": true, 1451 | "dependencies": { 1452 | "postcss-value-parser": "^4.2.0", 1453 | "svgo": "^2.7.0" 1454 | }, 1455 | "engines": { 1456 | "node": "^10 || ^12 || >=14.0" 1457 | }, 1458 | "peerDependencies": { 1459 | "postcss": "^8.2.15" 1460 | } 1461 | }, 1462 | "node_modules/postcss-unique-selectors": { 1463 | "version": "5.0.4", 1464 | "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", 1465 | "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", 1466 | "dev": true, 1467 | "dependencies": { 1468 | "postcss-selector-parser": "^6.0.5" 1469 | }, 1470 | "engines": { 1471 | "node": "^10 || ^12 || >=14.0" 1472 | }, 1473 | "peerDependencies": { 1474 | "postcss": "^8.2.15" 1475 | } 1476 | }, 1477 | "node_modules/postcss-value-parser": { 1478 | "version": "4.2.0", 1479 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 1480 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 1481 | "dev": true 1482 | }, 1483 | "node_modules/promise.series": { 1484 | "version": "0.2.0", 1485 | "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", 1486 | "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", 1487 | "dev": true, 1488 | "engines": { 1489 | "node": ">=0.12" 1490 | } 1491 | }, 1492 | "node_modules/react": { 1493 | "version": "18.1.0", 1494 | "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", 1495 | "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", 1496 | "dev": true, 1497 | "dependencies": { 1498 | "loose-envify": "^1.1.0" 1499 | }, 1500 | "engines": { 1501 | "node": ">=0.10.0" 1502 | } 1503 | }, 1504 | "node_modules/react-dom": { 1505 | "version": "18.1.0", 1506 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz", 1507 | "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==", 1508 | "dev": true, 1509 | "dependencies": { 1510 | "loose-envify": "^1.1.0", 1511 | "scheduler": "^0.22.0" 1512 | }, 1513 | "peerDependencies": { 1514 | "react": "^18.1.0" 1515 | } 1516 | }, 1517 | "node_modules/resolve": { 1518 | "version": "1.20.0", 1519 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 1520 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 1521 | "dev": true, 1522 | "dependencies": { 1523 | "is-core-module": "^2.2.0", 1524 | "path-parse": "^1.0.6" 1525 | }, 1526 | "funding": { 1527 | "url": "https://github.com/sponsors/ljharb" 1528 | } 1529 | }, 1530 | "node_modules/rollup": { 1531 | "version": "2.75.5", 1532 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.5.tgz", 1533 | "integrity": "sha512-JzNlJZDison3o2mOxVmb44Oz7t74EfSd1SQrplQk0wSaXV7uLQXtVdHbxlcT3w+8tZ1TL4r/eLfc7nAbz38BBA==", 1534 | "dev": true, 1535 | "bin": { 1536 | "rollup": "dist/bin/rollup" 1537 | }, 1538 | "engines": { 1539 | "node": ">=10.0.0" 1540 | }, 1541 | "optionalDependencies": { 1542 | "fsevents": "~2.3.2" 1543 | } 1544 | }, 1545 | "node_modules/rollup-plugin-postcss": { 1546 | "version": "4.0.2", 1547 | "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz", 1548 | "integrity": "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==", 1549 | "dev": true, 1550 | "dependencies": { 1551 | "chalk": "^4.1.0", 1552 | "concat-with-sourcemaps": "^1.1.0", 1553 | "cssnano": "^5.0.1", 1554 | "import-cwd": "^3.0.0", 1555 | "p-queue": "^6.6.2", 1556 | "pify": "^5.0.0", 1557 | "postcss-load-config": "^3.0.0", 1558 | "postcss-modules": "^4.0.0", 1559 | "promise.series": "^0.2.0", 1560 | "resolve": "^1.19.0", 1561 | "rollup-pluginutils": "^2.8.2", 1562 | "safe-identifier": "^0.4.2", 1563 | "style-inject": "^0.3.0" 1564 | }, 1565 | "engines": { 1566 | "node": ">=10" 1567 | }, 1568 | "peerDependencies": { 1569 | "postcss": "8.x" 1570 | } 1571 | }, 1572 | "node_modules/rollup-plugin-postcss/node_modules/ansi-styles": { 1573 | "version": "4.3.0", 1574 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1575 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1576 | "dev": true, 1577 | "dependencies": { 1578 | "color-convert": "^2.0.1" 1579 | }, 1580 | "engines": { 1581 | "node": ">=8" 1582 | }, 1583 | "funding": { 1584 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1585 | } 1586 | }, 1587 | "node_modules/rollup-plugin-postcss/node_modules/chalk": { 1588 | "version": "4.1.1", 1589 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 1590 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 1591 | "dev": true, 1592 | "dependencies": { 1593 | "ansi-styles": "^4.1.0", 1594 | "supports-color": "^7.1.0" 1595 | }, 1596 | "engines": { 1597 | "node": ">=10" 1598 | }, 1599 | "funding": { 1600 | "url": "https://github.com/chalk/chalk?sponsor=1" 1601 | } 1602 | }, 1603 | "node_modules/rollup-plugin-postcss/node_modules/color-convert": { 1604 | "version": "2.0.1", 1605 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1606 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1607 | "dev": true, 1608 | "dependencies": { 1609 | "color-name": "~1.1.4" 1610 | }, 1611 | "engines": { 1612 | "node": ">=7.0.0" 1613 | } 1614 | }, 1615 | "node_modules/rollup-plugin-postcss/node_modules/color-name": { 1616 | "version": "1.1.4", 1617 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1618 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1619 | "dev": true 1620 | }, 1621 | "node_modules/rollup-plugin-postcss/node_modules/has-flag": { 1622 | "version": "4.0.0", 1623 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1624 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1625 | "dev": true, 1626 | "engines": { 1627 | "node": ">=8" 1628 | } 1629 | }, 1630 | "node_modules/rollup-plugin-postcss/node_modules/supports-color": { 1631 | "version": "7.2.0", 1632 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1633 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1634 | "dev": true, 1635 | "dependencies": { 1636 | "has-flag": "^4.0.0" 1637 | }, 1638 | "engines": { 1639 | "node": ">=8" 1640 | } 1641 | }, 1642 | "node_modules/rollup-pluginutils": { 1643 | "version": "2.8.2", 1644 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 1645 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 1646 | "dev": true, 1647 | "dependencies": { 1648 | "estree-walker": "^0.6.1" 1649 | } 1650 | }, 1651 | "node_modules/rollup-pluginutils/node_modules/estree-walker": { 1652 | "version": "0.6.1", 1653 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1654 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 1655 | "dev": true 1656 | }, 1657 | "node_modules/safe-identifier": { 1658 | "version": "0.4.2", 1659 | "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", 1660 | "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", 1661 | "dev": true 1662 | }, 1663 | "node_modules/scheduler": { 1664 | "version": "0.22.0", 1665 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", 1666 | "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", 1667 | "dev": true, 1668 | "dependencies": { 1669 | "loose-envify": "^1.1.0" 1670 | } 1671 | }, 1672 | "node_modules/source-map": { 1673 | "version": "0.6.1", 1674 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1675 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1676 | "dev": true, 1677 | "engines": { 1678 | "node": ">=0.10.0" 1679 | } 1680 | }, 1681 | "node_modules/source-map-js": { 1682 | "version": "1.0.2", 1683 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1684 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1685 | "dev": true, 1686 | "engines": { 1687 | "node": ">=0.10.0" 1688 | } 1689 | }, 1690 | "node_modules/stable": { 1691 | "version": "0.1.8", 1692 | "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", 1693 | "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", 1694 | "dev": true 1695 | }, 1696 | "node_modules/string-hash": { 1697 | "version": "1.1.3", 1698 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", 1699 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", 1700 | "dev": true 1701 | }, 1702 | "node_modules/style-inject": { 1703 | "version": "0.3.0", 1704 | "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", 1705 | "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", 1706 | "dev": true 1707 | }, 1708 | "node_modules/stylehacks": { 1709 | "version": "5.0.3", 1710 | "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", 1711 | "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", 1712 | "dev": true, 1713 | "dependencies": { 1714 | "browserslist": "^4.16.6", 1715 | "postcss-selector-parser": "^6.0.4" 1716 | }, 1717 | "engines": { 1718 | "node": "^10 || ^12 || >=14.0" 1719 | }, 1720 | "peerDependencies": { 1721 | "postcss": "^8.2.15" 1722 | } 1723 | }, 1724 | "node_modules/supports-color": { 1725 | "version": "5.5.0", 1726 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1727 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1728 | "dev": true, 1729 | "dependencies": { 1730 | "has-flag": "^3.0.0" 1731 | }, 1732 | "engines": { 1733 | "node": ">=4" 1734 | } 1735 | }, 1736 | "node_modules/svgo": { 1737 | "version": "2.8.0", 1738 | "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", 1739 | "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", 1740 | "dev": true, 1741 | "dependencies": { 1742 | "@trysound/sax": "0.2.0", 1743 | "commander": "^7.2.0", 1744 | "css-select": "^4.1.3", 1745 | "css-tree": "^1.1.3", 1746 | "csso": "^4.2.0", 1747 | "picocolors": "^1.0.0", 1748 | "stable": "^0.1.8" 1749 | }, 1750 | "bin": { 1751 | "svgo": "bin/svgo" 1752 | }, 1753 | "engines": { 1754 | "node": ">=10.13.0" 1755 | } 1756 | }, 1757 | "node_modules/timsort": { 1758 | "version": "0.3.0", 1759 | "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", 1760 | "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", 1761 | "dev": true 1762 | }, 1763 | "node_modules/tslib": { 1764 | "version": "2.4.0", 1765 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 1766 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", 1767 | "dev": true 1768 | }, 1769 | "node_modules/typescript": { 1770 | "version": "4.7.3", 1771 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", 1772 | "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", 1773 | "dev": true, 1774 | "bin": { 1775 | "tsc": "bin/tsc", 1776 | "tsserver": "bin/tsserver" 1777 | }, 1778 | "engines": { 1779 | "node": ">=4.2.0" 1780 | } 1781 | }, 1782 | "node_modules/util-deprecate": { 1783 | "version": "1.0.2", 1784 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1785 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1786 | "dev": true 1787 | }, 1788 | "node_modules/yaml": { 1789 | "version": "1.10.2", 1790 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1791 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1792 | "dev": true, 1793 | "engines": { 1794 | "node": ">= 6" 1795 | } 1796 | } 1797 | }, 1798 | "dependencies": { 1799 | "@babel/code-frame": { 1800 | "version": "7.10.4", 1801 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 1802 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 1803 | "dev": true, 1804 | "requires": { 1805 | "@babel/highlight": "^7.10.4" 1806 | } 1807 | }, 1808 | "@babel/helper-validator-identifier": { 1809 | "version": "7.10.4", 1810 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 1811 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 1812 | "dev": true 1813 | }, 1814 | "@babel/highlight": { 1815 | "version": "7.10.4", 1816 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 1817 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 1818 | "dev": true, 1819 | "requires": { 1820 | "@babel/helper-validator-identifier": "^7.10.4", 1821 | "chalk": "^2.0.0", 1822 | "js-tokens": "^4.0.0" 1823 | } 1824 | }, 1825 | "@rollup/plugin-typescript": { 1826 | "version": "8.3.2", 1827 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", 1828 | "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", 1829 | "dev": true, 1830 | "requires": { 1831 | "@rollup/pluginutils": "^3.1.0", 1832 | "resolve": "^1.17.0" 1833 | } 1834 | }, 1835 | "@rollup/pluginutils": { 1836 | "version": "3.1.0", 1837 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 1838 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 1839 | "dev": true, 1840 | "requires": { 1841 | "@types/estree": "0.0.39", 1842 | "estree-walker": "^1.0.1", 1843 | "picomatch": "^2.2.2" 1844 | } 1845 | }, 1846 | "@trysound/sax": { 1847 | "version": "0.2.0", 1848 | "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", 1849 | "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", 1850 | "dev": true 1851 | }, 1852 | "@types/css-modules": { 1853 | "version": "1.0.2", 1854 | "resolved": "https://registry.npmjs.org/@types/css-modules/-/css-modules-1.0.2.tgz", 1855 | "integrity": "sha512-tyqlt2GtEBdsxJylh78zSxI/kOJK5Iz8Ta4Fxr8KLTP8mD/IgMa84D8EKPS/AWCp+MDoctgJyikrVWY28GKmcg==", 1856 | "dev": true 1857 | }, 1858 | "@types/estree": { 1859 | "version": "0.0.39", 1860 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 1861 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 1862 | "dev": true 1863 | }, 1864 | "@types/parse-json": { 1865 | "version": "4.0.0", 1866 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 1867 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", 1868 | "dev": true 1869 | }, 1870 | "@types/prop-types": { 1871 | "version": "15.7.3", 1872 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", 1873 | "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", 1874 | "dev": true 1875 | }, 1876 | "@types/react": { 1877 | "version": "18.0.12", 1878 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.12.tgz", 1879 | "integrity": "sha512-duF1OTASSBQtcigUvhuiTB1Ya3OvSy+xORCiEf20H0P0lzx+/KeVsA99U5UjLXSbyo1DRJDlLKqTeM1ngosqtg==", 1880 | "dev": true, 1881 | "requires": { 1882 | "@types/prop-types": "*", 1883 | "@types/scheduler": "*", 1884 | "csstype": "^3.0.2" 1885 | } 1886 | }, 1887 | "@types/react-dom": { 1888 | "version": "18.0.5", 1889 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", 1890 | "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", 1891 | "dev": true, 1892 | "requires": { 1893 | "@types/react": "*" 1894 | } 1895 | }, 1896 | "@types/scheduler": { 1897 | "version": "0.16.1", 1898 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", 1899 | "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==", 1900 | "dev": true 1901 | }, 1902 | "ansi-styles": { 1903 | "version": "3.2.1", 1904 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1905 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1906 | "dev": true, 1907 | "requires": { 1908 | "color-convert": "^1.9.0" 1909 | } 1910 | }, 1911 | "boolbase": { 1912 | "version": "1.0.0", 1913 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 1914 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", 1915 | "dev": true 1916 | }, 1917 | "browserslist": { 1918 | "version": "4.19.1", 1919 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", 1920 | "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", 1921 | "dev": true, 1922 | "requires": { 1923 | "caniuse-lite": "^1.0.30001286", 1924 | "electron-to-chromium": "^1.4.17", 1925 | "escalade": "^3.1.1", 1926 | "node-releases": "^2.0.1", 1927 | "picocolors": "^1.0.0" 1928 | } 1929 | }, 1930 | "caniuse-api": { 1931 | "version": "3.0.0", 1932 | "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", 1933 | "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", 1934 | "dev": true, 1935 | "requires": { 1936 | "browserslist": "^4.0.0", 1937 | "caniuse-lite": "^1.0.0", 1938 | "lodash.memoize": "^4.1.2", 1939 | "lodash.uniq": "^4.5.0" 1940 | } 1941 | }, 1942 | "caniuse-lite": { 1943 | "version": "1.0.30001312", 1944 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", 1945 | "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", 1946 | "dev": true 1947 | }, 1948 | "chalk": { 1949 | "version": "2.4.2", 1950 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1951 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1952 | "dev": true, 1953 | "requires": { 1954 | "ansi-styles": "^3.2.1", 1955 | "escape-string-regexp": "^1.0.5", 1956 | "supports-color": "^5.3.0" 1957 | } 1958 | }, 1959 | "color-convert": { 1960 | "version": "1.9.3", 1961 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1962 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1963 | "dev": true, 1964 | "requires": { 1965 | "color-name": "1.1.3" 1966 | } 1967 | }, 1968 | "color-name": { 1969 | "version": "1.1.3", 1970 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1971 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1972 | "dev": true 1973 | }, 1974 | "colord": { 1975 | "version": "2.9.2", 1976 | "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", 1977 | "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", 1978 | "dev": true 1979 | }, 1980 | "commander": { 1981 | "version": "7.2.0", 1982 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", 1983 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", 1984 | "dev": true 1985 | }, 1986 | "concat-with-sourcemaps": { 1987 | "version": "1.1.0", 1988 | "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", 1989 | "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", 1990 | "dev": true, 1991 | "requires": { 1992 | "source-map": "^0.6.1" 1993 | } 1994 | }, 1995 | "css-declaration-sorter": { 1996 | "version": "6.1.4", 1997 | "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", 1998 | "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", 1999 | "dev": true, 2000 | "requires": { 2001 | "timsort": "^0.3.0" 2002 | } 2003 | }, 2004 | "css-select": { 2005 | "version": "4.2.1", 2006 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", 2007 | "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", 2008 | "dev": true, 2009 | "requires": { 2010 | "boolbase": "^1.0.0", 2011 | "css-what": "^5.1.0", 2012 | "domhandler": "^4.3.0", 2013 | "domutils": "^2.8.0", 2014 | "nth-check": "^2.0.1" 2015 | } 2016 | }, 2017 | "css-tree": { 2018 | "version": "1.1.3", 2019 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", 2020 | "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", 2021 | "dev": true, 2022 | "requires": { 2023 | "mdn-data": "2.0.14", 2024 | "source-map": "^0.6.1" 2025 | } 2026 | }, 2027 | "css-what": { 2028 | "version": "5.1.0", 2029 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", 2030 | "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", 2031 | "dev": true 2032 | }, 2033 | "cssesc": { 2034 | "version": "3.0.0", 2035 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 2036 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 2037 | "dev": true 2038 | }, 2039 | "cssnano": { 2040 | "version": "5.0.17", 2041 | "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", 2042 | "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", 2043 | "dev": true, 2044 | "requires": { 2045 | "cssnano-preset-default": "^5.1.12", 2046 | "lilconfig": "^2.0.3", 2047 | "yaml": "^1.10.2" 2048 | } 2049 | }, 2050 | "cssnano-preset-default": { 2051 | "version": "5.1.12", 2052 | "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", 2053 | "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", 2054 | "dev": true, 2055 | "requires": { 2056 | "css-declaration-sorter": "^6.0.3", 2057 | "cssnano-utils": "^3.0.2", 2058 | "postcss-calc": "^8.2.0", 2059 | "postcss-colormin": "^5.2.5", 2060 | "postcss-convert-values": "^5.0.4", 2061 | "postcss-discard-comments": "^5.0.3", 2062 | "postcss-discard-duplicates": "^5.0.3", 2063 | "postcss-discard-empty": "^5.0.3", 2064 | "postcss-discard-overridden": "^5.0.4", 2065 | "postcss-merge-longhand": "^5.0.6", 2066 | "postcss-merge-rules": "^5.0.6", 2067 | "postcss-minify-font-values": "^5.0.4", 2068 | "postcss-minify-gradients": "^5.0.6", 2069 | "postcss-minify-params": "^5.0.5", 2070 | "postcss-minify-selectors": "^5.1.3", 2071 | "postcss-normalize-charset": "^5.0.3", 2072 | "postcss-normalize-display-values": "^5.0.3", 2073 | "postcss-normalize-positions": "^5.0.4", 2074 | "postcss-normalize-repeat-style": "^5.0.4", 2075 | "postcss-normalize-string": "^5.0.4", 2076 | "postcss-normalize-timing-functions": "^5.0.3", 2077 | "postcss-normalize-unicode": "^5.0.4", 2078 | "postcss-normalize-url": "^5.0.5", 2079 | "postcss-normalize-whitespace": "^5.0.4", 2080 | "postcss-ordered-values": "^5.0.5", 2081 | "postcss-reduce-initial": "^5.0.3", 2082 | "postcss-reduce-transforms": "^5.0.4", 2083 | "postcss-svgo": "^5.0.4", 2084 | "postcss-unique-selectors": "^5.0.4" 2085 | } 2086 | }, 2087 | "cssnano-utils": { 2088 | "version": "3.0.2", 2089 | "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", 2090 | "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", 2091 | "dev": true, 2092 | "requires": {} 2093 | }, 2094 | "csso": { 2095 | "version": "4.2.0", 2096 | "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", 2097 | "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", 2098 | "dev": true, 2099 | "requires": { 2100 | "css-tree": "^1.1.2" 2101 | } 2102 | }, 2103 | "csstype": { 2104 | "version": "3.0.8", 2105 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", 2106 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", 2107 | "dev": true 2108 | }, 2109 | "dom-serializer": { 2110 | "version": "1.3.2", 2111 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", 2112 | "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", 2113 | "dev": true, 2114 | "requires": { 2115 | "domelementtype": "^2.0.1", 2116 | "domhandler": "^4.2.0", 2117 | "entities": "^2.0.0" 2118 | } 2119 | }, 2120 | "domelementtype": { 2121 | "version": "2.2.0", 2122 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", 2123 | "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", 2124 | "dev": true 2125 | }, 2126 | "domhandler": { 2127 | "version": "4.3.0", 2128 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", 2129 | "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", 2130 | "dev": true, 2131 | "requires": { 2132 | "domelementtype": "^2.2.0" 2133 | } 2134 | }, 2135 | "domutils": { 2136 | "version": "2.8.0", 2137 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", 2138 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", 2139 | "dev": true, 2140 | "requires": { 2141 | "dom-serializer": "^1.0.1", 2142 | "domelementtype": "^2.2.0", 2143 | "domhandler": "^4.2.0" 2144 | } 2145 | }, 2146 | "electron-to-chromium": { 2147 | "version": "1.4.68", 2148 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", 2149 | "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", 2150 | "dev": true 2151 | }, 2152 | "entities": { 2153 | "version": "2.2.0", 2154 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 2155 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 2156 | "dev": true 2157 | }, 2158 | "error-ex": { 2159 | "version": "1.3.2", 2160 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 2161 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 2162 | "dev": true, 2163 | "requires": { 2164 | "is-arrayish": "^0.2.1" 2165 | } 2166 | }, 2167 | "escalade": { 2168 | "version": "3.1.1", 2169 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 2170 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 2171 | "dev": true 2172 | }, 2173 | "escape-string-regexp": { 2174 | "version": "1.0.5", 2175 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2176 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 2177 | "dev": true 2178 | }, 2179 | "estree-walker": { 2180 | "version": "1.0.1", 2181 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 2182 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 2183 | "dev": true 2184 | }, 2185 | "eventemitter3": { 2186 | "version": "4.0.7", 2187 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 2188 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", 2189 | "dev": true 2190 | }, 2191 | "fsevents": { 2192 | "version": "2.3.2", 2193 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2194 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2195 | "dev": true, 2196 | "optional": true 2197 | }, 2198 | "function-bind": { 2199 | "version": "1.1.1", 2200 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2201 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2202 | "dev": true 2203 | }, 2204 | "generic-names": { 2205 | "version": "4.0.0", 2206 | "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", 2207 | "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", 2208 | "dev": true, 2209 | "requires": { 2210 | "loader-utils": "^3.2.0" 2211 | } 2212 | }, 2213 | "has": { 2214 | "version": "1.0.3", 2215 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2216 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2217 | "dev": true, 2218 | "requires": { 2219 | "function-bind": "^1.1.1" 2220 | } 2221 | }, 2222 | "has-flag": { 2223 | "version": "3.0.0", 2224 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2225 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 2226 | "dev": true 2227 | }, 2228 | "icss-replace-symbols": { 2229 | "version": "1.1.0", 2230 | "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", 2231 | "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", 2232 | "dev": true 2233 | }, 2234 | "icss-utils": { 2235 | "version": "5.1.0", 2236 | "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", 2237 | "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", 2238 | "dev": true, 2239 | "requires": {} 2240 | }, 2241 | "import-cwd": { 2242 | "version": "3.0.0", 2243 | "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", 2244 | "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", 2245 | "dev": true, 2246 | "requires": { 2247 | "import-from": "^3.0.0" 2248 | } 2249 | }, 2250 | "import-from": { 2251 | "version": "3.0.0", 2252 | "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", 2253 | "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", 2254 | "dev": true, 2255 | "requires": { 2256 | "resolve-from": "^5.0.0" 2257 | }, 2258 | "dependencies": { 2259 | "resolve-from": { 2260 | "version": "5.0.0", 2261 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 2262 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 2263 | "dev": true 2264 | } 2265 | } 2266 | }, 2267 | "is-arrayish": { 2268 | "version": "0.2.1", 2269 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2270 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2271 | "dev": true 2272 | }, 2273 | "is-core-module": { 2274 | "version": "2.4.0", 2275 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", 2276 | "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", 2277 | "dev": true, 2278 | "requires": { 2279 | "has": "^1.0.3" 2280 | } 2281 | }, 2282 | "js-tokens": { 2283 | "version": "4.0.0", 2284 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2285 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2286 | "dev": true 2287 | }, 2288 | "json-parse-even-better-errors": { 2289 | "version": "2.3.1", 2290 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 2291 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 2292 | "dev": true 2293 | }, 2294 | "lilconfig": { 2295 | "version": "2.0.4", 2296 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", 2297 | "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", 2298 | "dev": true 2299 | }, 2300 | "lines-and-columns": { 2301 | "version": "1.1.6", 2302 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 2303 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", 2304 | "dev": true 2305 | }, 2306 | "loader-utils": { 2307 | "version": "3.2.1", 2308 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", 2309 | "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", 2310 | "dev": true 2311 | }, 2312 | "lodash.camelcase": { 2313 | "version": "4.3.0", 2314 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 2315 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", 2316 | "dev": true 2317 | }, 2318 | "lodash.memoize": { 2319 | "version": "4.1.2", 2320 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", 2321 | "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", 2322 | "dev": true 2323 | }, 2324 | "lodash.uniq": { 2325 | "version": "4.5.0", 2326 | "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", 2327 | "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", 2328 | "dev": true 2329 | }, 2330 | "loose-envify": { 2331 | "version": "1.4.0", 2332 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2333 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2334 | "dev": true, 2335 | "requires": { 2336 | "js-tokens": "^3.0.0 || ^4.0.0" 2337 | } 2338 | }, 2339 | "mdn-data": { 2340 | "version": "2.0.14", 2341 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", 2342 | "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", 2343 | "dev": true 2344 | }, 2345 | "nanoid": { 2346 | "version": "3.3.7", 2347 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 2348 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 2349 | "dev": true 2350 | }, 2351 | "node-releases": { 2352 | "version": "2.0.2", 2353 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", 2354 | "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", 2355 | "dev": true 2356 | }, 2357 | "normalize-url": { 2358 | "version": "6.1.0", 2359 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", 2360 | "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", 2361 | "dev": true 2362 | }, 2363 | "nth-check": { 2364 | "version": "2.0.1", 2365 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", 2366 | "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", 2367 | "dev": true, 2368 | "requires": { 2369 | "boolbase": "^1.0.0" 2370 | } 2371 | }, 2372 | "p-finally": { 2373 | "version": "1.0.0", 2374 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 2375 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 2376 | "dev": true 2377 | }, 2378 | "p-queue": { 2379 | "version": "6.6.2", 2380 | "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", 2381 | "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", 2382 | "dev": true, 2383 | "requires": { 2384 | "eventemitter3": "^4.0.4", 2385 | "p-timeout": "^3.2.0" 2386 | } 2387 | }, 2388 | "p-timeout": { 2389 | "version": "3.2.0", 2390 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", 2391 | "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", 2392 | "dev": true, 2393 | "requires": { 2394 | "p-finally": "^1.0.0" 2395 | } 2396 | }, 2397 | "parent-module": { 2398 | "version": "1.0.1", 2399 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2400 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2401 | "dev": true, 2402 | "requires": { 2403 | "callsites": "^3.0.0" 2404 | }, 2405 | "dependencies": { 2406 | "callsites": { 2407 | "version": "3.1.0", 2408 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2409 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2410 | "dev": true 2411 | } 2412 | } 2413 | }, 2414 | "path-parse": { 2415 | "version": "1.0.7", 2416 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2417 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2418 | "dev": true 2419 | }, 2420 | "path-type": { 2421 | "version": "4.0.0", 2422 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 2423 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 2424 | "dev": true 2425 | }, 2426 | "picocolors": { 2427 | "version": "1.0.0", 2428 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2429 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2430 | "dev": true 2431 | }, 2432 | "picomatch": { 2433 | "version": "2.3.0", 2434 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 2435 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", 2436 | "dev": true 2437 | }, 2438 | "pify": { 2439 | "version": "5.0.0", 2440 | "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", 2441 | "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", 2442 | "dev": true 2443 | }, 2444 | "postcss": { 2445 | "version": "8.4.31", 2446 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", 2447 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", 2448 | "dev": true, 2449 | "requires": { 2450 | "nanoid": "^3.3.6", 2451 | "picocolors": "^1.0.0", 2452 | "source-map-js": "^1.0.2" 2453 | } 2454 | }, 2455 | "postcss-calc": { 2456 | "version": "8.2.4", 2457 | "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", 2458 | "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", 2459 | "dev": true, 2460 | "requires": { 2461 | "postcss-selector-parser": "^6.0.9", 2462 | "postcss-value-parser": "^4.2.0" 2463 | } 2464 | }, 2465 | "postcss-colormin": { 2466 | "version": "5.2.5", 2467 | "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", 2468 | "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", 2469 | "dev": true, 2470 | "requires": { 2471 | "browserslist": "^4.16.6", 2472 | "caniuse-api": "^3.0.0", 2473 | "colord": "^2.9.1", 2474 | "postcss-value-parser": "^4.2.0" 2475 | } 2476 | }, 2477 | "postcss-convert-values": { 2478 | "version": "5.0.4", 2479 | "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", 2480 | "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", 2481 | "dev": true, 2482 | "requires": { 2483 | "postcss-value-parser": "^4.2.0" 2484 | } 2485 | }, 2486 | "postcss-discard-comments": { 2487 | "version": "5.0.3", 2488 | "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", 2489 | "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", 2490 | "dev": true, 2491 | "requires": {} 2492 | }, 2493 | "postcss-discard-duplicates": { 2494 | "version": "5.0.3", 2495 | "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", 2496 | "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", 2497 | "dev": true, 2498 | "requires": {} 2499 | }, 2500 | "postcss-discard-empty": { 2501 | "version": "5.0.3", 2502 | "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", 2503 | "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", 2504 | "dev": true, 2505 | "requires": {} 2506 | }, 2507 | "postcss-discard-overridden": { 2508 | "version": "5.0.4", 2509 | "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", 2510 | "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", 2511 | "dev": true, 2512 | "requires": {} 2513 | }, 2514 | "postcss-load-config": { 2515 | "version": "3.0.1", 2516 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz", 2517 | "integrity": "sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==", 2518 | "dev": true, 2519 | "requires": { 2520 | "cosmiconfig": "^7.0.0", 2521 | "import-cwd": "^3.0.0" 2522 | }, 2523 | "dependencies": { 2524 | "cosmiconfig": { 2525 | "version": "7.0.0", 2526 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", 2527 | "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", 2528 | "dev": true, 2529 | "requires": { 2530 | "@types/parse-json": "^4.0.0", 2531 | "import-fresh": "^3.2.1", 2532 | "parse-json": "^5.0.0", 2533 | "path-type": "^4.0.0", 2534 | "yaml": "^1.10.0" 2535 | } 2536 | }, 2537 | "import-fresh": { 2538 | "version": "3.3.0", 2539 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 2540 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 2541 | "dev": true, 2542 | "requires": { 2543 | "parent-module": "^1.0.0", 2544 | "resolve-from": "^4.0.0" 2545 | } 2546 | }, 2547 | "parse-json": { 2548 | "version": "5.2.0", 2549 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 2550 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 2551 | "dev": true, 2552 | "requires": { 2553 | "@babel/code-frame": "^7.0.0", 2554 | "error-ex": "^1.3.1", 2555 | "json-parse-even-better-errors": "^2.3.0", 2556 | "lines-and-columns": "^1.1.6" 2557 | } 2558 | }, 2559 | "resolve-from": { 2560 | "version": "4.0.0", 2561 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2562 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2563 | "dev": true 2564 | } 2565 | } 2566 | }, 2567 | "postcss-merge-longhand": { 2568 | "version": "5.0.6", 2569 | "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", 2570 | "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", 2571 | "dev": true, 2572 | "requires": { 2573 | "postcss-value-parser": "^4.2.0", 2574 | "stylehacks": "^5.0.3" 2575 | } 2576 | }, 2577 | "postcss-merge-rules": { 2578 | "version": "5.0.6", 2579 | "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", 2580 | "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", 2581 | "dev": true, 2582 | "requires": { 2583 | "browserslist": "^4.16.6", 2584 | "caniuse-api": "^3.0.0", 2585 | "cssnano-utils": "^3.0.2", 2586 | "postcss-selector-parser": "^6.0.5" 2587 | } 2588 | }, 2589 | "postcss-minify-font-values": { 2590 | "version": "5.0.4", 2591 | "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", 2592 | "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", 2593 | "dev": true, 2594 | "requires": { 2595 | "postcss-value-parser": "^4.2.0" 2596 | } 2597 | }, 2598 | "postcss-minify-gradients": { 2599 | "version": "5.0.6", 2600 | "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", 2601 | "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", 2602 | "dev": true, 2603 | "requires": { 2604 | "colord": "^2.9.1", 2605 | "cssnano-utils": "^3.0.2", 2606 | "postcss-value-parser": "^4.2.0" 2607 | } 2608 | }, 2609 | "postcss-minify-params": { 2610 | "version": "5.0.5", 2611 | "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", 2612 | "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", 2613 | "dev": true, 2614 | "requires": { 2615 | "browserslist": "^4.16.6", 2616 | "cssnano-utils": "^3.0.2", 2617 | "postcss-value-parser": "^4.2.0" 2618 | } 2619 | }, 2620 | "postcss-minify-selectors": { 2621 | "version": "5.1.3", 2622 | "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", 2623 | "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", 2624 | "dev": true, 2625 | "requires": { 2626 | "postcss-selector-parser": "^6.0.5" 2627 | } 2628 | }, 2629 | "postcss-modules": { 2630 | "version": "4.3.1", 2631 | "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.1.tgz", 2632 | "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", 2633 | "dev": true, 2634 | "requires": { 2635 | "generic-names": "^4.0.0", 2636 | "icss-replace-symbols": "^1.1.0", 2637 | "lodash.camelcase": "^4.3.0", 2638 | "postcss-modules-extract-imports": "^3.0.0", 2639 | "postcss-modules-local-by-default": "^4.0.0", 2640 | "postcss-modules-scope": "^3.0.0", 2641 | "postcss-modules-values": "^4.0.0", 2642 | "string-hash": "^1.1.1" 2643 | } 2644 | }, 2645 | "postcss-modules-extract-imports": { 2646 | "version": "3.0.0", 2647 | "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", 2648 | "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", 2649 | "dev": true, 2650 | "requires": {} 2651 | }, 2652 | "postcss-modules-local-by-default": { 2653 | "version": "4.0.0", 2654 | "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", 2655 | "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", 2656 | "dev": true, 2657 | "requires": { 2658 | "icss-utils": "^5.0.0", 2659 | "postcss-selector-parser": "^6.0.2", 2660 | "postcss-value-parser": "^4.1.0" 2661 | } 2662 | }, 2663 | "postcss-modules-scope": { 2664 | "version": "3.0.0", 2665 | "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", 2666 | "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", 2667 | "dev": true, 2668 | "requires": { 2669 | "postcss-selector-parser": "^6.0.4" 2670 | } 2671 | }, 2672 | "postcss-modules-values": { 2673 | "version": "4.0.0", 2674 | "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", 2675 | "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", 2676 | "dev": true, 2677 | "requires": { 2678 | "icss-utils": "^5.0.0" 2679 | } 2680 | }, 2681 | "postcss-normalize-charset": { 2682 | "version": "5.0.3", 2683 | "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", 2684 | "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", 2685 | "dev": true, 2686 | "requires": {} 2687 | }, 2688 | "postcss-normalize-display-values": { 2689 | "version": "5.0.3", 2690 | "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", 2691 | "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", 2692 | "dev": true, 2693 | "requires": { 2694 | "postcss-value-parser": "^4.2.0" 2695 | } 2696 | }, 2697 | "postcss-normalize-positions": { 2698 | "version": "5.0.4", 2699 | "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", 2700 | "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", 2701 | "dev": true, 2702 | "requires": { 2703 | "postcss-value-parser": "^4.2.0" 2704 | } 2705 | }, 2706 | "postcss-normalize-repeat-style": { 2707 | "version": "5.0.4", 2708 | "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", 2709 | "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", 2710 | "dev": true, 2711 | "requires": { 2712 | "postcss-value-parser": "^4.2.0" 2713 | } 2714 | }, 2715 | "postcss-normalize-string": { 2716 | "version": "5.0.4", 2717 | "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", 2718 | "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", 2719 | "dev": true, 2720 | "requires": { 2721 | "postcss-value-parser": "^4.2.0" 2722 | } 2723 | }, 2724 | "postcss-normalize-timing-functions": { 2725 | "version": "5.0.3", 2726 | "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", 2727 | "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", 2728 | "dev": true, 2729 | "requires": { 2730 | "postcss-value-parser": "^4.2.0" 2731 | } 2732 | }, 2733 | "postcss-normalize-unicode": { 2734 | "version": "5.0.4", 2735 | "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", 2736 | "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", 2737 | "dev": true, 2738 | "requires": { 2739 | "browserslist": "^4.16.6", 2740 | "postcss-value-parser": "^4.2.0" 2741 | } 2742 | }, 2743 | "postcss-normalize-url": { 2744 | "version": "5.0.5", 2745 | "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", 2746 | "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", 2747 | "dev": true, 2748 | "requires": { 2749 | "normalize-url": "^6.0.1", 2750 | "postcss-value-parser": "^4.2.0" 2751 | } 2752 | }, 2753 | "postcss-normalize-whitespace": { 2754 | "version": "5.0.4", 2755 | "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", 2756 | "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", 2757 | "dev": true, 2758 | "requires": { 2759 | "postcss-value-parser": "^4.2.0" 2760 | } 2761 | }, 2762 | "postcss-ordered-values": { 2763 | "version": "5.0.5", 2764 | "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", 2765 | "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", 2766 | "dev": true, 2767 | "requires": { 2768 | "cssnano-utils": "^3.0.2", 2769 | "postcss-value-parser": "^4.2.0" 2770 | } 2771 | }, 2772 | "postcss-reduce-initial": { 2773 | "version": "5.0.3", 2774 | "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", 2775 | "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", 2776 | "dev": true, 2777 | "requires": { 2778 | "browserslist": "^4.16.6", 2779 | "caniuse-api": "^3.0.0" 2780 | } 2781 | }, 2782 | "postcss-reduce-transforms": { 2783 | "version": "5.0.4", 2784 | "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", 2785 | "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", 2786 | "dev": true, 2787 | "requires": { 2788 | "postcss-value-parser": "^4.2.0" 2789 | } 2790 | }, 2791 | "postcss-selector-parser": { 2792 | "version": "6.0.9", 2793 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", 2794 | "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", 2795 | "dev": true, 2796 | "requires": { 2797 | "cssesc": "^3.0.0", 2798 | "util-deprecate": "^1.0.2" 2799 | } 2800 | }, 2801 | "postcss-svgo": { 2802 | "version": "5.0.4", 2803 | "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", 2804 | "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", 2805 | "dev": true, 2806 | "requires": { 2807 | "postcss-value-parser": "^4.2.0", 2808 | "svgo": "^2.7.0" 2809 | } 2810 | }, 2811 | "postcss-unique-selectors": { 2812 | "version": "5.0.4", 2813 | "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", 2814 | "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", 2815 | "dev": true, 2816 | "requires": { 2817 | "postcss-selector-parser": "^6.0.5" 2818 | } 2819 | }, 2820 | "postcss-value-parser": { 2821 | "version": "4.2.0", 2822 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 2823 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 2824 | "dev": true 2825 | }, 2826 | "promise.series": { 2827 | "version": "0.2.0", 2828 | "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", 2829 | "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", 2830 | "dev": true 2831 | }, 2832 | "react": { 2833 | "version": "18.1.0", 2834 | "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", 2835 | "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", 2836 | "dev": true, 2837 | "requires": { 2838 | "loose-envify": "^1.1.0" 2839 | } 2840 | }, 2841 | "react-dom": { 2842 | "version": "18.1.0", 2843 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz", 2844 | "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==", 2845 | "dev": true, 2846 | "requires": { 2847 | "loose-envify": "^1.1.0", 2848 | "scheduler": "^0.22.0" 2849 | } 2850 | }, 2851 | "resolve": { 2852 | "version": "1.20.0", 2853 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 2854 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 2855 | "dev": true, 2856 | "requires": { 2857 | "is-core-module": "^2.2.0", 2858 | "path-parse": "^1.0.6" 2859 | } 2860 | }, 2861 | "rollup": { 2862 | "version": "2.75.5", 2863 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.5.tgz", 2864 | "integrity": "sha512-JzNlJZDison3o2mOxVmb44Oz7t74EfSd1SQrplQk0wSaXV7uLQXtVdHbxlcT3w+8tZ1TL4r/eLfc7nAbz38BBA==", 2865 | "dev": true, 2866 | "requires": { 2867 | "fsevents": "~2.3.2" 2868 | } 2869 | }, 2870 | "rollup-plugin-postcss": { 2871 | "version": "4.0.2", 2872 | "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz", 2873 | "integrity": "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==", 2874 | "dev": true, 2875 | "requires": { 2876 | "chalk": "^4.1.0", 2877 | "concat-with-sourcemaps": "^1.1.0", 2878 | "cssnano": "^5.0.1", 2879 | "import-cwd": "^3.0.0", 2880 | "p-queue": "^6.6.2", 2881 | "pify": "^5.0.0", 2882 | "postcss-load-config": "^3.0.0", 2883 | "postcss-modules": "^4.0.0", 2884 | "promise.series": "^0.2.0", 2885 | "resolve": "^1.19.0", 2886 | "rollup-pluginutils": "^2.8.2", 2887 | "safe-identifier": "^0.4.2", 2888 | "style-inject": "^0.3.0" 2889 | }, 2890 | "dependencies": { 2891 | "ansi-styles": { 2892 | "version": "4.3.0", 2893 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2894 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2895 | "dev": true, 2896 | "requires": { 2897 | "color-convert": "^2.0.1" 2898 | } 2899 | }, 2900 | "chalk": { 2901 | "version": "4.1.1", 2902 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 2903 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 2904 | "dev": true, 2905 | "requires": { 2906 | "ansi-styles": "^4.1.0", 2907 | "supports-color": "^7.1.0" 2908 | } 2909 | }, 2910 | "color-convert": { 2911 | "version": "2.0.1", 2912 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2913 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2914 | "dev": true, 2915 | "requires": { 2916 | "color-name": "~1.1.4" 2917 | } 2918 | }, 2919 | "color-name": { 2920 | "version": "1.1.4", 2921 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2922 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2923 | "dev": true 2924 | }, 2925 | "has-flag": { 2926 | "version": "4.0.0", 2927 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2928 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2929 | "dev": true 2930 | }, 2931 | "supports-color": { 2932 | "version": "7.2.0", 2933 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2934 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2935 | "dev": true, 2936 | "requires": { 2937 | "has-flag": "^4.0.0" 2938 | } 2939 | } 2940 | } 2941 | }, 2942 | "rollup-pluginutils": { 2943 | "version": "2.8.2", 2944 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 2945 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 2946 | "dev": true, 2947 | "requires": { 2948 | "estree-walker": "^0.6.1" 2949 | }, 2950 | "dependencies": { 2951 | "estree-walker": { 2952 | "version": "0.6.1", 2953 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 2954 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 2955 | "dev": true 2956 | } 2957 | } 2958 | }, 2959 | "safe-identifier": { 2960 | "version": "0.4.2", 2961 | "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", 2962 | "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", 2963 | "dev": true 2964 | }, 2965 | "scheduler": { 2966 | "version": "0.22.0", 2967 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", 2968 | "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", 2969 | "dev": true, 2970 | "requires": { 2971 | "loose-envify": "^1.1.0" 2972 | } 2973 | }, 2974 | "source-map": { 2975 | "version": "0.6.1", 2976 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2977 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2978 | "dev": true 2979 | }, 2980 | "source-map-js": { 2981 | "version": "1.0.2", 2982 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2983 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2984 | "dev": true 2985 | }, 2986 | "stable": { 2987 | "version": "0.1.8", 2988 | "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", 2989 | "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", 2990 | "dev": true 2991 | }, 2992 | "string-hash": { 2993 | "version": "1.1.3", 2994 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", 2995 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", 2996 | "dev": true 2997 | }, 2998 | "style-inject": { 2999 | "version": "0.3.0", 3000 | "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", 3001 | "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", 3002 | "dev": true 3003 | }, 3004 | "stylehacks": { 3005 | "version": "5.0.3", 3006 | "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", 3007 | "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", 3008 | "dev": true, 3009 | "requires": { 3010 | "browserslist": "^4.16.6", 3011 | "postcss-selector-parser": "^6.0.4" 3012 | } 3013 | }, 3014 | "supports-color": { 3015 | "version": "5.5.0", 3016 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3017 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3018 | "dev": true, 3019 | "requires": { 3020 | "has-flag": "^3.0.0" 3021 | } 3022 | }, 3023 | "svgo": { 3024 | "version": "2.8.0", 3025 | "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", 3026 | "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", 3027 | "dev": true, 3028 | "requires": { 3029 | "@trysound/sax": "0.2.0", 3030 | "commander": "^7.2.0", 3031 | "css-select": "^4.1.3", 3032 | "css-tree": "^1.1.3", 3033 | "csso": "^4.2.0", 3034 | "picocolors": "^1.0.0", 3035 | "stable": "^0.1.8" 3036 | } 3037 | }, 3038 | "timsort": { 3039 | "version": "0.3.0", 3040 | "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", 3041 | "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", 3042 | "dev": true 3043 | }, 3044 | "tslib": { 3045 | "version": "2.4.0", 3046 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 3047 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", 3048 | "dev": true 3049 | }, 3050 | "typescript": { 3051 | "version": "4.7.3", 3052 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", 3053 | "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", 3054 | "dev": true 3055 | }, 3056 | "util-deprecate": { 3057 | "version": "1.0.2", 3058 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3059 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3060 | "dev": true 3061 | }, 3062 | "yaml": { 3063 | "version": "1.10.2", 3064 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 3065 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 3066 | "dev": true 3067 | } 3068 | } 3069 | } 3070 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-simple-image-viewer", 3 | "version": "1.2.2", 4 | "description": "Simple image viewer component for React", 5 | "main": "dist/index.cjs.js", 6 | "module": "dist/index.esm.js", 7 | "types": "dist/types", 8 | "scripts": { 9 | "build": "rollup -c", 10 | "prepare": "npm run build" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/specter256/react-simple-image-viewer.git" 15 | }, 16 | "author": "Alexander Tarasov", 17 | "license": "MIT", 18 | "keywords": [ 19 | "react", 20 | "reactjs", 21 | "react-component", 22 | "image", 23 | "images", 24 | "image-viewer", 25 | "lightbox", 26 | "gallery" 27 | ], 28 | "devDependencies": { 29 | "@rollup/plugin-typescript": "^8.3.2", 30 | "@types/css-modules": "^1.0.2", 31 | "@types/react": "^18.0.12", 32 | "@types/react-dom": "^18.0.5", 33 | "postcss": "^8.4.14", 34 | "react": "^18.1.0", 35 | "react-dom": "^18.1.0", 36 | "rollup": "^2.75.5", 37 | "rollup-plugin-postcss": "^4.0.2", 38 | "tslib": "^2.4.0", 39 | "typescript": "^4.7.3" 40 | }, 41 | "peerDependencies": { 42 | "react": "^18.1.0", 43 | "react-dom": "^18.1.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import typescript from "@rollup/plugin-typescript"; 2 | import postcss from "rollup-plugin-postcss"; 3 | 4 | const outputDefaults = { 5 | sourcemap: true, 6 | globals: { react: "React" }, 7 | }; 8 | 9 | export default { 10 | input: "./src/index.ts", 11 | 12 | output: [ 13 | { 14 | file: "./dist/index.cjs.js", 15 | format: "cjs", 16 | exports: "default", 17 | ...outputDefaults, 18 | }, 19 | { 20 | file: "./dist/index.esm.js", 21 | format: "esm", 22 | ...outputDefaults, 23 | }, 24 | ], 25 | 26 | plugins: [ 27 | typescript({ tsconfig: "./tsconfig.json" }), 28 | postcss({ modules: true }), 29 | ], 30 | 31 | external: ["react", "react-dom"], 32 | }; 33 | -------------------------------------------------------------------------------- /src/ReactSimpleImageViewer.tsx: -------------------------------------------------------------------------------- 1 | import React, { CSSProperties, useCallback, useEffect, useState } from "react"; 2 | import styles from "./styles.module.css"; 3 | 4 | interface IProps { 5 | src: string[]; 6 | currentIndex?: number; 7 | backgroundStyle?: CSSProperties; 8 | imageStyle?: CSSProperties; 9 | disableScroll?: boolean; 10 | closeOnClickOutside?: boolean; 11 | onClose?: () => void; 12 | closeComponent?: JSX.Element; 13 | leftArrowComponent?: JSX.Element; 14 | rightArrowComponent?: JSX.Element; 15 | } 16 | 17 | const ReactSimpleImageViewer = (props: IProps) => { 18 | const [currentIndex, setCurrentIndex] = useState(props.currentIndex ?? 0); 19 | 20 | const changeImage = useCallback( 21 | (delta: number) => { 22 | let nextIndex = (currentIndex + delta) % props.src.length; 23 | if (nextIndex < 0) nextIndex = props.src.length - 1; 24 | setCurrentIndex(nextIndex); 25 | }, 26 | [currentIndex] 27 | ); 28 | 29 | const handleClick = useCallback( 30 | (event: any) => { 31 | if (!event.target || !props.closeOnClickOutside) { 32 | return; 33 | } 34 | 35 | const checkId = event.target.id === 'ReactSimpleImageViewer'; 36 | const checkClass = event.target.classList.contains('react-simple-image-viewer__slide'); 37 | 38 | if (checkId || checkClass) { 39 | event.stopPropagation(); 40 | props.onClose?.(); 41 | } 42 | }, 43 | [props.onClose] 44 | ); 45 | 46 | const handleKeyDown = useCallback( 47 | (event: any) => { 48 | if (event.key === "Escape") { 49 | props.onClose?.(); 50 | } 51 | 52 | if (["ArrowLeft", "h"].includes(event.key)) { 53 | changeImage(-1); 54 | } 55 | 56 | if (["ArrowRight", "l"].includes(event.key)) { 57 | changeImage(1); 58 | } 59 | }, 60 | [props.onClose, changeImage] 61 | ); 62 | 63 | const handleWheel = useCallback( 64 | (event: any) => { 65 | if (event.wheelDeltaY > 0) { 66 | changeImage(-1); 67 | } else { 68 | changeImage(1); 69 | } 70 | }, 71 | [changeImage] 72 | ); 73 | 74 | useEffect(() => { 75 | document.addEventListener("keydown", handleKeyDown); 76 | 77 | if (!props.disableScroll) { 78 | document.addEventListener("wheel", handleWheel); 79 | } 80 | 81 | return () => { 82 | document.removeEventListener("keydown", handleKeyDown); 83 | 84 | if (!props.disableScroll) { 85 | document.removeEventListener("wheel", handleWheel); 86 | } 87 | }; 88 | }, [handleKeyDown, handleWheel]); 89 | 90 | return ( 91 |
98 | props.onClose?.()} 101 | > 102 | { props.closeComponent || "×" } 103 | 104 | 105 | {props.src.length > 1 && ( 106 | changeImage(-1)} 109 | > 110 | { props.leftArrowComponent || "❮" } 111 | 112 | )} 113 | 114 | {props.src.length > 1 && ( 115 | changeImage(1)} 118 | > 119 | { props.rightArrowComponent || "❯" } 120 | 121 | )} 122 | 123 |
127 |
128 | 129 |
130 |
131 |
132 | ); 133 | }; 134 | 135 | export default ReactSimpleImageViewer; 136 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import ReactSimpleImageViewer from "./ReactSimpleImageViewer"; 2 | export default ReactSimpleImageViewer; 3 | -------------------------------------------------------------------------------- /src/styles.module.css: -------------------------------------------------------------------------------- 1 | .wrapper { 2 | z-index: 1; 3 | display: flex; 4 | align-items: center; 5 | position: fixed; 6 | padding: 0px 60px 0px 60px; 7 | left: 0; 8 | top: 0; 9 | width: 100%; 10 | height: 100%; 11 | background-color: black; 12 | box-sizing: border-box; 13 | } 14 | 15 | .content { 16 | margin: auto; 17 | padding: 0; 18 | width: 90%; 19 | height: 100%; 20 | max-height: 100%; 21 | text-align: center; 22 | } 23 | 24 | .slide { 25 | height: 100%; 26 | display: flex; 27 | align-items: center; 28 | justify-content: center; 29 | } 30 | 31 | .image { 32 | max-height: 100%; 33 | max-width: 100%; 34 | user-select: none; 35 | -moz-user-select: none; 36 | -webkit-user-select: none; 37 | } 38 | 39 | .close { 40 | color: white; 41 | position: absolute; 42 | top: 15px; 43 | right: 15px; 44 | font-size: 40px; 45 | font-weight: bold; 46 | opacity: 0.2; 47 | cursor: pointer; 48 | } 49 | 50 | .close:hover { 51 | opacity: 1; 52 | } 53 | 54 | .navigation { 55 | height: 80%; 56 | color: white; 57 | cursor: pointer; 58 | position: absolute; 59 | font-size: 60px; 60 | line-height: 60px; 61 | font-weight: bold; 62 | display: flex; 63 | align-items: center; 64 | opacity: 0.2; 65 | padding: 0 15px; 66 | user-select: none; 67 | -moz-user-select: none; 68 | -webkit-user-select: none; 69 | } 70 | 71 | .navigation:hover { 72 | opacity: 1; 73 | } 74 | 75 | @media (hover: none) { 76 | .navigation:hover { 77 | opacity: 0.2; 78 | } 79 | } 80 | 81 | .prev { 82 | left: 0; 83 | } 84 | 85 | .next { 86 | right: 0; 87 | } 88 | 89 | @media (max-width: 900px) { 90 | .wrapper { 91 | padding: 0; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist", 4 | "target": "es2016", 5 | "module": "esnext", 6 | "declaration": true, 7 | "declarationDir": "types", 8 | "noImplicitAny": true, 9 | "strictNullChecks": true, 10 | "removeComments": true, 11 | "jsx": "react", 12 | "esModuleInterop": true, 13 | "typeRoots": ["index.d.ts", "node_modules/@types"] 14 | }, 15 | "include": ["./src/**/*.tsx", "./src/**/*.ts"], 16 | "exclude": ["node_modules"] 17 | } 18 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "jsRules": {}, 7 | "rules": { 8 | "quotemark": false, 9 | "member-access": false, 10 | "member-ordering": false 11 | }, 12 | "rulesDirectory": [] 13 | } 14 | --------------------------------------------------------------------------------