From c96fae4b413bea23e9be9c2997db33e9ba47f4fb Mon Sep 17 00:00:00 2001 From: kendigm Date: Thu, 16 Nov 2023 18:17:11 +0800 Subject: [PATCH 1/3] added app features, todo js, todolist js and todoform js --- package-lock.json | 620 +++++++++++++++++++++++++++++++++++-- package.json | 3 + public/logo192.png | Bin 11410 -> 0 bytes public/logo512.png | Bin 35785 -> 0 bytes src/App.css | 150 ++++++++- src/App.js | 13 +- src/components/Todo.js | 47 +++ src/components/TodoForm.js | 60 ++++ src/components/TodoList.js | 94 ++++++ src/index.js | 1 + src/logo.png | Bin 29578 -> 0 bytes 11 files changed, 940 insertions(+), 48 deletions(-) delete mode 100755 public/logo192.png delete mode 100755 public/logo512.png create mode 100644 src/components/Todo.js create mode 100644 src/components/TodoForm.js create mode 100644 src/components/TodoList.js delete mode 100755 src/logo.png diff --git a/package-lock.json b/package-lock.json index c205fc57..2cc5813a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,11 @@ "name": "project1-bootcamp", "version": "0.1.0", "dependencies": { + "@mantine/core": "^7.2.2", + "bootstrap": "^5.3.2", "react": "^18.1.0", "react-dom": "^18.1.0", + "react-icons": "^4.11.0", "react-scripts": "5.0.1" } }, @@ -1764,11 +1767,11 @@ } }, "node_modules/@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -1786,6 +1789,11 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, "node_modules/@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", @@ -2057,6 +2065,54 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.24.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.8.tgz", + "integrity": "sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==", + "dependencies": { + "@floating-ui/react-dom": "^2.0.1", + "aria-hidden": "^1.2.3", + "tabbable": "^6.0.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", + "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", + "dependencies": { + "@floating-ui/dom": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -2785,6 +2841,44 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, + "node_modules/@mantine/core": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.2.2.tgz", + "integrity": "sha512-cVGmLjYyKIzjn0LRwamj71O4HT43qCxPGAzMZqkMYGOako7xwBLYQNe7HjL/J0FXJDyfX8OdMylVhgsePWYbng==", + "dependencies": { + "@floating-ui/react": "^0.24.8", + "clsx": "2.0.0", + "react-number-format": "^5.2.2", + "react-remove-scroll": "^2.5.6", + "react-textarea-autosize": "8.5.3", + "type-fest": "^3.13.1" + }, + "peerDependencies": { + "@mantine/hooks": "7.2.2", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "node_modules/@mantine/core/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mantine/hooks": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.2.2.tgz", + "integrity": "sha512-7CFSVP2aQHrBwLLAVf0q5dgj+6QTZmhLTNcuc3pE1du+HLFUdyVS6vvQC6kieZXxOd6UzwFGBlN4G+aDx95XeA==", + "peer": true, + "peerDependencies": { + "react": "^18.2.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2866,6 +2960,16 @@ } } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -4078,6 +4182,17 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", @@ -4635,6 +4750,24 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, + "node_modules/bootstrap": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", + "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4920,6 +5053,14 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5720,6 +5861,11 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, "node_modules/detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -7469,6 +7615,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -8057,6 +8211,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -12939,9 +13101,9 @@ } }, "node_modules/react": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", - "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -13083,15 +13245,15 @@ } }, "node_modules/react-dom": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz", - "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.22.0" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "^18.1.0" + "react": "^18.2.0" } }, "node_modules/react-error-overlay": { @@ -13099,11 +13261,31 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-icons": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", + "integrity": "sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-number-format": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.3.1.tgz", + "integrity": "sha512-qpYcQLauIeEhCZUZY9jXZnnroOtdy3jYaS1zQ3M1Sr6r/KMOBEIGNIb7eKT19g2N1wbYgFgvDzs19hw5TrB8XQ==", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -13112,6 +13294,51 @@ "node": ">=0.10.0" } }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -13184,6 +13411,44 @@ } } }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", + "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -13661,9 +13926,9 @@ } }, "node_modules/scheduler": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", - "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dependencies": { "loose-envify": "^1.1.0" } @@ -14389,6 +14654,11 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + }, "node_modules/tailwindcss": { "version": "3.0.24", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", @@ -14901,6 +15171,84 @@ "punycode": "^2.1.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -17044,11 +17392,18 @@ } }, "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + } } }, "@babel/runtime-corejs3": { @@ -17231,6 +17586,46 @@ } } }, + "@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "requires": { + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "requires": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/react": { + "version": "0.24.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.8.tgz", + "integrity": "sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==", + "requires": { + "@floating-ui/react-dom": "^2.0.1", + "aria-hidden": "^1.2.3", + "tabbable": "^6.0.1" + } + }, + "@floating-ui/react-dom": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", + "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", + "requires": { + "@floating-ui/dom": "^1.5.1" + } + }, + "@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, "@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -17771,6 +18166,33 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, + "@mantine/core": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.2.2.tgz", + "integrity": "sha512-cVGmLjYyKIzjn0LRwamj71O4HT43qCxPGAzMZqkMYGOako7xwBLYQNe7HjL/J0FXJDyfX8OdMylVhgsePWYbng==", + "requires": { + "@floating-ui/react": "^0.24.8", + "clsx": "2.0.0", + "react-number-format": "^5.2.2", + "react-remove-scroll": "^2.5.6", + "react-textarea-autosize": "8.5.3", + "type-fest": "^3.13.1" + }, + "dependencies": { + "type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" + } + } + }, + "@mantine/hooks": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.2.2.tgz", + "integrity": "sha512-7CFSVP2aQHrBwLLAVf0q5dgj+6QTZmhLTNcuc3pE1du+HLFUdyVS6vvQC6kieZXxOd6UzwFGBlN4G+aDx95XeA==", + "peer": true, + "requires": {} + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -17810,6 +18232,12 @@ "source-map": "^0.7.3" } }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -18719,6 +19147,14 @@ "sprintf-js": "~1.0.2" } }, + "aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "requires": { + "tslib": "^2.0.0" + } + }, "aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", @@ -19142,6 +19578,12 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, + "bootstrap": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", + "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==", + "requires": {} + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -19343,6 +19785,11 @@ "wrap-ansi": "^7.0.0" } }, + "clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -19904,6 +20351,11 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, + "detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, "detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -21178,6 +21630,11 @@ "has-symbols": "^1.0.1" } }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + }, "get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -21600,6 +22057,14 @@ "side-channel": "^1.0.4" } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -24989,9 +25454,9 @@ } }, "react": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", - "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "requires": { "loose-envify": "^1.1.0" } @@ -25096,12 +25561,12 @@ } }, "react-dom": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz", - "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "requires": { "loose-envify": "^1.1.0", - "scheduler": "^0.22.0" + "scheduler": "^0.23.0" } }, "react-error-overlay": { @@ -25109,16 +25574,51 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "react-icons": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", + "integrity": "sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==", + "requires": {} + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-number-format": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.3.1.tgz", + "integrity": "sha512-qpYcQLauIeEhCZUZY9jXZnnroOtdy3jYaS1zQ3M1Sr6r/KMOBEIGNIb7eKT19g2N1wbYgFgvDzs19hw5TrB8XQ==", + "requires": { + "prop-types": "^15.7.2" + } + }, "react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" }, + "react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "requires": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, "react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -25174,6 +25674,26 @@ "workbox-webpack-plugin": "^6.4.1" } }, + "react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "react-textarea-autosize": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", + "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", + "requires": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + } + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -25498,9 +26018,9 @@ } }, "scheduler": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", - "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "requires": { "loose-envify": "^1.1.0" } @@ -26073,6 +26593,11 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + }, "tailwindcss": { "version": "3.0.24", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", @@ -26449,6 +26974,43 @@ "punycode": "^2.1.0" } }, + "use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "requires": {} + }, + "use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "requires": {} + }, + "use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "requires": { + "use-isomorphic-layout-effect": "^1.1.1" + } + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index a100866d..dde33a67 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,11 @@ "version": "0.1.0", "private": true, "dependencies": { + "@mantine/core": "^7.2.2", + "bootstrap": "^5.3.2", "react": "^18.1.0", "react-dom": "^18.1.0", + "react-icons": "^4.11.0", "react-scripts": "5.0.1" }, "scripts": { diff --git a/public/logo192.png b/public/logo192.png deleted file mode 100755 index 1dd995bc81222b65fb764276e83d21b8a84c646c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11410 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 T`}Wv>g}I8dYBFU~?>_xMbYFF& diff --git a/public/logo512.png b/public/logo512.png deleted file mode 100755 index 81efd5f52e052ffde2e517bd4d58b37667f4834b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35785 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 diff --git a/src/App.css b/src/App.css index 97b7c578..ceb81c3d 100644 --- a/src/App.css +++ b/src/App.css @@ -1,19 +1,147 @@ -.App { +* { + box-sizing: border-box; + margin: 0; + padding: 0; + font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", + "Lucida Sans", Arial, sans-serif; +} + +body { + background: linear-gradient( + 90deg, + rgba(48, 16, 255, 1) 0%, + rgba(100, 115, 255, 1) 100% + ); +} +.todo-app { + display: flex; + flex-direction: column; + justify-content: start; + width: 520px; + min-height: 600px; + background: #161a2b; text-align: center; + margin: 128px auto; + border-radius: 10px; + padding-bottom: 32px; +} + +h1 { + margin: 32px 0; + color: #fff; + font-size: 24px; +} + +.complete { + text-decoration: line-through; + opacity: 0.4; +} + +.todo-form { + margin-bottom: 32px; +} + +.todo-input { + padding: 14px 32px 14px 16px; + border-radius: 4px 0 0 4px; + border: 2px solid #5d0cff; + outline: none; + width: 320px; + background: transparent; + color: #fff; +} + +.todo-input::placeholder { + color: #e2e2e2; +} + +.todo-button { + padding: 16px; + border: none; + border-radius: 0 4px 4px 0; + cursor: pointer; + outline: none; + background: linear-gradient( + 90deg, + rgba(93, 12, 255, 1) 0%, + rgba(155, 0, 250, 1) 100% + ); + color: #fff; + text-transform: capitalize; +} + +.todo-input.edit { + border: 2px solid #149fff; } -.App-logo { - height: 40vmin; - pointer-events: none; +.todo-button.edit { + background: linear-gradient( + 90deg, + rgba(20, 159, 255, 1) 0%, + rgba(17, 122, 255, 1) 100% + ); + padding: 16px 22px; } -.App-header { - background-color: #282c34; - min-height: 100vh; +.todo-container { display: flex; - flex-direction: column; + flex-direction: row; + position: relative; +} + +.todo-row { + display: flex; + justify-content: space-between; align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; + margin: 4px auto; + color: #fff; + background: linear-gradient( + 90deg, + rgba(255, 118, 20, 1) 0%, + rgba(255, 84, 17, 1) 100% + ); + + padding: 16px; + border-radius: 5px; + width: 90%; +} + +.todo-row:nth-child(4n + 1) { + background: linear-gradient( + 90deg, + rgba(93, 12, 255, 1) 0%, + rgba(155, 0, 250, 1) 100% + ); +} + +.todo-row:nth-child(4n + 2) { + background: linear-gradient( + 90deg, + rgba(255, 12, 241, 1) 0%, + rgba(250, 0, 135, 1) 100% + ); +} + +.todo-row:nth-child(4n + 3) { + background: linear-gradient( + 90deg, + rgba(20, 159, 255, 1) 0%, + rgba(17, 122, 255, 1) 100% + ); +} + +.icons { + display: flex; + align-items: center; + font-size: 24px; + cursor: pointer; +} + +.delete-icon { + margin-right: 5px; + color: #fff; +} + +.edit-icon { + color: #fff; } diff --git a/src/App.js b/src/App.js index 4a6f800f..5b9a7faa 100644 --- a/src/App.js +++ b/src/App.js @@ -1,17 +1,14 @@ import React from "react"; -import logo from "./logo.png"; import "./App.css"; +import TodoList from "./components/TodoList"; + class App extends React.Component { render() { return ( -
-
- logo -

- Edit src/App.js and save to reload. -

-
+
+ +
); } diff --git a/src/components/Todo.js b/src/components/Todo.js new file mode 100644 index 00000000..03d0dc66 --- /dev/null +++ b/src/components/Todo.js @@ -0,0 +1,47 @@ +import React, { useState } from "react"; +import TodoForm from "./TodoForm"; +import { RiCloseCircleLine } from "react-icons/ri"; +import { TiEdit } from "react-icons/ti"; + +function Todo({ todos, completeTodo, removeTodo, updateTodo }) { + const [edit, setEdit] = useState({ + id: null, + value: "", + }); + + const submateUpdate = (value) => { + console.log(updateTodo); + updateTodo(edit.id, value); + + setEdit({ + id: null, + value: "", + }); + }; + if (edit.id) { + return ; + } + return todos.map((todo, index) => ( +
+
completeTodo(todo.id)}> + {todo.text} +
+
+ removeTodo(todo.id)} + className="delete - icon" + /> + + setEdit({ id: todo, value: todo.text })} + className="edit-icon" + /> +
+
+ )); +} + +export default Todo; diff --git a/src/components/TodoForm.js b/src/components/TodoForm.js new file mode 100644 index 00000000..a52b6978 --- /dev/null +++ b/src/components/TodoForm.js @@ -0,0 +1,60 @@ +import React, { useState, useEffect, useRef } from "react"; + +function TodoForm(props) { + const [input, setInput] = useState(props.edit ? props.edit.value : ""); + + const inputRef = useRef(null); + + useEffect(() => { + inputRef.current.focus(); + }); + + const handleChange = (e) => { + setInput(e.target.value); + }; + const handleSubmit = (e) => { + e.preventDefault(); + + props.onSubmit({ + id: Math.floor(Math.random() * 10000), + text: input, + }); + + // makes the to do invisible. + setInput(""); + }; + + return ( +
+ {props.edit?.id ? ( + <> + + + + ) : ( + <> + + + + )} +
+ ); +} + +export default TodoForm; diff --git a/src/components/TodoList.js b/src/components/TodoList.js new file mode 100644 index 00000000..f1c3701c --- /dev/null +++ b/src/components/TodoList.js @@ -0,0 +1,94 @@ +import React, { useState } from "react"; +import TodoForm from "./TodoForm"; +import Todo from "./Todo"; +import { MantineProvider, ColorSchemeProvider,ColorScheme,} from "@mantine/core"; + +import { useColorScheme } from "@mantine/hooks"; +import { useHotkeys, useLocalStorage } from "@mantine/hooks"; + +function TodoList() { + const [todos, setTodos] = useState([ + { + text: "Learn about React", + id: 1, + isCompleted: false, + }, + { + text: "Meet friend for lunch", + id: 2, + isCompleted: false, + }, + { + text: "Build really cool todo app", + id: 3, + isCompleted: false, + }, + ]); +const preferredColorScheme = useColorScheme(); +const [colorScheme, setColorScheme] = useLocalStorage({ + + const toggleColorScheme = value => + setColorScheme(value || (colorScheme === 'dark' ? 'light' : 'dark')); + + useHotkeys([['mod+J', () => toggleColorScheme()]]); + key: "mantine-color-scheme", + defaultValue: "light", + getInitialValueInEffect: true, +}); + + // + const addTodo = (todo) => { + console.log(todo); + // if (!todo.text || /^|s*$/.test(todo.text)) { + // return; + // } + let id = todos.length + 1; + todo.id = id; + + const newTodos = [todo, ...todos]; + console.log(newTodos); + setTodos(newTodos); + }; + + const updateTodos = (todoId, newValue) => { + console.log(newValue); + console.log(todoId); + console.log(todos); + newValue.id = todoId.id; + // if (!newValue || /^|s*$/.test(newValue.text)) { + // return; + // } + setTodos((prev) => + prev.map((item) => (item.id === todoId.id ? newValue : item)) + ); + }; + + const removeTodo = (id) => { + const removeArr = [...todos].filter((todo) => todo.id !== id); + setTodos(removeArr); + }; + + const completeTodo = (id) => { + let updatedTodos = todos.map((todo) => { + if (todo.id === id) { + todo.isComplete = !todo.isComplete; + } + return todo; + }); + setTodos(updatedTodos); + }; + return ( +
+

What's the Plan for Today?

+ + +
+ ); +} + +export default TodoList; diff --git a/src/index.js b/src/index.js index 31508db1..5ba07f13 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,7 @@ import React from "react"; import ReactDOM from "react-dom/client"; import "./index.css"; + import App from "./App"; const root = ReactDOM.createRoot(document.getElementById("root")); diff --git a/src/logo.png b/src/logo.png deleted file mode 100755 index a7e08590c47cb0b6df6329095b691602fe8a8a26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29578 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 From aa4965b129fbe107cfa25c8449d4e3af3db8e87c Mon Sep 17 00:00:00 2001 From: kendigm Date: Fri, 17 Nov 2023 22:03:20 +0800 Subject: [PATCH 2/3] add color scheme --- package-lock.json | 960 ++++++++++++++++++++++--------------- package.json | 4 +- src/App.css | 7 - src/App.js | 1 - src/components/TodoForm.js | 1 + src/components/TodoList.js | 70 ++- 6 files changed, 636 insertions(+), 407 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2cc5813a..5b7975f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,12 +8,14 @@ "name": "project1-bootcamp", "version": "0.1.0", "dependencies": { - "@mantine/core": "^7.2.2", + "@mantine/core": "^4.2.12", + "@mantine/hooks": "^4.2.12", "bootstrap": "^5.3.2", "react": "^18.1.0", "react-dom": "^18.1.0", "react-icons": "^4.11.0", - "react-scripts": "5.0.1" + "react-scripts": "5.0.1", + "tabler-icons-react": "^1.52.0" } }, "node_modules/@ampproject/remapping": { @@ -2005,6 +2007,86 @@ "postcss": "^8.3" } }, + "node_modules/@emotion/cache": { + "version": "11.7.1", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", + "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", + "dependencies": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "node_modules/@emotion/react": { + "version": "11.7.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.1.tgz", + "integrity": "sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@emotion/cache": "^11.7.1", + "@emotion/serialize": "^1.0.2", + "@emotion/sheet": "^1.1.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", + "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", + "dependencies": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "node_modules/@emotion/utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", + "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, "node_modules/@eslint/eslintrc": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", @@ -2065,54 +2147,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@floating-ui/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", - "dependencies": { - "@floating-ui/utils": "^0.1.3" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", - "dependencies": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" - } - }, - "node_modules/@floating-ui/react": { - "version": "0.24.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.8.tgz", - "integrity": "sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==", - "dependencies": { - "@floating-ui/react-dom": "^2.0.1", - "aria-hidden": "^1.2.3", - "tabbable": "^6.0.1" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", - "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", - "dependencies": { - "@floating-ui/dom": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" - }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -2842,41 +2876,144 @@ "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, "node_modules/@mantine/core": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.2.2.tgz", - "integrity": "sha512-cVGmLjYyKIzjn0LRwamj71O4HT43qCxPGAzMZqkMYGOako7xwBLYQNe7HjL/J0FXJDyfX8OdMylVhgsePWYbng==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-4.2.12.tgz", + "integrity": "sha512-PZcVUvcSZiZmLR1moKBJFdFIh6a4C+TE2ao91kzTAlH5Qb8t/V3ONbfPk3swHoYr7OSLJQM8vZ7UD5sFDiq0/g==", "dependencies": { - "@floating-ui/react": "^0.24.8", - "clsx": "2.0.0", - "react-number-format": "^5.2.2", - "react-remove-scroll": "^2.5.6", - "react-textarea-autosize": "8.5.3", - "type-fest": "^3.13.1" + "@mantine/styles": "4.2.12", + "@popperjs/core": "^2.9.3", + "@radix-ui/react-scroll-area": "^0.1.1", + "react-popper": "^2.2.5", + "react-textarea-autosize": "^8.3.2" }, "peerDependencies": { - "@mantine/hooks": "7.2.2", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@mantine/hooks": "4.2.12", + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/@mantine/core/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "engines": { - "node": ">=14.16" + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-0.1.4.tgz", + "integrity": "sha512-QHxRsjy+hsHwQYJ9cCNgSJ5+6ioZu1KhwD1UOXoHNciuFGMX08v+uJPKXIz+ySv03Rx6cOz6f/Fk5aPHRMFi/A==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "0.1.0", + "@radix-ui/primitive": "0.1.0", + "@radix-ui/react-compose-refs": "0.1.0", + "@radix-ui/react-context": "0.1.1", + "@radix-ui/react-presence": "0.1.2", + "@radix-ui/react-primitive": "0.1.4", + "@radix-ui/react-use-callback-ref": "0.1.0", + "@radix-ui/react-use-direction": "0.1.0", + "@radix-ui/react-use-layout-effect": "0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-compose-refs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", + "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-context": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-0.1.1.tgz", + "integrity": "sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", + "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "0.1.2" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-0.1.2.tgz", + "integrity": "sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "0.1.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-use-callback-ref": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz", + "integrity": "sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-use-direction": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-direction/-/react-use-direction-0.1.0.tgz", + "integrity": "sha512-NajpY/An9TCPSfOVkgWIdXJV+VuWl67PxB6kOKYmtNAFHvObzIoh8o0n9sAuwSAyFCZVq211FEf9gvVDRhOyiA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@mantine/core/node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-use-layout-effect": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", + "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" } }, "node_modules/@mantine/hooks": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.2.2.tgz", - "integrity": "sha512-7CFSVP2aQHrBwLLAVf0q5dgj+6QTZmhLTNcuc3pE1du+HLFUdyVS6vvQC6kieZXxOd6UzwFGBlN4G+aDx95XeA==", - "peer": true, + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-4.2.12.tgz", + "integrity": "sha512-/2GOsgv1tAUFBXOUV0YBZdDZHj3pHN82Sv1oI/hJMjfIT3ZkGeeiJO8Cw9cBcn76t6caP6Czi3hcuKhjz71O+A==", "peerDependencies": { - "react": "^18.2.0" + "react": ">=16.8.0" + } + }, + "node_modules/@mantine/styles": { + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-4.2.12.tgz", + "integrity": "sha512-9q1DzW0UNW/ORMGLHfN2XABOSEm0ZQebhNlLD757R6OQouoLuUf9elUwgGOXSyogMlsAYoy84XbJ3ZbbTm4YCA==", + "dependencies": { + "@emotion/cache": "11.7.1", + "@emotion/react": "11.7.1", + "@emotion/serialize": "1.0.2", + "@emotion/utils": "1.0.0", + "clsx": "^1.1.1", + "csstype": "3.0.9" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, "node_modules/@nodelib/fs.scandir": { @@ -2964,12 +3101,62 @@ "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, + "node_modules/@radix-ui/number": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-0.1.0.tgz", + "integrity": "sha512-rpf6QiOWLHAkM4FEMYu9i+5Jr8cKT893+R4mPpcdsy4LD7omr9JfdOqj/h/xPA5+EcVrpMMlU6rrRYpUB5UI8g==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-0.1.0.tgz", + "integrity": "sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", + "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "0.1.0", + "@radix-ui/react-use-layout-effect": "0.1.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-compose-refs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", + "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", + "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -4182,17 +4369,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", @@ -5054,9 +5230,9 @@ } }, "node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "engines": { "node": ">=6" } @@ -5727,6 +5903,11 @@ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, + "node_modules/csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -5861,11 +6042,6 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, "node_modules/detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -7615,14 +7791,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -7859,6 +8027,19 @@ "he": "bin/he" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -8211,14 +8392,6 @@ "node": ">= 0.4" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -13261,6 +13434,11 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, "node_modules/react-icons": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", @@ -13274,16 +13452,18 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "node_modules/react-number-format": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.3.1.tgz", - "integrity": "sha512-qpYcQLauIeEhCZUZY9jXZnnroOtdy3jYaS1zQ3M1Sr6r/KMOBEIGNIb7eKT19g2N1wbYgFgvDzs19hw5TrB8XQ==", + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", "dependencies": { - "prop-types": "^15.7.2" + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" }, "peerDependencies": { - "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" } }, "node_modules/react-refresh": { @@ -13294,51 +13474,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", - "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -13411,28 +13546,6 @@ } } }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-textarea-autosize": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", @@ -14511,6 +14624,11 @@ "postcss": "^8.2.15" } }, + "node_modules/stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -14654,10 +14772,13 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + "node_modules/tabler-icons-react": { + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/tabler-icons-react/-/tabler-icons-react-1.56.0.tgz", + "integrity": "sha512-FOme3w6PJIWDpeXqQ4xjArQqdxzrr9xNy7PSSgWpRzOUQ71RyZ7jt6WThsfyLBz5os78TPJRA8f/0NLjnKcx9A==", + "peerDependencies": { + "react": ">= 16.8.0" + } }, "node_modules/tailwindcss": { "version": "3.0.24", @@ -15171,26 +15292,6 @@ "punycode": "^2.1.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/use-composed-ref": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", @@ -15228,27 +15329,6 @@ } } }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -15342,6 +15422,14 @@ "makeerror": "1.0.12" } }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", @@ -17542,6 +17630,74 @@ "integrity": "sha512-T5ZyNSw9G0x0UDFiXV40a7VjKw2b+l4G+S0sctKqxhx8cg9QtMUAGwJBVU9mHPDPoZEmwm0tEoukjl4zb9MU7Q==", "requires": {} }, + "@emotion/cache": { + "version": "11.7.1", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", + "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", + "requires": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "@emotion/react": { + "version": "11.7.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.1.tgz", + "integrity": "sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw==", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/cache": "^11.7.1", + "@emotion/serialize": "^1.0.2", + "@emotion/sheet": "^1.1.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", + "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", + "requires": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@emotion/utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", + "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, "@eslint/eslintrc": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", @@ -17586,46 +17742,6 @@ } } }, - "@floating-ui/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", - "requires": { - "@floating-ui/utils": "^0.1.3" - } - }, - "@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", - "requires": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" - } - }, - "@floating-ui/react": { - "version": "0.24.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.8.tgz", - "integrity": "sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==", - "requires": { - "@floating-ui/react-dom": "^2.0.1", - "aria-hidden": "^1.2.3", - "tabbable": "^6.0.1" - } - }, - "@floating-ui/react-dom": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", - "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", - "requires": { - "@floating-ui/dom": "^1.5.1" - } - }, - "@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" - }, "@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -18167,32 +18283,117 @@ "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, "@mantine/core": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.2.2.tgz", - "integrity": "sha512-cVGmLjYyKIzjn0LRwamj71O4HT43qCxPGAzMZqkMYGOako7xwBLYQNe7HjL/J0FXJDyfX8OdMylVhgsePWYbng==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-4.2.12.tgz", + "integrity": "sha512-PZcVUvcSZiZmLR1moKBJFdFIh6a4C+TE2ao91kzTAlH5Qb8t/V3ONbfPk3swHoYr7OSLJQM8vZ7UD5sFDiq0/g==", "requires": { - "@floating-ui/react": "^0.24.8", - "clsx": "2.0.0", - "react-number-format": "^5.2.2", - "react-remove-scroll": "^2.5.6", - "react-textarea-autosize": "8.5.3", - "type-fest": "^3.13.1" + "@mantine/styles": "4.2.12", + "@popperjs/core": "^2.9.3", + "@radix-ui/react-scroll-area": "^0.1.1", + "react-popper": "^2.2.5", + "react-textarea-autosize": "^8.3.2" }, "dependencies": { - "type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" + "@radix-ui/react-scroll-area": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-0.1.4.tgz", + "integrity": "sha512-QHxRsjy+hsHwQYJ9cCNgSJ5+6ioZu1KhwD1UOXoHNciuFGMX08v+uJPKXIz+ySv03Rx6cOz6f/Fk5aPHRMFi/A==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "0.1.0", + "@radix-ui/primitive": "0.1.0", + "@radix-ui/react-compose-refs": "0.1.0", + "@radix-ui/react-context": "0.1.1", + "@radix-ui/react-presence": "0.1.2", + "@radix-ui/react-primitive": "0.1.4", + "@radix-ui/react-use-callback-ref": "0.1.0", + "@radix-ui/react-use-direction": "0.1.0", + "@radix-ui/react-use-layout-effect": "0.1.0" + }, + "dependencies": { + "@radix-ui/react-compose-refs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", + "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-context": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-0.1.1.tgz", + "integrity": "sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-primitive": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", + "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "0.1.2" + }, + "dependencies": { + "@radix-ui/react-slot": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-0.1.2.tgz", + "integrity": "sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "0.1.0" + } + } + } + }, + "@radix-ui/react-use-callback-ref": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz", + "integrity": "sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-use-direction": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-direction/-/react-use-direction-0.1.0.tgz", + "integrity": "sha512-NajpY/An9TCPSfOVkgWIdXJV+VuWl67PxB6kOKYmtNAFHvObzIoh8o0n9sAuwSAyFCZVq211FEf9gvVDRhOyiA==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", + "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + } + } } } }, "@mantine/hooks": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.2.2.tgz", - "integrity": "sha512-7CFSVP2aQHrBwLLAVf0q5dgj+6QTZmhLTNcuc3pE1du+HLFUdyVS6vvQC6kieZXxOd6UzwFGBlN4G+aDx95XeA==", - "peer": true, + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-4.2.12.tgz", + "integrity": "sha512-/2GOsgv1tAUFBXOUV0YBZdDZHj3pHN82Sv1oI/hJMjfIT3ZkGeeiJO8Cw9cBcn76t6caP6Czi3hcuKhjz71O+A==", "requires": {} }, + "@mantine/styles": { + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-4.2.12.tgz", + "integrity": "sha512-9q1DzW0UNW/ORMGLHfN2XABOSEm0ZQebhNlLD757R6OQouoLuUf9elUwgGOXSyogMlsAYoy84XbJ3ZbbTm4YCA==", + "requires": { + "@emotion/cache": "11.7.1", + "@emotion/react": "11.7.1", + "@emotion/serialize": "1.0.2", + "@emotion/utils": "1.0.0", + "clsx": "^1.1.1", + "csstype": "3.0.9" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -18235,8 +18436,51 @@ "@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "@radix-ui/number": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-0.1.0.tgz", + "integrity": "sha512-rpf6QiOWLHAkM4FEMYu9i+5Jr8cKT893+R4mPpcdsy4LD7omr9JfdOqj/h/xPA5+EcVrpMMlU6rrRYpUB5UI8g==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/primitive": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-0.1.0.tgz", + "integrity": "sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-presence": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", + "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "0.1.0", + "@radix-ui/react-use-layout-effect": "0.1.0" + }, + "dependencies": { + "@radix-ui/react-compose-refs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", + "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", + "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + } + } }, "@rollup/plugin-babel": { "version": "5.3.1", @@ -19147,14 +19391,6 @@ "sprintf-js": "~1.0.2" } }, - "aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", - "requires": { - "tslib": "^2.0.0" - } - }, "aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", @@ -19786,9 +20022,9 @@ } }, "clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" }, "co": { "version": "4.6.0", @@ -20256,6 +20492,11 @@ } } }, + "csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + }, "damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -20351,11 +20592,6 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, - "detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, "detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -21630,11 +21866,6 @@ "has-symbols": "^1.0.1" } }, - "get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" - }, "get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -21798,6 +22029,21 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -22057,14 +22303,6 @@ "side-channel": "^1.0.4" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -25574,6 +25812,11 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, "react-icons": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", @@ -25585,12 +25828,13 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "react-number-format": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.3.1.tgz", - "integrity": "sha512-qpYcQLauIeEhCZUZY9jXZnnroOtdy3jYaS1zQ3M1Sr6r/KMOBEIGNIb7eKT19g2N1wbYgFgvDzs19hw5TrB8XQ==", + "react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", "requires": { - "prop-types": "^15.7.2" + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" } }, "react-refresh": { @@ -25598,27 +25842,6 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" }, - "react-remove-scroll": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", - "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", - "requires": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - } - }, - "react-remove-scroll-bar": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", - "requires": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - } - }, "react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -25674,16 +25897,6 @@ "workbox-webpack-plugin": "^6.4.1" } }, - "react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "requires": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - } - }, "react-textarea-autosize": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", @@ -26475,6 +26688,11 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -26593,10 +26811,11 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + "tabler-icons-react": { + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/tabler-icons-react/-/tabler-icons-react-1.56.0.tgz", + "integrity": "sha512-FOme3w6PJIWDpeXqQ4xjArQqdxzrr9xNy7PSSgWpRzOUQ71RyZ7jt6WThsfyLBz5os78TPJRA8f/0NLjnKcx9A==", + "requires": {} }, "tailwindcss": { "version": "3.0.24", @@ -26974,14 +27193,6 @@ "punycode": "^2.1.0" } }, - "use-callback-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "requires": { - "tslib": "^2.0.0" - } - }, "use-composed-ref": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", @@ -27002,15 +27213,6 @@ "use-isomorphic-layout-effect": "^1.1.1" } }, - "use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "requires": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -27086,6 +27288,14 @@ "makeerror": "1.0.12" } }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", diff --git a/package.json b/package.json index dde33a67..009a4dc2 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,9 @@ "version": "0.1.0", "private": true, "dependencies": { - "@mantine/core": "^7.2.2", + "@mantine/core": "^4.2.12", + "@mantine/hooks": "^4.2.12", + "tabler-icons-react": "^1.52.0", "bootstrap": "^5.3.2", "react": "^18.1.0", "react-dom": "^18.1.0", diff --git a/src/App.css b/src/App.css index ceb81c3d..ef72d152 100644 --- a/src/App.css +++ b/src/App.css @@ -6,13 +6,6 @@ "Lucida Sans", Arial, sans-serif; } -body { - background: linear-gradient( - 90deg, - rgba(48, 16, 255, 1) 0%, - rgba(100, 115, 255, 1) 100% - ); -} .todo-app { display: flex; flex-direction: column; diff --git a/src/App.js b/src/App.js index 5b9a7faa..710ba831 100644 --- a/src/App.js +++ b/src/App.js @@ -8,7 +8,6 @@ class App extends React.Component { return (
-
); } diff --git a/src/components/TodoForm.js b/src/components/TodoForm.js index a52b6978..81232af2 100644 --- a/src/components/TodoForm.js +++ b/src/components/TodoForm.js @@ -49,6 +49,7 @@ function TodoForm(props) { className="todo-input" onChange={handleChange} ref={inputRef} + style={{ color: props.colorScheme === "dark" ? "white" : "black"}} /> diff --git a/src/components/TodoList.js b/src/components/TodoList.js index f1c3701c..1555786b 100644 --- a/src/components/TodoList.js +++ b/src/components/TodoList.js @@ -1,10 +1,10 @@ import React, { useState } from "react"; import TodoForm from "./TodoForm"; import Todo from "./Todo"; -import { MantineProvider, ColorSchemeProvider,ColorScheme,} from "@mantine/core"; +import { ColorSchemeProvider, MantineProvider, ActionIcon, Group, Title, Center } from '@mantine/core' +import { MoonStars, Sun } from 'tabler-icons-react'; -import { useColorScheme } from "@mantine/hooks"; -import { useHotkeys, useLocalStorage } from "@mantine/hooks"; +import { useLocalStorage } from "@mantine/hooks"; function TodoList() { const [todos, setTodos] = useState([ @@ -24,17 +24,16 @@ function TodoList() { isCompleted: false, }, ]); -const preferredColorScheme = useColorScheme(); -const [colorScheme, setColorScheme] = useLocalStorage({ - const toggleColorScheme = value => - setColorScheme(value || (colorScheme === 'dark' ? 'light' : 'dark')); - - useHotkeys([['mod+J', () => toggleColorScheme()]]); - key: "mantine-color-scheme", - defaultValue: "light", - getInitialValueInEffect: true, -}); + const [colorScheme, setColorScheme] = useLocalStorage({ + key: 'mantine-color-scheme', + defaultValue: 'dark', + getInitialValueInEffect: true, + }); + const toggleColorScheme = () => { + setColorScheme(colorScheme === 'dark' ? 'light' : 'dark'); + console.log(colorScheme); + } // const addTodo = (todo) => { @@ -78,16 +77,41 @@ const [colorScheme, setColorScheme] = useLocalStorage({ setTodos(updatedTodos); }; return ( -
-

What's the Plan for Today?

- - -
+ + +
+
+ + What's the Plan for Today? + toggleColorScheme()} + size='lg'> + {colorScheme === 'dark' ? ( + + ) : ( + + )} + + +
+
+ +
+
+ +
+
+
+
); } From af2ff8ce3cc35b615f1662a19a1fc32958ed6596 Mon Sep 17 00:00:00 2001 From: kendigm Date: Fri, 17 Nov 2023 23:11:11 +0800 Subject: [PATCH 3/3] add modal --- src/App.css | 2 +- src/components/Todo.js | 13 +++--- src/components/TodoForm.js | 89 +++++++++++++++++++++----------------- src/components/TodoList.js | 17 +++----- 4 files changed, 64 insertions(+), 57 deletions(-) diff --git a/src/App.css b/src/App.css index ef72d152..a0fef103 100644 --- a/src/App.css +++ b/src/App.css @@ -39,7 +39,7 @@ h1 { border-radius: 4px 0 0 4px; border: 2px solid #5d0cff; outline: none; - width: 320px; + max-width: 320px; background: transparent; color: #fff; } diff --git a/src/components/Todo.js b/src/components/Todo.js index 03d0dc66..df54294f 100644 --- a/src/components/Todo.js +++ b/src/components/Todo.js @@ -4,14 +4,14 @@ import { RiCloseCircleLine } from "react-icons/ri"; import { TiEdit } from "react-icons/ti"; function Todo({ todos, completeTodo, removeTodo, updateTodo }) { + const [editMode, setEditMode] = useState(false); const [edit, setEdit] = useState({ id: null, value: "", }); - const submateUpdate = (value) => { - console.log(updateTodo); - updateTodo(edit.id, value); + const submitUpdate = (value) => { + updateTodo(value.id, value); setEdit({ id: null, @@ -19,7 +19,7 @@ function Todo({ todos, completeTodo, removeTodo, updateTodo }) { }); }; if (edit.id) { - return ; + return ; } return todos.map((todo, index) => (
setEdit({ id: todo, value: todo.text })} + onClick={() => { + setEdit({ id: todo, value: todo.text }) + setEditMode(true); + }} className="edit-icon" />
diff --git a/src/components/TodoForm.js b/src/components/TodoForm.js index 81232af2..a2778c4a 100644 --- a/src/components/TodoForm.js +++ b/src/components/TodoForm.js @@ -1,17 +1,15 @@ -import React, { useState, useEffect, useRef } from "react"; +import React, { useState } from "react"; +import { Modal, Center } from "@mantine/core"; function TodoForm(props) { - const [input, setInput] = useState(props.edit ? props.edit.value : ""); - - const inputRef = useRef(null); - - useEffect(() => { - inputRef.current.focus(); - }); + const [input, setInput] = useState(""); + const [update, setUpdate] = useState(props.edit ? props.edit.value : ""); const handleChange = (e) => { - setInput(e.target.value); + if (props.editMode) setUpdate(e.target.value) + else setInput(e.target.value); }; + const handleSubmit = (e) => { e.preventDefault(); @@ -24,37 +22,50 @@ function TodoForm(props) { setInput(""); }; + const handleUpdate = (e) => { + e.preventDefault(); + + // makes the to do invisible. + setUpdate(""); + props.setEditMode(false); + + props.onSubmit({ + id: props.edit.id, + text: update, + }); + } + return ( -
- {props.edit?.id ? ( - <> - - - - ) : ( - <> - - - - )} -
+ <> + props.setEditMode(false)} centered> +
+ + +
+
+
+
+ + +
+
+ ); } diff --git a/src/components/TodoList.js b/src/components/TodoList.js index 1555786b..adada86d 100644 --- a/src/components/TodoList.js +++ b/src/components/TodoList.js @@ -37,13 +37,6 @@ function TodoList() { // const addTodo = (todo) => { - console.log(todo); - // if (!todo.text || /^|s*$/.test(todo.text)) { - // return; - // } - let id = todos.length + 1; - todo.id = id; - const newTodos = [todo, ...todos]; console.log(newTodos); setTodos(newTodos); @@ -83,9 +76,9 @@ function TodoList() { withGlobalStyles withNormalizeCSS>
-
- - What's the Plan for Today? +
+ What's the Plan for Today? +
toggleColorScheme()} @@ -96,8 +89,8 @@ function TodoList() { )} - -
+
+