diff --git a/.vscode/settings.json b/.vscode/settings.json
index 8272ea1..8bb848b 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,5 +1,8 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
- "typescript.tsdk": "node_modules/typescript/lib"
+ "typescript.tsdk": "node_modules/typescript/lib",
+ "[typescriptreact]": {
+ "editor.defaultFormatter": "vscode.typescript-language-features"
+ }
}
diff --git a/README.md b/README.md
index 427898f..2ccdd6e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Cinny
+# Gaboule Chat (Cinny fork)
@@ -12,6 +12,8 @@
+This is a fork of [Cinny](https://github.com/cinnyapp/cinny).
+
A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch.
- [Roadmap](https://github.com/orgs/cinnyapp/projects/1)
- [Contributing](./CONTRIBUTING.md)
diff --git a/config.json b/config.json
index de6015a..b20ca41 100644
--- a/config.json
+++ b/config.json
@@ -1,38 +1,23 @@
{
- "defaultHomeserver": 2,
+ "defaultHomeserver": 0,
"homeserverList": [
- "converser.eu",
- "envs.net",
- "matrix.org",
- "monero.social",
- "mozilla.org",
- "xmr.se"
+ "gaboule.com"
],
"allowCustomHomeservers": true,
"featuredCommunities": {
- "openAsDefault": false,
+ "openAsDefault": true,
"spaces": [
- "#cinny-space:matrix.org",
- "#community:matrix.org",
- "#space:envs.net",
- "#science-space:matrix.org",
- "#libregaming-games:tchncs.de",
- "#mathematics-on:matrix.org"
+ "#gaboule:gaboule.com"
],
"rooms": [
- "#cinny:matrix.org",
- "#freesoftware:matrix.org",
- "#pcapdroid:matrix.org",
- "#gentoo:matrix.org",
- "#PrivSec.dev:arcticfoxes.net",
- "#disroot:aria-net.org"
+ "#general:gaboule.com"
],
- "servers": ["envs.net", "matrix.org", "monero.social", "mozilla.org"]
+ "servers": ["gaboule.com"]
},
"hashRouter": {
- "enabled": false,
+ "enabled": true,
"basename": "/"
}
-}
+}
\ No newline at end of file
diff --git a/index.html b/index.html
index 9196cf3..eabe404 100644
--- a/index.html
+++ b/index.html
@@ -1,95 +1,95 @@
-
+
-
-
-
-
- Cinny
-
-
-
-
+
+
+
+
+ Gaboule Chat
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 3fc2901..86af4f7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,108 +1,108 @@
{
"name": "cinny",
- "version": "4.8.1",
+ "version": "4.9.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cinny",
- "version": "4.8.1",
+ "version": "4.9.1",
"license": "AGPL-3.0-only",
"dependencies": {
- "@atlaskit/pragmatic-drag-and-drop": "1.1.6",
- "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "1.3.0",
- "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.0.3",
- "@fontsource/inter": "4.5.14",
- "@tanstack/react-query": "5.24.1",
- "@tanstack/react-query-devtools": "5.24.1",
- "@tanstack/react-virtual": "3.2.0",
+ "@atlaskit/pragmatic-drag-and-drop": "1.7.4",
+ "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "1.4.0",
+ "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.1.0",
+ "@fontsource/inter": "4.5.15",
+ "@tanstack/react-query": "5.85.5",
+ "@tanstack/react-query-devtools": "5.85.5",
+ "@tanstack/react-virtual": "3.13.12",
"@tippyjs/react": "4.2.6",
- "@vanilla-extract/css": "1.9.3",
- "@vanilla-extract/recipes": "0.3.0",
- "@vanilla-extract/vite-plugin": "3.7.1",
+ "@vanilla-extract/css": "1.17.4",
+ "@vanilla-extract/recipes": "0.5.7",
+ "@vanilla-extract/vite-plugin": "3.9.5",
"await-to-js": "3.0.0",
"badwords-list": "2.0.1-4",
- "blurhash": "2.0.4",
+ "blurhash": "2.0.5",
"browser-encrypt-attachment": "0.3.0",
"chroma-js": "3.1.2",
- "classnames": "2.3.2",
+ "classnames": "2.5.1",
"dateformat": "5.0.3",
- "dayjs": "1.11.10",
+ "dayjs": "1.11.14",
"domhandler": "5.0.3",
"emojibase": "15.3.1",
"emojibase-data": "15.3.2",
"file-saver": "2.0.5",
- "flux": "4.0.3",
- "focus-trap-react": "10.0.2",
+ "flux": "4.0.4",
+ "focus-trap-react": "10.3.1",
"folds": "2.2.0",
"formik": "2.4.6",
- "html-dom-parser": "4.0.0",
- "html-react-parser": "4.2.0",
- "i18next": "23.12.2",
- "i18next-browser-languagedetector": "8.0.0",
- "i18next-http-backend": "2.5.2",
- "immer": "9.0.16",
+ "html-dom-parser": "4.0.1",
+ "html-react-parser": "4.2.10",
+ "i18next": "23.16.8",
+ "i18next-browser-languagedetector": "8.2.0",
+ "i18next-http-backend": "2.7.3",
+ "immer": "9.0.21",
"is-hotkey": "0.2.0",
- "jotai": "2.6.0",
- "linkify-react": "4.1.3",
- "linkifyjs": "4.1.3",
- "matrix-js-sdk": "37.5.0",
+ "jotai": "2.13.1",
+ "linkify-react": "4.3.2",
+ "linkifyjs": "4.3.2",
+ "matrix-js-sdk": "37.13.0",
"millify": "6.1.0",
- "pdfjs-dist": "4.2.67",
+ "pdfjs-dist": "4.10.38",
"prismjs": "1.30.0",
"prop-types": "15.8.1",
- "react": "18.2.0",
- "react-aria": "3.29.1",
+ "react": "18.3.1",
+ "react-aria": "3.43.0",
"react-autosize-textarea": "7.1.0",
- "react-blurhash": "0.2.0",
+ "react-blurhash": "0.3.0",
"react-colorful": "5.6.1",
- "react-dom": "18.2.0",
- "react-error-boundary": "4.0.13",
+ "react-dom": "18.3.1",
+ "react-error-boundary": "4.1.2",
"react-google-recaptcha": "2.1.0",
- "react-i18next": "15.0.0",
- "react-modal": "3.16.1",
- "react-range": "1.8.14",
- "react-router-dom": "6.20.0",
- "sanitize-html": "2.12.1",
- "slate": "0.112.0",
- "slate-dom": "0.112.2",
- "slate-history": "0.110.3",
- "slate-react": "0.112.1",
+ "react-i18next": "15.7.2",
+ "react-modal": "3.16.3",
+ "react-range": "1.10.0",
+ "react-router-dom": "6.30.1",
+ "sanitize-html": "2.17.0",
+ "slate": "0.118.1",
+ "slate-dom": "0.118.1",
+ "slate-history": "0.115.0",
+ "slate-react": "0.117.4",
"tippy.js": "6.3.7",
- "ua-parser-js": "1.0.35"
+ "ua-parser-js": "1.0.41"
},
"devDependencies": {
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
- "@rollup/plugin-inject": "5.0.3",
- "@rollup/plugin-wasm": "6.1.1",
+ "@rollup/plugin-inject": "5.0.5",
+ "@rollup/plugin-wasm": "6.2.2",
"@types/chroma-js": "3.1.1",
- "@types/file-saver": "2.0.5",
+ "@types/file-saver": "2.0.7",
"@types/is-hotkey": "0.1.10",
- "@types/node": "18.11.18",
- "@types/prismjs": "1.26.0",
- "@types/react": "18.2.39",
- "@types/react-dom": "18.2.17",
- "@types/react-google-recaptcha": "2.1.8",
- "@types/sanitize-html": "2.9.0",
- "@types/ua-parser-js": "0.7.36",
- "@typescript-eslint/eslint-plugin": "5.46.1",
- "@typescript-eslint/parser": "5.46.1",
- "@vitejs/plugin-react": "4.2.0",
+ "@types/node": "18.19.123",
+ "@types/prismjs": "1.26.5",
+ "@types/react": "18.3.24",
+ "@types/react-dom": "18.3.7",
+ "@types/react-google-recaptcha": "2.1.9",
+ "@types/sanitize-html": "2.16.0",
+ "@types/ua-parser-js": "0.7.39",
+ "@typescript-eslint/eslint-plugin": "5.62.0",
+ "@typescript-eslint/parser": "5.62.0",
+ "@vitejs/plugin-react": "4.7.0",
"buffer": "6.0.3",
- "eslint": "8.29.0",
+ "eslint": "8.57.1",
"eslint-config-airbnb": "19.0.4",
- "eslint-config-prettier": "8.5.0",
- "eslint-plugin-import": "2.29.1",
- "eslint-plugin-jsx-a11y": "6.6.1",
- "eslint-plugin-react": "7.31.11",
- "eslint-plugin-react-hooks": "4.6.0",
- "prettier": "2.8.1",
- "sass": "1.56.2",
- "typescript": "4.9.4",
+ "eslint-config-prettier": "8.10.2",
+ "eslint-plugin-import": "2.32.0",
+ "eslint-plugin-jsx-a11y": "6.10.2",
+ "eslint-plugin-react": "7.37.5",
+ "eslint-plugin-react-hooks": "4.6.2",
+ "prettier": "2.8.8",
+ "sass": "1.91.0",
+ "typescript": "4.9.5",
"vite": "5.4.19",
- "vite-plugin-pwa": "0.20.5",
- "vite-plugin-static-copy": "1.0.4",
- "vite-plugin-top-level-await": "1.4.4"
+ "vite-plugin-pwa": "0.21.2",
+ "vite-plugin-static-copy": "1.0.6",
+ "vite-plugin-top-level-await": "1.6.0"
},
"engines": {
"node": ">=16.0.0"
@@ -138,9 +138,10 @@
}
},
"node_modules/@atlaskit/pragmatic-drag-and-drop": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop/-/pragmatic-drag-and-drop-1.1.6.tgz",
- "integrity": "sha512-+jGspaRMyHWB6g9w+N1KImS5I+xt0ML89pwUyCueEhf2KGsl6zyH9ZxjTVKfrbY89FyZvuuXT9oFRHTUKGBi/w==",
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop/-/pragmatic-drag-and-drop-1.7.4.tgz",
+ "integrity": "sha512-lZHnO9BJdHPKnwB0uvVUCyDnIhL+WAHzXQ2EXX0qacogOsnvIUiCgY0BLKhBqTCWln3/f/Ox5jU54MKO6ayh9A==",
+ "license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.0.0",
"bind-event-listener": "^3.0.0",
@@ -148,59 +149,64 @@
}
},
"node_modules/@atlaskit/pragmatic-drag-and-drop-auto-scroll": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-auto-scroll/-/pragmatic-drag-and-drop-auto-scroll-1.3.0.tgz",
- "integrity": "sha512-8wjKAI5qSrLojt8ZJ2WhoS5P75oBu5g0yMpAnTDgfqFyQnkt5Uc1txCRWpG26SS1mv19nm8ak9XHF2DOugVfpw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-auto-scroll/-/pragmatic-drag-and-drop-auto-scroll-1.4.0.tgz",
+ "integrity": "sha512-5GoikoTSW13UX76F9TDeWB8x3jbbGlp/Y+3aRkHe1MOBMkrWkwNpJ42MIVhhX/6NSeaZiPumP0KbGJVs2tOWSQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@atlaskit/pragmatic-drag-and-drop": "^1.1.0",
+ "@atlaskit/pragmatic-drag-and-drop": "^1.2.0",
"@babel/runtime": "^7.0.0"
}
},
"node_modules/@atlaskit/pragmatic-drag-and-drop-hitbox": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-hitbox/-/pragmatic-drag-and-drop-hitbox-1.0.3.tgz",
- "integrity": "sha512-/Sbu/HqN2VGLYBhnsG7SbRNg98XKkbF6L7XDdBi+izRybfaK1FeMfodPpm/xnBHPJzwYMdkE0qtLyv6afhgMUA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-hitbox/-/pragmatic-drag-and-drop-hitbox-1.1.0.tgz",
+ "integrity": "sha512-JWt6eVp6Br2FPHRM8s0dUIHQk/jFInGP1f3ti5CdtM1Ji5/pt8Akm44wDC063Gv2i5RGseixtbW0z/t6RYtbdg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@atlaskit/pragmatic-drag-and-drop": "^1.1.0",
+ "@atlaskit/pragmatic-drag-and-drop": "^1.6.0",
"@babel/runtime": "^7.0.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.27.1",
"js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "picocolors": "^1.1.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
- "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz",
+ "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
- "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz",
+ "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==",
+ "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.26.0",
- "@babel/generator": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-module-transforms": "^7.26.0",
- "@babel/helpers": "^7.26.0",
- "@babel/parser": "^7.26.0",
- "@babel/template": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.26.0",
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.28.3",
+ "@babel/helper-compilation-targets": "^7.27.2",
+ "@babel/helper-module-transforms": "^7.28.3",
+ "@babel/helpers": "^7.28.3",
+ "@babel/parser": "^7.28.3",
+ "@babel/template": "^7.27.2",
+ "@babel/traverse": "^7.28.3",
+ "@babel/types": "^7.28.2",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -224,14 +230,15 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
- "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz",
+ "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
+ "license": "MIT",
"dependencies": {
- "@babel/parser": "^7.26.5",
- "@babel/types": "^7.26.5",
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25",
+ "@babel/parser": "^7.28.3",
+ "@babel/types": "^7.28.2",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
},
"engines": {
@@ -251,12 +258,13 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
- "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
+ "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.26.5",
- "@babel/helper-validator-option": "^7.25.9",
+ "@babel/compat-data": "^7.27.2",
+ "@babel/helper-validator-option": "^7.27.1",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
@@ -345,6 +353,15 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-member-expression-to-functions": {
"version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
@@ -359,25 +376,27 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
- "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
+ "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
+ "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
- "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz",
+ "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9",
- "@babel/traverse": "^7.25.9"
+ "@babel/helper-module-imports": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/traverse": "^7.28.3"
},
"engines": {
"node": ">=6.9.0"
@@ -399,9 +418,10 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
- "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
+ "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -454,25 +474,28 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
- "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -492,23 +515,25 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
- "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz",
+ "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==",
+ "license": "MIT",
"dependencies": {
- "@babel/template": "^7.25.9",
- "@babel/types": "^7.26.0"
+ "@babel/template": "^7.27.2",
+ "@babel/types": "^7.28.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz",
- "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz",
+ "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.26.5"
+ "@babel/types": "^7.28.2"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -1270,12 +1295,13 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-self": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz",
- "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1285,12 +1311,13 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-source": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz",
- "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1592,66 +1619,54 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
- "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/runtime-corejs3": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz",
- "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==",
- "dev": true,
- "dependencies": {
- "core-js-pure": "^3.30.2",
- "regenerator-runtime": "^0.14.0"
- },
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz",
+ "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
- "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
+ "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.25.9",
- "@babel/parser": "^7.25.9",
- "@babel/types": "^7.25.9"
+ "@babel/code-frame": "^7.27.1",
+ "@babel/parser": "^7.27.2",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz",
- "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz",
+ "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/generator": "^7.26.5",
- "@babel/parser": "^7.26.5",
- "@babel/template": "^7.25.9",
- "@babel/types": "^7.26.5",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.28.3",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.28.3",
+ "@babel/template": "^7.27.2",
+ "@babel/types": "^7.28.2",
+ "debug": "^4.3.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/types": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz",
- "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==",
+ "version": "7.28.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
+ "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -2016,15 +2031,45 @@
"node": ">=12"
}
},
- "node_modules/@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+ "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.4.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -2044,6 +2089,7 @@
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
"integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -2059,6 +2105,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -2066,65 +2113,82 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@eslint/js": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
"node_modules/@fontsource/inter": {
- "version": "4.5.14",
- "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.14.tgz",
- "integrity": "sha512-JDC9AocdPLuGsASkvWw9hS5gtHE7K9dOwL98XLrk5yjYqxy4uVnScG58NUvFMJDVJRl/7c8Wnap6PEs+7Zvj1Q=="
+ "version": "4.5.15",
+ "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.15.tgz",
+ "integrity": "sha512-FzleM9AxZQK2nqsTDtBiY0PMEVWvnKnuu2i09+p6DHvrHsuucoV2j0tmw+kAT3L4hvsLdAIDv6MdGehsPIdT+Q==",
+ "license": "MIT"
},
"node_modules/@formatjs/ecma402-abstract": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.2.tgz",
- "integrity": "sha512-6sE5nyvDloULiyOMbOTJEEgWL32w+VHkZQs8S02Lnn8Y/O5aQhjOEXwWzvR7SsBE/exxlSpY2EsWZgqHbtLatg==",
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.4.tgz",
+ "integrity": "sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==",
+ "license": "MIT",
"dependencies": {
- "@formatjs/fast-memoize": "2.2.6",
- "@formatjs/intl-localematcher": "0.5.10",
- "decimal.js": "10",
- "tslib": "2"
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/intl-localematcher": "0.6.1",
+ "decimal.js": "^10.4.3",
+ "tslib": "^2.8.0"
}
},
"node_modules/@formatjs/fast-memoize": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.6.tgz",
- "integrity": "sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==",
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz",
+ "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==",
+ "license": "MIT",
"dependencies": {
- "tslib": "2"
+ "tslib": "^2.8.0"
}
},
"node_modules/@formatjs/icu-messageformat-parser": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.10.0.tgz",
- "integrity": "sha512-PDeky6nDAyHYEtmSi2X1PG9YpqE+2BRTJT7JvPix8K8JX1wBWQNao6KcPtmZpttQHUHmzMcd/rne7lFesSzUKQ==",
+ "version": "2.11.2",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.2.tgz",
+ "integrity": "sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==",
+ "license": "MIT",
"dependencies": {
- "@formatjs/ecma402-abstract": "2.3.2",
- "@formatjs/icu-skeleton-parser": "1.8.12",
- "tslib": "2"
+ "@formatjs/ecma402-abstract": "2.3.4",
+ "@formatjs/icu-skeleton-parser": "1.8.14",
+ "tslib": "^2.8.0"
}
},
"node_modules/@formatjs/icu-skeleton-parser": {
- "version": "1.8.12",
- "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.12.tgz",
- "integrity": "sha512-QRAY2jC1BomFQHYDMcZtClqHR55EEnB96V7Xbk/UiBodsuFc5kujybzt87+qj1KqmJozFhk6n4KiT1HKwAkcfg==",
+ "version": "1.8.14",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.14.tgz",
+ "integrity": "sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==",
+ "license": "MIT",
"dependencies": {
- "@formatjs/ecma402-abstract": "2.3.2",
- "tslib": "2"
+ "@formatjs/ecma402-abstract": "2.3.4",
+ "tslib": "^2.8.0"
}
},
"node_modules/@formatjs/intl-localematcher": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz",
- "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz",
+ "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==",
+ "license": "MIT",
"dependencies": {
- "tslib": "2"
+ "tslib": "^2.8.0"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
"deprecated": "Use @eslint/config-array instead",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.2",
+ "@humanwhocodes/object-schema": "^2.0.3",
"debug": "^4.3.1",
"minimatch": "^3.0.5"
},
@@ -2150,52 +2214,54 @@
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"deprecated": "Use @eslint/object-schema instead",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@internationalized/date": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.7.0.tgz",
- "integrity": "sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==",
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.9.0.tgz",
+ "integrity": "sha512-yaN3brAnHRD+4KyyOsJyk49XUvj2wtbNACSqg0bz3u8t2VuzhC8Q5dfRnrSxjnnbDb+ienBnkn1TzQfE154vyg==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0"
}
},
"node_modules/@internationalized/message": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.6.tgz",
- "integrity": "sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.8.tgz",
+ "integrity": "sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0",
"intl-messageformat": "^10.1.0"
}
},
"node_modules/@internationalized/number": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.0.tgz",
- "integrity": "sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.5.tgz",
+ "integrity": "sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0"
}
},
"node_modules/@internationalized/string": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.5.tgz",
- "integrity": "sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.7.tgz",
+ "integrity": "sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
- "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/sourcemap-codec": "^1.5.0",
"@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
@@ -2206,14 +2272,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@jridgewell/source-map": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
@@ -2225,14 +2283,16 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "version": "0.3.30",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz",
+ "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==",
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -2243,40 +2303,199 @@
"resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
"integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA=="
},
- "node_modules/@mapbox/node-pre-gyp": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
- "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
- "optional": true,
- "dependencies": {
- "detect-libc": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.7",
- "nopt": "^5.0.0",
- "npmlog": "^5.0.1",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.11"
- },
- "bin": {
- "node-pre-gyp": "bin/node-pre-gyp"
- }
- },
"node_modules/@matrix-org/matrix-sdk-crypto-wasm": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-14.1.0.tgz",
- "integrity": "sha512-vcSxHJIr6lP0Fgo8jl0sTHg+OZxZn+skGjiyB62erfgw/R2QqJl0ZVSY8SRcbk9LtHo/ZGld1tnaOyjL2e3cLQ==",
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-15.1.0.tgz",
+ "integrity": "sha512-ZsDdjn46J3+VxsDLmaSODuS+qtGZB/i3Cg9tWL1QPNjvAWzNaTHQ7glleByI2PKVBm83aklfuhGKT2MqE1ZsEA==",
"license": "Apache-2.0",
"engines": {
"node": ">= 18"
}
},
- "node_modules/@matrix-org/olm": {
- "version": "3.2.15",
- "resolved": "https://registry.npmjs.org/@matrix-org/olm/-/olm-3.2.15.tgz",
- "integrity": "sha512-S7lOrndAK9/8qOtaTq/WhttJC/o4GAzdfK0MUPpo8ApzsJEC0QjtwrkC3KBXdFP1cD1MXi/mlKR7aaoVMKgs6Q==",
- "license": "Apache-2.0"
+ "node_modules/@napi-rs/canvas": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.77.tgz",
+ "integrity": "sha512-N9w2DkEKE1AXGp3q55GBOP6BEoFrqChDiFqJtKViTpQCWNOSVuMz7LkoGehbnpxtidppbsC36P0kCZNqJKs29w==",
+ "license": "MIT",
+ "optional": true,
+ "workspaces": [
+ "e2e/*"
+ ],
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@napi-rs/canvas-android-arm64": "0.1.77",
+ "@napi-rs/canvas-darwin-arm64": "0.1.77",
+ "@napi-rs/canvas-darwin-x64": "0.1.77",
+ "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.77",
+ "@napi-rs/canvas-linux-arm64-gnu": "0.1.77",
+ "@napi-rs/canvas-linux-arm64-musl": "0.1.77",
+ "@napi-rs/canvas-linux-riscv64-gnu": "0.1.77",
+ "@napi-rs/canvas-linux-x64-gnu": "0.1.77",
+ "@napi-rs/canvas-linux-x64-musl": "0.1.77",
+ "@napi-rs/canvas-win32-x64-msvc": "0.1.77"
+ }
+ },
+ "node_modules/@napi-rs/canvas-android-arm64": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.77.tgz",
+ "integrity": "sha512-jC8YX0rbAnu9YrLK1A52KM2HX9EDjrJSCLVuBf9Dsov4IC6GgwMLS2pwL9GFLJnSZBFgdwnA84efBehHT9eshA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-darwin-arm64": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.77.tgz",
+ "integrity": "sha512-VFaCaCgAV0+hPwXajDIiHaaGx4fVCuUVYp/CxCGXmTGz699ngIEBx3Sa2oDp0uk3X+6RCRLueb7vD44BKBiPIg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-darwin-x64": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.77.tgz",
+ "integrity": "sha512-uD2NSkf6I4S3o0POJDwweK85FE4rfLNA2N714MgiEEMMw5AmupfSJGgpYzcyEXtPzdaca6rBfKcqNvzR1+EyLQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.77.tgz",
+ "integrity": "sha512-03GxMMZGhHRQxiA4gyoKT6iQSz8xnA6T9PAfg/WNJnbkVMFZG782DwUJUb39QIZ1uE1euMCPnDgWAJ092MmgJQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-linux-arm64-gnu": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.77.tgz",
+ "integrity": "sha512-ZO+d2gRU9JU1Bb7SgJcJ1k9wtRMCpSWjJAJ+2phhu0Lw5As8jYXXXmLKmMTGs1bOya2dBMYDLzwp7KS/S/+aCA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-linux-arm64-musl": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.77.tgz",
+ "integrity": "sha512-S1KtnP1+nWs2RApzNkdNf8X4trTLrHaY7FivV61ZRaL8NvuGOkSkKa+gWN2iedIGFEDz6gecpl/JAUSewwFXYg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.77.tgz",
+ "integrity": "sha512-A4YIKFYUwDtrSzCtdCAO5DYmRqlhCVKHdpq0+dBGPnIEhOQDFkPBTfoTAjO3pjlEnorlfKmNMOH21sKQg2esGA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-linux-x64-gnu": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.77.tgz",
+ "integrity": "sha512-Lt6Sef5l0+5O1cSZ8ysO0JI+x+rSrqZyXs5f7+kVkCAOVq8X5WTcDVbvWvEs2aRhrWTp5y25Jf2Bn+3IcNHOuQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-linux-x64-musl": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.77.tgz",
+ "integrity": "sha512-NiNFvC+D+omVeJ3IjYlIbyt/igONSABVe9z0ZZph29epHgZYu4eHwV9osfpRt1BGGOAM8LkFrHk4LBdn2EDymA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/canvas-win32-x64-msvc": {
+ "version": "0.1.77",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.77.tgz",
+ "integrity": "sha512-fP6l0hZiWykyjvpZTS3sI46iib8QEflbPakNoUijtwyxRuOPTTBfzAWZUz5z2vKpJJ/8r305wnZeZ8lhsBHY5A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
@@ -2313,6 +2532,316 @@
"node": ">= 8"
}
},
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
@@ -2323,15 +2852,16 @@
}
},
"node_modules/@react-aria/breadcrumbs": {
- "version": "3.5.20",
- "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.20.tgz",
- "integrity": "sha512-xqVSSDPpQuUFpJyIXMQv8L7zumk5CeGX7qTzo4XRvqm5T9qnNAX4XpYEMdktnLrQRY/OemCBScbx7SEwr0B3Kg==",
+ "version": "3.5.28",
+ "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.28.tgz",
+ "integrity": "sha512-6S3QelpajodEzN7bm49XXW5gGoZksK++cl191W0sexq/E5hZHAEA9+CFC8pL3px13ji7qHGqKAxOP4IUVBdVpQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/link": "^3.7.8",
- "@react-aria/utils": "^3.27.0",
- "@react-types/breadcrumbs": "^3.7.10",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/link": "^3.8.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/breadcrumbs": "^3.7.16",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2340,17 +2870,17 @@
}
},
"node_modules/@react-aria/button": {
- "version": "3.11.1",
- "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.11.1.tgz",
- "integrity": "sha512-NSs2HxHSSPSuYy5bN+PMJzsCNDVsbm1fZ/nrWM2WWWHTBrx9OqyrEXZVV9ebzQCN9q0nzhwpf6D42zHIivWtJA==",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.14.1.tgz",
+ "integrity": "sha512-Ug06unKEYVG3OF6zKmpVR7VfLzpj7eJVuFo3TCUxwFJG7DI28pZi2TaGWnhm7qjkxfl1oz0avQiHVfDC99gSuw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/toolbar": "3.0.0-beta.12",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/toggle": "^3.8.1",
- "@react-types/button": "^3.10.2",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/toolbar": "3.0.0-beta.20",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/toggle": "^3.9.1",
+ "@react-types/button": "^3.14.0",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2359,19 +2889,20 @@
}
},
"node_modules/@react-aria/calendar": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.7.0.tgz",
- "integrity": "sha512-9YUbgcox7cQgvZfQtL2BLLRsIuX4mJeclk9HkFoOsAu3RGO5HNsteah8FV54W8BMjm/bNRXIPUxtjTTP+1L6jg==",
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.9.1.tgz",
+ "integrity": "sha512-dCJliRIi3x3VmAZkJDNTZddq0+QoUX9NS7GgdqPPYcJIMbVPbyLWL61//0SrcCr3MuSRCoI1eQZ8PkQe/2PJZQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/date": "^3.7.0",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/live-announcer": "^3.4.1",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/calendar": "^3.7.0",
- "@react-types/button": "^3.10.2",
- "@react-types/calendar": "^3.6.0",
- "@react-types/shared": "^3.27.0",
+ "@internationalized/date": "^3.9.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/live-announcer": "^3.4.4",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/calendar": "^3.8.4",
+ "@react-types/button": "^3.14.0",
+ "@react-types/calendar": "^3.7.4",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2380,20 +2911,46 @@
}
},
"node_modules/@react-aria/checkbox": {
- "version": "3.15.1",
- "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.15.1.tgz",
- "integrity": "sha512-ETgsMDZ0IZzRXy/OVlGkazm8T+PcMHoTvsxp0c+U82c8iqdITA+VJ615eBPOQh6OkkYIIn4cRn/e+69RmGzXng==",
+ "version": "3.16.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.16.1.tgz",
+ "integrity": "sha512-YcG3QhuGIwqPHo4GVGVmwxPM5Ayq9CqYfZjla/KTfJILPquAJ12J7LSMpqS/Z5TlMNgIIqZ3ZdrYmjQlUY7eUg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/form": "^3.0.12",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/label": "^3.7.14",
- "@react-aria/toggle": "^3.10.11",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/checkbox": "^3.6.11",
- "@react-stately/form": "^3.1.1",
- "@react-stately/toggle": "^3.8.1",
- "@react-types/checkbox": "^3.9.1",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/form": "^3.1.1",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/toggle": "^3.12.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/checkbox": "^3.7.1",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/toggle": "^3.9.1",
+ "@react-types/checkbox": "^3.10.1",
+ "@react-types/shared": "^3.32.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/color": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/color/-/color-3.1.1.tgz",
+ "integrity": "sha512-4+woybtn4kh5ytggWQ06bqqWsoucOrxwNrwW1XP6EmvcjIcsfVW+VwFwM5ZYa2LGF+fHiW3dM4bjRqVa7i9PVg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/numberfield": "^3.12.1",
+ "@react-aria/slider": "^3.8.1",
+ "@react-aria/spinbutton": "^3.6.18",
+ "@react-aria/textfield": "^3.18.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-aria/visually-hidden": "^3.8.27",
+ "@react-stately/color": "^3.9.1",
+ "@react-stately/form": "^3.2.1",
+ "@react-types/color": "^3.1.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2402,24 +2959,26 @@
}
},
"node_modules/@react-aria/combobox": {
- "version": "3.11.1",
- "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.11.1.tgz",
- "integrity": "sha512-TTNbGhUuqxzPcJzd6hufOxuHzX0UARkw+0bl+TuCwNPQnqrcPf20EoOZvd3MHZwGq6GCP4QV+qo0uGx83RpUvA==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.13.1.tgz",
+ "integrity": "sha512-3lt3TGfjadJsN+illC23hgfeQ/VqF04mxczoU+3znOZ+vTx9zov/YfUysAsaxc8hyjr65iydz+CEbyg4+i0y3A==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/listbox": "^3.14.0",
- "@react-aria/live-announcer": "^3.4.1",
- "@react-aria/menu": "^3.17.0",
- "@react-aria/overlays": "^3.25.0",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/textfield": "^3.16.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/collections": "^3.12.1",
- "@react-stately/combobox": "^3.10.2",
- "@react-stately/form": "^3.1.1",
- "@react-types/button": "^3.10.2",
- "@react-types/combobox": "^3.13.2",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/listbox": "^3.14.8",
+ "@react-aria/live-announcer": "^3.4.4",
+ "@react-aria/menu": "^3.19.1",
+ "@react-aria/overlays": "^3.29.0",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/textfield": "^3.18.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/combobox": "^3.11.1",
+ "@react-stately/form": "^3.2.1",
+ "@react-types/button": "^3.14.0",
+ "@react-types/combobox": "^3.13.8",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2428,27 +2987,28 @@
}
},
"node_modules/@react-aria/datepicker": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.13.0.tgz",
- "integrity": "sha512-TmJan65P3Vk7VDBNW5rH9Z25cAn0vk8TEtaP3boCs8wJFE+HbEuB8EqLxBFu47khtuKTEqDP3dTlUh2Vt/f7Xw==",
+ "version": "3.15.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.15.1.tgz",
+ "integrity": "sha512-RfUOvsupON6E5ZELpBgb9qxsilkbqwzsZ78iqCDTVio+5kc5G9jVeHEIQOyHnavi/TmJoAnbmmVpEbE6M9lYJQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/date": "^3.7.0",
- "@internationalized/number": "^3.6.0",
- "@internationalized/string": "^3.2.5",
- "@react-aria/focus": "^3.19.1",
- "@react-aria/form": "^3.0.12",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/label": "^3.7.14",
- "@react-aria/spinbutton": "^3.6.11",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/datepicker": "^3.12.0",
- "@react-stately/form": "^3.1.1",
- "@react-types/button": "^3.10.2",
- "@react-types/calendar": "^3.6.0",
- "@react-types/datepicker": "^3.10.0",
- "@react-types/dialog": "^3.5.15",
- "@react-types/shared": "^3.27.0",
+ "@internationalized/date": "^3.9.0",
+ "@internationalized/number": "^3.6.5",
+ "@internationalized/string": "^3.2.7",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/form": "^3.1.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/spinbutton": "^3.6.18",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/datepicker": "^3.15.1",
+ "@react-stately/form": "^3.2.1",
+ "@react-types/button": "^3.14.0",
+ "@react-types/calendar": "^3.7.4",
+ "@react-types/datepicker": "^3.13.1",
+ "@react-types/dialog": "^3.5.21",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2457,15 +3017,33 @@
}
},
"node_modules/@react-aria/dialog": {
- "version": "3.5.21",
- "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.21.tgz",
- "integrity": "sha512-tBsn9swBhcptJ9QIm0+ur0PVR799N6qmGguva3rUdd+gfitknFScyT08d7AoMr9AbXYdJ+2R9XNSZ3H3uIWQMw==",
+ "version": "3.5.29",
+ "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.29.tgz",
+ "integrity": "sha512-GtxB0oTwkSz/GiKMPN0lU4h/r+Cr04FFUonZU5s03YmDTtgVjTSjFPmsd7pkbt3qq0aEiQASx/vWdAkKLWjRHA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/overlays": "^3.25.0",
- "@react-aria/utils": "^3.27.0",
- "@react-types/dialog": "^3.5.15",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/overlays": "^3.29.0",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/dialog": "^3.5.21",
+ "@react-types/shared": "^3.32.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/disclosure": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@react-aria/disclosure/-/disclosure-3.0.8.tgz",
+ "integrity": "sha512-Q2v6czm3ViMTw7J+GCWdXw3rZ5Fgmy97gpSQjpEoxSyqA1UfpRRvNa+XYoXmbpaY1MGhtUX3m2GgZ4IuhhMHVQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/ssr": "^3.9.10",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/disclosure": "^3.0.7",
+ "@react-types/button": "^3.14.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2474,19 +3052,21 @@
}
},
"node_modules/@react-aria/dnd": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.8.1.tgz",
- "integrity": "sha512-FoXYQ4z33E9YBzIGRJM1B1oZep6CvEWgXvjCZGURatjr3qG7vf95mOqA5kVd9bjLL7QK4w0ujJWEBfog3WmufA==",
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.11.1.tgz",
+ "integrity": "sha512-SdaN7GXv3OLpg8sBUgkPf+bygByqjhJdJ4O7+lm+CBDlYrDcC5CMmy/hshE1CC/eZUwC2Tthf2q32wUtKo3fpA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/string": "^3.2.5",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/live-announcer": "^3.4.1",
- "@react-aria/overlays": "^3.25.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/dnd": "^3.5.1",
- "@react-types/button": "^3.10.2",
- "@react-types/shared": "^3.27.0",
+ "@internationalized/string": "^3.2.7",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/live-announcer": "^3.4.4",
+ "@react-aria/overlays": "^3.29.0",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/dnd": "^3.7.0",
+ "@react-types/button": "^3.14.0",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2495,13 +3075,14 @@
}
},
"node_modules/@react-aria/focus": {
- "version": "3.19.1",
- "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.1.tgz",
- "integrity": "sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==",
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.1.tgz",
+ "integrity": "sha512-hmH1IhHlcQ2lSIxmki1biWzMbGgnhdxJUM0MFfzc71Rv6YAzhlx4kX3GYn4VNcjCeb6cdPv4RZ5vunV4kgMZYQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/utils": "^3.27.0",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0",
"clsx": "^2.0.0"
},
@@ -2511,14 +3092,15 @@
}
},
"node_modules/@react-aria/form": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.12.tgz",
- "integrity": "sha512-8uvPYEd3GDyGt5NRJIzdWW1Ry5HLZq37vzRZKUW8alZ2upFMH3KJJG55L9GP59KiF6zBrYBebvI/YK1Ye1PE1g==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.1.1.tgz",
+ "integrity": "sha512-PjZC25UgH5orit9p56Ymbbo288F3eaDd3JUvD8SG+xgx302HhlFAOYsQLLAb4k4H03bp0gWtlUEkfX6KYcE1Tw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/form": "^3.1.1",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/form": "^3.2.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2527,22 +3109,23 @@
}
},
"node_modules/@react-aria/grid": {
- "version": "3.11.1",
- "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.11.1.tgz",
- "integrity": "sha512-Wg8m68RtNWfkhP3Qjrrsl1q1et8QCjXPMRsYgKBahYRS0kq2MDcQ+UBdG1fiCQn/MfNImhTUGVeQX276dy1lww==",
+ "version": "3.14.4",
+ "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.14.4.tgz",
+ "integrity": "sha512-l1FLQNKnoHpY4UClUTPUV0AqJ5bfAULEE0ErY86KznWLd+Hqzo7mHLqqDV02CDa/8mIUcdoax/MrYYIbPDlOZA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/live-announcer": "^3.4.1",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/collections": "^3.12.1",
- "@react-stately/grid": "^3.10.1",
- "@react-stately/selection": "^3.19.0",
- "@react-types/checkbox": "^3.9.1",
- "@react-types/grid": "^3.2.11",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/live-announcer": "^3.4.4",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/grid": "^3.11.5",
+ "@react-stately/selection": "^3.20.5",
+ "@react-types/checkbox": "^3.10.1",
+ "@react-types/grid": "^3.3.5",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2551,20 +3134,20 @@
}
},
"node_modules/@react-aria/gridlist": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.10.1.tgz",
- "integrity": "sha512-11FlupBg5C9ehs7R6OjqMPWEOLK/4IuSrq7D1xU+Hnm7ZYI/KKcCXvNMjMmnOz/gGzOmfgVwz5PIKaY9aZarEg==",
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.14.0.tgz",
+ "integrity": "sha512-8NWDaUbPe6ujI+kSvDqr2onPYWlBXiaLCQ6nfYOo+GFKxeVCsv4a2I5HAAoGf9THNQ5b8b8kJa+M0xyL1Z71XA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/grid": "^3.11.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/collections": "^3.12.1",
- "@react-stately/list": "^3.11.2",
- "@react-stately/tree": "^3.8.7",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/grid": "^3.14.4",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/list": "^3.13.0",
+ "@react-stately/tree": "^3.9.2",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2573,17 +3156,18 @@
}
},
"node_modules/@react-aria/i18n": {
- "version": "3.12.5",
- "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.5.tgz",
- "integrity": "sha512-ooeop2pTG94PuaHoN2OTk2hpkqVuoqgEYxRvnc1t7DVAtsskfhS/gVOTqyWGsxvwAvRi7m/CnDu6FYdeQ/bK5w==",
+ "version": "3.12.12",
+ "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.12.tgz",
+ "integrity": "sha512-JN6p+Xc6Pu/qddGRoeYY6ARsrk2Oz7UiQc9nLEPOt3Ch+blJZKWwDjcpo/p6/wVZdD/2BgXS7El6q6+eMg7ibw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/date": "^3.7.0",
- "@internationalized/message": "^3.1.6",
- "@internationalized/number": "^3.6.0",
- "@internationalized/string": "^3.2.5",
- "@react-aria/ssr": "^3.9.7",
- "@react-aria/utils": "^3.27.0",
- "@react-types/shared": "^3.27.0",
+ "@internationalized/date": "^3.9.0",
+ "@internationalized/message": "^3.1.8",
+ "@internationalized/number": "^3.6.5",
+ "@internationalized/string": "^3.2.7",
+ "@react-aria/ssr": "^3.9.10",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2592,13 +3176,15 @@
}
},
"node_modules/@react-aria/interactions": {
- "version": "3.23.0",
- "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.23.0.tgz",
- "integrity": "sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==",
+ "version": "3.25.5",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.5.tgz",
+ "integrity": "sha512-EweYHOEvMwef/wsiEqV73KurX/OqnmbzKQa2fLxdULbec5+yDj6wVGaRHIzM4NiijIDe+bldEl5DG05CAKOAHA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/ssr": "^3.9.7",
- "@react-aria/utils": "^3.27.0",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/ssr": "^3.9.10",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/flags": "^3.1.2",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2607,12 +3193,13 @@
}
},
"node_modules/@react-aria/label": {
- "version": "3.7.14",
- "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.14.tgz",
- "integrity": "sha512-EN1Md2YvcC4sMqBoggsGYUEGlTNqUfJZWzduSt29fbQp1rKU2KlybTe+TWxKq/r2fFd+4JsRXxMeJiwB3w2AQA==",
+ "version": "3.7.21",
+ "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.21.tgz",
+ "integrity": "sha512-8G+059/GZahgQbrhMcCcVcrjm7W+pfzrypH/Qkjo7C1yqPGt6geeFwWeOIbiUZoI0HD9t9QvQPryd6m46UC7Tg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/utils": "^3.27.0",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2620,16 +3207,32 @@
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@react-aria/link": {
- "version": "3.7.8",
- "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.8.tgz",
- "integrity": "sha512-oiXUPQLZmf9Q9Xehb/sG1QRxfo28NFKdh9w+unD12sHI6NdLMETl5MA4CYyTgI0dfMtTjtfrF68GCnWfc7JvXQ==",
+ "node_modules/@react-aria/landmark": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@react-aria/landmark/-/landmark-3.0.6.tgz",
+ "integrity": "sha512-dMPBqJWTDAr3Lj5hA+XYDH2PWqtFghYy+y7iq7K5sK/96cub8hZEUjhwn+HGgHsLerPp0dWt293nKupAJnf4Vw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/utils": "^3.27.0",
- "@react-types/link": "^3.5.10",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/shared": "^3.32.0",
+ "@swc/helpers": "^0.5.0",
+ "use-sync-external-store": "^1.4.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/link": {
+ "version": "3.8.5",
+ "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.8.5.tgz",
+ "integrity": "sha512-klhV4roPp5MLRXJv1N+7SXOj82vx4gzVpuwQa3vouA+YI1my46oNzwgtkLGSTvE9OvDqYzPDj2YxFYhMywrkuw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/link": "^3.6.4",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2638,18 +3241,19 @@
}
},
"node_modules/@react-aria/listbox": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.14.0.tgz",
- "integrity": "sha512-pyVbKavh8N8iyiwOx6I3JIcICvAzFXkKSFni1yarfgngJsJV3KSyOkzLomOfN9UhbjcV4sX61/fccwJuvlurlA==",
+ "version": "3.14.8",
+ "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.14.8.tgz",
+ "integrity": "sha512-uRgbuD9afFv0PDhQ/VXCmAwlYctIyKRzxztkqp1p/1yz/tn/hs+bG9kew9AI02PtlRO1mSc+32O+mMDXDer8hA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/label": "^3.7.14",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/collections": "^3.12.1",
- "@react-stately/list": "^3.11.2",
- "@react-types/listbox": "^3.5.4",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/list": "^3.13.0",
+ "@react-types/listbox": "^3.7.3",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2658,31 +3262,33 @@
}
},
"node_modules/@react-aria/live-announcer": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.1.tgz",
- "integrity": "sha512-4X2mcxgqLvvkqxv2l1n00jTzUxxe0kkLiapBGH1LHX/CxA1oQcHDqv8etJ2ZOwmS/MSBBiWnv3DwYHDOF6ubig==",
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.4.tgz",
+ "integrity": "sha512-PTTBIjNRnrdJOIRTDGNifY2d//kA7GUAwRFJNOEwSNG4FW+Bq9awqLiflw0JkpyB0VNIwou6lqKPHZVLsGWOXA==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0"
}
},
"node_modules/@react-aria/menu": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.17.0.tgz",
- "integrity": "sha512-aiFvSv3G1YvPC0klJQ/9quB05xIDZzJ5Lt6/CykP0UwGK5i8GCqm6/cyFLwEXsS5ooUPxS3bqmdOsgdADSSgqg==",
+ "version": "3.19.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.19.1.tgz",
+ "integrity": "sha512-hRYFdOOj3fYyoh/tJGxY1CWY80geNb3BT3DMNHgGBVMvnZ0E6k3WoQH+QZkVnwSnNIQAIPQFcYWPyZeE+ElEhA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/overlays": "^3.25.0",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/collections": "^3.12.1",
- "@react-stately/menu": "^3.9.1",
- "@react-stately/selection": "^3.19.0",
- "@react-stately/tree": "^3.8.7",
- "@react-types/button": "^3.10.2",
- "@react-types/menu": "^3.9.14",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/overlays": "^3.29.0",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/menu": "^3.9.7",
+ "@react-stately/selection": "^3.20.5",
+ "@react-stately/tree": "^3.9.2",
+ "@react-types/button": "^3.14.0",
+ "@react-types/menu": "^3.10.4",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2691,34 +3297,37 @@
}
},
"node_modules/@react-aria/meter": {
- "version": "3.4.19",
- "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.19.tgz",
- "integrity": "sha512-IIA+gTHrNVbMuBgcqdGLEKd/ZiKM2hOUqS6uztbT15dwPJTmtfJiTWA2872PiY52p+gqPSanZuTc2TXYJa+rew==",
+ "version": "3.4.26",
+ "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.26.tgz",
+ "integrity": "sha512-BI+Ri0dkhx9jjf6yPbOLl69M6808Fi08KNEmserMEapy++5usB/8krh9ARuR0GZYUPFOcny0Ml0or/HqamyFvw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/progress": "^3.4.19",
- "@react-types/meter": "^3.4.6",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/progress": "^3.4.26",
+ "@react-types/meter": "^3.4.12",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-aria/numberfield": {
- "version": "3.11.10",
- "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.10.tgz",
- "integrity": "sha512-bYbTfO9NbAKMFOfEGGs+lvlxk0I9L0lU3WD2PFQZWdaoBz9TCkL+vK0fJk1zsuKaVjeGsmHP9VesBPRmaP0MiA==",
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.12.1.tgz",
+ "integrity": "sha512-3KjxGgWiF4GRvIyqrE3nCndkkEJ68v86y0nx89TpAjdzg7gCgdXgU2Lr4BhC/xImrmlqCusw0IBUMhsEq9EQWA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/spinbutton": "^3.6.11",
- "@react-aria/textfield": "^3.16.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/form": "^3.1.1",
- "@react-stately/numberfield": "^3.9.9",
- "@react-types/button": "^3.10.2",
- "@react-types/numberfield": "^3.8.8",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/spinbutton": "^3.6.18",
+ "@react-aria/textfield": "^3.18.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/numberfield": "^3.10.1",
+ "@react-types/button": "^3.14.0",
+ "@react-types/numberfield": "^3.8.14",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2727,20 +3336,21 @@
}
},
"node_modules/@react-aria/overlays": {
- "version": "3.25.0",
- "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.25.0.tgz",
- "integrity": "sha512-UEqJJ4duowrD1JvwXpPZreBuK79pbyNjNxFUVpFSskpGEJe3oCWwsSDKz7P1O7xbx5OYp+rDiY8fk/sE5rkaKw==",
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.29.0.tgz",
+ "integrity": "sha512-OmMcwrbBMcv4KWNAPxvMZw02Wcw+z3e5dOS+MOb4AfY4bOJUvw+9hB13cfECs5lNXjV/UHT+5w2WBs32jmTwTg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/ssr": "^3.9.7",
- "@react-aria/utils": "^3.27.0",
- "@react-aria/visually-hidden": "^3.8.19",
- "@react-stately/overlays": "^3.6.13",
- "@react-types/button": "^3.10.2",
- "@react-types/overlays": "^3.8.12",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/ssr": "^3.9.10",
+ "@react-aria/utils": "^3.30.1",
+ "@react-aria/visually-hidden": "^3.8.27",
+ "@react-stately/overlays": "^3.6.19",
+ "@react-types/button": "^3.14.0",
+ "@react-types/overlays": "^3.9.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2749,15 +3359,16 @@
}
},
"node_modules/@react-aria/progress": {
- "version": "3.4.19",
- "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.19.tgz",
- "integrity": "sha512-5HHnBJHqEUuY+dYsjIZDYsENeKr49VCuxeaDZ0OSahbOlloIOB1baCo/6jLBv1O1rwrAzZ2gCCPcVGed/cjrcw==",
+ "version": "3.4.26",
+ "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.26.tgz",
+ "integrity": "sha512-EJBzbE0IjXrJ19ofSyNKDnqC70flUM0Z+9heMRPLi6Uz01o6Uuz9tjyzmoPnd9Q1jnTT7dCl7ydhdYTGsWFcUg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/label": "^3.7.14",
- "@react-aria/utils": "^3.27.0",
- "@react-types/progress": "^3.5.9",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/progress": "^3.5.15",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2766,19 +3377,20 @@
}
},
"node_modules/@react-aria/radio": {
- "version": "3.10.11",
- "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.11.tgz",
- "integrity": "sha512-R150HsBFPr1jLMShI4aBM8heCa1k6h0KEvnFRfTAOBu+B9hMSZOPB+d6GQOwGPysNlbset90Kej8G15FGHjqiA==",
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.12.1.tgz",
+ "integrity": "sha512-feZdMJyNp+UX03seIX0W6gdUk8xayTY+U0Ct61eci6YXzyyZoL2PVh49ojkbyZ2UZA/eXeygpdF5sgQrKILHCA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/form": "^3.0.12",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/label": "^3.7.14",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/radio": "^3.10.10",
- "@react-types/radio": "^3.8.6",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/form": "^3.1.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/radio": "^3.11.1",
+ "@react-types/radio": "^3.9.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2787,17 +3399,18 @@
}
},
"node_modules/@react-aria/searchfield": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.8.0.tgz",
- "integrity": "sha512-AaZuH9YIWlMyE1m7cSjHCfOuQmlWN+w8HVW32TxeGGGL1kJsYAlSYWYHUyYFIKh245kq/m5zUxAxmw5Ygmnx5w==",
+ "version": "3.8.8",
+ "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.8.8.tgz",
+ "integrity": "sha512-Yn6esCYEym3Cwrh/OZt6o/RFzsG2zyCAEZf7BhWk6NWUvP6aPwHgoSDVSjDN6YnnPn4yMqkqPnZulHV4+MvE/w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/textfield": "^3.16.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/searchfield": "^3.5.9",
- "@react-types/button": "^3.10.2",
- "@react-types/searchfield": "^3.5.11",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/textfield": "^3.18.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/searchfield": "^3.5.15",
+ "@react-types/button": "^3.14.0",
+ "@react-types/searchfield": "^3.6.5",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2806,23 +3419,24 @@
}
},
"node_modules/@react-aria/select": {
- "version": "3.15.1",
- "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.15.1.tgz",
- "integrity": "sha512-FOtY1tuHt0YTHwOEy/sf7LEIL+Nnkho3wJmfpWQuTxsvMCF7UJdQPYPd6/jGCcCdiqW7H4iqyjUkSp6nk/XRWQ==",
+ "version": "3.16.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.16.1.tgz",
+ "integrity": "sha512-grUFr5SJ9P8z/BVhnkBoyA74/uLTgNpa2UcR8ASfWrszJKzCGsqmJZo1TCtCVO8cQBxhlDIpuTmV4a7Dmpiekw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/form": "^3.0.12",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/label": "^3.7.14",
- "@react-aria/listbox": "^3.14.0",
- "@react-aria/menu": "^3.17.0",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/utils": "^3.27.0",
- "@react-aria/visually-hidden": "^3.8.19",
- "@react-stately/select": "^3.6.10",
- "@react-types/button": "^3.10.2",
- "@react-types/select": "^3.9.9",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/form": "^3.1.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/listbox": "^3.14.8",
+ "@react-aria/menu": "^3.19.1",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-aria/visually-hidden": "^3.8.27",
+ "@react-stately/select": "^3.7.1",
+ "@react-types/button": "^3.14.0",
+ "@react-types/select": "^3.10.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2831,16 +3445,17 @@
}
},
"node_modules/@react-aria/selection": {
- "version": "3.22.0",
- "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.22.0.tgz",
- "integrity": "sha512-XFOrK525HX2eeWeLZcZscUAs5qsuC1ZxsInDXMjvLeAaUPtQNEhUKHj3psDAl6XDU4VV1IJo0qCmFTVqTTMZSg==",
+ "version": "3.25.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.25.1.tgz",
+ "integrity": "sha512-HG+k3rDjuhnXPdVyv9CKiebee2XNkFYeYZBxEGlK3/pFVBzndnc8BXNVrXSgtCHLs2d090JBVKl1k912BPbj0Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/selection": "^3.19.0",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/selection": "^3.20.5",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2849,12 +3464,13 @@
}
},
"node_modules/@react-aria/separator": {
- "version": "3.4.5",
- "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.4.5.tgz",
- "integrity": "sha512-RQA9sKZdAEjP1Yrv0GpDdXgmXd56kXDE8atPDHEC0/A4lpYh/YFLfXcv1JW0Hlg4kBocdX2pB2INyDGhiD+yfw==",
+ "version": "3.4.12",
+ "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.4.12.tgz",
+ "integrity": "sha512-rvFCPdOPMQKY/Bpv2jNzXtetCuBLYSRCvpzam1LpMaEgwau5yECbId66+M2UX/cscPccKNU537SM6ei2j7RGog==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/utils": "^3.27.0",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2863,18 +3479,18 @@
}
},
"node_modules/@react-aria/slider": {
- "version": "3.7.15",
- "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.15.tgz",
- "integrity": "sha512-v9tujsuvJYRX0vE/vMYBzTT9FXbzrLsjkOrouNq+UdBIr7wRjIWTHHM0j+khb2swyCWNTbdv6Ce316Zqx2qWFg==",
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.8.1.tgz",
+ "integrity": "sha512-uPgwZQrcuqHaLU2prJtPEPIyN9ugZ7qGgi0SB2U8tvoODNVwuPvOaSsvR98Mn6jiAzMFNoWMydeIi+J1OjvWsQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/label": "^3.7.14",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/slider": "^3.6.1",
- "@react-types/shared": "^3.27.0",
- "@react-types/slider": "^3.7.8",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/slider": "^3.7.1",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/slider": "^3.8.1",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2883,15 +3499,16 @@
}
},
"node_modules/@react-aria/spinbutton": {
- "version": "3.6.11",
- "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.11.tgz",
- "integrity": "sha512-RM+gYS9tf9Wb+GegV18n4ArK3NBKgcsak7Nx1CkEgX9BjJ0yayWUHdfEjRRvxGXl+1z1n84cJVkZ6FUlWOWEZA==",
+ "version": "3.6.18",
+ "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.18.tgz",
+ "integrity": "sha512-dnmh7sNsprhYTpqCJhcuc9QJ9C/IG/o9TkgW5a9qcd2vS+dzEgqAiJKIMbJFG9kiJymv2NwIPysF12IWix+J3A==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/live-announcer": "^3.4.1",
- "@react-aria/utils": "^3.27.0",
- "@react-types/button": "^3.10.2",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/live-announcer": "^3.4.4",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/button": "^3.14.0",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2900,9 +3517,10 @@
}
},
"node_modules/@react-aria/ssr": {
- "version": "3.9.7",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz",
- "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==",
+ "version": "3.9.10",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz",
+ "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0"
},
@@ -2914,39 +3532,42 @@
}
},
"node_modules/@react-aria/switch": {
- "version": "3.6.11",
- "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.11.tgz",
- "integrity": "sha512-paYCpH+oeL+8rgQK+cBJ+IaZ1sXSh3+50WPlg2LvLBta0QVfQhPR4juPvfXRpfHHhCjFBgF4/RGbV8q5zpl3vA==",
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.7.7.tgz",
+ "integrity": "sha512-auV3g1qh+d/AZk7Idw2BOcYeXfCD9iDaiGmlcLJb9Eaz4nkq8vOkQxIXQFrn9Xhb+PfQzmQYKkt5N6P2ZNsw/g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/toggle": "^3.10.11",
- "@react-stately/toggle": "^3.8.1",
- "@react-types/shared": "^3.27.0",
- "@react-types/switch": "^3.5.8",
+ "@react-aria/toggle": "^3.12.1",
+ "@react-stately/toggle": "^3.9.1",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/switch": "^3.5.14",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-aria/table": {
- "version": "3.16.1",
- "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.16.1.tgz",
- "integrity": "sha512-T28TIGnKnPBunyErDBmm5jUX7AyzT7NVWBo9pDSt9wUuEnz0rVNd7p9sjmP2+u7I645feGG9klcdpCvFeqrk8A==",
+ "version": "3.17.7",
+ "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.17.7.tgz",
+ "integrity": "sha512-FxXryGTxePgh8plIxlOMwXdleGWjK52vsmbRoqz66lTIHMUMLTmmm+Y0V3lBOIoaW1rxvKcolYgS79ROnbDYBw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/grid": "^3.11.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/live-announcer": "^3.4.1",
- "@react-aria/utils": "^3.27.0",
- "@react-aria/visually-hidden": "^3.8.19",
- "@react-stately/collections": "^3.12.1",
- "@react-stately/flags": "^3.0.5",
- "@react-stately/table": "^3.13.1",
- "@react-types/checkbox": "^3.9.1",
- "@react-types/grid": "^3.2.11",
- "@react-types/shared": "^3.27.0",
- "@react-types/table": "^3.10.4",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/grid": "^3.14.4",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/live-announcer": "^3.4.4",
+ "@react-aria/utils": "^3.30.1",
+ "@react-aria/visually-hidden": "^3.8.27",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/flags": "^3.1.2",
+ "@react-stately/table": "^3.15.0",
+ "@react-types/checkbox": "^3.10.1",
+ "@react-types/grid": "^3.3.5",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/table": "^3.13.3",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2955,17 +3576,18 @@
}
},
"node_modules/@react-aria/tabs": {
- "version": "3.9.9",
- "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.9.tgz",
- "integrity": "sha512-oXPtANs16xu6MdMGLHjGV/2Zupvyp9CJEt7ORPLv5xAzSY5hSjuQHJLZ0te3Lh/KSG5/0o3RW/W5yEqo7pBQQQ==",
+ "version": "3.10.7",
+ "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.10.7.tgz",
+ "integrity": "sha512-iA1M6H+N+9GggsEy/6MmxpMpeOocwYgFy2EoEl3it24RVccY6iZT4AweJq96s5IYga5PILpn7VVcpssvhkPgeA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/tabs": "^3.7.1",
- "@react-types/shared": "^3.27.0",
- "@react-types/tabs": "^3.3.12",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/tabs": "^3.8.5",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/tabs": "^3.3.18",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2974,19 +3596,20 @@
}
},
"node_modules/@react-aria/tag": {
- "version": "3.4.9",
- "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.4.9.tgz",
- "integrity": "sha512-Vnps+zk8vYyjevv2Bc6vc9kSp9HFLKrKUDmrWMc0DfseypwJMc3Ya6F965ZVTjF9nuWrojNmvgusNu7qyXFShQ==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.7.1.tgz",
+ "integrity": "sha512-VpF26ez+QmEzTK8E9tXZ4cofa1wocjnIo/Bd1LCXgLCytnHAkYGxeIRm5QbznJ0aF/9UgR1QtMqhyRrCZg9QqA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/gridlist": "^3.10.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/label": "^3.7.14",
- "@react-aria/selection": "^3.22.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/list": "^3.11.2",
- "@react-types/button": "^3.10.2",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/gridlist": "^3.14.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/list": "^3.13.0",
+ "@react-types/button": "^3.14.0",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -2995,18 +3618,39 @@
}
},
"node_modules/@react-aria/textfield": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.16.0.tgz",
- "integrity": "sha512-53RVpMeMDN/QoabqnYZ1lxTh1xTQ3IBYQARuayq5EGGMafyxoFHzttxUdSqkZGK/+zdSF2GfmjOYJVm2nDKuDQ==",
+ "version": "3.18.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.18.1.tgz",
+ "integrity": "sha512-8yCoirnQzbbQgdk5J5bqimEu3GhHZ9FXeMHez1OF+H+lpTwyTYQ9XgioEN3HKnVUBNEufG4lYkQMxTKJdq1v9g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/form": "^3.0.12",
- "@react-aria/label": "^3.7.14",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/form": "^3.1.1",
- "@react-stately/utils": "^3.10.5",
- "@react-types/shared": "^3.27.0",
- "@react-types/textfield": "^3.11.0",
+ "@react-aria/form": "^3.1.1",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/textfield": "^3.12.5",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/toast": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@react-aria/toast/-/toast-3.0.7.tgz",
+ "integrity": "sha512-nuxPQ7wcSTg9UNMhXl9Uwyc5you/D1RfwymI3VDa5OGTZdJOmV2j94nyjBfMO2168EYMZjw+wEovvOZphs2Pbw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/landmark": "^3.0.6",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/toast": "^3.1.2",
+ "@react-types/button": "^3.14.0",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3015,16 +3659,16 @@
}
},
"node_modules/@react-aria/toggle": {
- "version": "3.10.11",
- "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.11.tgz",
- "integrity": "sha512-J3jO3KJiUbaYVDEpeXSBwqcyKxpi9OreiHRGiaxb6VwB+FWCj7Gb2WKajByXNyfs8jc6kX9VUFaXa7jze60oEQ==",
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.12.1.tgz",
+ "integrity": "sha512-XaFiRs1KEcIT6bTtVY/KTQxw4kinemj/UwXw2iJTu9XS43hhJ/9cvj8KzNGrKGqaxTpOYj62TnSHZbSiFViHDA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/toggle": "^3.8.1",
- "@react-types/checkbox": "^3.9.1",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/toggle": "^3.9.1",
+ "@react-types/checkbox": "^3.10.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3033,14 +3677,15 @@
}
},
"node_modules/@react-aria/toolbar": {
- "version": "3.0.0-beta.12",
- "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.12.tgz",
- "integrity": "sha512-a+Be27BtM2lzEdTzm19FikPbitfW65g/JZln3kyAvgpswhU6Ljl8lztaVw4ixjG4H0nqnKvVggMy4AlWwDUaVQ==",
+ "version": "3.0.0-beta.20",
+ "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.20.tgz",
+ "integrity": "sha512-Kxvqw+TpVOE/eSi8RAQ9xjBQ2uXe8KkRvlRNQWQsrzkZDkXhzqGfQuJnBmozFxqpzSLwaVqQajHFUSvPAScT8Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/i18n": "^3.12.5",
- "@react-aria/utils": "^3.27.0",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3049,16 +3694,36 @@
}
},
"node_modules/@react-aria/tooltip": {
- "version": "3.7.11",
- "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.11.tgz",
- "integrity": "sha512-mhZgAWUj7bUWipDeJXaVPZdqnzoBCd/uaEbdafnvgETmov1udVqPTh9w4ZKX2Oh1wa2+OdLFrBOk+8vC6QbWag==",
+ "version": "3.8.7",
+ "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.8.7.tgz",
+ "integrity": "sha512-Aj7DPJYGZ9/+2ZfhkvbN7YMeA5qu4oy4LVQiMCpqNwcFzvhTAVhN7J7cS6KjA64fhd1shKm3BZ693Ez6lSpqwg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/focus": "^3.19.1",
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/utils": "^3.27.0",
- "@react-stately/tooltip": "^3.5.1",
- "@react-types/shared": "^3.27.0",
- "@react-types/tooltip": "^3.4.14",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/tooltip": "^3.5.7",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/tooltip": "^3.4.20",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/tree": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/tree/-/tree-3.1.3.tgz",
+ "integrity": "sha512-CWjIvJS540Kzzxs1f4fF0ajPUfYoeptcA6MmXHBlCKE2euRSvKW6F1ZhvLVq81YsYWuAfBKnG2/JsTgBZnGPVQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/gridlist": "^3.14.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/utils": "^3.30.1",
+ "@react-stately/tree": "^3.9.2",
+ "@react-types/button": "^3.14.0",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3067,13 +3732,15 @@
}
},
"node_modules/@react-aria/utils": {
- "version": "3.27.0",
- "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.27.0.tgz",
- "integrity": "sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==",
+ "version": "3.30.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.30.1.tgz",
+ "integrity": "sha512-zETcbDd6Vf9GbLndO6RiWJadIZsBU2MMm23rBACXLmpRztkrIqPEb2RVdlLaq1+GklDx0Ii6PfveVjx+8S5U6A==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/ssr": "^3.9.7",
- "@react-stately/utils": "^3.10.5",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/ssr": "^3.9.10",
+ "@react-stately/flags": "^3.1.2",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0",
"clsx": "^2.0.0"
},
@@ -3083,13 +3750,14 @@
}
},
"node_modules/@react-aria/visually-hidden": {
- "version": "3.8.19",
- "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.19.tgz",
- "integrity": "sha512-MZgCCyQ3sdG94J5iJz7I7Ai3IxoN0U5d/+EaUnA1mfK7jf2fSYQBqi6Eyp8sWUYzBTLw4giXB5h0RGAnWzk9hA==",
+ "version": "3.8.27",
+ "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.27.tgz",
+ "integrity": "sha512-hD1DbL3WnjPnCdlQjwe19bQVRAGJyN0Aaup+s7NNtvZUn7AjoEH78jo8TE+L8yM7z/OZUQF26laCfYqeIwWn4g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/interactions": "^3.23.0",
- "@react-aria/utils": "^3.27.0",
- "@react-types/shared": "^3.27.0",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/utils": "^3.30.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3098,14 +3766,15 @@
}
},
"node_modules/@react-stately/calendar": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.7.0.tgz",
- "integrity": "sha512-N15zKubP2S7eWfPSJjKVlmJA7YpWzrIGx52BFhwLSQAZcV+OPcMgvOs71WtB7PLwl6DUYQGsgc0B3tcHzzvdvQ==",
+ "version": "3.8.4",
+ "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.8.4.tgz",
+ "integrity": "sha512-q9mq0ydOLS5vJoHLnYfSCS/vppfjbg0XHJlAoPR+w+WpYZF4wPP453SrlX9T1DbxCEYFTpcxcMk/O8SDW3miAw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/date": "^3.7.0",
- "@react-stately/utils": "^3.10.5",
- "@react-types/calendar": "^3.6.0",
- "@react-types/shared": "^3.27.0",
+ "@internationalized/date": "^3.9.0",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/calendar": "^3.7.4",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3113,14 +3782,15 @@
}
},
"node_modules/@react-stately/checkbox": {
- "version": "3.6.11",
- "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.11.tgz",
- "integrity": "sha512-jApdBis+Q1sXLivg+f7krcVaP/AMMMiQcVqcz5gwxlweQN+dRZ/NpL0BYaDOuGc26Mp0lcuVaET3jIZeHwtyxA==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.7.1.tgz",
+ "integrity": "sha512-ezfKRJsDuRCLtNoNOi9JXCp6PjffZWLZ/vENW/gbRDL8i46RKC/HpfJrJhvTPmsLYazxPC99Me9iq3v0VoNCsw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/form": "^3.1.1",
- "@react-stately/utils": "^3.10.5",
- "@react-types/checkbox": "^3.9.1",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/checkbox": "^3.10.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3128,11 +3798,32 @@
}
},
"node_modules/@react-stately/collections": {
- "version": "3.12.1",
- "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.1.tgz",
- "integrity": "sha512-8QmFBL7f+P64dEP4o35pYH61/lP0T/ziSdZAvNMrCqaM+fXcMfUp2yu1E63kADVX7WRDsFJWE3CVMeqirPH6Xg==",
+ "version": "3.12.7",
+ "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.7.tgz",
+ "integrity": "sha512-0kQc0mI986GOCQHvRy4L0JQiotIK/KmEhR9Mu/6V0GoSdqg5QeUe4kyoNWj3bl03uQXme80v0L2jLHt+fOHHjA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0",
+ "@react-types/shared": "^3.32.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/color": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/color/-/color-3.9.1.tgz",
+ "integrity": "sha512-fCj7fFamyuQbL++MOcf4W4d4aFWXYWJ2UI1dKhrXdqVz/ly9CBVjy/MHKQ6xZX2tEiuoPX5NexfxzKKiozE50Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@internationalized/number": "^3.6.5",
+ "@internationalized/string": "^3.2.7",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/numberfield": "^3.10.1",
+ "@react-stately/slider": "^3.7.1",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/color": "^3.1.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3140,18 +3831,19 @@
}
},
"node_modules/@react-stately/combobox": {
- "version": "3.10.2",
- "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.2.tgz",
- "integrity": "sha512-uT642Dool4tQBh+8UQjlJnTisrJVtg3LqmiP/HqLQ4O3pW0O+ImbG+2r6c9dUzlAnH4kEfmEwCp9dxkBkmFWsg==",
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.11.1.tgz",
+ "integrity": "sha512-ZZh+SaAmddoY+MeJr470oDYA0nGaJm4xoHCBapaBA0JNakGC/wTzF/IRz3tKQT2VYK4rumr1BJLZQydGp7zzeg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/collections": "^3.12.1",
- "@react-stately/form": "^3.1.1",
- "@react-stately/list": "^3.11.2",
- "@react-stately/overlays": "^3.6.13",
- "@react-stately/select": "^3.6.10",
- "@react-stately/utils": "^3.10.5",
- "@react-types/combobox": "^3.13.2",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/list": "^3.13.0",
+ "@react-stately/overlays": "^3.6.19",
+ "@react-stately/select": "^3.7.1",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/combobox": "^3.13.8",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3159,17 +3851,32 @@
}
},
"node_modules/@react-stately/datepicker": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.12.0.tgz",
- "integrity": "sha512-AfJEP36d+QgQ30GfacXtYdGsJvqY2yuCJ+JrjHct+m1nYuTkMvMMnhwNBFasgDJPLCDyHzyANlWkl2kQGfsBFw==",
+ "version": "3.15.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.15.1.tgz",
+ "integrity": "sha512-t64iYPms9y+MEQgOAu0XUHccbEXWVUWBHJWnYvAmILCHY8ZAOeSPAT1g4v9nzyiApcflSNXgpsvbs9BBEsrWww==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/date": "^3.7.0",
- "@internationalized/string": "^3.2.5",
- "@react-stately/form": "^3.1.1",
- "@react-stately/overlays": "^3.6.13",
- "@react-stately/utils": "^3.10.5",
- "@react-types/datepicker": "^3.10.0",
- "@react-types/shared": "^3.27.0",
+ "@internationalized/date": "^3.9.0",
+ "@internationalized/string": "^3.2.7",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/overlays": "^3.6.19",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/datepicker": "^3.13.1",
+ "@react-types/shared": "^3.32.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/disclosure": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@react-stately/disclosure/-/disclosure-3.0.7.tgz",
+ "integrity": "sha512-ogM2y02uhpGfSOaBKIDz+hEha8qBH6WIRHRkoqdF4sEaR1kfq8LvBWdP1e/OcqHAhuRr28P2Rf0TDicnAnN7uA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3177,12 +3884,13 @@
}
},
"node_modules/@react-stately/dnd": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.5.1.tgz",
- "integrity": "sha512-N18wt6fka9ngJJqxfAzmdtyrk9whAnqWUxZn22CatjNQsqukI4a6KRYwZTXM9x/wm7KamhVOp+GBl85zM8GLdA==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.7.0.tgz",
+ "integrity": "sha512-DddpCVkqt6vUPHLqe/2FHxW/gkR4tEt7W0MbFcCeCLbc9lmvzOClPwNpjmU/3UnU+vPQnwGGUeF3HvaxduUq2Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/selection": "^3.19.0",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/selection": "^3.20.5",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3190,19 +3898,21 @@
}
},
"node_modules/@react-stately/flags": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.5.tgz",
- "integrity": "sha512-6wks4csxUwPCp23LgJSnkBRhrWpd9jGd64DjcCTNB2AHIFu7Ab1W59pJpUL6TW7uAxVxdNKjgn6D1hlBy8qWsA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz",
+ "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0"
}
},
"node_modules/@react-stately/form": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.1.1.tgz",
- "integrity": "sha512-qavrz5X5Mdf/Q1v/QJRxc0F8UTNEyRCNSM1we/nnF7GV64+aYSDLOtaRGmzq+09RSwo1c8ZYnIkK5CnwsPhTsQ==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.2.1.tgz",
+ "integrity": "sha512-btgOPXkwvd6fdWKoepy5Ue43o2932OSkQxozsR7US1ffFLcQc3SNlADHaRChIXSG8ffPo9t0/Sl4eRzaKu3RgQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3210,14 +3920,15 @@
}
},
"node_modules/@react-stately/grid": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.10.1.tgz",
- "integrity": "sha512-MOIy//AdxZxIXIzvWSKpvMvaPEMZGQNj+/cOsElHepv/Veh0psNURZMh2TP6Mr0+MnDTZbX+5XIeinGkWYO3JQ==",
+ "version": "3.11.5",
+ "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.11.5.tgz",
+ "integrity": "sha512-4cNjGYaNkcVS2wZoNHUrMRICBpkHStYw57EVemP7MjiWEVu53kzPgR1Iwmti2WFCpi1Lwu0qWNeCfzKpXW4BTg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/collections": "^3.12.1",
- "@react-stately/selection": "^3.19.0",
- "@react-types/grid": "^3.2.11",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/selection": "^3.20.5",
+ "@react-types/grid": "^3.3.5",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3225,14 +3936,15 @@
}
},
"node_modules/@react-stately/list": {
- "version": "3.11.2",
- "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.11.2.tgz",
- "integrity": "sha512-eU2tY3aWj0SEeC7lH9AQoeAB4LL9mwS54FvTgHHoOgc1ZIwRJUaZoiuETyWQe98AL8KMgR1nrnDJ1I+CcT1Y7g==",
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.13.0.tgz",
+ "integrity": "sha512-Panv8TmaY8lAl3R7CRhyUadhf2yid6VKsRDBCBB1FHQOOeL7lqIraz/oskvpabZincuaIUWqQhqYslC4a6dvuA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/collections": "^3.12.1",
- "@react-stately/selection": "^3.19.0",
- "@react-stately/utils": "^3.10.5",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/selection": "^3.20.5",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3240,13 +3952,14 @@
}
},
"node_modules/@react-stately/menu": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.9.1.tgz",
- "integrity": "sha512-WRjGGImhQlQaer/hhahGytwd1BDq3fjpTkY/04wv3cQJPJR6lkVI5nSvGFMHfCaErsA1bNyB8/T9Y5F5u4u9ng==",
+ "version": "3.9.7",
+ "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.9.7.tgz",
+ "integrity": "sha512-mfz1YoCgtje61AGxVdQaAFLlOXt9vV5dd1lQljYUPRafA/qu5Ursz4fNVlcavWW9GscebzFQErx+y0oSP7EUtQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/overlays": "^3.6.13",
- "@react-types/menu": "^3.9.14",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/overlays": "^3.6.19",
+ "@react-types/menu": "^3.10.4",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3254,14 +3967,15 @@
}
},
"node_modules/@react-stately/numberfield": {
- "version": "3.9.9",
- "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.9.tgz",
- "integrity": "sha512-hZsLiGGHTHmffjFymbH1qVmA633rU2GNjMFQTuSsN4lqqaP8fgxngd5pPCoTCUFEkUgWjdHenw+ZFByw8lIE+g==",
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.10.1.tgz",
+ "integrity": "sha512-lXABmcTneVvXYMGTgZvTCr4E+upOi7VRLL50ZzTMJqHwB/qlEQPAam3dmddQRwIsuCM3MEnL7bSZFFlSYAtkEw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/number": "^3.6.0",
- "@react-stately/form": "^3.1.1",
- "@react-stately/utils": "^3.10.5",
- "@react-types/numberfield": "^3.8.8",
+ "@internationalized/number": "^3.6.5",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/numberfield": "^3.8.14",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3269,12 +3983,13 @@
}
},
"node_modules/@react-stately/overlays": {
- "version": "3.6.13",
- "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.13.tgz",
- "integrity": "sha512-WsU85Gf/b+HbWsnnYw7P/Ila3wD+C37Uk/WbU4/fHgJ26IEOWsPE6wlul8j54NZ1PnLNhV9Fn+Kffi+PaJMQXQ==",
+ "version": "3.6.19",
+ "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.19.tgz",
+ "integrity": "sha512-swZXfDvxTYd7tKEpijEHBFFaEmbbnCvEhGlmrAz4K72cuRR9O5u+lcla8y1veGBbBSzrIdKNdBoIIJ+qQH+1TQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/utils": "^3.10.5",
- "@react-types/overlays": "^3.8.12",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/overlays": "^3.9.1",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3282,14 +3997,15 @@
}
},
"node_modules/@react-stately/radio": {
- "version": "3.10.10",
- "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.10.tgz",
- "integrity": "sha512-9x3bpq87uV8iYA4NaioTTWjriQSlSdp+Huqlxll0T3W3okpyraTTejE91PbIoRTUmL5qByIh2WzxYmr4QdBgAA==",
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.11.1.tgz",
+ "integrity": "sha512-ld9KWztI64gssg7zSZi9li21sG85Exb+wFPXtCim1TtpnEpmRtB05pXDDS3xkkIU/qOL4eMEnnLO7xlNm0CRIA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/form": "^3.1.1",
- "@react-stately/utils": "^3.10.5",
- "@react-types/radio": "^3.8.6",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/radio": "^3.9.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3297,12 +4013,13 @@
}
},
"node_modules/@react-stately/searchfield": {
- "version": "3.5.9",
- "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.9.tgz",
- "integrity": "sha512-7/aO/oLJ4czKEji0taI/lbHKqPJRag9p3YmRaZ4yqjIMpKxzmJCWQcov5lzWeFhG/1hINKndYlxFnVIKV/urpg==",
+ "version": "3.5.15",
+ "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.15.tgz",
+ "integrity": "sha512-6LVVvm6Z60fetYLLa4B2Q/BIY+fSSknLTw8sjlV+iDEPAknj7MqWtoLz2gSQRTFKvyO7ZCjJoar8ZU/JEqcm+w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/utils": "^3.10.5",
- "@react-types/searchfield": "^3.5.11",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/searchfield": "^3.6.5",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3310,15 +4027,16 @@
}
},
"node_modules/@react-stately/select": {
- "version": "3.6.10",
- "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.10.tgz",
- "integrity": "sha512-V7V0FCL9T+GzLjyfnJB6PUaKldFyT/8Rj6M+R9ura1A0O+s/FEOesy0pdMXFoL1l5zeUpGlCnhJrsI5HFWHfDw==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.7.1.tgz",
+ "integrity": "sha512-vZt4j9yVyOTWWJoP9plXmYaPZH2uMxbjcGMDbiShwsFiK8C2m9b3Cvy44TZehfzCWzpMVR/DYxEYuonEIGA82Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/form": "^3.1.1",
- "@react-stately/list": "^3.11.2",
- "@react-stately/overlays": "^3.6.13",
- "@react-types/select": "^3.9.9",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/form": "^3.2.1",
+ "@react-stately/list": "^3.13.0",
+ "@react-stately/overlays": "^3.6.19",
+ "@react-types/select": "^3.10.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3326,13 +4044,14 @@
}
},
"node_modules/@react-stately/selection": {
- "version": "3.19.0",
- "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.19.0.tgz",
- "integrity": "sha512-AvbUqnWjqVQC48RD39S9BpMKMLl55Zo5l/yx5JQFPl55cFwe9Tpku1KY0wzt3fXXiXWaqjDn/7Gkg1VJYy8esQ==",
+ "version": "3.20.5",
+ "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.20.5.tgz",
+ "integrity": "sha512-YezWUNEn2pz5mQlbhmngiX9HqQsruLSXlkrAzB1DD6aliGrUvPKufTTGCixOaB8KVeCamdiFAgx1WomNplzdQA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/collections": "^3.12.1",
- "@react-stately/utils": "^3.10.5",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3340,13 +4059,14 @@
}
},
"node_modules/@react-stately/slider": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.6.1.tgz",
- "integrity": "sha512-8kij5O82Xe233vZZ6qNGqPXidnlNQiSnyF1q613c7ktFmzAyGjkIWVUapHi23T1fqm7H2Rs3RWlmwE9bo2KecA==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.7.1.tgz",
+ "integrity": "sha512-J+G18m1bZBCNQSXhxGd4GNGDUVonv4Sg7fZL+uLhXUy1x71xeJfFdKaviVvZcggtl0/q5InW41PXho7EouMDEg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/utils": "^3.10.5",
- "@react-types/shared": "^3.27.0",
- "@react-types/slider": "^3.7.8",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/slider": "^3.8.1",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3354,18 +4074,19 @@
}
},
"node_modules/@react-stately/table": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.13.1.tgz",
- "integrity": "sha512-Im8W+F8o9EhglY5kqRa3xcMGXl8zBi6W5phGpAjXb+UGDL1tBIlAcYj733bw8g/ITCnaSz9ubsmON0HekPd6Jg==",
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.15.0.tgz",
+ "integrity": "sha512-KbvkrVF3sb25IPwyte9JcG5/4J7TgjHSsw7D61d/T/oUFMYPYVeolW9/2y+6u48WPkDJE8HJsurme+HbTN0FQA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/collections": "^3.12.1",
- "@react-stately/flags": "^3.0.5",
- "@react-stately/grid": "^3.10.1",
- "@react-stately/selection": "^3.19.0",
- "@react-stately/utils": "^3.10.5",
- "@react-types/grid": "^3.2.11",
- "@react-types/shared": "^3.27.0",
- "@react-types/table": "^3.10.4",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/flags": "^3.1.2",
+ "@react-stately/grid": "^3.11.5",
+ "@react-stately/selection": "^3.20.5",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/grid": "^3.3.5",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/table": "^3.13.3",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3373,27 +4094,42 @@
}
},
"node_modules/@react-stately/tabs": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.7.1.tgz",
- "integrity": "sha512-gr9ACyuWrYuc727h7WaHdmNw8yxVlUyQlguziR94MdeRtFGQnf3V6fNQG3kxyB77Ljko69tgDF7Nf6kfPUPAQQ==",
+ "version": "3.8.5",
+ "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.8.5.tgz",
+ "integrity": "sha512-gdeI+NUH3hfqrxkJQSZkt+Zw4G2DrYJRloq/SGxu/9Bu5QD/U0psU2uqxQNtavW5qTChFK+D30rCPXpKlslWAA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/list": "^3.11.2",
- "@react-types/shared": "^3.27.0",
- "@react-types/tabs": "^3.3.12",
+ "@react-stately/list": "^3.13.0",
+ "@react-types/shared": "^3.32.0",
+ "@react-types/tabs": "^3.3.18",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@react-stately/toggle": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.1.tgz",
- "integrity": "sha512-MVpe79ghVQiwLmVzIPhF/O/UJAUc9B+ZSylVTyJiEPi0cwhbkKGQv9thOF0ebkkRkace5lojASqUAYtSTZHQJA==",
+ "node_modules/@react-stately/toast": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-stately/toast/-/toast-3.1.2.tgz",
+ "integrity": "sha512-HiInm7bck32khFBHZThTQaAF6e6/qm57F4mYRWdTq8IVeGDzpkbUYibnLxRhk0UZ5ybc6me+nqqPkG/lVmM42Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/utils": "^3.10.5",
- "@react-types/checkbox": "^3.9.1",
- "@react-types/shared": "^3.27.0",
+ "@swc/helpers": "^0.5.0",
+ "use-sync-external-store": "^1.4.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/toggle": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.9.1.tgz",
+ "integrity": "sha512-L6yUdE8xZfQhw4aEFZduF8u4v0VrpYrwWEA4Tu/4qwGIPukH0wd2W21Zpw+vAiLOaDKnxel1nXX68MWnm4QXpw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/checkbox": "^3.10.1",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3401,12 +4137,13 @@
}
},
"node_modules/@react-stately/tooltip": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.5.1.tgz",
- "integrity": "sha512-0aI3U5kB7Cop9OCW9/Bag04zkivFSdUcQgy/TWL4JtpXidVWmOha8txI1WySawFSjZhH83KIyPc+wKm1msfLMQ==",
+ "version": "3.5.7",
+ "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.5.7.tgz",
+ "integrity": "sha512-GYh764BcYZz+Lclyutyir5I3elNo+vVNYzeNOKmPGZCE3p5B+/8lgZAHKxnRc9qmBlxvofnhMcuQxAPlBhoEkw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/overlays": "^3.6.13",
- "@react-types/tooltip": "^3.4.14",
+ "@react-stately/overlays": "^3.6.19",
+ "@react-types/tooltip": "^3.4.20",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3414,14 +4151,15 @@
}
},
"node_modules/@react-stately/tree": {
- "version": "3.8.7",
- "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.7.tgz",
- "integrity": "sha512-hpc3pyuXWeQV5ufQ02AeNQg/MYhnzZ4NOznlY5OOUoPzpLYiI3ZJubiY3Dot4jw5N/LR7CqvDLHmrHaJPmZlHg==",
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.9.2.tgz",
+ "integrity": "sha512-jsT1WZZhb7GRmg1iqoib9bULsilIK5KhbE8WrcfIml8NYr4usP4DJMcIYfRuiRtPLhKtUvHSoZ5CMbinPp8PUQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-stately/collections": "^3.12.1",
- "@react-stately/selection": "^3.19.0",
- "@react-stately/utils": "^3.10.5",
- "@react-types/shared": "^3.27.0",
+ "@react-stately/collections": "^3.12.7",
+ "@react-stately/selection": "^3.20.5",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.0",
"@swc/helpers": "^0.5.0"
},
"peerDependencies": {
@@ -3429,9 +4167,10 @@
}
},
"node_modules/@react-stately/utils": {
- "version": "3.10.5",
- "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz",
- "integrity": "sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==",
+ "version": "3.10.8",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.8.tgz",
+ "integrity": "sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==",
+ "license": "Apache-2.0",
"dependencies": {
"@swc/helpers": "^0.5.0"
},
@@ -3440,295 +4179,341 @@
}
},
"node_modules/@react-types/breadcrumbs": {
- "version": "3.7.10",
- "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.10.tgz",
- "integrity": "sha512-5HhRxkKHfAQBoyOYzyf4HT+24HgPE/C/QerxJLNNId303LXO03yeYrbvRqhYZSlD1ACLJW9OmpPpREcw5iSqgw==",
+ "version": "3.7.16",
+ "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.16.tgz",
+ "integrity": "sha512-4J+7b9y6z8QGZqvsBSWQfebx6aIbc+1unQqnZCAlJl9EGzlI6SGdXRsURGkOUGJCV2GqY8bSocc8AZbRXpQ0XQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/link": "^3.5.10",
- "@react-types/shared": "^3.27.0"
+ "@react-types/link": "^3.6.4",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/button": {
- "version": "3.10.2",
- "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.2.tgz",
- "integrity": "sha512-h8SB/BLoCgoBulCpyzaoZ+miKXrolK9XC48+n1dKJXT8g4gImrficurDW6+PRTQWaRai0Q0A6bu8UibZOU4syg==",
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.14.0.tgz",
+ "integrity": "sha512-pXt1a+ElxiZyWpX0uznyjy5Z6EHhYxPcaXpccZXyn6coUo9jmCbgg14xR7Odo+JcbfaaISzZTDO7oGLVTcHnpA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/calendar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.6.0.tgz",
- "integrity": "sha512-BtFh4BFwvsYlsaSqUOVxlqXZSlJ6u4aozgO3PwHykhpemwidlzNwm9qDZhcMWPioNF/w2cU/6EqhvEKUHDnFZg==",
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.7.4.tgz",
+ "integrity": "sha512-MZDyXtvdHl8CKQGYBkjYwc4ABBq6Mb4Fu7k/4boQAmMQ5Rtz29ouBCJrAs0BpR14B8ZMGzoNIolxS5RLKBmFSA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/date": "^3.7.0",
- "@react-types/shared": "^3.27.0"
+ "@internationalized/date": "^3.9.0",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/checkbox": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.1.tgz",
- "integrity": "sha512-0x/KQcipfNM9Nvy6UMwYG25roRLvsiqf0J3woTYylNNWzF+72XT0iI5FdJkE3w2wfa0obmSoeq4WcbFREQrH/A==",
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.10.1.tgz",
+ "integrity": "sha512-8ZqBoGBxtn6U/znpmyutGtBBaafUzcZnbuvYjwyRSONTrqQ0IhUq6jI/jbnE9r9SslIkbMB8IS1xRh2e63qmEQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-types/color": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@react-types/color/-/color-3.1.1.tgz",
+ "integrity": "sha512-zBF1Op4AO3mlygUq2gFhEoK3gZp2HgwCMUKkCzoDbrvcaahhVbDbfhRxgXKM/2dg7WkgsqhokdkjYV2mGQadRQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-types/shared": "^3.32.0",
+ "@react-types/slider": "^3.8.1"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/combobox": {
- "version": "3.13.2",
- "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.2.tgz",
- "integrity": "sha512-yl2yMcM5/v3lJiNZWjpAhQ9vRW6dD55CD4rYmO2K7XvzYJaFVT4WYI/AymPYD8RqomMp7coBmBHfHW0oupk8gg==",
+ "version": "3.13.8",
+ "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.8.tgz",
+ "integrity": "sha512-HGC3X9hmDRsjSZcFiflvJ7vbIgQ2gX/ZDxo1HVtvQqUDbgQCVakCcCdrB44aYgHFnyDiO6hyp7Y7jXtDBaEIIA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/datepicker": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.10.0.tgz",
- "integrity": "sha512-Att7y4NedNH1CogMDIX9URXgMLxGbZgnFCZ8oxgFAVndWzbh3TBcc4s7uoJDPvgRMAalq+z+SrlFFeoBeJmvvg==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.13.1.tgz",
+ "integrity": "sha512-ub+g5pS3WOo5P/3FRNsQSwvlb9CuLl2m6v6KBkRXc5xqKhFd7UjvVpL6Oi/1zwwfow4itvD1t7l1XxgCo7wZ6Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@internationalized/date": "^3.7.0",
- "@react-types/calendar": "^3.6.0",
- "@react-types/overlays": "^3.8.12",
- "@react-types/shared": "^3.27.0"
+ "@internationalized/date": "^3.9.0",
+ "@react-types/calendar": "^3.7.4",
+ "@react-types/overlays": "^3.9.1",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/dialog": {
- "version": "3.5.15",
- "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.15.tgz",
- "integrity": "sha512-BX1+mV35Oa0aIlhu98OzJaSB7uiCWDPQbr0AkpFBajSSlESUoAjntN+4N+QJmj24z2v6UE9zxGQ85/U/0Le+bw==",
+ "version": "3.5.21",
+ "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.21.tgz",
+ "integrity": "sha512-jF1gN4bvwYamsLjefaFDnaSKxTa3Wtvn5f7WLjNVZ8ICVoiMBMdUJXTlPQHAL4YWqtCj4hK/3uimR1E+Pwd7Xw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/overlays": "^3.8.12",
- "@react-types/shared": "^3.27.0"
+ "@react-types/overlays": "^3.9.1",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/grid": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.11.tgz",
- "integrity": "sha512-Mww9nrasppvPbsBi+uUqFnf7ya8fXN0cTVzDNG+SveD8mhW+sbtuy+gPtEpnFD2Oyi8qLuObefzt4gdekJX2Yw==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.5.tgz",
+ "integrity": "sha512-hG6J2KDfmOHitkWoCa/9DvY1nTO2wgMIApcFoqLv7AWJr9CzvVqo5tIhZZCXiT1AvU2kafJxu9e7sr5GxAT2YA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/link": {
- "version": "3.5.10",
- "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.10.tgz",
- "integrity": "sha512-IM2mbSpB0qP44Jh1Iqpevo7bQdZAr0iDyDi13OhsiUYJeWgPMHzGEnQqdBMkrfQeOTXLtZtUyOYLXE2v39bhzQ==",
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.6.4.tgz",
+ "integrity": "sha512-eLpIgOPf7GW4DpdMq8UqiRJkriend1kWglz5O9qU+/FM6COtvRnQkEeRhHICUaU2NZUvMRQ30KaGUo3eeZ6b+g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/listbox": {
- "version": "3.5.4",
- "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.4.tgz",
- "integrity": "sha512-5otTes0zOwRZwNtqysPD/aW4qFJSxd5znjwoWTLnzDXXOBHXPyR83IJf8ITgvIE5C0y+EFadsWR/BBO3k9Pj7g==",
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.7.3.tgz",
+ "integrity": "sha512-ONgror9uyGmIer5XxpRRNcc8QFVWiOzINrMKyaS8G4l3aP52ZwYpRfwMAVtra8lkVNvXDmO7hthPZkB6RYdNOA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/menu": {
- "version": "3.9.14",
- "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.14.tgz",
- "integrity": "sha512-RJW/S8IPwbRuohJ/A9HJ7W8QaAY816tm7Nv6+H/TLXG76zu2AS5vEgq+0TcCAWvJJwUdLDpJWJMlo0iIoIBtcg==",
+ "version": "3.10.4",
+ "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.10.4.tgz",
+ "integrity": "sha512-jCFVShLq3eASiuznenjoKBv3j0Jy2KQilAjBxdEp56WkZ5D338y/oY5zR6d25u9M0QslpI0DgwC8BwU7MCsPnw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/overlays": "^3.8.12",
- "@react-types/shared": "^3.27.0"
+ "@react-types/overlays": "^3.9.1",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/meter": {
- "version": "3.4.6",
- "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.4.6.tgz",
- "integrity": "sha512-YczAht1VXy3s4fR6Dq0ibGsjulGHzS/A/K4tOruSNTL6EkYH9ktHX62Xk/OhCiKHxV315EbZ136WJaCeO4BgHw==",
+ "version": "3.4.12",
+ "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.4.12.tgz",
+ "integrity": "sha512-rx+yrwdesSabPworWRMpQnuT69gm8xt58cAfTDV9eSY1Jo+lO5OPp0OIyKb+U0q/whf60wnn2hsVnXm2fBXKhA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/progress": "^3.5.9"
+ "@react-types/progress": "^3.5.15"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/numberfield": {
- "version": "3.8.8",
- "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.8.tgz",
- "integrity": "sha512-825JPppxDaWh0Zxb0Q+wSslgRQYOtQPCAuhszPuWEy6d2F/M+hLR+qQqvQm9+LfMbdwiTg6QK5wxdWFCp2t7jw==",
+ "version": "3.8.14",
+ "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.14.tgz",
+ "integrity": "sha512-tlGEHJyeQSMlUoO4g9ekoELGJcqsjc/+/FAxo6YQMhQSkuIdkUKZg3UEBKzif4hLw787u80e1D0SxPUi3KO2oA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/overlays": {
- "version": "3.8.12",
- "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.12.tgz",
- "integrity": "sha512-ZvR1t0YV7/6j+6OD8VozKYjvsXT92+C/2LOIKozy7YUNS5KI4MkXbRZzJvkuRECVZOmx8JXKTUzhghWJM/3QuQ==",
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.9.1.tgz",
+ "integrity": "sha512-UCG3TOu8FLk4j0Pr1nlhv0opcwMoqbGEOUvsSr6ITN6Qs2y0j+KYSYQ7a4+04m3dN//8+9Wjkkid8k+V1dV2CA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/progress": {
- "version": "3.5.9",
- "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.9.tgz",
- "integrity": "sha512-zFxOzx3G8XUmHgpm037Hcayls5bqzXVa182E3iM7YWTmrjxJPKZ58XL0WWBgpTd+mJD7fTpnFdAZqSmFbtDOdA==",
+ "version": "3.5.15",
+ "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.15.tgz",
+ "integrity": "sha512-3SYvEyRt7vq7w0sc6wBYmkPqLMZbhH8FI3Lrnn9r3y8+69/efRjVmmJvwjm1z+c6rukszc2gCjUGTsMPQxVk2w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/radio": {
- "version": "3.8.6",
- "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.6.tgz",
- "integrity": "sha512-woTQYdRFjPzuml4qcIf+2zmycRuM5w3fDS5vk6CQmComVUjOFPtD28zX3Z9kc9lSNzaBQz9ONZfFqkZ1gqfICA==",
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.9.1.tgz",
+ "integrity": "sha512-DUCN3msm8QZ0MJrP55FmqMONaadYq6JTxihYFGMLP+NoKRnkxvXqNZ2PlkAOLGy3y4RHOnOF8O1LuJqFCCuxDw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/searchfield": {
- "version": "3.5.11",
- "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.11.tgz",
- "integrity": "sha512-MX8d9pgvxZxmgDwI0tiDaf6ijOY8XcRj0HM8Ocfttlk7PEFJK44p51WsUC+fPX1GmZni2JpFkx/haPOSLUECdw==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.6.5.tgz",
+ "integrity": "sha512-5hI+Hb1U0bSxrJLvEwFEQfk7n3S+GO4c5W/0WZBG00YlYDY9asr1V0oU1WRmKPJJlRpyfG6PkMHDC3jhdj89ew==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0",
- "@react-types/textfield": "^3.11.0"
+ "@react-types/shared": "^3.32.0",
+ "@react-types/textfield": "^3.12.5"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/select": {
- "version": "3.9.9",
- "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.9.tgz",
- "integrity": "sha512-/hCd0o+ztn29FKCmVec+v7t4JpOzz56o+KrG7NDq2pcRWqUR9kNwCjrPhSbJIIEDm4ubtrfPu41ysIuDvRd2Bg==",
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.10.1.tgz",
+ "integrity": "sha512-teANUr1byOzGsS/r2j7PatV470JrOhKP8En9lscfnqW5CeUghr+0NxkALnPkiEhCObi/Vu8GIcPareD0HNhtFA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/shared": {
- "version": "3.27.0",
- "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.27.0.tgz",
- "integrity": "sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==",
+ "version": "3.32.0",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.32.0.tgz",
+ "integrity": "sha512-t+cligIJsZYFMSPFMvsJMjzlzde06tZMOIOFa1OV5Z0BcMowrb2g4mB57j/9nP28iJIRYn10xCniQts+qadrqQ==",
+ "license": "Apache-2.0",
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/slider": {
- "version": "3.7.8",
- "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.8.tgz",
- "integrity": "sha512-utW1o9KT70hqFwu1zqMtyEWmP0kSATk4yx+Fm/peSR4iZa+BasRqH83yzir5GKc8OfqfE1kmEsSlO98/k986+w==",
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.8.1.tgz",
+ "integrity": "sha512-WxiQWj6iQr5Uft0/KcB9XSr361XnyTmL6eREZZacngA9CjPhRWYP3BRDPcCTuP7fj9Yi4QKMrryyjHqMHP8OKQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/switch": {
- "version": "3.5.8",
- "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.8.tgz",
- "integrity": "sha512-sL7jmh8llF8BxzY4HXkSU4bwU8YU6gx45P85D0AdYXgRHxU9Cp7BQPOMF4pJoQ8TTej05MymY5q7xvJVmxUTAQ==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.14.tgz",
+ "integrity": "sha512-M8kIv97i+ejCel4Ho+Y7tDbpOehymGwPA4ChxibeyD32+deyxu5B6BXxgKiL3l+oTLQ8ihLo3sRESdPFw8vpQg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/table": {
- "version": "3.10.4",
- "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.10.4.tgz",
- "integrity": "sha512-d0tLz/whxVteqr1rophtuuxqyknHHfTKeXrCgDjt8pAyd9U8GPDbfcFSfYPUhWdELRt7aLVyQw6VblZHioVEgQ==",
+ "version": "3.13.3",
+ "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.13.3.tgz",
+ "integrity": "sha512-/kY/VlXN+8l9saySd6igcsDQ3x8pOVFJAWyMh6gOaOVN7HOJkTMIchmqS+ATa4nege8jZqcdzyGeAmv7mN655A==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/grid": "^3.2.11",
- "@react-types/shared": "^3.27.0"
+ "@react-types/grid": "^3.3.5",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/tabs": {
- "version": "3.3.12",
- "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.12.tgz",
- "integrity": "sha512-E9O9G+wf9kaQ8UbDEDliW/oxYlJnh7oDCW1zaMOySwnG4yeCh7Wu02EOCvlQW4xvgn/i+lbEWgirf7L+yj5nRg==",
+ "version": "3.3.18",
+ "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.18.tgz",
+ "integrity": "sha512-yX/AVlGS7VXCuy2LSm8y8nxUrKVBgnLv+FrtkLqf6jUMtD4KP3k1c4+GPHeScR0HcYzCQF7gCF3Skba1RdYoug==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/textfield": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.11.0.tgz",
- "integrity": "sha512-YORBgr6wlu2xfvr4MqjKFHGpj+z8LBzk14FbWDbYnnhGnv0I10pj+m2KeOHgDNFHrfkDdDOQmMIKn1UCqeUuEg==",
+ "version": "3.12.5",
+ "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.12.5.tgz",
+ "integrity": "sha512-VXez8KIcop87EgIy00r+tb30xokA309TfJ32Qv5qOYB5SMqoHnb6SYvWL8Ih2PDqCo5eBiiGesSaWYrHnRIL8Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/shared": "^3.27.0"
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-types/tooltip": {
- "version": "3.4.14",
- "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.14.tgz",
- "integrity": "sha512-J7CeYL2yPeKIasx1rPaEefyCHGEx2DOCx+7bM3XcKGmCxvNdVQLjimNJOt8IHlUA0nFJQOjmSW/mz9P0f2/kUw==",
+ "version": "3.4.20",
+ "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.20.tgz",
+ "integrity": "sha512-tF1yThwvgSgW8Gu/CLL0p92AUldHR6szlwhwW+ewT318sQlfabMGO4xlCNFdxJYtqTpEXk2rlaVrBuaC//du0w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-types/overlays": "^3.8.12",
- "@react-types/shared": "^3.27.0"
+ "@react-types/overlays": "^3.9.1",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@remix-run/router": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz",
- "integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==",
+ "version": "1.23.0",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz",
+ "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==",
+ "license": "MIT",
"engines": {
"node": ">=14.0.0"
}
},
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.27",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@rollup/plugin-babel": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@@ -3794,20 +4579,21 @@
}
},
"node_modules/@rollup/plugin-inject": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz",
- "integrity": "sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz",
+ "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"estree-walker": "^2.0.2",
- "magic-string": "^0.27.0"
+ "magic-string": "^0.30.3"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
@@ -3942,15 +4728,19 @@
}
},
"node_modules/@rollup/plugin-wasm": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.1.1.tgz",
- "integrity": "sha512-dccyb8OvtpY21KiYjaNmibWlQJd/kBg+IVP24x9l1dsIRXBmGqLt+wsPjU296FNO8ap0SSEsTpi/7AfrlvQvBQ==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.2.2.tgz",
+ "integrity": "sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.2"
+ },
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
@@ -4208,6 +4998,13 @@
"win32"
]
},
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@surma/rollup-plugin-off-main-thread": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
@@ -4230,14 +5027,15 @@
}
},
"node_modules/@swc/core": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.7.tgz",
- "integrity": "sha512-py91kjI1jV5D5W/Q+PurBdGsdU5TFbrzamP7zSCqLdMcHkKi3rQEM5jkQcZr0MXXSJTaayLxS3MWYTBIkzPDrg==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz",
+ "integrity": "sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==",
"dev": true,
"hasInstallScript": true,
+ "license": "Apache-2.0",
"dependencies": {
"@swc/counter": "^0.1.3",
- "@swc/types": "^0.1.17"
+ "@swc/types": "^0.1.24"
},
"engines": {
"node": ">=10"
@@ -4247,19 +5045,19 @@
"url": "https://opencollective.com/swc"
},
"optionalDependencies": {
- "@swc/core-darwin-arm64": "1.10.7",
- "@swc/core-darwin-x64": "1.10.7",
- "@swc/core-linux-arm-gnueabihf": "1.10.7",
- "@swc/core-linux-arm64-gnu": "1.10.7",
- "@swc/core-linux-arm64-musl": "1.10.7",
- "@swc/core-linux-x64-gnu": "1.10.7",
- "@swc/core-linux-x64-musl": "1.10.7",
- "@swc/core-win32-arm64-msvc": "1.10.7",
- "@swc/core-win32-ia32-msvc": "1.10.7",
- "@swc/core-win32-x64-msvc": "1.10.7"
+ "@swc/core-darwin-arm64": "1.13.5",
+ "@swc/core-darwin-x64": "1.13.5",
+ "@swc/core-linux-arm-gnueabihf": "1.13.5",
+ "@swc/core-linux-arm64-gnu": "1.13.5",
+ "@swc/core-linux-arm64-musl": "1.13.5",
+ "@swc/core-linux-x64-gnu": "1.13.5",
+ "@swc/core-linux-x64-musl": "1.13.5",
+ "@swc/core-win32-arm64-msvc": "1.13.5",
+ "@swc/core-win32-ia32-msvc": "1.13.5",
+ "@swc/core-win32-x64-msvc": "1.13.5"
},
"peerDependencies": {
- "@swc/helpers": "*"
+ "@swc/helpers": ">=0.5.17"
},
"peerDependenciesMeta": {
"@swc/helpers": {
@@ -4268,13 +5066,14 @@
}
},
"node_modules/@swc/core-darwin-arm64": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.7.tgz",
- "integrity": "sha512-SI0OFg987P6hcyT0Dbng3YRISPS9uhLX1dzW4qRrfqQdb0i75lPJ2YWe9CN47HBazrIA5COuTzrD2Dc0TcVsSQ==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz",
+ "integrity": "sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"darwin"
@@ -4284,13 +5083,14 @@
}
},
"node_modules/@swc/core-darwin-x64": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.7.tgz",
- "integrity": "sha512-RFIAmWVicD/l3RzxgHW0R/G1ya/6nyMspE2cAeDcTbjHi0I5qgdhBWd6ieXOaqwEwiCd0Mot1g2VZrLGoBLsjQ==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.5.tgz",
+ "integrity": "sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"darwin"
@@ -4300,13 +5100,14 @@
}
},
"node_modules/@swc/core-linux-arm-gnueabihf": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.7.tgz",
- "integrity": "sha512-QP8vz7yELWfop5mM5foN6KkLylVO7ZUgWSF2cA0owwIaziactB2hCPZY5QU690coJouk9KmdFsPWDnaCFUP8tg==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.5.tgz",
+ "integrity": "sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "Apache-2.0",
"optional": true,
"os": [
"linux"
@@ -4316,13 +5117,14 @@
}
},
"node_modules/@swc/core-linux-arm64-gnu": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.7.tgz",
- "integrity": "sha512-NgUDBGQcOeLNR+EOpmUvSDIP/F7i/OVOKxst4wOvT5FTxhnkWrW+StJGKj+DcUVSK5eWOYboSXr1y+Hlywwokw==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.5.tgz",
+ "integrity": "sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"linux"
@@ -4332,13 +5134,14 @@
}
},
"node_modules/@swc/core-linux-arm64-musl": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.7.tgz",
- "integrity": "sha512-gp5Un3EbeSThBIh6oac5ZArV/CsSmTKj5jNuuUAuEsML3VF9vqPO+25VuxCvsRf/z3py+xOWRaN2HY/rjMeZog==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.5.tgz",
+ "integrity": "sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"linux"
@@ -4348,13 +5151,14 @@
}
},
"node_modules/@swc/core-linux-x64-gnu": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.7.tgz",
- "integrity": "sha512-k/OxLLMl/edYqbZyUNg6/bqEHTXJT15l9WGqsl/2QaIGwWGvles8YjruQYQ9d4h/thSXLT9gd8bExU2D0N+bUA==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.5.tgz",
+ "integrity": "sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"linux"
@@ -4364,13 +5168,14 @@
}
},
"node_modules/@swc/core-linux-x64-musl": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.7.tgz",
- "integrity": "sha512-XeDoURdWt/ybYmXLCEE8aSiTOzEn0o3Dx5l9hgt0IZEmTts7HgHHVeRgzGXbR4yDo0MfRuX5nE1dYpTmCz0uyA==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.5.tgz",
+ "integrity": "sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"linux"
@@ -4380,13 +5185,14 @@
}
},
"node_modules/@swc/core-win32-arm64-msvc": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.7.tgz",
- "integrity": "sha512-nYAbi/uLS+CU0wFtBx8TquJw2uIMKBnl04LBmiVoFrsIhqSl+0MklaA9FVMGA35NcxSJfcm92Prl2W2LfSnTqQ==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.5.tgz",
+ "integrity": "sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"win32"
@@ -4396,13 +5202,14 @@
}
},
"node_modules/@swc/core-win32-ia32-msvc": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.7.tgz",
- "integrity": "sha512-+aGAbsDsIxeLxw0IzyQLtvtAcI1ctlXVvVcXZMNXIXtTURM876yNrufRo4ngoXB3jnb1MLjIIjgXfFs/eZTUSw==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.5.tgz",
+ "integrity": "sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==",
"cpu": [
"ia32"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"win32"
@@ -4412,13 +5219,14 @@
}
},
"node_modules/@swc/core-win32-x64-msvc": {
- "version": "1.10.7",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.7.tgz",
- "integrity": "sha512-TBf4clpDBjF/UUnkKrT0/th76/zwvudk5wwobiTFqDywMApHip5O0VpBgZ+4raY2TM8k5+ujoy7bfHb22zu17Q==",
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.5.tgz",
+ "integrity": "sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
"win32"
@@ -4431,94 +5239,110 @@
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
"integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/@swc/helpers": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
+ "version": "0.5.17",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz",
+ "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.8.0"
}
},
"node_modules/@swc/types": {
- "version": "0.1.17",
- "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz",
- "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==",
+ "version": "0.1.24",
+ "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.24.tgz",
+ "integrity": "sha512-tjTMh3V4vAORHtdTprLlfoMptu1WfTZG9Rsca6yOKyNYsRr+MUXutKmliB17orgSZk5DpnDxs8GUdd/qwYxOng==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@swc/counter": "^0.1.3"
}
},
+ "node_modules/@swc/wasm": {
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/@swc/wasm/-/wasm-1.13.5.tgz",
+ "integrity": "sha512-ZBZcxieydxNwgEU9eFAXGMaDb1Xoh+ZkZcUQ27LNJzc2lPSByoL6CSVqnYiaVo+n9JgqbYyHlMq+i7z0wRNTfA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/@tanstack/query-core": {
- "version": "5.24.1",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.24.1.tgz",
- "integrity": "sha512-DZ6Nx9p7BhjkG50ayJ+MKPgff+lMeol7QYXkvuU5jr2ryW/4ok5eanaS9W5eooA4xN0A/GPHdLGOZGzArgf5Cg==",
+ "version": "5.85.5",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.85.5.tgz",
+ "integrity": "sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/query-devtools": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.24.0.tgz",
- "integrity": "sha512-pThim455t69zrZaQKa7IRkEIK8UBTS+gHVAdNfhO72Xh4rWpMc63ovRje5/n6iw63+d6QiJzVadsJVdPoodSeQ==",
+ "version": "5.84.0",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.84.0.tgz",
+ "integrity": "sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/react-query": {
- "version": "5.24.1",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.24.1.tgz",
- "integrity": "sha512-4+09JEdO4d6+Gc8Y/g2M/MuxDK5IY0QV8+2wL2304wPKJgJ54cBbULd3nciJ5uvh/as8rrxx6s0mtIwpRuGd1g==",
+ "version": "5.85.5",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.85.5.tgz",
+ "integrity": "sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==",
+ "license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.24.1"
+ "@tanstack/query-core": "5.85.5"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
- "react": "^18.0.0"
+ "react": "^18 || ^19"
}
},
"node_modules/@tanstack/react-query-devtools": {
- "version": "5.24.1",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.24.1.tgz",
- "integrity": "sha512-qa4SEugN+EF8JJXcpsM9Lu05HfUv5cvHvLuB0uw/81eJZyNHFdtHFBi5RLCgpBrOyVMDfH8UQ3VBMqXzFKV68A==",
+ "version": "5.85.5",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.85.5.tgz",
+ "integrity": "sha512-6Ol6Q+LxrCZlQR4NoI5181r+ptTwnlPG2t7H9Sp3klxTBhYGunONqcgBn2YKRPsaKiYM8pItpKMdMXMEINntMQ==",
+ "license": "MIT",
"dependencies": {
- "@tanstack/query-devtools": "5.24.0"
+ "@tanstack/query-devtools": "5.84.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
- "@tanstack/react-query": "^5.24.1",
- "react": "^18.0.0"
+ "@tanstack/react-query": "^5.85.5",
+ "react": "^18 || ^19"
}
},
"node_modules/@tanstack/react-virtual": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.2.0.tgz",
- "integrity": "sha512-OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg==",
+ "version": "3.13.12",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz",
+ "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==",
+ "license": "MIT",
"dependencies": {
- "@tanstack/virtual-core": "3.2.0"
+ "@tanstack/virtual-core": "3.13.12"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/@tanstack/virtual-core": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.2.0.tgz",
- "integrity": "sha512-P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==",
+ "version": "3.13.12",
+ "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz",
+ "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
@@ -4596,10 +5420,11 @@
"license": "MIT"
},
"node_modules/@types/file-saver": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz",
- "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==",
- "dev": true
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz",
+ "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/hoist-non-react-statics": {
"version": "3.3.6",
@@ -4621,7 +5446,8 @@
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/json5": {
"version": "0.0.29",
@@ -4630,15 +5456,20 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "18.11.18",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
- "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
+ "version": "18.19.123",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.123.tgz",
+ "integrity": "sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
"node_modules/@types/prismjs": {
- "version": "1.26.0",
- "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.0.tgz",
- "integrity": "sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==",
- "dev": true
+ "version": "1.26.5",
+ "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz",
+ "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/prop-types": {
"version": "15.7.14",
@@ -4646,29 +5477,31 @@
"integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ=="
},
"node_modules/@types/react": {
- "version": "18.2.39",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.39.tgz",
- "integrity": "sha512-Oiw+ppED6IremMInLV4HXGbfbG6GyziY3kqAwJYOR0PNbkYDmLWQA3a95EhdSmamsvbkJN96ZNN+YD+fGjzSBA==",
+ "version": "18.3.24",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.24.tgz",
+ "integrity": "sha512-0dLEBsA1kI3OezMBF8nSsb7Nk19ZnsyE1LLhB8r27KbgU5H4pvuqZLdtE+aUkJVoXgTVuA+iLIwmZ0TuK4tx6A==",
+ "license": "MIT",
"dependencies": {
"@types/prop-types": "*",
- "@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
- "version": "18.2.17",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz",
- "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==",
+ "version": "18.3.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
"dev": true,
- "dependencies": {
- "@types/react": "*"
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
}
},
"node_modules/@types/react-google-recaptcha": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/@types/react-google-recaptcha/-/react-google-recaptcha-2.1.8.tgz",
- "integrity": "sha512-nYI3ZDoteZ0g4FYusyKWqz7AZqRdu70R3wDkosCcN0peb2WLn57i0Alm4IPiCRIx59yTUVPTiOELZH08gV1wXA==",
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@types/react-google-recaptcha/-/react-google-recaptcha-2.1.9.tgz",
+ "integrity": "sha512-nT31LrBDuoSZJN4QuwtQSF3O89FVHC4jLhM+NtKEmVF5R1e8OY0Jo4//x2Yapn2aNHguwgX5doAq8Zo+Ehd0ug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/react": "*"
}
@@ -4686,24 +5519,21 @@
"license": "MIT"
},
"node_modules/@types/sanitize-html": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.9.0.tgz",
- "integrity": "sha512-4fP/kEcKNj2u39IzrxWYuf/FnCCwwQCpif6wwY6ROUS1EPRIfWJjGkY3HIowY1EX/VbX5e86yq8AAE7UPMgATg==",
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.16.0.tgz",
+ "integrity": "sha512-l6rX1MUXje5ztPT0cAFtUayXF06DqPhRyfVXareEN5gGCFaP/iwsxIyKODr9XDhfxPpN6vXUFNfo5kZMXCxBtw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"htmlparser2": "^8.0.0"
}
},
- "node_modules/@types/scheduler": {
- "version": "0.23.0",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz",
- "integrity": "sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw=="
- },
"node_modules/@types/semver": {
- "version": "7.5.8",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
- "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
- "dev": true
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
+ "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/trusted-types": {
"version": "2.0.7",
@@ -4712,24 +5542,27 @@
"dev": true
},
"node_modules/@types/ua-parser-js": {
- "version": "0.7.36",
- "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz",
- "integrity": "sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==",
- "dev": true
+ "version": "0.7.39",
+ "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.39.tgz",
+ "integrity": "sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz",
- "integrity": "sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
+ "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.46.1",
- "@typescript-eslint/type-utils": "5.46.1",
- "@typescript-eslint/utils": "5.46.1",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/type-utils": "5.62.0",
+ "@typescript-eslint/utils": "5.62.0",
"debug": "^4.3.4",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
"natural-compare-lite": "^1.4.0",
- "regexpp": "^3.2.0",
"semver": "^7.3.7",
"tsutils": "^3.21.0"
},
@@ -4751,14 +5584,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.1.tgz",
- "integrity": "sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
+ "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.46.1",
- "@typescript-eslint/types": "5.46.1",
- "@typescript-eslint/typescript-estree": "5.46.1",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
"debug": "^4.3.4"
},
"engines": {
@@ -4778,13 +5612,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz",
- "integrity": "sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+ "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.46.1",
- "@typescript-eslint/visitor-keys": "5.46.1"
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -4795,13 +5630,14 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz",
- "integrity": "sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
+ "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.46.1",
- "@typescript-eslint/utils": "5.46.1",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "@typescript-eslint/utils": "5.62.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -4822,10 +5658,11 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.1.tgz",
- "integrity": "sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+ "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -4835,13 +5672,14 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz",
- "integrity": "sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+ "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/types": "5.46.1",
- "@typescript-eslint/visitor-keys": "5.46.1",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -4862,18 +5700,19 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.1.tgz",
- "integrity": "sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+ "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.46.1",
- "@typescript-eslint/types": "5.46.1",
- "@typescript-eslint/typescript-estree": "5.46.1",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
"eslint-scope": "^5.1.1",
- "eslint-utils": "^3.0.0",
"semver": "^7.3.7"
},
"engines": {
@@ -4888,12 +5727,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.46.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz",
- "integrity": "sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==",
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+ "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.46.1",
+ "@typescript-eslint/types": "5.62.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -4904,6 +5744,13 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@vanilla-extract/babel-plugin-debug-ids": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.2.0.tgz",
@@ -4913,23 +5760,31 @@
}
},
"node_modules/@vanilla-extract/css": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.9.3.tgz",
- "integrity": "sha512-vitcD8usEOTWDLAnbtnZ46YbHADAp3Es+3xyHsMDMZOEWk03FhD+PbR58kdwtGpr258+hMryCYtQPeFh5lWFbA==",
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.17.4.tgz",
+ "integrity": "sha512-m3g9nQDWPtL+sTFdtCGRMI1Vrp86Ay4PBYq1Bo7Bnchj5ElNtAJpOqD+zg+apthVA4fB7oVpMWNjwpa6ElDWFQ==",
+ "license": "MIT",
"dependencies": {
"@emotion/hash": "^0.9.0",
- "@vanilla-extract/private": "^1.0.3",
- "ahocorasick": "1.0.2",
- "chalk": "^4.1.1",
- "css-what": "^5.0.1",
+ "@vanilla-extract/private": "^1.0.9",
+ "css-what": "^6.1.0",
"cssesc": "^3.0.0",
"csstype": "^3.0.7",
- "deep-object-diff": "^1.1.0",
+ "dedent": "^1.5.3",
+ "deep-object-diff": "^1.1.9",
"deepmerge": "^4.2.2",
+ "lru-cache": "^10.4.3",
"media-query-parser": "^2.0.2",
- "outdent": "^0.8.0"
+ "modern-ahocorasick": "^1.0.0",
+ "picocolors": "^1.0.0"
}
},
+ "node_modules/@vanilla-extract/css/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
"node_modules/@vanilla-extract/integration": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-6.5.0.tgz",
@@ -4950,93 +5805,57 @@
"vite-node": "^1.2.0"
}
},
- "node_modules/@vanilla-extract/integration/node_modules/@vanilla-extract/css": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.17.0.tgz",
- "integrity": "sha512-W6FqVFDD+C71ZlKsuj0MxOXSvHb1tvQ9h/+79aYfi097wLsALrnnBzd0by8C///iurrpQ3S+SH74lXd7Lr9MvA==",
- "dependencies": {
- "@emotion/hash": "^0.9.0",
- "@vanilla-extract/private": "^1.0.6",
- "css-what": "^6.1.0",
- "cssesc": "^3.0.0",
- "csstype": "^3.0.7",
- "dedent": "^1.5.3",
- "deep-object-diff": "^1.1.9",
- "deepmerge": "^4.2.2",
- "lru-cache": "^10.4.3",
- "media-query-parser": "^2.0.2",
- "modern-ahocorasick": "^1.0.0",
- "picocolors": "^1.0.0"
- }
- },
- "node_modules/@vanilla-extract/integration/node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/@vanilla-extract/integration/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
- },
"node_modules/@vanilla-extract/private": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.6.tgz",
- "integrity": "sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw=="
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.9.tgz",
+ "integrity": "sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==",
+ "license": "MIT"
},
"node_modules/@vanilla-extract/recipes": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.3.0.tgz",
- "integrity": "sha512-7wXrgfq1oldKdBfCKen4XmSlDmQR+4o0CQ3WnnLfhQaEtI65xJ774yyQF6dD2CC+hHdW2LFKVXgH5NZRbMQ8Sg==",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.5.7.tgz",
+ "integrity": "sha512-Fvr+htdyb6LVUu+PhH61UFPhwkjgDEk8L4Zq9oIdte42sntpKrgFy90MyTRtGwjVALmrJ0pwRUVr8UoByYeW8A==",
+ "license": "MIT",
"peerDependencies": {
"@vanilla-extract/css": "^1.0.0"
}
},
"node_modules/@vanilla-extract/vite-plugin": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/@vanilla-extract/vite-plugin/-/vite-plugin-3.7.1.tgz",
- "integrity": "sha512-KFeTSEJKtJDfQhUJh4jGmrJDLCU59DSA3YKZSdys4jTOLZ1ZFsKzDP2pnFwH/24Oc2ebK+EV5x3OPlWxvRYthg==",
+ "version": "3.9.5",
+ "resolved": "https://registry.npmjs.org/@vanilla-extract/vite-plugin/-/vite-plugin-3.9.5.tgz",
+ "integrity": "sha512-CWI/CtrVW6i3HKccI6T7uGQkTJ8bd8Xl2UMBg3Pkr7dwWMmavXTeucV0I9KSbmXaYXSbEj+Q8c9y0xAZwtmTig==",
+ "license": "MIT",
"dependencies": {
- "@vanilla-extract/integration": "^6.0.2",
+ "@vanilla-extract/integration": "^6.3.0",
"outdent": "^0.8.0",
"postcss": "^8.3.6",
- "postcss-load-config": "^3.1.0"
+ "postcss-load-config": "^4.0.1"
},
"peerDependencies": {
- "vite": "^2.2.3 || ^3.0.0 || ^4.0.3"
+ "vite": "^2.2.3 || ^3.0.0 || ^4.0.3 || ^5.0.0"
}
},
"node_modules/@vitejs/plugin-react": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.0.tgz",
- "integrity": "sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/core": "^7.23.3",
- "@babel/plugin-transform-react-jsx-self": "^7.23.3",
- "@babel/plugin-transform-react-jsx-source": "^7.23.3",
- "@types/babel__core": "^7.20.4",
- "react-refresh": "^0.14.0"
+ "@babel/core": "^7.28.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.27",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"peerDependencies": {
- "vite": "^4.2.0 || ^5.0.0"
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
}
},
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "optional": true
- },
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
@@ -5053,32 +5872,17 @@
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "optional": true,
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/ahocorasick": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ahocorasick/-/ahocorasick-1.0.2.tgz",
- "integrity": "sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA=="
- },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -5143,43 +5947,21 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
- "optional": true
- },
- "node_modules/are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
- "deprecated": "This package is no longer supported.",
- "optional": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
- "dependencies": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
- },
+ "license": "Apache-2.0",
"engines": {
- "node": ">=6.0"
+ "node": ">= 0.4"
}
},
"node_modules/array-buffer-byte-length": {
@@ -5199,17 +5981,20 @@
}
},
"node_modules/array-includes": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
+ "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
+ "es-abstract": "^1.24.0",
+ "es-object-atoms": "^1.1.1",
+ "get-intrinsic": "^1.3.0",
+ "is-string": "^1.1.1",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -5223,15 +6008,17 @@
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/array.prototype.findlastindex": {
+ "node_modules/array.prototype.findlast": {
"version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -5247,6 +6034,28 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.9",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "es-shim-unscopables": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/array.prototype.flat": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
@@ -5326,10 +6135,11 @@
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
},
"node_modules/ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==",
- "dev": true
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/async": {
"version": "3.2.6",
@@ -5384,10 +6194,14 @@
}
},
"node_modules/axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
"node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.4.12",
@@ -5447,7 +6261,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "devOptional": true
+ "dev": true
},
"node_modules/base-x": {
"version": "5.0.1",
@@ -5493,15 +6307,17 @@
"integrity": "sha512-PJvH288AWQhKs2v9zyfYdPzlPqf5bXbGMmhmUIY9x4dAUGIWgomO771oBQNwJnMQSnUIXhKu6sgzpBRXTlvb8Q=="
},
"node_modules/blurhash": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.4.tgz",
- "integrity": "sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A=="
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.5.tgz",
+ "integrity": "sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==",
+ "license": "MIT"
},
"node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "devOptional": true,
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -5621,10 +6437,11 @@
}
},
"node_modules/call-bind-apply-helpers": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
- "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
@@ -5634,13 +6451,14 @@
}
},
"node_modules/call-bound": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
- "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "get-intrinsic": "^1.2.6"
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
@@ -5654,6 +6472,7 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -5677,25 +6496,11 @@
}
]
},
- "node_modules/canvas": {
- "version": "2.11.2",
- "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz",
- "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==",
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.0",
- "nan": "^2.17.0",
- "simple-get": "^3.0.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -5743,15 +6548,6 @@
"node": ">= 6"
}
},
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "optional": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/chroma-js": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-3.1.2.tgz",
@@ -5759,9 +6555,10 @@
"license": "(BSD-3-Clause AND Apache-2.0)"
},
"node_modules/classnames": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
- "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
+ "license": "MIT"
},
"node_modules/cliui": {
"version": "8.0.1",
@@ -5780,6 +6577,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -5800,15 +6598,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "optional": true,
- "bin": {
- "color-support": "bin.js"
- }
- },
"node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -5839,7 +6628,7 @@
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "devOptional": true
+ "dev": true
},
"node_modules/confbox": {
"version": "0.1.8",
@@ -5852,12 +6641,6 @@
"integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
"dev": true
},
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "optional": true
- },
"node_modules/content-type": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
@@ -5885,17 +6668,6 @@
"url": "https://opencollective.com/core-js"
}
},
- "node_modules/core-js-pure": {
- "version": "3.40.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz",
- "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==",
- "dev": true,
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
"node_modules/cross-fetch": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz",
@@ -5928,9 +6700,10 @@
}
},
"node_modules/css-what": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
- "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
+ "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
+ "license": "BSD-2-Clause",
"engines": {
"node": ">= 6"
},
@@ -6020,9 +6793,10 @@
}
},
"node_modules/dayjs": {
- "version": "1.11.10",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
- "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+ "version": "1.11.14",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.14.tgz",
+ "integrity": "sha512-E8fIdSxUlyqSA8XYGnNa3IkIzxtEmFjI+JU/6ic0P1zmSqyL6HyG5jHnpPjRguDNiaHLpfvHKWFiohNsJLqcJQ==",
+ "license": "MIT"
},
"node_modules/debug": {
"version": "4.4.0",
@@ -6041,21 +6815,10 @@
}
},
"node_modules/decimal.js": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
- "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
- },
- "node_modules/decompress-response": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
- "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
- "optional": true,
- "dependencies": {
- "mimic-response": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
+ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
+ "license": "MIT"
},
"node_modules/dedent": {
"version": "1.5.3",
@@ -6123,19 +6886,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "optional": true
- },
"node_modules/detect-libc": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
- "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "dev": true,
+ "license": "Apache-2.0",
"optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=0.10"
}
},
"node_modules/dir-glob": {
@@ -6143,6 +6905,7 @@
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-type": "^4.0.0"
},
@@ -6298,27 +7061,28 @@
}
},
"node_modules/es-abstract": {
- "version": "1.23.9",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
- "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
+ "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-buffer-byte-length": "^1.0.2",
"arraybuffer.prototype.slice": "^1.0.4",
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"data-view-buffer": "^1.0.2",
"data-view-byte-length": "^1.0.2",
"data-view-byte-offset": "^1.0.1",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
+ "es-object-atoms": "^1.1.1",
"es-set-tostringtag": "^2.1.0",
"es-to-primitive": "^1.3.0",
"function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.0",
+ "get-intrinsic": "^1.3.0",
+ "get-proto": "^1.0.1",
"get-symbol-description": "^1.1.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
@@ -6330,21 +7094,24 @@
"is-array-buffer": "^3.0.5",
"is-callable": "^1.2.7",
"is-data-view": "^1.0.2",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.2.1",
+ "is-set": "^2.0.3",
"is-shared-array-buffer": "^1.0.4",
"is-string": "^1.1.1",
"is-typed-array": "^1.1.15",
- "is-weakref": "^1.1.0",
+ "is-weakref": "^1.1.1",
"math-intrinsics": "^1.1.0",
- "object-inspect": "^1.13.3",
+ "object-inspect": "^1.13.4",
"object-keys": "^1.1.1",
"object.assign": "^4.1.7",
"own-keys": "^1.0.1",
- "regexp.prototype.flags": "^1.5.3",
+ "regexp.prototype.flags": "^1.5.4",
"safe-array-concat": "^1.1.3",
"safe-push-apply": "^1.0.0",
"safe-regex-test": "^1.1.0",
"set-proto": "^1.0.0",
+ "stop-iteration-iterator": "^1.1.0",
"string.prototype.trim": "^1.2.10",
"string.prototype.trimend": "^1.0.9",
"string.prototype.trimstart": "^1.0.8",
@@ -6353,7 +7120,7 @@
"typed-array-byte-offset": "^1.0.4",
"typed-array-length": "^1.0.7",
"unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.18"
+ "which-typed-array": "^1.1.19"
},
"engines": {
"node": ">= 0.4"
@@ -6380,6 +7147,34 @@
"node": ">= 0.4"
}
},
+ "node_modules/es-iterator-helpers": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
+ "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.6",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.6",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "internal-slot": "^1.1.0",
+ "iterator.prototype": "^1.1.4",
+ "safe-array-concat": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
@@ -6408,12 +7203,16 @@
}
},
"node_modules/es-shim-unscopables": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "hasown": "^2.0.0"
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/es-to-primitive": {
@@ -6490,50 +7289,50 @@
}
},
"node_modules/eslint": {
- "version": "8.29.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz",
- "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==",
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint/eslintrc": "^1.3.3",
- "@humanwhocodes/config-array": "^0.11.6",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
- "globals": "^13.15.0",
- "grapheme-splitter": "^1.0.4",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"bin": {
@@ -6596,10 +7395,11 @@
}
},
"node_modules/eslint-config-prettier": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
- "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "version": "8.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz",
+ "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==",
"dev": true,
+ "license": "MIT",
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -6628,10 +7428,11 @@
}
},
"node_modules/eslint-module-utils": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
- "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
+ "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^3.2.7"
},
@@ -6649,39 +7450,43 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "version": "2.32.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
+ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
+ "@rtsao/scc": "^1.1.0",
+ "array-includes": "^3.1.9",
+ "array.prototype.findlastindex": "^1.2.6",
+ "array.prototype.flat": "^1.3.3",
+ "array.prototype.flatmap": "^1.3.3",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
+ "eslint-module-utils": "^2.12.1",
+ "hasown": "^2.0.2",
+ "is-core-module": "^2.16.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
+ "object.fromentries": "^2.0.8",
+ "object.groupby": "^1.0.3",
+ "object.values": "^1.2.1",
"semver": "^6.3.1",
+ "string.prototype.trimend": "^1.0.9",
"tsconfig-paths": "^3.15.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
}
},
"node_modules/eslint-plugin-import/node_modules/debug": {
@@ -6715,75 +7520,74 @@
}
},
"node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
- "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.18.9",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.5",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^4.4.3",
- "axobject-query": "^2.2.0",
+ "aria-query": "^5.3.2",
+ "array-includes": "^3.1.8",
+ "array.prototype.flatmap": "^1.3.2",
+ "ast-types-flow": "^0.0.8",
+ "axe-core": "^4.10.0",
+ "axobject-query": "^4.1.0",
"damerau-levenshtein": "^1.0.8",
"emoji-regex": "^9.2.2",
- "has": "^1.0.3",
- "jsx-ast-utils": "^3.3.2",
- "language-tags": "^1.0.5",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^3.3.5",
+ "language-tags": "^1.0.9",
"minimatch": "^3.1.2",
- "semver": "^6.3.0"
+ "object.fromentries": "^2.0.8",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.includes": "^2.0.1"
},
"engines": {
"node": ">=4.0"
},
"peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.31.11",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz",
- "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==",
+ "version": "7.37.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
+ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.3",
+ "array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.2.1",
"estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
+ "object.entries": "^1.1.9",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.1",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.3",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.8"
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.12",
+ "string.prototype.repeat": "^1.0.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
}
},
"node_modules/eslint-plugin-react-hooks": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
- "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -6834,6 +7638,7 @@
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -6847,42 +7652,17 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
},
- "node_modules/eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
- }
- },
- "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/eslint-visitor-keys": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -6938,6 +7718,7 @@
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -7163,10 +7944,11 @@
}
},
"node_modules/filelist/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -7231,9 +8013,10 @@
"dev": true
},
"node_modules/flux": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz",
- "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz",
+ "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==",
+ "license": "BSD-3-Clause",
"dependencies": {
"fbemitter": "^3.0.0",
"fbjs": "^3.0.1"
@@ -7251,12 +8034,13 @@
}
},
"node_modules/focus-trap-react": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/focus-trap-react/-/focus-trap-react-10.0.2.tgz",
- "integrity": "sha512-MnN2cmdgpY7NY74ePOio4kbO5A3ILhrg1g5OGbgIQjcWEv1hhcbh6e98K0a+df88hNbE+4i9r8ji9aQnHou6GA==",
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/focus-trap-react/-/focus-trap-react-10.3.1.tgz",
+ "integrity": "sha512-PN4Ya9xf9nyj/Nd9VxBNMuD7IrlRbmaG6POAQ8VLqgtc6IY/Ln1tYakow+UIq4fihYYYFM70/2oyidE6bbiPgw==",
+ "license": "MIT",
"dependencies": {
- "focus-trap": "^7.2.0",
- "tabbable": "^6.0.1"
+ "focus-trap": "^7.6.1",
+ "tabbable": "^6.2.0"
},
"peerDependencies": {
"prop-types": "^15.8.1",
@@ -7278,12 +8062,19 @@
}
},
"node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-callable": "^1.1.3"
+ "is-callable": "^1.2.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/formik": {
@@ -7332,41 +8123,11 @@
"node": ">=14.14"
}
},
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "optional": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "optional": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fs-minipass/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "optional": true
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "devOptional": true
+ "dev": true
},
"node_modules/fsevents": {
"version": "2.3.3",
@@ -7419,27 +8180,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "deprecated": "This package is no longer supported.",
- "optional": true,
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -7457,17 +8197,18 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
- "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
+ "call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
+ "es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
- "get-proto": "^1.0.0",
+ "get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
@@ -7521,7 +8262,7 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"deprecated": "Glob versions prior to v9 are no longer supported",
- "devOptional": true,
+ "dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -7553,6 +8294,7 @@
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
"engines": {
"node": ">=4"
}
@@ -7578,6 +8320,7 @@
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -7611,20 +8354,12 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true
},
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true
- },
- "node_modules/has": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
- "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true,
- "engines": {
- "node": ">= 0.4.0"
- }
+ "license": "MIT"
},
"node_modules/has-bigints": {
"version": "1.1.0",
@@ -7642,6 +8377,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -7700,12 +8436,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "optional": true
- },
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
@@ -7727,9 +8457,10 @@
}
},
"node_modules/html-dom-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-4.0.0.tgz",
- "integrity": "sha512-TUa3wIwi80f5NF8CVWzkopBVqVAtlawUzJoLwVLHns0XSJGynss4jiY0mTWpiDOsuyw+afP+ujjMgRh9CoZcXw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-4.0.1.tgz",
+ "integrity": "sha512-YADpM4AxP/W4Kyea3Aonmwz64pwlijbXpKHaNwd0ipK/OzCOamI0a24L6nh60uwHmcpD7wC3xvL9unWCPk7tiQ==",
+ "license": "MIT",
"dependencies": {
"domhandler": "5.0.3",
"htmlparser2": "9.0.0"
@@ -7762,19 +8493,49 @@
}
},
"node_modules/html-react-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-4.2.0.tgz",
- "integrity": "sha512-gzU55AS+FI6qD7XaKe5BLuLFM2Xw0/LodfMWZlxV9uOHe7LCD5Lukx/EgYuBI3c0kLu0XlgFXnSzO0qUUn3Vrg==",
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-4.2.10.tgz",
+ "integrity": "sha512-JyKZVQ+kQ8PdycISwkuLbEEvV/k4hWhU6cb6TT7yGaYwdqA7cPt4VRYXkCZcix2vlQtgDBSMJUmPI2jpNjPGvg==",
+ "license": "MIT",
"dependencies": {
"domhandler": "5.0.3",
- "html-dom-parser": "4.0.0",
- "react-property": "2.0.0",
- "style-to-js": "1.1.3"
+ "html-dom-parser": "5.0.3",
+ "react-property": "2.0.2",
+ "style-to-js": "1.1.8"
},
"peerDependencies": {
"react": "0.14 || 15 || 16 || 17 || 18"
}
},
+ "node_modules/html-react-parser/node_modules/html-dom-parser": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.0.3.tgz",
+ "integrity": "sha512-slsc6ipw88OUZjAayRs5NTmfOQCwcUa3hNyk6AdsbQxY09H5Lr1Y3CZ4ZlconMKql3Ga6sWg3HMoUzo7KSItaQ==",
+ "license": "MIT",
+ "dependencies": {
+ "domhandler": "5.0.3",
+ "htmlparser2": "9.0.0"
+ }
+ },
+ "node_modules/html-react-parser/node_modules/htmlparser2": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.0.0.tgz",
+ "integrity": "sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.1.0",
+ "entities": "^4.5.0"
+ }
+ },
"node_modules/htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
@@ -7793,23 +8554,10 @@
"entities": "^4.4.0"
}
},
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "optional": true,
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/i18next": {
- "version": "23.12.2",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.12.2.tgz",
- "integrity": "sha512-XIeh5V+bi8SJSWGL3jqbTEBW5oD6rbP5L+E7dVQh1MNTxxYef0x15rhJVcRb7oiuq4jLtgy2SD8eFlf6P2cmqg==",
+ "version": "23.16.8",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.8.tgz",
+ "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==",
"funding": [
{
"type": "individual",
@@ -7824,22 +8572,25 @@
"url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
}
],
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.23.2"
}
},
"node_modules/i18next-browser-languagedetector": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.0.tgz",
- "integrity": "sha512-zhXdJXTTCoG39QsrOCiOabnWj2jecouOqbchu3EfhtSHxIB5Uugnm9JaizenOy39h7ne3+fLikIjeW88+rgszw==",
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.2.0.tgz",
+ "integrity": "sha512-P+3zEKLnOF0qmiesW383vsLdtQVyKtCNA9cjSoKCppTKPQVfKd2W8hbVo5ZhNJKDqeM7BOcvNoKJOjpHh4Js9g==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.23.2"
}
},
"node_modules/i18next-http-backend": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.5.2.tgz",
- "integrity": "sha512-+K8HbDfrvc1/2X8jpb7RLhI9ZxBDpx3xogYkQwGKlWAUXLSEGXzgdt3EcUjLlBCdMwdQY+K+EUF6oh8oB6rwHw==",
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.7.3.tgz",
+ "integrity": "sha512-FgZxrXdRA5u44xfYsJlEBL4/KH3f2IluBpgV/7riW0YW2VEyM8FzVt2XHAOi6id0Ppj7vZvCZVpp5LrGXnc8Ig==",
+ "license": "MIT",
"dependencies": {
"cross-fetch": "4.0.0"
}
@@ -7888,25 +8639,28 @@
}
},
"node_modules/immer": {
- "version": "9.0.16",
- "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz",
- "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==",
+ "version": "9.0.21",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
+ "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/immer"
}
},
"node_modules/immutable": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
- "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==",
- "dev": true
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz",
+ "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -7932,7 +8686,7 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "devOptional": true,
+ "dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -7942,12 +8696,13 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "devOptional": true
+ "dev": true
},
"node_modules/inline-style-parser": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
- "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz",
+ "integrity": "sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==",
+ "license": "MIT"
},
"node_modules/internal-slot": {
"version": "1.1.0",
@@ -7964,14 +8719,15 @@
}
},
"node_modules/intl-messageformat": {
- "version": "10.7.12",
- "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.12.tgz",
- "integrity": "sha512-4HBsPDJ61jZwNikauvm0mcLvs1AfCBbihiqOX2AGs1MX7SA1H0SNKJRSWxpZpToGoNzvoYLsJJ2pURkbEDg+Dw==",
+ "version": "10.7.16",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.16.tgz",
+ "integrity": "sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==",
+ "license": "BSD-3-Clause",
"dependencies": {
- "@formatjs/ecma402-abstract": "2.3.2",
- "@formatjs/fast-memoize": "2.2.6",
- "@formatjs/icu-messageformat-parser": "2.10.0",
- "tslib": "2"
+ "@formatjs/ecma402-abstract": "2.3.4",
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/icu-messageformat-parser": "2.11.2",
+ "tslib": "^2.8.0"
}
},
"node_modules/is-array-buffer": {
@@ -8198,6 +8954,19 @@
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
"dev": true
},
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -8376,12 +9145,13 @@
}
},
"node_modules/is-weakref": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz",
- "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2"
+ "call-bound": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -8418,6 +9188,24 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
+ "node_modules/iterator.prototype": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
+ "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "get-proto": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "set-function-name": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/jake": {
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
@@ -8442,17 +9230,26 @@
"integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg=="
},
"node_modules/jotai": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/jotai/-/jotai-2.6.0.tgz",
- "integrity": "sha512-Vt6hsc04Km4j03l+Ax+Sc+FVft5cRJhqgxt6GTz6GM2eM3DyX3CdBdzcG0z2FrlZToL1/0OAkqDghIyARWnSuQ==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/jotai/-/jotai-2.13.1.tgz",
+ "integrity": "sha512-cRsw6kFeGC9Z/D3egVKrTXRweycZ4z/k7i2MrfCzPYsL9SIWcPXTyqv258/+Ay8VUEcihNiE/coBLE6Kic6b8A==",
+ "license": "MIT",
"engines": {
"node": ">=12.20.0"
},
"peerDependencies": {
+ "@babel/core": ">=7.0.0",
+ "@babel/template": ">=7.0.0",
"@types/react": ">=17.0.0",
"react": ">=17.0.0"
},
"peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@babel/template": {
+ "optional": true
+ },
"@types/react": {
"optional": true
},
@@ -8461,16 +9258,6 @@
}
}
},
- "node_modules/js-sdsl": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz",
- "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/js-sdsl"
- }
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -8481,6 +9268,7 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -8515,7 +9303,8 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -8629,11 +9418,15 @@
}
},
"node_modules/lilconfig": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
- "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
}
},
"node_modules/line-height": {
@@ -8648,18 +9441,20 @@
}
},
"node_modules/linkify-react": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/linkify-react/-/linkify-react-4.1.3.tgz",
- "integrity": "sha512-rhI3zM/fxn5BfRPHfi4r9N7zgac4vOIxub1wHIWXLA5ENTMs+BGaIaFO1D1PhmxgwhIKmJz3H7uCP0Dg5JwSlA==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/linkify-react/-/linkify-react-4.3.2.tgz",
+ "integrity": "sha512-mi744h1hf+WDsr+paJgSBBgYNLMWNSHyM9V9LVUo03RidNGdw1VpI7Twnt+K3pEh3nIzB4xiiAgZxpd61ItKpQ==",
+ "license": "MIT",
"peerDependencies": {
"linkifyjs": "^4.0.0",
"react": ">= 15.0.0"
}
},
"node_modules/linkifyjs": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.3.tgz",
- "integrity": "sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg=="
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz",
+ "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==",
+ "license": "MIT"
},
"node_modules/locate-path": {
"version": "6.0.0",
@@ -8736,39 +9531,13 @@
}
},
"node_modules/magic-string": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
- "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "version": "0.30.18",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz",
+ "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.13"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "optional": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "optional": true,
- "bin": {
- "semver": "bin/semver.js"
+ "@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"node_modules/math-intrinsics": {
@@ -8787,14 +9556,13 @@
"license": "Apache-2.0"
},
"node_modules/matrix-js-sdk": {
- "version": "37.5.0",
- "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-37.5.0.tgz",
- "integrity": "sha512-5tyuAi5hnKud1UkVq8Z2/3c22hWGELBZzErJPZkE6Hju2uGUfGtrIx6uj6puv0ZjvsUU3X6Qgm8vdReKO1PGig==",
+ "version": "37.13.0",
+ "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-37.13.0.tgz",
+ "integrity": "sha512-zlASOqgPNcE4o2C24HDvEyOwBjIo1U5xo9kWgr8Kvk6jkA22zGsMKv2Y4EoCZXPxyYdQMPnOy+cBJbUtZIz6JQ==",
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5",
- "@matrix-org/matrix-sdk-crypto-wasm": "^14.0.1",
- "@matrix-org/olm": "3.2.15",
+ "@matrix-org/matrix-sdk-crypto-wasm": "^15.1.0",
"another-json": "^0.2.0",
"bs58": "^6.0.0",
"content-type": "^1.0.4",
@@ -8809,7 +9577,7 @@
"uuid": "11"
},
"engines": {
- "node": ">=20.0.0"
+ "node": ">=22.0.0"
}
},
"node_modules/matrix-js-sdk/node_modules/uuid": {
@@ -8888,23 +9656,11 @@
"millify": "bin/millify"
}
},
- "node_modules/mimic-response": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
- "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
- "optional": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "devOptional": true,
+ "dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -8921,58 +9677,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "optional": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "optional": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "optional": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "optional": true
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "optional": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/mlly": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
@@ -8994,12 +9698,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
- "node_modules/nan": {
- "version": "2.22.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz",
- "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==",
- "optional": true
- },
"node_modules/nanoid": {
"version": "3.3.8",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
@@ -9029,6 +9727,14 @@
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
"dev": true
},
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
@@ -9053,21 +9759,6 @@
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="
},
- "node_modules/nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "optional": true,
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -9077,19 +9768,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
- "deprecated": "This package is no longer supported.",
- "optional": true,
- "dependencies": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
- }
- },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -9099,10 +9777,11 @@
}
},
"node_modules/object-inspect": {
- "version": "1.13.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
- "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -9140,14 +9819,16 @@
}
},
"node_modules/object.entries": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
- "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
+ "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
+ "es-object-atoms": "^1.1.1"
},
"engines": {
"node": ">= 0.4"
@@ -9185,23 +9866,6 @@
"node": ">= 0.4"
}
},
- "node_modules/object.hasown": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz",
- "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==",
- "dev": true,
- "dependencies": {
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/object.values": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
@@ -9236,7 +9900,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "devOptional": true,
+ "dev": true,
"dependencies": {
"wrappy": "1"
}
@@ -9326,6 +9990,7 @@
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -9350,7 +10015,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "devOptional": true,
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -9375,34 +10040,26 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/path2d": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/path2d/-/path2d-0.2.2.tgz",
- "integrity": "sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ==",
- "optional": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/pathe": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz",
"integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w=="
},
"node_modules/pdfjs-dist": {
- "version": "4.2.67",
- "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.2.67.tgz",
- "integrity": "sha512-rJmuBDFpD7cqC8WIkQUEClyB4UAH05K4AsyewToMTp2gSy3Rrx8c1ydAVqlJlGv3yZSOrhEERQU/4ScQQFlLHA==",
+ "version": "4.10.38",
+ "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.10.38.tgz",
+ "integrity": "sha512-/Y3fcFrXEAsMjJXeL9J8+ZG9U01LbuWaYypvDW2ycW1jL269L3js3DVBjDJ0Up9Np1uqDXsDrRihHANhZOlwdQ==",
+ "license": "Apache-2.0",
"engines": {
- "node": ">=18"
+ "node": ">=20"
},
"optionalDependencies": {
- "canvas": "^2.11.2",
- "path2d": "^0.2.0"
+ "@napi-rs/canvas": "^0.1.65"
}
},
"node_modules/picocolors": {
@@ -9469,19 +10126,26 @@
}
},
"node_modules/postcss-load-config": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
- "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "lilconfig": "^2.0.5",
- "yaml": "^1.10.2"
+ "lilconfig": "^3.0.0",
+ "yaml": "^2.3.4"
},
"engines": {
- "node": ">= 10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
+ "node": ">= 14"
},
"peerDependencies": {
"postcss": ">=8.0.9",
@@ -9506,10 +10170,11 @@
}
},
"node_modules/prettier": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
- "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"dev": true,
+ "license": "MIT",
"bin": {
"prettier": "bin-prettier.js"
},
@@ -9603,9 +10268,10 @@
}
},
"node_modules/react": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
- "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -9614,50 +10280,57 @@
}
},
"node_modules/react-aria": {
- "version": "3.29.1",
- "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.29.1.tgz",
- "integrity": "sha512-dDoaTh5fCaD3kO0kv49pqUUOsXRGuqFX7owQaly/RhWkBw/dlIYkHRVdOatllI/v4h1/Ne40QOXl15aAISozlA==",
+ "version": "3.43.0",
+ "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.43.0.tgz",
+ "integrity": "sha512-5ju/DpKmuhq/0fH5h5F5Tdo41QA5KFtfLu4aj3mVZelmmhdbzBAXrrHVN28UllwgMZK/eNfrWc7H43iRJmZPAw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@react-aria/breadcrumbs": "^3.5.7",
- "@react-aria/button": "^3.8.4",
- "@react-aria/calendar": "^3.5.2",
- "@react-aria/checkbox": "^3.11.2",
- "@react-aria/combobox": "^3.7.1",
- "@react-aria/datepicker": "^3.8.1",
- "@react-aria/dialog": "^3.5.7",
- "@react-aria/dnd": "^3.4.3",
- "@react-aria/focus": "^3.14.3",
- "@react-aria/gridlist": "^3.7.1",
- "@react-aria/i18n": "^3.8.4",
- "@react-aria/interactions": "^3.19.1",
- "@react-aria/label": "^3.7.2",
- "@react-aria/link": "^3.6.1",
- "@react-aria/listbox": "^3.11.1",
- "@react-aria/menu": "^3.11.1",
- "@react-aria/meter": "^3.4.7",
- "@react-aria/numberfield": "^3.9.1",
- "@react-aria/overlays": "^3.18.1",
- "@react-aria/progress": "^3.4.7",
- "@react-aria/radio": "^3.8.2",
- "@react-aria/searchfield": "^3.5.7",
- "@react-aria/select": "^3.13.1",
- "@react-aria/selection": "^3.17.1",
- "@react-aria/separator": "^3.3.7",
- "@react-aria/slider": "^3.7.2",
- "@react-aria/ssr": "^3.8.0",
- "@react-aria/switch": "^3.5.6",
- "@react-aria/table": "^3.13.1",
- "@react-aria/tabs": "^3.8.1",
- "@react-aria/tag": "^3.2.1",
- "@react-aria/textfield": "^3.12.2",
- "@react-aria/tooltip": "^3.6.4",
- "@react-aria/utils": "^3.21.1",
- "@react-aria/visually-hidden": "^3.8.6",
- "@react-types/shared": "^3.21.0"
+ "@internationalized/string": "^3.2.7",
+ "@react-aria/breadcrumbs": "^3.5.28",
+ "@react-aria/button": "^3.14.1",
+ "@react-aria/calendar": "^3.9.1",
+ "@react-aria/checkbox": "^3.16.1",
+ "@react-aria/color": "^3.1.1",
+ "@react-aria/combobox": "^3.13.1",
+ "@react-aria/datepicker": "^3.15.1",
+ "@react-aria/dialog": "^3.5.29",
+ "@react-aria/disclosure": "^3.0.8",
+ "@react-aria/dnd": "^3.11.1",
+ "@react-aria/focus": "^3.21.1",
+ "@react-aria/gridlist": "^3.14.0",
+ "@react-aria/i18n": "^3.12.12",
+ "@react-aria/interactions": "^3.25.5",
+ "@react-aria/label": "^3.7.21",
+ "@react-aria/landmark": "^3.0.6",
+ "@react-aria/link": "^3.8.5",
+ "@react-aria/listbox": "^3.14.8",
+ "@react-aria/menu": "^3.19.1",
+ "@react-aria/meter": "^3.4.26",
+ "@react-aria/numberfield": "^3.12.1",
+ "@react-aria/overlays": "^3.29.0",
+ "@react-aria/progress": "^3.4.26",
+ "@react-aria/radio": "^3.12.1",
+ "@react-aria/searchfield": "^3.8.8",
+ "@react-aria/select": "^3.16.1",
+ "@react-aria/selection": "^3.25.1",
+ "@react-aria/separator": "^3.4.12",
+ "@react-aria/slider": "^3.8.1",
+ "@react-aria/ssr": "^3.9.10",
+ "@react-aria/switch": "^3.7.7",
+ "@react-aria/table": "^3.17.7",
+ "@react-aria/tabs": "^3.10.7",
+ "@react-aria/tag": "^3.7.1",
+ "@react-aria/textfield": "^3.18.1",
+ "@react-aria/toast": "^3.0.7",
+ "@react-aria/tooltip": "^3.8.7",
+ "@react-aria/tree": "^3.1.3",
+ "@react-aria/utils": "^3.30.1",
+ "@react-aria/visually-hidden": "^3.8.27",
+ "@react-types/shared": "^3.32.0"
},
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/react-async-script": {
@@ -9687,9 +10360,10 @@
}
},
"node_modules/react-blurhash": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.2.0.tgz",
- "integrity": "sha512-MfhPLfFTNCX3MCJ8nM5t+T5qAixBUv8QHVcHORs5iVaqdpg+IW/e4lpOphc0bm6AvKz//4MuHESIeKKoxi3wnA==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.3.0.tgz",
+ "integrity": "sha512-XlKr4Ns1iYFRnk6DkAblNbAwN/bTJvxTVoxMvmTcURdc5oLoXZwqAF9N3LZUh/HT+QFlq5n6IS6VsDGsviYAiQ==",
+ "license": "MIT",
"peerDependencies": {
"blurhash": "^2.0.3",
"react": ">=15"
@@ -9706,21 +10380,23 @@
}
},
"node_modules/react-dom": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
- "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
- "scheduler": "^0.23.0"
+ "scheduler": "^0.23.2"
},
"peerDependencies": {
- "react": "^18.2.0"
+ "react": "^18.3.1"
}
},
"node_modules/react-error-boundary": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.13.tgz",
- "integrity": "sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.1.2.tgz",
+ "integrity": "sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.5"
},
@@ -9746,16 +10422,18 @@
}
},
"node_modules/react-i18next": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.0.0.tgz",
- "integrity": "sha512-2O3IgF4zivg57Q6p6i+ChDgJ371IDcEWbuWC6gvoh5NbkDMs0Q+O7RPr4v61+Se32E0V+LmtwePAeqWZW0bi6g==",
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.2.tgz",
+ "integrity": "sha512-xJxq7ibnhUlMvd82lNC4te1GxGUMoM1A05KKyqoqsBXVZtEvZg/fz/fnVzdlY/hhQ3SpP/79qCocZOtICGhd3g==",
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.24.8",
+ "@babel/runtime": "^7.27.6",
"html-parse-stringify": "^3.0.1"
},
"peerDependencies": {
- "i18next": ">= 23.2.3",
- "react": ">= 16.8.0"
+ "i18next": ">= 25.4.1",
+ "react": ">= 16.8.0",
+ "typescript": "^5"
},
"peerDependenciesMeta": {
"react-dom": {
@@ -9763,6 +10441,9 @@
},
"react-native": {
"optional": true
+ },
+ "typescript": {
+ "optional": true
}
}
},
@@ -9777,52 +10458,54 @@
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"node_modules/react-modal": {
- "version": "3.16.1",
- "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz",
- "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==",
+ "version": "3.16.3",
+ "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.3.tgz",
+ "integrity": "sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==",
+ "license": "MIT",
"dependencies": {
"exenv": "^1.2.0",
"prop-types": "^15.7.2",
"react-lifecycles-compat": "^3.0.0",
"warning": "^4.0.3"
},
- "engines": {
- "node": ">=8"
- },
"peerDependencies": {
- "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18",
- "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18"
+ "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19",
+ "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19"
}
},
"node_modules/react-property": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz",
- "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw=="
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz",
+ "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==",
+ "license": "MIT"
},
"node_modules/react-range": {
- "version": "1.8.14",
- "resolved": "https://registry.npmjs.org/react-range/-/react-range-1.8.14.tgz",
- "integrity": "sha512-v2nyD5106rHf9dwHzq+WRlhCes83h1wJRHIMFjbZsYYsO6LF4mG/mR3cH7Cf+dkeHq65DItuqIbLn/3jjYjsHg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/react-range/-/react-range-1.10.0.tgz",
+ "integrity": "sha512-kDo0LiBUHIQIP8menx0UoxTnHr7UXBYpIYl/DR9jCaO1o29VwvCLpkP/qOTNQz5hkJadPg1uEM07XJcJ1XGoKw==",
+ "license": "MIT",
"peerDependencies": {
- "react": "^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0",
- "react-dom": "^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0"
+ "react": "*",
+ "react-dom": "*"
}
},
"node_modules/react-refresh": {
- "version": "0.14.2",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
- "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-router": {
- "version": "6.20.0",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz",
- "integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==",
+ "version": "6.30.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz",
+ "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==",
+ "license": "MIT",
"dependencies": {
- "@remix-run/router": "1.13.0"
+ "@remix-run/router": "1.23.0"
},
"engines": {
"node": ">=14.0.0"
@@ -9832,12 +10515,13 @@
}
},
"node_modules/react-router-dom": {
- "version": "6.20.0",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz",
- "integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==",
+ "version": "6.30.1",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz",
+ "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==",
+ "license": "MIT",
"dependencies": {
- "@remix-run/router": "1.13.0",
- "react-router": "6.20.0"
+ "@remix-run/router": "1.23.0",
+ "react-router": "6.30.1"
},
"engines": {
"node": ">=14.0.0"
@@ -9847,20 +10531,6 @@
"react-dom": ">=16.8"
}
},
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "optional": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -9925,11 +10595,6 @@
"node": ">=4"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
- },
"node_modules/regenerator-transform": {
"version": "0.15.2",
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
@@ -9959,18 +10624,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
"node_modules/regexpu-core": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz",
@@ -10068,6 +10721,7 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -10096,7 +10750,7 @@
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"deprecated": "Rimraf versions prior to v4 are no longer supported",
- "devOptional": true,
+ "dev": true,
"dependencies": {
"glob": "^7.1.3"
},
@@ -10190,7 +10844,7 @@
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "devOptional": true,
+ "dev": true,
"funding": [
{
"type": "github",
@@ -10240,9 +10894,10 @@
}
},
"node_modules/sanitize-html": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.12.1.tgz",
- "integrity": "sha512-Plh+JAn0UVDpBRP/xEjsk+xDCoOvMBwQUf/K+/cBAVuTbtX8bj2VB7S1sL1dssVpykqp0/KPSesHrqXtokVBpA==",
+ "version": "2.17.0",
+ "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.0.tgz",
+ "integrity": "sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==",
+ "license": "MIT",
"dependencies": {
"deepmerge": "^4.2.2",
"escape-string-regexp": "^4.0.0",
@@ -10253,20 +10908,54 @@
}
},
"node_modules/sass": {
- "version": "1.56.2",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.2.tgz",
- "integrity": "sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w==",
+ "version": "1.91.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.91.0.tgz",
+ "integrity": "sha512-aFOZHGf+ur+bp1bCHZ+u8otKGh77ZtmFyXDo4tlYvT7PWql41Kwd8wdkPqhhT+h2879IVblcHFglIMofsFd1EA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
"sass": "sass.js"
},
"engines": {
- "node": ">=12.0.0"
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/sass/node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/sass/node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
}
},
"node_modules/scheduler": {
@@ -10299,7 +10988,7 @@
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "devOptional": true,
+ "dev": true,
"bin": {
"semver": "bin/semver.js"
},
@@ -10316,12 +11005,6 @@
"randombytes": "^2.1.0"
}
},
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "optional": true
- },
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -10466,67 +11149,30 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "optional": true
- },
- "node_modules/simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "optional": true
- },
- "node_modules/simple-get": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
- "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
- "optional": true,
- "dependencies": {
- "decompress-response": "^4.2.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/slate": {
- "version": "0.112.0",
- "resolved": "https://registry.npmjs.org/slate/-/slate-0.112.0.tgz",
- "integrity": "sha512-PRnfFgDA3tSop4OH47zu4M1R4Uuhm/AmASu29Qp7sGghVFb713kPBKEnSf1op7Lx/nCHkRlCa3ThfHtCBy+5Yw==",
+ "version": "0.118.1",
+ "resolved": "https://registry.npmjs.org/slate/-/slate-0.118.1.tgz",
+ "integrity": "sha512-6H1DNgnSwAFhq/pIgf+tLvjNzH912M5XrKKhP9Frmbds2zFXdSJ6L/uFNyVKxQIkPzGWPD0m+wdDfmEuGFH5Tg==",
"license": "MIT",
"dependencies": {
"immer": "^10.0.3",
- "is-plain-object": "^5.0.0",
"tiny-warning": "^1.0.3"
}
},
"node_modules/slate-dom": {
- "version": "0.112.2",
- "resolved": "https://registry.npmjs.org/slate-dom/-/slate-dom-0.112.2.tgz",
- "integrity": "sha512-cozITMlpcBxrov854reM6+TooiHiqpfM/nZPrnjpN1wSiDsAQmYbWUyftC+jlwcpFj80vywfDHzlG6hXIc5h6A==",
+ "version": "0.118.1",
+ "resolved": "https://registry.npmjs.org/slate-dom/-/slate-dom-0.118.1.tgz",
+ "integrity": "sha512-D6J0DF9qdJrXnRDVhYZfHzzpVxzqKRKFfS0Wcin2q0UC+OnQZ0lbCGJobatVbisOlbSe7dYFHBp9OZ6v1lEcbQ==",
"license": "MIT",
"dependencies": {
"@juggle/resize-observer": "^3.4.0",
@@ -10542,27 +11188,23 @@
}
},
"node_modules/slate-history": {
- "version": "0.110.3",
- "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.110.3.tgz",
- "integrity": "sha512-sgdff4Usdflmw5ZUbhDkxFwCBQ2qlDKMMkF93w66KdV48vHOgN2BmLrf+2H8SdX8PYIpP/cTB0w8qWC2GwhDVA==",
+ "version": "0.115.0",
+ "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.115.0.tgz",
+ "integrity": "sha512-QdUm9aVyQFz6JG4a84Z6Um+tJpZJmsh9bjXwTVTvYiN4rdKbqL6+/4HT94on1WYxe10Q4vY6mA6BCpoYxgF3tQ==",
"license": "MIT",
- "dependencies": {
- "is-plain-object": "^5.0.0"
- },
"peerDependencies": {
- "slate": ">=0.65.3"
+ "slate": ">=0.114.3"
}
},
"node_modules/slate-react": {
- "version": "0.112.1",
- "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.112.1.tgz",
- "integrity": "sha512-V9b+waxPweXqAkSQmKQ1afG4Me6nVQACPpxQtHPIX02N7MXa5f5WilYv+bKt7vKKw+IZC2F0Gjzhv5BekVgP/A==",
+ "version": "0.117.4",
+ "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.117.4.tgz",
+ "integrity": "sha512-9ckilyUzQS1VHJnstIpgInhcWnTDgv2Cd7m1HOQVl3zasChoapPSMftzT/wl/48grZaZYZIi4xVuzGTcFRUWFg==",
"license": "MIT",
"dependencies": {
"@juggle/resize-observer": "^3.4.0",
"direction": "^1.0.4",
"is-hotkey": "^0.2.0",
- "is-plain-object": "^5.0.0",
"lodash": "^4.17.21",
"scroll-into-view-if-needed": "^3.1.0",
"tiny-invariant": "1.3.1"
@@ -10570,8 +11212,8 @@
"peerDependencies": {
"react": ">=18.2.0",
"react-dom": ">=18.2.0",
- "slate": ">=0.99.0",
- "slate-dom": ">=0.110.2"
+ "slate": ">=0.114.0",
+ "slate-dom": ">=0.116.0"
}
},
"node_modules/slate/node_modules/immer": {
@@ -10662,13 +11304,18 @@
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
"dev": true
},
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "safe-buffer": "~5.2.0"
+ "es-errors": "^1.3.0",
+ "internal-slot": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/string-width": {
@@ -10689,6 +11336,21 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
+ "node_modules/string.prototype.includes": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/string.prototype.matchall": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
@@ -10716,6 +11378,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
"node_modules/string.prototype.trim": {
"version": "1.2.10",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
@@ -10820,6 +11493,7 @@
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -10828,25 +11502,28 @@
}
},
"node_modules/style-to-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.3.tgz",
- "integrity": "sha512-zKI5gN/zb7LS/Vm0eUwjmjrXWw8IMtyA8aPBJZdYiQTXj4+wQ3IucOLIOnF7zCHxvW8UhIGh/uZh/t9zEHXNTQ==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.8.tgz",
+ "integrity": "sha512-bPSspCXkkhETLXnEgDbaoWRWyv3lF2bj32YIc8IElok2IIMHUlZtQUrxYmAkKUNxpluhH0qnKWrmuoXUyTY12g==",
+ "license": "MIT",
"dependencies": {
- "style-to-object": "0.4.1"
+ "style-to-object": "1.0.3"
}
},
"node_modules/style-to-object": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz",
- "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.3.tgz",
+ "integrity": "sha512-xOpx7S53E0V3DpVsvt7ySvoiumRpfXiC99PUXLqGB3wiAnN9ybEIpuzlZ8LAZg+h1sl9JkEUwtSQXxcCgFqbbg==",
+ "license": "MIT",
"dependencies": {
- "inline-style-parser": "0.1.1"
+ "inline-style-parser": "0.2.2"
}
},
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -10871,29 +11548,6 @@
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
},
- "node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "optional": true,
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tar/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "optional": true
- },
"node_modules/temp-dir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
@@ -11143,10 +11797,11 @@
}
},
"node_modules/typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -11156,9 +11811,9 @@
}
},
"node_modules/ua-parser-js": {
- "version": "1.0.35",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz",
- "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==",
+ "version": "1.0.41",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.41.tgz",
+ "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==",
"funding": [
{
"type": "opencollective",
@@ -11167,8 +11822,16 @@
{
"type": "paypal",
"url": "https://paypal.me/faisalman"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/faisalman"
}
],
+ "license": "MIT",
+ "bin": {
+ "ua-parser-js": "script/cli.js"
+ },
"engines": {
"node": "*"
}
@@ -11196,6 +11859,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT"
+ },
"node_modules/unhomoglyph": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz",
@@ -11307,15 +11976,19 @@
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "optional": true
+ "node_modules/use-sync-external-store": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
+ "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
},
"node_modules/uuid": {
"version": "10.0.0",
@@ -11390,9 +12063,10 @@
}
},
"node_modules/vite-node": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz",
- "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz",
+ "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==",
+ "license": "MIT",
"dependencies": {
"cac": "^6.7.14",
"debug": "^4.3.4",
@@ -11416,16 +12090,17 @@
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
},
"node_modules/vite-plugin-pwa": {
- "version": "0.20.5",
- "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.20.5.tgz",
- "integrity": "sha512-aweuI/6G6n4C5Inn0vwHumElU/UEpNuO+9iZzwPZGTCH87TeZ6YFMrEY6ZUBQdIHHlhTsbMDryFARcSuOdsz9Q==",
+ "version": "0.21.2",
+ "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.21.2.tgz",
+ "integrity": "sha512-vFhH6Waw8itNu37hWUJxL50q+CBbNcMVzsKaYHQVrfxTt3ihk3PeLO22SbiP1UNWzcEPaTQv+YVxe4G0KOjAkg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.3.6",
"pretty-bytes": "^6.1.1",
- "tinyglobby": "^0.2.0",
- "workbox-build": "^7.1.0",
- "workbox-window": "^7.1.0"
+ "tinyglobby": "^0.2.10",
+ "workbox-build": "^7.3.0",
+ "workbox-window": "^7.3.0"
},
"engines": {
"node": ">=16.0.0"
@@ -11435,9 +12110,9 @@
},
"peerDependencies": {
"@vite-pwa/assets-generator": "^0.2.6",
- "vite": "^3.1.0 || ^4.0.0 || ^5.0.0",
- "workbox-build": "^7.1.0",
- "workbox-window": "^7.1.0"
+ "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
+ "workbox-build": "^7.3.0",
+ "workbox-window": "^7.3.0"
},
"peerDependenciesMeta": {
"@vite-pwa/assets-generator": {
@@ -11446,10 +12121,11 @@
}
},
"node_modules/vite-plugin-static-copy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.4.tgz",
- "integrity": "sha512-UtyOttgoeotSCwmBugsEZCZJZcIpjE9NGO7jlZ9OeedYpBueBdspD8waRZrjE+yQLH6qGNU2CvYB2FILviCQjg==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz",
+ "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chokidar": "^3.5.3",
"fast-glob": "^3.2.11",
@@ -11464,14 +12140,16 @@
}
},
"node_modules/vite-plugin-top-level-await": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.4.4.tgz",
- "integrity": "sha512-QyxQbvcMkgt+kDb12m2P8Ed35Sp6nXP+l8ptGrnHV9zgYDUpraO0CPdlqLSeBqvY2DToR52nutDG7mIHuysdiw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.6.0.tgz",
+ "integrity": "sha512-bNhUreLamTIkoulCR9aDXbTbhLk6n1YE8NJUTTxl5RYskNRtzOR0ASzSjBVRtNdjIfngDXo11qOsybGLNsrdww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@rollup/plugin-virtual": "^3.0.2",
- "@swc/core": "^1.7.0",
- "uuid": "^10.0.0"
+ "@swc/core": "^1.12.14",
+ "@swc/wasm": "^1.12.14",
+ "uuid": "10.0.0"
},
"peerDependencies": {
"vite": ">=2.8"
@@ -11993,15 +12671,17 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
- "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
+ "version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "for-each": "^0.3.3",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
},
@@ -12012,15 +12692,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "optional": true,
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -12305,7 +12976,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "devOptional": true
+ "dev": true
},
"node_modules/y18n": {
"version": "5.0.8",
@@ -12321,11 +12992,15 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
},
"node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">= 14.6"
}
},
"node_modules/yargs": {
diff --git a/package.json b/package.json
index 81d0e20..d6973cf 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "cinny",
- "version": "4.8.1",
+ "version": "4.9.1",
"description": "Yet another matrix client",
"main": "index.js",
"type": "module",
@@ -20,99 +20,99 @@
"author": "Ajay Bura",
"license": "AGPL-3.0-only",
"dependencies": {
- "@atlaskit/pragmatic-drag-and-drop": "1.1.6",
- "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "1.3.0",
- "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.0.3",
- "@fontsource/inter": "4.5.14",
- "@tanstack/react-query": "5.24.1",
- "@tanstack/react-query-devtools": "5.24.1",
- "@tanstack/react-virtual": "3.2.0",
+ "@atlaskit/pragmatic-drag-and-drop": "1.7.4",
+ "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "1.4.0",
+ "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.1.0",
+ "@fontsource/inter": "4.5.15",
+ "@tanstack/react-query": "5.85.5",
+ "@tanstack/react-query-devtools": "5.85.5",
+ "@tanstack/react-virtual": "3.13.12",
"@tippyjs/react": "4.2.6",
- "@vanilla-extract/css": "1.9.3",
- "@vanilla-extract/recipes": "0.3.0",
- "@vanilla-extract/vite-plugin": "3.7.1",
+ "@vanilla-extract/css": "1.17.4",
+ "@vanilla-extract/recipes": "0.5.7",
+ "@vanilla-extract/vite-plugin": "3.9.5",
"await-to-js": "3.0.0",
"badwords-list": "2.0.1-4",
- "blurhash": "2.0.4",
+ "blurhash": "2.0.5",
"browser-encrypt-attachment": "0.3.0",
"chroma-js": "3.1.2",
- "classnames": "2.3.2",
+ "classnames": "2.5.1",
"dateformat": "5.0.3",
- "dayjs": "1.11.10",
+ "dayjs": "1.11.14",
"domhandler": "5.0.3",
"emojibase": "15.3.1",
"emojibase-data": "15.3.2",
"file-saver": "2.0.5",
- "flux": "4.0.3",
- "focus-trap-react": "10.0.2",
+ "flux": "4.0.4",
+ "focus-trap-react": "10.3.1",
"folds": "2.2.0",
"formik": "2.4.6",
- "html-dom-parser": "4.0.0",
- "html-react-parser": "4.2.0",
- "i18next": "23.12.2",
- "i18next-browser-languagedetector": "8.0.0",
- "i18next-http-backend": "2.5.2",
- "immer": "9.0.16",
+ "html-dom-parser": "4.0.1",
+ "html-react-parser": "4.2.10",
+ "i18next": "23.16.8",
+ "i18next-browser-languagedetector": "8.2.0",
+ "i18next-http-backend": "2.7.3",
+ "immer": "9.0.21",
"is-hotkey": "0.2.0",
- "jotai": "2.6.0",
- "linkify-react": "4.1.3",
- "linkifyjs": "4.1.3",
- "matrix-js-sdk": "37.5.0",
+ "jotai": "2.13.1",
+ "linkify-react": "4.3.2",
+ "linkifyjs": "4.3.2",
+ "matrix-js-sdk": "37.13.0",
"millify": "6.1.0",
- "pdfjs-dist": "4.2.67",
+ "pdfjs-dist": "4.10.38",
"prismjs": "1.30.0",
"prop-types": "15.8.1",
- "react": "18.2.0",
- "react-aria": "3.29.1",
+ "react": "18.3.1",
+ "react-aria": "3.43.0",
"react-autosize-textarea": "7.1.0",
- "react-blurhash": "0.2.0",
+ "react-blurhash": "0.3.0",
"react-colorful": "5.6.1",
- "react-dom": "18.2.0",
- "react-error-boundary": "4.0.13",
+ "react-dom": "18.3.1",
+ "react-error-boundary": "4.1.2",
"react-google-recaptcha": "2.1.0",
- "react-i18next": "15.0.0",
- "react-modal": "3.16.1",
- "react-range": "1.8.14",
- "react-router-dom": "6.20.0",
- "sanitize-html": "2.12.1",
- "slate": "0.112.0",
- "slate-dom": "0.112.2",
- "slate-history": "0.110.3",
- "slate-react": "0.112.1",
+ "react-i18next": "15.7.2",
+ "react-modal": "3.16.3",
+ "react-range": "1.10.0",
+ "react-router-dom": "6.30.1",
+ "sanitize-html": "2.17.0",
+ "slate": "0.118.1",
+ "slate-dom": "0.118.1",
+ "slate-history": "0.115.0",
+ "slate-react": "0.117.4",
"tippy.js": "6.3.7",
- "ua-parser-js": "1.0.35"
+ "ua-parser-js": "1.0.41"
},
"devDependencies": {
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
- "@rollup/plugin-inject": "5.0.3",
- "@rollup/plugin-wasm": "6.1.1",
+ "@rollup/plugin-inject": "5.0.5",
+ "@rollup/plugin-wasm": "6.2.2",
"@types/chroma-js": "3.1.1",
- "@types/file-saver": "2.0.5",
+ "@types/file-saver": "2.0.7",
"@types/is-hotkey": "0.1.10",
- "@types/node": "18.11.18",
- "@types/prismjs": "1.26.0",
- "@types/react": "18.2.39",
- "@types/react-dom": "18.2.17",
- "@types/react-google-recaptcha": "2.1.8",
- "@types/sanitize-html": "2.9.0",
- "@types/ua-parser-js": "0.7.36",
- "@typescript-eslint/eslint-plugin": "5.46.1",
- "@typescript-eslint/parser": "5.46.1",
- "@vitejs/plugin-react": "4.2.0",
+ "@types/node": "18.19.123",
+ "@types/prismjs": "1.26.5",
+ "@types/react": "18.3.24",
+ "@types/react-dom": "18.3.7",
+ "@types/react-google-recaptcha": "2.1.9",
+ "@types/sanitize-html": "2.16.0",
+ "@types/ua-parser-js": "0.7.39",
+ "@typescript-eslint/eslint-plugin": "5.62.0",
+ "@typescript-eslint/parser": "5.62.0",
+ "@vitejs/plugin-react": "4.7.0",
"buffer": "6.0.3",
- "eslint": "8.29.0",
+ "eslint": "8.57.1",
"eslint-config-airbnb": "19.0.4",
- "eslint-config-prettier": "8.5.0",
- "eslint-plugin-import": "2.29.1",
- "eslint-plugin-jsx-a11y": "6.6.1",
- "eslint-plugin-react": "7.31.11",
- "eslint-plugin-react-hooks": "4.6.0",
- "prettier": "2.8.1",
- "sass": "1.56.2",
- "typescript": "4.9.4",
+ "eslint-config-prettier": "8.10.2",
+ "eslint-plugin-import": "2.32.0",
+ "eslint-plugin-jsx-a11y": "6.10.2",
+ "eslint-plugin-react": "7.37.5",
+ "eslint-plugin-react-hooks": "4.6.2",
+ "prettier": "2.8.8",
+ "sass": "1.91.0",
+ "typescript": "4.9.5",
"vite": "5.4.19",
- "vite-plugin-pwa": "0.20.5",
- "vite-plugin-static-copy": "1.0.4",
- "vite-plugin-top-level-await": "1.4.4"
+ "vite-plugin-pwa": "0.21.2",
+ "vite-plugin-static-copy": "1.0.6",
+ "vite-plugin-top-level-await": "1.6.0"
}
}
diff --git a/src/app/components/UserRoomProfileRenderer.tsx b/src/app/components/UserRoomProfileRenderer.tsx
new file mode 100644
index 0000000..ca7aa83
--- /dev/null
+++ b/src/app/components/UserRoomProfileRenderer.tsx
@@ -0,0 +1,55 @@
+import React from 'react';
+import { Menu, PopOut, toRem } from 'folds';
+import FocusTrap from 'focus-trap-react';
+import { useCloseUserRoomProfile, useUserRoomProfileState } from '../state/hooks/userRoomProfile';
+import { UserRoomProfile } from './user-profile';
+import { UserRoomProfileState } from '../state/userRoomProfile';
+import { useAllJoinedRoomsSet, useGetRoom } from '../hooks/useGetRoom';
+import { stopPropagation } from '../utils/keyboard';
+import { SpaceProvider } from '../hooks/useSpace';
+import { RoomProvider } from '../hooks/useRoom';
+
+function UserRoomProfileContextMenu({ state }: { state: UserRoomProfileState }) {
+ const { roomId, spaceId, userId, cords, position } = state;
+ const allJoinedRooms = useAllJoinedRoomsSet();
+ const getRoom = useGetRoom(allJoinedRooms);
+ const room = getRoom(roomId);
+ const space = spaceId ? getRoom(spaceId) : undefined;
+
+ const close = useCloseUserRoomProfile();
+
+ if (!room) return null;
+
+ return (
+
+
+
+ }
+ />
+ );
+}
+
+export function UserRoomProfileRenderer() {
+ const state = useUserRoomProfileState();
+
+ if (!state) return null;
+ return ;
+}
diff --git a/src/app/components/create-room/AdditionalCreatorInput.tsx b/src/app/components/create-room/AdditionalCreatorInput.tsx
new file mode 100644
index 0000000..936b9b9
--- /dev/null
+++ b/src/app/components/create-room/AdditionalCreatorInput.tsx
@@ -0,0 +1,294 @@
+import {
+ Box,
+ Button,
+ Chip,
+ config,
+ Icon,
+ Icons,
+ Input,
+ Line,
+ Menu,
+ MenuItem,
+ PopOut,
+ RectCords,
+ Scroll,
+ Text,
+ toRem,
+} from 'folds';
+import { isKeyHotkey } from 'is-hotkey';
+import FocusTrap from 'focus-trap-react';
+import React, {
+ ChangeEventHandler,
+ KeyboardEventHandler,
+ MouseEventHandler,
+ useMemo,
+ useState,
+} from 'react';
+import { getMxIdLocalPart, getMxIdServer, isUserId } from '../../utils/matrix';
+import { useDirectUsers } from '../../hooks/useDirectUsers';
+import { SettingTile } from '../setting-tile';
+import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { stopPropagation } from '../../utils/keyboard';
+import { useAsyncSearch, UseAsyncSearchOptions } from '../../hooks/useAsyncSearch';
+import { highlightText, makeHighlightRegex } from '../../plugins/react-custom-html-parser';
+
+export const useAdditionalCreators = (defaultCreators?: string[]) => {
+ const mx = useMatrixClient();
+ const [additionalCreators, setAdditionalCreators] = useState(
+ () => defaultCreators?.filter((id) => id !== mx.getSafeUserId()) ?? []
+ );
+
+ const addAdditionalCreator = (userId: string) => {
+ if (userId === mx.getSafeUserId()) return;
+
+ setAdditionalCreators((creators) => {
+ const creatorsSet = new Set(creators);
+ creatorsSet.add(userId);
+ return Array.from(creatorsSet);
+ });
+ };
+
+ const removeAdditionalCreator = (userId: string) => {
+ setAdditionalCreators((creators) => {
+ const creatorsSet = new Set(creators);
+ creatorsSet.delete(userId);
+ return Array.from(creatorsSet);
+ });
+ };
+
+ return {
+ additionalCreators,
+ addAdditionalCreator,
+ removeAdditionalCreator,
+ };
+};
+
+const SEARCH_OPTIONS: UseAsyncSearchOptions = {
+ limit: 1000,
+ matchOptions: {
+ contain: true,
+ },
+};
+const getUserIdString = (userId: string) => getMxIdLocalPart(userId) ?? userId;
+
+type AdditionalCreatorInputProps = {
+ additionalCreators: string[];
+ onSelect: (userId: string) => void;
+ onRemove: (userId: string) => void;
+ disabled?: boolean;
+};
+export function AdditionalCreatorInput({
+ additionalCreators,
+ onSelect,
+ onRemove,
+ disabled,
+}: AdditionalCreatorInputProps) {
+ const mx = useMatrixClient();
+ const [menuCords, setMenuCords] = useState();
+ const directUsers = useDirectUsers();
+
+ const [validUserId, setValidUserId] = useState();
+ const filteredUsers = useMemo(
+ () => directUsers.filter((userId) => !additionalCreators.includes(userId)),
+ [directUsers, additionalCreators]
+ );
+ const [result, search, resetSearch] = useAsyncSearch(
+ filteredUsers,
+ getUserIdString,
+ SEARCH_OPTIONS
+ );
+ const queryHighlighRegex = result?.query ? makeHighlightRegex([result.query]) : undefined;
+
+ const suggestionUsers = result
+ ? result.items
+ : filteredUsers.sort((a, b) => (a.toLocaleLowerCase() >= b.toLocaleLowerCase() ? 1 : -1));
+
+ const handleOpenMenu: MouseEventHandler = (evt) => {
+ setMenuCords(evt.currentTarget.getBoundingClientRect());
+ };
+ const handleCloseMenu = () => {
+ setMenuCords(undefined);
+ setValidUserId(undefined);
+ resetSearch();
+ };
+
+ const handleCreatorChange: ChangeEventHandler = (evt) => {
+ const creatorInput = evt.currentTarget;
+ const creator = creatorInput.value.trim();
+ if (isUserId(creator)) {
+ setValidUserId(creator);
+ } else {
+ setValidUserId(undefined);
+ const term =
+ getMxIdLocalPart(creator) ?? (creator.startsWith('@') ? creator.slice(1) : creator);
+ if (term) {
+ search(term);
+ } else {
+ resetSearch();
+ }
+ }
+ };
+
+ const handleSelectUserId = (userId?: string) => {
+ if (userId && isUserId(userId)) {
+ onSelect(userId);
+ handleCloseMenu();
+ }
+ };
+
+ const handleCreatorKeyDown: KeyboardEventHandler = (evt) => {
+ if (isKeyHotkey('enter', evt)) {
+ evt.preventDefault();
+ const creator = evt.currentTarget.value.trim();
+ handleSelectUserId(isUserId(creator) ? creator : suggestionUsers[0]);
+ }
+ };
+
+ const handleEnterClick = () => {
+ handleSelectUserId(validUserId);
+ };
+
+ return (
+
+
+
+
+ {mx.getSafeUserId()}
+
+ {additionalCreators.map((creator) => (
+ }
+ onClick={() => onRemove(creator)}
+ disabled={disabled}
+ >
+ {creator}
+
+ ))}
+ evt.key === 'ArrowDown',
+ isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp',
+ escapeDeactivates: stopPropagation,
+ }}
+ >
+
+
+ }
+ >
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/components/create-room/RoomVersionSelector.tsx b/src/app/components/create-room/RoomVersionSelector.tsx
index 281f520..219ded0 100644
--- a/src/app/components/create-room/RoomVersionSelector.tsx
+++ b/src/app/components/create-room/RoomVersionSelector.tsx
@@ -47,7 +47,7 @@ export function RoomVersionSelector({
gap="500"
>
{
const content: Record = {};
if (typeof type === 'string') {
@@ -23,6 +24,9 @@ export const createRoomCreationContent = (
if (allowFederation === false) {
content['m.federate'] = false;
}
+ if (Array.isArray(additionalCreators)) {
+ content.additional_creators = additionalCreators;
+ }
return content;
};
@@ -89,6 +93,7 @@ export type CreateRoomData = {
encryption?: boolean;
knock: boolean;
allowFederation: boolean;
+ additionalCreators?: string[];
};
export const createRoom = async (mx: MatrixClient, data: CreateRoomData): Promise => {
const initialState: ICreateRoomStateEvent[] = [];
@@ -108,7 +113,11 @@ export const createRoom = async (mx: MatrixClient, data: CreateRoomData): Promis
name: data.name,
topic: data.topic,
room_alias_name: data.aliasLocalPart,
- creation_content: createRoomCreationContent(data.type, data.allowFederation),
+ creation_content: createRoomCreationContent(
+ data.type,
+ data.allowFederation,
+ data.additionalCreators
+ ),
initial_state: initialState,
};
diff --git a/src/app/components/event-readers/EventReaders.tsx b/src/app/components/event-readers/EventReaders.tsx
index de1416b..c790023 100644
--- a/src/app/components/event-readers/EventReaders.tsx
+++ b/src/app/components/event-readers/EventReaders.tsx
@@ -19,9 +19,11 @@ import { getMemberDisplayName } from '../../utils/room';
import { getMxIdLocalPart } from '../../utils/matrix';
import * as css from './EventReaders.css';
import { useMatrixClient } from '../../hooks/useMatrixClient';
-import { openProfileViewer } from '../../../client/action/navigation';
import { UserAvatar } from '../user-avatar';
import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
+import { useOpenUserRoomProfile } from '../../state/hooks/userRoomProfile';
+import { useSpaceOptionally } from '../../hooks/useSpace';
+import { getMouseEventCords } from '../../utils/dom';
export type EventReadersProps = {
room: Room;
@@ -33,6 +35,8 @@ export const EventReaders = as<'div', EventReadersProps>(
const mx = useMatrixClient();
const useAuthentication = useMediaAuthentication();
const latestEventReaders = useRoomEventReaders(room, eventId);
+ const openProfile = useOpenUserRoomProfile();
+ const space = useSpaceOptionally();
const getName = (userId: string) =>
getMemberDisplayName(room, userId) ?? getMxIdLocalPart(userId) ?? userId;
@@ -57,19 +61,32 @@ export const EventReaders = as<'div', EventReadersProps>(
{latestEventReaders.map((readerId) => {
const name = getName(readerId);
- const avatarMxcUrl = room
- .getMember(readerId)
- ?.getMxcAvatarUrl();
- const avatarUrl = avatarMxcUrl ? mx.mxcUrlToHttp(avatarMxcUrl, 100, 100, 'crop', undefined, false, useAuthentication) : undefined;
+ const avatarMxcUrl = room.getMember(readerId)?.getMxcAvatarUrl();
+ const avatarUrl = avatarMxcUrl
+ ? mx.mxcUrlToHttp(
+ avatarMxcUrl,
+ 100,
+ 100,
+ 'crop',
+ undefined,
+ false,
+ useAuthentication
+ )
+ : undefined;
return (
diff --git a/src/app/components/user-profile/CreatorChip.tsx b/src/app/components/user-profile/CreatorChip.tsx
new file mode 100644
index 0000000..f59d2ae
--- /dev/null
+++ b/src/app/components/user-profile/CreatorChip.tsx
@@ -0,0 +1,101 @@
+import { Chip, config, Icon, Icons, Menu, MenuItem, PopOut, RectCords, Text } from 'folds';
+import React, { MouseEventHandler, useState } from 'react';
+import FocusTrap from 'focus-trap-react';
+import { isKeyHotkey } from 'is-hotkey';
+import { useRoomCreatorsTag } from '../../hooks/useRoomCreatorsTag';
+import { PowerColorBadge, PowerIcon } from '../power';
+import { getPowerTagIconSrc } from '../../hooks/useMemberPowerTag';
+import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
+import { stopPropagation } from '../../utils/keyboard';
+import { useRoom } from '../../hooks/useRoom';
+import { useSpaceOptionally } from '../../hooks/useSpace';
+import { useOpenRoomSettings } from '../../state/hooks/roomSettings';
+import { useOpenSpaceSettings } from '../../state/hooks/spaceSettings';
+import { SpaceSettingsPage } from '../../state/spaceSettings';
+import { RoomSettingsPage } from '../../state/roomSettings';
+
+export function CreatorChip() {
+ const mx = useMatrixClient();
+ const useAuthentication = useMediaAuthentication();
+ const room = useRoom();
+ const space = useSpaceOptionally();
+ const openRoomSettings = useOpenRoomSettings();
+ const openSpaceSettings = useOpenSpaceSettings();
+
+ const [cords, setCords] = useState();
+ const tag = useRoomCreatorsTag();
+ const tagIconSrc = tag.icon && getPowerTagIconSrc(mx, useAuthentication, tag.icon);
+
+ const open: MouseEventHandler = (evt) => {
+ setCords(evt.currentTarget.getBoundingClientRect());
+ };
+
+ const close = () => setCords(undefined);
+
+ return (
+ isKeyHotkey('arrowdown', evt),
+ isKeyBackward: (evt: KeyboardEvent) => isKeyHotkey('arrowup', evt),
+ }}
+ >
+
+
+ }
+ >
+
+ ) : (
+
+ )
+ }
+ after={tagIconSrc ? : undefined}
+ onClick={open}
+ aria-pressed={!!cords}
+ >
+
+ {tag.name}
+
+
+
+ );
+}
diff --git a/src/app/components/user-profile/PowerChip.tsx b/src/app/components/user-profile/PowerChip.tsx
new file mode 100644
index 0000000..a675830
--- /dev/null
+++ b/src/app/components/user-profile/PowerChip.tsx
@@ -0,0 +1,357 @@
+import {
+ Box,
+ Button,
+ Chip,
+ config,
+ Dialog,
+ Header,
+ Icon,
+ IconButton,
+ Icons,
+ Line,
+ Menu,
+ MenuItem,
+ Overlay,
+ OverlayBackdrop,
+ OverlayCenter,
+ PopOut,
+ RectCords,
+ Spinner,
+ Text,
+ toRem,
+} from 'folds';
+import React, { MouseEventHandler, useCallback, useState } from 'react';
+import FocusTrap from 'focus-trap-react';
+import { isKeyHotkey } from 'is-hotkey';
+import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
+import { PowerColorBadge, PowerIcon } from '../power';
+import { useGetMemberPowerLevel, usePowerLevels } from '../../hooks/usePowerLevels';
+import { getPowers, usePowerLevelTags } from '../../hooks/usePowerLevelTags';
+import { stopPropagation } from '../../utils/keyboard';
+import { StateEvent } from '../../../types/matrix/room';
+import { useOpenRoomSettings } from '../../state/hooks/roomSettings';
+import { RoomSettingsPage } from '../../state/roomSettings';
+import { useRoom } from '../../hooks/useRoom';
+import { useSpaceOptionally } from '../../hooks/useSpace';
+import { CutoutCard } from '../cutout-card';
+import { useOpenSpaceSettings } from '../../state/hooks/spaceSettings';
+import { SpaceSettingsPage } from '../../state/spaceSettings';
+import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback';
+import { BreakWord } from '../../styles/Text.css';
+import { getPowerTagIconSrc, useGetMemberPowerTag } from '../../hooks/useMemberPowerTag';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../hooks/useRoomPermissions';
+import { useMemberPowerCompare } from '../../hooks/useMemberPowerCompare';
+
+type SelfDemoteAlertProps = {
+ power: number;
+ onCancel: () => void;
+ onChange: (power: number) => void;
+};
+function SelfDemoteAlert({ power, onCancel, onChange }: SelfDemoteAlertProps) {
+ return (
+ }>
+
+
+
+
+
+
+ );
+}
+
+type SharedPowerAlertProps = {
+ power: number;
+ onCancel: () => void;
+ onChange: (power: number) => void;
+};
+function SharedPowerAlert({ power, onCancel, onChange }: SharedPowerAlertProps) {
+ return (
+ }>
+
+
+
+
+
+
+ );
+}
+
+export function PowerChip({ userId }: { userId: string }) {
+ const mx = useMatrixClient();
+ const room = useRoom();
+ const space = useSpaceOptionally();
+ const useAuthentication = useMediaAuthentication();
+ const openRoomSettings = useOpenRoomSettings();
+ const openSpaceSettings = useOpenSpaceSettings();
+
+ const powerLevels = usePowerLevels(room);
+ const creators = useRoomCreators(room);
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+ const getMemberPowerLevel = useGetMemberPowerLevel(powerLevels);
+ const { hasMorePower } = useMemberPowerCompare(creators, powerLevels);
+
+ const powerLevelTags = usePowerLevelTags(room, powerLevels);
+ const getMemberPowerTag = useGetMemberPowerTag(room, creators, powerLevels);
+
+ const myUserId = mx.getSafeUserId();
+ const canChangePowers =
+ permissions.stateEvent(StateEvent.RoomPowerLevels, myUserId) &&
+ (myUserId === userId ? true : hasMorePower(myUserId, userId));
+
+ const tag = getMemberPowerTag(userId);
+ const tagIconSrc = tag.icon && getPowerTagIconSrc(mx, useAuthentication, tag.icon);
+
+ const [cords, setCords] = useState();
+
+ const open: MouseEventHandler = (evt) => {
+ setCords(evt.currentTarget.getBoundingClientRect());
+ };
+
+ const close = () => setCords(undefined);
+
+ const [powerState, changePower] = useAsyncCallback(
+ useCallback(
+ async (power: number) => {
+ await mx.setPowerLevel(room.roomId, userId, power);
+ },
+ [mx, userId, room]
+ )
+ );
+ const changing = powerState.status === AsyncStatus.Loading;
+ const error = powerState.status === AsyncStatus.Error;
+ const [selfDemote, setSelfDemote] = useState();
+ const [sharedPower, setSharedPower] = useState();
+
+ const handlePowerSelect = (power: number): void => {
+ close();
+ if (!canChangePowers) return;
+ if (power === getMemberPowerLevel(userId)) return;
+
+ if (userId === mx.getSafeUserId()) {
+ setSelfDemote(power);
+ return;
+ }
+ if (!creators.has(myUserId) && power === getMemberPowerLevel(myUserId)) {
+ setSharedPower(power);
+ return;
+ }
+
+ changePower(power);
+ };
+
+ const handleSelfDemote = (power: number) => {
+ setSelfDemote(undefined);
+ changePower(power);
+ };
+ const handleSharedPower = (power: number) => {
+ setSharedPower(undefined);
+ changePower(power);
+ };
+
+ return (
+ <>
+ isKeyHotkey('arrowdown', evt),
+ isKeyBackward: (evt: KeyboardEvent) => isKeyHotkey('arrowup', evt),
+ }}
+ >
+
+
+ }
+ >
+
+ ) : (
+ <>
+ {!changing && }
+ {changing && }
+ >
+ )
+ }
+ after={tagIconSrc ? : undefined}
+ onClick={open}
+ aria-pressed={!!cords}
+ >
+
+ {tag.name}
+
+
+
+ {typeof selfDemote === 'number' ? (
+ setSelfDemote(undefined)}
+ onChange={handleSelfDemote}
+ />
+ ) : null}
+ {typeof sharedPower === 'number' ? (
+ setSharedPower(undefined)}
+ onChange={handleSharedPower}
+ />
+ ) : null}
+ >
+ );
+}
diff --git a/src/app/components/user-profile/UserChips.tsx b/src/app/components/user-profile/UserChips.tsx
new file mode 100644
index 0000000..53e6618
--- /dev/null
+++ b/src/app/components/user-profile/UserChips.tsx
@@ -0,0 +1,514 @@
+import React, { MouseEventHandler, useCallback, useMemo, useState } from 'react';
+import { useNavigate } from 'react-router-dom';
+import FocusTrap from 'focus-trap-react';
+import { isKeyHotkey } from 'is-hotkey';
+import { Room } from 'matrix-js-sdk';
+import {
+ PopOut,
+ Menu,
+ MenuItem,
+ config,
+ Text,
+ Line,
+ Chip,
+ Icon,
+ Icons,
+ RectCords,
+ Spinner,
+ toRem,
+ Box,
+ Scroll,
+ Avatar,
+} from 'folds';
+import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { getMxIdServer } from '../../utils/matrix';
+import { useCloseUserRoomProfile } from '../../state/hooks/userRoomProfile';
+import { stopPropagation } from '../../utils/keyboard';
+import { copyToClipboard } from '../../utils/dom';
+import { getExploreServerPath } from '../../pages/pathUtils';
+import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback';
+import { factoryRoomIdByAtoZ } from '../../utils/sort';
+import { useMutualRooms, useMutualRoomsSupport } from '../../hooks/useMutualRooms';
+import { useRoomNavigate } from '../../hooks/useRoomNavigate';
+import { useDirectRooms } from '../../pages/client/direct/useDirectRooms';
+import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
+import { useAllJoinedRoomsSet, useGetRoom } from '../../hooks/useGetRoom';
+import { RoomAvatar, RoomIcon } from '../room-avatar';
+import { getDirectRoomAvatarUrl, getRoomAvatarUrl } from '../../utils/room';
+import { nameInitials } from '../../utils/common';
+import { getMatrixToUser } from '../../plugins/matrix-to';
+import { useTimeoutToggle } from '../../hooks/useTimeoutToggle';
+import { useIgnoredUsers } from '../../hooks/useIgnoredUsers';
+import { CutoutCard } from '../cutout-card';
+import { SettingTile } from '../setting-tile';
+
+export function ServerChip({ server }: { server: string }) {
+ const mx = useMatrixClient();
+ const myServer = getMxIdServer(mx.getSafeUserId());
+ const navigate = useNavigate();
+ const closeProfile = useCloseUserRoomProfile();
+ const [copied, setCopied] = useTimeoutToggle();
+
+ const [cords, setCords] = useState();
+
+ const open: MouseEventHandler = (evt) => {
+ setCords(evt.currentTarget.getBoundingClientRect());
+ };
+
+ const close = () => setCords(undefined);
+
+ return (
+ isKeyHotkey('arrowdown', evt),
+ isKeyBackward: (evt: KeyboardEvent) => isKeyHotkey('arrowup', evt),
+ }}
+ >
+
+
+ }
+ >
+
+ ) : (
+
+ )
+ }
+ onClick={open}
+ aria-pressed={!!cords}
+ >
+
+ {server}
+
+
+
+ );
+}
+
+export function ShareChip({ userId }: { userId: string }) {
+ const [cords, setCords] = useState();
+
+ const [copied, setCopied] = useTimeoutToggle();
+
+ const open: MouseEventHandler = (evt) => {
+ setCords(evt.currentTarget.getBoundingClientRect());
+ };
+
+ const close = () => setCords(undefined);
+
+ return (
+ isKeyHotkey('arrowdown', evt),
+ isKeyBackward: (evt: KeyboardEvent) => isKeyHotkey('arrowup', evt),
+ }}
+ >
+
+
+ }
+ >
+
+ ) : (
+
+ )
+ }
+ onClick={open}
+ aria-pressed={!!cords}
+ >
+
+ Share
+
+
+
+ );
+}
+
+type MutualRoomsData = {
+ rooms: Room[];
+ spaces: Room[];
+ directs: Room[];
+};
+
+export function MutualRoomsChip({ userId }: { userId: string }) {
+ const mx = useMatrixClient();
+ const mutualRoomSupported = useMutualRoomsSupport();
+ const mutualRoomsState = useMutualRooms(userId);
+ const { navigateRoom, navigateSpace } = useRoomNavigate();
+ const closeUserRoomProfile = useCloseUserRoomProfile();
+ const directs = useDirectRooms();
+ const useAuthentication = useMediaAuthentication();
+
+ const allJoinedRooms = useAllJoinedRoomsSet();
+ const getRoom = useGetRoom(allJoinedRooms);
+
+ const [cords, setCords] = useState();
+
+ const open: MouseEventHandler = (evt) => {
+ setCords(evt.currentTarget.getBoundingClientRect());
+ };
+
+ const close = () => setCords(undefined);
+
+ const mutual: MutualRoomsData = useMemo(() => {
+ const data: MutualRoomsData = {
+ rooms: [],
+ spaces: [],
+ directs: [],
+ };
+
+ if (mutualRoomsState.status === AsyncStatus.Success) {
+ const mutualRooms = mutualRoomsState.data
+ .sort(factoryRoomIdByAtoZ(mx))
+ .map(getRoom)
+ .filter((room) => !!room);
+ mutualRooms.forEach((room) => {
+ if (room.isSpaceRoom()) {
+ data.spaces.push(room);
+ return;
+ }
+ if (directs.includes(room.roomId)) {
+ data.directs.push(room);
+ return;
+ }
+ data.rooms.push(room);
+ });
+ }
+ return data;
+ }, [mutualRoomsState, getRoom, directs, mx]);
+
+ if (
+ userId === mx.getSafeUserId() ||
+ !mutualRoomSupported ||
+ mutualRoomsState.status === AsyncStatus.Error
+ ) {
+ return null;
+ }
+
+ const renderItem = (room: Room) => {
+ const { roomId } = room;
+ const dm = directs.includes(roomId);
+
+ return (
+
+ );
+ };
+
+ return (
+ isKeyHotkey('arrowdown', evt),
+ isKeyBackward: (evt: KeyboardEvent) => isKeyHotkey('arrowup', evt),
+ }}
+ >
+
+
+ ) : null
+ }
+ >
+ }
+ disabled={
+ mutualRoomsState.status !== AsyncStatus.Success || mutualRoomsState.data.length === 0
+ }
+ onClick={open}
+ aria-pressed={!!cords}
+ >
+
+ {mutualRoomsState.status === AsyncStatus.Success &&
+ `${mutualRoomsState.data.length} Mutual Rooms`}
+ {mutualRoomsState.status === AsyncStatus.Loading && 'Mutual Rooms'}
+
+
+
+ );
+}
+
+export function IgnoredUserAlert() {
+ return (
+
+
+
+
+ Blocked User
+
+
+ You do not receive any messages or invites from this user.
+
+
+
+
+ );
+}
+
+export function OptionsChip({ userId }: { userId: string }) {
+ const mx = useMatrixClient();
+ const [cords, setCords] = useState();
+
+ const open: MouseEventHandler = (evt) => {
+ setCords(evt.currentTarget.getBoundingClientRect());
+ };
+
+ const close = () => setCords(undefined);
+
+ const ignoredUsers = useIgnoredUsers();
+ const ignored = ignoredUsers.includes(userId);
+
+ const [ignoreState, toggleIgnore] = useAsyncCallback(
+ useCallback(async () => {
+ const users = ignoredUsers.filter((u) => u !== userId);
+ if (!ignored) users.push(userId);
+ await mx.setIgnoredUsers(users);
+ }, [mx, ignoredUsers, userId, ignored])
+ );
+ const ignoring = ignoreState.status === AsyncStatus.Loading;
+
+ return (
+ isKeyHotkey('arrowdown', evt),
+ isKeyBackward: (evt: KeyboardEvent) => isKeyHotkey('arrowup', evt),
+ }}
+ >
+
+
+ }
+ >
+
+ {ignoring ? (
+
+ ) : (
+
+ )}
+
+
+ );
+}
diff --git a/src/app/components/user-profile/UserHero.tsx b/src/app/components/user-profile/UserHero.tsx
new file mode 100644
index 0000000..cf4c815
--- /dev/null
+++ b/src/app/components/user-profile/UserHero.tsx
@@ -0,0 +1,75 @@
+import React from 'react';
+import { Avatar, Box, Icon, Icons, Text } from 'folds';
+import classNames from 'classnames';
+import * as css from './styles.css';
+import { UserAvatar } from '../user-avatar';
+import colorMXID from '../../../util/colorMXID';
+import { getMxIdLocalPart } from '../../utils/matrix';
+import { BreakWord, LineClamp3 } from '../../styles/Text.css';
+import { UserPresence } from '../../hooks/useUserPresence';
+import { AvatarPresence, PresenceBadge } from '../presence';
+
+type UserHeroProps = {
+ userId: string;
+ avatarUrl?: string;
+ presence?: UserPresence;
+};
+export function UserHero({ userId, avatarUrl, presence }: UserHeroProps) {
+ return (
+
+
+ {avatarUrl &&

}
+
+
+
+ }
+ >
+
+ }
+ />
+
+
+
+
+ );
+}
+
+type UserHeroNameProps = {
+ displayName?: string;
+ userId: string;
+};
+export function UserHeroName({ displayName, userId }: UserHeroNameProps) {
+ const username = getMxIdLocalPart(userId);
+
+ return (
+
+
+
+ {displayName ?? username ?? userId}
+
+
+
+
+ @{username}
+
+
+
+ );
+}
diff --git a/src/app/components/user-profile/UserModeration.tsx b/src/app/components/user-profile/UserModeration.tsx
new file mode 100644
index 0000000..814bb5b
--- /dev/null
+++ b/src/app/components/user-profile/UserModeration.tsx
@@ -0,0 +1,349 @@
+import { Box, Button, color, config, Icon, Icons, Spinner, Text, Input } from 'folds';
+import React, { useCallback, useRef } from 'react';
+import { useRoom } from '../../hooks/useRoom';
+import { CutoutCard } from '../cutout-card';
+import { SettingTile } from '../setting-tile';
+import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback';
+import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { BreakWord } from '../../styles/Text.css';
+import { useSetting } from '../../state/hooks/settings';
+import { settingsAtom } from '../../state/settings';
+import { timeDayMonYear, timeHourMinute } from '../../utils/time';
+
+type UserKickAlertProps = {
+ reason?: string;
+ kickedBy?: string;
+ ts?: number;
+};
+export function UserKickAlert({ reason, kickedBy, ts }: UserKickAlertProps) {
+ const [hour24Clock] = useSetting(settingsAtom, 'hour24Clock');
+ const [dateFormatString] = useSetting(settingsAtom, 'dateFormatString');
+
+ const time = ts ? timeHourMinute(ts, hour24Clock) : undefined;
+ const date = ts ? timeDayMonYear(ts, dateFormatString) : undefined;
+
+ return (
+
+
+
+
+ Kicked User
+ {time && date && (
+
+ {date} {time}
+
+ )}
+
+
+ {kickedBy && (
+
+ Kicked by: {kickedBy}
+
+ )}
+
+ {reason ? (
+ <>
+ Reason: {reason}
+ >
+ ) : (
+ No Reason Provided.
+ )}
+
+
+
+
+
+ );
+}
+
+type UserBanAlertProps = {
+ userId: string;
+ reason?: string;
+ canUnban?: boolean;
+ bannedBy?: string;
+ ts?: number;
+};
+export function UserBanAlert({ userId, reason, canUnban, bannedBy, ts }: UserBanAlertProps) {
+ const mx = useMatrixClient();
+ const room = useRoom();
+ const [hour24Clock] = useSetting(settingsAtom, 'hour24Clock');
+ const [dateFormatString] = useSetting(settingsAtom, 'dateFormatString');
+
+ const time = ts ? timeHourMinute(ts, hour24Clock) : undefined;
+ const date = ts ? timeDayMonYear(ts, dateFormatString) : undefined;
+
+ const [unbanState, unban] = useAsyncCallback(
+ useCallback(async () => {
+ await mx.unban(room.roomId, userId);
+ }, [mx, room, userId])
+ );
+ const banning = unbanState.status === AsyncStatus.Loading;
+ const error = unbanState.status === AsyncStatus.Error;
+
+ return (
+
+
+
+
+ Banned User
+ {time && date && (
+
+ {date} {time}
+
+ )}
+
+
+ {bannedBy && (
+
+ Banned by: {bannedBy}
+
+ )}
+
+ {reason ? (
+ <>
+ Reason: {reason}
+ >
+ ) : (
+ No Reason Provided.
+ )}
+
+
+ {error && (
+
+ {unbanState.error.message}
+
+ )}
+ {canUnban && (
+ }
+ disabled={banning}
+ >
+ Unban
+
+ )}
+
+
+
+ );
+}
+
+type UserInviteAlertProps = {
+ userId: string;
+ reason?: string;
+ canKick?: boolean;
+ invitedBy?: string;
+ ts?: number;
+};
+export function UserInviteAlert({ userId, reason, canKick, invitedBy, ts }: UserInviteAlertProps) {
+ const mx = useMatrixClient();
+ const room = useRoom();
+ const [hour24Clock] = useSetting(settingsAtom, 'hour24Clock');
+ const [dateFormatString] = useSetting(settingsAtom, 'dateFormatString');
+
+ const time = ts ? timeHourMinute(ts, hour24Clock) : undefined;
+ const date = ts ? timeDayMonYear(ts, dateFormatString) : undefined;
+
+ const [kickState, kick] = useAsyncCallback(
+ useCallback(async () => {
+ await mx.kick(room.roomId, userId);
+ }, [mx, room, userId])
+ );
+ const kicking = kickState.status === AsyncStatus.Loading;
+ const error = kickState.status === AsyncStatus.Error;
+
+ return (
+
+
+
+
+ Invited User
+ {time && date && (
+
+ {date} {time}
+
+ )}
+
+
+ {invitedBy && (
+
+ Invited by: {invitedBy}
+
+ )}
+
+ {reason ? (
+ <>
+ Reason: {reason}
+ >
+ ) : (
+ No Reason Provided.
+ )}
+
+
+ {error && (
+
+ {kickState.error.message}
+
+ )}
+ {canKick && (
+ }
+ disabled={kicking}
+ >
+ Cancel Invite
+
+ )}
+
+
+
+ );
+}
+
+type UserModerationProps = {
+ userId: string;
+ canKick: boolean;
+ canBan: boolean;
+ canInvite: boolean;
+};
+export function UserModeration({ userId, canKick, canBan, canInvite }: UserModerationProps) {
+ const mx = useMatrixClient();
+ const room = useRoom();
+ const reasonInputRef = useRef(null);
+
+ const getReason = useCallback((): string | undefined => {
+ const reason = reasonInputRef.current?.value.trim() || undefined;
+ if (reasonInputRef.current) {
+ reasonInputRef.current.value = '';
+ }
+ return reason;
+ }, []);
+
+ const [kickState, kick] = useAsyncCallback(
+ useCallback(async () => {
+ await mx.kick(room.roomId, userId, getReason());
+ }, [mx, room, userId, getReason])
+ );
+
+ const [banState, ban] = useAsyncCallback(
+ useCallback(async () => {
+ await mx.ban(room.roomId, userId, getReason());
+ }, [mx, room, userId, getReason])
+ );
+
+ const [inviteState, invite] = useAsyncCallback(
+ useCallback(async () => {
+ await mx.invite(room.roomId, userId, getReason());
+ }, [mx, room, userId, getReason])
+ );
+
+ const disabled =
+ kickState.status === AsyncStatus.Loading ||
+ banState.status === AsyncStatus.Loading ||
+ inviteState.status === AsyncStatus.Loading;
+
+ if (!canBan && !canKick && !canInvite) return null;
+
+ return (
+
+
+
+ Moderation
+
+ {kickState.status === AsyncStatus.Error && (
+
+ {kickState.error.message}
+
+ )}
+ {banState.status === AsyncStatus.Error && (
+
+ {banState.error.message}
+
+ )}
+ {inviteState.status === AsyncStatus.Error && (
+
+ {inviteState.error.message}
+
+ )}
+
+
+ {canInvite && (
+
+ ) : (
+
+ )
+ }
+ onClick={invite}
+ disabled={disabled}
+ >
+ Invite
+
+ )}
+ {canKick && (
+
+ ) : (
+
+ )
+ }
+ onClick={kick}
+ disabled={disabled}
+ >
+ Kick
+
+ )}
+ {canBan && (
+
+ ) : (
+
+ )
+ }
+ onClick={ban}
+ disabled={disabled}
+ >
+ Ban
+
+ )}
+
+
+
+ );
+}
diff --git a/src/app/components/user-profile/UserRoomProfile.tsx b/src/app/components/user-profile/UserRoomProfile.tsx
new file mode 100644
index 0000000..e92d909
--- /dev/null
+++ b/src/app/components/user-profile/UserRoomProfile.tsx
@@ -0,0 +1,169 @@
+import { Box, Button, color, config, Icon, Icons, Spinner, Text } from 'folds';
+import React, { useCallback } from 'react';
+import { UserHero, UserHeroName } from './UserHero';
+import { getDMRoomFor, getMxIdServer, mxcUrlToHttp } from '../../utils/matrix';
+import { getMemberAvatarMxc, getMemberDisplayName } from '../../utils/room';
+import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
+import { usePowerLevels } from '../../hooks/usePowerLevels';
+import { useRoom } from '../../hooks/useRoom';
+import { useUserPresence } from '../../hooks/useUserPresence';
+import { IgnoredUserAlert, MutualRoomsChip, OptionsChip, ServerChip, ShareChip } from './UserChips';
+import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback';
+import { createDM } from '../../../client/action/room';
+import { hasDevices } from '../../../util/matrixUtil';
+import { useRoomNavigate } from '../../hooks/useRoomNavigate';
+import { useAlive } from '../../hooks/useAlive';
+import { useCloseUserRoomProfile } from '../../state/hooks/userRoomProfile';
+import { PowerChip } from './PowerChip';
+import { UserInviteAlert, UserBanAlert, UserModeration, UserKickAlert } from './UserModeration';
+import { useIgnoredUsers } from '../../hooks/useIgnoredUsers';
+import { useMembership } from '../../hooks/useMembership';
+import { Membership } from '../../../types/matrix/room';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../hooks/useRoomPermissions';
+import { useMemberPowerCompare } from '../../hooks/useMemberPowerCompare';
+import { CreatorChip } from './CreatorChip';
+
+type UserRoomProfileProps = {
+ userId: string;
+};
+export function UserRoomProfile({ userId }: UserRoomProfileProps) {
+ const mx = useMatrixClient();
+ const useAuthentication = useMediaAuthentication();
+ const { navigateRoom } = useRoomNavigate();
+ const alive = useAlive();
+ const closeUserRoomProfile = useCloseUserRoomProfile();
+ const ignoredUsers = useIgnoredUsers();
+ const ignored = ignoredUsers.includes(userId);
+
+ const room = useRoom();
+ const powerLevels = usePowerLevels(room);
+ const creators = useRoomCreators(room);
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+ const { hasMorePower } = useMemberPowerCompare(creators, powerLevels);
+
+ const myUserId = mx.getSafeUserId();
+ const creator = creators.has(userId);
+
+ const canKickUser = permissions.action('kick', myUserId) && hasMorePower(myUserId, userId);
+ const canBanUser = permissions.action('ban', myUserId) && hasMorePower(myUserId, userId);
+ const canUnban = permissions.action('ban', myUserId);
+ const canInvite = permissions.action('invite', myUserId);
+
+ const member = room.getMember(userId);
+ const membership = useMembership(room, userId);
+
+ const server = getMxIdServer(userId);
+ const displayName = getMemberDisplayName(room, userId);
+ const avatarMxc = getMemberAvatarMxc(room, userId);
+ const avatarUrl = (avatarMxc && mxcUrlToHttp(mx, avatarMxc, useAuthentication)) ?? undefined;
+
+ const presence = useUserPresence(userId);
+
+ const [directMessageState, directMessage] = useAsyncCallback(
+ useCallback(async () => {
+ const result = await createDM(mx, userId, await hasDevices(mx, userId));
+ return result.room_id as string;
+ }, [userId, mx])
+ );
+
+ const handleMessage = () => {
+ const dmRoomId = getDMRoomFor(mx, userId)?.roomId;
+ if (dmRoomId) {
+ navigateRoom(dmRoomId);
+ closeUserRoomProfile();
+ return;
+ }
+ directMessage().then((rId) => {
+ if (alive()) {
+ navigateRoom(rId);
+ closeUserRoomProfile();
+ }
+ });
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ ) : (
+
+ )
+ }
+ onClick={handleMessage}
+ >
+ Message
+
+
+
+ {directMessageState.status === AsyncStatus.Error && (
+
+ {directMessageState.error.message}
+
+ )}
+
+ {server && }
+
+ {creator ? : }
+ {userId !== myUserId && }
+ {userId !== myUserId && }
+
+
+ {ignored && }
+ {member && membership === Membership.Ban && (
+
+ )}
+ {member &&
+ membership === Membership.Leave &&
+ member.events.member &&
+ member.events.member.getSender() !== userId && (
+
+ )}
+ {member && membership === Membership.Invite && (
+
+ )}
+
+
+
+ );
+}
diff --git a/src/app/components/user-profile/index.ts b/src/app/components/user-profile/index.ts
new file mode 100644
index 0000000..54542c7
--- /dev/null
+++ b/src/app/components/user-profile/index.ts
@@ -0,0 +1 @@
+export * from './UserRoomProfile';
diff --git a/src/app/components/user-profile/styles.css.ts b/src/app/components/user-profile/styles.css.ts
new file mode 100644
index 0000000..ad6d5a9
--- /dev/null
+++ b/src/app/components/user-profile/styles.css.ts
@@ -0,0 +1,42 @@
+import { style } from '@vanilla-extract/css';
+import { color, config, toRem } from 'folds';
+
+export const UserHeader = style({
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ zIndex: 1,
+ padding: config.space.S200,
+});
+
+export const UserHero = style({
+ position: 'relative',
+});
+
+export const UserHeroCoverContainer = style({
+ height: toRem(96),
+ overflow: 'hidden',
+});
+export const UserHeroCover = style({
+ height: '100%',
+ width: '100%',
+ objectFit: 'cover',
+ filter: 'blur(16px)',
+ transform: 'scale(2)',
+});
+
+export const UserHeroAvatarContainer = style({
+ position: 'relative',
+ height: toRem(29),
+});
+export const UserAvatarContainer = style({
+ position: 'absolute',
+ left: config.space.S400,
+ top: 0,
+ transform: 'translateY(-50%)',
+ backgroundColor: color.Surface.Container,
+});
+export const UserHeroAvatar = style({
+ outline: `${config.borderWidth.B600} solid ${color.Surface.Container}`,
+});
diff --git a/src/app/features/add-existing/AddExisting.tsx b/src/app/features/add-existing/AddExisting.tsx
new file mode 100644
index 0000000..cbae018
--- /dev/null
+++ b/src/app/features/add-existing/AddExisting.tsx
@@ -0,0 +1,375 @@
+import FocusTrap from 'focus-trap-react';
+import {
+ Avatar,
+ Box,
+ Button,
+ config,
+ Header,
+ Icon,
+ IconButton,
+ Icons,
+ Input,
+ Menu,
+ MenuItem,
+ Modal,
+ Overlay,
+ OverlayBackdrop,
+ OverlayCenter,
+ Scroll,
+ Spinner,
+ Text,
+} from 'folds';
+import React, {
+ ChangeEventHandler,
+ MouseEventHandler,
+ useCallback,
+ useMemo,
+ useRef,
+ useState,
+} from 'react';
+import { useAtomValue } from 'jotai';
+import { useVirtualizer } from '@tanstack/react-virtual';
+import { Room } from 'matrix-js-sdk';
+import { stopPropagation } from '../../utils/keyboard';
+import { useDirects, useRooms, useSpaces } from '../../state/hooks/roomList';
+import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { allRoomsAtom } from '../../state/room-list/roomList';
+import { mDirectAtom } from '../../state/mDirectList';
+import { roomToParentsAtom } from '../../state/room/roomToParents';
+import { useAllJoinedRoomsSet, useGetRoom } from '../../hooks/useGetRoom';
+import { VirtualTile } from '../../components/virtualizer';
+import { getDirectRoomAvatarUrl, getRoomAvatarUrl } from '../../utils/room';
+import { RoomAvatar, RoomIcon } from '../../components/room-avatar';
+import { nameInitials } from '../../utils/common';
+import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
+import { factoryRoomIdByAtoZ } from '../../utils/sort';
+import {
+ SearchItemStrGetter,
+ useAsyncSearch,
+ UseAsyncSearchOptions,
+} from '../../hooks/useAsyncSearch';
+import { highlightText, makeHighlightRegex } from '../../plugins/react-custom-html-parser';
+import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback';
+import { StateEvent } from '../../../types/matrix/room';
+import { getViaServers } from '../../plugins/via-servers';
+import { rateLimitedActions } from '../../utils/matrix';
+import { useAlive } from '../../hooks/useAlive';
+
+const SEARCH_OPTS: UseAsyncSearchOptions = {
+ limit: 500,
+ matchOptions: {
+ contain: true,
+ },
+ normalizeOptions: {
+ ignoreWhitespace: false,
+ },
+};
+
+type AddExistingModalProps = {
+ parentId: string;
+ space?: boolean;
+ requestClose: () => void;
+};
+export function AddExistingModal({ parentId, space, requestClose }: AddExistingModalProps) {
+ const mx = useMatrixClient();
+ const useAuthentication = useMediaAuthentication();
+ const alive = useAlive();
+
+ const mDirects = useAtomValue(mDirectAtom);
+ const spaces = useSpaces(mx, allRoomsAtom);
+ const rooms = useRooms(mx, allRoomsAtom, mDirects);
+ const directs = useDirects(mx, allRoomsAtom, mDirects);
+ const roomIdToParents = useAtomValue(roomToParentsAtom);
+ const scrollRef = useRef(null);
+
+ const [selected, setSelected] = useState([]);
+
+ const allRoomsSet = useAllJoinedRoomsSet();
+ const getRoom = useGetRoom(allRoomsSet);
+
+ const allItems: string[] = useMemo(() => {
+ const rIds = space ? [...spaces] : [...rooms, ...directs];
+
+ return rIds
+ .filter((rId) => rId !== parentId && !roomIdToParents.get(rId)?.has(parentId))
+ .sort(factoryRoomIdByAtoZ(mx));
+ }, [spaces, rooms, directs, space, parentId, roomIdToParents, mx]);
+
+ const getRoomNameStr: SearchItemStrGetter = useCallback(
+ (rId) => getRoom(rId)?.name ?? rId,
+ [getRoom]
+ );
+
+ const [searchResult, searchRoom, resetSearch] = useAsyncSearch(
+ allItems,
+ getRoomNameStr,
+ SEARCH_OPTS
+ );
+ const queryHighlighRegex = searchResult?.query
+ ? makeHighlightRegex(searchResult.query.split(' '))
+ : undefined;
+
+ const items = searchResult ? searchResult.items : allItems;
+
+ const virtualizer = useVirtualizer({
+ count: items.length,
+ getScrollElement: () => scrollRef.current,
+ estimateSize: () => 32,
+ overscan: 5,
+ });
+ const vItems = virtualizer.getVirtualItems();
+
+ const handleSearchChange: ChangeEventHandler = (evt) => {
+ const value = evt.currentTarget.value.trim();
+ if (!value) {
+ resetSearch();
+ return;
+ }
+ searchRoom(value);
+ };
+
+ const [applyState, applyChanges] = useAsyncCallback(
+ useCallback(
+ async (selectedRooms) => {
+ await rateLimitedActions(selectedRooms, async (room) => {
+ const via = getViaServers(room);
+
+ await mx.sendStateEvent(
+ parentId,
+ StateEvent.SpaceChild as any,
+ {
+ auto_join: false,
+ suggested: false,
+ via,
+ },
+ room.roomId
+ );
+ });
+ },
+ [mx, parentId]
+ )
+ );
+ const applyingChanges = applyState.status === AsyncStatus.Loading;
+
+ const handleRoomClick: MouseEventHandler = (evt) => {
+ const roomId = evt.currentTarget.getAttribute('data-room-id');
+ if (!roomId) return;
+ if (selected?.includes(roomId)) {
+ setSelected(selected?.filter((rId) => rId !== roomId));
+ return;
+ }
+ const addedRooms = [...(selected ?? [])];
+ addedRooms.push(roomId);
+ setSelected(addedRooms);
+ };
+
+ const handleApplyChanges = () => {
+ const selectedRooms = selected.map((rId) => getRoom(rId)).filter((room) => room !== undefined);
+ applyChanges(selectedRooms).then(() => {
+ if (alive()) {
+ setSelected([]);
+ requestClose();
+ }
+ });
+ };
+
+ const resetChanges = () => {
+ setSelected([]);
+ };
+
+ return (
+ }>
+
+
+
+
+
+
+ Add Existing
+
+
+
+
+
+
+
+
+
+
+
+ }
+ placeholder="Search"
+ size="400"
+ variant="Background"
+ outlined
+ />
+
+ {vItems.length === 0 && (
+
+
+ {searchResult ? 'No Match Found' : `No ${space ? 'Spaces' : 'Rooms'}`}
+
+
+ {searchResult
+ ? `No match found for "${searchResult.query}".`
+ : `You do not have any ${space ? 'Spaces' : 'Rooms'} to display yet.`}
+
+
+ )}
+
+ {vItems.map((vItem) => {
+ const roomId = items[vItem.index];
+ const room = getRoom(roomId);
+ if (!room) return null;
+ const selectedItem = selected?.includes(roomId);
+ const dm = mDirects.has(room.roomId);
+
+ return (
+
+
+
+ );
+ })}
+
+ {selected.length > 0 && (
+
+ )}
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/features/add-existing/index.ts b/src/app/features/add-existing/index.ts
new file mode 100644
index 0000000..3607c06
--- /dev/null
+++ b/src/app/features/add-existing/index.ts
@@ -0,0 +1 @@
+export * from './AddExisting';
diff --git a/src/app/features/common-settings/developer-tools/StateEventEditor.tsx b/src/app/features/common-settings/developer-tools/StateEventEditor.tsx
index 6ee19be..0ea9690 100644
--- a/src/app/features/common-settings/developer-tools/StateEventEditor.tsx
+++ b/src/app/features/common-settings/developer-tools/StateEventEditor.tsx
@@ -27,8 +27,10 @@ import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback';
import { syntaxErrorPosition } from '../../../utils/dom';
import { SettingTile } from '../../../components/setting-tile';
import { SequenceCardStyle } from '../styles.css';
-import { usePowerLevels, usePowerLevelsAPI } from '../../../hooks/usePowerLevels';
+import { usePowerLevels } from '../../../hooks/usePowerLevels';
import { useTextAreaCodeEditor } from '../../../hooks/useTextAreaCodeEditor';
+import { useRoomCreators } from '../../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../../hooks/useRoomPermissions';
const EDITOR_INTENT_SPACE_COUNT = 2;
@@ -244,8 +246,10 @@ export function StateEventEditor({ type, stateKey, requestClose }: StateEventEdi
const stateEvent = useStateEvent(room, type as unknown as StateEvent, stateKey);
const [editContent, setEditContent] = useState
);
diff --git a/src/app/features/common-settings/members/Members.tsx b/src/app/features/common-settings/members/Members.tsx
index 8d7f89f..9940a75 100644
--- a/src/app/features/common-settings/members/Members.tsx
+++ b/src/app/features/common-settings/members/Members.tsx
@@ -27,17 +27,12 @@ import { Page, PageContent, PageHeader } from '../../../components/page';
import { useRoom } from '../../../hooks/useRoom';
import { useRoomMembers } from '../../../hooks/useRoomMembers';
import { useMatrixClient } from '../../../hooks/useMatrixClient';
-import { usePowerLevels, usePowerLevelsAPI } from '../../../hooks/usePowerLevels';
-import {
- useFlattenPowerLevelTagMembers,
- usePowerLevelTags,
-} from '../../../hooks/usePowerLevelTags';
+import { usePowerLevels } from '../../../hooks/usePowerLevels';
import { VirtualTile } from '../../../components/virtualizer';
import { MemberTile } from '../../../components/member-tile';
import { useMediaAuthentication } from '../../../hooks/useMediaAuthentication';
import { getMxIdLocalPart, getMxIdServer } from '../../../utils/matrix';
import { ServerBadge } from '../../../components/server-badge';
-import { openProfileViewer } from '../../../../client/action/navigation';
import { useDebounce } from '../../../hooks/useDebounce';
import {
SearchItemStrGetter,
@@ -46,13 +41,21 @@ import {
} from '../../../hooks/useAsyncSearch';
import { getMemberSearchStr } from '../../../utils/room';
import { useMembershipFilter, useMembershipFilterMenu } from '../../../hooks/useMemberFilter';
-import { useMemberSort, useMemberSortMenu } from '../../../hooks/useMemberSort';
+import { useMemberPowerSort, useMemberSort, useMemberSortMenu } from '../../../hooks/useMemberSort';
import { settingsAtom } from '../../../state/settings';
import { useSetting } from '../../../state/hooks/settings';
import { UseStateProvider } from '../../../components/UseStateProvider';
import { MembershipFilterMenu } from '../../../components/MembershipFilterMenu';
import { MemberSortMenu } from '../../../components/MemberSortMenu';
import { ScrollTopContainer } from '../../../components/scroll-top-container';
+import {
+ useOpenUserRoomProfile,
+ useUserRoomProfileState,
+} from '../../../state/hooks/userRoomProfile';
+import { useSpaceOptionally } from '../../../hooks/useSpace';
+import { useFlattenPowerTagMembers, useGetMemberPowerTag } from '../../../hooks/useMemberPowerTag';
+import { useRoomCreators } from '../../../hooks/useRoomCreators';
+import { getMouseEventCords } from '../../../utils/dom';
const SEARCH_OPTIONS: UseAsyncSearchOptions = {
limit: 1000,
@@ -77,15 +80,19 @@ export function Members({ requestClose }: MembersProps) {
const room = useRoom();
const members = useRoomMembers(mx, room.roomId);
const fetchingMembers = members.length < room.getJoinedMemberCount();
+ const openProfile = useOpenUserRoomProfile();
+ const profileUser = useUserRoomProfileState();
+ const space = useSpaceOptionally();
const powerLevels = usePowerLevels(room);
- const { getPowerLevel } = usePowerLevelsAPI(powerLevels);
- const [, getPowerLevelTag] = usePowerLevelTags(room, powerLevels);
+ const creators = useRoomCreators(room);
+ const getPowerTag = useGetMemberPowerTag(room, creators, powerLevels);
const [membershipFilterIndex, setMembershipFilterIndex] = useState(0);
const [sortFilterIndex, setSortFilterIndex] = useSetting(settingsAtom, 'memberSortFilterIndex');
const membershipFilter = useMembershipFilter(membershipFilterIndex, useMembershipFilterMenu());
const memberSort = useMemberSort(sortFilterIndex, useMemberSortMenu());
+ const memberPowerSort = useMemberPowerSort(creators);
const scrollRef = useRef(null);
const searchInputRef = useRef(null);
@@ -96,8 +103,8 @@ export function Members({ requestClose }: MembersProps) {
Array.from(members)
.filter(membershipFilter.filterFn)
.sort(memberSort.sortFn)
- .sort((a, b) => b.powerLevel - a.powerLevel),
- [members, membershipFilter, memberSort]
+ .sort(memberPowerSort),
+ [members, membershipFilter, memberSort, memberPowerSort]
);
const [result, search, resetSearch] = useAsyncSearch(
@@ -107,11 +114,7 @@ export function Members({ requestClose }: MembersProps) {
);
if (!result && searchInputRef.current?.value) search(searchInputRef.current.value);
- const flattenTagMembers = useFlattenPowerLevelTagMembers(
- result?.items ?? sortedMembers,
- getPowerLevel,
- getPowerLevelTag
- );
+ const flattenTagMembers = useFlattenPowerTagMembers(result?.items ?? sortedMembers, getPowerTag);
const virtualizer = useVirtualizer({
count: flattenTagMembers.length,
@@ -142,8 +145,9 @@ export function Members({ requestClose }: MembersProps) {
const handleMemberClick: MouseEventHandler = (evt) => {
const btn = evt.currentTarget as HTMLButtonElement;
const userId = btn.getAttribute('data-user-id');
- openProfileViewer(userId, room.roomId);
- requestClose();
+ if (userId) {
+ openProfile(room.roomId, space?.roomId, userId, getMouseEventCords(evt.nativeEvent));
+ }
};
return (
@@ -317,6 +321,7 @@ export function Members({ requestClose }: MembersProps) {
Math.max(...getPowers(powerLevelTags)), [powerLevelTags]);
const [permissionUpdate, setPermissionUpdate] = useState
);
}
@@ -307,6 +311,7 @@ function AddRoomButton({ item }: { item: HierarchyItem }) {
function AddSpaceButton({ item }: { item: HierarchyItem }) {
const [cords, setCords] = useState();
const openCreateSpaceModal = useOpenCreateSpaceModal();
+ const [addExisting, setAddExisting] = useState(false);
const handleAddSpace: MouseEventHandler = (evt) => {
setCords(evt.currentTarget.getBoundingClientRect());
@@ -318,7 +323,7 @@ function AddSpaceButton({ item }: { item: HierarchyItem }) {
};
const handleAddExisting = () => {
- openSpaceAddExisting(item.roomId, true);
+ setAddExisting(true);
setCords(undefined);
};
return (
@@ -363,6 +368,9 @@ function AddSpaceButton({ item }: { item: HierarchyItem }) {
>
Add Space
+ {addExisting && (
+ setAddExisting(false)} />
+ )}
);
}
diff --git a/src/app/features/message-search/SearchResultGroup.tsx b/src/app/features/message-search/SearchResultGroup.tsx
index bc94092..62ef9c4 100644
--- a/src/app/features/message-search/SearchResultGroup.tsx
+++ b/src/app/features/message-search/SearchResultGroup.tsx
@@ -39,15 +39,18 @@ import { UserAvatar } from '../../components/user-avatar';
import { useMentionClickHandler } from '../../hooks/useMentionClickHandler';
import { useSpoilerClickHandler } from '../../hooks/useSpoilerClickHandler';
import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
-import { usePowerLevels, usePowerLevelsAPI } from '../../hooks/usePowerLevels';
-import {
- getTagIconSrc,
- useAccessibleTagColors,
- usePowerLevelTags,
-} from '../../hooks/usePowerLevelTags';
+import { usePowerLevels } from '../../hooks/usePowerLevels';
+import { usePowerLevelTags } from '../../hooks/usePowerLevelTags';
import { useTheme } from '../../hooks/useTheme';
import { PowerIcon } from '../../components/power';
import colorMXID from '../../../util/colorMXID';
+import {
+ getPowerTagIconSrc,
+ useAccessiblePowerTagColors,
+ useGetMemberPowerTag,
+} from '../../hooks/useMemberPowerTag';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useRoomCreatorsTag } from '../../hooks/useRoomCreatorsTag';
type SearchResultGroupProps = {
room: Room;
@@ -76,10 +79,14 @@ export function SearchResultGroup({
const highlightRegex = useMemo(() => makeHighlightRegex(highlights), [highlights]);
const powerLevels = usePowerLevels(room);
- const { getPowerLevel } = usePowerLevelsAPI(powerLevels);
- const [powerLevelTags, getPowerLevelTag] = usePowerLevelTags(room, powerLevels);
+ const creators = useRoomCreators(room);
+
+ const creatorsTag = useRoomCreatorsTag();
+ const powerLevelTags = usePowerLevelTags(room, powerLevels);
+ const getMemberPowerTag = useGetMemberPowerTag(room, creators, powerLevels);
+
const theme = useTheme();
- const accessibleTagColors = useAccessibleTagColors(theme.kind, powerLevelTags);
+ const accessibleTagColors = useAccessiblePowerTagColors(theme.kind, creatorsTag, powerLevelTags);
const mentionClickHandler = useMentionClickHandler(room.roomId);
const spoilerClickHandler = useSpoilerClickHandler();
@@ -226,13 +233,12 @@ export function SearchResultGroup({
const threadRootId =
relation?.rel_type === RelationType.Thread ? relation.event_id : undefined;
- const senderPowerLevel = getPowerLevel(event.sender);
- const powerLevelTag = getPowerLevelTag(senderPowerLevel);
- const tagColor = powerLevelTag?.color
- ? accessibleTagColors?.get(powerLevelTag.color)
+ const memberPowerTag = getMemberPowerTag(event.sender);
+ const tagColor = memberPowerTag?.color
+ ? accessibleTagColors?.get(memberPowerTag.color)
: undefined;
- const tagIconSrc = powerLevelTag?.icon
- ? getTagIconSrc(mx, useAuthentication, powerLevelTag.icon)
+ const tagIconSrc = memberPowerTag?.icon
+ ? getPowerTagIconSrc(mx, useAuthentication, memberPowerTag.icon)
: undefined;
const usernameColor = legacyUsernameColor ? colorMXID(event.sender) : tagColor;
@@ -302,8 +308,7 @@ export function SearchResultGroup({
replyEventId={replyEventId}
threadRootId={threadRootId}
onClick={handleOpenClick}
- getPowerLevel={getPowerLevel}
- getPowerLevelTag={getPowerLevelTag}
+ getMemberPowerTag={getMemberPowerTag}
accessibleTagColors={accessibleTagColors}
legacyUsernameColor={legacyUsernameColor}
/>
diff --git a/src/app/features/room-nav/RoomNavItem.tsx b/src/app/features/room-nav/RoomNavItem.tsx
index bdb8141..ee8b678 100644
--- a/src/app/features/room-nav/RoomNavItem.tsx
+++ b/src/app/features/room-nav/RoomNavItem.tsx
@@ -27,7 +27,7 @@ import { nameInitials } from '../../utils/common';
import { useMatrixClient } from '../../hooks/useMatrixClient';
import { useRoomUnread } from '../../state/hooks/unread';
import { roomToUnreadAtom } from '../../state/room/roomToUnread';
-import { usePowerLevels, usePowerLevelsAPI } from '../../hooks/usePowerLevels';
+import { usePowerLevels } from '../../hooks/usePowerLevels';
import { copyToClipboard } from '../../utils/dom';
import { markAsRead } from '../../../client/action/notifications';
import { openInviteUser } from '../../../client/action/navigation';
@@ -49,6 +49,8 @@ import {
RoomNotificationMode,
} from '../../hooks/useRoomsNotificationPreferences';
import { RoomNotificationModeSwitcher } from '../../components/RoomNotificationSwitcher';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../hooks/useRoomPermissions';
type RoomNavItemMenuProps = {
room: Room;
@@ -61,8 +63,10 @@ const RoomNavItemMenu = forwardRef(
const [hideActivity] = useSetting(settingsAtom, 'hideActivity');
const unread = useRoomUnread(room.roomId, roomToUnreadAtom);
const powerLevels = usePowerLevels(room);
- const { getPowerLevel, canDoAction } = usePowerLevelsAPI(powerLevels);
- const canInvite = canDoAction('invite', getPowerLevel(mx.getUserId() ?? ''));
+ const creators = useRoomCreators(room);
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+ const canInvite = permissions.action('invite', mx.getSafeUserId());
const openRoomSettings = useOpenRoomSettings();
const space = useSpaceOptionally();
diff --git a/src/app/features/room-settings/general/General.tsx b/src/app/features/room-settings/general/General.tsx
index 0c3152c..d9c16c9 100644
--- a/src/app/features/room-settings/general/General.tsx
+++ b/src/app/features/room-settings/general/General.tsx
@@ -13,6 +13,8 @@ import {
RoomPublish,
RoomUpgrade,
} from '../../common-settings/general';
+import { useRoomCreators } from '../../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../../hooks/useRoomPermissions';
type GeneralProps = {
requestClose: () => void;
@@ -20,6 +22,8 @@ type GeneralProps = {
export function General({ requestClose }: GeneralProps) {
const room = useRoom();
const powerLevels = usePowerLevels(room);
+ const creators = useRoomCreators(room);
+ const permissions = useRoomPermissions(creators, powerLevels);
return (
@@ -41,22 +45,22 @@ export function General({ requestClose }: GeneralProps) {
-
+
Options
-
-
-
-
+
+
+
+
Addresses
-
-
+
+
Advance Options
-
+
diff --git a/src/app/features/room-settings/permissions/Permissions.tsx b/src/app/features/room-settings/permissions/Permissions.tsx
index ae3769b..7572a71 100644
--- a/src/app/features/room-settings/permissions/Permissions.tsx
+++ b/src/app/features/room-settings/permissions/Permissions.tsx
@@ -2,11 +2,13 @@ import React, { useState } from 'react';
import { Box, Icon, IconButton, Icons, Scroll, Text } from 'folds';
import { Page, PageContent, PageHeader } from '../../../components/page';
import { useRoom } from '../../../hooks/useRoom';
-import { usePowerLevels, usePowerLevelsAPI } from '../../../hooks/usePowerLevels';
+import { usePowerLevels } from '../../../hooks/usePowerLevels';
import { useMatrixClient } from '../../../hooks/useMatrixClient';
import { StateEvent } from '../../../../types/matrix/room';
import { usePermissionGroups } from './usePermissionItems';
import { PermissionGroups, Powers, PowersEditor } from '../../common-settings/permissions';
+import { useRoomCreators } from '../../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../../hooks/useRoomPermissions';
type PermissionsProps = {
requestClose: () => void;
@@ -15,11 +17,12 @@ export function Permissions({ requestClose }: PermissionsProps) {
const mx = useMatrixClient();
const room = useRoom();
const powerLevels = usePowerLevels(room);
- const { getPowerLevel, canSendStateEvent } = usePowerLevelsAPI(powerLevels);
- const canEditPowers = canSendStateEvent(
- StateEvent.PowerLevelTags,
- getPowerLevel(mx.getSafeUserId())
- );
+ const creators = useRoomCreators(room);
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+
+ const canEditPowers = permissions.stateEvent(StateEvent.PowerLevelTags, mx.getSafeUserId());
+ const canEditPermissions = permissions.stateEvent(StateEvent.RoomPowerLevels, mx.getSafeUserId());
const permissionGroups = usePermissionGroups();
const [powerEditor, setPowerEditor] = useState(false);
@@ -57,7 +60,11 @@ export function Permissions({ requestClose }: PermissionsProps) {
onEdit={canEditPowers ? handleEditPowers : undefined}
permissionGroups={permissionGroups}
/>
-
+
diff --git a/src/app/features/room/MembersDrawer.css.ts b/src/app/features/room/MembersDrawer.css.ts
index a1f4153..860ceda 100644
--- a/src/app/features/room/MembersDrawer.css.ts
+++ b/src/app/features/room/MembersDrawer.css.ts
@@ -1,10 +1,8 @@
import { keyframes, style } from '@vanilla-extract/css';
-import { color, config, toRem } from 'folds';
+import { config, toRem } from 'folds';
export const MembersDrawer = style({
width: toRem(266),
- backgroundColor: color.Background.Container,
- color: color.Background.OnContainer,
});
export const MembersDrawerHeader = style({
diff --git a/src/app/features/room/MembersDrawer.tsx b/src/app/features/room/MembersDrawer.tsx
index 5edb4f2..1a73c23 100644
--- a/src/app/features/room/MembersDrawer.tsx
+++ b/src/app/features/room/MembersDrawer.tsx
@@ -26,11 +26,10 @@ import {
TooltipProvider,
config,
} from 'folds';
-import { Room, RoomMember } from 'matrix-js-sdk';
+import { MatrixClient, Room, RoomMember } from 'matrix-js-sdk';
import { useVirtualizer } from '@tanstack/react-virtual';
import classNames from 'classnames';
-import { openProfileViewer } from '../../../client/action/navigation';
import * as css from './MembersDrawer.css';
import { useMatrixClient } from '../../hooks/useMatrixClient';
import { UseStateProvider } from '../../components/UseStateProvider';
@@ -40,7 +39,6 @@ import {
useAsyncSearch,
} from '../../hooks/useAsyncSearch';
import { useDebounce } from '../../hooks/useDebounce';
-import { usePowerLevelTags, useFlattenPowerLevelTagMembers } from '../../hooks/usePowerLevelTags';
import { TypingIndicator } from '../../components/typing-indicator';
import { getMemberDisplayName, getMemberSearchStr } from '../../utils/room';
import { getMxIdLocalPart } from '../../utils/matrix';
@@ -52,10 +50,124 @@ import { UserAvatar } from '../../components/user-avatar';
import { useRoomTypingMember } from '../../hooks/useRoomTypingMembers';
import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
import { useMembershipFilter, useMembershipFilterMenu } from '../../hooks/useMemberFilter';
-import { useMemberSort, useMemberSortMenu } from '../../hooks/useMemberSort';
-import { usePowerLevelsAPI, usePowerLevelsContext } from '../../hooks/usePowerLevels';
+import { useMemberPowerSort, useMemberSort, useMemberSortMenu } from '../../hooks/useMemberSort';
+import { usePowerLevelsContext } from '../../hooks/usePowerLevels';
import { MembershipFilterMenu } from '../../components/MembershipFilterMenu';
import { MemberSortMenu } from '../../components/MemberSortMenu';
+import { useOpenUserRoomProfile, useUserRoomProfileState } from '../../state/hooks/userRoomProfile';
+import { useSpaceOptionally } from '../../hooks/useSpace';
+import { ContainerColor } from '../../styles/ContainerColor.css';
+import { useFlattenPowerTagMembers, useGetMemberPowerTag } from '../../hooks/useMemberPowerTag';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useUserPresence } from '../../hooks/useUserPresence';
+import { AvatarPresence, PresenceBadge } from '../../components/presence';
+
+type MemberDrawerHeaderProps = {
+ room: Room;
+};
+function MemberDrawerHeader({ room }: MemberDrawerHeaderProps) {
+ const setPeopleDrawer = useSetSetting(settingsAtom, 'isPeopleDrawer');
+
+ return (
+
+
+
+
+ {`${millify(room.getJoinedMemberCount())} Members`}
+
+
+
+
+ Close
+
+ }
+ >
+ {(triggerRef) => (
+ setPeopleDrawer(false)}
+ >
+
+
+ )}
+
+
+
+
+ );
+}
+
+type MemberItemProps = {
+ mx: MatrixClient;
+ useAuthentication: boolean;
+ room: Room;
+ member: RoomMember;
+ onClick: MouseEventHandler;
+ pressed?: boolean;
+ typing?: boolean;
+};
+function MemberItem({
+ mx,
+ useAuthentication,
+ room,
+ member,
+ onClick,
+ pressed,
+ typing,
+}: MemberItemProps) {
+ const name =
+ getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId) ?? member.userId;
+ const avatarMxcUrl = member.getMxcAvatarUrl();
+ const avatarUrl = avatarMxcUrl
+ ? mx.mxcUrlToHttp(avatarMxcUrl, 100, 100, 'crop', undefined, false, useAuthentication)
+ : undefined;
+ const presence = useUserPresence(member.userId)
+
+ return (
+
+ }>
+
+ }
+ />
+
+
+ }
+ after={
+ typing && (
+
+
+
+ )
+ }
+ >
+
+
+ {name}
+
+
+
+ );
+}
const SEARCH_OPTIONS: UseAsyncSearchOptions = {
limit: 1000,
@@ -79,28 +191,28 @@ export function MembersDrawer({ room, members }: MembersDrawerProps) {
const searchInputRef = useRef(null);
const scrollTopAnchorRef = useRef(null);
const powerLevels = usePowerLevelsContext();
- const [, getPowerLevelTag] = usePowerLevelTags(room, powerLevels);
+ const creators = useRoomCreators(room);
+ const getPowerTag = useGetMemberPowerTag(room, creators, powerLevels);
+
const fetchingMembers = members.length < room.getJoinedMemberCount();
- const setPeopleDrawer = useSetSetting(settingsAtom, 'isPeopleDrawer');
+ const openUserRoomProfile = useOpenUserRoomProfile();
+ const space = useSpaceOptionally();
+ const openProfileUserId = useUserRoomProfileState()?.userId;
const membershipFilterMenu = useMembershipFilterMenu();
const sortFilterMenu = useMemberSortMenu();
const [sortFilterIndex, setSortFilterIndex] = useSetting(settingsAtom, 'memberSortFilterIndex');
const [membershipFilterIndex, setMembershipFilterIndex] = useState(0);
- const { getPowerLevel } = usePowerLevelsAPI(powerLevels);
const membershipFilter = useMembershipFilter(membershipFilterIndex, membershipFilterMenu);
const memberSort = useMemberSort(sortFilterIndex, sortFilterMenu);
+ const memberPowerSort = useMemberPowerSort(creators);
const typingMembers = useRoomTypingMember(room.roomId);
const filteredMembers = useMemo(
- () =>
- members
- .filter(membershipFilter.filterFn)
- .sort(memberSort.sortFn)
- .sort((a, b) => b.powerLevel - a.powerLevel),
- [members, membershipFilter, memberSort]
+ () => members.filter(membershipFilter.filterFn).sort(memberSort.sortFn).sort(memberPowerSort),
+ [members, membershipFilter, memberSort, memberPowerSort]
);
const [result, search, resetSearch] = useAsyncSearch(
@@ -112,11 +224,7 @@ export function MembersDrawer({ room, members }: MembersDrawerProps) {
const processMembers = result ? result.items : filteredMembers;
- const PLTagOrRoomMember = useFlattenPowerLevelTagMembers(
- processMembers,
- getPowerLevel,
- getPowerLevelTag
- );
+ const PLTagOrRoomMember = useFlattenPowerTagMembers(processMembers, getPowerTag);
const virtualizer = useVirtualizer({
count: PLTagOrRoomMember.length,
@@ -136,48 +244,20 @@ export function MembersDrawer({ room, members }: MembersDrawerProps) {
{ wait: 200 }
);
- const getName = (member: RoomMember) =>
- getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId) ?? member.userId;
-
const handleMemberClick: MouseEventHandler = (evt) => {
const btn = evt.currentTarget as HTMLButtonElement;
const userId = btn.getAttribute('data-user-id');
- openProfileViewer(userId, room.roomId);
+ if (!userId) return;
+ openUserRoomProfile(room.roomId, space?.roomId, userId, btn.getBoundingClientRect(), 'Left');
};
return (
-
-
-
-
-
- {`${millify(room.getJoinedMemberCount())} Members`}
-
-
-
-
- Close
-
- }
- >
- {(triggerRef) => (
- setPeopleDrawer(false)}
- >
-
-
- )}
-
-
-
-
+
+
@@ -274,9 +354,8 @@ export function MembersDrawer({ room, members }: MembersDrawerProps) {
}}
after={}
>
- {`${result.items.length || 'No'} ${
- result.items.length === 1 ? 'Result' : 'Results'
- }`}
+ {`${result.items.length || 'No'} ${result.items.length === 1 ? 'Result' : 'Results'
+ }`}
)
}
@@ -329,59 +408,28 @@ export function MembersDrawer({ room, members }: MembersDrawerProps) {
);
}
- const member = tagOrMember;
- const name = getName(member);
- const avatarMxcUrl = member.getMxcAvatarUrl();
- const avatarUrl = avatarMxcUrl
- ? mx.mxcUrlToHttp(
- avatarMxcUrl,
- 100,
- 100,
- 'crop',
- undefined,
- false,
- useAuthentication
- )
- : undefined;
-
return (
-
+ receipt.userId === tagOrMember.userId
+ )}
+ />
+
);
})}
diff --git a/src/app/features/room/RoomInput.tsx b/src/app/features/room/RoomInput.tsx
index 1399ec1..b00dee2 100644
--- a/src/app/features/room/RoomInput.tsx
+++ b/src/app/features/room/RoomInput.tsx
@@ -108,21 +108,23 @@ import { ReplyLayout, ThreadIndicator } from '../../components/message';
import { roomToParentsAtom } from '../../state/room/roomToParents';
import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
import { useImagePackRooms } from '../../hooks/useImagePackRooms';
-import { GetPowerLevelTag } from '../../hooks/usePowerLevelTags';
-import { powerLevelAPI, usePowerLevelsContext } from '../../hooks/usePowerLevels';
+import { usePowerLevelsContext } from '../../hooks/usePowerLevels';
import colorMXID from '../../../util/colorMXID';
import { useIsDirectRoom } from '../../hooks/useRoom';
+import { useAccessiblePowerTagColors, useGetMemberPowerTag } from '../../hooks/useMemberPowerTag';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useTheme } from '../../hooks/useTheme';
+import { useRoomCreatorsTag } from '../../hooks/useRoomCreatorsTag';
+import { usePowerLevelTags } from '../../hooks/usePowerLevelTags';
interface RoomInputProps {
editor: Editor;
fileDropContainerRef: RefObject;
roomId: string;
room: Room;
- getPowerLevelTag: GetPowerLevelTag;
- accessibleTagColors: Map;
}
export const RoomInput = forwardRef(
- ({ editor, fileDropContainerRef, roomId, room, getPowerLevelTag, accessibleTagColors }, ref) => {
+ ({ editor, fileDropContainerRef, roomId, room }, ref) => {
const mx = useMatrixClient();
const useAuthentication = useMediaAuthentication();
const [enterForNewline] = useSetting(settingsAtom, 'enterForNewline');
@@ -134,13 +136,24 @@ export const RoomInput = forwardRef(
const emojiBtnRef = useRef(null);
const roomToParents = useAtomValue(roomToParentsAtom);
const powerLevels = usePowerLevelsContext();
+ const creators = useRoomCreators(room);
const [msgDraft, setMsgDraft] = useAtom(roomIdToMsgDraftAtomFamily(roomId));
const [replyDraft, setReplyDraft] = useAtom(roomIdToReplyDraftAtomFamily(roomId));
const replyUserID = replyDraft?.userId;
- const replyPowerTag = getPowerLevelTag(powerLevelAPI.getPowerLevel(powerLevels, replyUserID));
- const replyPowerColor = replyPowerTag.color
+ const powerLevelTags = usePowerLevelTags(room, powerLevels);
+ const creatorsTag = useRoomCreatorsTag();
+ const getMemberPowerTag = useGetMemberPowerTag(room, creators, powerLevels);
+ const theme = useTheme();
+ const accessibleTagColors = useAccessiblePowerTagColors(
+ theme.kind,
+ creatorsTag,
+ powerLevelTags
+ );
+
+ const replyPowerTag = replyUserID ? getMemberPowerTag(replyUserID) : undefined;
+ const replyPowerColor = replyPowerTag?.color
? accessibleTagColors.get(replyPowerTag.color)
: undefined;
const replyUsernameColor =
@@ -277,7 +290,7 @@ export const RoomInput = forwardRef(
});
handleCancelUpload(uploads);
const contents = fulfilledPromiseSettledResult(await Promise.allSettled(contentsPromises));
- contents.forEach((content) => mx.sendMessage(roomId, content));
+ contents.forEach((content) => mx.sendMessage(roomId, content as any));
};
const submit = useCallback(() => {
@@ -356,7 +369,7 @@ export const RoomInput = forwardRef(
content['m.relates_to'].is_falling_back = false;
}
}
- mx.sendMessage(roomId, content);
+ mx.sendMessage(roomId, content as any);
resetEditor(editor);
resetEditorHistory(editor);
setReplyDraft(undefined);
@@ -567,14 +580,27 @@ export const RoomInput = forwardRef(
)
}
before={
- pickFile('*')}
- variant="SurfaceVariant"
- size="300"
- radii="300"
- >
-
-
+ room.hasEncryptionStateEvent() ?
+ [
+ pickFile('*')}
+ variant="SurfaceVariant"
+ size="300"
+ radii="300"
+ >
+
+ ,
+ ,
+ ] : (
+ < IconButton
+ onClick={() => pickFile('*')}
+ variant="SurfaceVariant"
+ size="300"
+ radii="300"
+ >
+
+
+ )
}
after={
<>
diff --git a/src/app/features/room/RoomTimeline.tsx b/src/app/features/room/RoomTimeline.tsx
index 244eb32..7a012e4 100644
--- a/src/app/features/room/RoomTimeline.tsx
+++ b/src/app/features/room/RoomTimeline.tsx
@@ -85,7 +85,6 @@ import {
} from '../../utils/room';
import { useSetting } from '../../state/hooks/settings';
import { MessageLayout, settingsAtom } from '../../state/settings';
-import { openProfileViewer } from '../../../client/action/navigation';
import { useMatrixEventRenderer } from '../../hooks/useMatrixEventRenderer';
import { Reactions, Message, Event, EncryptedContent } from './message';
import { useMemberEventParser } from '../../hooks/useMemberEventParser';
@@ -102,7 +101,7 @@ import * as css from './RoomTimeline.css';
import { inSameDay, minuteDifference, timeDayMonthYear, today, yesterday } from '../../utils/time';
import { createMentionElement, isEmptyEditor, moveCursor } from '../../components/editor';
import { roomIdToReplyDraftAtomFamily } from '../../state/room/roomInputDrafts';
-import { usePowerLevelsAPI, usePowerLevelsContext } from '../../hooks/usePowerLevels';
+import { usePowerLevelsContext } from '../../hooks/usePowerLevels';
import { GetContentCallback, MessageEvent, StateEvent } from '../../../types/matrix/room';
import { useKeyDown } from '../../hooks/useKeyDown';
import { useDocumentFocusChange } from '../../hooks/useDocumentFocusChange';
@@ -118,8 +117,15 @@ import { useRoomNavigate } from '../../hooks/useRoomNavigate';
import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
import { useIgnoredUsers } from '../../hooks/useIgnoredUsers';
import { useImagePackRooms } from '../../hooks/useImagePackRooms';
-import { GetPowerLevelTag } from '../../hooks/usePowerLevelTags';
import { useIsDirectRoom } from '../../hooks/useRoom';
+import { useOpenUserRoomProfile } from '../../state/hooks/userRoomProfile';
+import { useSpaceOptionally } from '../../hooks/useSpace';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../hooks/useRoomPermissions';
+import { useAccessiblePowerTagColors, useGetMemberPowerTag } from '../../hooks/useMemberPowerTag';
+import { useTheme } from '../../hooks/useTheme';
+import { useRoomCreatorsTag } from '../../hooks/useRoomCreatorsTag';
+import { usePowerLevelTags } from '../../hooks/usePowerLevelTags';
const TimelineFloat = as<'div', css.TimelineFloatVariants>(
({ position, className, ...props }, ref) => (
@@ -222,8 +228,6 @@ type RoomTimelineProps = {
eventId?: string;
roomInputRef: RefObject;
editor: Editor;
- getPowerLevelTag: GetPowerLevelTag;
- accessibleTagColors: Map;
};
const PAGINATION_LIMIT = 80;
@@ -426,14 +430,7 @@ const getRoomUnreadInfo = (room: Room, scrollTo = false) => {
};
};
-export function RoomTimeline({
- room,
- eventId,
- roomInputRef,
- editor,
- getPowerLevelTag,
- accessibleTagColors,
-}: RoomTimelineProps) {
+export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimelineProps) {
const mx = useMatrixClient();
const useAuthentication = useMediaAuthentication();
const [hideActivity] = useSetting(settingsAtom, 'hideActivity');
@@ -458,13 +455,24 @@ export function RoomTimeline({
const setReplyDraft = useSetAtom(roomIdToReplyDraftAtomFamily(room.roomId));
const powerLevels = usePowerLevelsContext();
- const { canDoAction, canSendEvent, canSendStateEvent, getPowerLevel } =
- usePowerLevelsAPI(powerLevels);
+ const creators = useRoomCreators(room);
- const myPowerLevel = getPowerLevel(mx.getUserId() ?? '');
- const canRedact = canDoAction('redact', myPowerLevel);
- const canSendReaction = canSendEvent(MessageEvent.Reaction, myPowerLevel);
- const canPinEvent = canSendStateEvent(StateEvent.RoomPinnedEvents, myPowerLevel);
+ const creatorsTag = useRoomCreatorsTag();
+ const powerLevelTags = usePowerLevelTags(room, powerLevels);
+ const getMemberPowerTag = useGetMemberPowerTag(room, creators, powerLevels);
+
+ const theme = useTheme();
+ const accessiblePowerTagColors = useAccessiblePowerTagColors(
+ theme.kind,
+ creatorsTag,
+ powerLevelTags
+ );
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+
+ const canRedact = permissions.action('redact', mx.getSafeUserId());
+ const canSendReaction = permissions.event(MessageEvent.Reaction, mx.getSafeUserId());
+ const canPinEvent = permissions.stateEvent(StateEvent.RoomPinnedEvents, mx.getSafeUserId());
const [editId, setEditId] = useState();
const roomToParents = useAtomValue(roomToParentsAtom);
@@ -472,6 +480,8 @@ export function RoomTimeline({
const { navigateRoom } = useRoomNavigate();
const mentionClickHandler = useMentionClickHandler(room.roomId);
const spoilerClickHandler = useSpoilerClickHandler();
+ const openUserRoomProfile = useOpenUserRoomProfile();
+ const space = useSpaceOptionally();
const imagePackRooms: Room[] = useImagePackRooms(room.roomId, roomToParents);
@@ -909,9 +919,14 @@ export function RoomTimeline({
console.warn('Button should have "data-user-id" attribute!');
return;
}
- openProfileViewer(userId, room.roomId);
+ openUserRoomProfile(
+ room.roomId,
+ space?.roomId,
+ userId,
+ evt.currentTarget.getBoundingClientRect()
+ );
},
- [room]
+ [room, space, openUserRoomProfile]
);
const handleUsernameClick: MouseEventHandler = useCallback(
(evt) => {
@@ -982,7 +997,7 @@ export function RoomTimeline({
(reactions.find(eventWithShortcode)?.getContent().shortcode as string | undefined);
mx.sendEvent(
room.roomId,
- MessageEvent.Reaction,
+ MessageEvent.Reaction as any,
getReactionContent(targetEventId, key, rShortcode)
);
},
@@ -1017,7 +1032,6 @@ export function RoomTimeline({
editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent()) as GetContentCallback;
const senderId = mEvent.getSender() ?? '';
- const senderPowerLevel = getPowerLevel(mEvent.getSender());
const senderDisplayName =
getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId;
@@ -1051,9 +1065,8 @@ export function RoomTimeline({
replyEventId={replyEventId}
threadRootId={threadRootId}
onClick={handleOpenReply}
- getPowerLevel={getPowerLevel}
- getPowerLevelTag={getPowerLevelTag}
- accessibleTagColors={accessibleTagColors}
+ getMemberPowerTag={getMemberPowerTag}
+ accessibleTagColors={accessiblePowerTagColors}
legacyUsernameColor={legacyUsernameColor || direct}
/>
)
@@ -1072,8 +1085,8 @@ export function RoomTimeline({
}
hideReadReceipts={hideActivity}
showDeveloperTools={showDeveloperTools}
- powerLevelTag={getPowerLevelTag(senderPowerLevel)}
- accessibleTagColors={accessibleTagColors}
+ memberPowerTag={getMemberPowerTag(senderId)}
+ accessibleTagColors={accessiblePowerTagColors}
legacyUsernameColor={legacyUsernameColor || direct}
hour24Clock={hour24Clock}
dateFormatString={dateFormatString}
@@ -1103,7 +1116,6 @@ export function RoomTimeline({
const hasReactions = reactions && reactions.length > 0;
const { replyEventId, threadRootId } = mEvent;
const highlighted = focusItem?.index === item && focusItem.highlight;
- const senderPowerLevel = getPowerLevel(mEvent.getSender());
return (
)
@@ -1156,8 +1167,8 @@ export function RoomTimeline({
}
hideReadReceipts={hideActivity}
showDeveloperTools={showDeveloperTools}
- powerLevelTag={getPowerLevelTag(senderPowerLevel)}
- accessibleTagColors={accessibleTagColors}
+ memberPowerTag={getMemberPowerTag(mEvent.getSender() ?? '')}
+ accessibleTagColors={accessiblePowerTagColors}
legacyUsernameColor={legacyUsernameColor || direct}
hour24Clock={hour24Clock}
dateFormatString={dateFormatString}
@@ -1224,7 +1235,6 @@ export function RoomTimeline({
const reactions = reactionRelations && reactionRelations.getSortedAnnotationsByKey();
const hasReactions = reactions && reactions.length > 0;
const highlighted = focusItem?.index === item && focusItem.highlight;
- const senderPowerLevel = getPowerLevel(mEvent.getSender());
return (
{
@@ -70,15 +70,10 @@ export function RoomView({ room, eventId }: { room: Room; eventId?: string }) {
const tombstoneEvent = useStateEvent(room, StateEvent.RoomTombstone);
const powerLevels = usePowerLevelsContext();
- const { getPowerLevel, canSendEvent } = usePowerLevelsAPI(powerLevels);
- const myUserId = mx.getUserId();
- const canMessage = myUserId
- ? canSendEvent(EventType.RoomMessage, getPowerLevel(myUserId))
- : false;
+ const creators = useRoomCreators(room);
- const [powerLevelTags, getPowerLevelTag] = usePowerLevelTags(room, powerLevels);
- const theme = useTheme();
- const accessibleTagColors = useAccessibleTagColors(theme.kind, powerLevelTags);
+ const permissions = useRoomPermissions(creators, powerLevels);
+ const canMessage = permissions.event(EventType.RoomMessage, mx.getSafeUserId());
useKeyDown(
window,
@@ -109,8 +104,6 @@ export function RoomView({ room, eventId }: { room: Room; eventId?: string }) {
eventId={eventId}
roomInputRef={roomInputRef}
editor={editor}
- getPowerLevelTag={getPowerLevelTag}
- accessibleTagColors={accessibleTagColors}
/>
@@ -131,8 +124,6 @@ export function RoomView({ room, eventId }: { room: Room; eventId?: string }) {
roomId={roomId}
fileDropContainerRef={roomViewRef}
ref={roomInputRef}
- getPowerLevelTag={getPowerLevelTag}
- accessibleTagColors={accessibleTagColors}
/>
)}
{!canMessage && (
diff --git a/src/app/features/room/RoomViewHeader.tsx b/src/app/features/room/RoomViewHeader.tsx
index d8e2e8b..291c21c 100644
--- a/src/app/features/room/RoomViewHeader.tsx
+++ b/src/app/features/room/RoomViewHeader.tsx
@@ -42,7 +42,7 @@ import { getCanonicalAliasOrRoomId, isRoomAlias, mxcUrlToHttp } from '../../util
import { _SearchPathSearchParams } from '../../pages/paths';
import * as css from './RoomViewHeader.css';
import { useRoomUnread } from '../../state/hooks/unread';
-import { usePowerLevelsAPI, usePowerLevelsContext } from '../../hooks/usePowerLevels';
+import { usePowerLevelsContext } from '../../hooks/usePowerLevels';
import { markAsRead } from '../../../client/action/notifications';
import { roomToUnreadAtom } from '../../state/room/roomToUnread';
import { openInviteUser } from '../../../client/action/navigation';
@@ -67,6 +67,8 @@ import {
} from '../../hooks/useRoomsNotificationPreferences';
import { JumpToTime } from './jump-to-time';
import { useRoomNavigate } from '../../hooks/useRoomNavigate';
+import { useRoomCreators } from '../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../hooks/useRoomPermissions';
type RoomMenuProps = {
room: Room;
@@ -77,8 +79,10 @@ const RoomMenu = forwardRef(({ room, requestClose
const [hideActivity] = useSetting(settingsAtom, 'hideActivity');
const unread = useRoomUnread(room.roomId, roomToUnreadAtom);
const powerLevels = usePowerLevelsContext();
- const { getPowerLevel, canDoAction } = usePowerLevelsAPI(powerLevels);
- const canInvite = canDoAction('invite', getPowerLevel(mx.getUserId() ?? ''));
+ const creators = useRoomCreators(room);
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+ const canInvite = permissions.action('invite', mx.getSafeUserId());
const notificationPreferences = useRoomsNotificationPreferencesContext();
const notificationMode = getRoomNotificationMode(notificationPreferences, room.roomId);
const { navigateRoom } = useRoomNavigate();
diff --git a/src/app/features/room/message/Message.tsx b/src/app/features/room/message/Message.tsx
index e906a02..fbe3577 100644
--- a/src/app/features/room/message/Message.tsx
+++ b/src/app/features/room/message/Message.tsx
@@ -75,10 +75,10 @@ import { getMatrixToRoomEvent } from '../../../plugins/matrix-to';
import { getViaServers } from '../../../plugins/via-servers';
import { useMediaAuthentication } from '../../../hooks/useMediaAuthentication';
import { useRoomPinnedEvents } from '../../../hooks/useRoomPinnedEvents';
-import { StateEvent } from '../../../../types/matrix/room';
-import { getTagIconSrc, PowerLevelTag } from '../../../hooks/usePowerLevelTags';
+import { MemberPowerTag, StateEvent } from '../../../../types/matrix/room';
import { PowerIcon } from '../../../components/power';
import colorMXID from '../../../../util/colorMXID';
+import { getPowerTagIconSrc } from '../../../hooks/useMemberPowerTag';
export type ReactionHandler = (keyOrMxc: string, shortcode: string) => void;
@@ -371,7 +371,7 @@ export const MessagePinItem = as<
if (!isPinned && eventId) {
pinContent.pinned.push(eventId);
}
- mx.sendStateEvent(room.roomId, StateEvent.RoomPinnedEvents, pinContent);
+ mx.sendStateEvent(room.roomId, StateEvent.RoomPinnedEvents as any, pinContent);
onClose?.();
};
@@ -679,7 +679,7 @@ export type MessageProps = {
reactions?: ReactNode;
hideReadReceipts?: boolean;
showDeveloperTools?: boolean;
- powerLevelTag?: PowerLevelTag;
+ memberPowerTag?: MemberPowerTag;
accessibleTagColors?: Map;
legacyUsernameColor?: boolean;
hour24Clock: boolean;
@@ -710,7 +710,7 @@ export const Message = as<'div', MessageProps>(
reactions,
hideReadReceipts,
showDeveloperTools,
- powerLevelTag,
+ memberPowerTag,
accessibleTagColors,
legacyUsernameColor,
hour24Clock,
@@ -733,11 +733,11 @@ export const Message = as<'div', MessageProps>(
getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId;
const senderAvatarMxc = getMemberAvatarMxc(room, senderId);
- const tagColor = powerLevelTag?.color
- ? accessibleTagColors?.get(powerLevelTag.color)
+ const tagColor = memberPowerTag?.color
+ ? accessibleTagColors?.get(memberPowerTag.color)
: undefined;
- const tagIconSrc = powerLevelTag?.icon
- ? getTagIconSrc(mx, useAuthentication, powerLevelTag.icon)
+ const tagIconSrc = memberPowerTag?.icon
+ ? getPowerTagIconSrc(mx, useAuthentication, memberPowerTag.icon)
: undefined;
const usernameColor = legacyUsernameColor ? colorMXID(senderId) : tagColor;
diff --git a/src/app/features/room/reaction-viewer/ReactionViewer.tsx b/src/app/features/room/reaction-viewer/ReactionViewer.tsx
index d4b3984..6c686bc 100644
--- a/src/app/features/room/reaction-viewer/ReactionViewer.tsx
+++ b/src/app/features/room/reaction-viewer/ReactionViewer.tsx
@@ -20,12 +20,14 @@ import { getMemberDisplayName } from '../../../utils/room';
import { eventWithShortcode, getMxIdLocalPart } from '../../../utils/matrix';
import * as css from './ReactionViewer.css';
import { useMatrixClient } from '../../../hooks/useMatrixClient';
-import { openProfileViewer } from '../../../../client/action/navigation';
import { useRelations } from '../../../hooks/useRelations';
import { Reaction } from '../../../components/message';
import { getHexcodeForEmoji, getShortcodeFor } from '../../../plugins/emoji';
import { UserAvatar } from '../../../components/user-avatar';
import { useMediaAuthentication } from '../../../hooks/useMediaAuthentication';
+import { useOpenUserRoomProfile } from '../../../state/hooks/userRoomProfile';
+import { useSpaceOptionally } from '../../../hooks/useSpace';
+import { getMouseEventCords } from '../../../utils/dom';
export type ReactionViewerProps = {
room: Room;
@@ -41,6 +43,8 @@ export const ReactionViewer = as<'div', ReactionViewerProps>(
relations,
useCallback((rel) => [...(rel.getSortedAnnotationsByKey() ?? [])], [])
);
+ const space = useSpaceOptionally();
+ const openProfile = useOpenUserRoomProfile();
const [selectedKey, setSelectedKey] = useState(() => {
if (initialKey) return initialKey;
@@ -111,24 +115,31 @@ export const ReactionViewer = as<'div', ReactionViewerProps>(
const name = (member ? getName(member) : getMxIdLocalPart(senderId)) ?? senderId;
const avatarMxcUrl = member?.getMxcAvatarUrl();
- const avatarUrl = avatarMxcUrl ? mx.mxcUrlToHttp(
- avatarMxcUrl,
- 100,
- 100,
- 'crop',
- undefined,
- false,
- useAuthentication
- ) : undefined;
+ const avatarUrl = avatarMxcUrl
+ ? mx.mxcUrlToHttp(
+ avatarMxcUrl,
+ 100,
+ 100,
+ 'crop',
+ undefined,
+ false,
+ useAuthentication
+ )
+ : undefined;
return (
diff --git a/src/app/hooks/useDirectUsers.ts b/src/app/hooks/useDirectUsers.ts
new file mode 100644
index 0000000..3aa1892
--- /dev/null
+++ b/src/app/hooks/useDirectUsers.ts
@@ -0,0 +1,27 @@
+import { useMemo } from 'react';
+import { AccountDataEvent, MDirectContent } from '../../types/matrix/accountData';
+import { useAccountData } from './useAccountData';
+import { useAllJoinedRoomsSet, useGetRoom } from './useGetRoom';
+
+export const useDirectUsers = (): string[] => {
+ const directEvent = useAccountData(AccountDataEvent.Direct);
+ const content = directEvent?.getContent();
+
+ const allJoinedRooms = useAllJoinedRoomsSet();
+ const getRoom = useGetRoom(allJoinedRooms);
+
+ const users = useMemo(() => {
+ if (typeof content !== 'object') return [];
+
+ const u = Object.keys(content).filter((userId) => {
+ const rooms = content[userId];
+ if (!Array.isArray(rooms)) return false;
+ const hasDM = rooms.some((roomId) => typeof roomId === 'string' && !!getRoom(roomId));
+ return hasDM;
+ });
+
+ return u;
+ }, [content, getRoom]);
+
+ return users;
+};
diff --git a/src/app/hooks/useMemberPowerCompare.ts b/src/app/hooks/useMemberPowerCompare.ts
new file mode 100644
index 0000000..72163ed
--- /dev/null
+++ b/src/app/hooks/useMemberPowerCompare.ts
@@ -0,0 +1,28 @@
+import { useCallback } from 'react';
+import { IPowerLevels, readPowerLevel } from './usePowerLevels';
+
+export const useMemberPowerCompare = (creators: Set, powerLevels: IPowerLevels) => {
+ /**
+ * returns `true` if `userIdA` has more power than `userIdB`
+ * returns `false` otherwise
+ */
+ const hasMorePower = useCallback(
+ (userIdA: string, userIdB: string): boolean => {
+ const aIsCreator = creators.has(userIdA);
+ const bIsCreator = creators.has(userIdB);
+ if (aIsCreator && bIsCreator) return false;
+ if (aIsCreator) return true;
+ if (bIsCreator) return false;
+
+ const aPower = readPowerLevel.user(powerLevels, userIdA);
+ const bPower = readPowerLevel.user(powerLevels, userIdB);
+
+ return aPower > bPower;
+ },
+ [creators, powerLevels]
+ );
+
+ return {
+ hasMorePower,
+ };
+};
diff --git a/src/app/hooks/useMemberPowerTag.ts b/src/app/hooks/useMemberPowerTag.ts
new file mode 100644
index 0000000..31e52aa
--- /dev/null
+++ b/src/app/hooks/useMemberPowerTag.ts
@@ -0,0 +1,87 @@
+import { useCallback, useMemo } from 'react';
+import { MatrixClient, Room, RoomMember } from 'matrix-js-sdk';
+import { getPowerLevelTag, PowerLevelTags, usePowerLevelTags } from './usePowerLevelTags';
+import { IPowerLevels, readPowerLevel } from './usePowerLevels';
+import { MemberPowerTag, MemberPowerTagIcon } from '../../types/matrix/room';
+import { useRoomCreatorsTag } from './useRoomCreatorsTag';
+import { ThemeKind } from './useTheme';
+import { accessibleColor } from '../plugins/color';
+
+export type GetMemberPowerTag = (userId: string) => MemberPowerTag;
+
+export const useGetMemberPowerTag = (
+ room: Room,
+ creators: Set,
+ powerLevels: IPowerLevels
+) => {
+ const creatorsTag = useRoomCreatorsTag();
+ const powerLevelTags = usePowerLevelTags(room, powerLevels);
+
+ const getMemberPowerTag: GetMemberPowerTag = useCallback(
+ (userId) => {
+ if (creators.has(userId)) {
+ return creatorsTag;
+ }
+
+ const power = readPowerLevel.user(powerLevels, userId);
+ return getPowerLevelTag(powerLevelTags, power);
+ },
+ [creators, creatorsTag, powerLevels, powerLevelTags]
+ );
+
+ return getMemberPowerTag;
+};
+
+export const getPowerTagIconSrc = (
+ mx: MatrixClient,
+ useAuthentication: boolean,
+ icon: MemberPowerTagIcon
+): string | undefined =>
+ icon?.key?.startsWith('mxc://')
+ ? mx.mxcUrlToHttp(icon.key, 96, 96, 'scale', undefined, undefined, useAuthentication) ?? '🌻'
+ : icon?.key;
+
+export const useAccessiblePowerTagColors = (
+ themeKind: ThemeKind,
+ creatorsTag: MemberPowerTag,
+ powerLevelTags: PowerLevelTags
+): Map => {
+ const accessibleColors: Map = useMemo(() => {
+ const colors: Map = new Map();
+ if (creatorsTag.color) {
+ colors.set(creatorsTag.color, accessibleColor(themeKind, creatorsTag.color));
+ }
+
+ Object.values(powerLevelTags).forEach((tag) => {
+ const { color } = tag;
+ if (!color) return;
+
+ colors.set(color, accessibleColor(themeKind, color));
+ });
+
+ return colors;
+ }, [powerLevelTags, creatorsTag, themeKind]);
+
+ return accessibleColors;
+};
+
+export const useFlattenPowerTagMembers = (
+ members: RoomMember[],
+ getTag: GetMemberPowerTag
+): Array => {
+ const PLTagOrRoomMember = useMemo(() => {
+ let prevTag: MemberPowerTag | undefined;
+ const tagOrMember: Array = [];
+ members.forEach((member) => {
+ const tag = getTag(member.userId);
+ if (tag !== prevTag) {
+ prevTag = tag;
+ tagOrMember.push(tag);
+ }
+ tagOrMember.push(member);
+ });
+ return tagOrMember;
+ }, [members, getTag]);
+
+ return PLTagOrRoomMember;
+};
diff --git a/src/app/hooks/useMemberSort.ts b/src/app/hooks/useMemberSort.ts
index da95570..d8e403c 100644
--- a/src/app/hooks/useMemberSort.ts
+++ b/src/app/hooks/useMemberSort.ts
@@ -1,5 +1,5 @@
import { RoomMember } from 'matrix-js-sdk';
-import { useMemo } from 'react';
+import { useCallback, useMemo } from 'react';
export const MemberSort = {
Ascending: (a: RoomMember, b: RoomMember) =>
@@ -46,3 +46,20 @@ export const useMemberSort = (index: number, memberSort: MemberSortItem[]): Memb
const item = memberSort[index] ?? memberSort[0];
return item;
};
+
+export const useMemberPowerSort = (creators: Set): MemberSortFn => {
+ const sort: MemberSortFn = useCallback(
+ (a, b) => {
+ if (creators.has(a.userId) && creators.has(b.userId)) {
+ return 0;
+ }
+ if (creators.has(a.userId)) return -1;
+ if (creators.has(b.userId)) return 1;
+
+ return b.powerLevel - a.powerLevel;
+ },
+ [creators]
+ );
+
+ return sort;
+};
diff --git a/src/app/hooks/useMembership.ts b/src/app/hooks/useMembership.ts
new file mode 100644
index 0000000..dbdd527
--- /dev/null
+++ b/src/app/hooks/useMembership.ts
@@ -0,0 +1,28 @@
+import { useEffect, useState } from 'react';
+import { Room, RoomMemberEvent, RoomMemberEventHandlerMap } from 'matrix-js-sdk';
+import { Membership } from '../../types/matrix/room';
+
+export const useMembership = (room: Room, userId: string): Membership => {
+ const member = room.getMember(userId);
+
+ const [membership, setMembership] = useState(
+ () => (member?.membership as Membership | undefined) ?? Membership.Leave
+ );
+
+ useEffect(() => {
+ const handleMembershipChange: RoomMemberEventHandlerMap[RoomMemberEvent.Membership] = (
+ event,
+ m
+ ) => {
+ if (event.getRoomId() === room.roomId && m.userId === userId) {
+ setMembership((m.membership as Membership | undefined) ?? Membership.Leave);
+ }
+ };
+ member?.on(RoomMemberEvent.Membership, handleMembershipChange);
+ return () => {
+ member?.removeListener(RoomMemberEvent.Membership, handleMembershipChange);
+ };
+ }, [room, member, userId]);
+
+ return membership;
+};
diff --git a/src/app/hooks/useMentionClickHandler.ts b/src/app/hooks/useMentionClickHandler.ts
index 49c291c..9dc81d4 100644
--- a/src/app/hooks/useMentionClickHandler.ts
+++ b/src/app/hooks/useMentionClickHandler.ts
@@ -3,14 +3,17 @@ import { useNavigate } from 'react-router-dom';
import { useRoomNavigate } from './useRoomNavigate';
import { useMatrixClient } from './useMatrixClient';
import { isRoomId, isUserId } from '../utils/matrix';
-import { openProfileViewer } from '../../client/action/navigation';
import { getHomeRoomPath, withSearchParam } from '../pages/pathUtils';
import { _RoomSearchParams } from '../pages/paths';
+import { useOpenUserRoomProfile } from '../state/hooks/userRoomProfile';
+import { useSpaceOptionally } from './useSpace';
export const useMentionClickHandler = (roomId: string): ReactEventHandler => {
const mx = useMatrixClient();
const { navigateRoom, navigateSpace } = useRoomNavigate();
const navigate = useNavigate();
+ const openProfile = useOpenUserRoomProfile();
+ const space = useSpaceOptionally();
const handleClick: ReactEventHandler = useCallback(
(evt) => {
@@ -21,7 +24,7 @@ export const useMentionClickHandler = (roomId: string): ReactEventHandler(path, { viaServers }) : path);
},
- [mx, navigate, navigateRoom, navigateSpace, roomId]
+ [mx, navigate, navigateRoom, navigateSpace, roomId, space, openProfile]
);
return handleClick;
diff --git a/src/app/hooks/useMutualRooms.ts b/src/app/hooks/useMutualRooms.ts
new file mode 100644
index 0000000..a7b3893
--- /dev/null
+++ b/src/app/hooks/useMutualRooms.ts
@@ -0,0 +1,30 @@
+import { useCallback } from 'react';
+import { useMatrixClient } from './useMatrixClient';
+import { AsyncState, useAsyncCallbackValue } from './useAsyncCallback';
+import { useSpecVersions } from './useSpecVersions';
+
+export const useMutualRoomsSupport = (): boolean => {
+ const { unstable_features: unstableFeatures } = useSpecVersions();
+
+ const supported =
+ unstableFeatures?.['uk.half-shot.msc2666'] ||
+ unstableFeatures?.['uk.half-shot.msc2666.mutual_rooms'] ||
+ unstableFeatures?.['uk.half-shot.msc2666.query_mutual_rooms'];
+
+ return !!supported;
+};
+
+export const useMutualRooms = (userId: string): AsyncState => {
+ const mx = useMatrixClient();
+
+ const supported = useMutualRoomsSupport();
+
+ const [mutualRoomsState] = useAsyncCallbackValue(
+ useCallback(
+ () => (supported ? mx._unstable_getSharedRooms(userId) : Promise.resolve([])),
+ [mx, userId, supported]
+ )
+ );
+
+ return mutualRoomsState;
+};
diff --git a/src/app/hooks/usePowerLevelTags.ts b/src/app/hooks/usePowerLevelTags.ts
index bdcb9bc..3933b42 100644
--- a/src/app/hooks/usePowerLevelTags.ts
+++ b/src/app/hooks/usePowerLevelTags.ts
@@ -1,29 +1,24 @@
-import { MatrixClient, Room, RoomMember } from 'matrix-js-sdk';
-import { useCallback, useMemo } from 'react';
+import { Room } from 'matrix-js-sdk';
+import { useMemo } from 'react';
import { IPowerLevels } from './usePowerLevels';
import { useStateEvent } from './useStateEvent';
-import { StateEvent } from '../../types/matrix/room';
-import { IImageInfo } from '../../types/matrix/common';
-import { ThemeKind } from './useTheme';
-import { accessibleColor } from '../plugins/color';
+import { MemberPowerTag, StateEvent } from '../../types/matrix/room';
-export type PowerLevelTagIcon = {
- key?: string;
- info?: IImageInfo;
-};
-export type PowerLevelTag = {
- name: string;
- color?: string;
- icon?: PowerLevelTagIcon;
-};
+export type PowerLevelTags = Record;
-export type PowerLevelTags = Record;
-
-export const powerSortFn = (a: number, b: number) => b - a;
-export const sortPowers = (powers: number[]): number[] => powers.sort(powerSortFn);
+const powerSortFn = (a: number, b: number) => b - a;
+const sortPowers = (powers: number[]): number[] => powers.sort(powerSortFn);
export const getPowers = (tags: PowerLevelTags): number[] => {
- const powers: number[] = Object.keys(tags).map((p) => parseInt(p, 10));
+ const powers: number[] = Object.keys(tags)
+ .map((p) => {
+ const power = parseInt(p, 10);
+ if (Number.isNaN(power)) {
+ return undefined;
+ }
+ return power;
+ })
+ .filter((power) => typeof power === 'number');
return sortPowers(powers);
};
@@ -51,26 +46,22 @@ export const getUsedPowers = (powerLevels: IPowerLevels): Set => {
};
const DEFAULT_TAGS: PowerLevelTags = {
- 9001: {
- name: 'Goku',
- color: '#ff6a00',
- },
- 102: {
- name: 'Goku Reborn',
- color: '#ff6a7f',
- },
- 101: {
- name: 'Founder',
- color: '#0000ff',
- },
100: {
name: 'Admin',
+ color: '#ed0800',
+ },
+ 70: {
+ name: 'Manager',
color: '#0088ff',
},
50: {
name: 'Moderator',
color: '#1fd81f',
},
+ 10: {
+ name: 'Helper',
+ color: '#0be0ce',
+ },
0: {
name: 'Member',
color: '#91cfdf',
@@ -81,18 +72,14 @@ const DEFAULT_TAGS: PowerLevelTags = {
},
};
-const generateFallbackTag = (powerLevelTags: PowerLevelTags, power: number): PowerLevelTag => {
- const highToLow = sortPowers(getPowers(powerLevelTags));
-
- const tagPower = highToLow.find((p) => p < power);
- const tag = typeof tagPower === 'number' ? powerLevelTags[tagPower] : undefined;
+const generateFallbackTag = (powerLevelTags: PowerLevelTags, power: number): MemberPowerTag => {
return {
- name: tag ? `${tag.name} ${power}` : `Team ${power}`,
+ name: `Team ${power}`,
};
};
-export type GetPowerLevelTag = (powerLevel: number) => PowerLevelTag;
+export type GetPowerLevelTag = (powerLevel: number) => MemberPowerTag;
export const usePowerLevelTags = (
room: Room,
@@ -114,66 +101,13 @@ export const usePowerLevelTags = (
return powerToTags;
}, [powerLevels, tagsEvent]);
- const getTag: GetPowerLevelTag = useCallback(
- (power) => {
- const tag: PowerLevelTag | undefined = powerLevelTags[power];
- return tag ?? generateFallbackTag(DEFAULT_TAGS, power);
- },
- [powerLevelTags]
- );
-
- return [powerLevelTags, getTag];
+ return powerLevelTags;
};
-export const useFlattenPowerLevelTagMembers = (
- members: RoomMember[],
- getPowerLevel: (userId: string) => number,
- getTag: GetPowerLevelTag
-): Array => {
- const PLTagOrRoomMember = useMemo(() => {
- let prevTag: PowerLevelTag | undefined;
- const tagOrMember: Array = [];
- members.forEach((member) => {
- const memberPL = getPowerLevel(member.userId);
- const tag = getTag(memberPL);
- if (tag !== prevTag) {
- prevTag = tag;
- tagOrMember.push(tag);
- }
- tagOrMember.push(member);
- });
- return tagOrMember;
- }, [members, getTag, getPowerLevel]);
-
- return PLTagOrRoomMember;
-};
-
-export const getTagIconSrc = (
- mx: MatrixClient,
- useAuthentication: boolean,
- icon: PowerLevelTagIcon
-): string | undefined =>
- icon?.key?.startsWith('mxc://')
- ? mx.mxcUrlToHttp(icon.key, 96, 96, 'scale', undefined, undefined, useAuthentication) ?? '🌻'
- : icon?.key;
-
-export const useAccessibleTagColors = (
- themeKind: ThemeKind,
- powerLevelTags: PowerLevelTags
-): Map => {
- const accessibleColors: Map = useMemo(() => {
- const colors: Map = new Map();
-
- getPowers(powerLevelTags).forEach((power) => {
- const tag = powerLevelTags[power];
- const { color } = tag;
- if (!color) return;
-
- colors.set(color, accessibleColor(themeKind, color));
- });
-
- return colors;
- }, [powerLevelTags, themeKind]);
-
- return accessibleColors;
+export const getPowerLevelTag = (
+ powerLevelTags: PowerLevelTags,
+ powerLevel: number
+): MemberPowerTag => {
+ const tag: MemberPowerTag | undefined = powerLevelTags[powerLevel];
+ return tag ?? generateFallbackTag(powerLevelTags, powerLevel);
};
diff --git a/src/app/hooks/usePowerLevels.ts b/src/app/hooks/usePowerLevels.ts
index 8bf8b74..0281b23 100644
--- a/src/app/hooks/usePowerLevels.ts
+++ b/src/app/hooks/usePowerLevels.ts
@@ -58,10 +58,11 @@ const fillMissingPowers = (powerLevels: IPowerLevels): IPowerLevels =>
});
const getPowersLevelFromMatrixEvent = (mEvent?: MatrixEvent): IPowerLevels => {
- const pl = mEvent?.getContent();
- if (!pl) return DEFAULT_POWER_LEVELS;
+ const plContent = mEvent?.getContent();
- return fillMissingPowers(pl);
+ const powerLevels = !plContent ? DEFAULT_POWER_LEVELS : fillMissingPowers(plContent);
+
+ return powerLevels;
};
export function usePowerLevels(room: Room): IPowerLevels {
@@ -120,33 +121,8 @@ export const useRoomsPowerLevels = (rooms: Room[]): Map =>
return roomToPowerLevels;
};
-export type GetPowerLevel = (powerLevels: IPowerLevels, userId: string | undefined) => number;
-export type CanSend = (
- powerLevels: IPowerLevels,
- eventType: string | undefined,
- powerLevel: number
-) => boolean;
-export type CanDoAction = (
- powerLevels: IPowerLevels,
- action: PowerLevelActions,
- powerLevel: number
-) => boolean;
-export type CanDoNotificationAction = (
- powerLevels: IPowerLevels,
- action: PowerLevelNotificationsAction,
- powerLevel: number
-) => boolean;
-
-export type PowerLevelsAPI = {
- getPowerLevel: GetPowerLevel;
- canSendEvent: CanSend;
- canSendStateEvent: CanSend;
- canDoAction: CanDoAction;
- canDoNotificationAction: CanDoNotificationAction;
-};
-
export type ReadPowerLevelAPI = {
- user: GetPowerLevel;
+ user: (powerLevels: IPowerLevels, userId: string | undefined) => number;
event: (powerLevels: IPowerLevels, eventType: string | undefined) => number;
state: (powerLevels: IPowerLevels, eventType: string | undefined) => number;
action: (powerLevels: IPowerLevels, action: PowerLevelActions) => number;
@@ -156,6 +132,7 @@ export type ReadPowerLevelAPI = {
export const readPowerLevel: ReadPowerLevelAPI = {
user: (powerLevels, userId) => {
const { users_default: usersDefault, users } = powerLevels;
+
if (userId && users && typeof users[userId] === 'number') {
return users[userId];
}
@@ -191,63 +168,13 @@ export const readPowerLevel: ReadPowerLevelAPI = {
},
};
-export const powerLevelAPI: PowerLevelsAPI = {
- getPowerLevel: (powerLevels, userId) => readPowerLevel.user(powerLevels, userId),
- canSendEvent: (powerLevels, eventType, powerLevel) => {
- const requiredPL = readPowerLevel.event(powerLevels, eventType);
- return powerLevel >= requiredPL;
- },
- canSendStateEvent: (powerLevels, eventType, powerLevel) => {
- const requiredPL = readPowerLevel.state(powerLevels, eventType);
- return powerLevel >= requiredPL;
- },
- canDoAction: (powerLevels, action, powerLevel) => {
- const requiredPL = readPowerLevel.action(powerLevels, action);
- return powerLevel >= requiredPL;
- },
- canDoNotificationAction: (powerLevels, action, powerLevel) => {
- const requiredPL = readPowerLevel.notification(powerLevels, action);
- return powerLevel >= requiredPL;
- },
-};
-
-export const usePowerLevelsAPI = (powerLevels: IPowerLevels) => {
- const getPowerLevel = useCallback(
- (userId: string | undefined) => powerLevelAPI.getPowerLevel(powerLevels, userId),
+export const useGetMemberPowerLevel = (powerLevels: IPowerLevels) => {
+ const callback = useCallback(
+ (userId?: string): number => readPowerLevel.user(powerLevels, userId),
[powerLevels]
);
- const canSendEvent = useCallback(
- (eventType: string | undefined, powerLevel: number) =>
- powerLevelAPI.canSendEvent(powerLevels, eventType, powerLevel),
- [powerLevels]
- );
-
- const canSendStateEvent = useCallback(
- (eventType: string | undefined, powerLevel: number) =>
- powerLevelAPI.canSendStateEvent(powerLevels, eventType, powerLevel),
- [powerLevels]
- );
-
- const canDoAction = useCallback(
- (action: PowerLevelActions, powerLevel: number) =>
- powerLevelAPI.canDoAction(powerLevels, action, powerLevel),
- [powerLevels]
- );
-
- const canDoNotificationAction = useCallback(
- (action: PowerLevelNotificationsAction, powerLevel: number) =>
- powerLevelAPI.canDoNotificationAction(powerLevels, action, powerLevel),
- [powerLevels]
- );
-
- return {
- getPowerLevel,
- canSendEvent,
- canSendStateEvent,
- canDoAction,
- canDoNotificationAction,
- };
+ return callback;
};
/**
diff --git a/src/app/hooks/useRoomCreators.ts b/src/app/hooks/useRoomCreators.ts
new file mode 100644
index 0000000..269d11a
--- /dev/null
+++ b/src/app/hooks/useRoomCreators.ts
@@ -0,0 +1,49 @@
+import { MatrixClient, MatrixEvent, Room } from 'matrix-js-sdk';
+import { useMemo } from 'react';
+import { useStateEvent } from './useStateEvent';
+import { IRoomCreateContent, StateEvent } from '../../types/matrix/room';
+import { creatorsSupported } from '../utils/matrix';
+import { getStateEvent } from '../utils/room';
+
+export const getRoomCreators = (createEvent: MatrixEvent): Set => {
+ const createContent = createEvent.getContent();
+
+ const creators: Set = new Set();
+
+ if (!creatorsSupported(createContent.room_version)) return creators;
+
+ if (createEvent.event.sender) {
+ creators.add(createEvent.event.sender);
+ }
+
+ if ('additional_creators' in createContent && Array.isArray(createContent.additional_creators)) {
+ createContent.additional_creators.forEach((creator) => {
+ if (typeof creator === 'string') {
+ creators.add(creator);
+ }
+ });
+ }
+
+ return creators;
+};
+
+export const useRoomCreators = (room: Room): Set => {
+ const createEvent = useStateEvent(room, StateEvent.RoomCreate);
+
+ const creators = useMemo(
+ () => (createEvent ? getRoomCreators(createEvent) : new Set()),
+ [createEvent]
+ );
+
+ return creators;
+};
+
+export const getRoomCreatorsForRoomId = (mx: MatrixClient, roomId: string): Set => {
+ const room = mx.getRoom(roomId);
+ if (!room) return new Set();
+
+ const createEvent = getStateEvent(room, StateEvent.RoomCreate);
+ if (!createEvent) return new Set();
+
+ return getRoomCreators(createEvent);
+};
diff --git a/src/app/hooks/useRoomCreatorsTag.ts b/src/app/hooks/useRoomCreatorsTag.ts
new file mode 100644
index 0000000..2d6db0e
--- /dev/null
+++ b/src/app/hooks/useRoomCreatorsTag.ts
@@ -0,0 +1,8 @@
+import { MemberPowerTag } from '../../types/matrix/room';
+
+const DEFAULT_TAG: MemberPowerTag = {
+ name: 'Founder',
+ color: '#0000ff',
+};
+
+export const useRoomCreatorsTag = (): MemberPowerTag => DEFAULT_TAG;
diff --git a/src/app/hooks/useRoomPermissions.ts b/src/app/hooks/useRoomPermissions.ts
new file mode 100644
index 0000000..cb6f69a
--- /dev/null
+++ b/src/app/hooks/useRoomPermissions.ts
@@ -0,0 +1,60 @@
+import { useMemo } from 'react';
+import {
+ IPowerLevels,
+ PowerLevelActions,
+ PowerLevelNotificationsAction,
+ readPowerLevel,
+} from './usePowerLevels';
+
+export type RoomPermissionsAPI = {
+ event: (type: string, userId: string) => boolean;
+ stateEvent: (type: string, userId: string) => boolean;
+ action: (action: PowerLevelActions, userId: string) => boolean;
+ notificationAction: (action: PowerLevelNotificationsAction, userId: string) => boolean;
+};
+
+export const getRoomPermissionsAPI = (
+ creators: Set,
+ powerLevels: IPowerLevels
+): RoomPermissionsAPI => {
+ const api: RoomPermissionsAPI = {
+ event: (type, userId) => {
+ if (creators.has(userId)) return true;
+ const userPower = readPowerLevel.user(powerLevels, userId);
+ const requiredPL = readPowerLevel.event(powerLevels, type);
+ return userPower >= requiredPL;
+ },
+ stateEvent: (type, userId) => {
+ if (creators.has(userId)) return true;
+ const userPower = readPowerLevel.user(powerLevels, userId);
+ const requiredPL = readPowerLevel.state(powerLevels, type);
+ return userPower >= requiredPL;
+ },
+ action: (action, userId) => {
+ if (creators.has(userId)) return true;
+ const userPower = readPowerLevel.user(powerLevels, userId);
+ const requiredPL = readPowerLevel.action(powerLevels, action);
+ return userPower >= requiredPL;
+ },
+ notificationAction: (action, userId) => {
+ if (creators.has(userId)) return true;
+ const userPower = readPowerLevel.user(powerLevels, userId);
+ const requiredPL = readPowerLevel.notification(powerLevels, action);
+ return userPower >= requiredPL;
+ },
+ };
+
+ return api;
+};
+
+export const useRoomPermissions = (
+ creators: Set,
+ powerLevels: IPowerLevels
+): RoomPermissionsAPI => {
+ const api: RoomPermissionsAPI = useMemo(
+ () => getRoomPermissionsAPI(creators, powerLevels),
+ [creators, powerLevels]
+ );
+
+ return api;
+};
diff --git a/src/app/hooks/useUserPresence.ts b/src/app/hooks/useUserPresence.ts
new file mode 100644
index 0000000..5137950
--- /dev/null
+++ b/src/app/hooks/useUserPresence.ts
@@ -0,0 +1,58 @@
+import { useEffect, useMemo, useState } from 'react';
+import { User, UserEvent, UserEventHandlerMap } from 'matrix-js-sdk';
+import { useMatrixClient } from './useMatrixClient';
+
+export enum Presence {
+ Online = 'online',
+ Unavailable = 'unavailable',
+ Offline = 'offline',
+}
+
+export type UserPresence = {
+ presence: Presence;
+ status?: string;
+ active: boolean;
+ lastActiveTs?: number;
+};
+
+const getUserPresence = (user: User): UserPresence => ({
+ presence: user.presence as Presence,
+ status: user.presenceStatusMsg,
+ active: user.currentlyActive,
+ lastActiveTs: user.getLastActiveTs(),
+});
+
+export const useUserPresence = (userId: string): UserPresence | undefined => {
+ const mx = useMatrixClient();
+ const user = mx.getUser(userId);
+
+ const [presence, setPresence] = useState(() => (user ? getUserPresence(user) : undefined));
+
+ useEffect(() => {
+ const updatePresence: UserEventHandlerMap[UserEvent.Presence] = (event, u) => {
+ if (u.userId === user?.userId) {
+ setPresence(getUserPresence(user));
+ }
+ };
+ user?.on(UserEvent.Presence, updatePresence);
+ user?.on(UserEvent.CurrentlyActive, updatePresence);
+ user?.on(UserEvent.LastPresenceTs, updatePresence);
+ return () => {
+ user?.removeListener(UserEvent.Presence, updatePresence);
+ user?.removeListener(UserEvent.CurrentlyActive, updatePresence);
+ user?.removeListener(UserEvent.LastPresenceTs, updatePresence);
+ };
+ }, [user]);
+
+ return presence;
+};
+
+export const usePresenceLabel = (): Record =>
+ useMemo(
+ () => ({
+ [Presence.Online]: 'Active',
+ [Presence.Unavailable]: 'Busy',
+ [Presence.Offline]: 'Away',
+ }),
+ []
+ );
diff --git a/src/app/molecules/power-level-selector/PowerLevelSelector.jsx b/src/app/molecules/power-level-selector/PowerLevelSelector.jsx
index ca3e841..1e514a9 100644
--- a/src/app/molecules/power-level-selector/PowerLevelSelector.jsx
+++ b/src/app/molecules/power-level-selector/PowerLevelSelector.jsx
@@ -35,7 +35,9 @@ function PowerLevelSelector({
{max >= 0 && Presets}
{max >= 100 && }
{max >= 50 && }
+ {max >= 10 && }
{max >= 0 && }
+ {max >= -1 && }
);
}
diff --git a/src/app/pages/Router.tsx b/src/app/pages/Router.tsx
index d6d93aa..247885c 100644
--- a/src/app/pages/Router.tsx
+++ b/src/app/pages/Router.tsx
@@ -62,6 +62,7 @@ import { AutoRestoreBackupOnVerification } from '../components/BackupRestore';
import { RoomSettingsRenderer } from '../features/room-settings';
import { ClientRoomsNotificationPreferences } from './client/ClientRoomsNotificationPreferences';
import { SpaceSettingsRenderer } from '../features/space-settings';
+import { UserRoomProfileRenderer } from '../components/UserRoomProfileRenderer';
import { CreateRoomModalRenderer } from '../features/create-room';
import { HomeCreateRoom } from './client/home/CreateRoom';
import { Create } from './client/create';
@@ -130,6 +131,7 @@ export const createRouter = (clientConfig: ClientConfig, screenSize: ScreenSize)
>
+
diff --git a/src/app/pages/auth/AuthFooter.tsx b/src/app/pages/auth/AuthFooter.tsx
index ff2fdb9..b8f629e 100644
--- a/src/app/pages/auth/AuthFooter.tsx
+++ b/src/app/pages/auth/AuthFooter.tsx
@@ -11,14 +11,11 @@ export function AuthFooter() {
- v4.8.1
-
-
- Twitter
+ latest
Powered by Matrix
diff --git a/src/app/pages/auth/AuthLayout.tsx b/src/app/pages/auth/AuthLayout.tsx
index 3943f42..255f49b 100644
--- a/src/app/pages/auth/AuthLayout.tsx
+++ b/src/app/pages/auth/AuthLayout.tsx
@@ -135,7 +135,7 @@ export function AuthLayout() {
- Cinny
+ Gaboule Chat
diff --git a/src/app/pages/client/SyncStatus.tsx b/src/app/pages/client/SyncStatus.tsx
index 9cd4b0b..de244b4 100644
--- a/src/app/pages/client/SyncStatus.tsx
+++ b/src/app/pages/client/SyncStatus.tsx
@@ -30,27 +30,6 @@ export function SyncStatus({ mx }: SyncStatusProps) {
}, [])
);
- if (
- (stateData.current === SyncState.Prepared ||
- stateData.current === SyncState.Syncing ||
- stateData.current === SyncState.Catchup) &&
- stateData.previous !== SyncState.Syncing
- ) {
- return (
-
-
- Connecting...
-
-
-
- );
- }
-
if (stateData.current === SyncState.Reconnecting) {
return (
diff --git a/src/app/pages/client/WelcomePage.tsx b/src/app/pages/client/WelcomePage.tsx
index 645753f..eb15119 100644
--- a/src/app/pages/client/WelcomePage.tsx
+++ b/src/app/pages/client/WelcomePage.tsx
@@ -15,16 +15,18 @@ export function WelcomePage() {
}
- title="Welcome to Cinny"
+ title="Welcome to Gaboule Chat (Cinny)"
subTitle={
- Yet another matrix client.{' '}
+ Yet another matrix client.
+ Modified by Gaboule.
+ {' '}
- v4.8.1
+ latest
}
@@ -33,7 +35,7 @@ export function WelcomePage() {
}
diff --git a/src/app/pages/client/home/Home.tsx b/src/app/pages/client/home/Home.tsx
index d233391..2597bb7 100644
--- a/src/app/pages/client/home/Home.tsx
+++ b/src/app/pages/client/home/Home.tsx
@@ -30,10 +30,12 @@ import {
NavLink,
} from '../../../components/nav';
import {
+ encodeSearchParamValueArray,
getExplorePath,
getHomeCreatePath,
getHomeRoomPath,
getHomeSearchPath,
+ withSearchParam,
} from '../../pathUtils';
import { getCanonicalAliasOrRoomId } from '../../../utils/matrix';
import { useSelectedRoom } from '../../../hooks/router/useSelectedRoom';
@@ -49,7 +51,6 @@ import { makeNavCategoryId } from '../../../state/closedNavCategories';
import { roomToUnreadAtom } from '../../../state/room/roomToUnread';
import { useCategoryHandler } from '../../../hooks/useCategoryHandler';
import { useNavToActivePathMapper } from '../../../hooks/useNavToActivePathMapper';
-import { openJoinAlias } from '../../../../client/action/navigation';
import { PageNav, PageNavHeader, PageNavContent } from '../../../components/page';
import { useRoomsUnread } from '../../../state/hooks/unread';
import { markAsRead } from '../../../../client/action/notifications';
@@ -61,6 +62,9 @@ import {
getRoomNotificationMode,
useRoomsNotificationPreferencesContext,
} from '../../../hooks/useRoomsNotificationPreferences';
+import { UseStateProvider } from '../../../components/UseStateProvider';
+import { JoinAddressPrompt } from '../../../components/join-address-prompt';
+import { _RoomSearchParams } from '../../paths';
type HomeMenuProps = {
requestClose: () => void;
@@ -77,11 +81,6 @@ const HomeMenu = forwardRef(({ requestClose }, re
requestClose();
};
- const handleJoinAddress = () => {
- openJoinAlias();
- requestClose();
- };
-
return (
- }
- >
-
- Join with Address
-
-
);
@@ -268,22 +257,44 @@ export function Home() {
-
- openJoinAlias()}>
-
-
-
-
-
-
-
- Join with Address
-
-
-
-
-
-
+
+ {(open, setOpen) => (
+ <>
+
+ setOpen(true)}>
+
+
+
+
+
+
+
+ Join with Address
+
+
+
+
+
+
+ {open && (
+ setOpen(false)}
+ onOpen={(roomIdOrAlias, viaServers, eventId) => {
+ setOpen(false);
+ const path = getHomeRoomPath(roomIdOrAlias, eventId);
+ navigate(
+ viaServers
+ ? withSearchParam<_RoomSearchParams>(path, {
+ viaServers: encodeSearchParamValueArray(viaServers),
+ })
+ : path
+ );
+ }}
+ />
+ )}
+ >
+ )}
+
diff --git a/src/app/pages/client/inbox/Notifications.tsx b/src/app/pages/client/inbox/Notifications.tsx
index a495774..afdfec6 100644
--- a/src/app/pages/client/inbox/Notifications.tsx
+++ b/src/app/pages/client/inbox/Notifications.tsx
@@ -84,16 +84,19 @@ import { ScreenSize, useScreenSizeContext } from '../../../hooks/useScreenSize';
import { BackRouteHandler } from '../../../components/BackRouteHandler';
import { useMediaAuthentication } from '../../../hooks/useMediaAuthentication';
import { allRoomsAtom } from '../../../state/room-list/roomList';
-import { usePowerLevels, usePowerLevelsAPI } from '../../../hooks/usePowerLevels';
-import {
- getTagIconSrc,
- useAccessibleTagColors,
- usePowerLevelTags,
-} from '../../../hooks/usePowerLevelTags';
+import { usePowerLevels } from '../../../hooks/usePowerLevels';
+import { usePowerLevelTags } from '../../../hooks/usePowerLevelTags';
import { useTheme } from '../../../hooks/useTheme';
import { PowerIcon } from '../../../components/power';
import colorMXID from '../../../../util/colorMXID';
import { mDirectAtom } from '../../../state/mDirectList';
+import {
+ getPowerTagIconSrc,
+ useAccessiblePowerTagColors,
+ useGetMemberPowerTag,
+} from '../../../hooks/useMemberPowerTag';
+import { useRoomCreatorsTag } from '../../../hooks/useRoomCreatorsTag';
+import { useRoomCreators } from '../../../hooks/useRoomCreators';
type RoomNotificationsGroup = {
roomId: string;
@@ -224,10 +227,14 @@ function RoomNotificationsGroupComp({
const unread = useRoomUnread(room.roomId, roomToUnreadAtom);
const powerLevels = usePowerLevels(room);
- const { getPowerLevel } = usePowerLevelsAPI(powerLevels);
- const [powerLevelTags, getPowerLevelTag] = usePowerLevelTags(room, powerLevels);
+ const creators = useRoomCreators(room);
+
+ const creatorsTag = useRoomCreatorsTag();
+ const powerLevelTags = usePowerLevelTags(room, powerLevels);
+ const getMemberPowerTag = useGetMemberPowerTag(room, creators, powerLevels);
+
const theme = useTheme();
- const accessibleTagColors = useAccessibleTagColors(theme.kind, powerLevelTags);
+ const accessibleTagColors = useAccessiblePowerTagColors(theme.kind, creatorsTag, powerLevelTags);
const mentionClickHandler = useMentionClickHandler(room.roomId);
const spoilerClickHandler = useSpoilerClickHandler();
@@ -447,13 +454,12 @@ function RoomNotificationsGroupComp({
const threadRootId =
relation?.rel_type === RelationType.Thread ? relation.event_id : undefined;
- const senderPowerLevel = getPowerLevel(event.sender);
- const powerLevelTag = getPowerLevelTag(senderPowerLevel);
- const tagColor = powerLevelTag?.color
- ? accessibleTagColors?.get(powerLevelTag.color)
+ const memberPowerTag = getMemberPowerTag(event.sender);
+ const tagColor = memberPowerTag?.color
+ ? accessibleTagColors?.get(memberPowerTag.color)
: undefined;
- const tagIconSrc = powerLevelTag?.icon
- ? getTagIconSrc(mx, useAuthentication, powerLevelTag.icon)
+ const tagIconSrc = memberPowerTag?.icon
+ ? getPowerTagIconSrc(mx, useAuthentication, memberPowerTag.icon)
: undefined;
const usernameColor = legacyUsernameColor ? colorMXID(event.sender) : tagColor;
@@ -523,8 +529,7 @@ function RoomNotificationsGroupComp({
replyEventId={replyEventId}
threadRootId={threadRootId}
onClick={handleOpenClick}
- getPowerLevel={getPowerLevel}
- getPowerLevelTag={getPowerLevelTag}
+ getMemberPowerTag={getMemberPowerTag}
accessibleTagColors={accessibleTagColors}
legacyUsernameColor={legacyUsernameColor}
/>
diff --git a/src/app/pages/client/sidebar/CreateTab.tsx b/src/app/pages/client/sidebar/CreateTab.tsx
index a7f9350..e6575cb 100644
--- a/src/app/pages/client/sidebar/CreateTab.tsx
+++ b/src/app/pages/client/sidebar/CreateTab.tsx
@@ -7,15 +7,22 @@ import { stopPropagation } from '../../../utils/keyboard';
import { SequenceCard } from '../../../components/sequence-card';
import { SettingTile } from '../../../components/setting-tile';
import { ContainerColor } from '../../../styles/ContainerColor.css';
-import { openJoinAlias } from '../../../../client/action/navigation';
-import { getCreatePath } from '../../pathUtils';
+import {
+ encodeSearchParamValueArray,
+ getCreatePath,
+ getSpacePath,
+ withSearchParam,
+} from '../../pathUtils';
import { useCreateSelected } from '../../../hooks/router/useCreateSelected';
+import { JoinAddressPrompt } from '../../../components/join-address-prompt';
+import { _RoomSearchParams } from '../../paths';
export function CreateTab() {
const createSelected = useCreateSelected();
const navigate = useNavigate();
const [menuCords, setMenuCords] = useState();
+ const [joinAddress, setJoinAddress] = useState(false);
const handleMenu: MouseEventHandler = (evt) => {
setMenuCords(menuCords ? undefined : evt.currentTarget.getBoundingClientRect());
@@ -27,7 +34,7 @@ export function CreateTab() {
};
const handleJoinWithAddress = () => {
- openJoinAlias();
+ setJoinAddress(true);
setMenuCords(undefined);
};
@@ -103,6 +110,22 @@ export function CreateTab() {
>
+ {joinAddress && (
+ setJoinAddress(false)}
+ onOpen={(roomIdOrAlias, viaServers) => {
+ setJoinAddress(false);
+ const path = getSpacePath(roomIdOrAlias);
+ navigate(
+ viaServers
+ ? withSearchParam<_RoomSearchParams>(path, {
+ viaServers: encodeSearchParamValueArray(viaServers),
+ })
+ : path
+ );
+ }}
+ />
+ )}
)}
diff --git a/src/app/pages/client/sidebar/SpaceTabs.tsx b/src/app/pages/client/sidebar/SpaceTabs.tsx
index 011741e..3ee6c72 100644
--- a/src/app/pages/client/sidebar/SpaceTabs.tsx
+++ b/src/app/pages/client/sidebar/SpaceTabs.tsx
@@ -77,7 +77,7 @@ import { AccountDataEvent } from '../../../../types/matrix/accountData';
import { ScreenSize, useScreenSizeContext } from '../../../hooks/useScreenSize';
import { useNavToActivePathAtom } from '../../../state/hooks/navToActivePath';
import { useOpenedSidebarFolderAtom } from '../../../state/hooks/openedSidebarFolder';
-import { usePowerLevels, usePowerLevelsAPI } from '../../../hooks/usePowerLevels';
+import { usePowerLevels } from '../../../hooks/usePowerLevels';
import { useRoomsUnread } from '../../../state/hooks/unread';
import { roomToUnreadAtom } from '../../../state/room/roomToUnread';
import { markAsRead } from '../../../../client/action/notifications';
@@ -91,6 +91,8 @@ import { useMediaAuthentication } from '../../../hooks/useMediaAuthentication';
import { useSetting } from '../../../state/hooks/settings';
import { settingsAtom } from '../../../state/settings';
import { useOpenSpaceSettings } from '../../../state/hooks/spaceSettings';
+import { useRoomCreators } from '../../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../../hooks/useRoomPermissions';
type SpaceMenuProps = {
room: Room;
@@ -103,8 +105,10 @@ const SpaceMenu = forwardRef(
const [hideActivity] = useSetting(settingsAtom, 'hideActivity');
const roomToParents = useAtomValue(roomToParentsAtom);
const powerLevels = usePowerLevels(room);
- const { getPowerLevel, canDoAction } = usePowerLevelsAPI(powerLevels);
- const canInvite = canDoAction('invite', getPowerLevel(mx.getUserId() ?? ''));
+ const creators = useRoomCreators(room);
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+ const canInvite = permissions.action('invite', mx.getSafeUserId());
const openSpaceSettings = useOpenSpaceSettings();
const allChild = useSpaceChildren(
diff --git a/src/app/pages/client/space/Space.tsx b/src/app/pages/client/space/Space.tsx
index d100946..a335a0a 100644
--- a/src/app/pages/client/space/Space.tsx
+++ b/src/app/pages/client/space/Space.tsx
@@ -10,6 +10,7 @@ import { useAtom, useAtomValue } from 'jotai';
import {
Avatar,
Box,
+ Button,
Icon,
IconButton,
Icons,
@@ -18,7 +19,9 @@ import {
MenuItem,
PopOut,
RectCords,
+ Spinner,
Text,
+ color,
config,
toRem,
} from 'folds';
@@ -53,7 +56,7 @@ import { useRoomName } from '../../../hooks/useRoomMeta';
import { useSpaceJoinedHierarchy } from '../../../hooks/useSpaceHierarchy';
import { allRoomsAtom } from '../../../state/room-list/roomList';
import { PageNav, PageNavContent, PageNavHeader } from '../../../components/page';
-import { usePowerLevels, usePowerLevelsAPI } from '../../../hooks/usePowerLevels';
+import { usePowerLevels } from '../../../hooks/usePowerLevels';
import { openInviteUser } from '../../../../client/action/navigation';
import { useRecursiveChildScopeFactory, useSpaceChildren } from '../../../state/hooks/roomList';
import { roomToParentsAtom } from '../../../state/room/roomToParents';
@@ -64,7 +67,7 @@ import { LeaveSpacePrompt } from '../../../components/leave-space-prompt';
import { copyToClipboard } from '../../../utils/dom';
import { useClosedNavCategoriesAtom } from '../../../state/hooks/closedNavCategories';
import { useStateEvent } from '../../../hooks/useStateEvent';
-import { StateEvent } from '../../../../types/matrix/room';
+import { Membership, StateEvent } from '../../../../types/matrix/room';
import { stopPropagation } from '../../../utils/keyboard';
import { getMatrixToRoom } from '../../../plugins/matrix-to';
import { getViaServers } from '../../../plugins/via-servers';
@@ -76,6 +79,11 @@ import {
} from '../../../hooks/useRoomsNotificationPreferences';
import { useOpenSpaceSettings } from '../../../state/hooks/spaceSettings';
import { useRoomNavigate } from '../../../hooks/useRoomNavigate';
+import { useRoomCreators } from '../../../hooks/useRoomCreators';
+import { useRoomPermissions } from '../../../hooks/useRoomPermissions';
+import { ContainerColor } from '../../../styles/ContainerColor.css';
+import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback';
+import { BreakWord } from '../../../styles/Text.css';
type SpaceMenuProps = {
room: Room;
@@ -87,8 +95,10 @@ const SpaceMenu = forwardRef(({ room, requestClo
const [developerTools] = useSetting(settingsAtom, 'developerTools');
const roomToParents = useAtomValue(roomToParentsAtom);
const powerLevels = usePowerLevels(room);
- const { getPowerLevel, canDoAction } = usePowerLevelsAPI(powerLevels);
- const canInvite = canDoAction('invite', getPowerLevel(mx.getUserId() ?? ''));
+ const creators = useRoomCreators(room);
+
+ const permissions = useRoomPermissions(creators, powerLevels);
+ const canInvite = permissions.action('invite', mx.getSafeUserId());
const openSpaceSettings = useOpenSpaceSettings();
const { navigateRoom } = useRoomNavigate();
@@ -284,6 +294,75 @@ function SpaceHeader() {
);
}
+type SpaceTombstoneProps = { roomId: string; replacementRoomId: string };
+export function SpaceTombstone({ roomId, replacementRoomId }: SpaceTombstoneProps) {
+ const mx = useMatrixClient();
+ const { navigateSpace } = useRoomNavigate();
+
+ const [joinState, handleJoin] = useAsyncCallback(
+ useCallback(() => {
+ const currentRoom = mx.getRoom(roomId);
+ const via = currentRoom ? getViaServers(currentRoom) : [];
+ return mx.joinRoom(replacementRoomId, {
+ viaServers: via,
+ });
+ }, [mx, roomId, replacementRoomId])
+ );
+ const replacementRoom = mx.getRoom(replacementRoomId);
+
+ const handleOpen = () => {
+ if (replacementRoom) navigateSpace(replacementRoom.roomId);
+ if (joinState.status === AsyncStatus.Success) navigateSpace(joinState.data.roomId);
+ };
+
+ return (
+
+
+ Space Upgraded
+ This space has been replaced and is no longer active.
+ {joinState.status === AsyncStatus.Error && (
+
+ {(joinState.error as any)?.message ?? 'Failed to join replacement space!'}
+
+ )}
+
+
+ {replacementRoom?.getMyMembership() === Membership.Join ||
+ joinState.status === AsyncStatus.Success ? (
+
+ ) : (
+
+ )
+ }
+ disabled={joinState.status === AsyncStatus.Loading}
+ >
+ Join New Space
+
+ )}
+
+
+ );
+}
+
export function Space() {
const mx = useMatrixClient();
const space = useSpace();
@@ -296,6 +375,8 @@ export function Space() {
const allJoinedRooms = useMemo(() => new Set(allRooms), [allRooms]);
const notificationPreferences = useRoomsNotificationPreferencesContext();
+ const tombstoneEvent = useStateEvent(space, StateEvent.RoomTombstone);
+
const selectedRoomId = useSelectedRoom();
const lobbySelected = useSpaceLobbySelected(spaceIdOrAlias);
const searchSelected = useSpaceSearchSelected(spaceIdOrAlias);
@@ -351,6 +432,12 @@ export function Space() {
+ {tombstoneEvent && (
+
+ )}
diff --git a/src/app/plugins/matrix-to.ts b/src/app/plugins/matrix-to.ts
index c9df0a8..feeafe0 100644
--- a/src/app/plugins/matrix-to.ts
+++ b/src/app/plugins/matrix-to.ts
@@ -42,9 +42,9 @@ const MATRIX_TO = /^https?:\/\/matrix\.to\S*$/;
export const testMatrixTo = (href: string): boolean => MATRIX_TO.test(href);
const MATRIX_TO_USER = /^https?:\/\/matrix\.to\/#\/(@[^:\s]+:[^?/\s]+)\/?$/;
-const MATRIX_TO_ROOM = /^https?:\/\/matrix\.to\/#\/([#!][^:\s]+:[^?/\s]+)\/?(\?[\S]*)?$/;
+const MATRIX_TO_ROOM = /^https?:\/\/matrix\.to\/#\/([#!][^?/\s]+)\/?(\?[\S]*)?$/;
const MATRIX_TO_ROOM_EVENT =
- /^https?:\/\/matrix\.to\/#\/([#!][^:\s]+:[^?/\s]+)\/(\$[^?/\s]+)\/?(\?[\S]*)?$/;
+ /^https?:\/\/matrix\.to\/#\/([#!][^?/\s]+)\/(\$[^?/\s]+)\/?(\?[\S]*)?$/;
export const parseMatrixToUser = (href: string): string | undefined => {
const match = href.match(MATRIX_TO_USER);
diff --git a/src/app/plugins/via-servers.ts b/src/app/plugins/via-servers.ts
index 7547099..d825a1f 100644
--- a/src/app/plugins/via-servers.ts
+++ b/src/app/plugins/via-servers.ts
@@ -1,11 +1,19 @@
import { Room } from 'matrix-js-sdk';
import { IPowerLevels } from '../hooks/usePowerLevels';
-import { getMxIdServer } from '../utils/matrix';
-import { StateEvent } from '../../types/matrix/room';
+import { creatorsSupported, getMxIdServer } from '../utils/matrix';
+import { IRoomCreateContent, StateEvent } from '../../types/matrix/room';
import { getStateEvent } from '../utils/room';
export const getViaServers = (room: Room): string[] => {
const getHighestPowerUserId = (): string | undefined => {
+ const creatorEvent = getStateEvent(room, StateEvent.RoomCreate);
+ if (
+ creatorEvent &&
+ creatorsSupported(creatorEvent.getContent().room_version)
+ ) {
+ return creatorEvent.getSender();
+ }
+
const powerLevels = getStateEvent(room, StateEvent.RoomPowerLevels)?.getContent();
if (!powerLevels) return undefined;
diff --git a/src/app/state/hooks/userRoomProfile.ts b/src/app/state/hooks/userRoomProfile.ts
new file mode 100644
index 0000000..7fed0c0
--- /dev/null
+++ b/src/app/state/hooks/userRoomProfile.ts
@@ -0,0 +1,41 @@
+import { useCallback } from 'react';
+import { useAtomValue, useSetAtom } from 'jotai';
+import { Position, RectCords } from 'folds';
+import { userRoomProfileAtom, UserRoomProfileState } from '../userRoomProfile';
+
+export const useUserRoomProfileState = (): UserRoomProfileState | undefined => {
+ const data = useAtomValue(userRoomProfileAtom);
+
+ return data;
+};
+
+type CloseCallback = () => void;
+export const useCloseUserRoomProfile = (): CloseCallback => {
+ const setUserRoomProfile = useSetAtom(userRoomProfileAtom);
+
+ const close: CloseCallback = useCallback(() => {
+ setUserRoomProfile(undefined);
+ }, [setUserRoomProfile]);
+
+ return close;
+};
+
+type OpenCallback = (
+ roomId: string,
+ spaceId: string | undefined,
+ userId: string,
+ cords: RectCords,
+ position?: Position
+) => void;
+export const useOpenUserRoomProfile = (): OpenCallback => {
+ const setUserRoomProfile = useSetAtom(userRoomProfileAtom);
+
+ const open: OpenCallback = useCallback(
+ (roomId, spaceId, userId, cords, position) => {
+ setUserRoomProfile({ roomId, spaceId, userId, cords, position });
+ },
+ [setUserRoomProfile]
+ );
+
+ return open;
+};
diff --git a/src/app/state/userRoomProfile.ts b/src/app/state/userRoomProfile.ts
new file mode 100644
index 0000000..cf4e403
--- /dev/null
+++ b/src/app/state/userRoomProfile.ts
@@ -0,0 +1,12 @@
+import { Position, RectCords } from 'folds';
+import { atom } from 'jotai';
+
+export type UserRoomProfileState = {
+ userId: string;
+ roomId: string;
+ spaceId?: string;
+ cords: RectCords;
+ position?: Position;
+};
+
+export const userRoomProfileAtom = atom(undefined);
diff --git a/src/app/utils/dom.ts b/src/app/utils/dom.ts
index f4c3f71..80db3ae 100644
--- a/src/app/utils/dom.ts
+++ b/src/app/utils/dom.ts
@@ -43,6 +43,17 @@ export const canFitInScrollView = (
export type FilesOrFile = T extends true ? File[] : File;
+export const getFilesFromFileList = (fileList: FileList): File[] => {
+ const files: File[] = [];
+
+ for (let i = 0; i < fileList.length; i += 1) {
+ const file: File | undefined = fileList[i];
+ if (file instanceof File) files.push(file);
+ }
+
+ return files;
+};
+
export const selectFile = (
accept: string,
multiple?: M
@@ -58,7 +69,7 @@ export const selectFile = (
if (!fileList) {
resolve(undefined);
} else {
- const files: File[] = [...fileList].filter((file) => file);
+ const files: File[] = getFilesFromFileList(fileList);
resolve((multiple ? files : files[0]) as FilesOrFile);
}
input.removeEventListener('change', changeHandler);
@@ -70,7 +81,7 @@ export const selectFile = (
export const getDataTransferFiles = (dataTransfer: DataTransfer): File[] | undefined => {
const fileList = dataTransfer.files;
- const files = [...fileList].filter((file) => file);
+ const files: File[] = getFilesFromFileList(fileList);
if (files.length === 0) return undefined;
return files;
};
@@ -224,3 +235,10 @@ export const notificationPermission = (permission: NotificationPermission) => {
}
return false;
};
+
+export const getMouseEventCords = (event: MouseEvent) => ({
+ x: event.clientX,
+ y: event.clientY,
+ width: 0,
+ height: 0,
+});
diff --git a/src/app/utils/matrix.ts b/src/app/utils/matrix.ts
index b31677a..a803120 100644
--- a/src/app/utils/matrix.ts
+++ b/src/app/utils/matrix.ts
@@ -17,13 +17,13 @@ import to from 'await-to-js';
import { IImageInfo, IThumbnailContent, IVideoInfo } from '../../types/matrix/common';
import { AccountDataEvent } from '../../types/matrix/accountData';
import { getStateEvent } from './room';
-import { StateEvent } from '../../types/matrix/room';
+import { Membership, StateEvent } from '../../types/matrix/room';
const DOMAIN_REGEX = /\b(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}\b/;
export const isServerName = (serverName: string): boolean => DOMAIN_REGEX.test(serverName);
-const matchMxId = (id: string): RegExpMatchArray | null => id.match(/^([@$+#])(.+):(\S+)$/);
+const matchMxId = (id: string): RegExpMatchArray | null => id.match(/^([@$+#])([^\s:]+):(\S+)$/);
const validMxId = (id: string): boolean => !!matchMxId(id);
@@ -182,7 +182,12 @@ export const eventWithShortcode = (ev: MatrixEvent) =>
export const getDMRoomFor = (mx: MatrixClient, userId: string): Room | undefined => {
const dmLikeRooms = mx
.getRooms()
- .filter((room) => room.hasEncryptionStateEvent() && room.getMembers().length <= 2);
+ .filter(
+ (room) =>
+ room.getMyMembership() === Membership.Join &&
+ room.hasEncryptionStateEvent() &&
+ room.getMembers().length <= 2
+ );
return dmLikeRooms.find((room) => room.getMember(userId));
};
@@ -357,3 +362,7 @@ export const knockRestrictedSupported = (version: string): boolean => {
const unsupportedVersion = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
return !unsupportedVersion.includes(version);
};
+export const creatorsSupported = (version: string): boolean => {
+ const unsupportedVersion = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'];
+ return !unsupportedVersion.includes(version);
+};
diff --git a/src/app/utils/room.ts b/src/app/utils/room.ts
index a962c45..b4bba2a 100644
--- a/src/app/utils/room.ts
+++ b/src/app/utils/room.ts
@@ -20,6 +20,7 @@ import {
import { CryptoBackend } from 'matrix-js-sdk/lib/common-crypto/CryptoBackend';
import { AccountDataEvent } from '../../types/matrix/accountData';
import {
+ IRoomCreateContent,
Membership,
MessageEvent,
NotificationType,
@@ -43,7 +44,7 @@ export const getStateEvents = (room: Room, eventType: StateEvent): MatrixEvent[]
export const getAccountData = (
mx: MatrixClient,
eventType: AccountDataEvent
-): MatrixEvent | undefined => mx.getAccountData(eventType);
+): MatrixEvent | undefined => mx.getAccountData(eventType as any);
export const getMDirects = (mDirectEvent: MatrixEvent): Set => {
const roomIds = new Set();
@@ -480,6 +481,23 @@ export const bannedInRooms = (mx: MatrixClient, rooms: string[], otherUserId: st
return banned;
});
+export const getAllVersionsRoomCreator = (room: Room): Set => {
+ const creators = new Set();
+
+ const createEvent = getStateEvent(room, StateEvent.RoomCreate);
+ const createContent = createEvent?.getContent();
+ const creator = createEvent?.getSender();
+ if (typeof creator === 'string') creators.add(creator);
+
+ if (createContent && Array.isArray(createContent.additional_creators)) {
+ createContent.additional_creators.forEach((c) => {
+ if (typeof c === 'string') creators.add(c);
+ });
+ }
+
+ return creators;
+};
+
export const guessPerfectParent = (
mx: MatrixClient,
roomId: string,
@@ -490,15 +508,29 @@ export const guessPerfectParent = (
}
const getSpecialUsers = (rId: string): string[] => {
+ const specialUsers: Set = new Set();
+
const r = mx.getRoom(rId);
- const powerLevels =
- r && getStateEvent(r, StateEvent.RoomPowerLevels)?.getContent();
+ if (!r) return [];
+
+ getAllVersionsRoomCreator(r).forEach((c) => specialUsers.add(c));
+
+ const powerLevels = getStateEvent(
+ r,
+ StateEvent.RoomPowerLevels
+ )?.getContent();
const { users_default: usersDefault, users } = powerLevels ?? {};
- if (typeof users !== 'object') return [];
-
const defaultPower = typeof usersDefault === 'number' ? usersDefault : 0;
- return Object.keys(users).filter((userId) => users[userId] > defaultPower);
+
+ if (typeof users === 'object')
+ Object.keys(users).forEach((userId) => {
+ if (users[userId] > defaultPower) {
+ specialUsers.add(userId);
+ }
+ });
+
+ return Array.from(specialUsers);
};
let perfectParent: string | undefined;
diff --git a/src/client/state/cons.js b/src/client/state/cons.js
index 1cb8b10..5ef1a62 100644
--- a/src/client/state/cons.js
+++ b/src/client/state/cons.js
@@ -1,5 +1,5 @@
const cons = {
- version: '4.8.1',
+ version: 'latest',
secretKey: {
ACCESS_TOKEN: 'cinny_access_token',
DEVICE_ID: 'cinny_device_id',
diff --git a/src/types/matrix/accountData.ts b/src/types/matrix/accountData.ts
index 20ce941..9871599 100644
--- a/src/types/matrix/accountData.ts
+++ b/src/types/matrix/accountData.ts
@@ -18,6 +18,8 @@ export enum AccountDataEvent {
MegolmBackupV1 = 'm.megolm_backup.v1',
}
+export type MDirectContent = Record;
+
export type SecretStorageDefaultKeyContent = {
key: string;
};
diff --git a/src/types/matrix/room.ts b/src/types/matrix/room.ts
index 65dc35f..b866fd7 100644
--- a/src/types/matrix/room.ts
+++ b/src/types/matrix/room.ts
@@ -1,3 +1,5 @@
+import { IImageInfo } from './common';
+
export enum Membership {
Invite = 'invite',
Knock = 'knock',
@@ -68,8 +70,9 @@ export type IRoomCreateContent = {
['m.federate']?: boolean;
room_version: string;
type?: string;
+ additional_creators?: string[];
predecessor?: {
- event_id: string;
+ event_id?: string;
room_id: string;
};
};
@@ -93,3 +96,13 @@ export type MuteChanges = {
added: string[];
removed: string[];
};
+
+export type MemberPowerTagIcon = {
+ key?: string;
+ info?: IImageInfo;
+};
+export type MemberPowerTag = {
+ name: string;
+ color?: string;
+ icon?: MemberPowerTagIcon;
+};
diff --git a/src/util/matrixUtil.js b/src/util/matrixUtil.js
index 19688a2..1959a53 100644
--- a/src/util/matrixUtil.js
+++ b/src/util/matrixUtil.js
@@ -48,9 +48,7 @@ export async function isRoomAliasAvailable(mx, alias) {
}
export function getPowerLabel(powerLevel) {
- if (powerLevel > 9000) return 'Goku';
- if (powerLevel > 100) return 'Founder';
- if (powerLevel === 100) return 'Admin';
+ if (powerLevel === 100) return 'Founder';
if (powerLevel >= 50) return 'Mod';
return null;
}