Spaces:
Running
Running
Commit ·
81814ba
1
Parent(s): 12b7639
commit 3
Browse files- package-lock.json +471 -4
- package.json +3 -0
- src/FileUploadForm.js +170 -46
- src/index.js +22 -14
package-lock.json
CHANGED
|
@@ -8,11 +8,14 @@
|
|
| 8 |
"name": "react-template",
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
|
|
|
|
|
|
| 11 |
"@testing-library/dom": "^10.4.0",
|
| 12 |
"@testing-library/jest-dom": "^6.6.3",
|
| 13 |
"@testing-library/react": "^16.3.0",
|
| 14 |
"@testing-library/user-event": "^13.5.0",
|
| 15 |
"axios": "^1.11.0",
|
|
|
|
| 16 |
"react": "^19.1.0",
|
| 17 |
"react-dom": "^19.1.0",
|
| 18 |
"react-scripts": "5.0.1",
|
|
@@ -2380,6 +2383,68 @@
|
|
| 2380 |
"postcss-selector-parser": "^6.0.10"
|
| 2381 |
}
|
| 2382 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2383 |
"node_modules/@eslint-community/eslint-utils": {
|
| 2384 |
"version": "4.7.0",
|
| 2385 |
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
|
|
@@ -2952,6 +3017,251 @@
|
|
| 2952 |
"integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
|
| 2953 |
"license": "MIT"
|
| 2954 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2955 |
"node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
|
| 2956 |
"version": "5.1.1-v1",
|
| 2957 |
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
|
|
@@ -3076,6 +3386,16 @@
|
|
| 3076 |
}
|
| 3077 |
}
|
| 3078 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3079 |
"node_modules/@rollup/plugin-babel": {
|
| 3080 |
"version": "5.3.1",
|
| 3081 |
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
|
|
@@ -3779,6 +4099,12 @@
|
|
| 3779 |
"integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
|
| 3780 |
"license": "MIT"
|
| 3781 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3782 |
"node_modules/@types/q": {
|
| 3783 |
"version": "1.5.8",
|
| 3784 |
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
|
|
@@ -3797,6 +4123,25 @@
|
|
| 3797 |
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
|
| 3798 |
"license": "MIT"
|
| 3799 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3800 |
"node_modules/@types/resolve": {
|
| 3801 |
"version": "1.17.1",
|
| 3802 |
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
|
|
@@ -5648,6 +5993,15 @@
|
|
| 5648 |
"wrap-ansi": "^7.0.0"
|
| 5649 |
}
|
| 5650 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5651 |
"node_modules/co": {
|
| 5652 |
"version": "4.6.0",
|
| 5653 |
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
|
@@ -6378,6 +6732,12 @@
|
|
| 6378 |
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
|
| 6379 |
"license": "MIT"
|
| 6380 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6381 |
"node_modules/damerau-levenshtein": {
|
| 6382 |
"version": "1.0.8",
|
| 6383 |
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
|
|
@@ -6704,6 +7064,16 @@
|
|
| 6704 |
"utila": "~0.4"
|
| 6705 |
}
|
| 6706 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6707 |
"node_modules/dom-serializer": {
|
| 6708 |
"version": "1.4.1",
|
| 6709 |
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
|
@@ -9165,6 +9535,12 @@
|
|
| 9165 |
"node": ">= 4"
|
| 9166 |
}
|
| 9167 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9168 |
"node_modules/immer": {
|
| 9169 |
"version": "9.0.21",
|
| 9170 |
"resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
|
|
@@ -11038,6 +11414,54 @@
|
|
| 11038 |
"node": ">=4.0"
|
| 11039 |
}
|
| 11040 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11041 |
"node_modules/keyv": {
|
| 11042 |
"version": "4.5.4",
|
| 11043 |
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
|
@@ -11124,6 +11548,15 @@
|
|
| 11124 |
"node": ">= 0.8.0"
|
| 11125 |
}
|
| 11126 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11127 |
"node_modules/lilconfig": {
|
| 11128 |
"version": "2.1.0",
|
| 11129 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
|
@@ -11960,6 +12393,12 @@
|
|
| 11960 |
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
|
| 11961 |
"license": "BlueOak-1.0.0"
|
| 11962 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11963 |
"node_modules/param-case": {
|
| 11964 |
"version": "3.0.4",
|
| 11965 |
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
|
|
@@ -14007,6 +14446,22 @@
|
|
| 14007 |
}
|
| 14008 |
}
|
| 14009 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14010 |
"node_modules/read-cache": {
|
| 14011 |
"version": "1.0.0",
|
| 14012 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
|
@@ -14886,6 +15341,12 @@
|
|
| 14886 |
"node": ">= 0.4"
|
| 14887 |
}
|
| 14888 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14889 |
"node_modules/setprototypeof": {
|
| 14890 |
"version": "1.2.0",
|
| 14891 |
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
|
@@ -15590,6 +16051,12 @@
|
|
| 15590 |
"postcss": "^8.2.15"
|
| 15591 |
}
|
| 15592 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15593 |
"node_modules/sucrase": {
|
| 15594 |
"version": "3.35.0",
|
| 15595 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
|
|
@@ -16361,9 +16828,9 @@
|
|
| 16361 |
}
|
| 16362 |
},
|
| 16363 |
"node_modules/typescript": {
|
| 16364 |
-
"version": "
|
| 16365 |
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-
|
| 16366 |
-
"integrity": "sha512-
|
| 16367 |
"license": "Apache-2.0",
|
| 16368 |
"peer": true,
|
| 16369 |
"bin": {
|
|
@@ -16371,7 +16838,7 @@
|
|
| 16371 |
"tsserver": "bin/tsserver"
|
| 16372 |
},
|
| 16373 |
"engines": {
|
| 16374 |
-
"node": ">=
|
| 16375 |
}
|
| 16376 |
},
|
| 16377 |
"node_modules/unbox-primitive": {
|
|
|
|
| 8 |
"name": "react-template",
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
| 11 |
+
"@mui/icons-material": "^7.2.0",
|
| 12 |
+
"@mui/material": "^7.2.0",
|
| 13 |
"@testing-library/dom": "^10.4.0",
|
| 14 |
"@testing-library/jest-dom": "^6.6.3",
|
| 15 |
"@testing-library/react": "^16.3.0",
|
| 16 |
"@testing-library/user-event": "^13.5.0",
|
| 17 |
"axios": "^1.11.0",
|
| 18 |
+
"jszip": "^3.10.1",
|
| 19 |
"react": "^19.1.0",
|
| 20 |
"react-dom": "^19.1.0",
|
| 21 |
"react-scripts": "5.0.1",
|
|
|
|
| 2383 |
"postcss-selector-parser": "^6.0.10"
|
| 2384 |
}
|
| 2385 |
},
|
| 2386 |
+
"node_modules/@emotion/cache": {
|
| 2387 |
+
"version": "11.14.0",
|
| 2388 |
+
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
|
| 2389 |
+
"integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
|
| 2390 |
+
"license": "MIT",
|
| 2391 |
+
"dependencies": {
|
| 2392 |
+
"@emotion/memoize": "^0.9.0",
|
| 2393 |
+
"@emotion/sheet": "^1.4.0",
|
| 2394 |
+
"@emotion/utils": "^1.4.2",
|
| 2395 |
+
"@emotion/weak-memoize": "^0.4.0",
|
| 2396 |
+
"stylis": "4.2.0"
|
| 2397 |
+
}
|
| 2398 |
+
},
|
| 2399 |
+
"node_modules/@emotion/hash": {
|
| 2400 |
+
"version": "0.9.2",
|
| 2401 |
+
"resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
|
| 2402 |
+
"integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
|
| 2403 |
+
"license": "MIT"
|
| 2404 |
+
},
|
| 2405 |
+
"node_modules/@emotion/memoize": {
|
| 2406 |
+
"version": "0.9.0",
|
| 2407 |
+
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
|
| 2408 |
+
"integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
|
| 2409 |
+
"license": "MIT"
|
| 2410 |
+
},
|
| 2411 |
+
"node_modules/@emotion/serialize": {
|
| 2412 |
+
"version": "1.3.3",
|
| 2413 |
+
"resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
|
| 2414 |
+
"integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
|
| 2415 |
+
"license": "MIT",
|
| 2416 |
+
"dependencies": {
|
| 2417 |
+
"@emotion/hash": "^0.9.2",
|
| 2418 |
+
"@emotion/memoize": "^0.9.0",
|
| 2419 |
+
"@emotion/unitless": "^0.10.0",
|
| 2420 |
+
"@emotion/utils": "^1.4.2",
|
| 2421 |
+
"csstype": "^3.0.2"
|
| 2422 |
+
}
|
| 2423 |
+
},
|
| 2424 |
+
"node_modules/@emotion/sheet": {
|
| 2425 |
+
"version": "1.4.0",
|
| 2426 |
+
"resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
|
| 2427 |
+
"integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
|
| 2428 |
+
"license": "MIT"
|
| 2429 |
+
},
|
| 2430 |
+
"node_modules/@emotion/unitless": {
|
| 2431 |
+
"version": "0.10.0",
|
| 2432 |
+
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
|
| 2433 |
+
"integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
|
| 2434 |
+
"license": "MIT"
|
| 2435 |
+
},
|
| 2436 |
+
"node_modules/@emotion/utils": {
|
| 2437 |
+
"version": "1.4.2",
|
| 2438 |
+
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
|
| 2439 |
+
"integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
|
| 2440 |
+
"license": "MIT"
|
| 2441 |
+
},
|
| 2442 |
+
"node_modules/@emotion/weak-memoize": {
|
| 2443 |
+
"version": "0.4.0",
|
| 2444 |
+
"resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
|
| 2445 |
+
"integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
|
| 2446 |
+
"license": "MIT"
|
| 2447 |
+
},
|
| 2448 |
"node_modules/@eslint-community/eslint-utils": {
|
| 2449 |
"version": "4.7.0",
|
| 2450 |
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
|
|
|
|
| 3017 |
"integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
|
| 3018 |
"license": "MIT"
|
| 3019 |
},
|
| 3020 |
+
"node_modules/@mui/core-downloads-tracker": {
|
| 3021 |
+
"version": "7.2.0",
|
| 3022 |
+
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.2.0.tgz",
|
| 3023 |
+
"integrity": "sha512-d49s7kEgI5iX40xb2YPazANvo7Bx0BLg/MNRwv+7BVpZUzXj1DaVCKlQTDex3gy/0jsCb4w7AY2uH4t4AJvSog==",
|
| 3024 |
+
"license": "MIT",
|
| 3025 |
+
"funding": {
|
| 3026 |
+
"type": "opencollective",
|
| 3027 |
+
"url": "https://opencollective.com/mui-org"
|
| 3028 |
+
}
|
| 3029 |
+
},
|
| 3030 |
+
"node_modules/@mui/icons-material": {
|
| 3031 |
+
"version": "7.2.0",
|
| 3032 |
+
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.2.0.tgz",
|
| 3033 |
+
"integrity": "sha512-gRCspp3pfjHQyTmSOmYw7kUQTd9Udpdan4R8EnZvqPeoAtHnPzkvjBrBqzKaoAbbBp5bGF7BcD18zZJh4nwu0A==",
|
| 3034 |
+
"license": "MIT",
|
| 3035 |
+
"dependencies": {
|
| 3036 |
+
"@babel/runtime": "^7.27.6"
|
| 3037 |
+
},
|
| 3038 |
+
"engines": {
|
| 3039 |
+
"node": ">=14.0.0"
|
| 3040 |
+
},
|
| 3041 |
+
"funding": {
|
| 3042 |
+
"type": "opencollective",
|
| 3043 |
+
"url": "https://opencollective.com/mui-org"
|
| 3044 |
+
},
|
| 3045 |
+
"peerDependencies": {
|
| 3046 |
+
"@mui/material": "^7.2.0",
|
| 3047 |
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
| 3048 |
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3049 |
+
},
|
| 3050 |
+
"peerDependenciesMeta": {
|
| 3051 |
+
"@types/react": {
|
| 3052 |
+
"optional": true
|
| 3053 |
+
}
|
| 3054 |
+
}
|
| 3055 |
+
},
|
| 3056 |
+
"node_modules/@mui/material": {
|
| 3057 |
+
"version": "7.2.0",
|
| 3058 |
+
"resolved": "https://registry.npmjs.org/@mui/material/-/material-7.2.0.tgz",
|
| 3059 |
+
"integrity": "sha512-NTuyFNen5Z2QY+I242MDZzXnFIVIR6ERxo7vntFi9K1wCgSwvIl0HcAO2OOydKqqKApE6omRiYhpny1ZhGuH7Q==",
|
| 3060 |
+
"license": "MIT",
|
| 3061 |
+
"dependencies": {
|
| 3062 |
+
"@babel/runtime": "^7.27.6",
|
| 3063 |
+
"@mui/core-downloads-tracker": "^7.2.0",
|
| 3064 |
+
"@mui/system": "^7.2.0",
|
| 3065 |
+
"@mui/types": "^7.4.4",
|
| 3066 |
+
"@mui/utils": "^7.2.0",
|
| 3067 |
+
"@popperjs/core": "^2.11.8",
|
| 3068 |
+
"@types/react-transition-group": "^4.4.12",
|
| 3069 |
+
"clsx": "^2.1.1",
|
| 3070 |
+
"csstype": "^3.1.3",
|
| 3071 |
+
"prop-types": "^15.8.1",
|
| 3072 |
+
"react-is": "^19.1.0",
|
| 3073 |
+
"react-transition-group": "^4.4.5"
|
| 3074 |
+
},
|
| 3075 |
+
"engines": {
|
| 3076 |
+
"node": ">=14.0.0"
|
| 3077 |
+
},
|
| 3078 |
+
"funding": {
|
| 3079 |
+
"type": "opencollective",
|
| 3080 |
+
"url": "https://opencollective.com/mui-org"
|
| 3081 |
+
},
|
| 3082 |
+
"peerDependencies": {
|
| 3083 |
+
"@emotion/react": "^11.5.0",
|
| 3084 |
+
"@emotion/styled": "^11.3.0",
|
| 3085 |
+
"@mui/material-pigment-css": "^7.2.0",
|
| 3086 |
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
| 3087 |
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
| 3088 |
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3089 |
+
},
|
| 3090 |
+
"peerDependenciesMeta": {
|
| 3091 |
+
"@emotion/react": {
|
| 3092 |
+
"optional": true
|
| 3093 |
+
},
|
| 3094 |
+
"@emotion/styled": {
|
| 3095 |
+
"optional": true
|
| 3096 |
+
},
|
| 3097 |
+
"@mui/material-pigment-css": {
|
| 3098 |
+
"optional": true
|
| 3099 |
+
},
|
| 3100 |
+
"@types/react": {
|
| 3101 |
+
"optional": true
|
| 3102 |
+
}
|
| 3103 |
+
}
|
| 3104 |
+
},
|
| 3105 |
+
"node_modules/@mui/material/node_modules/react-is": {
|
| 3106 |
+
"version": "19.1.1",
|
| 3107 |
+
"resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz",
|
| 3108 |
+
"integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==",
|
| 3109 |
+
"license": "MIT"
|
| 3110 |
+
},
|
| 3111 |
+
"node_modules/@mui/private-theming": {
|
| 3112 |
+
"version": "7.2.0",
|
| 3113 |
+
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.2.0.tgz",
|
| 3114 |
+
"integrity": "sha512-y6N1Yt3T5RMxVFnCh6+zeSWBuQdNDm5/UlM0EAYZzZR/1u+XKJWYQmbpx4e+F+1EpkYi3Nk8KhPiQDi83M3zIw==",
|
| 3115 |
+
"license": "MIT",
|
| 3116 |
+
"dependencies": {
|
| 3117 |
+
"@babel/runtime": "^7.27.6",
|
| 3118 |
+
"@mui/utils": "^7.2.0",
|
| 3119 |
+
"prop-types": "^15.8.1"
|
| 3120 |
+
},
|
| 3121 |
+
"engines": {
|
| 3122 |
+
"node": ">=14.0.0"
|
| 3123 |
+
},
|
| 3124 |
+
"funding": {
|
| 3125 |
+
"type": "opencollective",
|
| 3126 |
+
"url": "https://opencollective.com/mui-org"
|
| 3127 |
+
},
|
| 3128 |
+
"peerDependencies": {
|
| 3129 |
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
| 3130 |
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3131 |
+
},
|
| 3132 |
+
"peerDependenciesMeta": {
|
| 3133 |
+
"@types/react": {
|
| 3134 |
+
"optional": true
|
| 3135 |
+
}
|
| 3136 |
+
}
|
| 3137 |
+
},
|
| 3138 |
+
"node_modules/@mui/styled-engine": {
|
| 3139 |
+
"version": "7.2.0",
|
| 3140 |
+
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.2.0.tgz",
|
| 3141 |
+
"integrity": "sha512-yq08xynbrNYcB1nBcW9Fn8/h/iniM3ewRguGJXPIAbHvxEF7Pz95kbEEOAAhwzxMX4okhzvHmk0DFuC5ayvgIQ==",
|
| 3142 |
+
"license": "MIT",
|
| 3143 |
+
"dependencies": {
|
| 3144 |
+
"@babel/runtime": "^7.27.6",
|
| 3145 |
+
"@emotion/cache": "^11.14.0",
|
| 3146 |
+
"@emotion/serialize": "^1.3.3",
|
| 3147 |
+
"@emotion/sheet": "^1.4.0",
|
| 3148 |
+
"csstype": "^3.1.3",
|
| 3149 |
+
"prop-types": "^15.8.1"
|
| 3150 |
+
},
|
| 3151 |
+
"engines": {
|
| 3152 |
+
"node": ">=14.0.0"
|
| 3153 |
+
},
|
| 3154 |
+
"funding": {
|
| 3155 |
+
"type": "opencollective",
|
| 3156 |
+
"url": "https://opencollective.com/mui-org"
|
| 3157 |
+
},
|
| 3158 |
+
"peerDependencies": {
|
| 3159 |
+
"@emotion/react": "^11.4.1",
|
| 3160 |
+
"@emotion/styled": "^11.3.0",
|
| 3161 |
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3162 |
+
},
|
| 3163 |
+
"peerDependenciesMeta": {
|
| 3164 |
+
"@emotion/react": {
|
| 3165 |
+
"optional": true
|
| 3166 |
+
},
|
| 3167 |
+
"@emotion/styled": {
|
| 3168 |
+
"optional": true
|
| 3169 |
+
}
|
| 3170 |
+
}
|
| 3171 |
+
},
|
| 3172 |
+
"node_modules/@mui/system": {
|
| 3173 |
+
"version": "7.2.0",
|
| 3174 |
+
"resolved": "https://registry.npmjs.org/@mui/system/-/system-7.2.0.tgz",
|
| 3175 |
+
"integrity": "sha512-PG7cm/WluU6RAs+gNND2R9vDwNh+ERWxPkqTaiXQJGIFAyJ+VxhyKfzpdZNk0z0XdmBxxi9KhFOpgxjehf/O0A==",
|
| 3176 |
+
"license": "MIT",
|
| 3177 |
+
"dependencies": {
|
| 3178 |
+
"@babel/runtime": "^7.27.6",
|
| 3179 |
+
"@mui/private-theming": "^7.2.0",
|
| 3180 |
+
"@mui/styled-engine": "^7.2.0",
|
| 3181 |
+
"@mui/types": "^7.4.4",
|
| 3182 |
+
"@mui/utils": "^7.2.0",
|
| 3183 |
+
"clsx": "^2.1.1",
|
| 3184 |
+
"csstype": "^3.1.3",
|
| 3185 |
+
"prop-types": "^15.8.1"
|
| 3186 |
+
},
|
| 3187 |
+
"engines": {
|
| 3188 |
+
"node": ">=14.0.0"
|
| 3189 |
+
},
|
| 3190 |
+
"funding": {
|
| 3191 |
+
"type": "opencollective",
|
| 3192 |
+
"url": "https://opencollective.com/mui-org"
|
| 3193 |
+
},
|
| 3194 |
+
"peerDependencies": {
|
| 3195 |
+
"@emotion/react": "^11.5.0",
|
| 3196 |
+
"@emotion/styled": "^11.3.0",
|
| 3197 |
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
| 3198 |
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3199 |
+
},
|
| 3200 |
+
"peerDependenciesMeta": {
|
| 3201 |
+
"@emotion/react": {
|
| 3202 |
+
"optional": true
|
| 3203 |
+
},
|
| 3204 |
+
"@emotion/styled": {
|
| 3205 |
+
"optional": true
|
| 3206 |
+
},
|
| 3207 |
+
"@types/react": {
|
| 3208 |
+
"optional": true
|
| 3209 |
+
}
|
| 3210 |
+
}
|
| 3211 |
+
},
|
| 3212 |
+
"node_modules/@mui/types": {
|
| 3213 |
+
"version": "7.4.4",
|
| 3214 |
+
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.4.tgz",
|
| 3215 |
+
"integrity": "sha512-p63yhbX52MO/ajXC7hDHJA5yjzJekvWD3q4YDLl1rSg+OXLczMYPvTuSuviPRCgRX8+E42RXz1D/dz9SxPSlWg==",
|
| 3216 |
+
"license": "MIT",
|
| 3217 |
+
"dependencies": {
|
| 3218 |
+
"@babel/runtime": "^7.27.6"
|
| 3219 |
+
},
|
| 3220 |
+
"peerDependencies": {
|
| 3221 |
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3222 |
+
},
|
| 3223 |
+
"peerDependenciesMeta": {
|
| 3224 |
+
"@types/react": {
|
| 3225 |
+
"optional": true
|
| 3226 |
+
}
|
| 3227 |
+
}
|
| 3228 |
+
},
|
| 3229 |
+
"node_modules/@mui/utils": {
|
| 3230 |
+
"version": "7.2.0",
|
| 3231 |
+
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.2.0.tgz",
|
| 3232 |
+
"integrity": "sha512-O0i1GQL6MDzhKdy9iAu5Yr0Sz1wZjROH1o3aoztuivdCXqEeQYnEjTDiRLGuFxI9zrUbTHBwobMyQH5sNtyacw==",
|
| 3233 |
+
"license": "MIT",
|
| 3234 |
+
"dependencies": {
|
| 3235 |
+
"@babel/runtime": "^7.27.6",
|
| 3236 |
+
"@mui/types": "^7.4.4",
|
| 3237 |
+
"@types/prop-types": "^15.7.15",
|
| 3238 |
+
"clsx": "^2.1.1",
|
| 3239 |
+
"prop-types": "^15.8.1",
|
| 3240 |
+
"react-is": "^19.1.0"
|
| 3241 |
+
},
|
| 3242 |
+
"engines": {
|
| 3243 |
+
"node": ">=14.0.0"
|
| 3244 |
+
},
|
| 3245 |
+
"funding": {
|
| 3246 |
+
"type": "opencollective",
|
| 3247 |
+
"url": "https://opencollective.com/mui-org"
|
| 3248 |
+
},
|
| 3249 |
+
"peerDependencies": {
|
| 3250 |
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
| 3251 |
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3252 |
+
},
|
| 3253 |
+
"peerDependenciesMeta": {
|
| 3254 |
+
"@types/react": {
|
| 3255 |
+
"optional": true
|
| 3256 |
+
}
|
| 3257 |
+
}
|
| 3258 |
+
},
|
| 3259 |
+
"node_modules/@mui/utils/node_modules/react-is": {
|
| 3260 |
+
"version": "19.1.1",
|
| 3261 |
+
"resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz",
|
| 3262 |
+
"integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==",
|
| 3263 |
+
"license": "MIT"
|
| 3264 |
+
},
|
| 3265 |
"node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
|
| 3266 |
"version": "5.1.1-v1",
|
| 3267 |
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
|
|
|
|
| 3386 |
}
|
| 3387 |
}
|
| 3388 |
},
|
| 3389 |
+
"node_modules/@popperjs/core": {
|
| 3390 |
+
"version": "2.11.8",
|
| 3391 |
+
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
|
| 3392 |
+
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
|
| 3393 |
+
"license": "MIT",
|
| 3394 |
+
"funding": {
|
| 3395 |
+
"type": "opencollective",
|
| 3396 |
+
"url": "https://opencollective.com/popperjs"
|
| 3397 |
+
}
|
| 3398 |
+
},
|
| 3399 |
"node_modules/@rollup/plugin-babel": {
|
| 3400 |
"version": "5.3.1",
|
| 3401 |
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
|
|
|
|
| 4099 |
"integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
|
| 4100 |
"license": "MIT"
|
| 4101 |
},
|
| 4102 |
+
"node_modules/@types/prop-types": {
|
| 4103 |
+
"version": "15.7.15",
|
| 4104 |
+
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
|
| 4105 |
+
"integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
|
| 4106 |
+
"license": "MIT"
|
| 4107 |
+
},
|
| 4108 |
"node_modules/@types/q": {
|
| 4109 |
"version": "1.5.8",
|
| 4110 |
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
|
|
|
|
| 4123 |
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
|
| 4124 |
"license": "MIT"
|
| 4125 |
},
|
| 4126 |
+
"node_modules/@types/react": {
|
| 4127 |
+
"version": "19.1.9",
|
| 4128 |
+
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz",
|
| 4129 |
+
"integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==",
|
| 4130 |
+
"license": "MIT",
|
| 4131 |
+
"peer": true,
|
| 4132 |
+
"dependencies": {
|
| 4133 |
+
"csstype": "^3.0.2"
|
| 4134 |
+
}
|
| 4135 |
+
},
|
| 4136 |
+
"node_modules/@types/react-transition-group": {
|
| 4137 |
+
"version": "4.4.12",
|
| 4138 |
+
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz",
|
| 4139 |
+
"integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==",
|
| 4140 |
+
"license": "MIT",
|
| 4141 |
+
"peerDependencies": {
|
| 4142 |
+
"@types/react": "*"
|
| 4143 |
+
}
|
| 4144 |
+
},
|
| 4145 |
"node_modules/@types/resolve": {
|
| 4146 |
"version": "1.17.1",
|
| 4147 |
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
|
|
|
|
| 5993 |
"wrap-ansi": "^7.0.0"
|
| 5994 |
}
|
| 5995 |
},
|
| 5996 |
+
"node_modules/clsx": {
|
| 5997 |
+
"version": "2.1.1",
|
| 5998 |
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
|
| 5999 |
+
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
|
| 6000 |
+
"license": "MIT",
|
| 6001 |
+
"engines": {
|
| 6002 |
+
"node": ">=6"
|
| 6003 |
+
}
|
| 6004 |
+
},
|
| 6005 |
"node_modules/co": {
|
| 6006 |
"version": "4.6.0",
|
| 6007 |
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
|
|
|
| 6732 |
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
|
| 6733 |
"license": "MIT"
|
| 6734 |
},
|
| 6735 |
+
"node_modules/csstype": {
|
| 6736 |
+
"version": "3.1.3",
|
| 6737 |
+
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
| 6738 |
+
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
| 6739 |
+
"license": "MIT"
|
| 6740 |
+
},
|
| 6741 |
"node_modules/damerau-levenshtein": {
|
| 6742 |
"version": "1.0.8",
|
| 6743 |
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
|
|
|
|
| 7064 |
"utila": "~0.4"
|
| 7065 |
}
|
| 7066 |
},
|
| 7067 |
+
"node_modules/dom-helpers": {
|
| 7068 |
+
"version": "5.2.1",
|
| 7069 |
+
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
|
| 7070 |
+
"integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
|
| 7071 |
+
"license": "MIT",
|
| 7072 |
+
"dependencies": {
|
| 7073 |
+
"@babel/runtime": "^7.8.7",
|
| 7074 |
+
"csstype": "^3.0.2"
|
| 7075 |
+
}
|
| 7076 |
+
},
|
| 7077 |
"node_modules/dom-serializer": {
|
| 7078 |
"version": "1.4.1",
|
| 7079 |
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
|
|
|
| 9535 |
"node": ">= 4"
|
| 9536 |
}
|
| 9537 |
},
|
| 9538 |
+
"node_modules/immediate": {
|
| 9539 |
+
"version": "3.0.6",
|
| 9540 |
+
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
| 9541 |
+
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
|
| 9542 |
+
"license": "MIT"
|
| 9543 |
+
},
|
| 9544 |
"node_modules/immer": {
|
| 9545 |
"version": "9.0.21",
|
| 9546 |
"resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
|
|
|
|
| 11414 |
"node": ">=4.0"
|
| 11415 |
}
|
| 11416 |
},
|
| 11417 |
+
"node_modules/jszip": {
|
| 11418 |
+
"version": "3.10.1",
|
| 11419 |
+
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
|
| 11420 |
+
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
|
| 11421 |
+
"license": "(MIT OR GPL-3.0-or-later)",
|
| 11422 |
+
"dependencies": {
|
| 11423 |
+
"lie": "~3.3.0",
|
| 11424 |
+
"pako": "~1.0.2",
|
| 11425 |
+
"readable-stream": "~2.3.6",
|
| 11426 |
+
"setimmediate": "^1.0.5"
|
| 11427 |
+
}
|
| 11428 |
+
},
|
| 11429 |
+
"node_modules/jszip/node_modules/isarray": {
|
| 11430 |
+
"version": "1.0.0",
|
| 11431 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
| 11432 |
+
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
| 11433 |
+
"license": "MIT"
|
| 11434 |
+
},
|
| 11435 |
+
"node_modules/jszip/node_modules/readable-stream": {
|
| 11436 |
+
"version": "2.3.8",
|
| 11437 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
| 11438 |
+
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
| 11439 |
+
"license": "MIT",
|
| 11440 |
+
"dependencies": {
|
| 11441 |
+
"core-util-is": "~1.0.0",
|
| 11442 |
+
"inherits": "~2.0.3",
|
| 11443 |
+
"isarray": "~1.0.0",
|
| 11444 |
+
"process-nextick-args": "~2.0.0",
|
| 11445 |
+
"safe-buffer": "~5.1.1",
|
| 11446 |
+
"string_decoder": "~1.1.1",
|
| 11447 |
+
"util-deprecate": "~1.0.1"
|
| 11448 |
+
}
|
| 11449 |
+
},
|
| 11450 |
+
"node_modules/jszip/node_modules/safe-buffer": {
|
| 11451 |
+
"version": "5.1.2",
|
| 11452 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
| 11453 |
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
| 11454 |
+
"license": "MIT"
|
| 11455 |
+
},
|
| 11456 |
+
"node_modules/jszip/node_modules/string_decoder": {
|
| 11457 |
+
"version": "1.1.1",
|
| 11458 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
| 11459 |
+
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
| 11460 |
+
"license": "MIT",
|
| 11461 |
+
"dependencies": {
|
| 11462 |
+
"safe-buffer": "~5.1.0"
|
| 11463 |
+
}
|
| 11464 |
+
},
|
| 11465 |
"node_modules/keyv": {
|
| 11466 |
"version": "4.5.4",
|
| 11467 |
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
|
|
|
| 11548 |
"node": ">= 0.8.0"
|
| 11549 |
}
|
| 11550 |
},
|
| 11551 |
+
"node_modules/lie": {
|
| 11552 |
+
"version": "3.3.0",
|
| 11553 |
+
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
|
| 11554 |
+
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
|
| 11555 |
+
"license": "MIT",
|
| 11556 |
+
"dependencies": {
|
| 11557 |
+
"immediate": "~3.0.5"
|
| 11558 |
+
}
|
| 11559 |
+
},
|
| 11560 |
"node_modules/lilconfig": {
|
| 11561 |
"version": "2.1.0",
|
| 11562 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
|
|
|
| 12393 |
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
|
| 12394 |
"license": "BlueOak-1.0.0"
|
| 12395 |
},
|
| 12396 |
+
"node_modules/pako": {
|
| 12397 |
+
"version": "1.0.11",
|
| 12398 |
+
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
| 12399 |
+
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
|
| 12400 |
+
"license": "(MIT AND Zlib)"
|
| 12401 |
+
},
|
| 12402 |
"node_modules/param-case": {
|
| 12403 |
"version": "3.0.4",
|
| 12404 |
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
|
|
|
|
| 14446 |
}
|
| 14447 |
}
|
| 14448 |
},
|
| 14449 |
+
"node_modules/react-transition-group": {
|
| 14450 |
+
"version": "4.4.5",
|
| 14451 |
+
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
| 14452 |
+
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
|
| 14453 |
+
"license": "BSD-3-Clause",
|
| 14454 |
+
"dependencies": {
|
| 14455 |
+
"@babel/runtime": "^7.5.5",
|
| 14456 |
+
"dom-helpers": "^5.0.1",
|
| 14457 |
+
"loose-envify": "^1.4.0",
|
| 14458 |
+
"prop-types": "^15.6.2"
|
| 14459 |
+
},
|
| 14460 |
+
"peerDependencies": {
|
| 14461 |
+
"react": ">=16.6.0",
|
| 14462 |
+
"react-dom": ">=16.6.0"
|
| 14463 |
+
}
|
| 14464 |
+
},
|
| 14465 |
"node_modules/read-cache": {
|
| 14466 |
"version": "1.0.0",
|
| 14467 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
|
|
|
| 15341 |
"node": ">= 0.4"
|
| 15342 |
}
|
| 15343 |
},
|
| 15344 |
+
"node_modules/setimmediate": {
|
| 15345 |
+
"version": "1.0.5",
|
| 15346 |
+
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
| 15347 |
+
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
|
| 15348 |
+
"license": "MIT"
|
| 15349 |
+
},
|
| 15350 |
"node_modules/setprototypeof": {
|
| 15351 |
"version": "1.2.0",
|
| 15352 |
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
|
|
|
| 16051 |
"postcss": "^8.2.15"
|
| 16052 |
}
|
| 16053 |
},
|
| 16054 |
+
"node_modules/stylis": {
|
| 16055 |
+
"version": "4.2.0",
|
| 16056 |
+
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
|
| 16057 |
+
"integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
|
| 16058 |
+
"license": "MIT"
|
| 16059 |
+
},
|
| 16060 |
"node_modules/sucrase": {
|
| 16061 |
"version": "3.35.0",
|
| 16062 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
|
|
|
|
| 16828 |
}
|
| 16829 |
},
|
| 16830 |
"node_modules/typescript": {
|
| 16831 |
+
"version": "4.9.5",
|
| 16832 |
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
| 16833 |
+
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
|
| 16834 |
"license": "Apache-2.0",
|
| 16835 |
"peer": true,
|
| 16836 |
"bin": {
|
|
|
|
| 16838 |
"tsserver": "bin/tsserver"
|
| 16839 |
},
|
| 16840 |
"engines": {
|
| 16841 |
+
"node": ">=4.2.0"
|
| 16842 |
}
|
| 16843 |
},
|
| 16844 |
"node_modules/unbox-primitive": {
|
package.json
CHANGED
|
@@ -3,11 +3,14 @@
|
|
| 3 |
"version": "0.1.0",
|
| 4 |
"private": true,
|
| 5 |
"dependencies": {
|
|
|
|
|
|
|
| 6 |
"@testing-library/dom": "^10.4.0",
|
| 7 |
"@testing-library/jest-dom": "^6.6.3",
|
| 8 |
"@testing-library/react": "^16.3.0",
|
| 9 |
"@testing-library/user-event": "^13.5.0",
|
| 10 |
"axios": "^1.11.0",
|
|
|
|
| 11 |
"react": "^19.1.0",
|
| 12 |
"react-dom": "^19.1.0",
|
| 13 |
"react-scripts": "5.0.1",
|
|
|
|
| 3 |
"version": "0.1.0",
|
| 4 |
"private": true,
|
| 5 |
"dependencies": {
|
| 6 |
+
"@mui/icons-material": "^7.2.0",
|
| 7 |
+
"@mui/material": "^7.2.0",
|
| 8 |
"@testing-library/dom": "^10.4.0",
|
| 9 |
"@testing-library/jest-dom": "^6.6.3",
|
| 10 |
"@testing-library/react": "^16.3.0",
|
| 11 |
"@testing-library/user-event": "^13.5.0",
|
| 12 |
"axios": "^1.11.0",
|
| 13 |
+
"jszip": "^3.10.1",
|
| 14 |
"react": "^19.1.0",
|
| 15 |
"react-dom": "^19.1.0",
|
| 16 |
"react-scripts": "5.0.1",
|
src/FileUploadForm.js
CHANGED
|
@@ -1,6 +1,28 @@
|
|
| 1 |
-
|
| 2 |
-
import
|
| 3 |
-
import
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
const FileUploadForm = () => {
|
| 6 |
const [file, setFile] = useState(null);
|
|
@@ -8,10 +30,14 @@ const FileUploadForm = () => {
|
|
| 8 |
const [backend, setBackend] = useState("Flask");
|
| 9 |
const [database, setDatabase] = useState("PostgreSQL");
|
| 10 |
const [loading, setLoading] = useState(false);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
|
| 12 |
const handleDownload = async (e) => {
|
| 13 |
e.preventDefault();
|
| 14 |
-
if (!file) return alert("Please select a
|
| 15 |
|
| 16 |
const formData = new FormData();
|
| 17 |
formData.append("file", file);
|
|
@@ -22,60 +48,158 @@ const FileUploadForm = () => {
|
|
| 22 |
try {
|
| 23 |
setLoading(true);
|
| 24 |
const response = await axios.post(
|
| 25 |
-
"https://fredericksundeep-aichatmatedev.hf.space/chat-stream-doc",
|
| 26 |
formData,
|
| 27 |
-
{
|
| 28 |
-
responseType: "blob", // important for zip file
|
| 29 |
-
}
|
| 30 |
);
|
| 31 |
|
| 32 |
-
// create download link
|
| 33 |
const blob = new Blob([response.data], { type: "application/zip" });
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
|
|
|
| 41 |
} catch (error) {
|
| 42 |
console.error("Error downloading ZIP:", error);
|
| 43 |
-
alert("Failed to generate
|
| 44 |
} finally {
|
| 45 |
setLoading(false);
|
| 46 |
}
|
| 47 |
};
|
| 48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
return (
|
| 50 |
-
<
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
<
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
<
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
);
|
| 80 |
};
|
| 81 |
|
|
|
|
| 1 |
+
import React, { useState } from "react";
|
| 2 |
+
import axios from "axios";
|
| 3 |
+
import {
|
| 4 |
+
Box,
|
| 5 |
+
Button,
|
| 6 |
+
CircularProgress,
|
| 7 |
+
InputLabel,
|
| 8 |
+
MenuItem,
|
| 9 |
+
Select,
|
| 10 |
+
Typography,
|
| 11 |
+
FormControl,
|
| 12 |
+
Grid,
|
| 13 |
+
Paper,
|
| 14 |
+
Snackbar,
|
| 15 |
+
Alert,
|
| 16 |
+
Dialog,
|
| 17 |
+
DialogTitle,
|
| 18 |
+
DialogContent,
|
| 19 |
+
DialogActions,
|
| 20 |
+
List,
|
| 21 |
+
ListItem,
|
| 22 |
+
ListItemText,
|
| 23 |
+
} from "@mui/material";
|
| 24 |
+
import CloudUploadIcon from "@mui/icons-material/CloudUpload";
|
| 25 |
+
import DownloadIcon from "@mui/icons-material/Download";
|
| 26 |
|
| 27 |
const FileUploadForm = () => {
|
| 28 |
const [file, setFile] = useState(null);
|
|
|
|
| 30 |
const [backend, setBackend] = useState("Flask");
|
| 31 |
const [database, setDatabase] = useState("PostgreSQL");
|
| 32 |
const [loading, setLoading] = useState(false);
|
| 33 |
+
const [showSnackbar, setShowSnackbar] = useState(false);
|
| 34 |
+
const [showModal, setShowModal] = useState(false);
|
| 35 |
+
const [fileList, setFileList] = useState([]);
|
| 36 |
+
const [zipBlob, setZipBlob] = useState(null);
|
| 37 |
|
| 38 |
const handleDownload = async (e) => {
|
| 39 |
e.preventDefault();
|
| 40 |
+
if (!file) return alert("Please select a requirement document!");
|
| 41 |
|
| 42 |
const formData = new FormData();
|
| 43 |
formData.append("file", file);
|
|
|
|
| 48 |
try {
|
| 49 |
setLoading(true);
|
| 50 |
const response = await axios.post(
|
| 51 |
+
"https://fredericksundeep-aichatmatedev.hf.space/chat-stream-doc",
|
| 52 |
formData,
|
| 53 |
+
{ responseType: "blob" }
|
|
|
|
|
|
|
| 54 |
);
|
| 55 |
|
|
|
|
| 56 |
const blob = new Blob([response.data], { type: "application/zip" });
|
| 57 |
+
setZipBlob(blob);
|
| 58 |
+
|
| 59 |
+
// Parse file names from inside the ZIP blob using JSZip (client-side)
|
| 60 |
+
const JSZip = (await import("jszip")).default;
|
| 61 |
+
const zip = await JSZip.loadAsync(blob);
|
| 62 |
+
const filenames = Object.keys(zip.files);
|
| 63 |
+
setFileList(filenames);
|
| 64 |
+
setShowModal(true);
|
| 65 |
} catch (error) {
|
| 66 |
console.error("Error downloading ZIP:", error);
|
| 67 |
+
alert("Failed to generate project. Check server logs.");
|
| 68 |
} finally {
|
| 69 |
setLoading(false);
|
| 70 |
}
|
| 71 |
};
|
| 72 |
|
| 73 |
+
const handleZipDownload = () => {
|
| 74 |
+
const url = window.URL.createObjectURL(zipBlob);
|
| 75 |
+
const a = document.createElement("a");
|
| 76 |
+
a.href = url;
|
| 77 |
+
a.download = "generated_project.zip";
|
| 78 |
+
document.body.appendChild(a);
|
| 79 |
+
a.click();
|
| 80 |
+
window.URL.revokeObjectURL(url);
|
| 81 |
+
setShowSnackbar(true);
|
| 82 |
+
setShowModal(false);
|
| 83 |
+
};
|
| 84 |
+
|
| 85 |
return (
|
| 86 |
+
<Box
|
| 87 |
+
sx={{
|
| 88 |
+
backgroundColor: "#121212",
|
| 89 |
+
minHeight: "100vh",
|
| 90 |
+
color: "#fff",
|
| 91 |
+
padding: 4,
|
| 92 |
+
display: "flex",
|
| 93 |
+
justifyContent: "center",
|
| 94 |
+
alignItems: "center",
|
| 95 |
+
}}
|
| 96 |
+
>
|
| 97 |
+
<Paper elevation={6} sx={{ padding: 4, backgroundColor: "#1e1e1e", maxWidth: 600, width: "100%" }}>
|
| 98 |
+
<Typography variant="h5" gutterBottom color="primary">
|
| 99 |
+
📄 Generate Full-Stack Project from Requirements
|
| 100 |
+
</Typography>
|
| 101 |
+
|
| 102 |
+
<form onSubmit={handleDownload}>
|
| 103 |
+
<Grid container spacing={2}>
|
| 104 |
+
<Grid item xs={12}>
|
| 105 |
+
<Button
|
| 106 |
+
variant="contained"
|
| 107 |
+
component="label"
|
| 108 |
+
startIcon={<CloudUploadIcon />}
|
| 109 |
+
fullWidth
|
| 110 |
+
>
|
| 111 |
+
{file ? file.name : "Upload Requirement Document"}
|
| 112 |
+
<input
|
| 113 |
+
type="file"
|
| 114 |
+
hidden
|
| 115 |
+
required
|
| 116 |
+
onChange={(e) => setFile(e.target.files[0])}
|
| 117 |
+
accept=".pdf,.txt"
|
| 118 |
+
/>
|
| 119 |
+
</Button>
|
| 120 |
+
</Grid>
|
| 121 |
+
|
| 122 |
+
<Grid item xs={12} sm={4}>
|
| 123 |
+
<FormControl fullWidth>
|
| 124 |
+
<InputLabel>Frontend</InputLabel>
|
| 125 |
+
<Select value={frontend} onChange={(e) => setFrontend(e.target.value)} label="Frontend">
|
| 126 |
+
<MenuItem value="React">React</MenuItem>
|
| 127 |
+
<MenuItem value="Angular">Angular</MenuItem>
|
| 128 |
+
<MenuItem value="Vue">Vue</MenuItem>
|
| 129 |
+
</Select>
|
| 130 |
+
</FormControl>
|
| 131 |
+
</Grid>
|
| 132 |
+
|
| 133 |
+
<Grid item xs={12} sm={4}>
|
| 134 |
+
<FormControl fullWidth>
|
| 135 |
+
<InputLabel>Backend</InputLabel>
|
| 136 |
+
<Select value={backend} onChange={(e) => setBackend(e.target.value)} label="Backend">
|
| 137 |
+
<MenuItem value="Flask">Flask</MenuItem>
|
| 138 |
+
<MenuItem value="Node.js">Node.js</MenuItem>
|
| 139 |
+
<MenuItem value="Django">Django</MenuItem>
|
| 140 |
+
</Select>
|
| 141 |
+
</FormControl>
|
| 142 |
+
</Grid>
|
| 143 |
+
|
| 144 |
+
<Grid item xs={12} sm={4}>
|
| 145 |
+
<FormControl fullWidth>
|
| 146 |
+
<InputLabel>Database</InputLabel>
|
| 147 |
+
<Select value={database} onChange={(e) => setDatabase(e.target.value)} label="Database">
|
| 148 |
+
<MenuItem value="PostgreSQL">PostgreSQL</MenuItem>
|
| 149 |
+
<MenuItem value="MongoDB">MongoDB</MenuItem>
|
| 150 |
+
<MenuItem value="MySQL">MySQL</MenuItem>
|
| 151 |
+
</Select>
|
| 152 |
+
</FormControl>
|
| 153 |
+
</Grid>
|
| 154 |
+
|
| 155 |
+
<Grid item xs={12}>
|
| 156 |
+
<Button
|
| 157 |
+
type="submit"
|
| 158 |
+
variant="contained"
|
| 159 |
+
color="secondary"
|
| 160 |
+
startIcon={loading ? <CircularProgress size={20} /> : <DownloadIcon />}
|
| 161 |
+
fullWidth
|
| 162 |
+
disabled={loading}
|
| 163 |
+
>
|
| 164 |
+
{loading ? "Generating..." : "Generate Project ZIP"}
|
| 165 |
+
</Button>
|
| 166 |
+
</Grid>
|
| 167 |
+
</Grid>
|
| 168 |
+
</form>
|
| 169 |
+
</Paper>
|
| 170 |
+
|
| 171 |
+
{/* ✅ File Preview Modal */}
|
| 172 |
+
<Dialog open={showModal} onClose={() => setShowModal(false)} maxWidth="sm" fullWidth>
|
| 173 |
+
<DialogTitle>📦 Generated Files Preview</DialogTitle>
|
| 174 |
+
<DialogContent dividers>
|
| 175 |
+
<List dense>
|
| 176 |
+
{fileList.map((filename, i) => (
|
| 177 |
+
<ListItem key={i}>
|
| 178 |
+
<ListItemText primary={filename} />
|
| 179 |
+
</ListItem>
|
| 180 |
+
))}
|
| 181 |
+
</List>
|
| 182 |
+
</DialogContent>
|
| 183 |
+
<DialogActions>
|
| 184 |
+
<Button onClick={handleZipDownload} variant="contained" color="primary">
|
| 185 |
+
Download ZIP
|
| 186 |
+
</Button>
|
| 187 |
+
<Button onClick={() => setShowModal(false)}>Cancel</Button>
|
| 188 |
+
</DialogActions>
|
| 189 |
+
</Dialog>
|
| 190 |
+
|
| 191 |
+
{/* ✅ Success Snackbar */}
|
| 192 |
+
<Snackbar
|
| 193 |
+
open={showSnackbar}
|
| 194 |
+
autoHideDuration={4000}
|
| 195 |
+
onClose={() => setShowSnackbar(false)}
|
| 196 |
+
anchorOrigin={{ vertical: "bottom", horizontal: "center" }}
|
| 197 |
+
>
|
| 198 |
+
<Alert onClose={() => setShowSnackbar(false)} severity="success" sx={{ width: "100%" }}>
|
| 199 |
+
✅ ZIP downloaded successfully!
|
| 200 |
+
</Alert>
|
| 201 |
+
</Snackbar>
|
| 202 |
+
</Box>
|
| 203 |
);
|
| 204 |
};
|
| 205 |
|
src/index.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
| 1 |
-
import React from
|
| 2 |
-
import ReactDOM from
|
| 3 |
-
import
|
| 4 |
-
import
|
| 5 |
-
import
|
| 6 |
|
| 7 |
-
const
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
<App />
|
| 11 |
-
</
|
|
|
|
| 12 |
);
|
| 13 |
-
|
| 14 |
-
// If you want to start measuring performance in your app, pass a function
|
| 15 |
-
// to log results (for example: reportWebVitals(console.log))
|
| 16 |
-
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
| 17 |
-
reportWebVitals();
|
|
|
|
| 1 |
+
import React from "react";
|
| 2 |
+
import ReactDOM from "react-dom";
|
| 3 |
+
import App from "./App";
|
| 4 |
+
import { createTheme, ThemeProvider } from "@mui/material/styles";
|
| 5 |
+
import CssBaseline from "@mui/material/CssBaseline";
|
| 6 |
|
| 7 |
+
const darkTheme = createTheme({
|
| 8 |
+
palette: {
|
| 9 |
+
mode: "dark",
|
| 10 |
+
primary: {
|
| 11 |
+
main: "#90caf9",
|
| 12 |
+
},
|
| 13 |
+
secondary: {
|
| 14 |
+
main: "#f48fb1",
|
| 15 |
+
},
|
| 16 |
+
},
|
| 17 |
+
});
|
| 18 |
+
|
| 19 |
+
ReactDOM.render(
|
| 20 |
+
<ThemeProvider theme={darkTheme}>
|
| 21 |
+
<CssBaseline />
|
| 22 |
<App />
|
| 23 |
+
</ThemeProvider>,
|
| 24 |
+
document.getElementById("root")
|
| 25 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|