diff --git a/.yarn/cache/@types-emoji-mart-npm-3.0.6-13390847c6-715db50362.zip b/.yarn/cache/@types-emoji-mart-npm-3.0.6-13390847c6-715db50362.zip new file mode 100644 index 00000000..e087698d Binary files /dev/null and b/.yarn/cache/@types-emoji-mart-npm-3.0.6-13390847c6-715db50362.zip differ diff --git a/.yarn/cache/css-loader-npm-6.3.0-7679f43f29-af23ad314c.zip b/.yarn/cache/css-loader-npm-6.3.0-7679f43f29-af23ad314c.zip new file mode 100644 index 00000000..f82d1eec Binary files /dev/null and b/.yarn/cache/css-loader-npm-6.3.0-7679f43f29-af23ad314c.zip differ diff --git a/.yarn/cache/cssesc-npm-3.0.0-15ec56f86f-f8c4ababff.zip b/.yarn/cache/cssesc-npm-3.0.0-15ec56f86f-f8c4ababff.zip new file mode 100644 index 00000000..ba053ede Binary files /dev/null and b/.yarn/cache/cssesc-npm-3.0.0-15ec56f86f-f8c4ababff.zip differ diff --git a/.yarn/cache/emoji-mart-npm-3.0.1-6e92eda8de-6282c6bfea.zip b/.yarn/cache/emoji-mart-npm-3.0.1-6e92eda8de-6282c6bfea.zip new file mode 100644 index 00000000..886b9366 Binary files /dev/null and b/.yarn/cache/emoji-mart-npm-3.0.1-6e92eda8de-6282c6bfea.zip differ diff --git a/.yarn/cache/icss-utils-npm-5.1.0-8d8c062d07-5c324d2835.zip b/.yarn/cache/icss-utils-npm-5.1.0-8d8c062d07-5c324d2835.zip new file mode 100644 index 00000000..4cdd1bce Binary files /dev/null and b/.yarn/cache/icss-utils-npm-5.1.0-8d8c062d07-5c324d2835.zip differ diff --git a/.yarn/cache/nanocolors-npm-0.2.12-f605aa543e-a34a63dcca.zip b/.yarn/cache/nanocolors-npm-0.2.12-f605aa543e-a34a63dcca.zip new file mode 100644 index 00000000..ef689f4b Binary files /dev/null and b/.yarn/cache/nanocolors-npm-0.2.12-f605aa543e-a34a63dcca.zip differ diff --git a/.yarn/cache/nanoid-npm-3.1.28-3222196969-ae2fa9f3ce.zip b/.yarn/cache/nanoid-npm-3.1.28-3222196969-ae2fa9f3ce.zip new file mode 100644 index 00000000..bd4eb770 Binary files /dev/null and b/.yarn/cache/nanoid-npm-3.1.28-3222196969-ae2fa9f3ce.zip differ diff --git a/.yarn/cache/postcss-modules-extract-imports-npm-3.0.0-619311282d-4b65f2f138.zip b/.yarn/cache/postcss-modules-extract-imports-npm-3.0.0-619311282d-4b65f2f138.zip new file mode 100644 index 00000000..ea8421f1 Binary files /dev/null and b/.yarn/cache/postcss-modules-extract-imports-npm-3.0.0-619311282d-4b65f2f138.zip differ diff --git a/.yarn/cache/postcss-modules-local-by-default-npm-4.0.0-794014f0a5-6cf570badc.zip b/.yarn/cache/postcss-modules-local-by-default-npm-4.0.0-794014f0a5-6cf570badc.zip new file mode 100644 index 00000000..9817b613 Binary files /dev/null and b/.yarn/cache/postcss-modules-local-by-default-npm-4.0.0-794014f0a5-6cf570badc.zip differ diff --git a/.yarn/cache/postcss-modules-scope-npm-3.0.0-0678040a26-330b9398db.zip b/.yarn/cache/postcss-modules-scope-npm-3.0.0-0678040a26-330b9398db.zip new file mode 100644 index 00000000..b7c2fbfd Binary files /dev/null and b/.yarn/cache/postcss-modules-scope-npm-3.0.0-0678040a26-330b9398db.zip differ diff --git a/.yarn/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-f7f2cdf14a.zip b/.yarn/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-f7f2cdf14a.zip new file mode 100644 index 00000000..4c8516fd Binary files /dev/null and b/.yarn/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-f7f2cdf14a.zip differ diff --git a/.yarn/cache/postcss-npm-8.3.8-adce56afd5-20073f3f70.zip b/.yarn/cache/postcss-npm-8.3.8-adce56afd5-20073f3f70.zip new file mode 100644 index 00000000..bb2e889d Binary files /dev/null and b/.yarn/cache/postcss-npm-8.3.8-adce56afd5-20073f3f70.zip differ diff --git a/.yarn/cache/postcss-selector-parser-npm-6.0.6-4df491c1e3-3602758798.zip b/.yarn/cache/postcss-selector-parser-npm-6.0.6-4df491c1e3-3602758798.zip new file mode 100644 index 00000000..02bc15f9 Binary files /dev/null and b/.yarn/cache/postcss-selector-parser-npm-6.0.6-4df491c1e3-3602758798.zip differ diff --git a/.yarn/cache/style-loader-npm-3.3.0-1314a3ca60-edad553a1a.zip b/.yarn/cache/style-loader-npm-3.3.0-1314a3ca60-edad553a1a.zip new file mode 100644 index 00000000..1b20a468 Binary files /dev/null and b/.yarn/cache/style-loader-npm-3.3.0-1314a3ca60-edad553a1a.zip differ diff --git a/packages/react-chat-example/package.json b/packages/react-chat-example/package.json index 5e5004e7..1a30bb6c 100644 --- a/packages/react-chat-example/package.json +++ b/packages/react-chat-example/package.json @@ -41,6 +41,7 @@ "@typescript-eslint/eslint-plugin": "^4.29.0", "@typescript-eslint/parser": "^4.29.0", "chai": "^4.3.4", + "css-loader": "^6.3.0", "esbuild-loader": "^2.15.1", "eslint": "^7.32.0", "eslint-plugin-hooks": "^0.2.0", @@ -55,6 +56,7 @@ "prettier": "^2.3.2", "rimraf": "^3.0.2", "source-map-loader": "^3.0.0", + "style-loader": "^3.3.0", "ts-loader": "^9.2.5", "ts-node": "^10.1.0", "typescript": "^4.3.5", diff --git a/packages/react-chat-example/webpack.config.js b/packages/react-chat-example/webpack.config.js index cc8a6a82..63eb1663 100644 --- a/packages/react-chat-example/webpack.config.js +++ b/packages/react-chat-example/webpack.config.js @@ -1,82 +1,86 @@ -const path = require('path') -const HtmlWebpackPlugin = require('html-webpack-plugin') -const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin') -const webpack = require('webpack') -const { ESBuildMinifyPlugin } = require('esbuild-loader') +const path = require('path'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); +const webpack = require('webpack'); +const { ESBuildMinifyPlugin } = require('esbuild-loader'); -module.exports = (env) => { - let environment = 'development' - if (env.ENV) { - environment = env.ENV - } +module.exports = env => { + let environment = 'development'; + if (env.ENV) { + environment = env.ENV; + } - return { - entry: './src/index.tsx', - output: { - filename: 'index.[fullhash].js', - path: path.join(__dirname, 'dist'), - publicPath: "/", - }, - devtool: 'source-map', - resolve: { - extensions: ['.ts', '.tsx', '.js', '.json'], - fallback: { - "buffer": require.resolve("buffer/"), - "crypto": require.resolve("crypto-browserify"), - "stream": require.resolve("stream-browserify"), - "assert": require.resolve("assert") - } - }, - module: { - rules: [ - { - test: /\.tsx?$/, - loader: 'esbuild-loader', - exclude: /node_modules/, - options: { - loader: 'tsx', - target: 'es2018', - }, - }, - { - enforce: 'pre', - test: /\.js$/, - exclude: /node_modules/, - loader: 'source-map-loader' - }, - { - test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf|ico)$/, - use: ['file-loader'], - }, - ], - }, - optimization: { - minimizer: [ - new ESBuildMinifyPlugin({ - target: 'es2018', - }), - ], + return { + entry: './src/index.tsx', + output: { + filename: 'index.[fullhash].js', + path: path.join(__dirname, 'dist'), + publicPath: '/', + }, + devtool: 'source-map', + resolve: { + extensions: ['.ts', '.tsx', '.js', '.json'], + fallback: { + buffer: require.resolve('buffer/'), + crypto: require.resolve('crypto-browserify'), + stream: require.resolve('stream-browserify'), + assert: require.resolve('assert'), + }, + }, + module: { + rules: [ + { + test: /\.tsx?$/, + loader: 'esbuild-loader', + exclude: /node_modules/, + options: { + loader: 'tsx', + target: 'es2018', }, - plugins: [ - new ForkTsCheckerWebpackPlugin(), - new HtmlWebpackPlugin({ - template: 'src/index.html', - }), - new webpack.DefinePlugin({ - 'process.env.ENV': JSON.stringify(environment), - }), - new webpack.ProvidePlugin({ - process: 'process/browser.js', - Buffer: ['buffer', 'Buffer'], - }), - ], - devServer: { - historyApiFallback: true, - host: '0.0.0.0', - stats: 'errors-only', - overlay: true, - hot: true, }, - stats: 'minimal' - } -} \ No newline at end of file + { + enforce: 'pre', + test: /\.js$/, + exclude: /node_modules/, + loader: 'source-map-loader', + }, + { + test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf|ico)$/, + use: ['file-loader'], + }, + { + test: /\.css$/i, + use: ['style-loader', 'css-loader'], + }, + ], + }, + optimization: { + minimizer: [ + new ESBuildMinifyPlugin({ + target: 'es2018', + }), + ], + }, + plugins: [ + new ForkTsCheckerWebpackPlugin(), + new HtmlWebpackPlugin({ + template: 'src/index.html', + }), + new webpack.DefinePlugin({ + 'process.env.ENV': JSON.stringify(environment), + }), + new webpack.ProvidePlugin({ + process: 'process/browser.js', + Buffer: ['buffer', 'Buffer'], + }), + ], + devServer: { + historyApiFallback: true, + host: '0.0.0.0', + stats: 'errors-only', + overlay: true, + hot: true, + }, + stats: 'minimal', + }; +}; diff --git a/packages/react-chat/package.json b/packages/react-chat/package.json index e97fa280..cf87c959 100644 --- a/packages/react-chat/package.json +++ b/packages/react-chat/package.json @@ -23,6 +23,7 @@ }, "devDependencies": { "@types/chai": "^4.2.21", + "@types/emoji-mart": "^3.0.6", "@types/mocha": "^9.0.0", "@types/node": "^16.9.6", "@types/react": "^17.0.16", @@ -43,6 +44,7 @@ "typescript": "^4.3.5" }, "dependencies": { + "emoji-mart": "^3.0.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-is": "^17.0.2", diff --git a/packages/react-chat/src/components/Chat/ChatInput.tsx b/packages/react-chat/src/components/Chat/ChatInput.tsx index 2355e0a7..2ebfbde5 100644 --- a/packages/react-chat/src/components/Chat/ChatInput.tsx +++ b/packages/react-chat/src/components/Chat/ChatInput.tsx @@ -1,7 +1,13 @@ +import { Picker } from "emoji-mart"; import React, { useState } from "react"; import styled from "styled-components"; -import { Theme } from "../../styles/themes"; +import { lightTheme, Theme } from "../../styles/themes"; +import { EmojiIcon } from "../Icons/EmojiIcon"; +import { GifIcon } from "../Icons/GifIcon"; +import { PictureIcon } from "../Icons/PictureIcon"; +import { StickerIcon } from "../Icons/StickerIcon"; +import "emoji-mart/css/emoji-mart.css"; type ChatInputProps = { theme: Theme; @@ -10,10 +16,49 @@ type ChatInputProps = { export function ChatInput({ theme, addMessage }: ChatInputProps) { const [content, setContent] = useState(""); + const [showEmoji, setShowEmoji] = useState(false); + + const addEmoji = (e: any) => { + const sym = e.unified.split("-"); + const codesArray: any[] = []; + sym.forEach((el: string) => codesArray.push("0x" + el)); + const emoji = String.fromCodePoint(...codesArray); + setContent(content + emoji); + }; return ( + {showEmoji && ( +
+ +
+ )} + + + + + + setShowEmoji(!showEmoji)}> + + + + + + + +
); } @@ -35,16 +89,21 @@ interface ThemeProps { const InputWrapper = styled.div` display: flex; + align-items: center; padding: 6px 8px 6px 10px; + position: relative; `; + const Input = styled.input` width: 100%; - margin-left: 10px; height: 40px; background: ${({ theme }) => theme.inputColor}; border-radius: 36px 16px 4px 36px; border: 1px solid ${({ theme }) => theme.inputColor}; + color: ${({ theme }) => theme.textPrimaryColor}; + margin-left: 10px; padding-left: 12px; + padding-right: 112px; outline: none; font-size: 15px; line-height: 22px; @@ -54,3 +113,37 @@ const Input = styled.input` caret-color: ${({ theme }) => theme.notificationColor}; } `; + +const AddPictureBtn = styled.label` + cursor: pointer; +`; + +const AddPictureInput = styled.input` + opacity: 0; + position: absolute; + z-index: -1; +`; + +const AddEmojiBtn = styled.label` + cursor: pointer; + position: absolute; + bottom: 10px; + right: 94px; + transform: translateX(-50%); +`; + +const AddStickerBtn = styled.label` + cursor: pointer; + position: absolute; + bottom: 10px; + right: 58px; + transform: translateX(-50%); +`; + +const AddGifBtn = styled.label` + cursor: pointer; + position: absolute; + bottom: 10px; + right: 20px; + transform: translateX(-50%); +`; diff --git a/packages/react-chat/src/components/Icons/EmojiIcon.tsx b/packages/react-chat/src/components/Icons/EmojiIcon.tsx new file mode 100644 index 00000000..aea796e2 --- /dev/null +++ b/packages/react-chat/src/components/Icons/EmojiIcon.tsx @@ -0,0 +1,50 @@ +import React from "react"; +import styled from "styled-components"; + +import { Theme } from "../../styles/themes"; + +interface ThemeProps { + theme: Theme; + isActive?: boolean; +} + +export const EmojiIcon = ({ theme, isActive }: ThemeProps) => { + return ( + + + + + + + ); +}; + +const Icon = styled.svg` + & > path { + fill: ${({ theme }) => theme.textSecondaryColor}; + } + + & > path.active { + fill: ${({ theme }) => theme.memberNameColor}; + } +`; diff --git a/packages/react-chat/src/components/Icons/GifIcon.tsx b/packages/react-chat/src/components/Icons/GifIcon.tsx new file mode 100644 index 00000000..f13efa2d --- /dev/null +++ b/packages/react-chat/src/components/Icons/GifIcon.tsx @@ -0,0 +1,50 @@ +import React from "react"; +import styled from "styled-components"; + +import { Theme } from "../../styles/themes"; + +interface ThemeProps { + theme: Theme; + isActive?: boolean; +} + +export const GifIcon = ({ theme, isActive }: ThemeProps) => { + return ( + + + + + + + ); +}; + +const Icon = styled.svg` + & > path { + fill: ${({ theme }) => theme.textSecondaryColor}; + } + + & > path.active { + fill: ${({ theme }) => theme.memberNameColor}; + } +`; diff --git a/packages/react-chat/src/components/Icons/PictureIcon.tsx b/packages/react-chat/src/components/Icons/PictureIcon.tsx new file mode 100644 index 00000000..bbd66da3 --- /dev/null +++ b/packages/react-chat/src/components/Icons/PictureIcon.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import styled from "styled-components"; + +import { Theme } from "../../styles/themes"; + +interface ThemeProps { + theme: Theme; +} + +export const PictureIcon = ({ theme }: ThemeProps) => { + return ( + + + + + ); +}; + +const Icon = styled.svg` + & > path { + fill: ${({ theme }) => theme.textSecondaryColor}; + } +`; diff --git a/packages/react-chat/src/components/Icons/StickerIcon.tsx b/packages/react-chat/src/components/Icons/StickerIcon.tsx new file mode 100644 index 00000000..ef74e3e4 --- /dev/null +++ b/packages/react-chat/src/components/Icons/StickerIcon.tsx @@ -0,0 +1,42 @@ +import React from "react"; +import styled from "styled-components"; + +import { Theme } from "../../styles/themes"; + +interface ThemeProps { + theme: Theme; + isActive?: boolean; +} + +export const StickerIcon = ({ theme, isActive }: ThemeProps) => { + return ( + + + + + ); +}; + +const Icon = styled.svg` + & > path { + fill: ${({ theme }) => theme.textSecondaryColor}; + } + + & > path.active { + fill: ${({ theme }) => theme.memberNameColor}; + } +`; diff --git a/yarn.lock b/yarn.lock index 927488a2..fe96c77e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -124,7 +124,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5": version: 7.15.4 resolution: "@babel/runtime@npm:7.15.4" dependencies: @@ -229,6 +229,7 @@ __metadata: buffer: ^6.0.3 chai: ^4.3.4 crypto-browserify: ^3.12.0 + css-loader: ^6.3.0 esbuild-loader: ^2.15.1 eslint: ^7.32.0 eslint-plugin-hooks: ^0.2.0 @@ -248,6 +249,7 @@ __metadata: rimraf: ^3.0.2 source-map-loader: ^3.0.0 stream-browserify: ^3.0.0 + style-loader: ^3.3.0 ts-loader: ^9.2.5 ts-node: ^10.1.0 typescript: ^4.3.5 @@ -262,6 +264,7 @@ __metadata: resolution: "@dappconnect/react-chat@workspace:packages/react-chat" dependencies: "@types/chai": ^4.2.21 + "@types/emoji-mart": ^3.0.6 "@types/mocha": ^9.0.0 "@types/node": ^16.9.6 "@types/react": ^17.0.16 @@ -270,6 +273,7 @@ __metadata: "@typescript-eslint/parser": ^4.29.0 chai: ^4.3.4 copyfiles: ^2.4.1 + emoji-mart: ^3.0.1 eslint: ^7.32.0 jsdom: ^16.7.0 jsdom-global: ^3.0.2 @@ -749,6 +753,15 @@ __metadata: languageName: node linkType: hard +"@types/emoji-mart@npm:^3.0.6": + version: 3.0.6 + resolution: "@types/emoji-mart@npm:3.0.6" + dependencies: + "@types/react": "*" + checksum: 715db503626f7af278ce4c62ffef8c393884649f474f5da0bafa3faef95bb5c47b65ec3c817535ebab4e3433db7c1b18e3d9dde26e2c0b91c00450ea1b252466 + languageName: node + linkType: hard + "@types/eslint-scope@npm:^3.7.0": version: 3.7.1 resolution: "@types/eslint-scope@npm:3.7.1" @@ -3050,6 +3063,24 @@ __metadata: languageName: node linkType: hard +"css-loader@npm:^6.3.0": + version: 6.3.0 + resolution: "css-loader@npm:6.3.0" + dependencies: + icss-utils: ^5.1.0 + postcss: ^8.2.15 + postcss-modules-extract-imports: ^3.0.0 + postcss-modules-local-by-default: ^4.0.0 + postcss-modules-scope: ^3.0.0 + postcss-modules-values: ^4.0.0 + postcss-value-parser: ^4.1.0 + semver: ^7.3.5 + peerDependencies: + webpack: ^5.0.0 + checksum: af23ad314c69b278da476a65b4912f11b2f9402496dad109b8fa7fe987666889c2f67f3996441d4fc485cae3b4349cdb4e0ec7c8b1d79344eac3d19664bb6a32 + languageName: node + linkType: hard + "css-select@npm:^4.1.3": version: 4.1.3 resolution: "css-select@npm:4.1.3" @@ -3081,6 +3112,15 @@ __metadata: languageName: node linkType: hard +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + "cssom@npm:^0.4.4": version: 0.4.4 resolution: "cssom@npm:0.4.4" @@ -3630,6 +3670,18 @@ __metadata: languageName: node linkType: hard +"emoji-mart@npm:^3.0.1": + version: 3.0.1 + resolution: "emoji-mart@npm:3.0.1" + dependencies: + "@babel/runtime": ^7.0.0 + prop-types: ^15.6.0 + peerDependencies: + react: ^0.14.0 || ^15.0.0-0 || ^16.0.0 || ^17.0.0 + checksum: 6282c6bfea0b183941c63bf20aee53a317503465266cf634819fd5aab84c42c867ee8b412dca8628dd8a74acdf5bd2006dbac6ac024f8f6a07596471f7bbd35d + languageName: node + linkType: hard + "emoji-regex@npm:^7.0.1": version: 7.0.3 resolution: "emoji-regex@npm:7.0.3" @@ -5435,6 +5487,15 @@ fsevents@~2.3.2: languageName: node linkType: hard +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 + languageName: node + linkType: hard + "ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -7679,6 +7740,13 @@ fsevents@~2.3.2: languageName: node linkType: hard +"nanocolors@npm:^0.2.2": + version: 0.2.12 + resolution: "nanocolors@npm:0.2.12" + checksum: a34a63dcca29eede3db41afd1421f130423fc99e73f6c89166f57815bbf0441f02a6112651b068acfd309707215f48eec15dd38e790a8225d6762503a7c175c6 + languageName: node + linkType: hard + "nanoid@npm:3.1.23": version: 3.1.23 resolution: "nanoid@npm:3.1.23" @@ -7697,6 +7765,15 @@ fsevents@~2.3.2: languageName: node linkType: hard +"nanoid@npm:^3.1.25": + version: 3.1.28 + resolution: "nanoid@npm:3.1.28" + bin: + nanoid: bin/nanoid.cjs + checksum: ae2fa9f3ce7a690ec62fc2fdf92345f023b20db760024f767c25ad392bde6414dc0b44a8e66dc1209426f36e4771e63b09ad2b49d8f1b04063b37e21b46af8d0 + languageName: node + linkType: hard + "nanomatch@npm:^1.2.9": version: 1.2.13 resolution: "nanomatch@npm:1.2.13" @@ -8789,13 +8866,78 @@ fsevents@~2.3.2: languageName: node linkType: hard -"postcss-value-parser@npm:^4.0.2": +"postcss-modules-extract-imports@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-extract-imports@npm:3.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-local-by-default@npm:4.0.0" + dependencies: + icss-utils: ^5.0.0 + postcss-selector-parser: ^6.0.2 + postcss-value-parser: ^4.1.0 + peerDependencies: + postcss: ^8.1.0 + checksum: 6cf570badc7bc26c265e073f3ff9596b69bb954bc6ac9c5c1b8cba2995b80834226b60e0a3cbb87d5f399dbb52e6466bba8aa1d244f6218f99d834aec431a69d + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-scope@npm:3.0.0" + dependencies: + postcss-selector-parser: ^6.0.4 + peerDependencies: + postcss: ^8.1.0 + checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: ^5.0.0 + peerDependencies: + postcss: ^8.1.0 + checksum: f7f2cdf14a575b60e919ad5ea52fed48da46fe80db2733318d71d523fc87db66c835814940d7d05b5746b0426e44661c707f09bdb83592c16aea06e859409db6 + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": + version: 6.0.6 + resolution: "postcss-selector-parser@npm:6.0.6" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: 3602758798048bffbd6a97d6f009b32a993d6fd2cc70775bb59593e803d7fa8738822ecffb2fafc745edf7fad297dad53c30d2cfe78446a7d3f4a4a258cb15b2 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.1.0": version: 4.1.0 resolution: "postcss-value-parser@npm:4.1.0" checksum: 68a9ea27c780fa3cc350be37b47cc46385c61dd9627990909230e0e9c3debf6d5beb49006bd743a2e506cdd6fa7d07637f2d9504a394f67cc3011d1ff0134886 languageName: node linkType: hard +"postcss@npm:^8.2.15": + version: 8.3.8 + resolution: "postcss@npm:8.3.8" + dependencies: + nanocolors: ^0.2.2 + nanoid: ^3.1.25 + source-map-js: ^0.6.2 + checksum: 20073f3f70487e9fa8d40e930d02595c4d96b7db8b2142ee4efe8e0c9a54c844c720370e178aef57c12d2d5bf65592cfdd1d020a74bf2840bc58650590713a35 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -8893,7 +9035,7 @@ fsevents@~2.3.2: languageName: node linkType: hard -"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2": +"prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2": version: 15.7.2 resolution: "prop-types@npm:15.7.2" dependencies: @@ -10566,6 +10708,15 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"style-loader@npm:^3.3.0": + version: 3.3.0 + resolution: "style-loader@npm:3.3.0" + peerDependencies: + webpack: ^5.0.0 + checksum: edad553a1ae74af9afb4dd582774d484e8e4e5f8c9593a921b0f3f0e2cdb3a58c4b44a3afb43021956804042eaffd68d5dc4f956d4c5f633e7e67eda6a750042 + languageName: node + linkType: hard + "styled-components@npm:^5.3.1": version: 5.3.1 resolution: "styled-components@npm:5.3.1" @@ -11345,7 +11496,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2