feat: home page

This commit is contained in:
wonfen
2025-03-14 13:31:34 +08:00
parent c25015ed54
commit 1f99cee78b
37 changed files with 4488 additions and 74 deletions

325
pnpm-lock.yaml generated
View File

@@ -64,6 +64,9 @@ importers:
"@tauri-apps/plugin-updater":
specifier: 2.3.0
version: 2.3.0
"@types/d3-shape":
specifier: ^3.1.7
version: 3.1.7
"@types/json-schema":
specifier: ^7.0.15
version: 7.0.15
@@ -76,6 +79,9 @@ importers:
cli-color:
specifier: ^2.0.4
version: 2.0.4
d3-shape:
specifier: ^3.2.0
version: 3.2.0
dayjs:
specifier: 1.11.13
version: 1.11.13
@@ -139,6 +145,9 @@ importers:
react-virtuoso:
specifier: ^4.6.3
version: 4.12.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
recharts:
specifier: ^2.15.1
version: 2.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
sockette:
specifier: ^2.0.6
version: 2.0.6
@@ -2321,6 +2330,60 @@ packages:
integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==,
}
"@types/d3-array@3.2.1":
resolution:
{
integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==,
}
"@types/d3-color@3.1.3":
resolution:
{
integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==,
}
"@types/d3-ease@3.0.2":
resolution:
{
integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==,
}
"@types/d3-interpolate@3.0.4":
resolution:
{
integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==,
}
"@types/d3-path@3.1.1":
resolution:
{
integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==,
}
"@types/d3-scale@4.0.9":
resolution:
{
integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==,
}
"@types/d3-shape@3.1.7":
resolution:
{
integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==,
}
"@types/d3-time@3.0.4":
resolution:
{
integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==,
}
"@types/d3-timer@3.0.2":
resolution:
{
integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==,
}
"@types/debug@4.1.12":
resolution:
{
@@ -2814,6 +2877,83 @@ packages:
integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==,
}
d3-array@3.2.4:
resolution:
{
integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==,
}
engines: { node: ">=12" }
d3-color@3.1.0:
resolution:
{
integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==,
}
engines: { node: ">=12" }
d3-ease@3.0.1:
resolution:
{
integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==,
}
engines: { node: ">=12" }
d3-format@3.1.0:
resolution:
{
integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==,
}
engines: { node: ">=12" }
d3-interpolate@3.0.1:
resolution:
{
integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==,
}
engines: { node: ">=12" }
d3-path@3.1.0:
resolution:
{
integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==,
}
engines: { node: ">=12" }
d3-scale@4.0.2:
resolution:
{
integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==,
}
engines: { node: ">=12" }
d3-shape@3.2.0:
resolution:
{
integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==,
}
engines: { node: ">=12" }
d3-time-format@4.1.0:
resolution:
{
integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==,
}
engines: { node: ">=12" }
d3-time@3.1.0:
resolution:
{
integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==,
}
engines: { node: ">=12" }
d3-timer@3.0.1:
resolution:
{
integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==,
}
engines: { node: ">=12" }
d@1.0.2:
resolution:
{
@@ -2846,6 +2986,12 @@ packages:
supports-color:
optional: true
decimal.js-light@2.5.1:
resolution:
{
integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==,
}
decode-named-character-reference@1.0.2:
resolution:
{
@@ -3015,6 +3161,12 @@ packages:
integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==,
}
eventemitter3@4.0.7:
resolution:
{
integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==,
}
execa@5.1.1:
resolution:
{
@@ -3034,6 +3186,13 @@ packages:
integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==,
}
fast-equals@5.2.2:
resolution:
{
integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==,
}
engines: { node: ">=6.0.0" }
fetch-blob@3.2.0:
resolution:
{
@@ -3251,6 +3410,13 @@ packages:
integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==,
}
internmap@2.0.3:
resolution:
{
integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==,
}
engines: { node: ">=12" }
intersection-observer@0.12.2:
resolution:
{
@@ -4129,6 +4295,12 @@ packages:
integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==,
}
react-is@18.3.1:
resolution:
{
integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==,
}
react-is@19.0.0:
resolution:
{
@@ -4180,6 +4352,15 @@ packages:
peerDependencies:
react: ">=16.8"
react-smooth@4.0.4:
resolution:
{
integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==,
}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-transition-group@4.4.5:
resolution:
{
@@ -4213,6 +4394,22 @@ packages:
}
engines: { node: ">= 14.18.0" }
recharts-scale@0.4.5:
resolution:
{
integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==,
}
recharts@2.15.1:
resolution:
{
integrity: sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q==,
}
engines: { node: ">=14" }
peerDependencies:
react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
regenerate-unicode-properties@10.2.0:
resolution:
{
@@ -4535,6 +4732,12 @@ packages:
}
engines: { node: ">=0.12" }
tiny-invariant@1.3.3:
resolution:
{
integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==,
}
to-regex-range@5.0.1:
resolution:
{
@@ -4699,6 +4902,12 @@ packages:
integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==,
}
victory-vendor@36.9.2:
resolution:
{
integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==,
}
vite-plugin-monaco-editor@1.1.0:
resolution:
{
@@ -6304,6 +6513,30 @@ snapshots:
dependencies:
"@babel/types": 7.26.7
"@types/d3-array@3.2.1": {}
"@types/d3-color@3.1.3": {}
"@types/d3-ease@3.0.2": {}
"@types/d3-interpolate@3.0.4":
dependencies:
"@types/d3-color": 3.1.3
"@types/d3-path@3.1.1": {}
"@types/d3-scale@4.0.9":
dependencies:
"@types/d3-time": 3.0.4
"@types/d3-shape@3.1.7":
dependencies:
"@types/d3-path": 3.1.1
"@types/d3-time@3.0.4": {}
"@types/d3-timer@3.0.2": {}
"@types/debug@4.1.12":
dependencies:
"@types/ms": 2.1.0
@@ -6579,6 +6812,44 @@ snapshots:
csstype@3.1.3: {}
d3-array@3.2.4:
dependencies:
internmap: 2.0.3
d3-color@3.1.0: {}
d3-ease@3.0.1: {}
d3-format@3.1.0: {}
d3-interpolate@3.0.1:
dependencies:
d3-color: 3.1.0
d3-path@3.1.0: {}
d3-scale@4.0.2:
dependencies:
d3-array: 3.2.4
d3-format: 3.1.0
d3-interpolate: 3.0.1
d3-time: 3.1.0
d3-time-format: 4.1.0
d3-shape@3.2.0:
dependencies:
d3-path: 3.1.0
d3-time-format@4.1.0:
dependencies:
d3-time: 3.1.0
d3-time@3.1.0:
dependencies:
d3-array: 3.2.4
d3-timer@3.0.1: {}
d@1.0.2:
dependencies:
es5-ext: 0.10.64
@@ -6592,6 +6863,8 @@ snapshots:
dependencies:
ms: 2.1.3
decimal.js-light@2.5.1: {}
decode-named-character-reference@1.0.2:
dependencies:
character-entities: 2.0.2
@@ -6708,6 +6981,8 @@ snapshots:
d: 1.0.2
es5-ext: 0.10.64
eventemitter3@4.0.7: {}
execa@5.1.1:
dependencies:
cross-spawn: 7.0.6
@@ -6726,6 +7001,8 @@ snapshots:
extend@3.0.2: {}
fast-equals@5.2.2: {}
fetch-blob@3.2.0:
dependencies:
node-domexception: 1.0.0
@@ -6862,6 +7139,8 @@ snapshots:
inline-style-parser@0.2.4: {}
internmap@2.0.3: {}
intersection-observer@0.12.2: {}
is-alphabetical@2.0.1: {}
@@ -7440,6 +7719,8 @@ snapshots:
react-is@16.13.1: {}
react-is@18.3.1: {}
react-is@19.0.0: {}
react-markdown@9.0.3(@types/react@18.3.18)(react@18.3.1):
@@ -7480,6 +7761,14 @@ snapshots:
"@remix-run/router": 1.22.0
react: 18.3.1
react-smooth@4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
fast-equals: 5.2.2
prop-types: 15.8.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
"@babel/runtime": 7.26.7
@@ -7500,6 +7789,23 @@ snapshots:
readdirp@4.1.1: {}
recharts-scale@0.4.5:
dependencies:
decimal.js-light: 2.5.1
recharts@2.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
clsx: 2.1.1
eventemitter3: 4.0.7
lodash: 4.17.21
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-is: 18.3.1
react-smooth: 4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
recharts-scale: 0.4.5
tiny-invariant: 1.3.3
victory-vendor: 36.9.2
regenerate-unicode-properties@10.2.0:
dependencies:
regenerate: 1.4.2
@@ -7703,6 +8009,8 @@ snapshots:
es5-ext: 0.10.64
next-tick: 1.1.0
tiny-invariant@1.3.3: {}
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -7795,6 +8103,23 @@ snapshots:
"@types/unist": 3.0.3
vfile-message: 4.0.2
victory-vendor@36.9.2:
dependencies:
"@types/d3-array": 3.2.1
"@types/d3-ease": 3.0.2
"@types/d3-interpolate": 3.0.4
"@types/d3-scale": 4.0.9
"@types/d3-shape": 3.1.7
"@types/d3-time": 3.0.4
"@types/d3-timer": 3.0.2
d3-array: 3.2.4
d3-ease: 3.0.1
d3-interpolate: 3.0.1
d3-scale: 4.0.2
d3-shape: 3.2.0
d3-time: 3.1.0
d3-timer: 3.0.1
vite-plugin-monaco-editor@1.1.0(monaco-editor@0.52.2):
dependencies:
monaco-editor: 0.52.2