perf: app show hide toggle
This commit is contained in:
parent
f36ae70146
commit
ca1ea11dcb
16 changed files with 315 additions and 276 deletions
12
package.json
12
package.json
|
@ -58,16 +58,16 @@
|
||||||
"@radix-ui/react-slot": "^1.1.0",
|
"@radix-ui/react-slot": "^1.1.0",
|
||||||
"@radix-ui/react-switch": "^1.1.0",
|
"@radix-ui/react-switch": "^1.1.0",
|
||||||
"@resreq/event-hub": "^1.6.0",
|
"@resreq/event-hub": "^1.6.0",
|
||||||
"@resreq/timer": "^1.1.5",
|
"@resreq/timer": "^1.1.6",
|
||||||
"@rtco/client": "^0.2.17",
|
"@rtco/client": "^0.2.17",
|
||||||
"@tailwindcss/typography": "^0.5.15",
|
"@tailwindcss/typography": "^0.5.15",
|
||||||
"@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",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"framer-motion": "^11.5.6",
|
"framer-motion": "^11.7.0",
|
||||||
"idb-keyval": "^6.2.1",
|
"idb-keyval": "^6.2.1",
|
||||||
"lucide-react": "^0.445.0",
|
"lucide-react": "^0.446.0",
|
||||||
"nanoid": "^5.0.7",
|
"nanoid": "^5.0.7",
|
||||||
"next-themes": "^0.3.0",
|
"next-themes": "^0.3.0",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
|
@ -96,9 +96,9 @@
|
||||||
"@eslint-react/eslint-plugin": "^1.14.2",
|
"@eslint-react/eslint-plugin": "^1.14.2",
|
||||||
"@eslint/js": "^9.11.1",
|
"@eslint/js": "^9.11.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/node": "^22.6.1",
|
"@types/eslint-plugin-tailwindcss": "^3.17.0",
|
||||||
|
"@types/node": "^22.7.2",
|
||||||
"@types/react": "^18.3.9",
|
"@types/react": "^18.3.9",
|
||||||
"@types/react-dom": "^18.3.0",
|
"@types/react-dom": "^18.3.0",
|
||||||
"@types/webextension-polyfill": "^0.12.1",
|
"@types/webextension-polyfill": "^0.12.1",
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
"eslint-plugin-tailwindcss": "^3.17.4",
|
"eslint-plugin-tailwindcss": "^3.17.4",
|
||||||
"globals": "^15.9.0",
|
"globals": "^15.9.0",
|
||||||
"husky": "^9.1.6",
|
"husky": "^9.1.6",
|
||||||
"jiti": "^1.21.6",
|
"jiti": "^2.0.0",
|
||||||
"lint-staged": "^15.2.10",
|
"lint-staged": "^15.2.10",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"postcss": "^8.4.47",
|
"postcss": "^8.4.47",
|
||||||
|
|
370
pnpm-lock.yaml
370
pnpm-lock.yaml
|
@ -51,8 +51,8 @@ importers:
|
||||||
specifier: ^1.6.0
|
specifier: ^1.6.0
|
||||||
version: 1.6.0
|
version: 1.6.0
|
||||||
'@resreq/timer':
|
'@resreq/timer':
|
||||||
specifier: ^1.1.5
|
specifier: ^1.1.6
|
||||||
version: 1.1.5
|
version: 1.1.6
|
||||||
'@rtco/client':
|
'@rtco/client':
|
||||||
specifier: ^0.2.17
|
specifier: ^0.2.17
|
||||||
version: 0.2.17
|
version: 0.2.17
|
||||||
|
@ -72,14 +72,14 @@ importers:
|
||||||
specifier: ^4.1.0
|
specifier: ^4.1.0
|
||||||
version: 4.1.0
|
version: 4.1.0
|
||||||
framer-motion:
|
framer-motion:
|
||||||
specifier: ^11.5.6
|
specifier: ^11.7.0
|
||||||
version: 11.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 11.7.0(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
|
||||||
lucide-react:
|
lucide-react:
|
||||||
specifier: ^0.445.0
|
specifier: ^0.446.0
|
||||||
version: 0.445.0(react@18.3.1)
|
version: 0.446.0(react@18.3.1)
|
||||||
nanoid:
|
nanoid:
|
||||||
specifier: ^5.0.7
|
specifier: ^5.0.7
|
||||||
version: 5.0.7
|
version: 5.0.7
|
||||||
|
@ -146,13 +146,13 @@ importers:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@commitlint/cli':
|
'@commitlint/cli':
|
||||||
specifier: ^19.5.0
|
specifier: ^19.5.0
|
||||||
version: 19.5.0(@types/node@22.6.1)(typescript@5.6.2)
|
version: 19.5.0(@types/node@22.7.2)(typescript@5.6.2)
|
||||||
'@commitlint/config-conventional':
|
'@commitlint/config-conventional':
|
||||||
specifier: ^19.5.0
|
specifier: ^19.5.0
|
||||||
version: 19.5.0
|
version: 19.5.0
|
||||||
'@eslint-react/eslint-plugin':
|
'@eslint-react/eslint-plugin':
|
||||||
specifier: ^1.14.2
|
specifier: ^1.14.2
|
||||||
version: 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
version: 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint/js':
|
'@eslint/js':
|
||||||
specifier: ^9.11.1
|
specifier: ^9.11.1
|
||||||
version: 9.11.1
|
version: 9.11.1
|
||||||
|
@ -166,8 +166,8 @@ importers:
|
||||||
specifier: ^8.42.3
|
specifier: ^8.42.3
|
||||||
version: 8.42.3
|
version: 8.42.3
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^22.6.1
|
specifier: ^22.7.2
|
||||||
version: 22.6.1
|
version: 22.7.2
|
||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: ^18.3.9
|
specifier: ^18.3.9
|
||||||
version: 18.3.9
|
version: 18.3.9
|
||||||
|
@ -179,10 +179,10 @@ importers:
|
||||||
version: 0.12.1
|
version: 0.12.1
|
||||||
'@typescript-eslint/parser':
|
'@typescript-eslint/parser':
|
||||||
specifier: ^8.7.0
|
specifier: ^8.7.0
|
||||||
version: 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
version: 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@vitejs/plugin-react':
|
'@vitejs/plugin-react':
|
||||||
specifier: ^4.3.1
|
specifier: ^4.3.1
|
||||||
version: 4.3.1(vite@5.4.5(@types/node@22.6.1))
|
version: 4.3.1(vite@5.4.5(@types/node@22.7.2))
|
||||||
autoprefixer:
|
autoprefixer:
|
||||||
specifier: ^10.4.20
|
specifier: ^10.4.20
|
||||||
version: 10.4.20(postcss@8.4.47)
|
version: 10.4.20(postcss@8.4.47)
|
||||||
|
@ -191,13 +191,13 @@ importers:
|
||||||
version: 7.0.3
|
version: 7.0.3
|
||||||
eslint:
|
eslint:
|
||||||
specifier: ^9.11.1
|
specifier: ^9.11.1
|
||||||
version: 9.11.1(jiti@1.21.6)
|
version: 9.11.1(jiti@2.0.0)
|
||||||
eslint-config-prettier:
|
eslint-config-prettier:
|
||||||
specifier: ^9.1.0
|
specifier: ^9.1.0
|
||||||
version: 9.1.0(eslint@9.11.1(jiti@1.21.6))
|
version: 9.1.0(eslint@9.11.1(jiti@2.0.0))
|
||||||
eslint-plugin-prettier:
|
eslint-plugin-prettier:
|
||||||
specifier: ^5.2.1
|
specifier: ^5.2.1
|
||||||
version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@1.21.6)))(eslint@9.11.1(jiti@1.21.6))(prettier@3.3.3)
|
version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@2.0.0)))(eslint@9.11.1(jiti@2.0.0))(prettier@3.3.3)
|
||||||
eslint-plugin-tailwindcss:
|
eslint-plugin-tailwindcss:
|
||||||
specifier: ^3.17.4
|
specifier: ^3.17.4
|
||||||
version: 3.17.4(tailwindcss@3.4.13)
|
version: 3.17.4(tailwindcss@3.4.13)
|
||||||
|
@ -208,8 +208,8 @@ importers:
|
||||||
specifier: ^9.1.6
|
specifier: ^9.1.6
|
||||||
version: 9.1.6
|
version: 9.1.6
|
||||||
jiti:
|
jiti:
|
||||||
specifier: ^1.21.6
|
specifier: ^2.0.0
|
||||||
version: 1.21.6
|
version: 2.0.0
|
||||||
lint-staged:
|
lint-staged:
|
||||||
specifier: ^15.2.10
|
specifier: ^15.2.10
|
||||||
version: 15.2.10
|
version: 15.2.10
|
||||||
|
@ -236,13 +236,13 @@ importers:
|
||||||
version: 5.6.2
|
version: 5.6.2
|
||||||
typescript-eslint:
|
typescript-eslint:
|
||||||
specifier: ^8.7.0
|
specifier: ^8.7.0
|
||||||
version: 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
version: 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
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.10
|
specifier: ^0.19.10
|
||||||
version: 0.19.10(@types/node@22.6.1)(bufferutil@4.0.8)(rollup@4.21.3)(utf-8-validate@6.0.4)
|
version: 0.19.10(@types/node@22.7.2)(bufferutil@4.0.8)(rollup@4.21.3)(utf-8-validate@6.0.4)
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
|
@ -1677,8 +1677,8 @@ packages:
|
||||||
'@resreq/event-hub@1.6.0':
|
'@resreq/event-hub@1.6.0':
|
||||||
resolution: {integrity: sha512-SEzPuAc2bQdMV9cKrBIjW3EvntpU8NcBxdgdEo9yLKAeRfvdM4oM/sG8pFPRZOpYwOytaJqWGqwjc+RSRFFTvQ==}
|
resolution: {integrity: sha512-SEzPuAc2bQdMV9cKrBIjW3EvntpU8NcBxdgdEo9yLKAeRfvdM4oM/sG8pFPRZOpYwOytaJqWGqwjc+RSRFFTvQ==}
|
||||||
|
|
||||||
'@resreq/timer@1.1.5':
|
'@resreq/timer@1.1.6':
|
||||||
resolution: {integrity: sha512-QZrY3+1nbDd3e15muzFGRxJAaKYYJ9xC5+E/cm/B3cEXQbD8pjy/lilsMOaOpvligpUE1jXxiSZzuvH334fq5w==}
|
resolution: {integrity: sha512-D8aLPVuRz9ShraIHPU4v9hSWS7HhEDDm4ww9PkqwGRFMvlR3BQ/34UX0Do77PNdpqgJFp4eiRH02gHiV31/3Rw==}
|
||||||
|
|
||||||
'@rollup/pluginutils@5.1.0':
|
'@rollup/pluginutils@5.1.0':
|
||||||
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
|
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
|
||||||
|
@ -1902,8 +1902,8 @@ packages:
|
||||||
'@types/murmurhash3js-revisited@3.0.3':
|
'@types/murmurhash3js-revisited@3.0.3':
|
||||||
resolution: {integrity: sha512-QvlqvYtGBYIDeO8dFdY4djkRubcrc+yTJtBc7n8VZPlJDUS/00A+PssbvERM8f9bYRmcaSEHPZgZojeQj7kzAA==}
|
resolution: {integrity: sha512-QvlqvYtGBYIDeO8dFdY4djkRubcrc+yTJtBc7n8VZPlJDUS/00A+PssbvERM8f9bYRmcaSEHPZgZojeQj7kzAA==}
|
||||||
|
|
||||||
'@types/node@22.6.1':
|
'@types/node@22.7.2':
|
||||||
resolution: {integrity: sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==}
|
resolution: {integrity: sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA==}
|
||||||
|
|
||||||
'@types/phoenix@1.6.5':
|
'@types/phoenix@1.6.5':
|
||||||
resolution: {integrity: sha512-xegpDuR+z0UqG9fwHqNoy3rI7JDlvaPh2TY47Fl80oq6g+hXT+c/LEuE43X48clZ6lOfANl5WrPur9fYO1RJ/w==}
|
resolution: {integrity: sha512-xegpDuR+z0UqG9fwHqNoy3rI7JDlvaPh2TY47Fl80oq6g+hXT+c/LEuE43X48clZ6lOfANl5WrPur9fYO1RJ/w==}
|
||||||
|
@ -3244,8 +3244,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.5.6:
|
framer-motion@11.7.0:
|
||||||
resolution: {integrity: sha512-JMwUpAxv/DWgul9vPgX0ElKn0G66sUc6O9tOXsYwn3zxwvhxFljSXC0XT2QCzuTYBshwC8nyDAa1SYcV0Ldbhw==}
|
resolution: {integrity: sha512-m+1E3mMzDIQ5DsVghMvXyC+jSkZSm5RHBLA2gHa/LczcXwW6JbQK4Uz48LsuCTGV8bZFVUezcauHj3M33tY/5w==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/is-prop-valid': '*'
|
'@emotion/is-prop-valid': '*'
|
||||||
react: ^18.0.0
|
react: ^18.0.0
|
||||||
|
@ -3925,6 +3925,10 @@ packages:
|
||||||
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
|
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
jiti@2.0.0:
|
||||||
|
resolution: {integrity: sha512-CJ7e7Abb779OTRv3lomfp7Mns/Sy1+U4pcAx5VbjxCZD5ZM/VJaXPpPjNKjtSvWQy/H86E49REXR34dl1JEz9w==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
js-cookie@2.2.1:
|
js-cookie@2.2.1:
|
||||||
resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
|
resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
|
||||||
|
|
||||||
|
@ -4122,8 +4126,8 @@ packages:
|
||||||
lru-cache@5.1.1:
|
lru-cache@5.1.1:
|
||||||
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
||||||
|
|
||||||
lucide-react@0.445.0:
|
lucide-react@0.446.0:
|
||||||
resolution: {integrity: sha512-YrLf3aAHvmd4dZ8ot+mMdNFrFpJD7YRwQ2pUcBhgqbmxtrMP4xDzIorcj+8y+6kpuXBF4JB0NOCTUWIYetJjgA==}
|
resolution: {integrity: sha512-BU7gy8MfBMqvEdDPH79VhOXSEgyG8TSPOKWaExWGCQVqnGH7wGgDngPbofu+KdtVjPQBWbEmnfMTq90CTiiDRg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc
|
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc
|
||||||
|
|
||||||
|
@ -6322,11 +6326,11 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@chainsafe/is-ip': 2.0.2
|
'@chainsafe/is-ip': 2.0.2
|
||||||
|
|
||||||
'@commitlint/cli@19.5.0(@types/node@22.6.1)(typescript@5.6.2)':
|
'@commitlint/cli@19.5.0(@types/node@22.7.2)(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@commitlint/format': 19.5.0
|
'@commitlint/format': 19.5.0
|
||||||
'@commitlint/lint': 19.5.0
|
'@commitlint/lint': 19.5.0
|
||||||
'@commitlint/load': 19.5.0(@types/node@22.6.1)(typescript@5.6.2)
|
'@commitlint/load': 19.5.0(@types/node@22.7.2)(typescript@5.6.2)
|
||||||
'@commitlint/read': 19.5.0
|
'@commitlint/read': 19.5.0
|
||||||
'@commitlint/types': 19.5.0
|
'@commitlint/types': 19.5.0
|
||||||
tinyexec: 0.3.0
|
tinyexec: 0.3.0
|
||||||
|
@ -6373,7 +6377,7 @@ snapshots:
|
||||||
'@commitlint/rules': 19.5.0
|
'@commitlint/rules': 19.5.0
|
||||||
'@commitlint/types': 19.5.0
|
'@commitlint/types': 19.5.0
|
||||||
|
|
||||||
'@commitlint/load@19.5.0(@types/node@22.6.1)(typescript@5.6.2)':
|
'@commitlint/load@19.5.0(@types/node@22.7.2)(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@commitlint/config-validator': 19.5.0
|
'@commitlint/config-validator': 19.5.0
|
||||||
'@commitlint/execute-rule': 19.5.0
|
'@commitlint/execute-rule': 19.5.0
|
||||||
|
@ -6381,7 +6385,7 @@ snapshots:
|
||||||
'@commitlint/types': 19.5.0
|
'@commitlint/types': 19.5.0
|
||||||
chalk: 5.3.0
|
chalk: 5.3.0
|
||||||
cosmiconfig: 9.0.0(typescript@5.6.2)
|
cosmiconfig: 9.0.0(typescript@5.6.2)
|
||||||
cosmiconfig-typescript-loader: 5.0.0(@types/node@22.6.1)(cosmiconfig@9.0.0(typescript@5.6.2))(typescript@5.6.2)
|
cosmiconfig-typescript-loader: 5.0.0(@types/node@22.7.2)(cosmiconfig@9.0.0(typescript@5.6.2))(typescript@5.6.2)
|
||||||
lodash.isplainobject: 4.0.6
|
lodash.isplainobject: 4.0.6
|
||||||
lodash.merge: 4.6.2
|
lodash.merge: 4.6.2
|
||||||
lodash.uniq: 4.5.0
|
lodash.uniq: 4.5.0
|
||||||
|
@ -6589,20 +6593,20 @@ snapshots:
|
||||||
'@esbuild/win32-x64@0.23.1':
|
'@esbuild/win32-x64@0.23.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@1.21.6))':
|
'@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@2.0.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.11.1': {}
|
'@eslint-community/regexpp@4.11.1': {}
|
||||||
|
|
||||||
'@eslint-react/ast@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@eslint-react/ast@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
|
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
birecord: 0.1.1
|
birecord: 0.1.1
|
||||||
string-ts: 2.2.0
|
string-ts: 2.2.0
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
|
@ -6611,18 +6615,18 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/core@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@eslint-react/core@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
birecord: 0.1.1
|
birecord: 0.1.1
|
||||||
short-unique-id: 5.2.0
|
short-unique-id: 5.2.0
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
|
@ -6631,46 +6635,46 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/eslint-plugin@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@eslint-react/eslint-plugin@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
eslint-plugin-react-debug: 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
eslint-plugin-react-debug: 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint-plugin-react-dom: 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
eslint-plugin-react-dom: 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint-plugin-react-hooks-extra: 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
eslint-plugin-react-hooks-extra: 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint-plugin-react-naming-convention: 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
eslint-plugin-react-naming-convention: 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint-plugin-react-web-api: 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
eslint-plugin-react-web-api: 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint-plugin-react-x: 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
eslint-plugin-react-x: 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@eslint-react/jsx@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@eslint-react/jsx@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- eslint
|
- eslint
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/shared@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@eslint-react/shared@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
picomatch: 4.0.2
|
picomatch: 4.0.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- eslint
|
- eslint
|
||||||
|
@ -6679,24 +6683,24 @@ snapshots:
|
||||||
|
|
||||||
'@eslint-react/tools@1.14.2': {}
|
'@eslint-react/tools@1.14.2': {}
|
||||||
|
|
||||||
'@eslint-react/types@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@eslint-react/types@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- eslint
|
- eslint
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/var@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@eslint-react/var@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- eslint
|
- eslint
|
||||||
|
@ -7079,7 +7083,7 @@ snapshots:
|
||||||
'@grpc/grpc-js@1.9.15':
|
'@grpc/grpc-js@1.9.15':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@grpc/proto-loader': 0.7.13
|
'@grpc/proto-loader': 0.7.13
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
|
|
||||||
'@grpc/proto-loader@0.7.13':
|
'@grpc/proto-loader@0.7.13':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -7848,7 +7852,7 @@ snapshots:
|
||||||
|
|
||||||
'@resreq/event-hub@1.6.0': {}
|
'@resreq/event-hub@1.6.0': {}
|
||||||
|
|
||||||
'@resreq/timer@1.1.5':
|
'@resreq/timer@1.1.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@resreq/event-hub': 1.6.0
|
'@resreq/event-hub': 1.6.0
|
||||||
|
|
||||||
|
@ -8025,7 +8029,7 @@ snapshots:
|
||||||
|
|
||||||
'@types/conventional-commits-parser@5.0.0':
|
'@types/conventional-commits-parser@5.0.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
|
|
||||||
'@types/debug@4.1.12':
|
'@types/debug@4.1.12':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -8033,7 +8037,7 @@ snapshots:
|
||||||
|
|
||||||
'@types/dns-packet@5.6.5':
|
'@types/dns-packet@5.6.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
|
|
||||||
'@types/eslint-plugin-tailwindcss@3.17.0':
|
'@types/eslint-plugin-tailwindcss@3.17.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -8084,7 +8088,7 @@ snapshots:
|
||||||
|
|
||||||
'@types/murmurhash3js-revisited@3.0.3': {}
|
'@types/murmurhash3js-revisited@3.0.3': {}
|
||||||
|
|
||||||
'@types/node@22.6.1':
|
'@types/node@22.7.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 6.19.8
|
undici-types: 6.19.8
|
||||||
|
|
||||||
|
@ -8103,7 +8107,7 @@ snapshots:
|
||||||
|
|
||||||
'@types/readable-stream@4.0.15':
|
'@types/readable-stream@4.0.15':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
safe-buffer: 5.1.2
|
safe-buffer: 5.1.2
|
||||||
|
|
||||||
'@types/unist@2.0.11': {}
|
'@types/unist@2.0.11': {}
|
||||||
|
@ -8118,22 +8122,22 @@ snapshots:
|
||||||
|
|
||||||
'@types/ws@8.5.12':
|
'@types/ws@8.5.12':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
|
|
||||||
'@types/yauzl@2.10.3':
|
'@types/yauzl@2.10.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.11.1
|
'@eslint-community/regexpp': 4.11.1
|
||||||
'@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.7.0
|
'@typescript-eslint/scope-manager': 8.7.0
|
||||||
'@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/visitor-keys': 8.7.0
|
'@typescript-eslint/visitor-keys': 8.7.0
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
graphemer: 1.4.0
|
graphemer: 1.4.0
|
||||||
ignore: 5.3.2
|
ignore: 5.3.2
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
|
@ -8143,14 +8147,14 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 8.7.0
|
'@typescript-eslint/scope-manager': 8.7.0
|
||||||
'@typescript-eslint/types': 8.7.0
|
'@typescript-eslint/types': 8.7.0
|
||||||
'@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
|
'@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
|
||||||
'@typescript-eslint/visitor-keys': 8.7.0
|
'@typescript-eslint/visitor-keys': 8.7.0
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -8166,10 +8170,10 @@ snapshots:
|
||||||
'@typescript-eslint/types': 8.7.0
|
'@typescript-eslint/types': 8.7.0
|
||||||
'@typescript-eslint/visitor-keys': 8.7.0
|
'@typescript-eslint/visitor-keys': 8.7.0
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@typescript-eslint/type-utils@8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
|
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
ts-api-utils: 1.3.0(typescript@5.6.2)
|
ts-api-utils: 1.3.0(typescript@5.6.2)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
@ -8178,10 +8182,10 @@ snapshots:
|
||||||
- eslint
|
- eslint
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
|
'@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
|
||||||
'@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
ts-api-utils: 1.3.0(typescript@5.6.2)
|
ts-api-utils: 1.3.0(typescript@5.6.2)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
@ -8224,24 +8228,24 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@typescript-eslint/utils@8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6))
|
'@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0))
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
|
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)':
|
'@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6))
|
'@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0))
|
||||||
'@typescript-eslint/scope-manager': 8.7.0
|
'@typescript-eslint/scope-manager': 8.7.0
|
||||||
'@typescript-eslint/types': 8.7.0
|
'@typescript-eslint/types': 8.7.0
|
||||||
'@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
|
'@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
@ -8258,14 +8262,14 @@ snapshots:
|
||||||
|
|
||||||
'@ungap/structured-clone@1.2.0': {}
|
'@ungap/structured-clone@1.2.0': {}
|
||||||
|
|
||||||
'@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@22.6.1))':
|
'@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@22.7.2))':
|
||||||
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.5(@types/node@22.6.1)
|
vite: 5.4.5(@types/node@22.7.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -8762,7 +8766,7 @@ snapshots:
|
||||||
|
|
||||||
chrome-launcher@1.1.0:
|
chrome-launcher@1.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
escape-string-regexp: 4.0.0
|
escape-string-regexp: 4.0.0
|
||||||
is-wsl: 2.2.0
|
is-wsl: 2.2.0
|
||||||
lighthouse-logger: 2.0.1
|
lighthouse-logger: 2.0.1
|
||||||
|
@ -8922,9 +8926,9 @@ snapshots:
|
||||||
|
|
||||||
core-util-is@1.0.3: {}
|
core-util-is@1.0.3: {}
|
||||||
|
|
||||||
cosmiconfig-typescript-loader@5.0.0(@types/node@22.6.1)(cosmiconfig@9.0.0(typescript@5.6.2))(typescript@5.6.2):
|
cosmiconfig-typescript-loader@5.0.0(@types/node@22.7.2)(cosmiconfig@9.0.0(typescript@5.6.2))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
cosmiconfig: 9.0.0(typescript@5.6.2)
|
cosmiconfig: 9.0.0(typescript@5.6.2)
|
||||||
jiti: 1.21.6
|
jiti: 1.21.6
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
|
@ -9338,34 +9342,34 @@ snapshots:
|
||||||
|
|
||||||
escape-string-regexp@5.0.0: {}
|
escape-string-regexp@5.0.0: {}
|
||||||
|
|
||||||
eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@1.21.6)):
|
eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@2.0.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
|
|
||||||
eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@1.21.6)))(eslint@9.11.1(jiti@1.21.6))(prettier@3.3.3):
|
eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@2.0.0)))(eslint@9.11.1(jiti@2.0.0))(prettier@3.3.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
prettier: 3.3.3
|
prettier: 3.3.3
|
||||||
prettier-linter-helpers: 1.0.0
|
prettier-linter-helpers: 1.0.0
|
||||||
synckit: 0.9.1
|
synckit: 0.9.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/eslint': 9.6.1
|
'@types/eslint': 9.6.1
|
||||||
eslint-config-prettier: 9.1.0(eslint@9.11.1(jiti@1.21.6))
|
eslint-config-prettier: 9.1.0(eslint@9.11.1(jiti@2.0.0))
|
||||||
|
|
||||||
eslint-plugin-react-debug@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
eslint-plugin-react-debug@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
string-ts: 2.2.0
|
string-ts: 2.2.0
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
@ -9373,99 +9377,99 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-dom@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
eslint-plugin-react-dom@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-hooks-extra@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
eslint-plugin-react-hooks-extra@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-naming-convention@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
eslint-plugin-react-naming-convention@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-web-api@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
eslint-plugin-react-web-api@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
birecord: 0.1.1
|
birecord: 0.1.1
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-x@1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
eslint-plugin-react-x@1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/ast': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/core': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/jsx': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/shared': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/tools': 1.14.2
|
'@eslint-react/tools': 1.14.2
|
||||||
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/types': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@eslint-react/var': 1.14.2(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/scope-manager': 8.6.0
|
'@typescript-eslint/scope-manager': 8.6.0
|
||||||
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/types': 8.6.0
|
'@typescript-eslint/types': 8.6.0
|
||||||
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
is-immutable-type: 5.0.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
is-immutable-type: 5.0.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
ts-pattern: 5.3.1
|
ts-pattern: 5.3.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
|
@ -9487,9 +9491,9 @@ snapshots:
|
||||||
|
|
||||||
eslint-visitor-keys@4.0.0: {}
|
eslint-visitor-keys@4.0.0: {}
|
||||||
|
|
||||||
eslint@9.11.1(jiti@1.21.6):
|
eslint@9.11.1(jiti@2.0.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6))
|
'@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0))
|
||||||
'@eslint-community/regexpp': 4.11.1
|
'@eslint-community/regexpp': 4.11.1
|
||||||
'@eslint/config-array': 0.18.0
|
'@eslint/config-array': 0.18.0
|
||||||
'@eslint/core': 0.6.0
|
'@eslint/core': 0.6.0
|
||||||
|
@ -9527,7 +9531,7 @@ snapshots:
|
||||||
strip-ansi: 6.0.1
|
strip-ansi: 6.0.1
|
||||||
text-table: 0.2.0
|
text-table: 0.2.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
jiti: 1.21.6
|
jiti: 2.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -9762,7 +9766,7 @@ snapshots:
|
||||||
|
|
||||||
fraction.js@4.3.7: {}
|
fraction.js@4.3.7: {}
|
||||||
|
|
||||||
framer-motion@11.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
framer-motion@11.7.0(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:
|
||||||
|
@ -10196,10 +10200,10 @@ snapshots:
|
||||||
|
|
||||||
is-hexadecimal@2.0.1: {}
|
is-hexadecimal@2.0.1: {}
|
||||||
|
|
||||||
is-immutable-type@5.0.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
is-immutable-type@5.0.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
eslint: 9.11.1(jiti@1.21.6)
|
eslint: 9.11.1(jiti@2.0.0)
|
||||||
ts-api-utils: 1.3.0(typescript@5.6.2)
|
ts-api-utils: 1.3.0(typescript@5.6.2)
|
||||||
ts-declaration-location: 1.0.4(typescript@5.6.2)
|
ts-declaration-location: 1.0.4(typescript@5.6.2)
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
|
@ -10417,6 +10421,8 @@ snapshots:
|
||||||
|
|
||||||
jiti@1.21.6: {}
|
jiti@1.21.6: {}
|
||||||
|
|
||||||
|
jiti@2.0.0: {}
|
||||||
|
|
||||||
js-cookie@2.2.1: {}
|
js-cookie@2.2.1: {}
|
||||||
|
|
||||||
js-sdsl@4.3.0: {}
|
js-sdsl@4.3.0: {}
|
||||||
|
@ -10660,7 +10666,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
yallist: 3.1.1
|
yallist: 3.1.1
|
||||||
|
|
||||||
lucide-react@0.445.0(react@18.3.1):
|
lucide-react@0.446.0(react@18.3.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
|
|
||||||
|
@ -11643,7 +11649,7 @@ snapshots:
|
||||||
'@protobufjs/path': 1.1.2
|
'@protobufjs/path': 1.1.2
|
||||||
'@protobufjs/pool': 1.1.0
|
'@protobufjs/pool': 1.1.0
|
||||||
'@protobufjs/utf8': 1.1.0
|
'@protobufjs/utf8': 1.1.0
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
long: 5.2.3
|
long: 5.2.3
|
||||||
|
|
||||||
protons-runtime@5.5.0:
|
protons-runtime@5.5.0:
|
||||||
|
@ -12557,11 +12563,11 @@ snapshots:
|
||||||
|
|
||||||
typedarray@0.0.6: {}
|
typedarray@0.0.6: {}
|
||||||
|
|
||||||
typescript-eslint@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2):
|
typescript-eslint@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
'@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)
|
'@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.2
|
typescript: 5.6.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -12791,12 +12797,12 @@ 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.1(@types/node@22.6.1):
|
vite-node@2.1.1(@types/node@22.7.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
cac: 6.7.14
|
cac: 6.7.14
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
pathe: 1.1.2
|
pathe: 1.1.2
|
||||||
vite: 5.4.5(@types/node@22.6.1)
|
vite: 5.4.5(@types/node@22.7.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- less
|
- less
|
||||||
|
@ -12808,13 +12814,13 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- terser
|
- terser
|
||||||
|
|
||||||
vite@5.4.5(@types/node@22.6.1):
|
vite@5.4.5(@types/node@22.7.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.21.5
|
esbuild: 0.21.5
|
||||||
postcss: 8.4.47
|
postcss: 8.4.47
|
||||||
rollup: 4.21.3
|
rollup: 4.21.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 22.6.1
|
'@types/node': 22.7.2
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
watchpack@2.4.1:
|
watchpack@2.4.1:
|
||||||
|
@ -12997,7 +13003,7 @@ snapshots:
|
||||||
bufferutil: 4.0.8
|
bufferutil: 4.0.8
|
||||||
utf-8-validate: 6.0.4
|
utf-8-validate: 6.0.4
|
||||||
|
|
||||||
wxt@0.19.10(@types/node@22.6.1)(bufferutil@4.0.8)(rollup@4.21.3)(utf-8-validate@6.0.4):
|
wxt@0.19.10(@types/node@22.7.2)(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.269
|
||||||
|
@ -13041,8 +13047,8 @@ snapshots:
|
||||||
publish-browser-extension: 2.2.1
|
publish-browser-extension: 2.2.1
|
||||||
scule: 1.3.0
|
scule: 1.3.0
|
||||||
unimport: 3.12.0(rollup@4.21.3)
|
unimport: 3.12.0(rollup@4.21.3)
|
||||||
vite: 5.4.5(@types/node@22.6.1)
|
vite: 5.4.5(@types/node@22.7.2)
|
||||||
vite-node: 2.1.1(@types/node@22.6.1)
|
vite-node: 2.1.1(@types/node@22.7.2)
|
||||||
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:
|
||||||
|
|
|
@ -7,9 +7,11 @@ import { useRemeshDomain, useRemeshQuery, useRemeshSend } from 'remesh-react'
|
||||||
import RoomDomain from '@/domain/Room'
|
import RoomDomain from '@/domain/Room'
|
||||||
import UserInfoDomain from '@/domain/UserInfo'
|
import UserInfoDomain from '@/domain/UserInfo'
|
||||||
import Setup from '@/app/content/views/Setup'
|
import Setup from '@/app/content/views/Setup'
|
||||||
import MessageListDomain from '@/domain/MessageList'
|
import MessageListDomain, { MessageType } from '@/domain/MessageList'
|
||||||
import { useEffect } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import { Toaster } from 'sonner'
|
import { Toaster } from 'sonner'
|
||||||
|
import { indexDBStorage } from '@/domain/impls/Storage'
|
||||||
|
import { APP_OPEN_STATUS_STORAGE_KEY } from '@/constants/config'
|
||||||
|
|
||||||
export default function App() {
|
export default function App() {
|
||||||
const send = useRemeshSend()
|
const send = useRemeshSend()
|
||||||
|
@ -33,16 +35,33 @@ export default function App() {
|
||||||
}
|
}
|
||||||
}, [userInfoSetFinished, messageListLoadFinished])
|
}, [userInfoSetFinished, messageListLoadFinished])
|
||||||
|
|
||||||
|
const [appOpen, setAppOpen] = useState(false)
|
||||||
|
|
||||||
|
const handleToggleApp = async () => {
|
||||||
|
const value = !appOpen
|
||||||
|
setAppOpen(value)
|
||||||
|
await indexDBStorage.setItem<boolean>(APP_OPEN_STATUS_STORAGE_KEY, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
const getAppOpenStatus = async () => {
|
||||||
|
const value = await indexDBStorage.getItem<boolean>(APP_OPEN_STATUS_STORAGE_KEY)
|
||||||
|
setAppOpen(!!value)
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getAppOpenStatus()
|
||||||
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<AppContainer>
|
<AppContainer open={appOpen}>
|
||||||
<Header />
|
<Header />
|
||||||
<Main />
|
<Main />
|
||||||
<Footer />
|
<Footer />
|
||||||
{notUserInfo && <Setup />}
|
{notUserInfo && <Setup />}
|
||||||
<Toaster richColors offset="70px" visibleToasts={1} duration={5000} position="top-center"></Toaster>
|
<Toaster richColors offset="70px" visibleToasts={1} duration={5000} position="top-center"></Toaster>
|
||||||
</AppContainer>
|
</AppContainer>
|
||||||
<AppButton></AppButton>
|
<AppButton onClick={handleToggleApp}></AppButton>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ export interface EmojiButtonProps {
|
||||||
onSelect?: (value: string) => void
|
onSelect?: (value: string) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
const emojiGroups = chunk(EMOJI_LIST, 8)
|
const emojiGroups = chunk([...EMOJI_LIST], 8)
|
||||||
|
|
||||||
// BUG: https://github.com/radix-ui/primitives/pull/2433
|
// BUG: https://github.com/radix-ui/primitives/pull/2433
|
||||||
// BUG https://github.com/radix-ui/primitives/issues/1666
|
// BUG https://github.com/radix-ui/primitives/issues/1666
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC, useRef, type ReactElement } from 'react'
|
import { FC, forwardRef, useRef, useState, type ReactElement } from 'react'
|
||||||
|
|
||||||
import { type MessageItemProps } from './MessageItem'
|
import { type MessageItemProps } from './MessageItem'
|
||||||
import { type PromptItemProps } from './PromptItem'
|
import { type PromptItemProps } from './PromptItem'
|
||||||
|
@ -9,14 +9,15 @@ export interface MessageListProps {
|
||||||
children?: Array<ReactElement<MessageItemProps | PromptItemProps>>
|
children?: Array<ReactElement<MessageItemProps | PromptItemProps>>
|
||||||
}
|
}
|
||||||
const MessageList: FC<MessageListProps> = ({ children }) => {
|
const MessageList: FC<MessageListProps> = ({ children }) => {
|
||||||
const scrollParentRef = useRef<HTMLDivElement>(null)
|
const [scrollParentRef, setScrollParentRef] = useState<HTMLDivElement | null>(null)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollArea ref={scrollParentRef}>
|
<ScrollArea ref={setScrollParentRef}>
|
||||||
<Virtuoso
|
<Virtuoso
|
||||||
followOutput={(isAtBottom: boolean) => (isAtBottom ? 'smooth' : 'auto')}
|
followOutput={(isAtBottom: boolean) => (isAtBottom ? 'smooth' : 'auto')}
|
||||||
initialTopMostItemIndex={{ index: 'LAST', align: 'end' }}
|
initialTopMostItemIndex={{ index: 'LAST', align: 'end' }}
|
||||||
data={children}
|
data={children}
|
||||||
customScrollParent={scrollParentRef.current!}
|
customScrollParent={scrollParentRef!}
|
||||||
itemContent={(_: any, item: ReactElement<MessageItemProps | PromptItemProps>) => item}
|
itemContent={(_: any, item: ReactElement<MessageItemProps | PromptItemProps>) => item}
|
||||||
/>
|
/>
|
||||||
</ScrollArea>
|
</ScrollArea>
|
||||||
|
|
|
@ -35,11 +35,11 @@ export default defineContentScript({
|
||||||
|
|
||||||
const root = createRoot(app)
|
const root = createRoot(app)
|
||||||
root.render(
|
root.render(
|
||||||
<React.StrictMode>
|
// <React.StrictMode>
|
||||||
<RemeshRoot store={store}>
|
<RemeshRoot store={store}>
|
||||||
<App />
|
<App />
|
||||||
</RemeshRoot>
|
</RemeshRoot>
|
||||||
</React.StrictMode>
|
// </React.StrictMode>
|
||||||
)
|
)
|
||||||
return root
|
return root
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { type ReactNode, type FC, useState, type MouseEvent, useRef } from 'react'
|
import { type ReactNode, type FC, useState, type MouseEvent, useRef, useEffect } from 'react'
|
||||||
import { SettingsIcon, MoonIcon, SunIcon } from 'lucide-react'
|
import { SettingsIcon, MoonIcon, SunIcon } from 'lucide-react'
|
||||||
import { motion, AnimatePresence } from 'framer-motion'
|
import { motion, AnimatePresence } from 'framer-motion'
|
||||||
|
|
||||||
|
@ -12,9 +12,10 @@ import { checkSystemDarkMode, cn } from '@/utils'
|
||||||
|
|
||||||
export interface AppButtonProps {
|
export interface AppButtonProps {
|
||||||
children?: ReactNode
|
children?: ReactNode
|
||||||
|
onClick?: (e: MouseEvent<HTMLButtonElement>) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
const AppButton: FC<AppButtonProps> = ({ children }) => {
|
const AppButton: FC<AppButtonProps> = ({ children, onClick }) => {
|
||||||
const send = useRemeshSend()
|
const send = useRemeshSend()
|
||||||
const userInfoDomain = useRemeshDomain(UserInfoDomain())
|
const userInfoDomain = useRemeshDomain(UserInfoDomain())
|
||||||
const userInfo = useRemeshQuery(userInfoDomain.query.UserInfoQuery())
|
const userInfo = useRemeshQuery(userInfoDomain.query.UserInfoQuery())
|
||||||
|
@ -22,19 +23,17 @@ const AppButton: FC<AppButtonProps> = ({ children }) => {
|
||||||
const isDarkMode =
|
const isDarkMode =
|
||||||
userInfo?.themeMode === 'dark' ? true : userInfo?.themeMode === 'light' ? false : checkSystemDarkMode()
|
userInfo?.themeMode === 'dark' ? true : userInfo?.themeMode === 'light' ? false : checkSystemDarkMode()
|
||||||
|
|
||||||
const [open, setOpen] = useState(false)
|
const [menuOpen, setMenuOpen] = useState(false)
|
||||||
|
|
||||||
const menuRef = useRef<HTMLDivElement>(null)
|
const menuRef = useRef<HTMLDivElement>(null)
|
||||||
|
|
||||||
useClickAway(menuRef, () => {
|
useClickAway(menuRef, () => {
|
||||||
setOpen(false)
|
setMenuOpen(false)
|
||||||
}, ['click'])
|
}, ['click'])
|
||||||
|
|
||||||
const handleToggleApp = () => {}
|
|
||||||
|
|
||||||
const handleToggleMenu = (e: MouseEvent<HTMLButtonElement>) => {
|
const handleToggleMenu = (e: MouseEvent<HTMLButtonElement>) => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
setOpen(!open)
|
setMenuOpen(!menuOpen)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleSwitchTheme = () => {
|
const handleSwitchTheme = () => {
|
||||||
|
@ -52,7 +51,7 @@ const AppButton: FC<AppButtonProps> = ({ children }) => {
|
||||||
return (
|
return (
|
||||||
<div ref={menuRef} className="fixed bottom-5 right-5 z-infinity grid select-none justify-center gap-y-3">
|
<div ref={menuRef} className="fixed bottom-5 right-5 z-infinity grid select-none justify-center gap-y-3">
|
||||||
<AnimatePresence>
|
<AnimatePresence>
|
||||||
{open && (
|
{menuOpen && (
|
||||||
<motion.div
|
<motion.div
|
||||||
className="grid gap-y-3"
|
className="grid gap-y-3"
|
||||||
initial="hidden"
|
initial="hidden"
|
||||||
|
@ -121,7 +120,7 @@ const AppButton: FC<AppButtonProps> = ({ children }) => {
|
||||||
)}
|
)}
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
<Button
|
<Button
|
||||||
onClick={handleToggleApp}
|
onClick={onClick}
|
||||||
onContextMenu={handleToggleMenu}
|
onContextMenu={handleToggleMenu}
|
||||||
className="relative z-10 size-10 rounded-full p-0 text-xs shadow"
|
className="relative z-10 size-10 rounded-full p-0 text-xs shadow"
|
||||||
>
|
>
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
import { type ReactNode, type FC } from 'react'
|
import { type ReactNode, type FC } from 'react'
|
||||||
import useResizable from '@/hooks/useResizable'
|
import useResizable from '@/hooks/useResizable'
|
||||||
|
import { motion, AnimatePresence } from 'framer-motion'
|
||||||
|
|
||||||
export interface AppContainerProps {
|
export interface AppContainerProps {
|
||||||
children?: ReactNode
|
children?: ReactNode
|
||||||
|
open?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
const AppContainer: FC<AppContainerProps> = ({ children }) => {
|
const AppContainer: FC<AppContainerProps> = ({ children, open }) => {
|
||||||
const { size, ref } = useResizable({
|
const { size, ref } = useResizable({
|
||||||
initSize: Math.max(375, window.innerWidth / 6),
|
initSize: Math.max(375, window.innerWidth / 6),
|
||||||
maxSize: Math.max(750, window.innerWidth / 3),
|
maxSize: Math.max(750, window.innerWidth / 3),
|
||||||
|
@ -14,7 +16,13 @@ const AppContainer: FC<AppContainerProps> = ({ children }) => {
|
||||||
})
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<AnimatePresence>
|
||||||
|
{open && (
|
||||||
|
<motion.div
|
||||||
|
initial={{ opacity: 0, y: 10 }}
|
||||||
|
animate={{ opacity: 1, y: 0 }}
|
||||||
|
exit={{ opacity: 0, y: 10 }}
|
||||||
|
transition={{ duration: 0.3 }}
|
||||||
style={{
|
style={{
|
||||||
width: `${size}px`
|
width: `${size}px`
|
||||||
}}
|
}}
|
||||||
|
@ -25,7 +33,9 @@ const AppContainer: FC<AppContainerProps> = ({ children }) => {
|
||||||
ref={ref}
|
ref={ref}
|
||||||
className="absolute inset-y-3 -left-0.5 z-20 w-1 cursor-ew-resize rounded-xl bg-slate-100 opacity-0 shadow transition-opacity duration-200 ease-in hover:opacity-100"
|
className="absolute inset-y-3 -left-0.5 z-20 w-1 cursor-ew-resize rounded-xl bg-slate-100 opacity-0 shadow transition-opacity duration-200 ease-in hover:opacity-100"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</motion.div>
|
||||||
|
)}
|
||||||
|
</AnimatePresence>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import ExampleImage from '@/assets/images/example.jpg'
|
||||||
import PulsatingButton from '@/components/magicui/pulsating-button'
|
import PulsatingButton from '@/components/magicui/pulsating-button'
|
||||||
import BlurFade from '@/components/magicui/blur-fade'
|
import BlurFade from '@/components/magicui/blur-fade'
|
||||||
import WordPullUp from '@/components/magicui/word-pull-up'
|
import WordPullUp from '@/components/magicui/word-pull-up'
|
||||||
|
import { motion } from 'framer-motion'
|
||||||
|
|
||||||
const mockTextList = [
|
const mockTextList = [
|
||||||
`你問我支持不支持,我說我支持`,
|
`你問我支持不支持,我說我支持`,
|
||||||
|
@ -32,6 +33,8 @@ const mockTextList = [
|
||||||
`![ExampleImage](${ExampleImage})`
|
`![ExampleImage](${ExampleImage})`
|
||||||
]
|
]
|
||||||
|
|
||||||
|
let printTextList = [...mockTextList]
|
||||||
|
|
||||||
const generateUserInfo = async (): Promise<UserInfo> => {
|
const generateUserInfo = async (): Promise<UserInfo> => {
|
||||||
return {
|
return {
|
||||||
id: nanoid(),
|
id: nanoid(),
|
||||||
|
@ -46,7 +49,7 @@ const generateMessage = async (userInfo: UserInfo): Promise<Message> => {
|
||||||
const { name: username, avatar: userAvatar, id: userId } = userInfo
|
const { name: username, avatar: userAvatar, id: userId } = userInfo
|
||||||
return {
|
return {
|
||||||
id: nanoid(),
|
id: nanoid(),
|
||||||
body: mockTextList.shift()!,
|
body: printTextList.shift()!,
|
||||||
date: Date.now(),
|
date: Date.now(),
|
||||||
type: MessageType.Normal,
|
type: MessageType.Normal,
|
||||||
userId,
|
userId,
|
||||||
|
@ -79,17 +82,18 @@ const Setup: FC = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
printTextList.length === 0 && (printTextList = [...mockTextList])
|
||||||
const timer = new Timer(
|
const timer = new Timer(
|
||||||
async () => {
|
async () => {
|
||||||
await createMessage(await refreshUserInfo())
|
await createMessage(await refreshUserInfo())
|
||||||
},
|
},
|
||||||
{ delay: 2000, immediate: true, limit: mockTextList.length }
|
{ delay: 2000, immediate: true, limit: printTextList.length }
|
||||||
)
|
)
|
||||||
|
|
||||||
timer.start()
|
timer.start()
|
||||||
return () => {
|
return () => {
|
||||||
timer.stop()
|
timer.stop()
|
||||||
send(messageListDomain.command.ClearListCommand())
|
printTextList.length === 0 && send(messageListDomain.command.ClearListCommand())
|
||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
@ -104,13 +108,16 @@ const Setup: FC = () => {
|
||||||
</AvatarFallback>
|
</AvatarFallback>
|
||||||
</Avatar>
|
</Avatar>
|
||||||
</BlurFade>
|
</BlurFade>
|
||||||
<div className="flex">
|
<div className="flex" key={userInfo?.name}>
|
||||||
<div className="text-2xl font-bold text-primary">@</div>
|
<motion.div
|
||||||
<WordPullUp
|
|
||||||
className="text-2xl font-bold text-primary"
|
className="text-2xl font-bold text-primary"
|
||||||
key={userInfo?.name}
|
initial={{ x: -10, opacity: 0 }} // 初始向左位移 10 像素
|
||||||
words={`${userInfo?.name || ''}`}
|
animate={{ x: 0, opacity: 1 }} // 动画结束时回到原位
|
||||||
/>
|
transition={{ duration: 0.5 }} // 过渡效果持续时间
|
||||||
|
>
|
||||||
|
@
|
||||||
|
</motion.div>
|
||||||
|
<WordPullUp className="text-2xl font-bold text-primary" words={`${userInfo?.name || ''.padEnd(10, ' ')}`} />
|
||||||
</div>
|
</div>
|
||||||
<PulsatingButton onClick={handleSetup}>Start chatting</PulsatingButton>
|
<PulsatingButton onClick={handleSetup}>Start chatting</PulsatingButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
// https://www.webfx.com/tools/emoji-cheat-sheet/
|
// https://www.webfx.com/tools/emoji-cheat-sheet/
|
||||||
|
|
||||||
import { Message } from '@/domain/MessageList'
|
|
||||||
|
|
||||||
export const EMOJI_LIST = [
|
export const EMOJI_LIST = [
|
||||||
'😀',
|
'😀',
|
||||||
'😃',
|
'😃',
|
||||||
|
@ -165,7 +163,7 @@ export const EMOJI_LIST = [
|
||||||
'🙏',
|
'🙏',
|
||||||
'✍',
|
'✍',
|
||||||
'💅'
|
'💅'
|
||||||
]
|
] as const
|
||||||
|
|
||||||
// https://night-tailwindcss.vercel.app/docs/breakpoints
|
// https://night-tailwindcss.vercel.app/docs/breakpoints
|
||||||
export const BREAKPOINTS = {
|
export const BREAKPOINTS = {
|
||||||
|
@ -189,6 +187,11 @@ export const MESSAGE_MAX_LENGTH = 500 as const
|
||||||
|
|
||||||
export const STORAGE_NAME = 'WEB_CHAT' as const
|
export const STORAGE_NAME = 'WEB_CHAT' as const
|
||||||
|
|
||||||
|
export const MESSAGE_LIST_STORAGE_KEY = 'WEB_CHAT_MESSAGE_LIST' as const
|
||||||
|
|
||||||
|
export const USER_INFO_STORAGE_KEY = 'WEB_CHAT_USER_INFO' as const
|
||||||
|
|
||||||
|
export const APP_OPEN_STATUS_STORAGE_KEY = 'WEB_CHAT_APP_OPEN_STATUS' as const
|
||||||
/**
|
/**
|
||||||
* In chrome storage.sync, each key-value pair supports a maximum storage of 8kb
|
* In chrome storage.sync, each key-value pair supports a maximum storage of 8kb
|
||||||
* Image is encoded as base64, and the size is increased by about 33%.
|
* Image is encoded as base64, and the size is increased by about 33%.
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { ListModule } from 'remesh/modules/list'
|
||||||
import { IndexDBStorageExtern } from '@/domain/externs/Storage'
|
import { IndexDBStorageExtern } from '@/domain/externs/Storage'
|
||||||
import StorageEffect from '@/domain/modules/StorageEffect'
|
import StorageEffect from '@/domain/modules/StorageEffect'
|
||||||
import StatusModule from './modules/Status'
|
import StatusModule from './modules/Status'
|
||||||
|
import { MESSAGE_LIST_STORAGE_KEY } from '@/constants/config'
|
||||||
|
|
||||||
export enum MessageType {
|
export enum MessageType {
|
||||||
Normal = 'normal',
|
Normal = 'normal',
|
||||||
|
@ -33,15 +34,13 @@ export interface PromptMessage extends MessageUser {
|
||||||
|
|
||||||
export type Message = NormalMessage | PromptMessage
|
export type Message = NormalMessage | PromptMessage
|
||||||
|
|
||||||
export const STORAGE_KEY = `MESSAGE_LIST`
|
|
||||||
|
|
||||||
const MessageListDomain = Remesh.domain({
|
const MessageListDomain = Remesh.domain({
|
||||||
name: 'MessageListDomain',
|
name: 'MessageListDomain',
|
||||||
impl: (domain) => {
|
impl: (domain) => {
|
||||||
const storageEffect = new StorageEffect({
|
const storageEffect = new StorageEffect({
|
||||||
domain,
|
domain,
|
||||||
extern: IndexDBStorageExtern,
|
extern: IndexDBStorageExtern,
|
||||||
key: STORAGE_KEY
|
key: MESSAGE_LIST_STORAGE_KEY
|
||||||
})
|
})
|
||||||
|
|
||||||
const MessageListModule = ListModule<Message>(domain, {
|
const MessageListModule = ListModule<Message>(domain, {
|
||||||
|
@ -145,11 +144,9 @@ const MessageListDomain = Remesh.domain({
|
||||||
|
|
||||||
storageEffect
|
storageEffect
|
||||||
.set(SyncToStorageEvent)
|
.set(SyncToStorageEvent)
|
||||||
.get<Message[]>((value) => [
|
.get<
|
||||||
SyncToStateCommand(value ?? []),
|
Message[]
|
||||||
MessageListLoadStatusModule.command.SetFinishedCommand()
|
>((value) => [SyncToStateCommand(value ?? []), MessageListLoadStatusModule.command.SetFinishedCommand()])
|
||||||
])
|
|
||||||
.watch<Message[]>((value) => SyncToStateCommand(value ?? []))
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
query: {
|
query: {
|
||||||
|
|
|
@ -2,6 +2,7 @@ import { Remesh } from 'remesh'
|
||||||
import { BrowserSyncStorageExtern } from '@/domain/externs/Storage'
|
import { BrowserSyncStorageExtern } from '@/domain/externs/Storage'
|
||||||
import StorageEffect from '@/domain/modules/StorageEffect'
|
import StorageEffect from '@/domain/modules/StorageEffect'
|
||||||
import StatusModule from './modules/Status'
|
import StatusModule from './modules/Status'
|
||||||
|
import { USER_INFO_STORAGE_KEY } from '@/constants/config'
|
||||||
|
|
||||||
export interface UserInfo {
|
export interface UserInfo {
|
||||||
id: string
|
id: string
|
||||||
|
@ -11,15 +12,13 @@ export interface UserInfo {
|
||||||
themeMode: 'system' | 'light' | 'dark'
|
themeMode: 'system' | 'light' | 'dark'
|
||||||
}
|
}
|
||||||
|
|
||||||
export const STORAGE_KEY = 'USER_INFO'
|
|
||||||
|
|
||||||
const UserInfoDomain = Remesh.domain({
|
const UserInfoDomain = Remesh.domain({
|
||||||
name: 'UserInfoDomain',
|
name: 'UserInfoDomain',
|
||||||
impl: (domain) => {
|
impl: (domain) => {
|
||||||
const storageEffect = new StorageEffect({
|
const storageEffect = new StorageEffect({
|
||||||
domain,
|
domain,
|
||||||
extern: BrowserSyncStorageExtern,
|
extern: BrowserSyncStorageExtern,
|
||||||
key: STORAGE_KEY
|
key: USER_INFO_STORAGE_KEY
|
||||||
})
|
})
|
||||||
|
|
||||||
const UserInfoState = domain.state<UserInfo | null>({
|
const UserInfoState = domain.state<UserInfo | null>({
|
||||||
|
|
|
@ -48,8 +48,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
const [send] = this.room.makeAction('MESSAGE')
|
const [send] = this.room.makeAction('MESSAGE')
|
||||||
send(message as DataPayload, id)
|
send(message as DataPayload, id)
|
||||||
|
@ -67,8 +66,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
const [, on] = this.room.makeAction('MESSAGE')
|
const [, on] = this.room.makeAction('MESSAGE')
|
||||||
on((message) => callback(message as T))
|
on((message) => callback(message as T))
|
||||||
|
@ -85,9 +83,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
throw error
|
|
||||||
} else {
|
} else {
|
||||||
this.room.onPeerJoin((peerId) => {
|
this.room.onPeerJoin((peerId) => {
|
||||||
callback(peerId)
|
callback(peerId)
|
||||||
|
@ -106,8 +102,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
this.room.onPeerLeave((peerId) => callback(peerId))
|
this.room.onPeerLeave((peerId) => callback(peerId))
|
||||||
}
|
}
|
||||||
|
@ -122,8 +117,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
this.room.leave()
|
this.room.leave()
|
||||||
this.room = undefined
|
this.room = undefined
|
||||||
|
|
|
@ -47,8 +47,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
this.room.send(JSON.stringify(message), id)
|
this.room.send(JSON.stringify(message), id)
|
||||||
}
|
}
|
||||||
|
@ -63,8 +62,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
this.room.on('message', (message) => callback(JSON.parse(message) as T))
|
this.room.on('message', (message) => callback(JSON.parse(message) as T))
|
||||||
}
|
}
|
||||||
|
@ -79,8 +77,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
this.room.on('join', (id) => callback(id))
|
this.room.on('join', (id) => callback(id))
|
||||||
}
|
}
|
||||||
|
@ -95,8 +92,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
this.room.on('leave', (id) => callback(id))
|
this.room.on('leave', (id) => callback(id))
|
||||||
}
|
}
|
||||||
|
@ -111,8 +107,7 @@ class PeerRoom extends EventHub {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
this.once('action', () => {
|
this.once('action', () => {
|
||||||
if (!this.room) {
|
if (!this.room) {
|
||||||
const error = new Error('Room not joined')
|
this.emit('error', new Error('Room not joined'))
|
||||||
this.emit('error', error)
|
|
||||||
} else {
|
} else {
|
||||||
this.room.leave()
|
this.room.leave()
|
||||||
this.room = undefined
|
this.room = undefined
|
||||||
|
|
|
@ -4,11 +4,11 @@ import { IndexDBStorageExtern, BrowserSyncStorageExtern } from '@/domain/externs
|
||||||
import { STORAGE_NAME } from '@/constants/config'
|
import { STORAGE_NAME } from '@/constants/config'
|
||||||
import { webExtensionDriver } from '@/utils/webExtensionDriver'
|
import { webExtensionDriver } from '@/utils/webExtensionDriver'
|
||||||
|
|
||||||
const indexDBStorage = createStorage({
|
export const indexDBStorage = createStorage({
|
||||||
driver: indexedDbDriver({ base: `${STORAGE_NAME}:` })
|
driver: indexedDbDriver({ base: `${STORAGE_NAME}:` })
|
||||||
})
|
})
|
||||||
|
|
||||||
const browserSyncStorage = createStorage({
|
export const browserSyncStorage = createStorage({
|
||||||
driver: webExtensionDriver({ storageArea: 'sync' })
|
driver: webExtensionDriver({ storageArea: 'sync' })
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { type RemeshEvent, type RemeshAction, type RemeshDomainContext, type RemeshExtern } from 'remesh'
|
import { type RemeshEvent, type RemeshAction, type RemeshDomainContext, type RemeshExtern } from 'remesh'
|
||||||
import { from, fromEventPattern, map, merge, switchMap, tap } from 'rxjs'
|
import { defer, from, fromEventPattern, map, Observable, switchMap } from 'rxjs'
|
||||||
import { type Promisable } from 'type-fest'
|
import { type Promisable } from 'type-fest'
|
||||||
|
|
||||||
export type StorageValue = null | string | number | boolean | object
|
export type StorageValue = null | string | number | boolean | object
|
||||||
|
@ -60,11 +60,20 @@ export default class StorageEffect {
|
||||||
this.domain.effect({
|
this.domain.effect({
|
||||||
name: 'WatchStorageToStateEffect',
|
name: 'WatchStorageToStateEffect',
|
||||||
impl: () => {
|
impl: () => {
|
||||||
return fromEventPattern(this.storage.watch, this.storage.unwatch).pipe(
|
return defer(() => {
|
||||||
switchMap(() => {
|
let unwatch: Unwatch
|
||||||
return from(this.storage.get<T>(this.key)).pipe(map((value) => callback(value)))
|
return new Observable<void>((observer) => {
|
||||||
|
this.storage
|
||||||
|
.watch(() => observer.next())
|
||||||
|
.then((_unwatch) => {
|
||||||
|
unwatch = _unwatch
|
||||||
})
|
})
|
||||||
|
return () => unwatch?.()
|
||||||
|
}).pipe(
|
||||||
|
switchMap(() => from(this.storage.get<T | null>(this.key))),
|
||||||
|
map(callback)
|
||||||
)
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return this
|
return this
|
||||||
|
|
Loading…
Reference in a new issue