git: 39e5f7c07cea - main - net-im/signal-desktop: Update to 7.50.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Fri, 11 Apr 2025 12:29:25 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=39e5f7c07cea5e4b5b26fed985dc62148c69866a

commit 39e5f7c07cea5e4b5b26fed985dc62148c69866a
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2025-04-11 11:43:22 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2025-04-11 12:29:16 +0000

    net-im/signal-desktop: Update to 7.50.0
---
 net-im/signal-desktop/Makefile                     |  35 +-
 net-im/signal-desktop/distinfo                     |  16 +-
 net-im/signal-desktop/files/package-lock.json      | 923 +++++++++++++++------
 net-im/signal-desktop/files/patch-package.json     |  19 +-
 .../files/patch-patches_better-sqlite3.patch       |  14 -
 net-im/signal-desktop/files/pnpm-lock.yaml         | 701 ++++++++--------
 net-im/signal-desktop/get_deps.sh                  |  17 +-
 net-im/signal-desktop/pkg-plist                    |   2 +-
 8 files changed, 1049 insertions(+), 678 deletions(-)

diff --git a/net-im/signal-desktop/Makefile b/net-im/signal-desktop/Makefile
index 5181b327dc47..a39e621ad3cf 100644
--- a/net-im/signal-desktop/Makefile
+++ b/net-im/signal-desktop/Makefile
@@ -1,13 +1,13 @@
 PORTNAME=	signal-desktop
 DISTVERSIONPREFIX=	v
-DISTVERSION=	7.48.0
+DISTVERSION=	7.50.0
 CATEGORIES=	net-im
 MASTER_SITES=	LOCAL/mikael/signal-desktop/:npm \
-		https://build-artifacts.signal.org/desktop/:sqlcipher
+		https://registry.npmjs.org/@esbuild/freebsd-arm64/-/:esbuildarm64 \
+		https://registry.npmjs.org/@esbuild/freebsd-x64/-/:esbuildx64
 DISTFILES=	signal-desktop-${DISTVERSION}-npm-cache.tar.gz:npm \
-		${SQLCIPHER}.tar.gz:sqlcipher
-# for online build
-#DISTFILES=	${SQLCIPHER}.tar.gz:sqlcipher
+		freebsd-arm64-${ESBUILD_VERS}.tgz:esbuildarm64 \
+		freebsd-x64-${ESBUILD_VERS}.tgz:esbuildx64
 
 MAINTAINER=	mikael@FreeBSD.org
 COMMENT=	Cross-platform centralized encrypted messaging service
@@ -21,9 +21,10 @@ ONLY_FOR_ARCHS=	aarch64 amd64
 BUILD_DEPENDS=	${LOCALBASE}/lib/libringrtc.so:multimedia/ringrtc \
 		${LOCALBASE}/lib/libsignal_node.so:net-im/libsignal-node \
 		${LOCALBASE}/lib/libsignal_sqlcipher_extension.a:devel/signal-sqlcipher-extension \
+		${LOCALBASE}/lib/node_sqlcipher.node:security/node-sqlcipher \
 		app-builder>0:devel/app-builder \
 		electron${ELECTRON_VER_MAJOR}:devel/electron${ELECTRON_VER_MAJOR} \
-		npm:www/npm-node20
+		npm:www/npm${NODEJS_SUFFIX}
 LIB_DEPENDS=	libasound.so:audio/alsa-lib \
 		libatk-bridge-2.0.so:accessibility/at-spi2-core \
 		libatspi.so:accessibility/at-spi2-core \
@@ -52,7 +53,7 @@ LIB_DEPENDS=	libasound.so:audio/alsa-lib \
 		libxkbcommon.so:x11/libxkbcommon \
 		libxshmfence.so:x11/libxshmfence
 
-USES=		desktop-file-utils gettext-runtime gl gnome jpeg pkgconfig ssl xorg
+USES=		desktop-file-utils gettext-runtime gl gnome jpeg nodejs:20,build pkgconfig ssl xorg
 USE_GITHUB=	yes
 GH_ACCOUNT=	signalapp
 GH_PROJECT=	Signal-Desktop
@@ -78,13 +79,15 @@ MAKE_ENV+=	ELECTRON_SKIP_BINARY_DOWNLOAD=1
 # This is a workaround to avoid filesystem violations during poudriere build
 MAKE_ENV+=	PYTHONDONTWRITEBYTECODE=1
 
+MAKE_ENV+=	ESBUILD_BINARY_PATH=${WRKDIR}/esbuild-freebsd-64/package/bin/esbuild
+
 _BUILD_DATE=	$$(date +'%s')
 
 ELECTRON_VER_MAJOR=	34
-
-SQLCIPHER=	sqlcipher-v2-4.6.1-signal-patch2--0.2.1-asm2-6253f886c40e49bf892d5cdc92b2eb200b12cd8d80c48ce5b05967cfd01ee8c7
+ESBUILD_VERS=		0.24.0
 
 NODE_ARCH=	${ARCH:S/aarch64/arm64/:S/amd64/x64/}
+ESBUILD_ARCH=	${ARCH:S/aarch64/arm64/:S/amd64/x64/}
 APP_OUT_DIR=	linux-${ARCH:S/aarch64/arm64-/:S/amd64//}unpacked
 
 PLIST_SUB=	NODE_ARCH=${NODE_ARCH} \
@@ -113,21 +116,25 @@ do-build:
 	${CP} ${FILESDIR}/package-lock.json ${WRKSRC}
 	${CP} ${FILESDIR}/pnpm-lock.yaml ${WRKSRC}
 
+	${MKDIR} ${WRKDIR}/esbuild-freebsd-64
+	${TAR} xf ${DISTDIR}/freebsd-${ESBUILD_ARCH}-${ESBUILD_VERS}.tgz -C ${WRKDIR}/esbuild-freebsd-64
+
 	cd ${WRKSRC} && \
 		${SETENV} ${MAKE_ENV} npm install --ignore-scripts pnpm@10.6.3
 	cd ${WRKSRC} && \
 		${SETENV} ${MAKE_ENV} npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers pnpm install --ignore-scripts || ${TRUE}
 
-	# Install libsignal_node.so and libringrtc.so binaries in node_modules
+	# Install libsignal_node.so, libringrtc.so and node_sqlcipher.node binaries in node_modules
 	${MKDIR} ${WRKSRC}/node_modules/@signalapp/libsignal-client/prebuilds/freebsd-${NODE_ARCH} \
-		 ${WRKSRC}/node_modules/@signalapp/ringrtc/build/freebsd
+		 ${WRKSRC}/node_modules/@signalapp/ringrtc/build/freebsd \
+		 ${WRKSRC}/node_modules/@signalapp/sqlcipher/prebuilds/freebsd-${NODE_ARCH}
+
 	${CP} ${LOCALBASE}/lib/libsignal_node.so \
 		${WRKSRC}/node_modules/@signalapp/libsignal-client/prebuilds/freebsd-${NODE_ARCH}/@signalapp+libsignal-client.node
 	${CP} ${LOCALBASE}/lib/libringrtc.so \
 		${WRKSRC}/node_modules/@signalapp/ringrtc/build/freebsd/libringrtc-${NODE_ARCH}.node
-
-	${CP} ${DISTDIR}/${SQLCIPHER}.tar.gz \
-		${WRKSRC}/node_modules/@signalapp/better-sqlite3/deps/sqlcipher.tar.gz
+	 ${CP} ${LOCALBASE}/lib/node_sqlcipher.node \
+		${WRKSRC}/node_modules/@signalapp/sqlcipher/prebuilds/freebsd-${NODE_ARCH}
 
 	cd ${WRKSRC} && \
 		${SETENV} ${MAKE_ENV} npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers pnpm install
diff --git a/net-im/signal-desktop/distinfo b/net-im/signal-desktop/distinfo
index 7db4001d83af..bd00f0fac084 100644
--- a/net-im/signal-desktop/distinfo
+++ b/net-im/signal-desktop/distinfo
@@ -1,7 +1,9 @@
-TIMESTAMP = 1743089316
-SHA256 (signal-desktop-7.48.0-npm-cache.tar.gz) = 01ff0e7fc4552c3c80c2cc519aa824ff71335a67e9eeadfef364c2ba34ca4390
-SIZE (signal-desktop-7.48.0-npm-cache.tar.gz) = 883317232
-SHA256 (sqlcipher-v2-4.6.1-signal-patch2--0.2.1-asm2-6253f886c40e49bf892d5cdc92b2eb200b12cd8d80c48ce5b05967cfd01ee8c7.tar.gz) = 6253f886c40e49bf892d5cdc92b2eb200b12cd8d80c48ce5b05967cfd01ee8c7
-SIZE (sqlcipher-v2-4.6.1-signal-patch2--0.2.1-asm2-6253f886c40e49bf892d5cdc92b2eb200b12cd8d80c48ce5b05967cfd01ee8c7.tar.gz) = 10849572
-SHA256 (signalapp-Signal-Desktop-v7.48.0_GH0.tar.gz) = ba67b29e39851030af4564c0c9373d9b66ed898c1b51fe99259d52299fe8c1b2
-SIZE (signalapp-Signal-Desktop-v7.48.0_GH0.tar.gz) = 45198541
+TIMESTAMP = 1744362898
+SHA256 (signal-desktop-7.50.0-npm-cache.tar.gz) = 56ed35e985b2f77671dbcbe2b624f3531cde15ed84ab91aa052c1ca6ef3e5510
+SIZE (signal-desktop-7.50.0-npm-cache.tar.gz) = 1175936289
+SHA256 (freebsd-arm64-0.24.0.tgz) = c09c0acf0e892cf3aa54b61aa02d447a9ecf00a9d7f0e6165e81f208d25d7de0
+SIZE (freebsd-arm64-0.24.0.tgz) = 3970551
+SHA256 (freebsd-x64-0.24.0.tgz) = f2562d5c4b5d48f832c73f30dc6155adc505b5a296081ddae48b517f2e3d6b42
+SIZE (freebsd-x64-0.24.0.tgz) = 4318529
+SHA256 (signalapp-Signal-Desktop-v7.50.0_GH0.tar.gz) = aa1d8c4f741315fb6028836a346ce69fe3487e65aa9aae3b0ab35d1bbcc627a5
+SIZE (signalapp-Signal-Desktop-v7.50.0_GH0.tar.gz) = 45338528
diff --git a/net-im/signal-desktop/files/package-lock.json b/net-im/signal-desktop/files/package-lock.json
index f0fb1c32ad58..04722b44959d 100644
--- a/net-im/signal-desktop/files/package-lock.json
+++ b/net-im/signal-desktop/files/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "signal-desktop",
-  "version": "7.48.0",
+  "version": "7.50.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "signal-desktop",
-      "version": "7.48.0",
+      "version": "7.50.0",
       "hasInstallScript": true,
       "license": "AGPL-3.0-only",
       "dependencies": {
@@ -17,16 +17,17 @@
         "@indutny/dicer": "0.3.2",
         "@indutny/mac-screen-share": "1.0.13",
         "@indutny/range-finder": "1.3.4",
-        "@indutny/simple-windows-notifications": "2.0.7",
+        "@indutny/simple-windows-notifications": "2.0.16",
         "@indutny/sneequals": "4.0.0",
         "@popperjs/core": "2.11.8",
         "@react-aria/focus": "3.19.1",
+        "@react-aria/interactions": "3.23.0",
         "@react-aria/utils": "3.25.3",
         "@react-spring/web": "9.7.5",
-        "@signalapp/better-sqlite3": "9.0.13",
-        "@signalapp/libsignal-client": "0.67.3",
+        "@signalapp/libsignal-client": "0.67.4",
         "@signalapp/quill-cjs": "2.1.2",
-        "@signalapp/ringrtc": "2.50.2",
+        "@signalapp/ringrtc": "2.50.3",
+        "@signalapp/sqlcipher": "1.0.0",
         "@tanstack/react-virtual": "3.11.2",
         "@types/fabric": "4.5.3",
         "backbone": "1.6.0",
@@ -177,7 +178,6 @@
         "@types/semver": "7.5.8",
         "@types/sinon": "17.0.3",
         "@types/split2": "4.2.3",
-        "@types/unzipper": "0.10.10",
         "@types/uuid": "10.0.0",
         "@types/websocket": "1.0.0",
         "@types/write-file-atomic": "4.0.3",
@@ -198,7 +198,7 @@
         "csv-parse": "5.5.6",
         "danger": "12.3.3",
         "debug": "4.3.7",
-        "electron": "35.0.2",
+        "electron": "35.1.4",
         "electron-builder": "26.0.12",
         "electron-mocha": "13.0.1",
         "endanger": "7.0.4",
@@ -245,7 +245,6 @@
         "terser-webpack-plugin": "5.3.10",
         "ts-node": "10.9.2",
         "typescript": "5.6.3",
-        "unzipper": "0.12.3",
         "wait-on": "8.0.1",
         "webpack": "5.96.1",
         "webpack-cli": "5.1.4",
@@ -2551,9 +2550,9 @@
       }
     },
     "node_modules/@indutny/simple-windows-notifications": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/@indutny/simple-windows-notifications/-/simple-windows-notifications-2.0.7.tgz",
-      "integrity": "sha512-RHh3/+JfAN/7U4xZj1vg4ZRMMjOZxFzt98SRA6o/bqVUl1Tlef6L4sqVKruCdKMZj6zSpLCFHWg6cQtLuJJEGg==",
+      "version": "2.0.16",
+      "resolved": "https://registry.npmjs.org/@indutny/simple-windows-notifications/-/simple-windows-notifications-2.0.16.tgz",
+      "integrity": "sha512-twYOSz8l/bJkYumNiOE6vkdPXr6pmoR0fq6OBLaxVoGRz404mWLjFVMaRcVD2zVzzaQBXIUyaxfLbVjxnM5M4A==",
       "hasInstallScript": true,
       "license": "MIT",
       "dependencies": {
@@ -4465,6 +4464,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/button/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/button/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4505,6 +4521,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/calendar/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/calendar/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4546,6 +4579,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/checkbox/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/checkbox/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4606,6 +4656,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/color/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4669,6 +4736,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/combobox/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/combobox/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4734,6 +4818,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/datepicker/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/datepicker/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4770,6 +4871,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/dialog/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/dialog/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4832,6 +4950,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/dnd/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/dnd/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4902,6 +5037,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/form/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/form/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -4962,6 +5114,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/grid/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/grid/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5020,6 +5189,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/gridlist/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/gridlist/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5077,15 +5263,14 @@
       }
     },
     "node_modules/@react-aria/interactions": {
-      "version": "3.24.1",
-      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
-      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "version": "3.23.0",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.23.0.tgz",
+      "integrity": "sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==",
       "license": "Apache-2.0",
       "dependencies": {
         "@react-aria/ssr": "^3.9.7",
-        "@react-aria/utils": "^3.28.1",
-        "@react-stately/flags": "^3.1.0",
-        "@react-types/shared": "^3.28.0",
+        "@react-aria/utils": "^3.27.0",
+        "@react-types/shared": "^3.27.0",
         "@swc/helpers": "^0.5.0"
       },
       "peerDependencies": {
@@ -5161,6 +5346,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/link/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/link/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5200,6 +5402,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/listbox/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/listbox/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5270,6 +5489,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/menu/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/menu/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5327,6 +5563,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/numberfield/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/numberfield/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5385,6 +5638,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/overlays/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/overlays/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5478,6 +5748,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/radio/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/radio/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5560,6 +5847,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/select/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/select/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5597,17 +5901,34 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
-    "node_modules/@react-aria/selection/node_modules/@react-aria/focus": {
-      "version": "3.20.1",
-      "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.1.tgz",
-      "integrity": "sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==",
+    "node_modules/@react-aria/selection/node_modules/@react-aria/focus": {
+      "version": "3.20.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.1.tgz",
+      "integrity": "sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/interactions": "^3.24.1",
+        "@react-aria/utils": "^3.28.1",
+        "@react-types/shared": "^3.28.0",
+        "@swc/helpers": "^0.5.0",
+        "clsx": "^2.0.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/selection/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@react-aria/interactions": "^3.24.1",
+        "@react-aria/ssr": "^3.9.7",
         "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
         "@react-types/shared": "^3.28.0",
-        "@swc/helpers": "^0.5.0",
-        "clsx": "^2.0.0"
+        "@swc/helpers": "^0.5.0"
       },
       "peerDependencies": {
         "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
@@ -5685,6 +6006,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/slider/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/slider/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5815,6 +6153,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/table/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/table/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5870,6 +6225,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/tabs/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/tabs/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5910,6 +6282,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/tag/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/tag/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5949,6 +6338,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/textfield/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/textfield/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -5985,6 +6391,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/toggle/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/toggle/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -6037,6 +6460,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/toolbar/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/toolbar/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -6073,6 +6513,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/tooltip/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/tooltip/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -6145,6 +6602,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/virtualizer/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/virtualizer/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -6179,6 +6653,23 @@
         "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
       }
     },
+    "node_modules/@react-aria/visually-hidden/node_modules/@react-aria/interactions": {
+      "version": "3.24.1",
+      "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
+      "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@react-aria/ssr": "^3.9.7",
+        "@react-aria/utils": "^3.28.1",
+        "@react-stately/flags": "^3.1.0",
+        "@react-types/shared": "^3.28.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/visually-hidden/node_modules/@react-aria/utils": {
       "version": "3.28.1",
       "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
@@ -7115,21 +7606,10 @@
       "dev": true,
       "license": "BSD-3-Clause"
     },
-    "node_modules/@signalapp/better-sqlite3": {
-      "version": "9.0.13",
-      "resolved": "https://registry.npmjs.org/@signalapp/better-sqlite3/-/better-sqlite3-9.0.13.tgz",
-      "integrity": "sha512-sl5JJvHz/mGy3JXXcWFq7PxeO/d9SaCjPq/FPc4RCujaTC9JofHLdxQjn2xSSZQBLm28o2as3p6hD9eDk+BVNw==",
-      "hasInstallScript": true,
-      "license": "MIT",
-      "dependencies": {
-        "bindings": "^1.5.0",
-        "tar": "^6.1.0"
-      }
-    },
     "node_modules/@signalapp/libsignal-client": {
-      "version": "0.67.3",
-      "resolved": "https://registry.npmjs.org/@signalapp/libsignal-client/-/libsignal-client-0.67.3.tgz",
-      "integrity": "sha512-GIiXJMqiIByPZbomytoYQcQLJ3pNgHBCjt5BvlE/3rkrmNwyXW1UVqszX6/WfZi91aqUapO4+7Op+8JCbDGRWA==",
+      "version": "0.67.4",
+      "resolved": "https://registry.npmjs.org/@signalapp/libsignal-client/-/libsignal-client-0.67.4.tgz",
+      "integrity": "sha512-nenGxomG2zH0uCoFSwBzofqSAHnJRdbIbLr8libGy9y3rCL2z62nHL79Kh1o46ZnzxgAA7Ay3/qMhwPcXq7Iig==",
       "hasInstallScript": true,
       "license": "AGPL-3.0-only",
       "dependencies": {
@@ -7169,9 +7649,9 @@
       }
     },
     "node_modules/@signalapp/ringrtc": {
-      "version": "2.50.2",
-      "resolved": "https://registry.npmjs.org/@signalapp/ringrtc/-/ringrtc-2.50.2.tgz",
-      "integrity": "sha512-fZgfz4asC4CZsvrhxYMDVbIz0iffde9GhWEgIBpAxgEiLpuURx9YRK1ghnn9eonfZNEXwhrTUXUBlC6xYyy1rQ==",
+      "version": "2.50.3",
+      "resolved": "https://registry.npmjs.org/@signalapp/ringrtc/-/ringrtc-2.50.3.tgz",
+      "integrity": "sha512-LKR5rBVoVny0T8aWLaHP94lKvWzd0a0WTv9AWD+HFA2N7BQ+7YpAlLLCBNgZpI3UYHw/9gpZC1ZQJZF8uz7MDA==",
       "hasInstallScript": true,
*** 3087 LINES SKIPPED ***