feat: support notification
This commit is contained in:
parent
f66b2326eb
commit
9898718b1a
18 changed files with 518 additions and 279 deletions
|
@ -67,9 +67,9 @@
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"danmu": "^0.12.0",
|
"danmu": "^0.12.0",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"framer-motion": "^11.11.7",
|
"framer-motion": "^11.11.8",
|
||||||
"idb-keyval": "^6.2.1",
|
"idb-keyval": "^6.2.1",
|
||||||
"lucide-react": "^0.451.0",
|
"lucide-react": "^0.452.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",
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^19.5.0",
|
"@commitlint/cli": "^19.5.0",
|
||||||
"@commitlint/config-conventional": "^19.5.0",
|
"@commitlint/config-conventional": "^19.5.0",
|
||||||
"@eslint-react/eslint-plugin": "^1.14.3",
|
"@eslint-react/eslint-plugin": "^1.15.0",
|
||||||
"@eslint/js": "^9.12.0",
|
"@eslint/js": "^9.12.0",
|
||||||
"@semantic-release/changelog": "^6.0.3",
|
"@semantic-release/changelog": "^6.0.3",
|
||||||
"@semantic-release/exec": "^6.0.3",
|
"@semantic-release/exec": "^6.0.3",
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
"@types/eslint-plugin-tailwindcss": "^3.17.0",
|
"@types/eslint-plugin-tailwindcss": "^3.17.0",
|
||||||
"@types/node": "^22.7.5",
|
"@types/node": "^22.7.5",
|
||||||
"@types/react": "^18.3.11",
|
"@types/react": "^18.3.11",
|
||||||
"@types/react-dom": "^18.3.0",
|
"@types/react-dom": "^18.3.1",
|
||||||
"@typescript-eslint/parser": "^8.8.1",
|
"@typescript-eslint/parser": "^8.8.1",
|
||||||
"@vitejs/plugin-react": "^4.3.2",
|
"@vitejs/plugin-react": "^4.3.2",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
|
|
426
pnpm-lock.yaml
426
pnpm-lock.yaml
|
@ -19,37 +19,37 @@ importers:
|
||||||
version: 1.13.0
|
version: 1.13.0
|
||||||
'@radix-ui/react-avatar':
|
'@radix-ui/react-avatar':
|
||||||
specifier: ^1.1.1
|
specifier: ^1.1.1
|
||||||
version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-checkbox':
|
'@radix-ui/react-checkbox':
|
||||||
specifier: ^1.1.2
|
specifier: ^1.1.2
|
||||||
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(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.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-dropdown-menu':
|
'@radix-ui/react-dropdown-menu':
|
||||||
specifier: ^2.1.2
|
specifier: ^2.1.2
|
||||||
version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-hover-card':
|
'@radix-ui/react-hover-card':
|
||||||
specifier: ^1.1.2
|
specifier: ^1.1.2
|
||||||
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(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.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-icons':
|
'@radix-ui/react-icons':
|
||||||
specifier: ^1.3.0
|
specifier: ^1.3.0
|
||||||
version: 1.3.0(react@18.3.1)
|
version: 1.3.0(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.0)(@types/react@18.3.11)(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.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-popover':
|
'@radix-ui/react-popover':
|
||||||
specifier: ^1.1.2
|
specifier: ^1.1.2
|
||||||
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(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.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-radio-group':
|
'@radix-ui/react-radio-group':
|
||||||
specifier: ^1.2.1
|
specifier: ^1.2.1
|
||||||
version: 1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-scroll-area':
|
'@radix-ui/react-scroll-area':
|
||||||
specifier: ^1.2.0
|
specifier: ^1.2.0
|
||||||
version: 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-slot':
|
'@radix-ui/react-slot':
|
||||||
specifier: ^1.1.0
|
specifier: ^1.1.0
|
||||||
version: 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
version: 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-switch':
|
'@radix-ui/react-switch':
|
||||||
specifier: ^1.1.1
|
specifier: ^1.1.1
|
||||||
version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@resreq/event-hub':
|
'@resreq/event-hub':
|
||||||
specifier: ^1.6.0
|
specifier: ^1.6.0
|
||||||
version: 1.6.0
|
version: 1.6.0
|
||||||
|
@ -78,14 +78,14 @@ importers:
|
||||||
specifier: ^4.1.0
|
specifier: ^4.1.0
|
||||||
version: 4.1.0
|
version: 4.1.0
|
||||||
framer-motion:
|
framer-motion:
|
||||||
specifier: ^11.11.7
|
specifier: ^11.11.8
|
||||||
version: 11.11.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 11.11.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
|
||||||
lucide-react:
|
lucide-react:
|
||||||
specifier: ^0.451.0
|
specifier: ^0.452.0
|
||||||
version: 0.451.0(react@18.3.1)
|
version: 0.452.0(react@18.3.1)
|
||||||
nanoid:
|
nanoid:
|
||||||
specifier: ^5.0.7
|
specifier: ^5.0.7
|
||||||
version: 5.0.7
|
version: 5.0.7
|
||||||
|
@ -154,8 +154,8 @@ importers:
|
||||||
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.3
|
specifier: ^1.15.0
|
||||||
version: 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
version: 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint/js':
|
'@eslint/js':
|
||||||
specifier: ^9.12.0
|
specifier: ^9.12.0
|
||||||
version: 9.12.0
|
version: 9.12.0
|
||||||
|
@ -184,8 +184,8 @@ importers:
|
||||||
specifier: ^18.3.11
|
specifier: ^18.3.11
|
||||||
version: 18.3.11
|
version: 18.3.11
|
||||||
'@types/react-dom':
|
'@types/react-dom':
|
||||||
specifier: ^18.3.0
|
specifier: ^18.3.1
|
||||||
version: 18.3.0
|
version: 18.3.1
|
||||||
'@typescript-eslint/parser':
|
'@typescript-eslint/parser':
|
||||||
specifier: ^8.8.1
|
specifier: ^8.8.1
|
||||||
version: 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
version: 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
|
@ -775,14 +775,14 @@ packages:
|
||||||
resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
|
resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
|
||||||
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
||||||
|
|
||||||
'@eslint-react/ast@1.14.3':
|
'@eslint-react/ast@1.15.0':
|
||||||
resolution: {integrity: sha512-JU0619vNfl0RaqbsyyEfLJWKupJOmf5JmHt4sCAD6Y1LCW80Pi0ZbBXeCUTdCR36mA8IJxm9PoLFliQyDYj6uw==}
|
resolution: {integrity: sha512-7rOLLfGER82FQJy7pCFNs4j/47RYTEiPDfMFGAu4W7yerJrvU2rRNqjSwwm1Iq0DrrasBV8a3IVtPYQoDOqycg==}
|
||||||
|
|
||||||
'@eslint-react/core@1.14.3':
|
'@eslint-react/core@1.15.0':
|
||||||
resolution: {integrity: sha512-1T/Zubn9PSwJHNN+4SnXXPb6ZjL1ILl9hN2pkPClh8IyBoCTM+u/BHTfxI3aVF5I8yWLNDaiG7nkaxmxoBEOfQ==}
|
resolution: {integrity: sha512-T7KirkdempegOxQznW1xclZtv5hQRChgbeYqisPRENkNg90w3uY7ia5iPf6FEZntkja/NF00VUnUetIw4rO0og==}
|
||||||
|
|
||||||
'@eslint-react/eslint-plugin@1.14.3':
|
'@eslint-react/eslint-plugin@1.15.0':
|
||||||
resolution: {integrity: sha512-U06zO3F56RAYXI0ZKTEpdwyWllV+muvi2gdC1SLARwk4AOmLAV8ke+iHW5EXBfNkCJQ3SgKRan4tpQqqwfEsMA==}
|
resolution: {integrity: sha512-5cuu7gNBgwQwgDX1YJugL7ujay0NT27g3UN0qtJAON9WLBv/ESq+qLMxddGwPSljV/XGxhwbbys09Jgww/fy8A==}
|
||||||
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
@ -791,20 +791,20 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@eslint-react/jsx@1.14.3':
|
'@eslint-react/jsx@1.15.0':
|
||||||
resolution: {integrity: sha512-LJqS63/S8koDJNIqKZ/yLuFvVk4RiK7K3emjUFx+UXHrIdKwFDMpFkksVVbxqeMX70E+toMXgMepABE0pA54ag==}
|
resolution: {integrity: sha512-VZy8RWPx+2PUuBKaXPtu2qWnWN9SpkdgY3ohkZoGdoqkEYkYaXjvABNByQLwvk2+Ewqt0K+1f8r7QoQi47pQmw==}
|
||||||
|
|
||||||
'@eslint-react/shared@1.14.3':
|
'@eslint-react/shared@1.15.0':
|
||||||
resolution: {integrity: sha512-GP+mjNZBGXq2CuwyVTE2+74K3tBixxNeaG3ho3ovpQ7e8NlTD3TOZk5vZyOJaeRqaOJoJa54PURe12Qt6loCdw==}
|
resolution: {integrity: sha512-LRgcKKhNePEJzuwICe3rgUC5KVd4ZhlKys91gMxmUob3RCiUj4BjfAURJMqzwsPGF32WQeHkipw1hWNGpQNdlw==}
|
||||||
|
|
||||||
'@eslint-react/tools@1.14.3':
|
'@eslint-react/tools@1.15.0':
|
||||||
resolution: {integrity: sha512-NtewO4fWxzGtVCjAhD6NG4FwLev5Xq87KWpW92brPF+AvTzkr04abt3/14CpojJlW9L9SMK6FsX9tFVP7ZBqJQ==}
|
resolution: {integrity: sha512-zdd2K3EV2tWaCzNH60wD159HuX904kWzv+X87yqzZ0Nf2OBUDJ4a561NoDX3Pn8A3E6hFdu666zpIGdeaej9eg==}
|
||||||
|
|
||||||
'@eslint-react/types@1.14.3':
|
'@eslint-react/types@1.15.0':
|
||||||
resolution: {integrity: sha512-Hi3rBCX0pAxoQs3MQYX/rt4Fxdz97U0pTjSQsm03dGUBb/BEVgrVK9SEZkCqpfPZ7NXrVhuiYudoJRUylNZyCw==}
|
resolution: {integrity: sha512-bajL6xIUxZp36fezn5HEhQpL0eJM923hwfRj6cym2Xl0Jn2YgahSztHorsOpId71MYBgn9ERy9yXItcnrz0rsQ==}
|
||||||
|
|
||||||
'@eslint-react/var@1.14.3':
|
'@eslint-react/var@1.15.0':
|
||||||
resolution: {integrity: sha512-APJJVSyrDrvJn3t4qXBg1XpWMxmW5AEym56a9/ILzLtgOWFsDj6gJCy4o2g5UB2AZqtfS6YS5IfU5B1G/wYtiw==}
|
resolution: {integrity: sha512-/QycKnbgZRygM/lhHtUFQrvvrswdOyaXfVxwtIFVEYoPHP9q7NaUn0mrBu4VWkXQC9zPk1nWQeC3rZMUxzretg==}
|
||||||
|
|
||||||
'@eslint/config-array@0.18.0':
|
'@eslint/config-array@0.18.0':
|
||||||
resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
|
resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
|
||||||
|
@ -2152,8 +2152,8 @@ packages:
|
||||||
'@types/prop-types@15.7.13':
|
'@types/prop-types@15.7.13':
|
||||||
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
|
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
|
||||||
|
|
||||||
'@types/react-dom@18.3.0':
|
'@types/react-dom@18.3.1':
|
||||||
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
|
resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==}
|
||||||
|
|
||||||
'@types/react@18.3.11':
|
'@types/react@18.3.11':
|
||||||
resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==}
|
resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==}
|
||||||
|
@ -3285,8 +3285,8 @@ packages:
|
||||||
eslint-config-prettier:
|
eslint-config-prettier:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-react-debug@1.14.3:
|
eslint-plugin-react-debug@1.15.0:
|
||||||
resolution: {integrity: sha512-qEsGT5LGFtYR1Hs9nqfrCqgE8MxrTe5VA7LO7Old8epgHgpgOGIuSIdIKYu7dxlEFGAXFB3JLW7ieYJYcgobbQ==}
|
resolution: {integrity: sha512-zD5WOVPwKNnO4897gz2yjZZcvdGIObKEi4QURDammVEc3sCU0evHcAPEknTC1WEd7T8A4Zu7Vt7sDaUz/DALnA==}
|
||||||
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
@ -3295,8 +3295,8 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-react-dom@1.14.3:
|
eslint-plugin-react-dom@1.15.0:
|
||||||
resolution: {integrity: sha512-tVA7RQI6Jxomeqrckqi/y1gEmcdI29b268p7K8WjRUWNUDXbZR6vEyaLBqzI8+ykO1HsK8+QhOKUHgUKHjOZBQ==}
|
resolution: {integrity: sha512-P8IdPfiEpDR8SHZdnYJzfdSkV++0hHzOJQhLW9eACyuGCBuzLj2gglmPR5gH2RG44R+Iq5+hsUVNv7sklThvRg==}
|
||||||
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
@ -3305,8 +3305,8 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-react-hooks-extra@1.14.3:
|
eslint-plugin-react-hooks-extra@1.15.0:
|
||||||
resolution: {integrity: sha512-G6mFfYiKgKbGJOUlmvcsN+n0hNiRGa9pNenv4hSlbm3TJFmlrLG+cHvOa9xe88AvaLJHfF5obgF8X/zhSekIfA==}
|
resolution: {integrity: sha512-guIcax3c4Z/iWyDwZdo5b0qzqpJrhH4svYIfj+wEpfjRdIwpAvL0xM1uqJKdz8Hbgw1D+6dePSau4zmVkuaMqA==}
|
||||||
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
@ -3315,8 +3315,8 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-react-naming-convention@1.14.3:
|
eslint-plugin-react-naming-convention@1.15.0:
|
||||||
resolution: {integrity: sha512-qj7XpwYQAKNCTloWA9vPNYDRMsiLa5H/jlF3mH17Is+j/pLH97NRG9CQXbh6kEdLbBFSsHwTDvyP22+CPVZhiA==}
|
resolution: {integrity: sha512-XjbkBFEsaGvhDUKCxDCdJ34dsr/XnQu5a7hq6h2aNpnu05VGCAW6CXf3VuyI/sKfj3Em+aX/9eHdcRi12+dmLg==}
|
||||||
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
@ -3325,8 +3325,8 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-react-web-api@1.14.3:
|
eslint-plugin-react-web-api@1.15.0:
|
||||||
resolution: {integrity: sha512-1G/WIUe+ZIPW8px1lmn7ib5fy6LcuwoHDsnq9G92iE8MFXYPA0Pry0ZKaB2lAsjP8rUROv1L9B457QjyCpro2g==}
|
resolution: {integrity: sha512-LUwzKumBApdKzUgl+9F5/TyJbYGQIOy450s6kr3rLPrc9tk8GQrBmSQKmWh2g7C1x7DIoMNFXeUuAD1q/1AKnw==}
|
||||||
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
@ -3335,8 +3335,8 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-react-x@1.14.3:
|
eslint-plugin-react-x@1.15.0:
|
||||||
resolution: {integrity: sha512-VKyF4v1kWp9P6vI7JDJfonmny0HOQiS5v/rMLyldK9UC8k+efJN7dUtLE2Kt7TfxggE5gf+v4rsDB2Opvt5Tvg==}
|
resolution: {integrity: sha512-TIZVElFYVXvybmMBVzHPF2hmsaG7greytHd80efUPopxlr+JGjKba6zA3cJAURn+yzN1x2zPJzss2BkB8/48aQ==}
|
||||||
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
engines: {bun: '>=1.0.15', node: '>=18.18.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
@ -3562,8 +3562,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.7:
|
framer-motion@11.11.8:
|
||||||
resolution: {integrity: sha512-89CgILOXPeG3L7ymOTGrLmf8IiKubYLUN/QkYgQuLvehAHfqgwJbLfCnhuyRI4WTds1TXkUp67A7IJrgRY/j1w==}
|
resolution: {integrity: sha512-mnGQNEoz99GtFXBBPw+Ag5K4FcfP5XrXxrxHz+iE4Lmg7W3sf2gKmGuvfkZCW/yIfcdv5vJd6KiSPETH1Pw68Q==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/is-prop-valid': '*'
|
'@emotion/is-prop-valid': '*'
|
||||||
react: ^18.0.0
|
react: ^18.0.0
|
||||||
|
@ -4556,8 +4556,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.451.0:
|
lucide-react@0.452.0:
|
||||||
resolution: {integrity: sha512-OwQ3uljZLp2cerj8sboy5rnhtGTCl9UCJIhT1J85/yOuGVlEH+xaUPR7tvNdddPvmV5M5VLdr7cQuWE3hzA4jw==}
|
resolution: {integrity: sha512-kNefjOUOGm+Mu3KDiryONyPba9r+nhcrz5oJs3N6JDzGboQNEXw5GB3yB8rnV9/FA4bPyggNU6CRSihZm9MvSw==}
|
||||||
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
|
||||||
|
|
||||||
|
@ -7331,10 +7331,10 @@ snapshots:
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.11.1': {}
|
'@eslint-community/regexpp@4.11.1': {}
|
||||||
|
|
||||||
'@eslint-react/ast@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
'@eslint-react/ast@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3)
|
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3)
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
|
@ -7346,14 +7346,14 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/core@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
'@eslint-react/core@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/jsx': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/jsx': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/var': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/var': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
|
@ -7366,33 +7366,33 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/eslint-plugin@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
'@eslint-react/eslint-plugin@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
eslint: 9.12.0(jiti@2.3.3)
|
eslint: 9.12.0(jiti@2.3.3)
|
||||||
eslint-plugin-react-debug: 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
eslint-plugin-react-debug: 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
eslint-plugin-react-dom: 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
eslint-plugin-react-dom: 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
eslint-plugin-react-hooks-extra: 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
eslint-plugin-react-hooks-extra: 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
eslint-plugin-react-naming-convention: 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
eslint-plugin-react-naming-convention: 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
eslint-plugin-react-web-api: 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
eslint-plugin-react-web-api: 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
eslint-plugin-react-x: 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
eslint-plugin-react-x: 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.6.3
|
typescript: 5.6.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@eslint-react/jsx@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
'@eslint-react/jsx@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/var': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/var': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
|
@ -7402,9 +7402,9 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/shared@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
'@eslint-react/shared@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
picomatch: 4.0.2
|
picomatch: 4.0.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -7412,11 +7412,11 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/tools@1.14.3': {}
|
'@eslint-react/tools@1.15.0': {}
|
||||||
|
|
||||||
'@eslint-react/types@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
'@eslint-react/types@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -7424,11 +7424,11 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@eslint-react/var@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
'@eslint-react/var@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
|
@ -8322,34 +8322,34 @@ snapshots:
|
||||||
|
|
||||||
'@radix-ui/primitive@1.1.0': {}
|
'@radix-ui/primitive@1.1.0': {}
|
||||||
|
|
||||||
'@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-avatar@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-avatar@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-checkbox@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-checkbox@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
|
@ -8357,19 +8357,19 @@ snapshots:
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)':
|
'@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -8395,33 +8395,33 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
|
|
||||||
'@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.11)(react@18.3.1)':
|
'@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.11)(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -8429,33 +8429,33 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
|
|
||||||
'@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-hover-card@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-hover-card@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-icons@1.3.0(react@18.3.1)':
|
'@radix-ui/react-icons@1.3.0(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -8468,31 +8468,31 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
|
|
||||||
'@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-label@2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
aria-hidden: 1.2.4
|
aria-hidden: 1.2.4
|
||||||
|
@ -8501,21 +8501,21 @@ snapshots:
|
||||||
react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1)
|
react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-popover@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-popover@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
aria-hidden: 1.2.4
|
aria-hidden: 1.2.4
|
||||||
|
@ -8524,15 +8524,15 @@ snapshots:
|
||||||
react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1)
|
react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
|
@ -8542,19 +8542,19 @@ snapshots:
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
|
@ -8562,26 +8562,26 @@ snapshots:
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-radio-group@1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-radio-group@1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
|
@ -8589,41 +8589,41 @@ snapshots:
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-scroll-area@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-scroll-area@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/number': 1.1.0
|
'@radix-ui/number': 1.1.0
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)':
|
'@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -8632,12 +8632,12 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
|
|
||||||
'@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/primitive': 1.1.0
|
'@radix-ui/primitive': 1.1.0
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1)
|
||||||
|
@ -8645,7 +8645,7 @@ snapshots:
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
'@types/react-dom': 18.3.0
|
'@types/react-dom': 18.3.1
|
||||||
|
|
||||||
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.11)(react@18.3.1)':
|
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.11)(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -9122,7 +9122,7 @@ snapshots:
|
||||||
|
|
||||||
'@types/prop-types@15.7.13': {}
|
'@types/prop-types@15.7.13': {}
|
||||||
|
|
||||||
'@types/react-dom@18.3.0':
|
'@types/react-dom@18.3.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 18.3.11
|
'@types/react': 18.3.11
|
||||||
|
|
||||||
|
@ -10452,15 +10452,15 @@ snapshots:
|
||||||
'@types/eslint': 9.6.1
|
'@types/eslint': 9.6.1
|
||||||
eslint-config-prettier: 9.1.0(eslint@9.12.0(jiti@2.3.3))
|
eslint-config-prettier: 9.1.0(eslint@9.12.0(jiti@2.3.3))
|
||||||
|
|
||||||
eslint-plugin-react-debug@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
eslint-plugin-react-debug@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/core': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/core': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/jsx': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/jsx': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/var': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/var': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
|
@ -10473,15 +10473,15 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-dom@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
eslint-plugin-react-dom@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/core': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/core': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/jsx': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/jsx': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/var': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/var': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
|
@ -10492,15 +10492,15 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-hooks-extra@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
eslint-plugin-react-hooks-extra@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/core': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/core': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/jsx': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/jsx': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/var': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/var': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
|
@ -10512,14 +10512,14 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-naming-convention@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
eslint-plugin-react-naming-convention@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/core': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/core': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/jsx': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/jsx': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
|
@ -10531,15 +10531,15 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-web-api@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
eslint-plugin-react-web-api@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/core': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/core': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/jsx': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/jsx': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/var': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/var': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
|
@ -10551,15 +10551,15 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-react-x@1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
eslint-plugin-react-x@1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/ast': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/ast': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/core': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/core': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/jsx': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/jsx': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/shared': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/shared': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/tools': 1.14.3
|
'@eslint-react/tools': 1.15.0
|
||||||
'@eslint-react/types': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/types': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@eslint-react/var': 1.14.3(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@eslint-react/var': 1.15.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 8.8.1
|
'@typescript-eslint/scope-manager': 8.8.1
|
||||||
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)
|
||||||
'@typescript-eslint/types': 8.8.1
|
'@typescript-eslint/types': 8.8.1
|
||||||
|
@ -10876,7 +10876,7 @@ snapshots:
|
||||||
|
|
||||||
fraction.js@4.3.7: {}
|
fraction.js@4.3.7: {}
|
||||||
|
|
||||||
framer-motion@11.11.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
framer-motion@11.11.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:
|
||||||
|
@ -11900,7 +11900,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
yallist: 3.1.1
|
yallist: 3.1.1
|
||||||
|
|
||||||
lucide-react@0.451.0(react@18.3.1):
|
lucide-react@0.452.0(react@18.3.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,31 @@
|
||||||
import { EVENT } from '@/constants/event'
|
import { EVENT } from '@/constants/event'
|
||||||
|
import { messenger } from '@/messenger'
|
||||||
import { browser } from 'wxt/browser'
|
import { browser } from 'wxt/browser'
|
||||||
import { defineBackground } from 'wxt/sandbox'
|
import { defineBackground } from 'wxt/sandbox'
|
||||||
|
|
||||||
export default defineBackground({
|
export default defineBackground({
|
||||||
// Set manifest options
|
|
||||||
persistent: true,
|
|
||||||
type: 'module',
|
type: 'module',
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
browser.runtime.onMessage.addListener(async (event: EVENT) => {
|
messenger.onMessage(EVENT.OPTIONS_PAGE_OPEN, () => {
|
||||||
if (event === EVENT.OPTIONS_PAGE_OPEN) {
|
|
||||||
browser.runtime.openOptionsPage()
|
browser.runtime.openOptionsPage()
|
||||||
}
|
})
|
||||||
|
messenger.onMessage(EVENT.NOTIFICATION_PUSH, async ({ data: message, sender }) => {
|
||||||
|
// Check if there is an active tab on the same site
|
||||||
|
const tabs = await browser.tabs.query({ active: true })
|
||||||
|
const hasActiveSomeSiteTab = tabs.some((tab) => {
|
||||||
|
return new URL(tab.url!).origin === new URL(sender.tab!.url!).origin
|
||||||
|
})
|
||||||
|
|
||||||
|
if (hasActiveSomeSiteTab) return
|
||||||
|
browser.notifications.create(message.id, {
|
||||||
|
type: 'basic',
|
||||||
|
iconUrl: message.userAvatar,
|
||||||
|
title: message.username,
|
||||||
|
message: message.body
|
||||||
|
})
|
||||||
|
})
|
||||||
|
messenger.onMessage(EVENT.NOTIFICATION_CLEAR, async ({ data: id }) => {
|
||||||
|
browser.notifications.clear(id)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { createRoot } from 'react-dom/client'
|
import { createRoot } from 'react-dom/client'
|
||||||
import { Remesh } from 'remesh'
|
import { Remesh } from 'remesh'
|
||||||
import { RemeshRoot } from 'remesh-react'
|
import { RemeshRoot, RemeshScope } from 'remesh-react'
|
||||||
import { RemeshLogger } from 'remesh-logger'
|
import { RemeshLogger } from 'remesh-logger'
|
||||||
import { defineContentScript } from 'wxt/sandbox'
|
import { defineContentScript } from 'wxt/sandbox'
|
||||||
import { createShadowRootUi } from 'wxt/client'
|
import { createShadowRootUi } from 'wxt/client'
|
||||||
|
@ -9,12 +9,14 @@ import { createShadowRootUi } from 'wxt/client'
|
||||||
import App from './App'
|
import App from './App'
|
||||||
import { LocalStorageImpl, IndexDBStorageImpl, BrowserSyncStorageImpl } from '@/domain/impls/Storage'
|
import { LocalStorageImpl, IndexDBStorageImpl, BrowserSyncStorageImpl } from '@/domain/impls/Storage'
|
||||||
import { DanmakuImpl } from '@/domain/impls/Danmaku'
|
import { DanmakuImpl } from '@/domain/impls/Danmaku'
|
||||||
|
import { NotificationImpl } from '@/domain/impls/Notification'
|
||||||
|
import { ToastImpl } from '@/domain/impls/Toast'
|
||||||
// import { PeerRoomImpl } from '@/domain/impls/PeerRoom'
|
// import { PeerRoomImpl } from '@/domain/impls/PeerRoom'
|
||||||
import { PeerRoomImpl } from '@/domain/impls/PeerRoom2'
|
import { PeerRoomImpl } from '@/domain/impls/PeerRoom2'
|
||||||
import '@/assets/styles/tailwind.css'
|
import '@/assets/styles/tailwind.css'
|
||||||
import '@/assets/styles/sonner.css'
|
import '@/assets/styles/sonner.css'
|
||||||
import { createElement } from '@/utils'
|
import { createElement } from '@/utils'
|
||||||
import { ToastImpl } from '@/domain/impls/Toast'
|
import NotificationDomain from '@/domain/Notification'
|
||||||
|
|
||||||
export default defineContentScript({
|
export default defineContentScript({
|
||||||
cssInjectionMode: 'ui',
|
cssInjectionMode: 'ui',
|
||||||
|
@ -23,7 +25,15 @@ export default defineContentScript({
|
||||||
excludeMatches: ['*://localhost/*', '*://127.0.0.1/*', '*://*.csdn.net/*', '*://*.csdn.com/*'],
|
excludeMatches: ['*://localhost/*', '*://127.0.0.1/*', '*://*.csdn.net/*', '*://*.csdn.com/*'],
|
||||||
async main(ctx) {
|
async main(ctx) {
|
||||||
const store = Remesh.store({
|
const store = Remesh.store({
|
||||||
externs: [LocalStorageImpl, IndexDBStorageImpl, BrowserSyncStorageImpl, PeerRoomImpl, ToastImpl, DanmakuImpl]
|
externs: [
|
||||||
|
LocalStorageImpl,
|
||||||
|
IndexDBStorageImpl,
|
||||||
|
BrowserSyncStorageImpl,
|
||||||
|
PeerRoomImpl,
|
||||||
|
ToastImpl,
|
||||||
|
DanmakuImpl,
|
||||||
|
NotificationImpl
|
||||||
|
]
|
||||||
// inspectors: __DEV__ ? [RemeshLogger()] : []
|
// inspectors: __DEV__ ? [RemeshLogger()] : []
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -42,7 +52,9 @@ export default defineContentScript({
|
||||||
root.render(
|
root.render(
|
||||||
<React.StrictMode>
|
<React.StrictMode>
|
||||||
<RemeshRoot store={store}>
|
<RemeshRoot store={store}>
|
||||||
|
<RemeshScope domains={[NotificationDomain()]}>
|
||||||
<App />
|
<App />
|
||||||
|
</RemeshScope>
|
||||||
</RemeshRoot>
|
</RemeshRoot>
|
||||||
</React.StrictMode>
|
</React.StrictMode>
|
||||||
)
|
)
|
||||||
|
|
|
@ -19,6 +19,7 @@ import LogoIcon5 from '@/assets/images/logo-5.svg'
|
||||||
import LogoIcon6 from '@/assets/images/logo-6.svg'
|
import LogoIcon6 from '@/assets/images/logo-6.svg'
|
||||||
import AppStatusDomain from '@/domain/AppStatus'
|
import AppStatusDomain from '@/domain/AppStatus'
|
||||||
import { getDay } from 'date-fns'
|
import { getDay } from 'date-fns'
|
||||||
|
import { messenger } from '@/messenger'
|
||||||
|
|
||||||
const AppButton: FC = () => {
|
const AppButton: FC = () => {
|
||||||
const send = useRemeshSend()
|
const send = useRemeshSend()
|
||||||
|
@ -56,7 +57,7 @@ const AppButton: FC = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleOpenOptionsPage = () => {
|
const handleOpenOptionsPage = () => {
|
||||||
browser.runtime.sendMessage(EVENT.OPTIONS_PAGE_OPEN)
|
messenger.sendMessage(EVENT.OPTIONS_PAGE_OPEN, undefined)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleToggleApp = () => {
|
const handleToggleApp = () => {
|
||||||
|
|
|
@ -42,7 +42,8 @@ const generateUserInfo = async (): Promise<UserInfo> => {
|
||||||
avatar: await generateRandomAvatar(MAX_AVATAR_SIZE),
|
avatar: await generateRandomAvatar(MAX_AVATAR_SIZE),
|
||||||
createTime: Date.now(),
|
createTime: Date.now(),
|
||||||
themeMode: checkSystemDarkMode() ? 'dark' : 'system',
|
themeMode: checkSystemDarkMode() ? 'dark' : 'system',
|
||||||
danmakuEnabled: true
|
danmakuEnabled: true,
|
||||||
|
notificationEnabled: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { RadioGroup, RadioGroupItem } from '@/components/ui/RadioGroup'
|
||||||
import { Label } from '@/components/ui/Label'
|
import { Label } from '@/components/ui/Label'
|
||||||
import { RefreshCcwIcon } from 'lucide-react'
|
import { RefreshCcwIcon } from 'lucide-react'
|
||||||
import { MAX_AVATAR_SIZE } from '@/constants/config'
|
import { MAX_AVATAR_SIZE } from '@/constants/config'
|
||||||
import ToastDomain from '@/domain/Toast'
|
import { ToastImpl } from '@/domain/impls/Toast'
|
||||||
import BlurFade from '@/components/magicui/BlurFade'
|
import BlurFade from '@/components/magicui/BlurFade'
|
||||||
import { Checkbox } from '@/components/ui/checkbox'
|
import { Checkbox } from '@/components/ui/checkbox'
|
||||||
import Link from '@/components/Link'
|
import Link from '@/components/Link'
|
||||||
|
@ -25,7 +25,8 @@ const defaultUserInfo: UserInfo = {
|
||||||
avatar: '',
|
avatar: '',
|
||||||
createTime: Date.now(),
|
createTime: Date.now(),
|
||||||
themeMode: checkSystemDarkMode() ? 'dark' : 'system',
|
themeMode: checkSystemDarkMode() ? 'dark' : 'system',
|
||||||
danmakuEnabled: true
|
danmakuEnabled: true,
|
||||||
|
notificationEnabled: false
|
||||||
}
|
}
|
||||||
|
|
||||||
const formSchema = v.object({
|
const formSchema = v.object({
|
||||||
|
@ -52,12 +53,13 @@ const formSchema = v.object({
|
||||||
v.string(),
|
v.string(),
|
||||||
v.union([v.literal('system'), v.literal('light'), v.literal('dark')], 'Please select extension theme mode.')
|
v.union([v.literal('system'), v.literal('light'), v.literal('dark')], 'Please select extension theme mode.')
|
||||||
),
|
),
|
||||||
danmakuEnabled: v.boolean()
|
danmakuEnabled: v.boolean(),
|
||||||
|
notificationEnabled: v.boolean()
|
||||||
})
|
})
|
||||||
|
|
||||||
const ProfileForm = () => {
|
const ProfileForm = () => {
|
||||||
const send = useRemeshSend()
|
const send = useRemeshSend()
|
||||||
const toastDomain = useRemeshDomain(ToastDomain())
|
const toast = ToastImpl.value
|
||||||
|
|
||||||
const userInfoDomain = useRemeshDomain(UserInfoDomain())
|
const userInfoDomain = useRemeshDomain(UserInfoDomain())
|
||||||
const userInfo = useRemeshQuery(userInfoDomain.query.UserInfoQuery())
|
const userInfo = useRemeshQuery(userInfoDomain.query.UserInfoQuery())
|
||||||
|
@ -74,15 +76,15 @@ const ProfileForm = () => {
|
||||||
|
|
||||||
const handleSubmit = (userInfo: UserInfo) => {
|
const handleSubmit = (userInfo: UserInfo) => {
|
||||||
send(userInfoDomain.command.UpdateUserInfoCommand(userInfo))
|
send(userInfoDomain.command.UpdateUserInfoCommand(userInfo))
|
||||||
send(toastDomain.command.SuccessCommand('Saved successfully!'))
|
toast.success('Saved successfully!')
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleWarning = (error: Error) => {
|
const handleWarning = (error: Error) => {
|
||||||
send(toastDomain.command.WarningCommand(error.message))
|
toast.warning(error.message)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleError = (error: Error) => {
|
const handleError = (error: Error) => {
|
||||||
send(toastDomain.command.ErrorCommand(error.message))
|
toast.error(error.message)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleRefreshAvatar = async () => {
|
const handleRefreshAvatar = async () => {
|
||||||
|
@ -163,7 +165,7 @@ const ProfileForm = () => {
|
||||||
</div>
|
</div>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
Enabling this will display messages scrolling on the website.
|
Enabling this option will display scrolling messages on the website.
|
||||||
<Link className="ml-2 text-primary" href="https://en.wikipedia.org/wiki/Danmaku_subtitling">
|
<Link className="ml-2 text-primary" href="https://en.wikipedia.org/wiki/Danmaku_subtitling">
|
||||||
Wikipedia
|
Wikipedia
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -172,6 +174,30 @@ const ProfileForm = () => {
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
<FormField
|
||||||
|
control={form.control}
|
||||||
|
name="notificationEnabled"
|
||||||
|
render={({ field }) => (
|
||||||
|
<FormItem>
|
||||||
|
{/* <FormLabel>Username</FormLabel> */}
|
||||||
|
<FormControl>
|
||||||
|
<div className="flex items-center space-x-2">
|
||||||
|
<Checkbox
|
||||||
|
defaultChecked={false}
|
||||||
|
id="notification-enabled"
|
||||||
|
onCheckedChange={field.onChange}
|
||||||
|
checked={field.value}
|
||||||
|
/>
|
||||||
|
<FormLabel className="cursor-pointer" htmlFor="notification-enabled">
|
||||||
|
Enable Notification
|
||||||
|
</FormLabel>
|
||||||
|
</div>
|
||||||
|
</FormControl>
|
||||||
|
<FormDescription>Enabling this option will display desktop notifications for messages.</FormDescription>
|
||||||
|
<FormMessage />
|
||||||
|
</FormItem>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
<FormField
|
<FormField
|
||||||
control={form.control}
|
control={form.control}
|
||||||
name="themeMode"
|
name="themeMode"
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
export enum EVENT {
|
export enum EVENT {
|
||||||
OPTIONS_PAGE_OPEN = `WEB_CHAT_OPTIONS_PAGE_OPEN`,
|
OPTIONS_PAGE_OPEN = `WEB_CHAT_OPTIONS_PAGE_OPEN`,
|
||||||
APP_OPEN = 'WEB_CHAT_APP_OPEN'
|
APP_OPEN = 'WEB_CHAT_APP_OPEN',
|
||||||
|
NOTIFICATION_PUSH = 'WEB_CHAT_NOTIFICATION_PUSH',
|
||||||
|
NOTIFICATION_CLEAR = 'WEB_CHAT_NOTIFICATION_CLEAR'
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
import { Remesh } from 'remesh'
|
import { Remesh } from 'remesh'
|
||||||
import { DanmakuExtern } from './externs/Danmaku'
|
import { DanmakuExtern } from './externs/Danmaku'
|
||||||
import { TextMessage } from './Room'
|
import RoomDomain, { TextMessage } from './Room'
|
||||||
import UserInfoDomain from './UserInfo'
|
import UserInfoDomain from './UserInfo'
|
||||||
import { map } from 'rxjs'
|
import { map, merge, of } from 'rxjs'
|
||||||
|
|
||||||
const DanmakuDomain = Remesh.domain({
|
const DanmakuDomain = Remesh.domain({
|
||||||
name: 'DanmakuDomain',
|
name: 'DanmakuDomain',
|
||||||
impl: (domain) => {
|
impl: (domain) => {
|
||||||
const danmaku = domain.getExtern(DanmakuExtern)
|
const danmaku = domain.getExtern(DanmakuExtern)
|
||||||
const userInfoDomain = domain.getDomain(UserInfoDomain())
|
const userInfoDomain = domain.getDomain(UserInfoDomain())
|
||||||
|
const roomDomain = domain.getDomain(RoomDomain())
|
||||||
|
|
||||||
const MountState = domain.state({
|
const MountState = domain.state({
|
||||||
name: 'Danmaku.MountState',
|
name: 'Danmaku.MountState',
|
||||||
|
@ -117,6 +118,22 @@ const DanmakuDomain = Remesh.domain({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
domain.effect({
|
||||||
|
name: 'Danmaku.OnRoomMessageEffect',
|
||||||
|
impl: ({ fromEvent, get }) => {
|
||||||
|
const sendTextMessage$ = fromEvent(roomDomain.event.SendTextMessageEvent)
|
||||||
|
const onTextMessage$ = fromEvent(roomDomain.event.OnTextMessageEvent)
|
||||||
|
|
||||||
|
const onMessage$ = merge(sendTextMessage$, onTextMessage$).pipe(
|
||||||
|
map((message) => {
|
||||||
|
const danmakuEnabled = get(IsEnabledQuery())
|
||||||
|
return danmakuEnabled ? PushCommand(message) : null
|
||||||
|
})
|
||||||
|
)
|
||||||
|
return onMessage$
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
query: {
|
query: {
|
||||||
IsMountedQuery,
|
IsMountedQuery,
|
||||||
|
|
110
src/domain/Notification.ts
Normal file
110
src/domain/Notification.ts
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
import { Remesh } from 'remesh'
|
||||||
|
import { NotificationExtern } from './externs/Notification'
|
||||||
|
import RoomDomain, { TextMessage } from './Room'
|
||||||
|
import UserInfoDomain from './UserInfo'
|
||||||
|
import { map, merge } from 'rxjs'
|
||||||
|
|
||||||
|
const NotificationDomain = Remesh.domain({
|
||||||
|
name: 'NotificationDomain',
|
||||||
|
impl: (domain) => {
|
||||||
|
const notification = domain.getExtern(NotificationExtern)
|
||||||
|
const userInfoDomain = domain.getDomain(UserInfoDomain())
|
||||||
|
const roomDomain = domain.getDomain(RoomDomain())
|
||||||
|
|
||||||
|
const NotificationEnabledState = domain.state<boolean>({
|
||||||
|
name: 'Notification.EnabledState',
|
||||||
|
default: false
|
||||||
|
})
|
||||||
|
|
||||||
|
const IsEnabledQuery = domain.query({
|
||||||
|
name: 'Notification.IsOpenQuery',
|
||||||
|
impl: ({ get }) => {
|
||||||
|
return get(NotificationEnabledState())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const EnableCommand = domain.command({
|
||||||
|
name: 'Notification.EnableCommand',
|
||||||
|
impl: () => {
|
||||||
|
return NotificationEnabledState().new(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const DisableCommand = domain.command({
|
||||||
|
name: 'Notification.DisableCommand',
|
||||||
|
impl: () => {
|
||||||
|
return NotificationEnabledState().new(false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const PushCommand = domain.command({
|
||||||
|
name: 'Notification.PushCommand',
|
||||||
|
impl: (_, message: TextMessage) => {
|
||||||
|
notification.push(message)
|
||||||
|
return [PushEvent(message)]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const ClearCommand = domain.command({
|
||||||
|
name: 'Notification.ClearCommand',
|
||||||
|
impl: (_, id: string) => {
|
||||||
|
notification.clear(id)
|
||||||
|
return [ClearEvent(id)]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const PushEvent = domain.event<TextMessage>({
|
||||||
|
name: 'Notification.PushEvent'
|
||||||
|
})
|
||||||
|
|
||||||
|
const ClearEvent = domain.event<string>({
|
||||||
|
name: 'Notification.ClearEvent'
|
||||||
|
})
|
||||||
|
|
||||||
|
domain.effect({
|
||||||
|
name: 'Notification.OnUserInfoEffect',
|
||||||
|
impl: ({ fromEvent }) => {
|
||||||
|
const onUserInfo$ = fromEvent(userInfoDomain.event.UpdateUserInfoEvent)
|
||||||
|
return onUserInfo$.pipe(
|
||||||
|
map((userInfo) => {
|
||||||
|
return userInfo?.notificationEnabled ? EnableCommand() : DisableCommand()
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
domain.effect({
|
||||||
|
name: 'Notification.OnRoomMessageEffect',
|
||||||
|
impl: ({ fromEvent, get }) => {
|
||||||
|
const onTextMessage$ = fromEvent(roomDomain.event.OnTextMessageEvent)
|
||||||
|
|
||||||
|
const onMessage$ = merge(onTextMessage$).pipe(
|
||||||
|
map((message) => {
|
||||||
|
const notificationEnabled = get(IsEnabledQuery())
|
||||||
|
return notificationEnabled ? PushCommand(message) : null
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
return onMessage$
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return {
|
||||||
|
query: {
|
||||||
|
IsEnabledQuery
|
||||||
|
},
|
||||||
|
command: {
|
||||||
|
EnableCommand,
|
||||||
|
DisableCommand,
|
||||||
|
PushCommand,
|
||||||
|
ClearCommand
|
||||||
|
},
|
||||||
|
event: {
|
||||||
|
PushEvent,
|
||||||
|
ClearEvent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export default NotificationDomain
|
|
@ -7,8 +7,6 @@ import UserInfoDomain from '@/domain/UserInfo'
|
||||||
import { desert, upsert } from '@/utils'
|
import { desert, upsert } from '@/utils'
|
||||||
import { nanoid } from 'nanoid'
|
import { nanoid } from 'nanoid'
|
||||||
import StatusModule from '@/domain/modules/Status'
|
import StatusModule from '@/domain/modules/Status'
|
||||||
import { ToastExtern } from '@/domain/externs/Toast'
|
|
||||||
import DanmakuDomain from '@/domain/Danmaku'
|
|
||||||
|
|
||||||
export { MessageType }
|
export { MessageType }
|
||||||
|
|
||||||
|
@ -51,9 +49,7 @@ const RoomDomain = Remesh.domain({
|
||||||
impl: (domain) => {
|
impl: (domain) => {
|
||||||
const messageListDomain = domain.getDomain(MessageListDomain())
|
const messageListDomain = domain.getDomain(MessageListDomain())
|
||||||
const userInfoDomain = domain.getDomain(UserInfoDomain())
|
const userInfoDomain = domain.getDomain(UserInfoDomain())
|
||||||
const danmakuDomain = domain.getDomain(DanmakuDomain())
|
|
||||||
const peerRoom = domain.getExtern(PeerRoomExtern)
|
const peerRoom = domain.getExtern(PeerRoomExtern)
|
||||||
const toast = domain.getExtern(ToastExtern)
|
|
||||||
|
|
||||||
const PeerIdState = domain.state<string>({
|
const PeerIdState = domain.state<string>({
|
||||||
name: 'Room.PeerIdState',
|
name: 'Room.PeerIdState',
|
||||||
|
@ -139,12 +135,7 @@ const RoomDomain = Remesh.domain({
|
||||||
const SendTextMessageCommand = domain.command({
|
const SendTextMessageCommand = domain.command({
|
||||||
name: 'Room.SendTextMessageCommand',
|
name: 'Room.SendTextMessageCommand',
|
||||||
impl: ({ get }, message: string) => {
|
impl: ({ get }, message: string) => {
|
||||||
const {
|
const { id: userId, name: username, avatar: userAvatar } = get(userInfoDomain.query.UserInfoQuery())!
|
||||||
id: userId,
|
|
||||||
name: username,
|
|
||||||
avatar: userAvatar,
|
|
||||||
danmakuEnabled
|
|
||||||
} = get(userInfoDomain.query.UserInfoQuery())!
|
|
||||||
|
|
||||||
const textMessage: TextMessage = {
|
const textMessage: TextMessage = {
|
||||||
id: nanoid(),
|
id: nanoid(),
|
||||||
|
@ -164,11 +155,7 @@ const RoomDomain = Remesh.domain({
|
||||||
}
|
}
|
||||||
|
|
||||||
peerRoom.sendMessage(textMessage)
|
peerRoom.sendMessage(textMessage)
|
||||||
return [
|
return [messageListDomain.command.CreateItemCommand(listMessage), SendTextMessageEvent(textMessage)]
|
||||||
messageListDomain.command.CreateItemCommand(listMessage),
|
|
||||||
danmakuEnabled ? PushDanmakuCommand(textMessage) : null,
|
|
||||||
SendTextMessageEvent(textMessage)
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -244,20 +231,6 @@ const RoomDomain = Remesh.domain({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const PushDanmakuCommand = domain.command({
|
|
||||||
name: 'Room.PushDanmakuCommand',
|
|
||||||
impl: (_, message: TextMessage) => {
|
|
||||||
return [danmakuDomain.command.PushCommand(message)]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// const UnshiftDanmakuCommand = domain.command({
|
|
||||||
// name: 'Room.PushDanmakuCommand',
|
|
||||||
// impl: (_, message: TextMessage) => {
|
|
||||||
// return [danmakuDomain.command.UnshiftCommand(message)]
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
|
|
||||||
const SendJoinMessageEvent = domain.event<SyncUserMessage>({
|
const SendJoinMessageEvent = domain.event<SyncUserMessage>({
|
||||||
name: 'Room.SendJoinMessageEvent'
|
name: 'Room.SendJoinMessageEvent'
|
||||||
})
|
})
|
||||||
|
@ -286,6 +259,10 @@ const RoomDomain = Remesh.domain({
|
||||||
name: 'Room.OnMessageEvent'
|
name: 'Room.OnMessageEvent'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const OnTextMessageEvent = domain.event<TextMessage>({
|
||||||
|
name: 'Room.OnTextMessageEvent'
|
||||||
|
})
|
||||||
|
|
||||||
const OnJoinRoomEvent = domain.event<string>({
|
const OnJoinRoomEvent = domain.event<string>({
|
||||||
name: 'Room.OnJoinRoomEvent'
|
name: 'Room.OnJoinRoomEvent'
|
||||||
})
|
})
|
||||||
|
@ -294,6 +271,10 @@ const RoomDomain = Remesh.domain({
|
||||||
name: 'Room.OnLeaveRoomEvent'
|
name: 'Room.OnLeaveRoomEvent'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const OnErrorEvent = domain.event<Error>({
|
||||||
|
name: 'Room.OnErrorEvent'
|
||||||
|
})
|
||||||
|
|
||||||
domain.effect({
|
domain.effect({
|
||||||
name: 'Room.OnJoinRoomEffect',
|
name: 'Room.OnJoinRoomEffect',
|
||||||
impl: () => {
|
impl: () => {
|
||||||
|
@ -317,10 +298,11 @@ const RoomDomain = Remesh.domain({
|
||||||
const onMessage$ = fromEventPattern<RoomMessage>(peerRoom.onMessage).pipe(
|
const onMessage$ = fromEventPattern<RoomMessage>(peerRoom.onMessage).pipe(
|
||||||
mergeMap((message) => {
|
mergeMap((message) => {
|
||||||
// console.log('onMessage', message)
|
// console.log('onMessage', message)
|
||||||
const { danmakuEnabled } = get(userInfoDomain.query.UserInfoQuery())!
|
|
||||||
|
|
||||||
const messageEvent$ = of(OnMessageEvent(message))
|
const messageEvent$ = of(OnMessageEvent(message))
|
||||||
|
|
||||||
|
const textMessageEvent$ = of(message.type === SendType.Text ? OnTextMessageEvent(message) : null)
|
||||||
|
|
||||||
const messageCommand$ = (() => {
|
const messageCommand$ = (() => {
|
||||||
switch (message.type) {
|
switch (message.type) {
|
||||||
case SendType.Join: {
|
case SendType.Join: {
|
||||||
|
@ -355,8 +337,7 @@ const RoomDomain = Remesh.domain({
|
||||||
date: Date.now(),
|
date: Date.now(),
|
||||||
likeUsers: [],
|
likeUsers: [],
|
||||||
hateUsers: []
|
hateUsers: []
|
||||||
}),
|
})
|
||||||
danmakuEnabled ? PushDanmakuCommand(message) : null
|
|
||||||
)
|
)
|
||||||
case SendType.Like:
|
case SendType.Like:
|
||||||
case SendType.Hate: {
|
case SendType.Hate: {
|
||||||
|
@ -386,7 +367,7 @@ const RoomDomain = Remesh.domain({
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
|
|
||||||
return merge(messageEvent$, messageCommand$)
|
return merge(messageEvent$, textMessageEvent$, messageCommand$)
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
return onMessage$
|
return onMessage$
|
||||||
|
@ -428,8 +409,7 @@ const RoomDomain = Remesh.domain({
|
||||||
const onRoomError$ = fromEventPattern<Error>(peerRoom.onError).pipe(
|
const onRoomError$ = fromEventPattern<Error>(peerRoom.onError).pipe(
|
||||||
map((error) => {
|
map((error) => {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
toast.error(error.message)
|
return OnErrorEvent(error)
|
||||||
return null
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
return onRoomError$
|
return onRoomError$
|
||||||
|
@ -471,8 +451,10 @@ const RoomDomain = Remesh.domain({
|
||||||
JoinRoomEvent,
|
JoinRoomEvent,
|
||||||
LeaveRoomEvent,
|
LeaveRoomEvent,
|
||||||
OnMessageEvent,
|
OnMessageEvent,
|
||||||
|
OnTextMessageEvent,
|
||||||
OnJoinRoomEvent,
|
OnJoinRoomEvent,
|
||||||
OnLeaveRoomEvent
|
OnLeaveRoomEvent,
|
||||||
|
OnErrorEvent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,28 @@
|
||||||
import { Remesh } from 'remesh'
|
import { Remesh } from 'remesh'
|
||||||
import ToastModule from './modules/Toast'
|
import ToastModule from './modules/Toast'
|
||||||
|
import RoomDomain from './Room'
|
||||||
|
import { map, merge } from 'rxjs'
|
||||||
|
|
||||||
const ToastDomain = Remesh.domain({
|
const ToastDomain = Remesh.domain({
|
||||||
name: 'ToastDomain',
|
name: 'ToastDomain',
|
||||||
impl: (domain) => {
|
impl: (domain) => {
|
||||||
return ToastModule(domain)
|
const roomDomain = domain.getDomain(RoomDomain())
|
||||||
|
const toastModule = ToastModule(domain)
|
||||||
|
domain.effect({
|
||||||
|
name: 'Toast.OnRoomErrorEffect',
|
||||||
|
impl: ({ fromEvent }) => {
|
||||||
|
const onRoomError$ = fromEvent(roomDomain.event.OnErrorEvent)
|
||||||
|
|
||||||
|
const onError$ = merge(onRoomError$).pipe(
|
||||||
|
map((error) => {
|
||||||
|
return toastModule.command.ErrorCommand(error.message)
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
return onError$
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return toastModule
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ export interface UserInfo {
|
||||||
createTime: number
|
createTime: number
|
||||||
themeMode: 'system' | 'light' | 'dark'
|
themeMode: 'system' | 'light' | 'dark'
|
||||||
danmakuEnabled: boolean
|
danmakuEnabled: boolean
|
||||||
|
notificationEnabled: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
const UserInfoDomain = Remesh.domain({
|
const UserInfoDomain = Remesh.domain({
|
||||||
|
|
18
src/domain/externs/Notification.ts
Normal file
18
src/domain/externs/Notification.ts
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
import { Remesh } from 'remesh'
|
||||||
|
import { TextMessage } from '../Room'
|
||||||
|
|
||||||
|
export interface Notification {
|
||||||
|
push: (message: TextMessage) => Promise<string>
|
||||||
|
clear: (id: string) => Promise<boolean>
|
||||||
|
}
|
||||||
|
|
||||||
|
export const NotificationExtern = Remesh.extern<Notification>({
|
||||||
|
default: {
|
||||||
|
push: () => {
|
||||||
|
throw new Error('"push" not implemented.')
|
||||||
|
},
|
||||||
|
clear: () => {
|
||||||
|
throw new Error('"clear" not implemented.')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
17
src/domain/impls/Notification.ts
Normal file
17
src/domain/impls/Notification.ts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
import { NotificationExtern } from '@/domain/externs/Notification'
|
||||||
|
import { TextMessage } from '../Room'
|
||||||
|
import { EVENT } from '@/constants/event'
|
||||||
|
import { messenger } from '@/messenger'
|
||||||
|
|
||||||
|
class Notification {
|
||||||
|
async push(message: TextMessage) {
|
||||||
|
await messenger.sendMessage(EVENT.NOTIFICATION_PUSH, message)
|
||||||
|
return message.id
|
||||||
|
}
|
||||||
|
async clear(id: string) {
|
||||||
|
await messenger.sendMessage(EVENT.NOTIFICATION_CLEAR, id)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const NotificationImpl = NotificationExtern.impl(new Notification())
|
11
src/messenger/index.ts
Normal file
11
src/messenger/index.ts
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
import { EVENT } from '@/constants/event'
|
||||||
|
import { defineExtensionMessaging } from '@webext-core/messaging'
|
||||||
|
import { TextMessage } from '@/domain/Room'
|
||||||
|
|
||||||
|
interface ProtocolMap {
|
||||||
|
[EVENT.OPTIONS_PAGE_OPEN]: () => void
|
||||||
|
[EVENT.NOTIFICATION_PUSH]: (message: TextMessage) => void
|
||||||
|
[EVENT.NOTIFICATION_CLEAR]: (id: string) => void
|
||||||
|
}
|
||||||
|
|
||||||
|
export const messenger = defineExtensionMessaging<ProtocolMap>()
|
9
src/utils/asyncMap.ts
Normal file
9
src/utils/asyncMap.ts
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
const asyncMap = async <T = any, U = any>(list: T[], run: (arg: T, index: number, list: T[]) => Promise<U>) => {
|
||||||
|
const task: U[] = []
|
||||||
|
for (let index = 0; index < list.length; index++) {
|
||||||
|
task.push(await run(list[index], index, list))
|
||||||
|
}
|
||||||
|
return task
|
||||||
|
}
|
||||||
|
|
||||||
|
export default asyncMap
|
|
@ -14,7 +14,7 @@ export default defineConfig({
|
||||||
manifest: ({ browser }) => {
|
manifest: ({ browser }) => {
|
||||||
const common = {
|
const common = {
|
||||||
name: displayName,
|
name: displayName,
|
||||||
permissions: ['storage'],
|
permissions: ['storage', 'notifications'],
|
||||||
homepage_url: homepage,
|
homepage_url: homepage,
|
||||||
icons: {
|
icons: {
|
||||||
'16': 'logo.png',
|
'16': 'logo.png',
|
||||||
|
|
Loading…
Reference in a new issue