perf: optimize scrollbar

This commit is contained in:
molvqingtai 2024-11-15 09:07:13 +08:00
parent eb37dd2833
commit c5185e419c
3 changed files with 101 additions and 96 deletions

View file

@ -51,7 +51,7 @@
"@radix-ui/react-checkbox": "^1.1.2", "@radix-ui/react-checkbox": "^1.1.2",
"@radix-ui/react-dropdown-menu": "^2.1.2", "@radix-ui/react-dropdown-menu": "^2.1.2",
"@radix-ui/react-hover-card": "^1.1.2", "@radix-ui/react-hover-card": "^1.1.2",
"@radix-ui/react-icons": "^1.3.1", "@radix-ui/react-icons": "^1.3.2",
"@radix-ui/react-label": "^2.1.0", "@radix-ui/react-label": "^2.1.0",
"@radix-ui/react-popover": "^1.1.2", "@radix-ui/react-popover": "^1.1.2",
"@radix-ui/react-portal": "^1.1.2", "@radix-ui/react-portal": "^1.1.2",
@ -65,13 +65,13 @@
"@rtco/client": "^0.2.17", "@rtco/client": "^0.2.17",
"@tailwindcss/typography": "^0.5.15", "@tailwindcss/typography": "^0.5.15",
"@webcomponents/custom-elements": "^1.6.0", "@webcomponents/custom-elements": "^1.6.0",
"@webext-core/messaging": "^2.0.2", "@webext-core/messaging": "^2.1.0",
"@webext-core/proxy-service": "^1.2.0", "@webext-core/proxy-service": "^1.2.0",
"class-variance-authority": "^0.7.0", "class-variance-authority": "^0.7.0",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"danmu": "^0.14.0", "danmu": "^0.14.0",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"framer-motion": "^11.11.13", "framer-motion": "^11.11.17",
"idb-keyval": "^6.2.1", "idb-keyval": "^6.2.1",
"lucide-react": "^0.456.0", "lucide-react": "^0.456.0",
"nanoid": "^5.0.8", "nanoid": "^5.0.8",
@ -102,8 +102,8 @@
"@semantic-release/exec": "^6.0.3", "@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1", "@semantic-release/git": "^10.0.1",
"@types/eslint": "^9.6.1", "@types/eslint": "^9.6.1",
"@types/eslint-plugin-tailwindcss": "^3.17.0",
"@types/eslint__js": "^8.42.3", "@types/eslint__js": "^8.42.3",
"@types/eslint-plugin-tailwindcss": "^3.17.0",
"@types/node": "^22.9.0", "@types/node": "^22.9.0",
"@types/react": "^18.3.12", "@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1", "@types/react-dom": "^18.3.1",
@ -125,13 +125,13 @@
"prettier": "^3.3.3", "prettier": "^3.3.3",
"rimraf": "^6.0.1", "rimraf": "^6.0.1",
"semantic-release": "^24.2.0", "semantic-release": "^24.2.0",
"tailwindcss": "^3.4.14", "tailwindcss": "^3.4.15",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"typescript": "^5.6.3", "typescript": "^5.6.3",
"typescript-eslint": "^8.14.0", "typescript-eslint": "^8.14.0",
"vite-plugin-svgr": "^4.3.0", "vite-plugin-svgr": "^4.3.0",
"webext-bridge": "^6.0.1", "webext-bridge": "^6.0.1",
"wxt": "^0.19.13" "wxt": "^0.19.15"
}, },
"lint-staged": { "lint-staged": {
"*.{js,jsx,ts,tsx}": "eslint --fix --flag unstable_ts_config" "*.{js,jsx,ts,tsx}": "eslint --fix --flag unstable_ts_config"

View file

@ -30,8 +30,8 @@ importers:
specifier: ^1.1.2 specifier: ^1.1.2
version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-icons': '@radix-ui/react-icons':
specifier: ^1.3.1 specifier: ^1.3.2
version: 1.3.1(react@18.3.1) version: 1.3.2(react@18.3.1)
'@radix-ui/react-label': '@radix-ui/react-label':
specifier: ^2.1.0 specifier: ^2.1.0
version: 2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@ -67,16 +67,16 @@ importers:
version: 0.2.17 version: 0.2.17
'@tailwindcss/typography': '@tailwindcss/typography':
specifier: ^0.5.15 specifier: ^0.5.15
version: 0.5.15(tailwindcss@3.4.14) version: 0.5.15(tailwindcss@3.4.15)
'@webcomponents/custom-elements': '@webcomponents/custom-elements':
specifier: ^1.6.0 specifier: ^1.6.0
version: 1.6.0 version: 1.6.0
'@webext-core/messaging': '@webext-core/messaging':
specifier: ^2.0.2 specifier: ^2.1.0
version: 2.0.2 version: 2.1.0
'@webext-core/proxy-service': '@webext-core/proxy-service':
specifier: ^1.2.0 specifier: ^1.2.0
version: 1.2.0(@webext-core/messaging@2.0.2)(webextension-polyfill@0.12.0) version: 1.2.0(@webext-core/messaging@2.1.0)(webextension-polyfill@0.12.0)
class-variance-authority: class-variance-authority:
specifier: ^0.7.0 specifier: ^0.7.0
version: 0.7.0 version: 0.7.0
@ -90,8 +90,8 @@ importers:
specifier: ^4.1.0 specifier: ^4.1.0
version: 4.1.0 version: 4.1.0
framer-motion: framer-motion:
specifier: ^11.11.13 specifier: ^11.11.17
version: 11.11.13(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 11.11.17(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
idb-keyval: idb-keyval:
specifier: ^6.2.1 specifier: ^6.2.1
version: 6.2.1 version: 6.2.1
@ -197,7 +197,7 @@ importers:
version: 8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3) version: 8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3)
'@vitejs/plugin-react': '@vitejs/plugin-react':
specifier: ^4.3.3 specifier: ^4.3.3
version: 4.3.3(vite@5.4.10(@types/node@22.9.0)) version: 4.3.3(vite@5.4.11(@types/node@22.9.0))
autoprefixer: autoprefixer:
specifier: ^10.4.20 specifier: ^10.4.20
version: 10.4.20(postcss@8.4.49) version: 10.4.20(postcss@8.4.49)
@ -215,7 +215,7 @@ importers:
version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@2.4.0)))(eslint@9.14.0(jiti@2.4.0))(prettier@3.3.3) version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@2.4.0)))(eslint@9.14.0(jiti@2.4.0))(prettier@3.3.3)
eslint-plugin-tailwindcss: eslint-plugin-tailwindcss:
specifier: ^3.17.5 specifier: ^3.17.5
version: 3.17.5(tailwindcss@3.4.14) version: 3.17.5(tailwindcss@3.4.15)
globals: globals:
specifier: ^15.12.0 specifier: ^15.12.0
version: 15.12.0 version: 15.12.0
@ -247,11 +247,11 @@ importers:
specifier: ^24.2.0 specifier: ^24.2.0
version: 24.2.0(typescript@5.6.3) version: 24.2.0(typescript@5.6.3)
tailwindcss: tailwindcss:
specifier: ^3.4.14 specifier: ^3.4.15
version: 3.4.14 version: 3.4.15
tailwindcss-animate: tailwindcss-animate:
specifier: ^1.0.7 specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.14) version: 1.0.7(tailwindcss@3.4.15)
typescript: typescript:
specifier: ^5.6.3 specifier: ^5.6.3
version: 5.6.3 version: 5.6.3
@ -260,13 +260,13 @@ importers:
version: 8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3) version: 8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3)
vite-plugin-svgr: vite-plugin-svgr:
specifier: ^4.3.0 specifier: ^4.3.0
version: 4.3.0(rollup@4.21.3)(typescript@5.6.3)(vite@5.4.10(@types/node@22.9.0)) version: 4.3.0(rollup@4.21.3)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0))
webext-bridge: webext-bridge:
specifier: ^6.0.1 specifier: ^6.0.1
version: 6.0.1 version: 6.0.1
wxt: wxt:
specifier: ^0.19.13 specifier: ^0.19.15
version: 0.19.13(@types/node@22.9.0)(bufferutil@4.0.8)(rollup@4.21.3)(utf-8-validate@6.0.4) version: 0.19.15(@types/node@22.9.0)(bufferutil@4.0.8)(rollup@4.21.3)(utf-8-validate@6.0.4)
packages: packages:
@ -1076,10 +1076,10 @@ packages:
'@types/react-dom': '@types/react-dom':
optional: true optional: true
'@radix-ui/react-icons@1.3.1': '@radix-ui/react-icons@1.3.2':
resolution: {integrity: sha512-QvYompk0X+8Yjlo/Fv4McrzxohDdM5GgLHyQcPpcsPvlOSXCGFjdbuyGL5dzRbg0GpknAjQJJZzdiRK7iWVuFQ==} resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==}
peerDependencies: peerDependencies:
react: ^16.x || ^17.x || ^18.x || ^19.x react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc
'@radix-ui/react-id@1.1.0': '@radix-ui/react-id@1.1.0':
resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
@ -1570,8 +1570,8 @@ packages:
'@types/babel__traverse@7.20.6': '@types/babel__traverse@7.20.6':
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
'@types/chrome@0.0.269': '@types/chrome@0.0.280':
resolution: {integrity: sha512-vF7x8YywnhXX2F06njQ/OE7a3Qeful43C5GUOsUksXWk89WoSFUU3iLeZW8lDpVO9atm8iZIEiLQTRC3H7NOXQ==} resolution: {integrity: sha512-AotSmZrL9bcZDDmSI1D9dE7PGbhOur5L0cKxXd7IqbVizQWCY4gcvupPUVsQ4FfDj3V2tt/iOpomT9EY0s+w1g==}
'@types/conventional-commits-parser@5.0.0': '@types/conventional-commits-parser@5.0.0':
resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==}
@ -1651,8 +1651,8 @@ packages:
'@types/unist@3.0.3': '@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
'@types/webextension-polyfill@0.10.7': '@types/webextension-polyfill@0.12.1':
resolution: {integrity: sha512-10ql7A0qzBmFB+F+qAke/nP1PIonS0TXZAOMVOxEUsm+lGSW6uwVcISFNa0I4Oyj0884TZVWGGMIWeXOVSNFHw==} resolution: {integrity: sha512-xPTFWwQ8BxPevPF2IKsf4hpZNss4LxaOLZXypQH4E63BDLmcwX/RMGdI4tB4VO4Nb6xDBH3F/p4gz4wvof1o9w==}
'@types/webextension-polyfill@0.8.3': '@types/webextension-polyfill@0.8.3':
resolution: {integrity: sha512-GN+Hjzy9mXjWoXKmaicTegv3FJ0WFZ3aYz77Wk8TMp1IY3vEzvzj1vnsa0ggV7vMI1i+PUxe4qqnIJKCzf9aTg==} resolution: {integrity: sha512-GN+Hjzy9mXjWoXKmaicTegv3FJ0WFZ3aYz77Wk8TMp1IY3vEzvzj1vnsa0ggV7vMI1i+PUxe4qqnIJKCzf9aTg==}
@ -1738,8 +1738,8 @@ packages:
'@webext-core/match-patterns@1.0.3': '@webext-core/match-patterns@1.0.3':
resolution: {integrity: sha512-NY39ACqCxdKBmHgw361M9pfJma8e4AZo20w9AY+5ZjIj1W2dvXC8J31G5fjfOGbulW9w4WKpT8fPooi0mLkn9A==} resolution: {integrity: sha512-NY39ACqCxdKBmHgw361M9pfJma8e4AZo20w9AY+5ZjIj1W2dvXC8J31G5fjfOGbulW9w4WKpT8fPooi0mLkn9A==}
'@webext-core/messaging@2.0.2': '@webext-core/messaging@2.1.0':
resolution: {integrity: sha512-915LXfDSB6Gx/ahTVB3ajCGPb4G3xz0rJmGiM6zDR9ULdHoCYmW2Xi+kmAD2WaQ65alit1uYEiGzzEuZiSqpvA==} resolution: {integrity: sha512-1Bwr97HDMRQJ+XFwvhAvE4fdHK7Ge1o3NHxr/Cyv5yYCDAfz6cSzQaopeGZkkW/kN5eBRb1g3yonVwXC5ZXt8w==}
'@webext-core/proxy-service@1.2.0': '@webext-core/proxy-service@1.2.0':
resolution: {integrity: sha512-MCUadVakeb7L47AvdtlbJfBUDjFdejr5t4E2WrwZagnev3a5I/xh2wHCkE+G0ihO/VUt/m0R1MPX+y4YVFRyPA==} resolution: {integrity: sha512-MCUadVakeb7L47AvdtlbJfBUDjFdejr5t4E2WrwZagnev3a5I/xh2wHCkE+G0ihO/VUt/m0R1MPX+y4YVFRyPA==}
@ -1747,6 +1747,9 @@ packages:
'@webext-core/messaging': '>=1.3.1' '@webext-core/messaging': '>=1.3.1'
webextension-polyfill: ^0.10.0 webextension-polyfill: ^0.10.0
'@wxt-dev/storage@1.0.0':
resolution: {integrity: sha512-Pr0nZUnA6ElAIq5yl+GdZfvhAI3/wXf7ZdwOHShI2VtDirfgo+tBFQZ123f86l5i81v7FfvrQi3WFSzojcRsJw==}
'@xobotyi/scrollbar-width@1.9.5': '@xobotyi/scrollbar-width@1.9.5':
resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
@ -2056,8 +2059,8 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
ci-info@4.0.0: ci-info@4.1.0:
resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==}
engines: {node: '>=8'} engines: {node: '>=8'}
citty@0.1.6: citty@0.1.6:
@ -2526,6 +2529,9 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
es-module-lexer@1.5.4:
resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
es-object-atoms@1.0.0: es-object-atoms@1.0.0:
resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -2830,8 +2836,8 @@ packages:
fraction.js@4.3.7: fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
framer-motion@11.11.13: framer-motion@11.11.17:
resolution: {integrity: sha512-aoEA83gsqRRsnh4TN7S9YNcKVLrg+GtPNnxNMd9bGn23+pLmuKGQeccPnqffEKzlkgmy2MkMo0jRkK41S2LzWw==} resolution: {integrity: sha512-O8QzvoKiuzI5HSAHbcYuL6xU+ZLXbrH7C8Akaato4JzQbX2ULNeniqC2Vo5eiCtFktX9XsJ+7nUhxcl2E2IjpA==}
peerDependencies: peerDependencies:
'@emotion/is-prop-valid': '*' '@emotion/is-prop-valid': '*'
react: ^18.0.0 react: ^18.0.0
@ -3990,8 +3996,8 @@ packages:
react: '*' react: '*'
react-dom: '*' react-dom: '*'
nano-spawn@0.1.0: nano-spawn@0.2.0:
resolution: {integrity: sha512-Q0fYRut0GGSoysqrS6hF1jlQEc3yOglnGXwsS+DcoaLwu6NCkUxOB8om08hvUF0V+bNRjExzKM3v8ATbfrLWyQ==} resolution: {integrity: sha512-IjZBIOLxSlxu+m/kacg9JuP93oUpRemeV0mEuCy64nzBKKIL9m0aLJHtVPcVuzJDHFhElzjpwbW4a3tMzgKoZQ==}
engines: {node: '>=18.19'} engines: {node: '>=18.19'}
nanoevents@6.0.2: nanoevents@6.0.2:
@ -4192,9 +4198,6 @@ packages:
resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
ofetch@1.3.4:
resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==}
ofetch@1.4.1: ofetch@1.4.1:
resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==}
@ -4236,8 +4239,8 @@ packages:
resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
ora@8.1.0: ora@8.1.1:
resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==}
engines: {node: '>=18'} engines: {node: '>=18'}
os-shim@0.1.3: os-shim@0.1.3:
@ -5181,8 +5184,8 @@ packages:
peerDependencies: peerDependencies:
tailwindcss: '>=3.0.0 || insiders' tailwindcss: '>=3.0.0 || insiders'
tailwindcss@3.4.14: tailwindcss@3.4.15:
resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} resolution: {integrity: sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
hasBin: true hasBin: true
@ -5549,8 +5552,8 @@ packages:
vfile@6.0.3: vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
vite-node@2.1.3: vite-node@2.1.5:
resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true hasBin: true
@ -5559,8 +5562,8 @@ packages:
peerDependencies: peerDependencies:
vite: '>=2.6.0' vite: '>=2.6.0'
vite@5.4.10: vite@5.4.11:
resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -5695,8 +5698,8 @@ packages:
utf-8-validate: utf-8-validate:
optional: true optional: true
wxt@0.19.13: wxt@0.19.15:
resolution: {integrity: sha512-iWtMkCo6Puy3UsxQ7x0HQSYqxOz6Vu2vZ/BB/lzKMCrkrmlXj4IUAEqjEcQCdBRTkiGTx0f8qFtrA+o9QtUe7w==} resolution: {integrity: sha512-Y3wLr5DZpu0XjsOBqs1Wafcvgup7d2L+IpmkZHli2dw0VVhSqssYrKatpprKSDj0i0/SW9esSeooEI2id8/G3Q==}
hasBin: true hasBin: true
xdg-basedir@5.1.0: xdg-basedir@5.1.0:
@ -6639,7 +6642,7 @@ snapshots:
'@types/react': 18.3.12 '@types/react': 18.3.12
'@types/react-dom': 18.3.1 '@types/react-dom': 18.3.1
'@radix-ui/react-icons@1.3.1(react@18.3.1)': '@radix-ui/react-icons@1.3.2(react@18.3.1)':
dependencies: dependencies:
react: 18.3.1 react: 18.3.1
@ -7147,13 +7150,13 @@ snapshots:
dependencies: dependencies:
defer-to-connect: 2.0.1 defer-to-connect: 2.0.1
'@tailwindcss/typography@0.5.15(tailwindcss@3.4.14)': '@tailwindcss/typography@0.5.15(tailwindcss@3.4.15)':
dependencies: dependencies:
lodash.castarray: 4.4.0 lodash.castarray: 4.4.0
lodash.isplainobject: 4.0.6 lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2 lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10 postcss-selector-parser: 6.0.10
tailwindcss: 3.4.14 tailwindcss: 3.4.15
'@types/babel__core@7.20.5': '@types/babel__core@7.20.5':
dependencies: dependencies:
@ -7176,7 +7179,7 @@ snapshots:
dependencies: dependencies:
'@babel/types': 7.25.6 '@babel/types': 7.25.6
'@types/chrome@0.0.269': '@types/chrome@0.0.280':
dependencies: dependencies:
'@types/filesystem': 0.0.36 '@types/filesystem': 0.0.36
'@types/har-format': 1.2.15 '@types/har-format': 1.2.15
@ -7259,7 +7262,7 @@ snapshots:
'@types/unist@3.0.3': {} '@types/unist@3.0.3': {}
'@types/webextension-polyfill@0.10.7': {} '@types/webextension-polyfill@0.12.1': {}
'@types/webextension-polyfill@0.8.3': {} '@types/webextension-polyfill@0.8.3': {}
@ -7351,14 +7354,14 @@ snapshots:
'@ungap/structured-clone@1.2.0': {} '@ungap/structured-clone@1.2.0': {}
'@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.9.0))': '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@22.9.0))':
dependencies: dependencies:
'@babel/core': 7.25.2 '@babel/core': 7.25.2
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
'@types/babel__core': 7.20.5 '@types/babel__core': 7.20.5
react-refresh: 0.14.2 react-refresh: 0.14.2
vite: 5.4.10(@types/node@22.9.0) vite: 5.4.11(@types/node@22.9.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -7374,18 +7377,23 @@ snapshots:
'@webext-core/match-patterns@1.0.3': {} '@webext-core/match-patterns@1.0.3': {}
'@webext-core/messaging@2.0.2': '@webext-core/messaging@2.1.0':
dependencies: dependencies:
serialize-error: 11.0.3 serialize-error: 11.0.3
uid: 2.0.2 uid: 2.0.2
webextension-polyfill: 0.10.0 webextension-polyfill: 0.10.0
'@webext-core/proxy-service@1.2.0(@webext-core/messaging@2.0.2)(webextension-polyfill@0.12.0)': '@webext-core/proxy-service@1.2.0(@webext-core/messaging@2.1.0)(webextension-polyfill@0.12.0)':
dependencies: dependencies:
'@webext-core/messaging': 2.0.2 '@webext-core/messaging': 2.1.0
get-value: 3.0.1 get-value: 3.0.1
webextension-polyfill: 0.12.0 webextension-polyfill: 0.12.0
'@wxt-dev/storage@1.0.0':
dependencies:
async-mutex: 0.5.0
dequal: 2.0.3
'@xobotyi/scrollbar-width@1.9.5': {} '@xobotyi/scrollbar-width@1.9.5': {}
JSONStream@1.3.5: JSONStream@1.3.5:
@ -7708,7 +7716,7 @@ snapshots:
ci-info@3.9.0: {} ci-info@3.9.0: {}
ci-info@4.0.0: {} ci-info@4.1.0: {}
citty@0.1.6: citty@0.1.6:
dependencies: dependencies:
@ -8216,6 +8224,8 @@ snapshots:
es-errors@1.3.0: {} es-errors@1.3.0: {}
es-module-lexer@1.5.4: {}
es-object-atoms@1.0.0: es-object-atoms@1.0.0:
dependencies: dependencies:
es-errors: 1.3.0 es-errors: 1.3.0
@ -8404,11 +8414,11 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-plugin-tailwindcss@3.17.5(tailwindcss@3.4.14): eslint-plugin-tailwindcss@3.17.5(tailwindcss@3.4.15):
dependencies: dependencies:
fast-glob: 3.3.2 fast-glob: 3.3.2
postcss: 8.4.49 postcss: 8.4.49
tailwindcss: 3.4.14 tailwindcss: 3.4.15
eslint-scope@8.2.0: eslint-scope@8.2.0:
dependencies: dependencies:
@ -8652,7 +8662,7 @@ snapshots:
fraction.js@4.3.7: {} fraction.js@4.3.7: {}
framer-motion@11.11.13(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): framer-motion@11.11.17(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies: dependencies:
tslib: 2.7.0 tslib: 2.7.0
optionalDependencies: optionalDependencies:
@ -10007,7 +10017,7 @@ snapshots:
stacktrace-js: 2.0.2 stacktrace-js: 2.0.2
stylis: 4.3.4 stylis: 4.3.4
nano-spawn@0.1.0: {} nano-spawn@0.2.0: {}
nanoevents@6.0.2: {} nanoevents@6.0.2: {}
@ -10133,12 +10143,6 @@ snapshots:
has-symbols: 1.0.3 has-symbols: 1.0.3
object-keys: 1.1.1 object-keys: 1.1.1
ofetch@1.3.4:
dependencies:
destr: 2.0.3
node-fetch-native: 1.6.4
ufo: 1.5.4
ofetch@1.4.1: ofetch@1.4.1:
dependencies: dependencies:
destr: 2.0.3 destr: 2.0.3
@ -10204,7 +10208,7 @@ snapshots:
strip-ansi: 7.1.0 strip-ansi: 7.1.0
wcwidth: 1.0.1 wcwidth: 1.0.1
ora@8.1.0: ora@8.1.1:
dependencies: dependencies:
chalk: 5.3.0 chalk: 5.3.0
cli-cursor: 5.0.0 cli-cursor: 5.0.0
@ -10477,7 +10481,7 @@ snapshots:
lodash.camelcase: 4.3.0 lodash.camelcase: 4.3.0
lodash.kebabcase: 4.1.1 lodash.kebabcase: 4.1.1
lodash.snakecase: 4.1.1 lodash.snakecase: 4.1.1
ofetch: 1.3.4 ofetch: 1.4.1
open: 9.1.0 open: 9.1.0
ora: 6.3.1 ora: 6.3.1
prompts: 2.4.2 prompts: 2.4.2
@ -11227,11 +11231,11 @@ snapshots:
tailwind-merge@2.5.4: {} tailwind-merge@2.5.4: {}
tailwindcss-animate@1.0.7(tailwindcss@3.4.14): tailwindcss-animate@1.0.7(tailwindcss@3.4.15):
dependencies: dependencies:
tailwindcss: 3.4.14 tailwindcss: 3.4.15
tailwindcss@3.4.14: tailwindcss@3.4.15:
dependencies: dependencies:
'@alloc/quick-lru': 5.2.0 '@alloc/quick-lru': 5.2.0
arg: 5.0.2 arg: 5.0.2
@ -11246,7 +11250,7 @@ snapshots:
micromatch: 4.0.8 micromatch: 4.0.8
normalize-path: 3.0.0 normalize-path: 3.0.0
object-hash: 3.0.0 object-hash: 3.0.0
picocolors: 1.1.0 picocolors: 1.1.1
postcss: 8.4.49 postcss: 8.4.49
postcss-import: 15.1.0(postcss@8.4.49) postcss-import: 15.1.0(postcss@8.4.49)
postcss-js: 4.0.1(postcss@8.4.49) postcss-js: 4.0.1(postcss@8.4.49)
@ -11452,7 +11456,7 @@ snapshots:
unimport@3.13.1(rollup@4.21.3): unimport@3.13.1(rollup@4.21.3):
dependencies: dependencies:
'@rollup/pluginutils': 5.1.3(rollup@4.21.3) '@rollup/pluginutils': 5.1.3(rollup@4.21.3)
acorn: 8.12.1 acorn: 8.14.0
escape-string-regexp: 5.0.0 escape-string-regexp: 5.0.0
estree-walker: 3.0.3 estree-walker: 3.0.3
fast-glob: 3.3.2 fast-glob: 3.3.2
@ -11503,7 +11507,7 @@ snapshots:
unplugin@1.14.1: unplugin@1.14.1:
dependencies: dependencies:
acorn: 8.12.1 acorn: 8.14.0
webpack-virtual-modules: 0.6.2 webpack-virtual-modules: 0.6.2
unstorage@1.13.1(idb-keyval@6.2.1): unstorage@1.13.1(idb-keyval@6.2.1):
@ -11606,12 +11610,13 @@ snapshots:
'@types/unist': 3.0.3 '@types/unist': 3.0.3
vfile-message: 4.0.2 vfile-message: 4.0.2
vite-node@2.1.3(@types/node@22.9.0): vite-node@2.1.5(@types/node@22.9.0):
dependencies: dependencies:
cac: 6.7.14 cac: 6.7.14
debug: 4.3.7 debug: 4.3.7
es-module-lexer: 1.5.4
pathe: 1.1.2 pathe: 1.1.2
vite: 5.4.10(@types/node@22.9.0) vite: 5.4.11(@types/node@22.9.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@ -11623,18 +11628,18 @@ snapshots:
- supports-color - supports-color
- terser - terser
vite-plugin-svgr@4.3.0(rollup@4.21.3)(typescript@5.6.3)(vite@5.4.10(@types/node@22.9.0)): vite-plugin-svgr@4.3.0(rollup@4.21.3)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)):
dependencies: dependencies:
'@rollup/pluginutils': 5.1.3(rollup@4.21.3) '@rollup/pluginutils': 5.1.3(rollup@4.21.3)
'@svgr/core': 8.1.0(typescript@5.6.3) '@svgr/core': 8.1.0(typescript@5.6.3)
'@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3)) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3))
vite: 5.4.10(@types/node@22.9.0) vite: 5.4.11(@types/node@22.9.0)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- supports-color - supports-color
- typescript - typescript
vite@5.4.10(@types/node@22.9.0): vite@5.4.11(@types/node@22.9.0):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.4.49 postcss: 8.4.49
@ -11777,22 +11782,22 @@ snapshots:
bufferutil: 4.0.8 bufferutil: 4.0.8
utf-8-validate: 6.0.4 utf-8-validate: 6.0.4
wxt@0.19.13(@types/node@22.9.0)(bufferutil@4.0.8)(rollup@4.21.3)(utf-8-validate@6.0.4): wxt@0.19.15(@types/node@22.9.0)(bufferutil@4.0.8)(rollup@4.21.3)(utf-8-validate@6.0.4):
dependencies: dependencies:
'@aklinker1/rollup-plugin-visualizer': 5.12.0(rollup@4.21.3) '@aklinker1/rollup-plugin-visualizer': 5.12.0(rollup@4.21.3)
'@types/chrome': 0.0.269 '@types/chrome': 0.0.280
'@types/webextension-polyfill': 0.10.7 '@types/webextension-polyfill': 0.12.1
'@webext-core/fake-browser': 1.3.1 '@webext-core/fake-browser': 1.3.1
'@webext-core/isolated-element': 1.1.2 '@webext-core/isolated-element': 1.1.2
'@webext-core/match-patterns': 1.0.3 '@webext-core/match-patterns': 1.0.3
'@wxt-dev/storage': 1.0.0
async-mutex: 0.5.0 async-mutex: 0.5.0
c12: 1.11.2(magicast@0.3.5) c12: 1.11.2(magicast@0.3.5)
cac: 6.7.14 cac: 6.7.14
chokidar: 3.6.0 chokidar: 3.6.0
ci-info: 4.0.0 ci-info: 4.1.0
consola: 3.2.3 consola: 3.2.3
defu: 6.1.4 defu: 6.1.4
dequal: 2.0.3
dotenv: 16.4.5 dotenv: 16.4.5
esbuild: 0.21.5 esbuild: 0.21.5
fast-glob: 3.3.2 fast-glob: 3.3.2
@ -11808,20 +11813,20 @@ snapshots:
linkedom: 0.18.5 linkedom: 0.18.5
magicast: 0.3.5 magicast: 0.3.5
minimatch: 10.0.1 minimatch: 10.0.1
nano-spawn: 0.1.0 nano-spawn: 0.2.0
normalize-path: 3.0.0 normalize-path: 3.0.0
nypm: 0.3.12 nypm: 0.3.12
ohash: 1.1.4 ohash: 1.1.4
open: 10.1.0 open: 10.1.0
ora: 8.1.0 ora: 8.1.1
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
picocolors: 1.1.0 picocolors: 1.1.1
prompts: 2.4.2 prompts: 2.4.2
publish-browser-extension: 2.2.2 publish-browser-extension: 2.2.2
scule: 1.3.0 scule: 1.3.0
unimport: 3.13.1(rollup@4.21.3) unimport: 3.13.1(rollup@4.21.3)
vite: 5.4.10(@types/node@22.9.0) vite: 5.4.11(@types/node@22.9.0)
vite-node: 2.1.3(@types/node@22.9.0) vite-node: 2.1.5(@types/node@22.9.0)
web-ext-run: 0.2.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) web-ext-run: 0.2.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)
webextension-polyfill: 0.12.0 webextension-polyfill: 0.12.0
transitivePeerDependencies: transitivePeerDependencies:

View file

@ -57,7 +57,7 @@ const Header: FC = () => {
</Button> </Button>
</HoverCardTrigger> </HoverCardTrigger>
<HoverCardContent className="w-80 rounded-lg p-0"> <HoverCardContent className="w-80 rounded-lg p-0">
<ScrollArea className="max-h-96 min-h-[72px] p-2" ref={setVirtualOnlineGroupScrollParentRef}> <ScrollArea type="scroll" className="max-h-96 min-h-[72px] p-2" ref={setVirtualOnlineGroupScrollParentRef}>
<Virtuoso <Virtuoso
data={virtualOnlineGroup} data={virtualOnlineGroup}
defaultItemHeight={56} defaultItemHeight={56}
@ -149,7 +149,7 @@ const Header: FC = () => {
</Button> </Button>
</HoverCardTrigger> </HoverCardTrigger>
<HoverCardContent className="w-36 rounded-lg p-0"> <HoverCardContent className="w-36 rounded-lg p-0">
<ScrollArea className="max-h-[204px] min-h-9 p-1" ref={setChatUserListScrollParentRef}> <ScrollArea type="scroll" className="max-h-[204px] min-h-9 p-1" ref={setChatUserListScrollParentRef}>
<Virtuoso <Virtuoso
data={chatUserList} data={chatUserList}
defaultItemHeight={28} defaultItemHeight={28}