├── .gitignore
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
└── vite.svg
├── src
├── App.tsx
├── assets
│ └── index.ts
├── components
│ ├── CardItem.tsx
│ ├── ContainerCards.tsx
│ ├── DragAndDrop.tsx
│ ├── Title.tsx
│ └── index.ts
├── hooks
│ └── useDragAndDrop.ts
├── index.css
├── interfaces
│ └── index.ts
├── main.tsx
└── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # **Creating an app using Drag and Drop with React without libraries 👆!**
2 |
3 | This time, we are going to implement the functionality to do a Drag & Drop with React JS and without any other external package or library!
4 |
5 |
6 |
7 | 
8 |
9 |
10 |
11 | ## **Features ⚙️**
12 |
13 | 1. Card dragging.
14 | 2. Dropping cards into a container.
15 | 3. Sorting cards.
16 |
17 |
18 |
19 | ## **Technologies 🧪**
20 |
21 | - React JS
22 | - TypeScript
23 | - Vite JS
24 | - Vanilla CSS 3
25 |
26 |
27 |
28 | ## **Installation 🧰**
29 |
30 | 1. Clone the repository (you need to have [Git](https://git-scm.com) installed).
31 |
32 | ```shell
33 | git clone https://github.com/Franklin361/drag-and-drop-react
34 | ```
35 |
36 | 2. Install dependencies of the project.
37 |
38 | ```shell
39 | npm install
40 | ```
41 |
42 | 3. Run the project.
43 | ```shell
44 | npm run dev
45 | ```
46 |
47 |
48 |
49 | ## **Links ⛓️**
50 |
51 | ### Demo of the application 🔥
52 | - 🔗 https://drag-and-drop-react-app.netlify.app/
53 |
54 | ### Here's the link to the tutorial in case you'd like to take a look at it! eyes 👀
55 |
56 | - 🇲🇽 🔗 https://dev.to/franklin030601/creando-un-app-que-usa-drag-and-drop-con-react-sin-librerias--gm3
57 |
58 | - 🇺🇲 🔗 https://dev.to/franklin030601/creating-an-app-using-drag-and-drop-with-react-without-libraries--5cg9
59 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Drag & Drop
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dnd-app",
3 | "version": "0.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "dnd-app",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "react": "^18.2.0",
12 | "react-dom": "^18.2.0"
13 | },
14 | "devDependencies": {
15 | "@types/react": "^18.0.15",
16 | "@types/react-dom": "^18.0.6",
17 | "@vitejs/plugin-react": "^2.0.0",
18 | "typescript": "^4.6.4",
19 | "vite": "^3.0.0"
20 | }
21 | },
22 | "node_modules/@ampproject/remapping": {
23 | "version": "2.2.0",
24 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
25 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
26 | "dev": true,
27 | "dependencies": {
28 | "@jridgewell/gen-mapping": "^0.1.0",
29 | "@jridgewell/trace-mapping": "^0.3.9"
30 | },
31 | "engines": {
32 | "node": ">=6.0.0"
33 | }
34 | },
35 | "node_modules/@babel/code-frame": {
36 | "version": "7.18.6",
37 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
38 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
39 | "dev": true,
40 | "dependencies": {
41 | "@babel/highlight": "^7.18.6"
42 | },
43 | "engines": {
44 | "node": ">=6.9.0"
45 | }
46 | },
47 | "node_modules/@babel/compat-data": {
48 | "version": "7.18.8",
49 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
50 | "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
51 | "dev": true,
52 | "engines": {
53 | "node": ">=6.9.0"
54 | }
55 | },
56 | "node_modules/@babel/core": {
57 | "version": "7.18.6",
58 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz",
59 | "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==",
60 | "dev": true,
61 | "dependencies": {
62 | "@ampproject/remapping": "^2.1.0",
63 | "@babel/code-frame": "^7.18.6",
64 | "@babel/generator": "^7.18.6",
65 | "@babel/helper-compilation-targets": "^7.18.6",
66 | "@babel/helper-module-transforms": "^7.18.6",
67 | "@babel/helpers": "^7.18.6",
68 | "@babel/parser": "^7.18.6",
69 | "@babel/template": "^7.18.6",
70 | "@babel/traverse": "^7.18.6",
71 | "@babel/types": "^7.18.6",
72 | "convert-source-map": "^1.7.0",
73 | "debug": "^4.1.0",
74 | "gensync": "^1.0.0-beta.2",
75 | "json5": "^2.2.1",
76 | "semver": "^6.3.0"
77 | },
78 | "engines": {
79 | "node": ">=6.9.0"
80 | },
81 | "funding": {
82 | "type": "opencollective",
83 | "url": "https://opencollective.com/babel"
84 | }
85 | },
86 | "node_modules/@babel/generator": {
87 | "version": "7.18.7",
88 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz",
89 | "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==",
90 | "dev": true,
91 | "dependencies": {
92 | "@babel/types": "^7.18.7",
93 | "@jridgewell/gen-mapping": "^0.3.2",
94 | "jsesc": "^2.5.1"
95 | },
96 | "engines": {
97 | "node": ">=6.9.0"
98 | }
99 | },
100 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
101 | "version": "0.3.2",
102 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
103 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
104 | "dev": true,
105 | "dependencies": {
106 | "@jridgewell/set-array": "^1.0.1",
107 | "@jridgewell/sourcemap-codec": "^1.4.10",
108 | "@jridgewell/trace-mapping": "^0.3.9"
109 | },
110 | "engines": {
111 | "node": ">=6.0.0"
112 | }
113 | },
114 | "node_modules/@babel/helper-annotate-as-pure": {
115 | "version": "7.18.6",
116 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
117 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
118 | "dev": true,
119 | "dependencies": {
120 | "@babel/types": "^7.18.6"
121 | },
122 | "engines": {
123 | "node": ">=6.9.0"
124 | }
125 | },
126 | "node_modules/@babel/helper-compilation-targets": {
127 | "version": "7.18.6",
128 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz",
129 | "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==",
130 | "dev": true,
131 | "dependencies": {
132 | "@babel/compat-data": "^7.18.6",
133 | "@babel/helper-validator-option": "^7.18.6",
134 | "browserslist": "^4.20.2",
135 | "semver": "^6.3.0"
136 | },
137 | "engines": {
138 | "node": ">=6.9.0"
139 | },
140 | "peerDependencies": {
141 | "@babel/core": "^7.0.0"
142 | }
143 | },
144 | "node_modules/@babel/helper-environment-visitor": {
145 | "version": "7.18.6",
146 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz",
147 | "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==",
148 | "dev": true,
149 | "engines": {
150 | "node": ">=6.9.0"
151 | }
152 | },
153 | "node_modules/@babel/helper-function-name": {
154 | "version": "7.18.6",
155 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz",
156 | "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==",
157 | "dev": true,
158 | "dependencies": {
159 | "@babel/template": "^7.18.6",
160 | "@babel/types": "^7.18.6"
161 | },
162 | "engines": {
163 | "node": ">=6.9.0"
164 | }
165 | },
166 | "node_modules/@babel/helper-hoist-variables": {
167 | "version": "7.18.6",
168 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
169 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
170 | "dev": true,
171 | "dependencies": {
172 | "@babel/types": "^7.18.6"
173 | },
174 | "engines": {
175 | "node": ">=6.9.0"
176 | }
177 | },
178 | "node_modules/@babel/helper-module-imports": {
179 | "version": "7.18.6",
180 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
181 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
182 | "dev": true,
183 | "dependencies": {
184 | "@babel/types": "^7.18.6"
185 | },
186 | "engines": {
187 | "node": ">=6.9.0"
188 | }
189 | },
190 | "node_modules/@babel/helper-module-transforms": {
191 | "version": "7.18.8",
192 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz",
193 | "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==",
194 | "dev": true,
195 | "dependencies": {
196 | "@babel/helper-environment-visitor": "^7.18.6",
197 | "@babel/helper-module-imports": "^7.18.6",
198 | "@babel/helper-simple-access": "^7.18.6",
199 | "@babel/helper-split-export-declaration": "^7.18.6",
200 | "@babel/helper-validator-identifier": "^7.18.6",
201 | "@babel/template": "^7.18.6",
202 | "@babel/traverse": "^7.18.8",
203 | "@babel/types": "^7.18.8"
204 | },
205 | "engines": {
206 | "node": ">=6.9.0"
207 | }
208 | },
209 | "node_modules/@babel/helper-plugin-utils": {
210 | "version": "7.18.6",
211 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz",
212 | "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==",
213 | "dev": true,
214 | "engines": {
215 | "node": ">=6.9.0"
216 | }
217 | },
218 | "node_modules/@babel/helper-simple-access": {
219 | "version": "7.18.6",
220 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
221 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
222 | "dev": true,
223 | "dependencies": {
224 | "@babel/types": "^7.18.6"
225 | },
226 | "engines": {
227 | "node": ">=6.9.0"
228 | }
229 | },
230 | "node_modules/@babel/helper-split-export-declaration": {
231 | "version": "7.18.6",
232 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
233 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
234 | "dev": true,
235 | "dependencies": {
236 | "@babel/types": "^7.18.6"
237 | },
238 | "engines": {
239 | "node": ">=6.9.0"
240 | }
241 | },
242 | "node_modules/@babel/helper-validator-identifier": {
243 | "version": "7.18.6",
244 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
245 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
246 | "dev": true,
247 | "engines": {
248 | "node": ">=6.9.0"
249 | }
250 | },
251 | "node_modules/@babel/helper-validator-option": {
252 | "version": "7.18.6",
253 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
254 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
255 | "dev": true,
256 | "engines": {
257 | "node": ">=6.9.0"
258 | }
259 | },
260 | "node_modules/@babel/helpers": {
261 | "version": "7.18.6",
262 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz",
263 | "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==",
264 | "dev": true,
265 | "dependencies": {
266 | "@babel/template": "^7.18.6",
267 | "@babel/traverse": "^7.18.6",
268 | "@babel/types": "^7.18.6"
269 | },
270 | "engines": {
271 | "node": ">=6.9.0"
272 | }
273 | },
274 | "node_modules/@babel/highlight": {
275 | "version": "7.18.6",
276 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
277 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
278 | "dev": true,
279 | "dependencies": {
280 | "@babel/helper-validator-identifier": "^7.18.6",
281 | "chalk": "^2.0.0",
282 | "js-tokens": "^4.0.0"
283 | },
284 | "engines": {
285 | "node": ">=6.9.0"
286 | }
287 | },
288 | "node_modules/@babel/parser": {
289 | "version": "7.18.8",
290 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz",
291 | "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==",
292 | "dev": true,
293 | "bin": {
294 | "parser": "bin/babel-parser.js"
295 | },
296 | "engines": {
297 | "node": ">=6.0.0"
298 | }
299 | },
300 | "node_modules/@babel/plugin-syntax-jsx": {
301 | "version": "7.18.6",
302 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
303 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
304 | "dev": true,
305 | "dependencies": {
306 | "@babel/helper-plugin-utils": "^7.18.6"
307 | },
308 | "engines": {
309 | "node": ">=6.9.0"
310 | },
311 | "peerDependencies": {
312 | "@babel/core": "^7.0.0-0"
313 | }
314 | },
315 | "node_modules/@babel/plugin-transform-react-jsx": {
316 | "version": "7.18.6",
317 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz",
318 | "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==",
319 | "dev": true,
320 | "dependencies": {
321 | "@babel/helper-annotate-as-pure": "^7.18.6",
322 | "@babel/helper-module-imports": "^7.18.6",
323 | "@babel/helper-plugin-utils": "^7.18.6",
324 | "@babel/plugin-syntax-jsx": "^7.18.6",
325 | "@babel/types": "^7.18.6"
326 | },
327 | "engines": {
328 | "node": ">=6.9.0"
329 | },
330 | "peerDependencies": {
331 | "@babel/core": "^7.0.0-0"
332 | }
333 | },
334 | "node_modules/@babel/plugin-transform-react-jsx-development": {
335 | "version": "7.18.6",
336 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
337 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
338 | "dev": true,
339 | "dependencies": {
340 | "@babel/plugin-transform-react-jsx": "^7.18.6"
341 | },
342 | "engines": {
343 | "node": ">=6.9.0"
344 | },
345 | "peerDependencies": {
346 | "@babel/core": "^7.0.0-0"
347 | }
348 | },
349 | "node_modules/@babel/plugin-transform-react-jsx-self": {
350 | "version": "7.18.6",
351 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz",
352 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==",
353 | "dev": true,
354 | "dependencies": {
355 | "@babel/helper-plugin-utils": "^7.18.6"
356 | },
357 | "engines": {
358 | "node": ">=6.9.0"
359 | },
360 | "peerDependencies": {
361 | "@babel/core": "^7.0.0-0"
362 | }
363 | },
364 | "node_modules/@babel/plugin-transform-react-jsx-source": {
365 | "version": "7.18.6",
366 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz",
367 | "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==",
368 | "dev": true,
369 | "dependencies": {
370 | "@babel/helper-plugin-utils": "^7.18.6"
371 | },
372 | "engines": {
373 | "node": ">=6.9.0"
374 | },
375 | "peerDependencies": {
376 | "@babel/core": "^7.0.0-0"
377 | }
378 | },
379 | "node_modules/@babel/template": {
380 | "version": "7.18.6",
381 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
382 | "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
383 | "dev": true,
384 | "dependencies": {
385 | "@babel/code-frame": "^7.18.6",
386 | "@babel/parser": "^7.18.6",
387 | "@babel/types": "^7.18.6"
388 | },
389 | "engines": {
390 | "node": ">=6.9.0"
391 | }
392 | },
393 | "node_modules/@babel/traverse": {
394 | "version": "7.18.8",
395 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz",
396 | "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==",
397 | "dev": true,
398 | "dependencies": {
399 | "@babel/code-frame": "^7.18.6",
400 | "@babel/generator": "^7.18.7",
401 | "@babel/helper-environment-visitor": "^7.18.6",
402 | "@babel/helper-function-name": "^7.18.6",
403 | "@babel/helper-hoist-variables": "^7.18.6",
404 | "@babel/helper-split-export-declaration": "^7.18.6",
405 | "@babel/parser": "^7.18.8",
406 | "@babel/types": "^7.18.8",
407 | "debug": "^4.1.0",
408 | "globals": "^11.1.0"
409 | },
410 | "engines": {
411 | "node": ">=6.9.0"
412 | }
413 | },
414 | "node_modules/@babel/types": {
415 | "version": "7.18.8",
416 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz",
417 | "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==",
418 | "dev": true,
419 | "dependencies": {
420 | "@babel/helper-validator-identifier": "^7.18.6",
421 | "to-fast-properties": "^2.0.0"
422 | },
423 | "engines": {
424 | "node": ">=6.9.0"
425 | }
426 | },
427 | "node_modules/@jridgewell/gen-mapping": {
428 | "version": "0.1.1",
429 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
430 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
431 | "dev": true,
432 | "dependencies": {
433 | "@jridgewell/set-array": "^1.0.0",
434 | "@jridgewell/sourcemap-codec": "^1.4.10"
435 | },
436 | "engines": {
437 | "node": ">=6.0.0"
438 | }
439 | },
440 | "node_modules/@jridgewell/resolve-uri": {
441 | "version": "3.1.0",
442 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
443 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
444 | "dev": true,
445 | "engines": {
446 | "node": ">=6.0.0"
447 | }
448 | },
449 | "node_modules/@jridgewell/set-array": {
450 | "version": "1.1.2",
451 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
452 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
453 | "dev": true,
454 | "engines": {
455 | "node": ">=6.0.0"
456 | }
457 | },
458 | "node_modules/@jridgewell/sourcemap-codec": {
459 | "version": "1.4.14",
460 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
461 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
462 | "dev": true
463 | },
464 | "node_modules/@jridgewell/trace-mapping": {
465 | "version": "0.3.14",
466 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
467 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
468 | "dev": true,
469 | "dependencies": {
470 | "@jridgewell/resolve-uri": "^3.0.3",
471 | "@jridgewell/sourcemap-codec": "^1.4.10"
472 | }
473 | },
474 | "node_modules/@types/prop-types": {
475 | "version": "15.7.5",
476 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
477 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
478 | "dev": true
479 | },
480 | "node_modules/@types/react": {
481 | "version": "18.0.15",
482 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz",
483 | "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==",
484 | "dev": true,
485 | "dependencies": {
486 | "@types/prop-types": "*",
487 | "@types/scheduler": "*",
488 | "csstype": "^3.0.2"
489 | }
490 | },
491 | "node_modules/@types/react-dom": {
492 | "version": "18.0.6",
493 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
494 | "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
495 | "dev": true,
496 | "dependencies": {
497 | "@types/react": "*"
498 | }
499 | },
500 | "node_modules/@types/scheduler": {
501 | "version": "0.16.2",
502 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
503 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
504 | "dev": true
505 | },
506 | "node_modules/@vitejs/plugin-react": {
507 | "version": "2.0.0",
508 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.0.0.tgz",
509 | "integrity": "sha512-zHkRR+X4zqEPNBbKV2FvWSxK7Q6crjMBVIAYroSU8Nbb4M3E5x4qOiLoqJBHtXgr27kfednXjkwr3lr8jS6Wrw==",
510 | "dev": true,
511 | "dependencies": {
512 | "@babel/core": "^7.18.6",
513 | "@babel/plugin-transform-react-jsx": "^7.18.6",
514 | "@babel/plugin-transform-react-jsx-development": "^7.18.6",
515 | "@babel/plugin-transform-react-jsx-self": "^7.18.6",
516 | "@babel/plugin-transform-react-jsx-source": "^7.18.6",
517 | "magic-string": "^0.26.2",
518 | "react-refresh": "^0.14.0"
519 | },
520 | "engines": {
521 | "node": ">=14.18.0"
522 | },
523 | "peerDependencies": {
524 | "vite": "^3.0.0"
525 | }
526 | },
527 | "node_modules/ansi-styles": {
528 | "version": "3.2.1",
529 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
530 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
531 | "dev": true,
532 | "dependencies": {
533 | "color-convert": "^1.9.0"
534 | },
535 | "engines": {
536 | "node": ">=4"
537 | }
538 | },
539 | "node_modules/browserslist": {
540 | "version": "4.21.2",
541 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz",
542 | "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==",
543 | "dev": true,
544 | "funding": [
545 | {
546 | "type": "opencollective",
547 | "url": "https://opencollective.com/browserslist"
548 | },
549 | {
550 | "type": "tidelift",
551 | "url": "https://tidelift.com/funding/github/npm/browserslist"
552 | }
553 | ],
554 | "dependencies": {
555 | "caniuse-lite": "^1.0.30001366",
556 | "electron-to-chromium": "^1.4.188",
557 | "node-releases": "^2.0.6",
558 | "update-browserslist-db": "^1.0.4"
559 | },
560 | "bin": {
561 | "browserslist": "cli.js"
562 | },
563 | "engines": {
564 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
565 | }
566 | },
567 | "node_modules/caniuse-lite": {
568 | "version": "1.0.30001367",
569 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz",
570 | "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==",
571 | "dev": true,
572 | "funding": [
573 | {
574 | "type": "opencollective",
575 | "url": "https://opencollective.com/browserslist"
576 | },
577 | {
578 | "type": "tidelift",
579 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
580 | }
581 | ]
582 | },
583 | "node_modules/chalk": {
584 | "version": "2.4.2",
585 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
586 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
587 | "dev": true,
588 | "dependencies": {
589 | "ansi-styles": "^3.2.1",
590 | "escape-string-regexp": "^1.0.5",
591 | "supports-color": "^5.3.0"
592 | },
593 | "engines": {
594 | "node": ">=4"
595 | }
596 | },
597 | "node_modules/color-convert": {
598 | "version": "1.9.3",
599 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
600 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
601 | "dev": true,
602 | "dependencies": {
603 | "color-name": "1.1.3"
604 | }
605 | },
606 | "node_modules/color-name": {
607 | "version": "1.1.3",
608 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
609 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
610 | "dev": true
611 | },
612 | "node_modules/convert-source-map": {
613 | "version": "1.8.0",
614 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
615 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
616 | "dev": true,
617 | "dependencies": {
618 | "safe-buffer": "~5.1.1"
619 | }
620 | },
621 | "node_modules/csstype": {
622 | "version": "3.1.0",
623 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
624 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
625 | "dev": true
626 | },
627 | "node_modules/debug": {
628 | "version": "4.3.4",
629 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
630 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
631 | "dev": true,
632 | "dependencies": {
633 | "ms": "2.1.2"
634 | },
635 | "engines": {
636 | "node": ">=6.0"
637 | },
638 | "peerDependenciesMeta": {
639 | "supports-color": {
640 | "optional": true
641 | }
642 | }
643 | },
644 | "node_modules/electron-to-chromium": {
645 | "version": "1.4.192",
646 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz",
647 | "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==",
648 | "dev": true
649 | },
650 | "node_modules/esbuild": {
651 | "version": "0.14.49",
652 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz",
653 | "integrity": "sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==",
654 | "dev": true,
655 | "hasInstallScript": true,
656 | "bin": {
657 | "esbuild": "bin/esbuild"
658 | },
659 | "engines": {
660 | "node": ">=12"
661 | },
662 | "optionalDependencies": {
663 | "esbuild-android-64": "0.14.49",
664 | "esbuild-android-arm64": "0.14.49",
665 | "esbuild-darwin-64": "0.14.49",
666 | "esbuild-darwin-arm64": "0.14.49",
667 | "esbuild-freebsd-64": "0.14.49",
668 | "esbuild-freebsd-arm64": "0.14.49",
669 | "esbuild-linux-32": "0.14.49",
670 | "esbuild-linux-64": "0.14.49",
671 | "esbuild-linux-arm": "0.14.49",
672 | "esbuild-linux-arm64": "0.14.49",
673 | "esbuild-linux-mips64le": "0.14.49",
674 | "esbuild-linux-ppc64le": "0.14.49",
675 | "esbuild-linux-riscv64": "0.14.49",
676 | "esbuild-linux-s390x": "0.14.49",
677 | "esbuild-netbsd-64": "0.14.49",
678 | "esbuild-openbsd-64": "0.14.49",
679 | "esbuild-sunos-64": "0.14.49",
680 | "esbuild-windows-32": "0.14.49",
681 | "esbuild-windows-64": "0.14.49",
682 | "esbuild-windows-arm64": "0.14.49"
683 | }
684 | },
685 | "node_modules/esbuild-android-64": {
686 | "version": "0.14.49",
687 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz",
688 | "integrity": "sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==",
689 | "cpu": [
690 | "x64"
691 | ],
692 | "dev": true,
693 | "optional": true,
694 | "os": [
695 | "android"
696 | ],
697 | "engines": {
698 | "node": ">=12"
699 | }
700 | },
701 | "node_modules/esbuild-android-arm64": {
702 | "version": "0.14.49",
703 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz",
704 | "integrity": "sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==",
705 | "cpu": [
706 | "arm64"
707 | ],
708 | "dev": true,
709 | "optional": true,
710 | "os": [
711 | "android"
712 | ],
713 | "engines": {
714 | "node": ">=12"
715 | }
716 | },
717 | "node_modules/esbuild-darwin-64": {
718 | "version": "0.14.49",
719 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz",
720 | "integrity": "sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==",
721 | "cpu": [
722 | "x64"
723 | ],
724 | "dev": true,
725 | "optional": true,
726 | "os": [
727 | "darwin"
728 | ],
729 | "engines": {
730 | "node": ">=12"
731 | }
732 | },
733 | "node_modules/esbuild-darwin-arm64": {
734 | "version": "0.14.49",
735 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz",
736 | "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==",
737 | "cpu": [
738 | "arm64"
739 | ],
740 | "dev": true,
741 | "optional": true,
742 | "os": [
743 | "darwin"
744 | ],
745 | "engines": {
746 | "node": ">=12"
747 | }
748 | },
749 | "node_modules/esbuild-freebsd-64": {
750 | "version": "0.14.49",
751 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz",
752 | "integrity": "sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==",
753 | "cpu": [
754 | "x64"
755 | ],
756 | "dev": true,
757 | "optional": true,
758 | "os": [
759 | "freebsd"
760 | ],
761 | "engines": {
762 | "node": ">=12"
763 | }
764 | },
765 | "node_modules/esbuild-freebsd-arm64": {
766 | "version": "0.14.49",
767 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz",
768 | "integrity": "sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==",
769 | "cpu": [
770 | "arm64"
771 | ],
772 | "dev": true,
773 | "optional": true,
774 | "os": [
775 | "freebsd"
776 | ],
777 | "engines": {
778 | "node": ">=12"
779 | }
780 | },
781 | "node_modules/esbuild-linux-32": {
782 | "version": "0.14.49",
783 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz",
784 | "integrity": "sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==",
785 | "cpu": [
786 | "ia32"
787 | ],
788 | "dev": true,
789 | "optional": true,
790 | "os": [
791 | "linux"
792 | ],
793 | "engines": {
794 | "node": ">=12"
795 | }
796 | },
797 | "node_modules/esbuild-linux-64": {
798 | "version": "0.14.49",
799 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz",
800 | "integrity": "sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==",
801 | "cpu": [
802 | "x64"
803 | ],
804 | "dev": true,
805 | "optional": true,
806 | "os": [
807 | "linux"
808 | ],
809 | "engines": {
810 | "node": ">=12"
811 | }
812 | },
813 | "node_modules/esbuild-linux-arm": {
814 | "version": "0.14.49",
815 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz",
816 | "integrity": "sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==",
817 | "cpu": [
818 | "arm"
819 | ],
820 | "dev": true,
821 | "optional": true,
822 | "os": [
823 | "linux"
824 | ],
825 | "engines": {
826 | "node": ">=12"
827 | }
828 | },
829 | "node_modules/esbuild-linux-arm64": {
830 | "version": "0.14.49",
831 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz",
832 | "integrity": "sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==",
833 | "cpu": [
834 | "arm64"
835 | ],
836 | "dev": true,
837 | "optional": true,
838 | "os": [
839 | "linux"
840 | ],
841 | "engines": {
842 | "node": ">=12"
843 | }
844 | },
845 | "node_modules/esbuild-linux-mips64le": {
846 | "version": "0.14.49",
847 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz",
848 | "integrity": "sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==",
849 | "cpu": [
850 | "mips64el"
851 | ],
852 | "dev": true,
853 | "optional": true,
854 | "os": [
855 | "linux"
856 | ],
857 | "engines": {
858 | "node": ">=12"
859 | }
860 | },
861 | "node_modules/esbuild-linux-ppc64le": {
862 | "version": "0.14.49",
863 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz",
864 | "integrity": "sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==",
865 | "cpu": [
866 | "ppc64"
867 | ],
868 | "dev": true,
869 | "optional": true,
870 | "os": [
871 | "linux"
872 | ],
873 | "engines": {
874 | "node": ">=12"
875 | }
876 | },
877 | "node_modules/esbuild-linux-riscv64": {
878 | "version": "0.14.49",
879 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz",
880 | "integrity": "sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==",
881 | "cpu": [
882 | "riscv64"
883 | ],
884 | "dev": true,
885 | "optional": true,
886 | "os": [
887 | "linux"
888 | ],
889 | "engines": {
890 | "node": ">=12"
891 | }
892 | },
893 | "node_modules/esbuild-linux-s390x": {
894 | "version": "0.14.49",
895 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz",
896 | "integrity": "sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==",
897 | "cpu": [
898 | "s390x"
899 | ],
900 | "dev": true,
901 | "optional": true,
902 | "os": [
903 | "linux"
904 | ],
905 | "engines": {
906 | "node": ">=12"
907 | }
908 | },
909 | "node_modules/esbuild-netbsd-64": {
910 | "version": "0.14.49",
911 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz",
912 | "integrity": "sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==",
913 | "cpu": [
914 | "x64"
915 | ],
916 | "dev": true,
917 | "optional": true,
918 | "os": [
919 | "netbsd"
920 | ],
921 | "engines": {
922 | "node": ">=12"
923 | }
924 | },
925 | "node_modules/esbuild-openbsd-64": {
926 | "version": "0.14.49",
927 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz",
928 | "integrity": "sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==",
929 | "cpu": [
930 | "x64"
931 | ],
932 | "dev": true,
933 | "optional": true,
934 | "os": [
935 | "openbsd"
936 | ],
937 | "engines": {
938 | "node": ">=12"
939 | }
940 | },
941 | "node_modules/esbuild-sunos-64": {
942 | "version": "0.14.49",
943 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz",
944 | "integrity": "sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==",
945 | "cpu": [
946 | "x64"
947 | ],
948 | "dev": true,
949 | "optional": true,
950 | "os": [
951 | "sunos"
952 | ],
953 | "engines": {
954 | "node": ">=12"
955 | }
956 | },
957 | "node_modules/esbuild-windows-32": {
958 | "version": "0.14.49",
959 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz",
960 | "integrity": "sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==",
961 | "cpu": [
962 | "ia32"
963 | ],
964 | "dev": true,
965 | "optional": true,
966 | "os": [
967 | "win32"
968 | ],
969 | "engines": {
970 | "node": ">=12"
971 | }
972 | },
973 | "node_modules/esbuild-windows-64": {
974 | "version": "0.14.49",
975 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz",
976 | "integrity": "sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==",
977 | "cpu": [
978 | "x64"
979 | ],
980 | "dev": true,
981 | "optional": true,
982 | "os": [
983 | "win32"
984 | ],
985 | "engines": {
986 | "node": ">=12"
987 | }
988 | },
989 | "node_modules/esbuild-windows-arm64": {
990 | "version": "0.14.49",
991 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz",
992 | "integrity": "sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==",
993 | "cpu": [
994 | "arm64"
995 | ],
996 | "dev": true,
997 | "optional": true,
998 | "os": [
999 | "win32"
1000 | ],
1001 | "engines": {
1002 | "node": ">=12"
1003 | }
1004 | },
1005 | "node_modules/escalade": {
1006 | "version": "3.1.1",
1007 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1008 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1009 | "dev": true,
1010 | "engines": {
1011 | "node": ">=6"
1012 | }
1013 | },
1014 | "node_modules/escape-string-regexp": {
1015 | "version": "1.0.5",
1016 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1017 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
1018 | "dev": true,
1019 | "engines": {
1020 | "node": ">=0.8.0"
1021 | }
1022 | },
1023 | "node_modules/fsevents": {
1024 | "version": "2.3.2",
1025 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1026 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1027 | "dev": true,
1028 | "hasInstallScript": true,
1029 | "optional": true,
1030 | "os": [
1031 | "darwin"
1032 | ],
1033 | "engines": {
1034 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1035 | }
1036 | },
1037 | "node_modules/function-bind": {
1038 | "version": "1.1.1",
1039 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1040 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1041 | "dev": true
1042 | },
1043 | "node_modules/gensync": {
1044 | "version": "1.0.0-beta.2",
1045 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
1046 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
1047 | "dev": true,
1048 | "engines": {
1049 | "node": ">=6.9.0"
1050 | }
1051 | },
1052 | "node_modules/globals": {
1053 | "version": "11.12.0",
1054 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1055 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1056 | "dev": true,
1057 | "engines": {
1058 | "node": ">=4"
1059 | }
1060 | },
1061 | "node_modules/has": {
1062 | "version": "1.0.3",
1063 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1064 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1065 | "dev": true,
1066 | "dependencies": {
1067 | "function-bind": "^1.1.1"
1068 | },
1069 | "engines": {
1070 | "node": ">= 0.4.0"
1071 | }
1072 | },
1073 | "node_modules/has-flag": {
1074 | "version": "3.0.0",
1075 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1076 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1077 | "dev": true,
1078 | "engines": {
1079 | "node": ">=4"
1080 | }
1081 | },
1082 | "node_modules/is-core-module": {
1083 | "version": "2.9.0",
1084 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
1085 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
1086 | "dev": true,
1087 | "dependencies": {
1088 | "has": "^1.0.3"
1089 | },
1090 | "funding": {
1091 | "url": "https://github.com/sponsors/ljharb"
1092 | }
1093 | },
1094 | "node_modules/js-tokens": {
1095 | "version": "4.0.0",
1096 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1097 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1098 | },
1099 | "node_modules/jsesc": {
1100 | "version": "2.5.2",
1101 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1102 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1103 | "dev": true,
1104 | "bin": {
1105 | "jsesc": "bin/jsesc"
1106 | },
1107 | "engines": {
1108 | "node": ">=4"
1109 | }
1110 | },
1111 | "node_modules/json5": {
1112 | "version": "2.2.1",
1113 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
1114 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
1115 | "dev": true,
1116 | "bin": {
1117 | "json5": "lib/cli.js"
1118 | },
1119 | "engines": {
1120 | "node": ">=6"
1121 | }
1122 | },
1123 | "node_modules/loose-envify": {
1124 | "version": "1.4.0",
1125 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1126 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1127 | "dependencies": {
1128 | "js-tokens": "^3.0.0 || ^4.0.0"
1129 | },
1130 | "bin": {
1131 | "loose-envify": "cli.js"
1132 | }
1133 | },
1134 | "node_modules/magic-string": {
1135 | "version": "0.26.2",
1136 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
1137 | "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
1138 | "dev": true,
1139 | "dependencies": {
1140 | "sourcemap-codec": "^1.4.8"
1141 | },
1142 | "engines": {
1143 | "node": ">=12"
1144 | }
1145 | },
1146 | "node_modules/ms": {
1147 | "version": "2.1.2",
1148 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1149 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1150 | "dev": true
1151 | },
1152 | "node_modules/nanoid": {
1153 | "version": "3.3.4",
1154 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
1155 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
1156 | "dev": true,
1157 | "bin": {
1158 | "nanoid": "bin/nanoid.cjs"
1159 | },
1160 | "engines": {
1161 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1162 | }
1163 | },
1164 | "node_modules/node-releases": {
1165 | "version": "2.0.6",
1166 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
1167 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
1168 | "dev": true
1169 | },
1170 | "node_modules/path-parse": {
1171 | "version": "1.0.7",
1172 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1173 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1174 | "dev": true
1175 | },
1176 | "node_modules/picocolors": {
1177 | "version": "1.0.0",
1178 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1179 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1180 | "dev": true
1181 | },
1182 | "node_modules/postcss": {
1183 | "version": "8.4.14",
1184 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
1185 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
1186 | "dev": true,
1187 | "funding": [
1188 | {
1189 | "type": "opencollective",
1190 | "url": "https://opencollective.com/postcss/"
1191 | },
1192 | {
1193 | "type": "tidelift",
1194 | "url": "https://tidelift.com/funding/github/npm/postcss"
1195 | }
1196 | ],
1197 | "dependencies": {
1198 | "nanoid": "^3.3.4",
1199 | "picocolors": "^1.0.0",
1200 | "source-map-js": "^1.0.2"
1201 | },
1202 | "engines": {
1203 | "node": "^10 || ^12 || >=14"
1204 | }
1205 | },
1206 | "node_modules/react": {
1207 | "version": "18.2.0",
1208 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
1209 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
1210 | "dependencies": {
1211 | "loose-envify": "^1.1.0"
1212 | },
1213 | "engines": {
1214 | "node": ">=0.10.0"
1215 | }
1216 | },
1217 | "node_modules/react-dom": {
1218 | "version": "18.2.0",
1219 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
1220 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
1221 | "dependencies": {
1222 | "loose-envify": "^1.1.0",
1223 | "scheduler": "^0.23.0"
1224 | },
1225 | "peerDependencies": {
1226 | "react": "^18.2.0"
1227 | }
1228 | },
1229 | "node_modules/react-refresh": {
1230 | "version": "0.14.0",
1231 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
1232 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
1233 | "dev": true,
1234 | "engines": {
1235 | "node": ">=0.10.0"
1236 | }
1237 | },
1238 | "node_modules/resolve": {
1239 | "version": "1.22.1",
1240 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
1241 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
1242 | "dev": true,
1243 | "dependencies": {
1244 | "is-core-module": "^2.9.0",
1245 | "path-parse": "^1.0.7",
1246 | "supports-preserve-symlinks-flag": "^1.0.0"
1247 | },
1248 | "bin": {
1249 | "resolve": "bin/resolve"
1250 | },
1251 | "funding": {
1252 | "url": "https://github.com/sponsors/ljharb"
1253 | }
1254 | },
1255 | "node_modules/rollup": {
1256 | "version": "2.77.0",
1257 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.0.tgz",
1258 | "integrity": "sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==",
1259 | "dev": true,
1260 | "bin": {
1261 | "rollup": "dist/bin/rollup"
1262 | },
1263 | "engines": {
1264 | "node": ">=10.0.0"
1265 | },
1266 | "optionalDependencies": {
1267 | "fsevents": "~2.3.2"
1268 | }
1269 | },
1270 | "node_modules/safe-buffer": {
1271 | "version": "5.1.2",
1272 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1273 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1274 | "dev": true
1275 | },
1276 | "node_modules/scheduler": {
1277 | "version": "0.23.0",
1278 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
1279 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
1280 | "dependencies": {
1281 | "loose-envify": "^1.1.0"
1282 | }
1283 | },
1284 | "node_modules/semver": {
1285 | "version": "6.3.0",
1286 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1287 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1288 | "dev": true,
1289 | "bin": {
1290 | "semver": "bin/semver.js"
1291 | }
1292 | },
1293 | "node_modules/source-map-js": {
1294 | "version": "1.0.2",
1295 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1296 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1297 | "dev": true,
1298 | "engines": {
1299 | "node": ">=0.10.0"
1300 | }
1301 | },
1302 | "node_modules/sourcemap-codec": {
1303 | "version": "1.4.8",
1304 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1305 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
1306 | "dev": true
1307 | },
1308 | "node_modules/supports-color": {
1309 | "version": "5.5.0",
1310 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1311 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1312 | "dev": true,
1313 | "dependencies": {
1314 | "has-flag": "^3.0.0"
1315 | },
1316 | "engines": {
1317 | "node": ">=4"
1318 | }
1319 | },
1320 | "node_modules/supports-preserve-symlinks-flag": {
1321 | "version": "1.0.0",
1322 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1323 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1324 | "dev": true,
1325 | "engines": {
1326 | "node": ">= 0.4"
1327 | },
1328 | "funding": {
1329 | "url": "https://github.com/sponsors/ljharb"
1330 | }
1331 | },
1332 | "node_modules/to-fast-properties": {
1333 | "version": "2.0.0",
1334 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1335 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
1336 | "dev": true,
1337 | "engines": {
1338 | "node": ">=4"
1339 | }
1340 | },
1341 | "node_modules/typescript": {
1342 | "version": "4.7.4",
1343 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
1344 | "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
1345 | "dev": true,
1346 | "bin": {
1347 | "tsc": "bin/tsc",
1348 | "tsserver": "bin/tsserver"
1349 | },
1350 | "engines": {
1351 | "node": ">=4.2.0"
1352 | }
1353 | },
1354 | "node_modules/update-browserslist-db": {
1355 | "version": "1.0.4",
1356 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz",
1357 | "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==",
1358 | "dev": true,
1359 | "funding": [
1360 | {
1361 | "type": "opencollective",
1362 | "url": "https://opencollective.com/browserslist"
1363 | },
1364 | {
1365 | "type": "tidelift",
1366 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1367 | }
1368 | ],
1369 | "dependencies": {
1370 | "escalade": "^3.1.1",
1371 | "picocolors": "^1.0.0"
1372 | },
1373 | "bin": {
1374 | "browserslist-lint": "cli.js"
1375 | },
1376 | "peerDependencies": {
1377 | "browserslist": ">= 4.21.0"
1378 | }
1379 | },
1380 | "node_modules/vite": {
1381 | "version": "3.0.0",
1382 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.0.tgz",
1383 | "integrity": "sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==",
1384 | "dev": true,
1385 | "dependencies": {
1386 | "esbuild": "^0.14.47",
1387 | "postcss": "^8.4.14",
1388 | "resolve": "^1.22.1",
1389 | "rollup": "^2.75.6"
1390 | },
1391 | "bin": {
1392 | "vite": "bin/vite.js"
1393 | },
1394 | "engines": {
1395 | "node": ">=14.18.0"
1396 | },
1397 | "optionalDependencies": {
1398 | "fsevents": "~2.3.2"
1399 | },
1400 | "peerDependencies": {
1401 | "less": "*",
1402 | "sass": "*",
1403 | "stylus": "*",
1404 | "terser": "^5.4.0"
1405 | },
1406 | "peerDependenciesMeta": {
1407 | "less": {
1408 | "optional": true
1409 | },
1410 | "sass": {
1411 | "optional": true
1412 | },
1413 | "stylus": {
1414 | "optional": true
1415 | },
1416 | "terser": {
1417 | "optional": true
1418 | }
1419 | }
1420 | }
1421 | },
1422 | "dependencies": {
1423 | "@ampproject/remapping": {
1424 | "version": "2.2.0",
1425 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
1426 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
1427 | "dev": true,
1428 | "requires": {
1429 | "@jridgewell/gen-mapping": "^0.1.0",
1430 | "@jridgewell/trace-mapping": "^0.3.9"
1431 | }
1432 | },
1433 | "@babel/code-frame": {
1434 | "version": "7.18.6",
1435 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
1436 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
1437 | "dev": true,
1438 | "requires": {
1439 | "@babel/highlight": "^7.18.6"
1440 | }
1441 | },
1442 | "@babel/compat-data": {
1443 | "version": "7.18.8",
1444 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
1445 | "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
1446 | "dev": true
1447 | },
1448 | "@babel/core": {
1449 | "version": "7.18.6",
1450 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz",
1451 | "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==",
1452 | "dev": true,
1453 | "requires": {
1454 | "@ampproject/remapping": "^2.1.0",
1455 | "@babel/code-frame": "^7.18.6",
1456 | "@babel/generator": "^7.18.6",
1457 | "@babel/helper-compilation-targets": "^7.18.6",
1458 | "@babel/helper-module-transforms": "^7.18.6",
1459 | "@babel/helpers": "^7.18.6",
1460 | "@babel/parser": "^7.18.6",
1461 | "@babel/template": "^7.18.6",
1462 | "@babel/traverse": "^7.18.6",
1463 | "@babel/types": "^7.18.6",
1464 | "convert-source-map": "^1.7.0",
1465 | "debug": "^4.1.0",
1466 | "gensync": "^1.0.0-beta.2",
1467 | "json5": "^2.2.1",
1468 | "semver": "^6.3.0"
1469 | }
1470 | },
1471 | "@babel/generator": {
1472 | "version": "7.18.7",
1473 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz",
1474 | "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==",
1475 | "dev": true,
1476 | "requires": {
1477 | "@babel/types": "^7.18.7",
1478 | "@jridgewell/gen-mapping": "^0.3.2",
1479 | "jsesc": "^2.5.1"
1480 | },
1481 | "dependencies": {
1482 | "@jridgewell/gen-mapping": {
1483 | "version": "0.3.2",
1484 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
1485 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
1486 | "dev": true,
1487 | "requires": {
1488 | "@jridgewell/set-array": "^1.0.1",
1489 | "@jridgewell/sourcemap-codec": "^1.4.10",
1490 | "@jridgewell/trace-mapping": "^0.3.9"
1491 | }
1492 | }
1493 | }
1494 | },
1495 | "@babel/helper-annotate-as-pure": {
1496 | "version": "7.18.6",
1497 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
1498 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
1499 | "dev": true,
1500 | "requires": {
1501 | "@babel/types": "^7.18.6"
1502 | }
1503 | },
1504 | "@babel/helper-compilation-targets": {
1505 | "version": "7.18.6",
1506 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz",
1507 | "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==",
1508 | "dev": true,
1509 | "requires": {
1510 | "@babel/compat-data": "^7.18.6",
1511 | "@babel/helper-validator-option": "^7.18.6",
1512 | "browserslist": "^4.20.2",
1513 | "semver": "^6.3.0"
1514 | }
1515 | },
1516 | "@babel/helper-environment-visitor": {
1517 | "version": "7.18.6",
1518 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz",
1519 | "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==",
1520 | "dev": true
1521 | },
1522 | "@babel/helper-function-name": {
1523 | "version": "7.18.6",
1524 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz",
1525 | "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==",
1526 | "dev": true,
1527 | "requires": {
1528 | "@babel/template": "^7.18.6",
1529 | "@babel/types": "^7.18.6"
1530 | }
1531 | },
1532 | "@babel/helper-hoist-variables": {
1533 | "version": "7.18.6",
1534 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
1535 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
1536 | "dev": true,
1537 | "requires": {
1538 | "@babel/types": "^7.18.6"
1539 | }
1540 | },
1541 | "@babel/helper-module-imports": {
1542 | "version": "7.18.6",
1543 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
1544 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
1545 | "dev": true,
1546 | "requires": {
1547 | "@babel/types": "^7.18.6"
1548 | }
1549 | },
1550 | "@babel/helper-module-transforms": {
1551 | "version": "7.18.8",
1552 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz",
1553 | "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==",
1554 | "dev": true,
1555 | "requires": {
1556 | "@babel/helper-environment-visitor": "^7.18.6",
1557 | "@babel/helper-module-imports": "^7.18.6",
1558 | "@babel/helper-simple-access": "^7.18.6",
1559 | "@babel/helper-split-export-declaration": "^7.18.6",
1560 | "@babel/helper-validator-identifier": "^7.18.6",
1561 | "@babel/template": "^7.18.6",
1562 | "@babel/traverse": "^7.18.8",
1563 | "@babel/types": "^7.18.8"
1564 | }
1565 | },
1566 | "@babel/helper-plugin-utils": {
1567 | "version": "7.18.6",
1568 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz",
1569 | "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==",
1570 | "dev": true
1571 | },
1572 | "@babel/helper-simple-access": {
1573 | "version": "7.18.6",
1574 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
1575 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
1576 | "dev": true,
1577 | "requires": {
1578 | "@babel/types": "^7.18.6"
1579 | }
1580 | },
1581 | "@babel/helper-split-export-declaration": {
1582 | "version": "7.18.6",
1583 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
1584 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
1585 | "dev": true,
1586 | "requires": {
1587 | "@babel/types": "^7.18.6"
1588 | }
1589 | },
1590 | "@babel/helper-validator-identifier": {
1591 | "version": "7.18.6",
1592 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
1593 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
1594 | "dev": true
1595 | },
1596 | "@babel/helper-validator-option": {
1597 | "version": "7.18.6",
1598 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
1599 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
1600 | "dev": true
1601 | },
1602 | "@babel/helpers": {
1603 | "version": "7.18.6",
1604 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz",
1605 | "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==",
1606 | "dev": true,
1607 | "requires": {
1608 | "@babel/template": "^7.18.6",
1609 | "@babel/traverse": "^7.18.6",
1610 | "@babel/types": "^7.18.6"
1611 | }
1612 | },
1613 | "@babel/highlight": {
1614 | "version": "7.18.6",
1615 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
1616 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
1617 | "dev": true,
1618 | "requires": {
1619 | "@babel/helper-validator-identifier": "^7.18.6",
1620 | "chalk": "^2.0.0",
1621 | "js-tokens": "^4.0.0"
1622 | }
1623 | },
1624 | "@babel/parser": {
1625 | "version": "7.18.8",
1626 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz",
1627 | "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==",
1628 | "dev": true
1629 | },
1630 | "@babel/plugin-syntax-jsx": {
1631 | "version": "7.18.6",
1632 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
1633 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
1634 | "dev": true,
1635 | "requires": {
1636 | "@babel/helper-plugin-utils": "^7.18.6"
1637 | }
1638 | },
1639 | "@babel/plugin-transform-react-jsx": {
1640 | "version": "7.18.6",
1641 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz",
1642 | "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==",
1643 | "dev": true,
1644 | "requires": {
1645 | "@babel/helper-annotate-as-pure": "^7.18.6",
1646 | "@babel/helper-module-imports": "^7.18.6",
1647 | "@babel/helper-plugin-utils": "^7.18.6",
1648 | "@babel/plugin-syntax-jsx": "^7.18.6",
1649 | "@babel/types": "^7.18.6"
1650 | }
1651 | },
1652 | "@babel/plugin-transform-react-jsx-development": {
1653 | "version": "7.18.6",
1654 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
1655 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
1656 | "dev": true,
1657 | "requires": {
1658 | "@babel/plugin-transform-react-jsx": "^7.18.6"
1659 | }
1660 | },
1661 | "@babel/plugin-transform-react-jsx-self": {
1662 | "version": "7.18.6",
1663 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz",
1664 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==",
1665 | "dev": true,
1666 | "requires": {
1667 | "@babel/helper-plugin-utils": "^7.18.6"
1668 | }
1669 | },
1670 | "@babel/plugin-transform-react-jsx-source": {
1671 | "version": "7.18.6",
1672 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz",
1673 | "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==",
1674 | "dev": true,
1675 | "requires": {
1676 | "@babel/helper-plugin-utils": "^7.18.6"
1677 | }
1678 | },
1679 | "@babel/template": {
1680 | "version": "7.18.6",
1681 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
1682 | "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
1683 | "dev": true,
1684 | "requires": {
1685 | "@babel/code-frame": "^7.18.6",
1686 | "@babel/parser": "^7.18.6",
1687 | "@babel/types": "^7.18.6"
1688 | }
1689 | },
1690 | "@babel/traverse": {
1691 | "version": "7.18.8",
1692 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz",
1693 | "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==",
1694 | "dev": true,
1695 | "requires": {
1696 | "@babel/code-frame": "^7.18.6",
1697 | "@babel/generator": "^7.18.7",
1698 | "@babel/helper-environment-visitor": "^7.18.6",
1699 | "@babel/helper-function-name": "^7.18.6",
1700 | "@babel/helper-hoist-variables": "^7.18.6",
1701 | "@babel/helper-split-export-declaration": "^7.18.6",
1702 | "@babel/parser": "^7.18.8",
1703 | "@babel/types": "^7.18.8",
1704 | "debug": "^4.1.0",
1705 | "globals": "^11.1.0"
1706 | }
1707 | },
1708 | "@babel/types": {
1709 | "version": "7.18.8",
1710 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz",
1711 | "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==",
1712 | "dev": true,
1713 | "requires": {
1714 | "@babel/helper-validator-identifier": "^7.18.6",
1715 | "to-fast-properties": "^2.0.0"
1716 | }
1717 | },
1718 | "@jridgewell/gen-mapping": {
1719 | "version": "0.1.1",
1720 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
1721 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
1722 | "dev": true,
1723 | "requires": {
1724 | "@jridgewell/set-array": "^1.0.0",
1725 | "@jridgewell/sourcemap-codec": "^1.4.10"
1726 | }
1727 | },
1728 | "@jridgewell/resolve-uri": {
1729 | "version": "3.1.0",
1730 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
1731 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
1732 | "dev": true
1733 | },
1734 | "@jridgewell/set-array": {
1735 | "version": "1.1.2",
1736 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
1737 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
1738 | "dev": true
1739 | },
1740 | "@jridgewell/sourcemap-codec": {
1741 | "version": "1.4.14",
1742 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
1743 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
1744 | "dev": true
1745 | },
1746 | "@jridgewell/trace-mapping": {
1747 | "version": "0.3.14",
1748 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
1749 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
1750 | "dev": true,
1751 | "requires": {
1752 | "@jridgewell/resolve-uri": "^3.0.3",
1753 | "@jridgewell/sourcemap-codec": "^1.4.10"
1754 | }
1755 | },
1756 | "@types/prop-types": {
1757 | "version": "15.7.5",
1758 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
1759 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
1760 | "dev": true
1761 | },
1762 | "@types/react": {
1763 | "version": "18.0.15",
1764 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz",
1765 | "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==",
1766 | "dev": true,
1767 | "requires": {
1768 | "@types/prop-types": "*",
1769 | "@types/scheduler": "*",
1770 | "csstype": "^3.0.2"
1771 | }
1772 | },
1773 | "@types/react-dom": {
1774 | "version": "18.0.6",
1775 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
1776 | "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
1777 | "dev": true,
1778 | "requires": {
1779 | "@types/react": "*"
1780 | }
1781 | },
1782 | "@types/scheduler": {
1783 | "version": "0.16.2",
1784 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
1785 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
1786 | "dev": true
1787 | },
1788 | "@vitejs/plugin-react": {
1789 | "version": "2.0.0",
1790 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.0.0.tgz",
1791 | "integrity": "sha512-zHkRR+X4zqEPNBbKV2FvWSxK7Q6crjMBVIAYroSU8Nbb4M3E5x4qOiLoqJBHtXgr27kfednXjkwr3lr8jS6Wrw==",
1792 | "dev": true,
1793 | "requires": {
1794 | "@babel/core": "^7.18.6",
1795 | "@babel/plugin-transform-react-jsx": "^7.18.6",
1796 | "@babel/plugin-transform-react-jsx-development": "^7.18.6",
1797 | "@babel/plugin-transform-react-jsx-self": "^7.18.6",
1798 | "@babel/plugin-transform-react-jsx-source": "^7.18.6",
1799 | "magic-string": "^0.26.2",
1800 | "react-refresh": "^0.14.0"
1801 | }
1802 | },
1803 | "ansi-styles": {
1804 | "version": "3.2.1",
1805 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1806 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1807 | "dev": true,
1808 | "requires": {
1809 | "color-convert": "^1.9.0"
1810 | }
1811 | },
1812 | "browserslist": {
1813 | "version": "4.21.2",
1814 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz",
1815 | "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==",
1816 | "dev": true,
1817 | "requires": {
1818 | "caniuse-lite": "^1.0.30001366",
1819 | "electron-to-chromium": "^1.4.188",
1820 | "node-releases": "^2.0.6",
1821 | "update-browserslist-db": "^1.0.4"
1822 | }
1823 | },
1824 | "caniuse-lite": {
1825 | "version": "1.0.30001367",
1826 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz",
1827 | "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==",
1828 | "dev": true
1829 | },
1830 | "chalk": {
1831 | "version": "2.4.2",
1832 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1833 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1834 | "dev": true,
1835 | "requires": {
1836 | "ansi-styles": "^3.2.1",
1837 | "escape-string-regexp": "^1.0.5",
1838 | "supports-color": "^5.3.0"
1839 | }
1840 | },
1841 | "color-convert": {
1842 | "version": "1.9.3",
1843 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1844 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1845 | "dev": true,
1846 | "requires": {
1847 | "color-name": "1.1.3"
1848 | }
1849 | },
1850 | "color-name": {
1851 | "version": "1.1.3",
1852 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1853 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
1854 | "dev": true
1855 | },
1856 | "convert-source-map": {
1857 | "version": "1.8.0",
1858 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
1859 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
1860 | "dev": true,
1861 | "requires": {
1862 | "safe-buffer": "~5.1.1"
1863 | }
1864 | },
1865 | "csstype": {
1866 | "version": "3.1.0",
1867 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
1868 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
1869 | "dev": true
1870 | },
1871 | "debug": {
1872 | "version": "4.3.4",
1873 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1874 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1875 | "dev": true,
1876 | "requires": {
1877 | "ms": "2.1.2"
1878 | }
1879 | },
1880 | "electron-to-chromium": {
1881 | "version": "1.4.192",
1882 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz",
1883 | "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==",
1884 | "dev": true
1885 | },
1886 | "esbuild": {
1887 | "version": "0.14.49",
1888 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz",
1889 | "integrity": "sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==",
1890 | "dev": true,
1891 | "requires": {
1892 | "esbuild-android-64": "0.14.49",
1893 | "esbuild-android-arm64": "0.14.49",
1894 | "esbuild-darwin-64": "0.14.49",
1895 | "esbuild-darwin-arm64": "0.14.49",
1896 | "esbuild-freebsd-64": "0.14.49",
1897 | "esbuild-freebsd-arm64": "0.14.49",
1898 | "esbuild-linux-32": "0.14.49",
1899 | "esbuild-linux-64": "0.14.49",
1900 | "esbuild-linux-arm": "0.14.49",
1901 | "esbuild-linux-arm64": "0.14.49",
1902 | "esbuild-linux-mips64le": "0.14.49",
1903 | "esbuild-linux-ppc64le": "0.14.49",
1904 | "esbuild-linux-riscv64": "0.14.49",
1905 | "esbuild-linux-s390x": "0.14.49",
1906 | "esbuild-netbsd-64": "0.14.49",
1907 | "esbuild-openbsd-64": "0.14.49",
1908 | "esbuild-sunos-64": "0.14.49",
1909 | "esbuild-windows-32": "0.14.49",
1910 | "esbuild-windows-64": "0.14.49",
1911 | "esbuild-windows-arm64": "0.14.49"
1912 | }
1913 | },
1914 | "esbuild-android-64": {
1915 | "version": "0.14.49",
1916 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz",
1917 | "integrity": "sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==",
1918 | "dev": true,
1919 | "optional": true
1920 | },
1921 | "esbuild-android-arm64": {
1922 | "version": "0.14.49",
1923 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz",
1924 | "integrity": "sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==",
1925 | "dev": true,
1926 | "optional": true
1927 | },
1928 | "esbuild-darwin-64": {
1929 | "version": "0.14.49",
1930 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz",
1931 | "integrity": "sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==",
1932 | "dev": true,
1933 | "optional": true
1934 | },
1935 | "esbuild-darwin-arm64": {
1936 | "version": "0.14.49",
1937 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz",
1938 | "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==",
1939 | "dev": true,
1940 | "optional": true
1941 | },
1942 | "esbuild-freebsd-64": {
1943 | "version": "0.14.49",
1944 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz",
1945 | "integrity": "sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==",
1946 | "dev": true,
1947 | "optional": true
1948 | },
1949 | "esbuild-freebsd-arm64": {
1950 | "version": "0.14.49",
1951 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz",
1952 | "integrity": "sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==",
1953 | "dev": true,
1954 | "optional": true
1955 | },
1956 | "esbuild-linux-32": {
1957 | "version": "0.14.49",
1958 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz",
1959 | "integrity": "sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==",
1960 | "dev": true,
1961 | "optional": true
1962 | },
1963 | "esbuild-linux-64": {
1964 | "version": "0.14.49",
1965 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz",
1966 | "integrity": "sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==",
1967 | "dev": true,
1968 | "optional": true
1969 | },
1970 | "esbuild-linux-arm": {
1971 | "version": "0.14.49",
1972 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz",
1973 | "integrity": "sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==",
1974 | "dev": true,
1975 | "optional": true
1976 | },
1977 | "esbuild-linux-arm64": {
1978 | "version": "0.14.49",
1979 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz",
1980 | "integrity": "sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==",
1981 | "dev": true,
1982 | "optional": true
1983 | },
1984 | "esbuild-linux-mips64le": {
1985 | "version": "0.14.49",
1986 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz",
1987 | "integrity": "sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==",
1988 | "dev": true,
1989 | "optional": true
1990 | },
1991 | "esbuild-linux-ppc64le": {
1992 | "version": "0.14.49",
1993 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz",
1994 | "integrity": "sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==",
1995 | "dev": true,
1996 | "optional": true
1997 | },
1998 | "esbuild-linux-riscv64": {
1999 | "version": "0.14.49",
2000 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz",
2001 | "integrity": "sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==",
2002 | "dev": true,
2003 | "optional": true
2004 | },
2005 | "esbuild-linux-s390x": {
2006 | "version": "0.14.49",
2007 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz",
2008 | "integrity": "sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==",
2009 | "dev": true,
2010 | "optional": true
2011 | },
2012 | "esbuild-netbsd-64": {
2013 | "version": "0.14.49",
2014 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz",
2015 | "integrity": "sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==",
2016 | "dev": true,
2017 | "optional": true
2018 | },
2019 | "esbuild-openbsd-64": {
2020 | "version": "0.14.49",
2021 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz",
2022 | "integrity": "sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==",
2023 | "dev": true,
2024 | "optional": true
2025 | },
2026 | "esbuild-sunos-64": {
2027 | "version": "0.14.49",
2028 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz",
2029 | "integrity": "sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==",
2030 | "dev": true,
2031 | "optional": true
2032 | },
2033 | "esbuild-windows-32": {
2034 | "version": "0.14.49",
2035 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz",
2036 | "integrity": "sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==",
2037 | "dev": true,
2038 | "optional": true
2039 | },
2040 | "esbuild-windows-64": {
2041 | "version": "0.14.49",
2042 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz",
2043 | "integrity": "sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==",
2044 | "dev": true,
2045 | "optional": true
2046 | },
2047 | "esbuild-windows-arm64": {
2048 | "version": "0.14.49",
2049 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz",
2050 | "integrity": "sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==",
2051 | "dev": true,
2052 | "optional": true
2053 | },
2054 | "escalade": {
2055 | "version": "3.1.1",
2056 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2057 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2058 | "dev": true
2059 | },
2060 | "escape-string-regexp": {
2061 | "version": "1.0.5",
2062 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2063 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
2064 | "dev": true
2065 | },
2066 | "fsevents": {
2067 | "version": "2.3.2",
2068 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
2069 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
2070 | "dev": true,
2071 | "optional": true
2072 | },
2073 | "function-bind": {
2074 | "version": "1.1.1",
2075 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2076 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
2077 | "dev": true
2078 | },
2079 | "gensync": {
2080 | "version": "1.0.0-beta.2",
2081 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
2082 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2083 | "dev": true
2084 | },
2085 | "globals": {
2086 | "version": "11.12.0",
2087 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2088 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2089 | "dev": true
2090 | },
2091 | "has": {
2092 | "version": "1.0.3",
2093 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
2094 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
2095 | "dev": true,
2096 | "requires": {
2097 | "function-bind": "^1.1.1"
2098 | }
2099 | },
2100 | "has-flag": {
2101 | "version": "3.0.0",
2102 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2103 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
2104 | "dev": true
2105 | },
2106 | "is-core-module": {
2107 | "version": "2.9.0",
2108 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
2109 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
2110 | "dev": true,
2111 | "requires": {
2112 | "has": "^1.0.3"
2113 | }
2114 | },
2115 | "js-tokens": {
2116 | "version": "4.0.0",
2117 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2118 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
2119 | },
2120 | "jsesc": {
2121 | "version": "2.5.2",
2122 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
2123 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
2124 | "dev": true
2125 | },
2126 | "json5": {
2127 | "version": "2.2.1",
2128 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
2129 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
2130 | "dev": true
2131 | },
2132 | "loose-envify": {
2133 | "version": "1.4.0",
2134 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2135 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2136 | "requires": {
2137 | "js-tokens": "^3.0.0 || ^4.0.0"
2138 | }
2139 | },
2140 | "magic-string": {
2141 | "version": "0.26.2",
2142 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
2143 | "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
2144 | "dev": true,
2145 | "requires": {
2146 | "sourcemap-codec": "^1.4.8"
2147 | }
2148 | },
2149 | "ms": {
2150 | "version": "2.1.2",
2151 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2152 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2153 | "dev": true
2154 | },
2155 | "nanoid": {
2156 | "version": "3.3.4",
2157 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
2158 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
2159 | "dev": true
2160 | },
2161 | "node-releases": {
2162 | "version": "2.0.6",
2163 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
2164 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
2165 | "dev": true
2166 | },
2167 | "path-parse": {
2168 | "version": "1.0.7",
2169 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2170 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2171 | "dev": true
2172 | },
2173 | "picocolors": {
2174 | "version": "1.0.0",
2175 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
2176 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
2177 | "dev": true
2178 | },
2179 | "postcss": {
2180 | "version": "8.4.14",
2181 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
2182 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
2183 | "dev": true,
2184 | "requires": {
2185 | "nanoid": "^3.3.4",
2186 | "picocolors": "^1.0.0",
2187 | "source-map-js": "^1.0.2"
2188 | }
2189 | },
2190 | "react": {
2191 | "version": "18.2.0",
2192 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
2193 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
2194 | "requires": {
2195 | "loose-envify": "^1.1.0"
2196 | }
2197 | },
2198 | "react-dom": {
2199 | "version": "18.2.0",
2200 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
2201 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
2202 | "requires": {
2203 | "loose-envify": "^1.1.0",
2204 | "scheduler": "^0.23.0"
2205 | }
2206 | },
2207 | "react-refresh": {
2208 | "version": "0.14.0",
2209 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
2210 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
2211 | "dev": true
2212 | },
2213 | "resolve": {
2214 | "version": "1.22.1",
2215 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
2216 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
2217 | "dev": true,
2218 | "requires": {
2219 | "is-core-module": "^2.9.0",
2220 | "path-parse": "^1.0.7",
2221 | "supports-preserve-symlinks-flag": "^1.0.0"
2222 | }
2223 | },
2224 | "rollup": {
2225 | "version": "2.77.0",
2226 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.0.tgz",
2227 | "integrity": "sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==",
2228 | "dev": true,
2229 | "requires": {
2230 | "fsevents": "~2.3.2"
2231 | }
2232 | },
2233 | "safe-buffer": {
2234 | "version": "5.1.2",
2235 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2236 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2237 | "dev": true
2238 | },
2239 | "scheduler": {
2240 | "version": "0.23.0",
2241 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
2242 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
2243 | "requires": {
2244 | "loose-envify": "^1.1.0"
2245 | }
2246 | },
2247 | "semver": {
2248 | "version": "6.3.0",
2249 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2250 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2251 | "dev": true
2252 | },
2253 | "source-map-js": {
2254 | "version": "1.0.2",
2255 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
2256 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
2257 | "dev": true
2258 | },
2259 | "sourcemap-codec": {
2260 | "version": "1.4.8",
2261 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
2262 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
2263 | "dev": true
2264 | },
2265 | "supports-color": {
2266 | "version": "5.5.0",
2267 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2268 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2269 | "dev": true,
2270 | "requires": {
2271 | "has-flag": "^3.0.0"
2272 | }
2273 | },
2274 | "supports-preserve-symlinks-flag": {
2275 | "version": "1.0.0",
2276 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2277 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2278 | "dev": true
2279 | },
2280 | "to-fast-properties": {
2281 | "version": "2.0.0",
2282 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
2283 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
2284 | "dev": true
2285 | },
2286 | "typescript": {
2287 | "version": "4.7.4",
2288 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
2289 | "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
2290 | "dev": true
2291 | },
2292 | "update-browserslist-db": {
2293 | "version": "1.0.4",
2294 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz",
2295 | "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==",
2296 | "dev": true,
2297 | "requires": {
2298 | "escalade": "^3.1.1",
2299 | "picocolors": "^1.0.0"
2300 | }
2301 | },
2302 | "vite": {
2303 | "version": "3.0.0",
2304 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.0.tgz",
2305 | "integrity": "sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==",
2306 | "dev": true,
2307 | "requires": {
2308 | "esbuild": "^0.14.47",
2309 | "fsevents": "~2.3.2",
2310 | "postcss": "^8.4.14",
2311 | "resolve": "^1.22.1",
2312 | "rollup": "^2.75.6"
2313 | }
2314 | }
2315 | }
2316 | }
2317 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dnd-app",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc && vite build",
9 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "react": "^18.2.0",
13 | "react-dom": "^18.2.0"
14 | },
15 | "devDependencies": {
16 | "@types/react": "^18.0.15",
17 | "@types/react-dom": "^18.0.6",
18 | "@vitejs/plugin-react": "^2.0.0",
19 | "typescript": "^4.6.4",
20 | "vite": "^3.0.0"
21 | }
22 | }
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { DragAndDrop, Title } from "./components"
2 |
3 | const App = () => {
4 |
5 | return (
6 |
7 |
8 |
9 |
10 | )
11 | }
12 | export default App
13 |
--------------------------------------------------------------------------------
/src/assets/index.ts:
--------------------------------------------------------------------------------
1 | import { Data } from "../interfaces";
2 |
3 | export const data: Data[] = [
4 | {
5 | id: 1,
6 | content: 'Aqua-man',
7 | status: 'good'
8 | },
9 | {
10 | id: 2,
11 | content: 'Flash',
12 | status: 'normal'
13 | },
14 | {
15 | id: 3,
16 | content: 'Green Lantern',
17 | status: 'good'
18 | },
19 | {
20 | id: 4,
21 | content: 'Batman',
22 | status: 'bad'
23 | },
24 | ]
25 |
--------------------------------------------------------------------------------
/src/components/CardItem.tsx:
--------------------------------------------------------------------------------
1 | import { Data } from "../interfaces"
2 |
3 | interface Props {
4 | data: Data,
5 | handleDragging: (dragging: boolean) => void
6 | }
7 |
8 | export const CardItem = ({ data, handleDragging }: Props) => {
9 |
10 | const handleDragStart = (e: React.DragEvent) => {
11 | e.dataTransfer.setData('text', `${data.id}`)
12 | handleDragging(true)
13 | }
14 | const handleDragEnd = () => handleDragging(false)
15 |
16 | return (
17 |
25 | )
26 | }
--------------------------------------------------------------------------------
/src/components/ContainerCards.tsx:
--------------------------------------------------------------------------------
1 | import { Data, Status } from "../interfaces"
2 | import { CardItem } from "./CardItem"
3 |
4 | interface Props {
5 | items: Data[]
6 | status: Status
7 | isDragging: boolean
8 | handleUpdateList: (id: number, status: Status) => void
9 | handleDragging: (dragging: boolean) => void
10 | }
11 |
12 | export const ContainerCards = ({ items = [], status, isDragging, handleDragging, handleUpdateList }: Props) => {
13 |
14 | const handleDrop = (e: React.DragEvent) => {
15 | e.preventDefault();
16 | handleUpdateList(+e.dataTransfer.getData('text'), status)
17 | handleDragging(false)
18 | }
19 |
20 | const handleDragOver = (e: React.DragEvent) => e.preventDefault()
21 |
22 | return (
23 |
28 |
{status} hero
29 | {
30 | items.map(item => (
31 | status === item.status
32 | &&
37 | ))
38 | }
39 |
40 | )
41 | }
42 |
--------------------------------------------------------------------------------
/src/components/DragAndDrop.tsx:
--------------------------------------------------------------------------------
1 | import { data } from "../assets"
2 | import { useDragAndDrop } from "../hooks/useDragAndDrop"
3 | import { Status } from "../interfaces"
4 | import { ContainerCards } from "./ContainerCards"
5 |
6 |
7 | const typesHero: Status[] = ['good', 'normal', 'bad']
8 |
9 |
10 | export const DragAndDrop = () => {
11 | const { isDragging, listItems, handleDragging, handleUpdateList } = useDragAndDrop(data)
12 |
13 | return (
14 |
15 | {
16 | typesHero.map(container => (
17 |
26 | ))
27 | }
28 |
29 | )
30 | }
--------------------------------------------------------------------------------
/src/components/Title.tsx:
--------------------------------------------------------------------------------
1 |
2 | export const Title = () => {
3 | return (
4 |
5 |
Creating basic Drag & Drop 👆
6 | ( without external libraries )
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/src/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './CardItem'
2 | export * from './ContainerCards'
3 | export * from './Title'
4 | export * from './DragAndDrop'
--------------------------------------------------------------------------------
/src/hooks/useDragAndDrop.ts:
--------------------------------------------------------------------------------
1 | import { useState } from "react"
2 | import { Data, Status } from "../interfaces"
3 |
4 | export const useDragAndDrop = (initialState: Data[]) => {
5 |
6 | const [isDragging, setIsDragging] = useState(false)
7 | const [listItems, setListItems] = useState(initialState)
8 |
9 | const handleUpdateList = (id: number, status: Status) => {
10 | let card = listItems.find(item => item.id === id)
11 |
12 | if (card && card.status !== status) {
13 | card.status = status
14 | if (Array.isArray(listItems)) {
15 | setListItems(prev => ([
16 | card!,
17 | ...prev.filter(item => item.id !== id)
18 | ]))
19 | }
20 | }
21 |
22 | }
23 |
24 | const handleDragging = (dragging: boolean) => setIsDragging(dragging)
25 |
26 | return {
27 | isDragging,
28 | listItems,
29 | handleUpdateList,
30 | handleDragging,
31 | }
32 | }
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600;700;900&display=swap');
2 |
3 | * {
4 | margin: 0;
5 | padding: 0;
6 | box-sizing: border-box;
7 | }
8 |
9 | body {
10 | background-color: #1a1a1a;
11 | color: #f2f2f2;
12 | font-family: 'Montserrat', sans-serif;
13 | font-weight: normal;
14 | }
15 |
16 | .flex {
17 | display: flex;
18 | justify-content: center;
19 | align-items: center;
20 | flex-direction: column;
21 | }
22 |
23 | .container-main {
24 | min-height: 85vh;
25 | }
26 |
27 | /* TITLE */
28 | .title {
29 | text-align: center;
30 | padding: 2rem 0;
31 | gap: .5rem;
32 | }
33 |
34 | .title>h1 {
35 | font-size: 3.5rem;
36 | font-weight: 900;
37 | }
38 |
39 | .title>span {
40 | font-size: 1.5rem;
41 | letter-spacing: 1px;
42 | font-weight: lighter;
43 | }
44 |
45 | /* LAYOUT CARDS */
46 | .grid {
47 | flex: 1;
48 | display: grid;
49 | grid-template-columns: 1fr 1fr 1fr;
50 | gap: 2rem;
51 | padding: 0 2rem;
52 | width: 100%;
53 | }
54 |
55 | .layout-cards {
56 | border: 2px solid #ffffff8c;
57 | border-radius: 5px;
58 | transition: all .3s linear;
59 | }
60 |
61 | .layout-cards>p {
62 | border-radius: 5px;
63 | background-color: black;
64 | text-align: center;
65 | padding: 1rem 0;
66 | font-weight: bold;
67 | text-transform: capitalize;
68 | }
69 |
70 |
71 | .layout-dragging {
72 | background: #ffffff17;
73 | border: 2px dashed #ffffff8c;
74 | }
75 |
76 | /* SINGLE CARD */
77 | .card-container {
78 | margin: 1rem 1rem 0 1rem;
79 | background-color: slateblue;
80 | border-radius: 5px;
81 | padding: 1rem;
82 | cursor: pointer;
83 | animation: fadeIn .3s ease-in-out;
84 | }
85 |
86 | @keyframes fadeIn {
87 | 0% {
88 | opacity: 0;
89 | transform: translateY(20px);
90 | }
91 |
92 | 100% {
93 | opacity: 1;
94 | transform: translateY(0)
95 | }
96 | }
97 |
98 | .card-container>p {
99 | font-weight: bold;
100 | font-size: 1.5rem;
101 | }
102 |
103 |
104 | @media screen and (max-width: 800px) {
105 |
106 |
107 | .grid {
108 | grid-template-columns: 1fr;
109 | grid-template-rows: 1fr;
110 | }
111 |
112 | .layout-cards {
113 | overflow-y: scroll;
114 | height: 250px;
115 | min-height: 150px;
116 | max-height: 250px;
117 | }
118 | }
--------------------------------------------------------------------------------
/src/interfaces/index.ts:
--------------------------------------------------------------------------------
1 | export type Status = 'good' | 'bad' | 'normal'
2 | export interface Data {
3 | id: number
4 | content: string
5 | status: Status
6 | }
7 |
--------------------------------------------------------------------------------
/src/main.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 | import './index.css'
5 |
6 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
7 |
8 |
9 |
10 | )
11 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "useDefineForClassFields": true,
5 | "lib": ["DOM", "DOM.Iterable", "ESNext"],
6 | "allowJs": false,
7 | "skipLibCheck": true,
8 | "esModuleInterop": false,
9 | "allowSyntheticDefaultImports": true,
10 | "strict": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "module": "ESNext",
13 | "moduleResolution": "Node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react-jsx"
18 | },
19 | "include": ["src"],
20 | "references": [{ "path": "./tsconfig.node.json" }]
21 | }
22 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "module": "ESNext",
5 | "moduleResolution": "Node",
6 | "allowSyntheticDefaultImports": true
7 | },
8 | "include": ["vite.config.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [react()]
7 | })
8 |
--------------------------------------------------------------------------------