From c90b5429ad8571890bb61c8db74291817c7d9e32 Mon Sep 17 00:00:00 2001
From: vivomo <929992114@qq.com>
Date: Wed, 20 Sep 2023 22:34:35 +0800
Subject: [PATCH 01/14] fix: add react router && home page base styles
---
packages/client/package.json | 6 +-
packages/client/src/App.tsx | 64 +-
packages/client/src/pages/game/index.tsx | 60 ++
packages/client/src/pages/home/index.tsx | 39 +
packages/client/src/pages/home/styles.scss | 26 +
pnpm-lock.yaml | 916 ++++++++++++++++++++-
6 files changed, 1016 insertions(+), 95 deletions(-)
create mode 100644 packages/client/src/pages/game/index.tsx
create mode 100644 packages/client/src/pages/home/index.tsx
create mode 100644 packages/client/src/pages/home/styles.scss
diff --git a/packages/client/package.json b/packages/client/package.json
index a5eaa61f..05a2cb9a 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -14,18 +14,20 @@
"@ethersproject/providers": "^5.7.2",
"@latticexyz/common": "2.0.0-next.4",
"@latticexyz/dev-tools": "2.0.0-next.4",
+ "@latticexyz/react": "2.0.0-alpha.1.177",
"@latticexyz/recs": "2.0.0-next.4",
"@latticexyz/schema-type": "2.0.0-next.4",
"@latticexyz/services": "2.0.0-next.4",
"@latticexyz/store-sync": "2.0.0-next.4",
"@latticexyz/utils": "2.0.0-next.4",
"@latticexyz/world": "2.0.0-next.4",
- "@latticexyz/react": "2.0.0-alpha.1.177",
+ "antd": "^5.9.2",
"contracts": "workspace:*",
"ethers": "^5.7.2",
- "rxjs": "7.5.5",
"react": "^18.2.0",
"react-dom": "^18.2.0",
+ "react-router-dom": "^6.16.0",
+ "rxjs": "7.5.5",
"sass": "^1.64.1",
"viem": "1.6.0"
},
diff --git a/packages/client/src/App.tsx b/packages/client/src/App.tsx
index 1fea0790..a5c76806 100644
--- a/packages/client/src/App.tsx
+++ b/packages/client/src/App.tsx
@@ -1,60 +1,20 @@
-import { loadMapData } from './utils';
-import { useEffect, useState, useRef } from 'react';
-import Map from './components/Map';
-import { MapConfig } from './config';
+import { BrowserRouter, Route, Routes } from 'react-router-dom';
import './App.scss';
+import Home from './pages/home';
+import Game from './pages/game';
export const App = () => {
- const [renderMapData, setRenderMapData] = useState([]);
- const [vertexCoordinate, setVertexCoordinate] = useState({
- x: 0,
- y: 0
- });
-
- const mapDataRef = useRef([]);
-
- const onKeyDown = (e) => {
- const mapData = mapDataRef.current;
- if (mapData.length === 0 || e.keyCode < 37 || e.keyCode > 40) {
- return;
- }
- switch (e.keyCode) {
- case 37:
- vertexCoordinate.x = Math.max(0, vertexCoordinate.x - 1);
- break;
- case 38:
- vertexCoordinate.y = Math.max(0, vertexCoordinate.y - 1);
- break;
- case 39:
- vertexCoordinate.x = Math.min(mapData[0].length - 1 - MapConfig.visualWidth, vertexCoordinate.x + 1);
- break;
- case 40:
- vertexCoordinate.y = Math.min(mapData.length - 1 - MapConfig.visualHeight, vertexCoordinate.y + 1);
- break;
- }
- setVertexCoordinate({
- ...vertexCoordinate
- });
- }
-
- useEffect(() => {
- loadMapData().then((csv) => {
- setRenderMapData(csv);
- mapDataRef.current = csv;
- });
-
- }, []);
-
return (
-
-
+
+
+
+
+ } />
+ } />
+
+
+
)
}
\ No newline at end of file
diff --git a/packages/client/src/pages/game/index.tsx b/packages/client/src/pages/game/index.tsx
new file mode 100644
index 00000000..27cd3f28
--- /dev/null
+++ b/packages/client/src/pages/game/index.tsx
@@ -0,0 +1,60 @@
+import React, { useEffect, useRef, useState } from 'react';
+import { MapConfig } from '../../config';
+import { loadMapData } from '../../utils';
+import Map from '../../components/Map';
+
+const Game = () => {
+ const [renderMapData, setRenderMapData] = useState([]);
+ const [vertexCoordinate, setVertexCoordinate] = useState({
+ x: 0,
+ y: 0
+ });
+
+ const mapDataRef = useRef([]);
+
+ const onKeyDown = (e) => {
+ const mapData = mapDataRef.current;
+ if (mapData.length === 0 || e.keyCode < 37 || e.keyCode > 40) {
+ return;
+ }
+ switch (e.keyCode) {
+ case 37:
+ vertexCoordinate.x = Math.max(0, vertexCoordinate.x - 1);
+ break;
+ case 38:
+ vertexCoordinate.y = Math.max(0, vertexCoordinate.y - 1);
+ break;
+ case 39:
+ vertexCoordinate.x = Math.min(mapData[0].length - 1 - MapConfig.visualWidth, vertexCoordinate.x + 1);
+ break;
+ case 40:
+ vertexCoordinate.y = Math.min(mapData.length - 1 - MapConfig.visualHeight, vertexCoordinate.y + 1);
+ break;
+ }
+ setVertexCoordinate({
+ ...vertexCoordinate
+ });
+ }
+
+ useEffect(() => {
+ loadMapData().then((csv) => {
+ setRenderMapData(csv);
+ mapDataRef.current = csv;
+ });
+
+ }, []);
+
+ return (
+
+
+
+ )
+};
+
+export default Game;
\ No newline at end of file
diff --git a/packages/client/src/pages/home/index.tsx b/packages/client/src/pages/home/index.tsx
new file mode 100644
index 00000000..99b313c3
--- /dev/null
+++ b/packages/client/src/pages/home/index.tsx
@@ -0,0 +1,39 @@
+import React from 'react';
+import { Col, Row, Button, Input } from 'antd';
+import './styles.scss';
+
+const Home = () => {
+ return (
+
+ );
+};
+
+export default Home;
\ No newline at end of file
diff --git a/packages/client/src/pages/home/styles.scss b/packages/client/src/pages/home/styles.scss
new file mode 100644
index 00000000..c8da06b2
--- /dev/null
+++ b/packages/client/src/pages/home/styles.scss
@@ -0,0 +1,26 @@
+.mi-home-page {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100vh;
+
+
+ .home-content {
+ padding: 20px;
+ width: 800px;
+ height: 600px;
+ border: 2px solid;
+
+ .ant-row {
+ margin-bottom: 30px;
+ }
+
+ .ant-col {
+ padding: 0 20px;
+ }
+ }
+
+ h1 {
+ text-align: center;
+ }
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fd9f5cbe..909d676c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -62,6 +62,9 @@ importers:
'@latticexyz/world':
specifier: 2.0.0-next.4
version: registry.npmmirror.com/@latticexyz/world@2.0.0-next.4(typescript@5.1.6)
+ antd:
+ specifier: ^5.9.2
+ version: 5.9.2(react-dom@18.2.0)(react@18.2.0)
contracts:
specifier: workspace:*
version: link:../contracts
@@ -74,6 +77,9 @@ importers:
react-dom:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
+ react-router-dom:
+ specifier: ^6.16.0
+ version: 6.16.0(react-dom@18.2.0)(react@18.2.0)
rxjs:
specifier: 7.5.5
version: registry.npmmirror.com/rxjs@7.5.5
@@ -161,6 +167,82 @@ packages:
resolution: {integrity: sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ==}
dev: false
+ /@ant-design/colors@7.0.0:
+ resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==}
+ dependencies:
+ '@ctrl/tinycolor': 3.6.1
+ dev: false
+
+ /@ant-design/cssinjs@1.17.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-MgGCZ6sfD3yQB0XW0hN4jgixMxApTlDYyct+pc7fRZNO4CaqWWm/9iXkkljNR27lyWLZmm+XiDfcIOo1bnrnMA==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@emotion/hash': 0.8.0
+ '@emotion/unitless': 0.7.5
+ classnames: 2.3.2
+ csstype: 3.1.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ stylis: 4.3.0
+ dev: false
+
+ /@ant-design/icons-svg@4.3.1:
+ resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==}
+ dev: false
+
+ /@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==}
+ engines: {node: '>=8'}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+ dependencies:
+ '@ant-design/colors': 7.0.0
+ '@ant-design/icons-svg': 4.3.1
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@ant-design/react-slick@1.0.2(react@18.2.0):
+ resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ json2mq: 0.2.0
+ react: 18.2.0
+ resize-observer-polyfill: 1.5.1
+ throttle-debounce: 5.0.0
+ dev: false
+
+ /@babel/runtime@7.22.11:
+ resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.14.0
+ dev: false
+
+ /@ctrl/tinycolor@3.6.1:
+ resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /@emotion/hash@0.8.0:
+ resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
+ dev: false
+
+ /@emotion/unitless@0.7.5:
+ resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==}
+ dev: false
+
/@esbuild/android-arm64@0.17.19:
resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
engines: {node: '>=12'}
@@ -889,6 +971,106 @@ packages:
engines: {node: '>= 16'}
dev: false
+ /@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@ctrl/tinycolor': 3.6.1
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@rc-component/mini-decimal@1.1.0:
+ resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==}
+ engines: {node: '>=8.x'}
+ dependencies:
+ '@babel/runtime': 7.22.11
+ dev: false
+
+ /@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@rc-component/trigger@1.16.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-QtRB0L8A3Zik1pG1vQloWCytYMjHWKFuC7DiJ7822oc4K2wlwiyy5yBICE+G6ySKQrlYmlVIOMz/E2MbfU1DyA==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-align: 4.0.15(react-dom@18.2.0)(react@18.2.0)
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@remix-run/router@1.9.0:
+ resolution: {integrity: sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA==}
+ engines: {node: '>=14.0.0'}
+ dev: false
+
/@scure/base@1.1.2:
resolution: {integrity: sha512-sSCrnIdaUZQHhBxZThMuk7Wm1TWzMD3uJNdGgx3JS23xSqevu0tAOsg8k66nL3R2NwQe65AI9GgqpPOgZys/eA==}
dev: false
@@ -1016,6 +1198,68 @@ packages:
color-convert: 2.0.1
dev: false
+ /antd@5.9.2(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-+ecGt8nDCjvNvKkalJQc4eBGtfdQuZ/WLXrk7X4FbhAhMplctrey4/SOvHeXjEjBnyNC/KSdF4EzKYKq01egbA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@ant-design/colors': 7.0.0
+ '@ant-design/cssinjs': 1.17.0(react-dom@18.2.0)(react@18.2.0)
+ '@ant-design/icons': 5.2.6(react-dom@18.2.0)(react@18.2.0)
+ '@ant-design/react-slick': 1.0.2(react@18.2.0)
+ '@babel/runtime': 7.22.11
+ '@ctrl/tinycolor': 3.6.1
+ '@rc-component/color-picker': 1.4.1(react-dom@18.2.0)(react@18.2.0)
+ '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0)
+ '@rc-component/tour': 1.10.0(react-dom@18.2.0)(react@18.2.0)
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ copy-to-clipboard: 3.3.3
+ dayjs: 1.11.10
+ qrcode.react: 3.1.0(react@18.2.0)
+ rc-cascader: 3.16.0(react-dom@18.2.0)(react@18.2.0)
+ rc-checkbox: 3.1.0(react-dom@18.2.0)(react@18.2.0)
+ rc-collapse: 3.7.1(react-dom@18.2.0)(react@18.2.0)
+ rc-dialog: 9.2.0(react-dom@18.2.0)(react@18.2.0)
+ rc-drawer: 6.4.1(react-dom@18.2.0)(react@18.2.0)
+ rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0)
+ rc-field-form: 1.38.1(react-dom@18.2.0)(react@18.2.0)
+ rc-image: 7.2.0(react-dom@18.2.0)(react@18.2.0)
+ rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0)
+ rc-input-number: 8.0.4(react-dom@18.2.0)(react@18.2.0)
+ rc-mentions: 2.7.0(react-dom@18.2.0)(react@18.2.0)
+ rc-menu: 9.12.0(react-dom@18.2.0)(react@18.2.0)
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-notification: 5.1.1(react-dom@18.2.0)(react@18.2.0)
+ rc-pagination: 3.6.1(react-dom@18.2.0)(react@18.2.0)
+ rc-picker: 3.14.2(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0)
+ rc-progress: 3.5.1(react-dom@18.2.0)(react@18.2.0)
+ rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0)
+ rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
+ rc-segmented: 2.2.2(react-dom@18.2.0)(react@18.2.0)
+ rc-select: 14.8.1(react-dom@18.2.0)(react@18.2.0)
+ rc-slider: 10.2.1(react-dom@18.2.0)(react@18.2.0)
+ rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0)
+ rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0)
+ rc-table: 7.34.2(react-dom@18.2.0)(react@18.2.0)
+ rc-tabs: 12.12.1(react-dom@18.2.0)(react@18.2.0)
+ rc-textarea: 1.3.4(react-dom@18.2.0)(react@18.2.0)
+ rc-tooltip: 6.0.1(react-dom@18.2.0)(react@18.2.0)
+ rc-tree: 5.7.12(react-dom@18.2.0)(react@18.2.0)
+ rc-tree-select: 5.12.1(react-dom@18.2.0)(react@18.2.0)
+ rc-upload: 4.3.4(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ scroll-into-view-if-needed: 3.1.0
+ throttle-debounce: 5.0.0
+ transitivePeerDependencies:
+ - date-fns
+ - luxon
+ - moment
+ dev: false
+
/antlr4ts@0.5.0-alpha.4:
resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==}
dev: false
@@ -1027,11 +1271,19 @@ packages:
normalize-path: 3.0.0
picomatch: 2.3.1
+ /array-tree-filter@2.1.0:
+ resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
+ dev: false
+
/astral-regex@2.0.0:
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
engines: {node: '>=8'}
dev: false
+ /async-validator@4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+ dev: false
+
/bech32@1.1.4:
resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==}
dev: false
@@ -1081,6 +1333,10 @@ packages:
optionalDependencies:
fsevents: 2.3.3
+ /classnames@2.3.2:
+ resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==}
+ dev: false
+
/cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
@@ -1101,6 +1357,16 @@ packages:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: false
+ /compute-scroll-into-view@3.0.3:
+ resolution: {integrity: sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==}
+ dev: false
+
+ /copy-to-clipboard@3.3.3:
+ resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
+ dependencies:
+ toggle-selection: 1.0.6
+ dev: false
+
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -1117,6 +1383,10 @@ packages:
/csstype@3.1.2:
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
+ /dayjs@1.11.10:
+ resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==}
+ dev: false
+
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -1129,6 +1399,10 @@ packages:
ms: 2.1.2
dev: false
+ /dom-align@1.12.4:
+ resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
+ dev: false
+
/dotenv@16.3.1:
resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
engines: {node: '>=12'}
@@ -1388,6 +1662,12 @@ packages:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
dev: false
+ /json2mq@0.2.0:
+ resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==}
+ dependencies:
+ string-convert: 0.2.1
+ dev: false
+
/jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
@@ -1552,6 +1832,539 @@ packages:
engines: {node: '>=6'}
dev: false
+ /qrcode.react@3.1.0(react@18.2.0):
+ resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ react: 18.2.0
+ dev: false
+
+ /rc-align@4.0.15(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ dom-align: 1.12.4
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ resize-observer-polyfill: 1.5.1
+ dev: false
+
+ /rc-cascader@3.16.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-c62glOhm66T0/Y8vOfIgZwHHTbqCyC7FvBTcNDuwbXZc8Dfbz6fB1yIuCB55z5rPA7nsUfMyNNuS8shReZWM+A==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ array-tree-filter: 2.1.0
+ classnames: 2.3.2
+ rc-select: 14.8.1(react-dom@18.2.0)(react@18.2.0)
+ rc-tree: 5.7.12(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-dialog@9.2.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-dL2tklMou/QfK77+0CTH3FTnKCvIiYv9Df7PfFfg8YVXhYAGmuIkV4ooQYHAIR4juL3Ywcm5oQflF2vDDuGlUg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-drawer@6.4.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-QIbNMjiZy322o9uEpJHsSZ5rS/zuxqam3lYVPDzjztoqsoDzTNNxWN77QVpOfQ0UC9/87+qu25zocJ+O9bK2Tg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==}
+ peerDependencies:
+ react: '>=16.11.0'
+ react-dom: '>=16.11.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-field-form@1.38.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-94MswI+I1/RtSg1j4z64dWopGYkSWVfRKLMaZtN6UfHcVfNiXqGPIs/cDf7I2fraRdbxLsXQb6caZ2olfqXdGg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ async-validator: 4.2.5
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-image@7.2.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-5Ug2hCVl6VcT0osR5XaZQ4zclTMEWPnbn3b4/TS/MR1QjRpEACLNFUzBGwr5mbAVhzvLWX5YZf4vO10xUA5IUA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-dialog: 9.2.0(react-dom@18.2.0)(react@18.2.0)
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-input-number@8.0.4(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-TP+G5b7mZtbwXJ/YEZXF/OgbEZ6iqD4+RSuxZJ8VGKGXDcdt0FKIvpFoNQr/knspdFC4OxA0OfsWfFWfN4XSyA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/mini-decimal': 1.1.0
+ classnames: 2.3.2
+ rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-input@1.1.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-NTR1Z4em681L8/ewb2KR80RykSmN8I2mzqzJDCoUmTrV1BB9Hk5d7ha4TnfgdEPPL148N+603sW2LExSXk1IbA==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-mentions@2.7.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-tn0x79cpnVYP+MA+jyBqalmEni9Ct7xHuA9QHIf5vwd25FU+hngGZ8n6Dfua7XCr4LhkZYjfD/rZTGrvY2C1Xg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0)
+ rc-menu: 9.12.0(react-dom@18.2.0)(react@18.2.0)
+ rc-textarea: 1.3.4(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-menu@9.12.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Apr/fRf5EcqWJ4nphHV6dTGZcLPaPzwY44q9hAtLJysY4rkC9Eg+ekj3uFx6opPWVruV2sJNWq/Po+HHtO48CA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-notification@5.1.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-BPnded/WmWFE57ubqhVCgRSuedfQQNeSOYqdwppyr2B/Wt909gYFKyWAkFJVXuppAjsOGop05a93UaxjmUFdkg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-pagination@3.6.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-R/sUnKKXx1Nm4kZfUKS3YKa7yEPF1ZkVB/AynQaHt+nMER7h9wPTfliDJFdYo+RM/nk2JD4Yc5QpUq8fIQHeug==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-picker@3.14.2(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-+jKWhKydU2z5hgY0yenHQRx2nRLrHiRdPD8f2+Yg5ld6+Ah/mh1tV9ya1OPcEMqbqXCZXnKqqBv4mAEQm1oAyQ==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ date-fns: '>= 2.x'
+ dayjs: '>= 1.x'
+ luxon: '>= 3.x'
+ moment: '>= 2.x'
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ peerDependenciesMeta:
+ date-fns:
+ optional: true
+ dayjs:
+ optional: true
+ luxon:
+ optional: true
+ moment:
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ dayjs: 1.11.10
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-resize-observer@1.3.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ resize-observer-polyfill: 1.5.1
+ dev: false
+
+ /rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-select@14.8.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-+MDaHteiKRL4iID9Osm8zAZTe+g7/t5CjIfJJ4QhPAvwGUaNCa2kvkMqiXfOfGevscVa+agha1Ov938MeAotfQ==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ rc-virtual-list: 3.10.10(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-slider@10.2.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-l355C/65iV4UFp7mXq5xBTNX2/tF2g74VWiTVlTpNp+6vjE/xaHHNiQq5Af+Uu28uUiqCuH/QXs5HfADL9KJ/A==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-table@7.34.2(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-btFZOC0ZdtDXoUuFgQkmID9o8XJvpt1PRUKZZ5Nec0lXp6E5rcUZ/+ZDbnXlq17Fwz+8+3wr2O0aZ7kihJd5Nw==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ rc-virtual-list: 3.10.10(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-tabs@12.12.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-e10VBjEkECdPl4XZSs9to81SE+mgclBTM7J8/LMsFqmJoi05Tci91bRnmeeDtrcOCx2PuZdJv57XUlC4d8PEIw==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0)
+ rc-menu: 9.12.0(react-dom@18.2.0)(react@18.2.0)
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-textarea@1.3.4(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-wn0YjTpvcVolcfXa0HtzL+jgV2QcwtfB29RwNAKj8hMgZOju1V24M3TfEDjABeQEAQbUGbjMbISREOX/YSVKhg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0)
+ rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-tooltip@6.0.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ '@rc-component/trigger': 1.16.1(react-dom@18.2.0)(react@18.2.0)
+ classnames: 2.3.2
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-tree-select@5.12.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-/IC6gRgRoUBCOwZASOiF3onp1484fb+Gke5zuxgsi3ViP+O2UTUByS1jTZzjNooidRgdwiQJksq1zVaVYw2TPg==}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-select: 14.8.1(react-dom@18.2.0)(react@18.2.0)
+ rc-tree: 5.7.12(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-tree@5.7.12(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-LXA5nY2hG5koIAlHW5sgXgLpOMz+bFRbnZZ+cCg0tQs4Wv1AmY7EDi1SK7iFXhslYockbqUerQan82jljoaItg==}
+ engines: {node: '>=10.x'}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ rc-virtual-list: 3.10.10(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-upload@4.3.4(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /rc-util@5.37.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-is: 16.13.1
+ dev: false
+
+ /rc-virtual-list@3.10.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-EqNotqqRLzxFYce9JB/aDtP5fShvgwDVIuEKQeq9qfeNiKmsD4zf/UD+i0LppHtObzDUGtRFSf0HIOfb8FGSPA==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+ dependencies:
+ '@babel/runtime': 7.22.11
+ classnames: 2.3.2
+ rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
+ rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
/react-dom@18.2.0(react@18.2.0):
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
@@ -1562,6 +2375,33 @@ packages:
scheduler: 0.23.0
dev: false
+ /react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+ dev: false
+
+ /react-router-dom@6.16.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ react: '>=16.8'
+ react-dom: '>=16.8'
+ dependencies:
+ '@remix-run/router': 1.9.0
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-router: 6.16.0(react@18.2.0)
+ dev: false
+
+ /react-router@6.16.0(react@18.2.0):
+ resolution: {integrity: sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ react: '>=16.8'
+ dependencies:
+ '@remix-run/router': 1.9.0
+ react: 18.2.0
+ dev: false
+
/react@18.2.0:
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
engines: {node: '>=0.10.0'}
@@ -1575,6 +2415,10 @@ packages:
dependencies:
picomatch: 2.3.1
+ /regenerator-runtime@0.14.0:
+ resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
+ dev: false
+
/require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -1585,6 +2429,10 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
+ /resize-observer-polyfill@1.5.1:
+ resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
+ dev: false
+
/retry@0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: '>= 4'}
@@ -1611,6 +2459,12 @@ packages:
loose-envify: 1.4.0
dev: false
+ /scroll-into-view-if-needed@3.1.0:
+ resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==}
+ dependencies:
+ compute-scroll-into-view: 3.0.3
+ dev: false
+
/scrypt-js@3.0.1:
resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==}
dev: false
@@ -1656,6 +2510,10 @@ packages:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
+ /string-convert@0.2.1:
+ resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==}
+ dev: false
+
/string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -1684,6 +2542,10 @@ packages:
engines: {node: '>=12'}
dev: false
+ /stylis@4.3.0:
+ resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==}
+ dev: false
+
/table@6.8.1:
resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==}
engines: {node: '>=10.0.0'}
@@ -1695,12 +2557,21 @@ packages:
strip-ansi: 6.0.1
dev: false
+ /throttle-debounce@5.0.0:
+ resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==}
+ engines: {node: '>=12.22'}
+ dev: false
+
/to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
+ /toggle-selection@1.0.6:
+ resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
+ dev: false
+
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
dev: false
@@ -1854,16 +2725,15 @@ packages:
/zod@3.22.2:
resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==}
- dev: false
github.com/dapphub/ds-test/e282159d5170298eb2455a6c05280ab5a73a4ef0:
- resolution: {tarball: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0}
+ resolution: {commit: e282159d5170298eb2455a6c05280ab5a73a4ef0, repo: git+ssh://git@github.com/dapphub/ds-test.git, type: git}
name: ds-test
version: 1.0.0
dev: true
github.com/foundry-rs/forge-std/74cfb77e308dd188d2f58864aaf44963ae6b88b1:
- resolution: {tarball: https://codeload.github.com/foundry-rs/forge-std/tar.gz/74cfb77e308dd188d2f58864aaf44963ae6b88b1}
+ resolution: {commit: 74cfb77e308dd188d2f58864aaf44963ae6b88b1, repo: git+ssh://git@github.com/foundry-rs/forge-std.git, type: git}
name: forge-std
version: 1.6.0
dev: true
@@ -2458,7 +3328,7 @@ packages:
abitype: registry.npmmirror.com/abitype@0.9.3(typescript@5.1.6)(zod@3.22.2)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- react-router-dom: registry.npmmirror.com/react-router-dom@6.15.0(react-dom@18.2.0)(react@18.2.0)
+ react-router-dom: 6.16.0(react-dom@18.2.0)(react@18.2.0)
rxjs: registry.npmmirror.com/rxjs@7.5.5
tailwind-merge: registry.npmmirror.com/tailwind-merge@1.14.0
use-local-storage-state: registry.npmmirror.com/use-local-storage-state@18.3.3(react-dom@18.2.0)(react@18.2.0)
@@ -2756,13 +3626,6 @@ packages:
name: '@protobufjs/utf8'
version: 1.1.0
- registry.npmmirror.com/@remix-run/router@1.8.0:
- resolution: {integrity: sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@remix-run/router/-/router-1.8.0.tgz}
- name: '@remix-run/router'
- version: 1.8.0
- engines: {node: '>=14.0.0'}
- dev: false
-
registry.npmmirror.com/@scure/base@1.1.2:
resolution: {integrity: sha512-sSCrnIdaUZQHhBxZThMuk7Wm1TWzMD3uJNdGgx3JS23xSqevu0tAOsg8k66nL3R2NwQe65AI9GgqpPOgZys/eA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@scure/base/-/base-1.1.2.tgz}
name: '@scure/base'
@@ -3077,7 +3940,7 @@ packages:
optional: true
dependencies:
typescript: 5.1.6
- zod: registry.npmmirror.com/zod@3.22.2
+ zod: 3.22.2
registry.npmmirror.com/abort-controller-x@0.4.3:
resolution: {integrity: sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/abort-controller-x/-/abort-controller-x-0.4.3.tgz}
@@ -5442,35 +6305,6 @@ packages:
strip-json-comments: registry.npmmirror.com/strip-json-comments@2.0.1
dev: false
- registry.npmmirror.com/react-router-dom@6.15.0(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.15.0.tgz}
- id: registry.npmmirror.com/react-router-dom/6.15.0
- name: react-router-dom
- version: 6.15.0
- engines: {node: '>=14.0.0'}
- peerDependencies:
- react: '>=16.8'
- react-dom: '>=16.8'
- dependencies:
- '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.8.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-router: registry.npmmirror.com/react-router@6.15.0(react@18.2.0)
- dev: false
-
- registry.npmmirror.com/react-router@6.15.0(react@18.2.0):
- resolution: {integrity: sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.15.0.tgz}
- id: registry.npmmirror.com/react-router/6.15.0
- name: react-router
- version: 6.15.0
- engines: {node: '>=14.0.0'}
- peerDependencies:
- react: '>=16.8'
- dependencies:
- '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.8.0
- react: 18.2.0
- dev: false
-
registry.npmmirror.com/readable-stream@3.6.2:
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz}
name: readable-stream
From aa9b7f0aba87295dc0d219fb307326d083eba5ae Mon Sep 17 00:00:00 2001
From: vivomo <929992114@qq.com>
Date: Thu, 21 Sep 2023 03:12:26 +0800
Subject: [PATCH 02/14] feat: add avatar comp
---
.../client/src/assets/avatar/elephant.png | Bin 0 -> 9742 bytes
packages/client/src/assets/avatar/giraffe.png | Bin 0 -> 10489 bytes
packages/client/src/assets/avatar/hippo.png | Bin 0 -> 7479 bytes
packages/client/src/assets/avatar/monkey.png | Bin 0 -> 8864 bytes
packages/client/src/assets/avatar/panda.png | Bin 0 -> 7501 bytes
packages/client/src/assets/avatar/parrot.png | Bin 0 -> 8075 bytes
packages/client/src/assets/avatar/penguin.png | Bin 0 -> 7233 bytes
packages/client/src/assets/avatar/pig.png | Bin 0 -> 7352 bytes
packages/client/src/assets/avatar/rabbit.png | Bin 0 -> 9004 bytes
packages/client/src/assets/avatar/snake.png | Bin 0 -> 8053 bytes
packages/client/src/common.scss | 4 ++
.../src/components/AvatarSelector/index.tsx | 56 ++++++++++++++++++
.../src/components/AvatarSelector/styles.scss | 39 ++++++++++++
packages/client/src/pages/home/index.tsx | 42 +++++++++++--
packages/client/tsconfig.json | 7 ++-
packages/client/vite.config.ts | 6 ++
16 files changed, 147 insertions(+), 7 deletions(-)
create mode 100644 packages/client/src/assets/avatar/elephant.png
create mode 100644 packages/client/src/assets/avatar/giraffe.png
create mode 100644 packages/client/src/assets/avatar/hippo.png
create mode 100644 packages/client/src/assets/avatar/monkey.png
create mode 100644 packages/client/src/assets/avatar/panda.png
create mode 100644 packages/client/src/assets/avatar/parrot.png
create mode 100644 packages/client/src/assets/avatar/penguin.png
create mode 100644 packages/client/src/assets/avatar/pig.png
create mode 100644 packages/client/src/assets/avatar/rabbit.png
create mode 100644 packages/client/src/assets/avatar/snake.png
create mode 100644 packages/client/src/components/AvatarSelector/index.tsx
create mode 100644 packages/client/src/components/AvatarSelector/styles.scss
diff --git a/packages/client/src/assets/avatar/elephant.png b/packages/client/src/assets/avatar/elephant.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c4fdcc730b045c73caa49be14f289cd51b39866
GIT binary patch
literal 9742
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
literal 0
HcmV?d00001
diff --git a/packages/client/src/assets/avatar/giraffe.png b/packages/client/src/assets/avatar/giraffe.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1802c2195561dce2a41200d58099ff2e2277078
GIT binary patch
literal 10489
zcmVV@|5001b5NkllGqfv~&V3QOZ#R=G{
ztx*h-LAaip5EF`(4@4zsBt}SylopCrM5?rDb$XtedCi&Q^YOlWt+n^sdp%29Qbfix
z=j?Z{=Ur<(>!a%^&B&7*-It%azq|X?MtAtxBi*r8I{leL_}NGA?e65sC7$(Wch7)x
zK8$n5&-2tM6bEwRzV5DFKV1}6~V*AOQPgC6F?~xjZiVOhdCsKZ;?#G
zO96o8>a3?PONQ_i%9yacK&UuW@wxE%S~+VEUgoN^1}jgCpitI%nT5mhF(GBm-sf&b
zf+4}iv!+mJ$V+pdHI~)vmKHhn=vzB$3dKxd5VaX{t)V+UYmMjJpEbdgLa7`yXSD|K
ztQj;9oHbc@3PH1e(5wMGTLDdao)m&+L!jx|8$t(AYv)Yxq=b{*V(ZF?pfLvRss0e)
z(&9Pyon2(xDPhF2u>FOH_Vm)%mh1UPy2;rGZ4KJX3racwWtBdEZ0{_WoiU!nb6>G<
zN}xqiniq?LYZ&L&SG&n;Pj{2Izd2mrc&?kg@{|pTVggW$FDQT|fDvam=B)8-@Qf^g
zG}=4?N-#kPtC`n?5d-+%JTuOS7wNUH?|DhB;BnjWE0
zbUh%YerR|t-+MxC#ETTaw}p^hGeoyMYb_5HcZ(KAX->2}AcWOp!^E+Q->((Emncy}
ze|Jr1ja(?}J1G<+Z}Y-qwnjW3QsVDvgps+=S|c5Td}OY(hT`wh>!eU-y-kJU>ztrD
zs~X^$)9cjmHj#rYan>N6B6M(3C|SJCQlO~?p2#=WlH1JfX=;0(^g1cbZSLpUN*Z#n
z(mY&_E*I%pmwrL@Dy?o{u9H%~w<)M41mkK=PK?QUN*LfAh1!y{MtP7%S(nyXOUjj4
z6i=yMBt!*rULFitqf{veNhCSzvCRY4iki`y2ssKxlc+c(@ix79K(i_-Q?d*pC1E00O@!+0w<+9k@Tv2o{Z$N4KQ^{X{w_C+!ssnnLm9K?{PUiBIX
zB2Gu5L?noIS`61EYizBSwzW1eS~?Se^EfH>0;gaCyytOese_Cycj17oZ*6F_#IxrF
zcuKu_&S_X$`>I;a&=FJGt8{HuQ5iSZC#AS+~fw$x3EiCmqOEAFV&~f^#a-Xv_
z*O_a`F(L>Fdp@7r^l;A)*ym=qwZcBPc7JC2v-Fa!Jc#Mx?t|oxphRP*G>GDRXc$Sq
ze?14|UTay5#KX64c|{sPQry1e1$DSISf-Bm>w$mQ#;3oB`VUEmKQlN_#+(yt37}IRGYpx73UGkPex32DBon`LqM4JB{@&1#hlVZ@2<)X$_)i
z6{!KB)0}LcS{~zJ$V6&{qM1j=3k}aiD94_r=5Cv;0n)9Y@H+)jHNJ^>b^!c(jNgFU9Wg0&_SvUK}0YWKV`S*V+fO*&WYm
z=+cg&oUCw-gLEZjNggIid1KLc?Np&!LBRvv37-Q+uCaudx$3Q!GyiFM5j7|N)VR7K
z^~I#=txMZfy%2BF?bH?V