diff --git a/.gitignore b/.gitignore
index 4d29575..e61fe74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,4 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-# dependencies
/node_modules
-/.pnp
-.pnp.js
+5th.md
-# testing
-/coverage
-
-# production
-/build
-
-# misc
-.DS_Store
-.env.local
-.env.development.local
-.env.test.local
-.env.production.local
-
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..73f69e0
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..bf9b636
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..79ee123
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..b3a20a8
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/prettier.xml b/.idea/prettier.xml
new file mode 100644
index 0000000..727b8b5
--- /dev/null
+++ b/.idea/prettier.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/react-messenger-15th.iml b/.idea/react-messenger-15th.iml
new file mode 100644
index 0000000..0c8867d
--- /dev/null
+++ b/.idea/react-messenger-15th.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..0a72520
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,6 @@
+{
+ "trailingComma": "es5",
+ "tabWidth": 2,
+ "semi": true,
+ "singleQuote": true
+}
diff --git a/README.md b/README.md
index 7a95c82..58beeac 100644
--- a/README.md
+++ b/README.md
@@ -1,45 +1,70 @@
-# 4์ฃผ์ฐจ ๋ฏธ์
: React-Messenger ๐
+# Getting Started with Create React App
-## ์๋ก
+This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
-์๋
ํ์ธ์ ๐๐ป 15๊ธฐ ํ๋ก ํธ ํํธ์ฅ **๊น์ฃผํ**์
๋๋ค.
+## Available Scripts
-์ด๋ฒ์ฃผ๋ถํฐ๋ ๋๋์ด ํฌ๋๋ฆฌ์คํธ์์ ๋ฒ์ด๋ ์๋ก์ด ํ๋ก์ ํธ์ธ **messenger** ๋ง๋ค๊ธฐ๋ฅผ ์งํํฉ๋๋ค. ์ด๋ฒ ๋ฏธ์
์ ์ ๋ฒ ๋ฏธ์
์ ์ฐ์ฅ์ ์ผ๋ก, TypeScript์ ๋ค์ํ React Hook์ ์ต์ํด์ง๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ด๋ฒ ์ฃผ์ฐจ์ ์ค์ ์ ์ผ๋ก ์ฌ์ฉํ๋ Hook์ React๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ต์ฅํ ์์ฃผ ์ฐ์ด๊ธฐ ๋๋ฌธ์ ํด๋น ๋ถ๋ถ์ ์ค์ ์ ์ผ๋ก ๊ณต๋ถํด ๋ณด์ธ์.
+In the project directory, you can run:
-๊ทธ๋ผ ์ด๋ฒ ๋ฏธ์
๋ ํ์ดํ
์
๋๋ค โค๏ธโ๐ฅ
+### `npm start`
-# ๋ฏธ์
+Runs the app in the development mode.\
+Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
-## ๋ฏธ์
๋ชฉํ
+The page will reload when you make changes.\
+You may also see any lint errors in the console.
-- TypeScript์ ์ต์ํด์ง๋๋ค.
-- useState๋ก ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
-- useEffect์ useRef์ ์ฌ์ฉ๋ฒ์ ์ดํดํฉ๋๋ค.
-- styled-components๋ฅผ ํตํ CSS-in-JS ๋ฐ CSS Preprocessor์ ์ฌ์ฉ๋ฒ์ ์ต์ํด์ง๋๋ค.
+### `npm test`
-## ๊ธฐํ
+Launches the test runner in the interactive watch mode.\
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
-- 2022๋
5์ 6์ผ ๊ธ์์ผ **(๊ธฐํ ์์!)**
+### `npm run build`
-## ํ์ ์๊ฑด
+Builds the app for production to the `build` folder.\
+It correctly bundles React in production mode and optimizes the build for the best performance.
-- ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
-- styled-components๋ฅผ ์ฌ์ฉํฉ๋๋ค.
-- ์ปดํฌ๋ํธ ๋ค์ด๋ฐ์ ์ ๊ฒฝ์จ ๋ด
๋๋ค.
-- UI๋ ์์ ๋กญ๊ฒ ๊ตฌ์ฑํ๋, ๋ฐ์ํ๊น์ง ๊ณ ๋ คํ์ง ์์ผ์
๋ ๋ฉ๋๋ค.
+The build is minified and the filenames include the hashes.\
+Your app is ready to be deployed!
-## ํ์ ๊ตฌํ ๊ธฐ๋ฅ
+See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
-- [๊ฒฐ๊ณผ ํ๋ฉด](https://corinth-messenger.vercel.app/)๊ณผ๊ฐ์ด ๊ตฌํํฉ๋๋ค.
-- ์ฑํ
๋ฐฉ ์๋จ์ ํ๋กํ์ ํด๋ฆญํ๋ฉด ์ฌ์ฉ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
-- ๊ณต๋ฐฑ ์
๋ ฅ ์ alert ๋ฉ์ธ์ง๋ฅผ ๋์ฐ๊ณ , ์ ์ก๋์ง ์๋๋ก ํฉ๋๋ค.
-- ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ฉด ์ฑํ
๋ฐฉ ํ๋จ์ผ๋ก ์คํฌ๋กค์ ์ด๋์ํต๋๋ค. (Hint: useEffect + scrollTo)
-- ๋ฉ์ธ์ง์ ์ ์ ์ ๋ณด(ํ๋กํ ์ฌ์ง, ์ด๋ฆ)๋ฅผ ํจ๊ป ํ์ํฉ๋๋ค.
-- user์ message ๋ฐ์ดํฐ๋ฅผ json ํ์์ ํ์ผ์ ์ ์ฅํฉ๋๋ค.
+### `npm run eject`
-# ๋งํฌ ๋ฐ ์ฐธ๊ณ ์๋ฃ
+**Note: this is a one-way operation. Once you `eject`, you can't go back!**
-- [React docs - Hook](https://ko.reactjs.org/docs/hooks-intro.html)
-- [React์ Hooks ์๋ฒฝ ์ ๋ณตํ๊ธฐ](https://velog.io/@velopert/react-hooks#1-usestate)
-- [useEffect ์๋ฒฝ ๊ฐ์ด๋](https://overreacted.io/ko/a-complete-guide-to-useeffect/)
-- [๋ฆฌ์กํธ ํ๋ก์ ํธ์์ ํ์
์คํฌ๋ฆฝํธ ์ฌ์ฉํ๊ธฐ (์๋ฆฌ์ฆ)](https://velog.io/@velopert/series/react-with-typescript)
+If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
+
+Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
+
+You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
+
+## Learn More
+
+You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
+
+To learn React, check out the [React documentation](https://reactjs.org/).
+
+### Code Splitting
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
+
+### Analyzing the Bundle Size
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
+
+### Making a Progressive Web App
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
+
+### Advanced Configuration
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
+
+### Deployment
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
+
+### `npm run build` fails to minify
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
diff --git a/package-lock.json b/package-lock.json
index 43e807c..9a5883b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,20 +1,33 @@
{
- "name": "react-messenger-15th",
+ "name": "front",
"version": "0.1.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "react-messenger-15th",
+ "name": "front",
"version": "0.1.0",
"dependencies": {
"@testing-library/jest-dom": "^5.16.4",
- "@testing-library/react": "^13.1.1",
+ "@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
+ "@types/jest": "^27.5.1",
+ "@types/node": "^17.0.33",
+ "@types/react": "^18.0.9",
+ "@types/react-dom": "^18.0.4",
+ "@types/styled-components": "^5.1.25",
"react": "^18.1.0",
"react-dom": "^18.1.0",
+ "react-router-dom": "^6.3.0",
"react-scripts": "5.0.1",
+ "recoil": "^0.7.3-alpha.2",
+ "styled-components": "^5.3.5",
+ "styled-normalize": "^8.0.7",
+ "typescript": "^4.6.4",
"web-vitals": "^2.1.4"
+ },
+ "devDependencies": {
+ "prettier": "^2.6.2"
}
},
"node_modules/@ampproject/remapping": {
@@ -1972,19 +1985,71 @@
"postcss": "^8.3"
}
},
+ "node_modules/@csstools/postcss-stepped-value-functions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz",
+ "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3"
+ }
+ },
+ "node_modules/@csstools/postcss-unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.0.tgz",
+ "integrity": "sha512-T5ZyNSw9G0x0UDFiXV40a7VjKw2b+l4G+S0sctKqxhx8cg9QtMUAGwJBVU9mHPDPoZEmwm0tEoukjl4zb9MU7Q==",
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3"
+ }
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz",
+ "integrity": "sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==",
+ "dependencies": {
+ "@emotion/memoize": "^0.7.4"
+ }
+ },
+ "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/stylis": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
+ "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
+ },
+ "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/@eslint/eslintrc": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz",
- "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz",
+ "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"globals": "^13.9.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
},
"engines": {
@@ -1997,9 +2062,9 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.14.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz",
+ "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -2726,30 +2791,30 @@
}
},
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz",
- "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==",
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
+ "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/set-array": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz",
- "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz",
+ "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.11",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz",
- "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg=="
+ "version": "1.4.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
+ "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w=="
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.10.tgz",
+ "integrity": "sha512-Q0YbBd6OTsXm8Y21+YUSDXupHnodNC2M4O18jtd3iwJ3+vMZNdKGols0a9G6JOK0dcJ3IdUUHoh908ZI6qhk8Q==",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -3340,9 +3405,9 @@
}
},
"node_modules/@testing-library/react": {
- "version": "13.1.1",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.1.1.tgz",
- "integrity": "sha512-8mirlAa0OKaUvnqnZF6MdAh2tReYA2KtWVw1PKvaF5EcCZqgK5pl8iF+3uW90JdG5Ua2c2c2E2wtLdaug3dsVg==",
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.2.0.tgz",
+ "integrity": "sha512-Bprbz/SZVONCJy5f7hcihNCv313IJXdYiv0nSJklIs1SQCIHHNlnGNkosSXnGZTmesyGIcBGNppYhXcc11pb7g==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@testing-library/dom": "^8.5.0",
@@ -3515,15 +3580,24 @@
"@types/node": "*"
}
},
+ "node_modules/@types/hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
+ "dependencies": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
"node_modules/@types/html-minifier-terser": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
"integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
},
"node_modules/@types/http-proxy": {
- "version": "1.17.8",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz",
- "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==",
+ "version": "1.17.9",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
+ "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
"dependencies": {
"@types/node": "*"
}
@@ -3550,9 +3624,9 @@
}
},
"node_modules/@types/jest": {
- "version": "27.4.1",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz",
- "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.1.tgz",
+ "integrity": "sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==",
"dependencies": {
"jest-matcher-utils": "^27.0.0",
"pretty-format": "^27.0.0"
@@ -3574,9 +3648,9 @@
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
},
"node_modules/@types/node": {
- "version": "17.0.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz",
- "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw=="
+ "version": "17.0.33",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz",
+ "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ=="
},
"node_modules/@types/parse-json": {
"version": "4.0.0",
@@ -3609,9 +3683,9 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"node_modules/@types/react": {
- "version": "18.0.8",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.8.tgz",
- "integrity": "sha512-+j2hk9BzCOrrOSJASi5XiOyBbERk9jG5O73Ya4M0env5Ixi6vUNli4qy994AINcEF+1IEHISYFfIT4zwr++LKw==",
+ "version": "18.0.9",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
+ "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -3619,9 +3693,9 @@
}
},
"node_modules/@types/react-dom": {
- "version": "18.0.3",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.3.tgz",
- "integrity": "sha512-1RRW9kst+67gveJRYPxGmVy8eVJ05O43hg77G2j5m76/RFJtMbcfAs2viQ2UNsvvDg8F7OfQZx8qQcl6ymygaQ==",
+ "version": "18.0.4",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.4.tgz",
+ "integrity": "sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==",
"dependencies": {
"@types/react": "*"
}
@@ -3674,6 +3748,16 @@
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
+ "node_modules/@types/styled-components": {
+ "version": "5.1.25",
+ "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.25.tgz",
+ "integrity": "sha512-fgwl+0Pa8pdkwXRoVPP9JbqF0Ivo9llnmsm+7TCI330kbPIFd9qv1Lrhr37shf4tnxCOSu+/IgqM7uJXLWZZNQ==",
+ "dependencies": {
+ "@types/hoist-non-react-statics": "*",
+ "@types/react": "*",
+ "csstype": "^3.0.2"
+ }
+ },
"node_modules/@types/testing-library__jest-dom": {
"version": "5.14.3",
"resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz",
@@ -3709,13 +3793,13 @@
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz",
- "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz",
+ "integrity": "sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.21.0",
- "@typescript-eslint/type-utils": "5.21.0",
- "@typescript-eslint/utils": "5.21.0",
+ "@typescript-eslint/scope-manager": "5.22.0",
+ "@typescript-eslint/type-utils": "5.22.0",
+ "@typescript-eslint/utils": "5.22.0",
"debug": "^4.3.2",
"functional-red-black-tree": "^1.0.1",
"ignore": "^5.1.8",
@@ -3741,11 +3825,11 @@
}
},
"node_modules/@typescript-eslint/experimental-utils": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.21.0.tgz",
- "integrity": "sha512-mzF6ert/6iQoESV0z9v5/mEaJRKL4fv68rHoZ6exM38xjxkw4MNx54B7ferrnMTM/GIRKLDaJ3JPRi+Dxa5Hlg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.22.0.tgz",
+ "integrity": "sha512-rKxoCUtAHwEH6IcAoVpqipY6Th+YKW7WFspAKu0IFdbdKZpveFBeqxxE9Xn+GWikhq1o03V3VXbxIe+GdhggiQ==",
"dependencies": {
- "@typescript-eslint/utils": "5.21.0"
+ "@typescript-eslint/utils": "5.22.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3759,13 +3843,13 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz",
- "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz",
+ "integrity": "sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.21.0",
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/typescript-estree": "5.21.0",
+ "@typescript-eslint/scope-manager": "5.22.0",
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/typescript-estree": "5.22.0",
"debug": "^4.3.2"
},
"engines": {
@@ -3785,12 +3869,12 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz",
- "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz",
+ "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==",
"dependencies": {
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/visitor-keys": "5.21.0"
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/visitor-keys": "5.22.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3801,11 +3885,11 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz",
- "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz",
+ "integrity": "sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==",
"dependencies": {
- "@typescript-eslint/utils": "5.21.0",
+ "@typescript-eslint/utils": "5.22.0",
"debug": "^4.3.2",
"tsutils": "^3.21.0"
},
@@ -3826,9 +3910,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz",
- "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz",
+ "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -3838,12 +3922,12 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz",
- "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz",
+ "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==",
"dependencies": {
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/visitor-keys": "5.21.0",
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/visitor-keys": "5.22.0",
"debug": "^4.3.2",
"globby": "^11.0.4",
"is-glob": "^4.0.3",
@@ -3864,14 +3948,14 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz",
- "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.22.0.tgz",
+ "integrity": "sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==",
"dependencies": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.21.0",
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/typescript-estree": "5.21.0",
+ "@typescript-eslint/scope-manager": "5.22.0",
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/typescript-estree": "5.22.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -3907,11 +3991,11 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz",
- "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz",
+ "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==",
"dependencies": {
- "@typescript-eslint/types": "5.21.0",
+ "@typescript-eslint/types": "5.22.0",
"eslint-visitor-keys": "^3.0.0"
},
"engines": {
@@ -4333,13 +4417,13 @@
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
},
"node_modules/array-includes": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
- "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
+ "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"is-string": "^1.0.7"
},
@@ -4403,12 +4487,9 @@
"integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
},
"node_modules/async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dependencies": {
- "lodash": "^4.17.14"
- }
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
+ "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
},
"node_modules/asynckit": {
"version": "0.4.0",
@@ -4435,9 +4516,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz",
- "integrity": "sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==",
+ "version": "10.4.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz",
+ "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==",
"funding": [
{
"type": "opencollective",
@@ -4449,8 +4530,8 @@
}
],
"dependencies": {
- "browserslist": "^4.20.2",
- "caniuse-lite": "^1.0.30001332",
+ "browserslist": "^4.20.3",
+ "caniuse-lite": "^1.0.30001335",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -4702,6 +4783,26 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/babel-plugin-styled-components": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz",
+ "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-module-imports": "^7.16.0",
+ "babel-plugin-syntax-jsx": "^6.18.0",
+ "lodash": "^4.17.11",
+ "picomatch": "^2.3.0"
+ },
+ "peerDependencies": {
+ "styled-components": ">= 2"
+ }
+ },
+ "node_modules/babel-plugin-syntax-jsx": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
+ },
"node_modules/babel-plugin-transform-react-remove-prop-types": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
@@ -5016,6 +5117,11 @@
"node": ">= 6"
}
},
+ "node_modules/camelize": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
+ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
+ },
"node_modules/caniuse-api": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
@@ -5028,9 +5134,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001334",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz",
- "integrity": "sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw==",
+ "version": "1.0.30001338",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz",
+ "integrity": "sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ==",
"funding": [
{
"type": "opencollective",
@@ -5374,9 +5480,9 @@
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"node_modules/core-js": {
- "version": "3.22.3",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz",
- "integrity": "sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg==",
+ "version": "3.22.4",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.4.tgz",
+ "integrity": "sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -5384,9 +5490,9 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.22.3",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.3.tgz",
- "integrity": "sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw==",
+ "version": "3.22.4",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.4.tgz",
+ "integrity": "sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==",
"dependencies": {
"browserslist": "^4.20.3",
"semver": "7.0.0"
@@ -5405,9 +5511,9 @@
}
},
"node_modules/core-js-pure": {
- "version": "3.22.3",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.3.tgz",
- "integrity": "sha512-oN88zz7nmKROMy8GOjs+LN+0LedIvbMdnB5XsTlhcOg1WGARt9l0LFg0zohdoFmCsEZ1h2ZbSQ6azj3M+vhzwQ==",
+ "version": "3.22.4",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.4.tgz",
+ "integrity": "sha512-4iF+QZkpzIz0prAFuepmxwJ2h5t4agvE8WPYqs2mjLJMNNwJOnpch76w2Q7bUfCPEv/V7wpvOfog0w273M+ZSw==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -5482,6 +5588,14 @@
"postcss": "^8.4"
}
},
+ "node_modules/css-color-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
+ "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/css-declaration-sorter": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz",
@@ -5663,6 +5777,16 @@
"resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
"integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="
},
+ "node_modules/css-to-react-native": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz",
+ "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==",
+ "dependencies": {
+ "camelize": "^1.0.0",
+ "css-color-keywords": "^1.0.0",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
"node_modules/css-tree": {
"version": "1.0.0-alpha.37",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
@@ -5708,9 +5832,13 @@
}
},
"node_modules/cssdb": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz",
- "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA=="
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.1.tgz",
+ "integrity": "sha512-0/nZEYfp8SFEzJkMud8NxZJsGfD7RHDJti6GRBLZptIwAzco6RTx1KgwFl4mGWsYS0ZNbCrsY9QryhQ4ldF3Mg==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
},
"node_modules/cssesc": {
"version": "3.0.0",
@@ -6231,9 +6359,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.129",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz",
- "integrity": "sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ=="
+ "version": "1.4.137",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz",
+ "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA=="
},
"node_modules/emittery": {
"version": "0.8.1",
@@ -6304,16 +6432,18 @@
}
},
"node_modules/es-abstract": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz",
- "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.0.tgz",
+ "integrity": "sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==",
"dependencies": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
@@ -6325,9 +6455,10 @@
"object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
+ "regexp.prototype.flags": "^1.4.1",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -6464,11 +6595,11 @@
}
},
"node_modules/eslint": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz",
- "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==",
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz",
+ "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==",
"dependencies": {
- "@eslint/eslintrc": "^1.2.2",
+ "@eslint/eslintrc": "^1.2.3",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
@@ -6479,7 +6610,7 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -6495,7 +6626,7 @@
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
"regexpp": "^3.2.0",
@@ -6824,9 +6955,9 @@
}
},
"node_modules/eslint-plugin-testing-library": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.3.1.tgz",
- "integrity": "sha512-OfF4dlG/q6ck6DL3P8Z0FPdK0dU5K57gsBu7eUcaVbwYKaNzjgejnXiM9CCUevppORkvfek+9D3Uj/9ZZ8Vz8g==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.4.0.tgz",
+ "integrity": "sha512-XjxIf4g33KaZXxRNbR33+0WcRQ/zt8N0R58IY6/kkHnrY6zPsC1gs3u5cTZr5eUmCZN/sjoPak3uF5vHGKg2wg==",
"dependencies": {
"@typescript-eslint/utils": "^5.13.0"
},
@@ -6968,9 +7099,9 @@
}
},
"node_modules/eslint/node_modules/globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.14.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz",
+ "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -7023,12 +7154,12 @@
}
},
"node_modules/espree": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
- "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
+ "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
"dependencies": {
- "acorn": "^8.7.0",
- "acorn-jsx": "^5.3.1",
+ "acorn": "^8.7.1",
+ "acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -7456,9 +7587,9 @@
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="
},
"node_modules/follow-redirects": {
- "version": "1.14.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
- "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz",
+ "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==",
"funding": [
{
"type": "individual",
@@ -7712,6 +7843,23 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
@@ -7909,6 +8057,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/hamt_plus": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz",
+ "integrity": "sha1-4hwlKWjH4zsg9qGwlM2FeHomVgE="
+ },
"node_modules/handle-thing": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
@@ -7990,6 +8143,27 @@
"he": "bin/he"
}
},
+ "node_modules/history": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
+ "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.7.6"
+ }
+ },
+ "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",
@@ -8792,11 +8966,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jake/node_modules/async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
- },
"node_modules/jake/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -10291,15 +10460,15 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/@jest/console": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.0.2.tgz",
- "integrity": "sha512-tiRpnMeeyQuuzgL5UNSeiqMwF8UOWPbAE5rzcu/1zyq4oPG2Ox6xm4YCOruwbp10F8odWc+XwVxTyGzMSLMqxA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz",
+ "integrity": "sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==",
"dependencies": {
- "@jest/types": "^28.0.2",
+ "@jest/types": "^28.1.0",
"@types/node": "*",
"chalk": "^4.0.0",
- "jest-message-util": "^28.0.2",
- "jest-util": "^28.0.2",
+ "jest-message-util": "^28.1.0",
+ "jest-util": "^28.1.0",
"slash": "^3.0.0"
},
"engines": {
@@ -10315,12 +10484,12 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/@jest/test-result": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.0.2.tgz",
- "integrity": "sha512-4EUqgjq9VzyUiVTvZfI9IRJD6t3NYBNP4f+Eq8Zr93+hkJ0RrGU4OBTw8tfNzidKX+bmuYzn8FxqpxOPIGGCMA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz",
+ "integrity": "sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==",
"dependencies": {
- "@jest/console": "^28.0.2",
- "@jest/types": "^28.0.2",
+ "@jest/console": "^28.1.0",
+ "@jest/types": "^28.1.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
},
@@ -10329,9 +10498,9 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/@jest/types": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.0.2.tgz",
- "integrity": "sha512-hi3jUdm9iht7I2yrV5C4s3ucCJHUP8Eh3W6rQ1s4n/Qw9rQgsda4eqCt+r3BKRi7klVmZfQlMx1nGlzNMP2d8A==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz",
+ "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==",
"dependencies": {
"@jest/schemas": "^28.0.2",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -10417,17 +10586,17 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/jest-message-util": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.0.2.tgz",
- "integrity": "sha512-knK7XyojvwYh1XiF2wmVdskgM/uN11KsjcEWWHfnMZNEdwXCrqB4sCBO94F4cfiAwCS8WFV6CDixDwPlMh/wdA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz",
+ "integrity": "sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==",
"dependencies": {
"@babel/code-frame": "^7.12.13",
- "@jest/types": "^28.0.2",
+ "@jest/types": "^28.1.0",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
- "pretty-format": "^28.0.2",
+ "pretty-format": "^28.1.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
},
@@ -10452,11 +10621,11 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/jest-util": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.0.2.tgz",
- "integrity": "sha512-EVdpIRCC8lzqhp9A0u0aAKlsFIzufK6xKxNK7awsnebTdOP4hpyQW5o6Ox2qPl8gbeUKYF+POLyItaND53kpGA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz",
+ "integrity": "sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==",
"dependencies": {
- "@jest/types": "^28.0.2",
+ "@jest/types": "^28.1.0",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
@@ -10468,17 +10637,17 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/jest-watcher": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.0.2.tgz",
- "integrity": "sha512-uIVJLpQ/5VTGQWBiBatHsi7jrCqHjHl0e0dFHMWzwuIfUbdW/muk0DtSr0fteY2T7QTFylv+7a5Rm8sBKrE12Q==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz",
+ "integrity": "sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==",
"dependencies": {
- "@jest/test-result": "^28.0.2",
- "@jest/types": "^28.0.2",
+ "@jest/test-result": "^28.1.0",
+ "@jest/types": "^28.1.0",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
"chalk": "^4.0.0",
"emittery": "^0.10.2",
- "jest-util": "^28.0.2",
+ "jest-util": "^28.1.0",
"string-length": "^4.0.1"
},
"engines": {
@@ -10509,9 +10678,9 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/pretty-format": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.0.2.tgz",
- "integrity": "sha512-UmGZ1IERwS3yY35LDMTaBUYI1w4udZDdJGGT/DqQeKG9ZLDn7/K2Jf/JtYSRiHCCKMHvUA+zsEGSmHdpaVp1yw==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz",
+ "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==",
"dependencies": {
"@jest/schemas": "^28.0.2",
"ansi-regex": "^5.0.1",
@@ -10853,9 +11022,9 @@
}
},
"node_modules/jsx-ast-utils": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz",
- "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz",
+ "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==",
"dependencies": {
"array-includes": "^3.1.4",
"object.assign": "^4.1.2"
@@ -11300,9 +11469,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
- "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -11504,12 +11673,12 @@
}
},
"node_modules/object.hasown": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
- "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
+ "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
"dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -11913,27 +12082,6 @@
"node": ">=4"
}
},
- "node_modules/portfinder": {
- "version": "1.0.28",
- "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
- "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
- "dependencies": {
- "async": "^2.6.2",
- "debug": "^3.1.1",
- "mkdirp": "^0.5.5"
- },
- "engines": {
- "node": ">= 0.12.0"
- }
- },
- "node_modules/portfinder/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
"node_modules/postcss": {
"version": "8.4.13",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz",
@@ -12786,9 +12934,9 @@
}
},
"node_modules/postcss-preset-env": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.4.tgz",
- "integrity": "sha512-MqzSEx/QsvOk562iV9mLTgIvLFEOq1os9QBQfkgnq8TW6yKhVFPGh0gdXSK5ZlmjuNQEga6/x833e86XZF/lug==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.5.0.tgz",
+ "integrity": "sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==",
"dependencies": {
"@csstools/postcss-color-function": "^1.1.0",
"@csstools/postcss-font-format-keywords": "^1.0.0",
@@ -12798,12 +12946,14 @@
"@csstools/postcss-normalize-display-values": "^1.0.0",
"@csstools/postcss-oklab-function": "^1.1.0",
"@csstools/postcss-progressive-custom-properties": "^1.3.0",
- "autoprefixer": "^10.4.5",
+ "@csstools/postcss-stepped-value-functions": "^1.0.0",
+ "@csstools/postcss-unset-value": "^1.0.0",
+ "autoprefixer": "^10.4.6",
"browserslist": "^4.20.3",
"css-blank-pseudo": "^3.0.3",
"css-has-pseudo": "^3.0.4",
"css-prefers-color-scheme": "^6.0.3",
- "cssdb": "^6.5.0",
+ "cssdb": "^6.6.1",
"postcss-attribute-case-insensitive": "^5.0.0",
"postcss-clamp": "^4.1.0",
"postcss-color-functional-notation": "^4.2.2",
@@ -12846,9 +12996,9 @@
}
},
"node_modules/postcss-pseudo-class-any-link": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz",
- "integrity": "sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.3.tgz",
+ "integrity": "sha512-I9Yp1VV2r8xFwg/JrnAlPCcKmutv6f6Ig6/CHFPqGJiDgYXM9C+0kgLfK4KOXbKNw+63QYl4agRUB0Wi9ftUIg==",
"dependencies": {
"postcss-selector-parser": "^6.0.10"
},
@@ -13018,6 +13168,21 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/pretty-bytes": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
@@ -13419,6 +13584,30 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-router": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz",
+ "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==",
+ "dependencies": {
+ "history": "^5.2.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz",
+ "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==",
+ "dependencies": {
+ "history": "^5.2.0",
+ "react-router": "6.3.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
"node_modules/react-scripts": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz",
@@ -13515,6 +13704,25 @@
"node": ">=8.10.0"
}
},
+ "node_modules/recoil": {
+ "version": "0.7.3-alpha.2",
+ "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.3-alpha.2.tgz",
+ "integrity": "sha512-8LL4T8Bh7WMA5/ka+420PCenaUFie0457kyxX7cy/gsyRlbIGYpyNkAyU0znCvtHTN2clVYkTjGF6zKJ/DzzJg==",
+ "dependencies": {
+ "hamt_plus": "1.0.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.13.1"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
"node_modules/recursive-readdir": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz",
@@ -13822,9 +14030,9 @@
}
},
"node_modules/rollup": {
- "version": "2.71.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.71.1.tgz",
- "integrity": "sha512-lMZk3XfUBGjrrZQpvPSoXcZSfKcJ2Bgn+Z0L1MoW2V8Wh7BVM+LOBJTPo16yul2MwL59cXedzW1ruq3rCjSRgw==",
+ "version": "2.72.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.72.1.tgz",
+ "integrity": "sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==",
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -14172,6 +14380,11 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
+ "node_modules/shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -14461,24 +14674,26 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -14569,6 +14784,44 @@
"webpack": "^5.0.0"
}
},
+ "node_modules/styled-components": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz",
+ "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/traverse": "^7.4.5",
+ "@emotion/is-prop-valid": "^1.1.0",
+ "@emotion/stylis": "^0.8.4",
+ "@emotion/unitless": "^0.7.4",
+ "babel-plugin-styled-components": ">= 1.12.0",
+ "css-to-react-native": "^3.0.0",
+ "hoist-non-react-statics": "^3.0.0",
+ "shallowequal": "^1.1.0",
+ "supports-color": "^5.5.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/styled-components"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0",
+ "react-dom": ">= 16.8.0",
+ "react-is": ">= 16.8.0"
+ }
+ },
+ "node_modules/styled-normalize": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmjs.org/styled-normalize/-/styled-normalize-8.0.7.tgz",
+ "integrity": "sha512-qQV4O7B9g7ZUnStCwGde7Dc/mcFF/pz0Ha/LL7+j/r6uopf6kJCmmR7jCPQMCBrDkYiQ4xvw1hUoceVJkdaMuQ==",
+ "peerDependencies": {
+ "styled-components": "^4.0.0 || ^5.0.0"
+ }
+ },
"node_modules/stylehacks": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
@@ -15131,7 +15384,6 @@
"version": "4.6.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
"integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
- "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -15483,9 +15735,9 @@
}
},
"node_modules/webpack-dev-server": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz",
- "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.0.tgz",
+ "integrity": "sha512-+Nlb39iQSOSsFv0lWUuUTim3jDQO8nhK3E68f//J2r5rIcp4lULHXz2oZ0UVdEeWXEh5lSzYUlzarZhDAeAVQw==",
"dependencies": {
"@types/bonjour": "^3.5.9",
"@types/connect-history-api-fallback": "^1.3.5",
@@ -15507,7 +15759,6 @@
"ipaddr.js": "^2.0.1",
"open": "^8.0.9",
"p-retry": "^4.5.0",
- "portfinder": "^1.0.28",
"rimraf": "^3.0.2",
"schema-utils": "^4.0.0",
"selfsigned": "^2.0.1",
@@ -15582,9 +15833,9 @@
}
},
"node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
- "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz",
+ "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==",
"engines": {
"node": ">=10.0.0"
},
@@ -17516,19 +17767,56 @@
"postcss-value-parser": "^4.2.0"
}
},
+ "@csstools/postcss-stepped-value-functions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz",
+ "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.0.tgz",
+ "integrity": "sha512-T5ZyNSw9G0x0UDFiXV40a7VjKw2b+l4G+S0sctKqxhx8cg9QtMUAGwJBVU9mHPDPoZEmwm0tEoukjl4zb9MU7Q==",
+ "requires": {}
+ },
+ "@emotion/is-prop-valid": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz",
+ "integrity": "sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==",
+ "requires": {
+ "@emotion/memoize": "^0.7.4"
+ }
+ },
+ "@emotion/memoize": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz",
+ "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
+ },
+ "@emotion/stylis": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
+ "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
+ },
+ "@emotion/unitless": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
+ "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
+ },
"@eslint/eslintrc": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz",
- "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz",
+ "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==",
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"globals": "^13.9.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
},
"dependencies": {
@@ -17538,9 +17826,9 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.14.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz",
+ "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==",
"requires": {
"type-fest": "^0.20.2"
}
@@ -18072,24 +18360,24 @@
}
},
"@jridgewell/resolve-uri": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz",
- "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw=="
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
+ "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA=="
},
"@jridgewell/set-array": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz",
- "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg=="
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz",
+ "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ=="
},
"@jridgewell/sourcemap-codec": {
- "version": "1.4.11",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz",
- "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg=="
+ "version": "1.4.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
+ "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w=="
},
"@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.10.tgz",
+ "integrity": "sha512-Q0YbBd6OTsXm8Y21+YUSDXupHnodNC2M4O18jtd3iwJ3+vMZNdKGols0a9G6JOK0dcJ3IdUUHoh908ZI6qhk8Q==",
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -18465,9 +18753,9 @@
}
},
"@testing-library/react": {
- "version": "13.1.1",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.1.1.tgz",
- "integrity": "sha512-8mirlAa0OKaUvnqnZF6MdAh2tReYA2KtWVw1PKvaF5EcCZqgK5pl8iF+3uW90JdG5Ua2c2c2E2wtLdaug3dsVg==",
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.2.0.tgz",
+ "integrity": "sha512-Bprbz/SZVONCJy5f7hcihNCv313IJXdYiv0nSJklIs1SQCIHHNlnGNkosSXnGZTmesyGIcBGNppYhXcc11pb7g==",
"requires": {
"@babel/runtime": "^7.12.5",
"@testing-library/dom": "^8.5.0",
@@ -18620,15 +18908,24 @@
"@types/node": "*"
}
},
+ "@types/hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
+ "requires": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
"@types/html-minifier-terser": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
"integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
},
"@types/http-proxy": {
- "version": "1.17.8",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz",
- "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==",
+ "version": "1.17.9",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
+ "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
"requires": {
"@types/node": "*"
}
@@ -18655,9 +18952,9 @@
}
},
"@types/jest": {
- "version": "27.4.1",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz",
- "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.1.tgz",
+ "integrity": "sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==",
"requires": {
"jest-matcher-utils": "^27.0.0",
"pretty-format": "^27.0.0"
@@ -18679,9 +18976,9 @@
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
},
"@types/node": {
- "version": "17.0.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz",
- "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw=="
+ "version": "17.0.33",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz",
+ "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ=="
},
"@types/parse-json": {
"version": "4.0.0",
@@ -18714,9 +19011,9 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"@types/react": {
- "version": "18.0.8",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.8.tgz",
- "integrity": "sha512-+j2hk9BzCOrrOSJASi5XiOyBbERk9jG5O73Ya4M0env5Ixi6vUNli4qy994AINcEF+1IEHISYFfIT4zwr++LKw==",
+ "version": "18.0.9",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
+ "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -18724,9 +19021,9 @@
}
},
"@types/react-dom": {
- "version": "18.0.3",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.3.tgz",
- "integrity": "sha512-1RRW9kst+67gveJRYPxGmVy8eVJ05O43hg77G2j5m76/RFJtMbcfAs2viQ2UNsvvDg8F7OfQZx8qQcl6ymygaQ==",
+ "version": "18.0.4",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.4.tgz",
+ "integrity": "sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==",
"requires": {
"@types/react": "*"
}
@@ -18779,6 +19076,16 @@
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
+ "@types/styled-components": {
+ "version": "5.1.25",
+ "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.25.tgz",
+ "integrity": "sha512-fgwl+0Pa8pdkwXRoVPP9JbqF0Ivo9llnmsm+7TCI330kbPIFd9qv1Lrhr37shf4tnxCOSu+/IgqM7uJXLWZZNQ==",
+ "requires": {
+ "@types/hoist-non-react-statics": "*",
+ "@types/react": "*",
+ "csstype": "^3.0.2"
+ }
+ },
"@types/testing-library__jest-dom": {
"version": "5.14.3",
"resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz",
@@ -18814,13 +19121,13 @@
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz",
- "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz",
+ "integrity": "sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==",
"requires": {
- "@typescript-eslint/scope-manager": "5.21.0",
- "@typescript-eslint/type-utils": "5.21.0",
- "@typescript-eslint/utils": "5.21.0",
+ "@typescript-eslint/scope-manager": "5.22.0",
+ "@typescript-eslint/type-utils": "5.22.0",
+ "@typescript-eslint/utils": "5.22.0",
"debug": "^4.3.2",
"functional-red-black-tree": "^1.0.1",
"ignore": "^5.1.8",
@@ -18830,55 +19137,55 @@
}
},
"@typescript-eslint/experimental-utils": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.21.0.tgz",
- "integrity": "sha512-mzF6ert/6iQoESV0z9v5/mEaJRKL4fv68rHoZ6exM38xjxkw4MNx54B7ferrnMTM/GIRKLDaJ3JPRi+Dxa5Hlg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.22.0.tgz",
+ "integrity": "sha512-rKxoCUtAHwEH6IcAoVpqipY6Th+YKW7WFspAKu0IFdbdKZpveFBeqxxE9Xn+GWikhq1o03V3VXbxIe+GdhggiQ==",
"requires": {
- "@typescript-eslint/utils": "5.21.0"
+ "@typescript-eslint/utils": "5.22.0"
}
},
"@typescript-eslint/parser": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz",
- "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz",
+ "integrity": "sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==",
"requires": {
- "@typescript-eslint/scope-manager": "5.21.0",
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/typescript-estree": "5.21.0",
+ "@typescript-eslint/scope-manager": "5.22.0",
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/typescript-estree": "5.22.0",
"debug": "^4.3.2"
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz",
- "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz",
+ "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==",
"requires": {
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/visitor-keys": "5.21.0"
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/visitor-keys": "5.22.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz",
- "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz",
+ "integrity": "sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==",
"requires": {
- "@typescript-eslint/utils": "5.21.0",
+ "@typescript-eslint/utils": "5.22.0",
"debug": "^4.3.2",
"tsutils": "^3.21.0"
}
},
"@typescript-eslint/types": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz",
- "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA=="
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz",
+ "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw=="
},
"@typescript-eslint/typescript-estree": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz",
- "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz",
+ "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==",
"requires": {
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/visitor-keys": "5.21.0",
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/visitor-keys": "5.22.0",
"debug": "^4.3.2",
"globby": "^11.0.4",
"is-glob": "^4.0.3",
@@ -18887,14 +19194,14 @@
}
},
"@typescript-eslint/utils": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz",
- "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.22.0.tgz",
+ "integrity": "sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==",
"requires": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.21.0",
- "@typescript-eslint/types": "5.21.0",
- "@typescript-eslint/typescript-estree": "5.21.0",
+ "@typescript-eslint/scope-manager": "5.22.0",
+ "@typescript-eslint/types": "5.22.0",
+ "@typescript-eslint/typescript-estree": "5.22.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -18916,11 +19223,11 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz",
- "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==",
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz",
+ "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==",
"requires": {
- "@typescript-eslint/types": "5.21.0",
+ "@typescript-eslint/types": "5.22.0",
"eslint-visitor-keys": "^3.0.0"
}
},
@@ -19262,13 +19569,13 @@
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
},
"array-includes": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
- "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
+ "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"is-string": "^1.0.7"
}
@@ -19311,12 +19618,9 @@
"integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
},
"async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "requires": {
- "lodash": "^4.17.14"
- }
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
+ "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
},
"asynckit": {
"version": "0.4.0",
@@ -19334,12 +19638,12 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"autoprefixer": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz",
- "integrity": "sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==",
+ "version": "10.4.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz",
+ "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==",
"requires": {
- "browserslist": "^4.20.2",
- "caniuse-lite": "^1.0.30001332",
+ "browserslist": "^4.20.3",
+ "caniuse-lite": "^1.0.30001335",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -19520,6 +19824,23 @@
"@babel/helper-define-polyfill-provider": "^0.3.1"
}
},
+ "babel-plugin-styled-components": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz",
+ "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-module-imports": "^7.16.0",
+ "babel-plugin-syntax-jsx": "^6.18.0",
+ "lodash": "^4.17.11",
+ "picomatch": "^2.3.0"
+ }
+ },
+ "babel-plugin-syntax-jsx": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
+ },
"babel-plugin-transform-react-remove-prop-types": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
@@ -19765,6 +20086,11 @@
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
},
+ "camelize": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
+ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
+ },
"caniuse-api": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
@@ -19777,9 +20103,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001334",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz",
- "integrity": "sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw=="
+ "version": "1.0.30001338",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz",
+ "integrity": "sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ=="
},
"case-sensitive-paths-webpack-plugin": {
"version": "2.4.0",
@@ -20038,14 +20364,14 @@
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-js": {
- "version": "3.22.3",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz",
- "integrity": "sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg=="
+ "version": "3.22.4",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.4.tgz",
+ "integrity": "sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w=="
},
"core-js-compat": {
- "version": "3.22.3",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.3.tgz",
- "integrity": "sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw==",
+ "version": "3.22.4",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.4.tgz",
+ "integrity": "sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==",
"requires": {
"browserslist": "^4.20.3",
"semver": "7.0.0"
@@ -20059,9 +20385,9 @@
}
},
"core-js-pure": {
- "version": "3.22.3",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.3.tgz",
- "integrity": "sha512-oN88zz7nmKROMy8GOjs+LN+0LedIvbMdnB5XsTlhcOg1WGARt9l0LFg0zohdoFmCsEZ1h2ZbSQ6azj3M+vhzwQ=="
+ "version": "3.22.4",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.4.tgz",
+ "integrity": "sha512-4iF+QZkpzIz0prAFuepmxwJ2h5t4agvE8WPYqs2mjLJMNNwJOnpch76w2Q7bUfCPEv/V7wpvOfog0w273M+ZSw=="
},
"core-util-is": {
"version": "1.0.3",
@@ -20120,6 +20446,11 @@
"postcss-selector-parser": "^6.0.9"
}
},
+ "css-color-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
+ "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU="
+ },
"css-declaration-sorter": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz",
@@ -20227,6 +20558,16 @@
"resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
"integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="
},
+ "css-to-react-native": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz",
+ "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==",
+ "requires": {
+ "camelize": "^1.0.0",
+ "css-color-keywords": "^1.0.0",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
"css-tree": {
"version": "1.0.0-alpha.37",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
@@ -20254,9 +20595,9 @@
"integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s="
},
"cssdb": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz",
- "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA=="
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.1.tgz",
+ "integrity": "sha512-0/nZEYfp8SFEzJkMud8NxZJsGfD7RHDJti6GRBLZptIwAzco6RTx1KgwFl4mGWsYS0ZNbCrsY9QryhQ4ldF3Mg=="
},
"cssesc": {
"version": "3.0.0",
@@ -20646,9 +20987,9 @@
}
},
"electron-to-chromium": {
- "version": "1.4.129",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz",
- "integrity": "sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ=="
+ "version": "1.4.137",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz",
+ "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA=="
},
"emittery": {
"version": "0.8.1",
@@ -20701,16 +21042,18 @@
}
},
"es-abstract": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz",
- "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.0.tgz",
+ "integrity": "sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==",
"requires": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
@@ -20722,9 +21065,10 @@
"object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
+ "regexp.prototype.flags": "^1.4.1",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
}
},
"es-module-lexer": {
@@ -20821,11 +21165,11 @@
}
},
"eslint": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz",
- "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==",
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz",
+ "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==",
"requires": {
- "@eslint/eslintrc": "^1.2.2",
+ "@eslint/eslintrc": "^1.2.3",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
@@ -20836,7 +21180,7 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -20852,7 +21196,7 @@
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
"regexpp": "^3.2.0",
@@ -20903,9 +21247,9 @@
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
"globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.14.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz",
+ "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==",
"requires": {
"type-fest": "^0.20.2"
}
@@ -21171,9 +21515,9 @@
"requires": {}
},
"eslint-plugin-testing-library": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.3.1.tgz",
- "integrity": "sha512-OfF4dlG/q6ck6DL3P8Z0FPdK0dU5K57gsBu7eUcaVbwYKaNzjgejnXiM9CCUevppORkvfek+9D3Uj/9ZZ8Vz8g==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.4.0.tgz",
+ "integrity": "sha512-XjxIf4g33KaZXxRNbR33+0WcRQ/zt8N0R58IY6/kkHnrY6zPsC1gs3u5cTZr5eUmCZN/sjoPak3uF5vHGKg2wg==",
"requires": {
"@typescript-eslint/utils": "^5.13.0"
}
@@ -21220,12 +21564,12 @@
}
},
"espree": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
- "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
+ "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
"requires": {
- "acorn": "^8.7.0",
- "acorn-jsx": "^5.3.1",
+ "acorn": "^8.7.1",
+ "acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.3.0"
}
},
@@ -21555,9 +21899,9 @@
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="
},
"follow-redirects": {
- "version": "1.14.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
- "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz",
+ "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ=="
},
"fork-ts-checker-webpack-plugin": {
"version": "6.5.2",
@@ -21718,6 +22062,17 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
"functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
@@ -21857,6 +22212,11 @@
"duplexer": "^0.1.2"
}
},
+ "hamt_plus": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz",
+ "integrity": "sha1-4hwlKWjH4zsg9qGwlM2FeHomVgE="
+ },
"handle-thing": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
@@ -21911,6 +22271,29 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
+ "history": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
+ "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==",
+ "requires": {
+ "@babel/runtime": "^7.7.6"
+ }
+ },
+ "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",
@@ -22470,11 +22853,6 @@
"color-convert": "^2.0.1"
}
},
- "async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
- },
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -23564,15 +23942,15 @@
},
"dependencies": {
"@jest/console": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.0.2.tgz",
- "integrity": "sha512-tiRpnMeeyQuuzgL5UNSeiqMwF8UOWPbAE5rzcu/1zyq4oPG2Ox6xm4YCOruwbp10F8odWc+XwVxTyGzMSLMqxA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz",
+ "integrity": "sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==",
"requires": {
- "@jest/types": "^28.0.2",
+ "@jest/types": "^28.1.0",
"@types/node": "*",
"chalk": "^4.0.0",
- "jest-message-util": "^28.0.2",
- "jest-util": "^28.0.2",
+ "jest-message-util": "^28.1.0",
+ "jest-util": "^28.1.0",
"slash": "^3.0.0"
},
"dependencies": {
@@ -23584,20 +23962,20 @@
}
},
"@jest/test-result": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.0.2.tgz",
- "integrity": "sha512-4EUqgjq9VzyUiVTvZfI9IRJD6t3NYBNP4f+Eq8Zr93+hkJ0RrGU4OBTw8tfNzidKX+bmuYzn8FxqpxOPIGGCMA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz",
+ "integrity": "sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==",
"requires": {
- "@jest/console": "^28.0.2",
- "@jest/types": "^28.0.2",
+ "@jest/console": "^28.1.0",
+ "@jest/types": "^28.1.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
}
},
"@jest/types": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.0.2.tgz",
- "integrity": "sha512-hi3jUdm9iht7I2yrV5C4s3ucCJHUP8Eh3W6rQ1s4n/Qw9rQgsda4eqCt+r3BKRi7klVmZfQlMx1nGlzNMP2d8A==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz",
+ "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==",
"requires": {
"@jest/schemas": "^28.0.2",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -23656,17 +24034,17 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"jest-message-util": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.0.2.tgz",
- "integrity": "sha512-knK7XyojvwYh1XiF2wmVdskgM/uN11KsjcEWWHfnMZNEdwXCrqB4sCBO94F4cfiAwCS8WFV6CDixDwPlMh/wdA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz",
+ "integrity": "sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==",
"requires": {
"@babel/code-frame": "^7.12.13",
- "@jest/types": "^28.0.2",
+ "@jest/types": "^28.1.0",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
- "pretty-format": "^28.0.2",
+ "pretty-format": "^28.1.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
},
@@ -23684,11 +24062,11 @@
"integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw=="
},
"jest-util": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.0.2.tgz",
- "integrity": "sha512-EVdpIRCC8lzqhp9A0u0aAKlsFIzufK6xKxNK7awsnebTdOP4hpyQW5o6Ox2qPl8gbeUKYF+POLyItaND53kpGA==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz",
+ "integrity": "sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==",
"requires": {
- "@jest/types": "^28.0.2",
+ "@jest/types": "^28.1.0",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
@@ -23697,17 +24075,17 @@
}
},
"jest-watcher": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.0.2.tgz",
- "integrity": "sha512-uIVJLpQ/5VTGQWBiBatHsi7jrCqHjHl0e0dFHMWzwuIfUbdW/muk0DtSr0fteY2T7QTFylv+7a5Rm8sBKrE12Q==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz",
+ "integrity": "sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==",
"requires": {
- "@jest/test-result": "^28.0.2",
- "@jest/types": "^28.0.2",
+ "@jest/test-result": "^28.1.0",
+ "@jest/types": "^28.1.0",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
"chalk": "^4.0.0",
"emittery": "^0.10.2",
- "jest-util": "^28.0.2",
+ "jest-util": "^28.1.0",
"string-length": "^4.0.1"
},
"dependencies": {
@@ -23731,9 +24109,9 @@
}
},
"pretty-format": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.0.2.tgz",
- "integrity": "sha512-UmGZ1IERwS3yY35LDMTaBUYI1w4udZDdJGGT/DqQeKG9ZLDn7/K2Jf/JtYSRiHCCKMHvUA+zsEGSmHdpaVp1yw==",
+ "version": "28.1.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz",
+ "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==",
"requires": {
"@jest/schemas": "^28.0.2",
"ansi-regex": "^5.0.1",
@@ -23981,9 +24359,9 @@
"integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg=="
},
"jsx-ast-utils": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz",
- "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz",
+ "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==",
"requires": {
"array-includes": "^3.1.4",
"object.assign": "^4.1.2"
@@ -24315,9 +24693,9 @@
}
},
"nanoid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
- "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w=="
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
},
"natural-compare": {
"version": "1.4.0",
@@ -24456,12 +24834,12 @@
}
},
"object.hasown": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
- "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
+ "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"object.values": {
@@ -24749,26 +25127,6 @@
}
}
},
- "portfinder": {
- "version": "1.0.28",
- "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
- "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
- "requires": {
- "async": "^2.6.2",
- "debug": "^3.1.1",
- "mkdirp": "^0.5.5"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
- },
"postcss": {
"version": "8.4.13",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz",
@@ -25241,9 +25599,9 @@
}
},
"postcss-preset-env": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.4.tgz",
- "integrity": "sha512-MqzSEx/QsvOk562iV9mLTgIvLFEOq1os9QBQfkgnq8TW6yKhVFPGh0gdXSK5ZlmjuNQEga6/x833e86XZF/lug==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.5.0.tgz",
+ "integrity": "sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==",
"requires": {
"@csstools/postcss-color-function": "^1.1.0",
"@csstools/postcss-font-format-keywords": "^1.0.0",
@@ -25253,12 +25611,14 @@
"@csstools/postcss-normalize-display-values": "^1.0.0",
"@csstools/postcss-oklab-function": "^1.1.0",
"@csstools/postcss-progressive-custom-properties": "^1.3.0",
- "autoprefixer": "^10.4.5",
+ "@csstools/postcss-stepped-value-functions": "^1.0.0",
+ "@csstools/postcss-unset-value": "^1.0.0",
+ "autoprefixer": "^10.4.6",
"browserslist": "^4.20.3",
"css-blank-pseudo": "^3.0.3",
"css-has-pseudo": "^3.0.4",
"css-prefers-color-scheme": "^6.0.3",
- "cssdb": "^6.5.0",
+ "cssdb": "^6.6.1",
"postcss-attribute-case-insensitive": "^5.0.0",
"postcss-clamp": "^4.1.0",
"postcss-color-functional-notation": "^4.2.2",
@@ -25291,9 +25651,9 @@
}
},
"postcss-pseudo-class-any-link": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz",
- "integrity": "sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.3.tgz",
+ "integrity": "sha512-I9Yp1VV2r8xFwg/JrnAlPCcKmutv6f6Ig6/CHFPqGJiDgYXM9C+0kgLfK4KOXbKNw+63QYl4agRUB0Wi9ftUIg==",
"requires": {
"postcss-selector-parser": "^6.0.10"
}
@@ -25405,6 +25765,12 @@
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
+ "prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true
+ },
"pretty-bytes": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
@@ -25702,6 +26068,23 @@
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz",
"integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A=="
},
+ "react-router": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz",
+ "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==",
+ "requires": {
+ "history": "^5.2.0"
+ }
+ },
+ "react-router-dom": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz",
+ "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==",
+ "requires": {
+ "history": "^5.2.0",
+ "react-router": "6.3.0"
+ }
+ },
"react-scripts": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz",
@@ -25775,6 +26158,14 @@
"picomatch": "^2.2.1"
}
},
+ "recoil": {
+ "version": "0.7.3-alpha.2",
+ "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.3-alpha.2.tgz",
+ "integrity": "sha512-8LL4T8Bh7WMA5/ka+420PCenaUFie0457kyxX7cy/gsyRlbIGYpyNkAyU0znCvtHTN2clVYkTjGF6zKJ/DzzJg==",
+ "requires": {
+ "hamt_plus": "1.0.2"
+ }
+ },
"recursive-readdir": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz",
@@ -25993,9 +26384,9 @@
}
},
"rollup": {
- "version": "2.71.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.71.1.tgz",
- "integrity": "sha512-lMZk3XfUBGjrrZQpvPSoXcZSfKcJ2Bgn+Z0L1MoW2V8Wh7BVM+LOBJTPo16yul2MwL59cXedzW1ruq3rCjSRgw==",
+ "version": "2.72.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.72.1.tgz",
+ "integrity": "sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==",
"requires": {
"fsevents": "~2.3.2"
}
@@ -26254,6 +26645,11 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
+ "shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -26484,21 +26880,23 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"stringify-object": {
@@ -26553,6 +26951,29 @@
"integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==",
"requires": {}
},
+ "styled-components": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz",
+ "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/traverse": "^7.4.5",
+ "@emotion/is-prop-valid": "^1.1.0",
+ "@emotion/stylis": "^0.8.4",
+ "@emotion/unitless": "^0.7.4",
+ "babel-plugin-styled-components": ">= 1.12.0",
+ "css-to-react-native": "^3.0.0",
+ "hoist-non-react-statics": "^3.0.0",
+ "shallowequal": "^1.1.0",
+ "supports-color": "^5.5.0"
+ }
+ },
+ "styled-normalize": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmjs.org/styled-normalize/-/styled-normalize-8.0.7.tgz",
+ "integrity": "sha512-qQV4O7B9g7ZUnStCwGde7Dc/mcFF/pz0Ha/LL7+j/r6uopf6kJCmmR7jCPQMCBrDkYiQ4xvw1hUoceVJkdaMuQ==",
+ "requires": {}
+ },
"stylehacks": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
@@ -26982,8 +27403,7 @@
"typescript": {
"version": "4.6.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
- "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
- "peer": true
+ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg=="
},
"unbox-primitive": {
"version": "1.0.2",
@@ -27255,9 +27675,9 @@
}
},
"webpack-dev-server": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz",
- "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.0.tgz",
+ "integrity": "sha512-+Nlb39iQSOSsFv0lWUuUTim3jDQO8nhK3E68f//J2r5rIcp4lULHXz2oZ0UVdEeWXEh5lSzYUlzarZhDAeAVQw==",
"requires": {
"@types/bonjour": "^3.5.9",
"@types/connect-history-api-fallback": "^1.3.5",
@@ -27279,7 +27699,6 @@
"ipaddr.js": "^2.0.1",
"open": "^8.0.9",
"p-retry": "^4.5.0",
- "portfinder": "^1.0.28",
"rimraf": "^3.0.2",
"schema-utils": "^4.0.0",
"selfsigned": "^2.0.1",
@@ -27326,9 +27745,9 @@
}
},
"ws": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
- "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz",
+ "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==",
"requires": {}
}
}
diff --git a/package.json b/package.json
index 7f031bc..c7a9e28 100644
--- a/package.json
+++ b/package.json
@@ -1,14 +1,24 @@
{
- "name": "react-messenger-15th",
+ "name": "front",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.16.4",
- "@testing-library/react": "^13.1.1",
+ "@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
+ "@types/jest": "^27.5.1",
+ "@types/node": "^17.0.33",
+ "@types/react": "^18.0.9",
+ "@types/react-dom": "^18.0.4",
+ "@types/styled-components": "^5.1.25",
"react": "^18.1.0",
"react-dom": "^18.1.0",
+ "react-router-dom": "^6.3.0",
"react-scripts": "5.0.1",
+ "recoil": "^0.7.3-alpha.2",
+ "styled-components": "^5.3.5",
+ "styled-normalize": "^8.0.7",
+ "typescript": "^4.6.4",
"web-vitals": "^2.1.4"
},
"scripts": {
@@ -34,5 +44,8 @@
"last 1 firefox version",
"last 1 safari version"
]
+ },
+ "devDependencies": {
+ "prettier": "^2.6.2"
}
}
diff --git a/public/calendar.png b/public/calendar.png
new file mode 100644
index 0000000..e584969
Binary files /dev/null and b/public/calendar.png differ
diff --git a/public/chat.png b/public/chat.png
new file mode 100644
index 0000000..174cdd0
Binary files /dev/null and b/public/chat.png differ
diff --git a/public/chat_black.png b/public/chat_black.png
new file mode 100644
index 0000000..054c4d3
Binary files /dev/null and b/public/chat_black.png differ
diff --git a/public/fix.png b/public/fix.png
new file mode 100644
index 0000000..fbd080b
Binary files /dev/null and b/public/fix.png differ
diff --git a/public/giftbox.png b/public/giftbox.png
new file mode 100644
index 0000000..16e7224
Binary files /dev/null and b/public/giftbox.png differ
diff --git a/public/glass.png b/public/glass.png
new file mode 100644
index 0000000..5d933b7
Binary files /dev/null and b/public/glass.png differ
diff --git a/public/home.png b/public/home.png
new file mode 100644
index 0000000..95eae8b
Binary files /dev/null and b/public/home.png differ
diff --git a/public/home_black.png b/public/home_black.png
new file mode 100644
index 0000000..ae9eec2
Binary files /dev/null and b/public/home_black.png differ
diff --git a/public/icon.png b/public/icon.png
new file mode 100644
index 0000000..70b5f62
Binary files /dev/null and b/public/icon.png differ
diff --git a/public/index.html b/public/index.html
index a0b8d37..dbe8288 100644
--- a/public/index.html
+++ b/public/index.html
@@ -10,8 +10,13 @@
content="Web site created using create-react-app"
/>
+
-
React App
+
+ siwonblue
diff --git a/public/logo192.png b/public/logo192.png
deleted file mode 100644
index fc44b0a..0000000
Binary files a/public/logo192.png and /dev/null differ
diff --git a/public/logo512.png b/public/logo512.png
deleted file mode 100644
index a4e47a6..0000000
Binary files a/public/logo512.png and /dev/null differ
diff --git a/public/settings.png b/public/settings.png
new file mode 100644
index 0000000..f31d364
Binary files /dev/null and b/public/settings.png differ
diff --git a/public/settings_black.png b/public/settings_black.png
new file mode 100644
index 0000000..647bbaf
Binary files /dev/null and b/public/settings_black.png differ
diff --git a/public/shopping.png b/public/shopping.png
new file mode 100644
index 0000000..97d38f1
Binary files /dev/null and b/public/shopping.png differ
diff --git a/public/speech-bubble.png b/public/speech-bubble.png
new file mode 100644
index 0000000..9854a3e
Binary files /dev/null and b/public/speech-bubble.png differ
diff --git a/public/user.png b/public/user.png
new file mode 100644
index 0000000..7bb798d
Binary files /dev/null and b/public/user.png differ
diff --git a/public/wallet.png b/public/wallet.png
new file mode 100644
index 0000000..b6a8905
Binary files /dev/null and b/public/wallet.png differ
diff --git a/src/App.js b/src/App.js
deleted file mode 100644
index 772afaf..0000000
--- a/src/App.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function App() {
- return 15๊ธฐ ํ์ดํ
๐
;
-}
-
-export default App;
diff --git a/src/App.tsx b/src/App.tsx
new file mode 100644
index 0000000..eafde47
--- /dev/null
+++ b/src/App.tsx
@@ -0,0 +1,19 @@
+import { BrowserRouter, Route, Routes } from 'react-router-dom';
+import Home from './pages/Home';
+import Rooms from './pages/Rooms';
+import General from './pages/General';
+
+
+function App() {
+ return (
+
+
+ } />
+ } />
+ } />
+
+
+ );
+}
+
+export default App;
diff --git a/src/components/ChatModal.tsx b/src/components/ChatModal.tsx
new file mode 100644
index 0000000..af841e6
--- /dev/null
+++ b/src/components/ChatModal.tsx
@@ -0,0 +1,32 @@
+import styled from 'styled-components';
+import { useRecoilState } from 'recoil';
+import { chatModalToggleState } from '../store/recoil';
+
+function ChatModal() {
+ const [chatModalToggle, setChatModalToggle] =
+ useRecoilState(chatModalToggleState);
+ const onToggleChatModal = () => setChatModalToggle((prev) => !prev);
+ return (
+
+
+
์ผ๋ฐ์ฑํ
+
์คํ์ฑํ
+
+ โ
+
+ );
+}
+
+const Container = styled.div`
+ position: absolute;
+ right: 10px;
+ padding: 10px;
+ width: 70px;
+ height: 50px;
+ color: #e7e7e7;
+ background-color: #302f30;
+`;
+
+const Btn = styled.button``;
+
+export default ChatModal;
diff --git a/src/components/ChatRoom.tsx b/src/components/ChatRoom.tsx
new file mode 100644
index 0000000..5120fda
--- /dev/null
+++ b/src/components/ChatRoom.tsx
@@ -0,0 +1,242 @@
+import styled from 'styled-components';
+import { useCallback, useEffect, useRef, useState } from 'react';
+import {IMsgs} from '../interfaces/data';
+import { useRecoilState } from 'recoil';
+import { chatRoomToggleState, userClicked } from '../store/recoil';
+import { Message, userInfo } from '../store/recoil/data';
+import MessageBox from './MessageBox';
+
+function ChatRoom() {
+ const [text, setText] = useState('');
+ const [prevUser, setPrevUser] = useState('');
+ const [roomId, setRoomId] = useState(0);
+ const scrollRef = useRef(null);
+ const onChangeTextArea =
+ (e: React.ChangeEvent):void => {
+ setText(e.target.value);
+ }
+
+ const [chatRoomToggle, setChatRoomToggle] =
+ useRecoilState(chatRoomToggleState);
+ const [currentUser, setCurrentUser] = useRecoilState(userClicked);
+ const [chat, setChat] = useRecoilState(Message);
+ const ToggleChatRoom = useCallback(() => {
+ setChatRoomToggle((prev) => !prev);
+ }, []);
+ const scrollToBottom = () => {
+ if (scrollRef.current) {
+ scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
+ }
+ };
+
+ const [user, setUser] = useRecoilState(userInfo);
+
+ const [url, setUrl] = useState('');
+ const toggleImg = () => {
+ const [url] = user.filter((u) => u.userName === currentUser);
+ setUrl(url.profileImg);
+ };
+ useEffect(() => {
+ toggleImg();
+ }, [currentUser]);
+
+ const pickUser = (name:string| undefined): ( number | undefined) => {
+ switch (name) {
+ case '์นจ์ฐฉ๋งจbde':
+ return 0;
+ case '์ฃผํธ๋ฏผqwt':
+ return 1;
+ case '๊นํzxcv':
+ return 2;
+ case 'ํ์์จliup':
+ return 3;
+ case '์๋ง์ฝqwejrl':
+ return 4;
+ default:
+ return 0;
+ }
+ };
+ useEffect(() => {
+ // @ts-ignore
+ setRoomId(pickUser(currentUser));
+ }, []);
+ const onClickImage = () => {
+ if (currentUser !== '์ ์์') {
+ setPrevUser(currentUser);
+ setCurrentUser('์ ์์');
+ } else {
+ setCurrentUser(prevUser);
+ }
+ };
+
+ // when press 'enter', then submit form
+ // when press 'shift+enter', then change line
+ const onKeyUp = (e:React.KeyboardEvent) => {
+ if (e.keyCode === 13) {
+ if (!e.shiftKey) {
+ e.preventDefault();
+ const date =
+ String(new Date().getHours()).padStart(2, '0') +
+ ':' +
+ String(new Date().getMinutes()).padStart(2, '0');
+ if (text === '\n') {
+ return setText('');
+ }
+ const obj = {
+ userName: currentUser,
+ contents: text,
+ date,
+ };
+
+ const [room] = chat.filter((room) => room.roomId === roomId);
+ const newRoom = { ...room, msgs: [...room.msgs, obj] };
+
+ // @ts-ignore
+ setChat(chat.map(( room) => (room.roomId === roomId ? newRoom : room)));
+
+ setText('');
+ }
+ }
+ };
+ useEffect(() => {
+ scrollToBottom();
+ }, [chat]);
+
+ // @ts-ignore
+ // @ts-ignore
+ // @ts-ignore
+ // @ts-ignore
+ return (
+
+
+
+ X
+
+
+
+
+
+
+
+
+ {chat[roomId]?.msgs.map(( m : IMsgs , i:number) => {
+ return ;
+ })}
+
+
+
+
+
+ ์ ์ก
+
+
+
+ );
+}
+
+const Container = styled.div`
+ position: absolute;
+ bottom: 50px;
+ left: 75px;
+ width: 300px;
+ height: 350px;
+ background: gray;
+ display: grid;
+ grid-template-rows: 70px 210px 70px;
+ border-radius: 10px;
+`;
+
+const ChatRoomHeader = styled.div`
+ background: #2e2e2e;
+ border-top-right-radius: 10px;
+ border-top-left-radius: 10px;
+`;
+const Btn = styled.button`
+ background: #2d2d2d;
+ border: 1px solid #373737;
+ color: #6b6b6b;
+ border-radius: 5px;
+`;
+
+const UserImg = styled.div`
+ display: flex;
+ justify-content: center;
+`;
+const Img = styled.img`
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+`;
+
+const ChatContents = styled.div`
+ overflow: scroll;
+ height: 100%;
+ padding: 5px;
+ background: #191919;
+`;
+const ChatForm = styled.form`
+ display: grid;
+ grid-template-columns: 7fr 3fr;
+ height: 100%;
+`;
+const ChatTextArea = styled.textarea`
+ width: 100%;
+ background: #262626;
+ border: none;
+ color: white;
+ resize: none;
+ &:focus {
+ outline: none;
+ }
+`;
+
+const FormWrapper = styled.div`
+ padding: 5px;
+ background: #262626;
+ border: 1px solid #404040;
+ border-bottom-left-radius: 10px;
+ border-bottom-right-radius: 10px;
+`;
+
+const CircleWrapper = styled.div`
+ display: flex;
+ padding: 5px;
+`;
+
+export const Cir1 = styled.div`
+ cursor: pointer;
+ width: 15px;
+ height: 15px;
+ background: indianred;
+ border: 1px solid indianred;
+ border-radius: 50%;
+ margin-right: 5px;
+ color: black;
+ font-size: 10px;
+ text-align: center;
+`;
+
+export const Cir2 = styled.div`
+ width: 15px;
+ height: 15px;
+ background: yellow;
+ border: 1px solid yellow;
+ border-radius: 50%;
+ margin-right: 5px;
+`;
+
+export const Cir3 = styled.div`
+ width: 15px;
+ height: 15px;
+ background: green;
+ border: 1px solid green;
+ border-radius: 50%;
+ margin-right: 5px;
+`;
+
+export default ChatRoom;
diff --git a/src/components/Header2.tsx b/src/components/Header2.tsx
new file mode 100644
index 0000000..6e32b47
--- /dev/null
+++ b/src/components/Header2.tsx
@@ -0,0 +1,101 @@
+import styled from 'styled-components';
+import { useLocation } from 'react-router-dom';
+import { useEffect, useState } from 'react';
+import { useRecoilState } from 'recoil';
+import {
+ chatModalToggleState,
+ searchToggleState,
+ pathInfo,
+} from '../store/recoil';
+function Header() {
+ const [urlPath, setUrlPath] = useRecoilState(pathInfo);
+ const [searchToggle, setSearchToggle] = useRecoilState(searchToggleState);
+
+ const [chatModalToggle, setChatModalToggle] =
+ useRecoilState(chatModalToggleState);
+
+ const onToggleSearch = () => setSearchToggle((prev) => !prev);
+
+ const onToggleChatModal = () => setChatModalToggle((prev) => !prev);
+ const location = useLocation();
+
+ useEffect(() => {
+ setUrlPath(location.pathname.slice(1));
+ }, [location]);
+ return (
+
+
+ {urlPath === '' && ์น๊ตฌ
}
+ {urlPath === 'rooms' && ์ฑํ
}
+ {urlPath === 'general' && ๋๋ณด๊ธฐ
}
+
+
+ {urlPath === '' && (
+
+
+
+ )}
+ {urlPath === 'rooms' && (
+
+
+
+ )}
+ {urlPath === 'general' && null}
+
+
+ );
+}
+const IconWrapper = styled.div`
+ display: flex;
+
+ padding: 5px;
+`;
+
+const Glass = styled.img`
+ width: 30px;
+ height: 30px;
+ margin-right: 15px;
+ cursor: pointer;
+ color: white;
+ &:hover {
+ background: antiquewhite;
+ border-radius: 50%;
+ padding: 5px;
+ }
+`;
+const Speech = styled.img`
+ width: 30px;
+ height: 30px;
+ cursor: pointer;
+ &:hover {
+ background: antiquewhite;
+ border-radius: 50%;
+ padding: 5px;
+ }
+`;
+
+const RigthContents = styled.div`
+ display: flex;
+`;
+const LeftContents = styled.div`
+ display: flex;
+`;
+
+const Div = styled.div`
+ color: white;
+ font-weight: 800;
+ font-size: 20px;
+ padding: 5px 0 0 15px;
+`;
+
+const Container = styled.div`
+ display: flex;
+ width: 100%;
+ height: 40px;
+ justify-content: space-between;
+ border-bottom: 2px solid #404040;
+ background: #262626;
+ border-top-right-radius: 10px;
+`;
+
+export default Header;
diff --git a/src/components/Main.tsx b/src/components/Main.tsx
new file mode 100644
index 0000000..52984f5
--- /dev/null
+++ b/src/components/Main.tsx
@@ -0,0 +1,23 @@
+import styled from 'styled-components';
+import {FC} from 'react';
+
+type Props = {
+ children: React.ReactNode;
+};
+
+const Main:FC = ({ children }) => {
+ return {children};
+}
+
+const Container = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ overflow: scroll;
+ height: 505px;
+ padding: 50px 15px;
+ background: #262626;
+ border-bottom-right-radius: 12px;
+`;
+
+export default Main;
diff --git a/src/components/MessageBox.tsx b/src/components/MessageBox.tsx
new file mode 100644
index 0000000..b9db958
--- /dev/null
+++ b/src/components/MessageBox.tsx
@@ -0,0 +1,106 @@
+import styled, { css } from 'styled-components';
+
+import { Message, userInfo } from '../store/recoil/data';
+import { useRecoilState } from 'recoil';
+import { userClicked } from '../store/recoil';
+import { useEffect, useState } from 'react';
+import { IMsgs } from '../interfaces/data';
+
+// @ts-ignore
+function MessageBox({ message }) {
+ const [user, setUser] = useRecoilState(userInfo);
+ const [currentUser, setCurrentUser] = useRecoilState(userClicked);
+ const [source, setSource] = useState([]);
+
+ const findUrl = () => {
+ const [a] = user.filter((u) => u.userName === currentUser);
+ const [b] = user.filter((u) => u.userName === '์ ์์');
+ const source = [b.profileImg, a.profileImg];
+ // @ts-ignore
+ setSource([...source]);
+ };
+ useEffect(() => {
+ findUrl();
+ }, []);
+
+ return (
+
+ {message.userName === '์ ์์' ? (
+
+ {message.date}
+
+ {message.userName}
+ {message.contents}
+
+
+
+ ) : (
+ <>
+
+
+ {message.userName}
+ {message.contents}
+
+ {message.date}
+ >
+ )}
+
+ );
+}
+
+const Container = styled.div`
+ display: flex;
+
+ margin-bottom: 15px;
+`;
+
+const RightWrapper = styled.div`
+ display: flex;
+ justify-content: flex-end;
+ width: 100%;
+`;
+
+const NameWrapper = styled.div<{ me?: boolean }>`
+ color: #a0a0a0;
+ margin-bottom: 5px;
+
+ text-align: ${(props) => props.me && 'right'};
+`;
+const MsgWrapper = styled.div`
+ color: white;
+ background: #383838;
+ padding: 8px;
+ border-radius: 5px;
+`;
+const TimeWrapper = styled.div<{ me?: boolean }>`
+ color: #a0a0a0;
+ font-size: 8px;
+
+ display: flex;
+ align-items: flex-end;
+
+ ${({ me }) =>
+ me
+ ? css`
+ margin-right: 5px;
+ `
+ : css`
+ margin-left: 5px;
+ `}
+`;
+
+const Img = styled.img<{ me?: boolean }>`
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ ${({ me }) =>
+ me
+ ? css`
+ margin-left: 5px;
+ `
+ : css`
+ margin-right: 5px;
+ `}
+`;
+
+export default MessageBox;
diff --git a/src/components/Search.tsx b/src/components/Search.tsx
new file mode 100644
index 0000000..005d982
--- /dev/null
+++ b/src/components/Search.tsx
@@ -0,0 +1,82 @@
+import React, { useCallback, useEffect, useState } from 'react';
+import { useRecoilState } from 'recoil';
+import { searchToggleState, searchValue } from '../store/recoil';
+import { userInfo } from '../store/recoil/data';
+
+import styled from 'styled-components';
+import SearchUserBox from './SearchUserBox';
+
+function Search() {
+ const [text, setText] = useState('');
+ const [searchVal, setSearchVal] = useRecoilState(searchValue);
+ const [user, setUser] = useRecoilState(userInfo);
+ const onChange = (e : React.ChangeEvent) => {
+ setText(e.target.value);
+ };
+ const [searchToggle, setSearchToggle] = useRecoilState(searchToggleState);
+ const onToggleSearch = () => setSearchToggle((prev) => !prev);
+ const handleSearch = () => {
+ if (text === '' || text === null) {
+ setSearchVal(undefined);
+ } else {
+ const userNameArray = user.map((u) => u.userName).slice(1);
+ const result = userNameArray.filter((name) => name.includes(text));
+ console.log(result);
+ const searchedUser = user
+ .map((u, i) => {
+ if (result.includes(u.userName)) {
+ return u;
+ }
+ })
+ .filter((c) => typeof c !== 'undefined');
+ // @ts-ignore
+ setSearchVal(searchedUser);
+ }
+ };
+
+ useEffect(() => {
+ handleSearch();
+ // if (searchToggle === false) {
+ // setSearchVal(null);
+ // }
+ }, [text]);
+
+ return (
+
+
+
+ โ
+
+
+
+
+
+ );
+}
+const InputWrapper = styled.div`
+ padding: 1px;
+`;
+
+const Input = styled.input`
+ width: 90%;
+`;
+
+const Container = styled.div`
+ position: absolute;
+ top: 40px;
+ right: 10px;
+ width: 300px;
+ height: 100px;
+ background: gray;
+ overflow: scroll;
+ border-bottom-right-radius: 10px;
+ border-bottom-left-radius: 10px;
+`;
+
+const Btn = styled.button`
+ background: black;
+ border: none;
+ margin-left: 1px;
+`;
+
+export default Search;
diff --git a/src/components/SearchUserBox.tsx b/src/components/SearchUserBox.tsx
new file mode 100644
index 0000000..d7a0b1e
--- /dev/null
+++ b/src/components/SearchUserBox.tsx
@@ -0,0 +1,100 @@
+import styled from 'styled-components';
+import { useRecoilState } from 'recoil';
+import {
+ chatRoomToggleState,
+ pathInfo,
+ searchValue,
+ userClicked,
+} from '../store/recoil';
+
+function SearchUserBox() {
+ const [urlPath, setUrlPath] = useRecoilState(pathInfo);
+ const [chatRoomToggle, setChatRoomToggle] =
+ useRecoilState(chatRoomToggleState);
+ const [searchVal, setSearchVal] = useRecoilState(searchValue);
+ const [currentUser, setCurrentUser] = useRecoilState(userClicked);
+
+ return (
+ <>
+ {searchVal ? (
+ searchVal.map((d, i) => {
+ return (
+ <>
+ {!d.isMe && (
+ {
+ setChatRoomToggle((prev) => !prev);
+ setCurrentUser(d.userName);
+ }}
+ >
+
+
+
+ {urlPath === '' && (
+
+ {d.userName}
+ {d.introduce}
+
+ )}
+ {urlPath === 'rooms' && (
+
+ {d.userName}
+ {d.last}
+
+ )}
+ {urlPath === '' && {d.profileMusic}
}
+ {urlPath === 'rooms' && }
+
+ )}
+ >
+ );
+ })
+ ) : (
+
+ ๊ฒ์๊ฒฐ๊ณผ ์์.
+
+ )}
+ >
+ );
+}
+const NoWrapper = styled.div`
+ text-align: center;
+`;
+
+const Container = styled.div`
+ margin-bottom: 25px;
+ width: 100%;
+ height: 50px;
+ display: grid;
+ grid-template-columns: 1fr 3fr 1fr;
+ cursor: pointer;
+`;
+
+const ImgDiv = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ padding: 0px 3px;
+`;
+const Img = styled.img`
+ border-radius: 20px;
+ width: 48px;
+ height: 48px;
+`;
+const Name = styled.div`
+ color: black;
+ font-size: 15px;
+ font-weight: 800;
+`;
+const Intro = styled.div`
+ color: black;
+`;
+const NickDiv = styled.div`
+ margin-left: 10px;
+ display: grid;
+ grid-auto-rows: 1fr 1fr;
+`;
+
+export default SearchUserBox;
diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx
new file mode 100644
index 0000000..30754cb
--- /dev/null
+++ b/src/components/Sidebar.tsx
@@ -0,0 +1,149 @@
+import styled from 'styled-components';
+import { useNavigate, useLocation } from 'react-router-dom';
+import { useRecoilState } from 'recoil';
+import { closeWindow, pathInfo } from '../store/recoil';
+import { useEffect } from 'react';
+
+const Sidebar = () => {
+ let navigate = useNavigate();
+ const [urlPath, setUrlPath] = useRecoilState(pathInfo);
+ const [window, setWindow] = useRecoilState(closeWindow);
+ let location = useLocation();
+ const onCloseWindow = () => {
+ setWindow((prev) => !prev);
+ };
+ useEffect(() => {
+ setUrlPath(location.pathname.slice(1));
+ }, [location]);
+ return (
+
+
+ X
+
+
+
+
+ {urlPath === '' && (
+ <>
+ navigate('/')} />
+ navigate('/rooms')} />
+ navigate('/general')} />
+ >
+ )}
+ {urlPath === 'rooms' && (
+ <>
+ navigate('/')} />
+ navigate('/rooms')} />
+ navigate('/general')} />
+ >
+ )}
+ {urlPath === 'general' && (
+ <>
+ navigate('/')} />
+ navigate('/rooms')} />
+ navigate('/general')}
+ />
+ >
+ )}
+
+
+ ์๋ฆผ
+ ์ค์
+
+
+ );
+};
+
+const Container = styled.div`
+ display: grid;
+ grid-template-rows: 1fr 20fr 2fr;
+ background: #404040;
+ border-top-left-radius: 10px;
+ border-bottom-left-radius: 10px;
+`;
+
+const Img = styled.img`
+ margin-bottom: 15px;
+ width: 30px;
+ height: 30px;
+ cursor: pointer;
+`;
+
+const Alert = styled.div`
+ &:hover {
+ color: antiquewhite;
+ cursor: pointer;
+ }
+`;
+
+const Setting = styled.div`
+ &:hover {
+ color: antiquewhite;
+ cursor: pointer;
+ }
+`;
+
+const UtilWrapper = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
+ align-items: center;
+`;
+
+const BtnWrapper = styled.div`
+ padding: 5px 0 0 5px;
+ display: flex;
+ justify-content: space-between;
+`;
+
+const Btn = styled.div`
+ border: 1px solid red;
+ border-radius: 50%;
+`;
+
+const MenuContainer = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+ align-items: center;
+ padding-top: 40px;
+`;
+const CircleWrapper = styled.div`
+ display: flex;
+ padding: 5px;
+`;
+
+export const Cir1 = styled.div`
+ cursor: pointer;
+ width: 15px;
+ height: 15px;
+ background: indianred;
+ border: 1px solid indianred;
+ border-radius: 50%;
+ margin-right: 5px;
+ color: black;
+ font-size: 10px;
+ text-align: center;
+`;
+
+export const Cir2 = styled.div`
+ width: 15px;
+ height: 15px;
+ background: yellow;
+ border: 1px solid yellow;
+ border-radius: 50%;
+ margin-right: 5px;
+`;
+
+export const Cir3 = styled.div`
+ width: 15px;
+ height: 15px;
+ background: green;
+ border: 1px solid green;
+ border-radius: 50%;
+ margin-right: 5px;
+`;
+
+export default Sidebar;
diff --git a/src/components/Start.tsx b/src/components/Start.tsx
new file mode 100644
index 0000000..f95cbbc
--- /dev/null
+++ b/src/components/Start.tsx
@@ -0,0 +1,38 @@
+import { useRecoilState } from 'recoil';
+import { closeWindow } from '../store/recoil';
+import styled from 'styled-components';
+
+function Start() {
+ const [window, setWindow] = useRecoilState(closeWindow);
+ const handleWindow = () => {
+ setWindow((prev) => !prev);
+ };
+ return (
+
+
+ ์์ํ๊ธฐ
+
+ );
+}
+const Wrapper = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ border: 1px solid black;
+ padding: 5px;
+ border-radius: 10px;
+`;
+const Img = styled.img`
+ width: 50px;
+ height: 50px;
+ cursor: pointer;
+`;
+
+const Btn = styled.button`
+ border: none;
+ background: none;
+ cursor: pointer;
+`;
+
+export default Start;
diff --git a/src/components/UserBox.tsx b/src/components/UserBox.tsx
new file mode 100644
index 0000000..02b66f9
--- /dev/null
+++ b/src/components/UserBox.tsx
@@ -0,0 +1,93 @@
+import styled from 'styled-components';
+import { useRecoilState } from 'recoil';
+import {
+ chatRoomToggleState,
+ pathInfo,
+ searchValue,
+ userClicked,
+} from '../store/recoil';
+import { userInfo } from '../store/recoil/data';
+
+function UserBox() {
+ const [urlPath, setUrlPath] = useRecoilState(pathInfo);
+ const [chatRoomToggle, setChatRoomToggle] =
+ useRecoilState(chatRoomToggleState);
+ const [user, setUser] = useRecoilState(userInfo);
+ const [currentUser, setCurrentUser] = useRecoilState(userClicked);
+ // const [searchVal,setSearchVal] = useRecoilState(searchValue)
+
+ return (
+ <>
+ {user.map((d, i) => {
+ return (
+ <>
+ {!d.isMe && (
+ {
+ setChatRoomToggle((prev) => !prev);
+ setCurrentUser(d.userName);
+ }}
+ >
+
+
+
+ {urlPath === '' && (
+
+ {d.userName}
+ {d.introduce}
+
+ )}
+ {urlPath === 'rooms' && (
+
+ {d.userName}
+ {d.last}
+
+ )}
+ {urlPath === '' && {d.profileMusic}
}
+ {urlPath === 'rooms' && }
+
+ )}
+ >
+ );
+ })}
+ >
+ );
+}
+
+const Container = styled.div`
+ margin-bottom: 25px;
+ width: 100%;
+ height: 50px;
+ display: grid;
+ grid-template-columns: 1fr 3fr 1fr;
+ cursor: pointer;
+`;
+
+const ImgDiv = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ padding: 0px 3px;
+`;
+const Img = styled.img`
+ border-radius: 20px;
+ width: 48px;
+ height: 48px;
+`;
+const Name = styled.div`
+ color: #d7d7d7;
+ font-size: 15px;
+ font-weight: 800;
+`;
+const Intro = styled.div`
+ color: #929292;
+`;
+const NickDiv = styled.div`
+ margin-left: 10px;
+ display: grid;
+ grid-auto-rows: 1fr 1fr;
+`;
+
+export default UserBox;
diff --git a/src/index.js b/src/index.tsx
similarity index 52%
rename from src/index.js
rename to src/index.tsx
index 593edf1..fce1022 100644
--- a/src/index.js
+++ b/src/index.tsx
@@ -1,10 +1,15 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
+import { RecoilRoot, useRecoilState } from 'recoil';
import App from './App';
+import GlobalStyle from './styles/GlobalStyle';
-const root = ReactDOM.createRoot(document.getElementById('root'));
+const root = ReactDOM.createRoot(document.getElementById('root') as HTMLInputElement);
root.render(
-
+
+
+
+
);
diff --git a/src/interfaces/data.tsx b/src/interfaces/data.tsx
new file mode 100644
index 0000000..817e8de
--- /dev/null
+++ b/src/interfaces/data.tsx
@@ -0,0 +1,28 @@
+export interface IUser {
+ userId : number,
+ userName:string,
+ profileImg:string,
+ introduce : string,
+ profileMusic : string,
+ isMe : boolean,
+ last:string
+}
+
+export interface IMessage {
+ roomId : number,
+ user : {
+ userName:string
+ }[],
+ msgs:{
+ userName:string,
+ contents:string,
+ date:string
+ }[],
+}
+
+export interface IMsgs {
+ userName:string,
+ contents:string,
+ date:string,
+ children?: React.ReactNode
+}
\ No newline at end of file
diff --git a/src/interfaces/index.tsx b/src/interfaces/index.tsx
new file mode 100644
index 0000000..61a285b
--- /dev/null
+++ b/src/interfaces/index.tsx
@@ -0,0 +1,33 @@
+import React from 'react';
+
+export interface ITodoList {
+ contents: string;
+ id: number;
+ isDone: boolean;
+}
+export interface IYetListProps {
+ list: [];
+ yetNum: number;
+ onToggle: (e: React.MouseEvent) => void;
+ onDelete: (e: React.MouseEvent) => void;
+}
+
+export interface IInputFormProps {
+ handleFormSubmit: (e: React.SyntheticEvent) => void;
+ handleContentsChange: (e: React.ChangeEvent) => void;
+ contents: string;
+}
+
+export interface IDoneList {
+ list: [];
+ onToggle: (e: React.MouseEvent) => void;
+ doneNum: number;
+}
+// styled-component์ ๋ค์ด๊ฐ๋ property ์ ๋ํ ์ ์
+export interface IListBtn {
+ onClick: (e: React.MouseEvent) => void;
+}
+
+// ํด๋ฆญ : MouseEvent
+// ์
๋ ฅ : ChangeEvent
+// ์ ์ถ : SyntheticEvent
diff --git a/src/logo.svg b/src/logo.svg
deleted file mode 100644
index 9dfc1c0..0000000
--- a/src/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/pages/General.tsx b/src/pages/General.tsx
new file mode 100644
index 0000000..cf13aad
--- /dev/null
+++ b/src/pages/General.tsx
@@ -0,0 +1,77 @@
+import { Container } from '../styles/Container';
+import Sidebar from '../components/Sidebar'
+import Header from '../components/Header2'
+import Main from '../components/Main'
+import Start from '../components/Start';
+import styled from 'styled-components';
+import { useRecoilState } from 'recoil';
+import { closeWindow } from '../store/recoil';
+
+const General = () => {
+ const [window, setWindow] = useRecoilState(closeWindow);
+ return (
+ <>
+ {window ? (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ) : (
+
+
+
+ )}
+ >
+ );
+};
+
+const StartWrapper = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`;
+
+const Wrapper = styled.div`
+ display: flex;
+ flex-direction: column;
+ padding: 30px;
+`;
+
+const Wallet = styled.img`
+ width: 30px;
+ height: 30px;
+ margin-bottom: 20px;
+`;
+const Fix = styled.img`
+ width: 30px;
+ height: 30px;
+ margin-bottom: 20px;
+`;
+const Shopping = styled.img`
+ width: 30px;
+ height: 30px;
+ margin-bottom: 20px;
+`;
+const Calendar = styled.img`
+ width: 30px;
+ height: 30px;
+ margin-bottom: 20px;
+`;
+const Gift = styled.img`
+ width: 30px;
+ height: 30px;
+ margin-bottom: 20px;
+`;
+
+export default General;
diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx
new file mode 100644
index 0000000..722989f
--- /dev/null
+++ b/src/pages/Home.tsx
@@ -0,0 +1,65 @@
+import { Container } from '../styles/Container';
+import Sidebar from '../components/Sidebar';
+import Header from '../components/Header2';
+import Main from '../components/Main';
+import Search from '../components/Search';
+import UserBox from '../components/UserBox';
+import ChatRoom from '../components/ChatRoom';
+import Start from '../components/Start';
+import { useRecoilState } from 'recoil';
+import {
+ chatModalToggleState,
+ chatRoomToggleState,
+ closeWindow,
+ friendModalToggleState,
+ searchToggleState,
+} from '../store/recoil';
+import { useCallback, useEffect } from 'react';
+
+import styled from 'styled-components';
+const Home = () => {
+ const [searchToggle, setSearchToggle] = useRecoilState(searchToggleState);
+ const [friendModalToggle, setFriendModalToggle] = useRecoilState(
+ friendModalToggleState
+ );
+ const [chatRoomToggle, setChatRoomToggle] =
+ useRecoilState(chatRoomToggleState);
+ const [chatModalToggle, setChatModalToggle] =
+ useRecoilState(chatModalToggleState);
+ const [window, setWindow] = useRecoilState(closeWindow);
+ useEffect(() => {
+ setSearchToggle(false);
+ setFriendModalToggle(false);
+ setChatModalToggle(false);
+ setChatRoomToggle(false);
+ }, []);
+ return (
+ <>
+ {window ? (
+
+ {chatRoomToggle && }
+
+
+ {searchToggle && }
+
+
+
+
+
+
+ ) : (
+
+
+
+ )}
+ >
+ );
+};
+
+const StartWrapper = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`;
+
+export default Home;
diff --git a/src/pages/Rooms.tsx b/src/pages/Rooms.tsx
new file mode 100644
index 0000000..a4abef6
--- /dev/null
+++ b/src/pages/Rooms.tsx
@@ -0,0 +1,68 @@
+import { Container } from '../styles/Container';
+import Sidebar from '../components/Sidebar';
+import Header from '../components/Header2';
+import Main from '../components/Main';
+import Search from '../components/Search';
+import { useRecoilState } from 'recoil';
+import {
+ chatModalToggleState,
+ chatRoomToggleState,
+ closeWindow,
+ friendModalToggleState,
+ searchToggleState,
+} from '../store/recoil';
+import { useEffect } from 'react';
+import ChatModal from '../components/ChatModal';
+import UserBox from '../components/UserBox';
+import ChatRoom from '../components/ChatRoom';
+import Start from '../components/Start';
+import styled from 'styled-components';
+const Rooms = () => {
+ const [window, setWindow] = useRecoilState(closeWindow);
+ const [searchToggle, setSearchToggle] = useRecoilState(searchToggleState);
+ const [friendModalToggle, setFriendModalToggle] = useRecoilState(
+ friendModalToggleState
+ );
+ const [chatModalToggle, setChatModalToggle] =
+ useRecoilState(chatModalToggleState);
+ const [chatRoomToggle, setChatRoomToggle] =
+ useRecoilState(chatRoomToggleState);
+ useEffect(() => {
+ setSearchToggle(false);
+ setFriendModalToggle(false);
+ setChatModalToggle(false);
+ }, []);
+ // @ts-ignore
+ // @ts-ignore
+ return (
+ <>
+ {window ? (
+
+ {chatRoomToggle && }
+ {chatModalToggle && }
+
+
+
+
+ {searchToggle && }
+
+
+
+
+
+ ) : (
+
+
+
+ )}
+ >
+ );
+};
+
+const StartWrapper = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`;
+
+export default Rooms;
diff --git a/src/store/recoil/data.tsx b/src/store/recoil/data.tsx
new file mode 100644
index 0000000..4233cda
--- /dev/null
+++ b/src/store/recoil/data.tsx
@@ -0,0 +1,14 @@
+import { atom } from 'recoil';
+import messageData from '../static/msg.json';
+import userData from '../static/user.json';
+import { IMessage, IUser } from '../../interfaces/data';
+
+export const Message = atom({
+ key: 'message',
+ default: messageData.rooms,
+});
+
+export const userInfo = atom({
+ key: 'userInfo',
+ default: userData.users,
+});
diff --git a/src/store/recoil/index.tsx b/src/store/recoil/index.tsx
new file mode 100644
index 0000000..4f1272a
--- /dev/null
+++ b/src/store/recoil/index.tsx
@@ -0,0 +1,40 @@
+import { atom } from 'recoil';
+import { IUser } from '../../interfaces/data';
+
+export const pathInfo = atom({
+ key: 'path',
+ default: null,
+});
+
+export const searchToggleState = atom({
+ key: 'searchToggleState',
+ default: false,
+});
+export const chatModalToggleState = atom({
+ key: 'chatModalToggleState',
+ default: false,
+});
+export const friendModalToggleState = atom({
+ key: 'friendModalToggleState',
+ default: false,
+});
+
+export const chatRoomToggleState = atom({
+ key: 'chatRoomToggleState',
+ default: false,
+});
+
+export const userClicked = atom({
+ key: 'userClicked',
+ default: null,
+});
+
+export const searchValue = atom({
+ key: 'searchValue',
+ default: undefined,
+});
+
+export const closeWindow = atom({
+ key: 'closeWindow',
+ default: false,
+});
diff --git a/src/store/static/msg.json b/src/store/static/msg.json
new file mode 100644
index 0000000..0cfe1b5
--- /dev/null
+++ b/src/store/static/msg.json
@@ -0,0 +1,99 @@
+{
+ "rooms": [
+ {
+ "roomId" : 0,
+ "user" : [{
+ "userName": "์ ์์","userName": "์นจ์ฐฉ๋งจbde"
+ }],
+ "msgs": [
+ {
+ "userName": "์ ์์",
+ "contents": "์๋
๋๋ ์์",
+ "date": "05-12"
+ },
+ {
+ "userName": "์นจ์ฐฉ๋งจbde",
+ "contents": "ํ๊ฟฑ์ธ, ๋งค๋๊ตฌ๋ฉ, ์ปดํํฐ",
+ "date": "05-12"
+ }
+ ]
+ },
+ {
+ "roomId" : 1,
+ "user" : [{
+ "userName": "์ ์์" ,"userName": "์ฃผํธ๋ฏผqwt"
+ }],
+ "msgs": [
+ {
+ "userName": "์ ์์",
+ "contents": "๋ด์ ๋ด ๋๋ ์์",
+ "date": "05-12"
+
+ },
+ {
+ "userName": "์ฃผํธ๋ฏผqwt",
+ "contents": "๋๋ ์ฃผํ, ๊ณ ๊ธฐ๋ ์ฃผ์ธ์ด๋ค.",
+ "date": "05-12"
+ }
+ ]
+ },
+ {
+ "roomId" : 2,
+ "user" : [{
+ "userName": "์ ์์","userName": "๊นํzxcv"
+ }],
+ "msgs": [
+ {
+ "userName": "์ ์์",
+ "contents": "๋ด์ ๋ด ๋๋ ์์",
+ "date": "05-12"
+
+ },
+ {
+ "userName": "๊นํzxcv",
+ "contents": "์พ์นดํ ์ ๊ณ ๋ผ๋ฉด๊ผฐ๋๋ก ํ๋์ค์
๋๋ค?",
+ "date": "05-12"
+ }
+ ]
+ },
+ {
+ "roomId" : 3,
+ "user" : [{
+ "userName": "์ ์์","userName": "ํ์์จliup"
+ }],
+ "msgs": [
+ {
+ "userName": "์ ์์",
+ "contents": "๋ด์ ๋ด ๋๋ ์์",
+ "date": "05-12"
+
+ },
+ {
+ "userName": "ํ์์จliup",
+ "contents": "์นจ์ฐฉ๋งจ ํน๋๊ป ๋จน์ฌ์ผํ๋๋ฐ..",
+ "date": "05-12"
+ }
+ ]
+ },
+ {
+ "roomId" : 4,
+ "user" : [{
+ "userName": "์ ์์","userName": "์๋ง์ฝqwejrl"
+ }],
+ "msgs": [
+ {
+ "userName": "์ ์์",
+ "contents": "๋ด์ ๋ด ๋๋ ์์",
+ "date": "05-12"
+
+ },
+ {
+ "userName": "์๋ง์ฝqwejrl",
+ "contents": "ํ๊ตญ ์ ๊ตญ, ์ผ๊ดด๊ถ์ ์ค์ ๋ก ํ๋ ์ฌ๋์ด ์๋ค?!",
+ "date": "05-12"
+ }
+ ]
+ }
+
+ ]
+}
\ No newline at end of file
diff --git a/src/store/static/user.json b/src/store/static/user.json
new file mode 100644
index 0000000..1b81ebd
--- /dev/null
+++ b/src/store/static/user.json
@@ -0,0 +1,63 @@
+{
+ "users": [
+ {
+ "userId" : 0,
+ "userName" : "์ ์์",
+ "profileImg" : "data:image/jpeg;base64,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",
+ "introduce" : "๋ฐฐ๊ฐ๊ณ ํ๋ค..",
+ "profileMusic": "",
+ "isMe" : true,
+ "last" : ""
+ },
+ {
+ "userId" : 1,
+ "userName" : "์นจ์ฐฉ๋งจbde",
+ "profileImg" : "http://www.joseilbo.com/gisa_img_origin/16457634701645763470_joseedu_origin.JPG",
+ "introduce" : "์ค๋๋ ์ข์ ํ๋ฃจ ๋์ธ์",
+ "profileMusic": "",
+ "isMe" : false,
+ "last" : "ํ๊ฟฑ์ธ, ๋งค๋๊ตฌ๋ฉ, ์ปดํํฐ"
+
+ },
+ {
+ "userId" : 2,
+ "userName" : "์ฃผํธ๋ฏผqwt",
+ "profileImg" : "data:image/jpeg;base64,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",
+ "introduce" : "๊ณ ๊ธฐ๋ ์ฃผํธ๋ฏผ ๊ด์ฅ",
+ "profileMusic": "",
+ "isMe" : false,
+ "last" : "๋๋ ์ฃผํ, ๊ณ ๊ธฐ๋ ์ฃผ์ธ์ด๋ค."
+
+ },
+ {
+ "userId" : 3,
+ "userName" : "๊นํzxcv",
+ "profileImg" : "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSBkwAU5oP91yRmy6jO9Dwdo5DznZoZOLWSTg&usqp=CAU",
+ "introduce" : "์ ๋ฌด๋",
+ "profileMusic": "",
+ "isMe" : false,
+ "last" : "์พ์นดํ ์ ๊ณ ๋ผ๋ฉด๊ผฐ๋๋ก ํ๋์ค์
๋๋ค?"
+
+ },
+ {
+ "userId" : 4,
+ "userName" : "ํ์์จliup",
+ "profileImg" : "data:image/jpeg;base64,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",
+ "introduce" : "2๋ ์นจํฌ๋ถ ์ํธ์",
+ "profileMusic": "",
+ "isMe" : false,
+ "last" : "์นจ์ฐฉ๋งจ ํน๋๊ป ๋จน์ฌ์ผํ๋๋ฐ.."
+
+ },
+ {
+ "userId" : 5,
+ "userName" : "์๋ง์ฝqwejrl",
+ "profileImg" : "data:image/png;base64,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",
+ "introduce" : "ํด์ฌํ๊ณ ์ถ๋ค",
+ "profileMusic": "",
+ "isMe" : false,
+ "last" : "ํ๊ตญ ์ ๊ตญ, ์ผ๊ดด๊ถ์ ์ค์ ๋ก ํ๋ ์ฌ๋์ด ์๋ค?!"
+
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/styles/Container.tsx b/src/styles/Container.tsx
new file mode 100644
index 0000000..d689611
--- /dev/null
+++ b/src/styles/Container.tsx
@@ -0,0 +1,18 @@
+import styled from 'styled-components';
+
+export const Container = styled.main`
+ background-color: #fff;
+ width: 100vw;
+ height: 100vh;
+ @media screen and (min-width: 600px) {
+ position: relative;
+ width: 390px;
+ height: 545px;
+ min-height: 500px;
+ background-color: #fff;
+ border-radius: 15px;
+ box-shadow: rgba(0, 0, 0, 0.2) 0 0 20px;
+ display: grid;
+ grid-template-columns: 65px 325px;
+ }
+`;
diff --git a/src/styles/GlobalStyle.tsx b/src/styles/GlobalStyle.tsx
new file mode 100644
index 0000000..d768b0a
--- /dev/null
+++ b/src/styles/GlobalStyle.tsx
@@ -0,0 +1,22 @@
+import { createGlobalStyle } from 'styled-components';
+import { normalize } from 'styled-normalize';
+const GlobalStyle = createGlobalStyle`
+ ${normalize}
+ *{
+ box-sizing: border-box;
+ }
+ body {
+ margin: 0px;
+ background-color: #ffffff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 100vh;
+ font-family: 'Noto Sans KR', sans-serif;
+ font-size: 10pt;
+
+ }
+
+`;
+
+export default GlobalStyle;
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..3d2597c
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compilerOptions": {
+ "esModuleInterop": true,
+ "sourceMap": true,
+ "lib": ["ES2020", "DOM"],
+ "jsx": "react-jsx",
+ "module": "esnext",
+ "moduleResolution": "Node",
+ "target": "es5",
+ "strict": true,
+ "resolveJsonModule": true,
+ "baseUrl": ".",
+ }
+}