diff --git a/.dockerignore b/.dockerignore
index 71cdb8b9..61cb85b9 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -7,3 +7,5 @@ node_modules
.idea
.env
.env.*
+scripts/seed
+scripts/seed-data.ts
diff --git a/Dockerfile b/Dockerfile
index 32300687..aa894ea5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,7 @@
+ARG NODE_IMAGE_VERSION="22-alpine"
+
# Install dependencies only when needed
-FROM node:22-alpine AS deps
+FROM node:${NODE_IMAGE_VERSION} AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
WORKDIR /app
@@ -8,7 +10,7 @@ RUN npm install -g pnpm
RUN pnpm install --frozen-lockfile
# Rebuild the source code only when needed
-FROM node:22-alpine AS builder
+FROM node:${NODE_IMAGE_VERSION} AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
@@ -25,9 +27,10 @@ ENV NEXT_TELEMETRY_DISABLED=1
RUN npm run build-docker
# Production image, copy all the files and run next
-FROM node:22-alpine AS runner
+FROM node:${NODE_IMAGE_VERSION} AS runner
WORKDIR /app
+ARG PRISMA_VERSION="6.19.0"
ARG NODE_OPTIONS
ENV NODE_ENV=production
@@ -36,13 +39,14 @@ ENV NODE_OPTIONS=$NODE_OPTIONS
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-RUN npm install -g pnpm
-
RUN set -x \
- && apk add --no-cache curl
+ && apk add --no-cache curl \
+ && npm install -g pnpm
# Script dependencies
-RUN pnpm --allow-build='@prisma/engines' add npm-run-all dotenv chalk semver prisma@6.18.0 @prisma/adapter-pg@6.18.0
+RUN pnpm --allow-build='@prisma/engines' add npm-run-all dotenv chalk semver \
+ prisma@${PRISMA_VERSION} \
+ @prisma/adapter-pg@${PRISMA_VERSION}
COPY --from=builder --chown=nextjs:nodejs /app/public ./public
COPY --from=builder /app/prisma ./prisma
diff --git a/README.md b/README.md
index 08648c0a..dcc6865f 100644
--- a/README.md
+++ b/README.md
@@ -9,18 +9,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
---
@@ -119,18 +111,10 @@ docker compose up --force-recreate -d
## 🛟 Support
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
[release-shield]: https://img.shields.io/github/release/umami-software/umami.svg
diff --git a/package.json b/package.json
index 077b74d3..e20ae62d 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
"test": "jest",
"cypress-open": "cypress open cypress run",
"cypress-run": "cypress run cypress run",
+ "seed-data": "tsx scripts/seed-data.ts",
"lint": "biome lint .",
"format": "biome format --write .",
"check": "biome check --write"
@@ -71,8 +72,8 @@
"@prisma/extension-read-replicas": "^0.4.1",
"@react-spring/web": "^10.0.3",
"@svgr/cli": "^8.1.0",
- "@tanstack/react-query": "^5.90.5",
- "@umami/react-zen": "^0.210.0",
+ "@tanstack/react-query": "^5.90.11",
+ "@umami/react-zen": "^0.211.0",
"@umami/redis-client": "^0.29.0",
"bcryptjs": "^3.0.2",
"chalk": "^5.6.2",
@@ -91,7 +92,7 @@
"esbuild": "^0.25.11",
"fs-extra": "^11.3.2",
"immer": "^10.2.0",
- "ipaddr.js": "^2.0.1",
+ "ipaddr.js": "^2.3.0",
"is-ci": "^3.0.1",
"is-docker": "^3.0.0",
"is-localhost-ip": "^2.0.0",
@@ -101,15 +102,15 @@
"kafkajs": "^2.1.0",
"lucide-react": "^0.543.0",
"maxmind": "^5.0.0",
- "next": "15.5.3",
+ "next": "^15.5.7",
"node-fetch": "^3.2.8",
"npm-run-all": "^4.1.5",
"papaparse": "^5.5.3",
"pg": "^8.16.3",
"prisma": "^6.18.0",
"pure-rand": "^7.0.1",
- "react": "^19.2.0",
- "react-dom": "^19.2.0",
+ "react": "^19.2.1",
+ "react-dom": "^19.2.1",
"react-error-boundary": "^4.0.4",
"react-intl": "^7.1.14",
"react-simple-maps": "^2.3.0",
@@ -121,13 +122,13 @@
"thenby": "^1.3.4",
"ua-parser-js": "^2.0.6",
"uuid": "^11.1.0",
- "zod": "^4.1.12",
- "zustand": "^5.0.8"
+ "zod": "^4.1.13",
+ "zustand": "^5.0.9"
},
"devDependencies": {
- "@biomejs/biome": "^2.3.6",
+ "@biomejs/biome": "^2.3.8",
"@formatjs/cli": "^4.2.29",
- "@netlify/plugin-nextjs": "^5.14.4",
+ "@netlify/plugin-nextjs": "^5.15.1",
"@rollup/plugin-alias": "^5.0.0",
"@rollup/plugin-commonjs": "^25.0.4",
"@rollup/plugin-json": "^6.0.0",
@@ -137,7 +138,7 @@
"@rollup/plugin-typescript": "^12.3.0",
"@types/jest": "^30.0.0",
"@types/node": "^24.9.2",
- "@types/react": "^19.2.2",
+ "@types/react": "^19.2.7",
"@types/react-dom": "^19.2.2",
"@types/react-window": "^1.8.8",
"babel-plugin-react-compiler": "19.1.0-rc.2",
@@ -155,7 +156,7 @@
"rollup": "^4.52.5",
"rollup-plugin-copy": "^3.4.0",
"rollup-plugin-delete": "^3.0.1",
- "rollup-plugin-dts": "^6.2.3",
+ "rollup-plugin-dts": "^6.3.0",
"rollup-plugin-node-externals": "^8.1.1",
"rollup-plugin-peer-deps-external": "^2.2.4",
"rollup-plugin-postcss": "^4.0.2",
@@ -164,9 +165,10 @@
"stylelint-config-prettier": "^9.0.3",
"stylelint-config-recommended": "^14.0.0",
"tar": "^6.1.2",
- "ts-jest": "^29.4.5",
+ "ts-jest": "^29.4.6",
"ts-node": "^10.9.1",
"tsup": "^8.5.0",
+ "tsx": "^4.19.0",
"typescript": "^5.9.3"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0a4577c1..10eed821 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -25,7 +25,7 @@ importers:
version: 5.2.8
'@hello-pangea/dnd':
specifier: ^17.0.0
- version: 17.0.0(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 17.0.0(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@prisma/adapter-pg':
specifier: ^6.18.0
version: 6.19.0
@@ -37,16 +37,16 @@ importers:
version: 0.4.1(@prisma/client@6.19.0(prisma@6.19.0(typescript@5.9.3))(typescript@5.9.3))
'@react-spring/web':
specifier: ^10.0.3
- version: 10.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@svgr/cli':
specifier: ^8.1.0
version: 8.1.0(typescript@5.9.3)
'@tanstack/react-query':
- specifier: ^5.90.5
- version: 5.90.10(react@19.2.0)
+ specifier: ^5.90.11
+ version: 5.90.11(react@19.2.1)
'@umami/react-zen':
- specifier: ^0.210.0
- version: 0.210.0(@babel/core@7.28.3)(@types/react@19.2.6)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.0))
+ specifier: ^0.211.0
+ version: 0.211.0(@babel/core@7.28.3)(@types/react@19.2.7)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.1))
'@umami/redis-client':
specifier: ^0.29.0
version: 0.29.0
@@ -102,8 +102,8 @@ importers:
specifier: ^10.2.0
version: 10.2.0
ipaddr.js:
- specifier: ^2.0.1
- version: 2.2.0
+ specifier: ^2.3.0
+ version: 2.3.0
is-ci:
specifier: ^3.0.1
version: 3.0.1
@@ -127,13 +127,13 @@ importers:
version: 2.2.4
lucide-react:
specifier: ^0.543.0
- version: 0.543.0(react@19.2.0)
+ version: 0.543.0(react@19.2.1)
maxmind:
specifier: ^5.0.0
version: 5.0.1
next:
- specifier: 15.5.3
- version: 15.5.3(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ specifier: ^15.5.7
+ version: 15.5.7(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
node-fetch:
specifier: ^3.2.8
version: 3.3.2
@@ -153,26 +153,26 @@ importers:
specifier: ^7.0.1
version: 7.0.1
react:
- specifier: ^19.2.0
- version: 19.2.0
+ specifier: ^19.2.1
+ version: 19.2.1
react-dom:
- specifier: ^19.2.0
- version: 19.2.0(react@19.2.0)
+ specifier: ^19.2.1
+ version: 19.2.1(react@19.2.1)
react-error-boundary:
specifier: ^4.0.4
- version: 4.1.2(react@19.2.0)
+ version: 4.1.2(react@19.2.1)
react-intl:
specifier: ^7.1.14
- version: 7.1.14(react@19.2.0)(typescript@5.9.3)
+ version: 7.1.14(react@19.2.1)(typescript@5.9.3)
react-simple-maps:
specifier: ^2.3.0
- version: 2.3.0(prop-types@15.8.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 2.3.0(prop-types@15.8.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
react-use-measure:
specifier: ^2.0.4
- version: 2.1.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 2.1.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
react-window:
specifier: ^1.8.6
- version: 1.8.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 1.8.11(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
request-ip:
specifier: ^3.3.0
version: 3.3.0
@@ -192,21 +192,21 @@ importers:
specifier: ^11.1.0
version: 11.1.0
zod:
- specifier: ^4.1.12
- version: 4.1.12
+ specifier: ^4.1.13
+ version: 4.1.13
zustand:
- specifier: ^5.0.8
- version: 5.0.8(@types/react@19.2.6)(immer@10.2.0)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0))
+ specifier: ^5.0.9
+ version: 5.0.9(@types/react@19.2.7)(immer@10.2.0)(react@19.2.1)(use-sync-external-store@1.6.0(react@19.2.1))
devDependencies:
'@biomejs/biome':
- specifier: ^2.3.6
- version: 2.3.7
+ specifier: ^2.3.8
+ version: 2.3.8
'@formatjs/cli':
specifier: ^4.2.29
- version: 4.8.4(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
+ version: 4.8.4(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
'@netlify/plugin-nextjs':
- specifier: ^5.14.4
- version: 5.14.7
+ specifier: ^5.15.1
+ version: 5.15.1
'@rollup/plugin-alias':
specifier: ^5.0.0
version: 5.1.1(rollup@4.53.3)
@@ -235,11 +235,11 @@ importers:
specifier: ^24.9.2
version: 24.10.1
'@types/react':
- specifier: ^19.2.2
- version: 19.2.6
+ specifier: ^19.2.7
+ version: 19.2.7
'@types/react-dom':
specifier: ^19.2.2
- version: 19.2.3(@types/react@19.2.6)
+ version: 19.2.3(@types/react@19.2.7)
'@types/react-window':
specifier: ^1.8.8
version: 1.8.8
@@ -254,7 +254,7 @@ importers:
version: 13.17.0
extract-react-intl-messages:
specifier: ^4.1.1
- version: 4.1.1(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
+ version: 4.1.1(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
husky:
specifier: ^9.1.7
version: 9.1.7
@@ -289,8 +289,8 @@ importers:
specifier: ^3.0.1
version: 3.0.1(rollup@4.53.3)
rollup-plugin-dts:
- specifier: ^6.2.3
- version: 6.2.3(rollup@4.53.3)(typescript@5.9.3)
+ specifier: ^6.3.0
+ version: 6.3.0(rollup@4.53.3)(typescript@5.9.3)
rollup-plugin-node-externals:
specifier: ^8.1.1
version: 8.1.2(rollup@4.53.3)
@@ -316,18 +316,23 @@ importers:
specifier: ^6.1.2
version: 6.2.1
ts-jest:
- specifier: ^29.4.5
- version: 29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)
+ specifier: ^29.4.6
+ version: 29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)
ts-node:
specifier: ^10.9.1
version: 10.9.2(@types/node@24.10.1)(typescript@5.9.3)
tsup:
specifier: ^8.5.0
- version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.1)
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.1)
+ tsx:
+ specifier: ^4.19.0
+ version: 4.21.0
typescript:
specifier: ^5.9.3
version: 5.9.3
+ dist: {}
+
packages:
'@ampproject/remapping@2.3.0':
@@ -503,55 +508,55 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@biomejs/biome@2.3.7':
- resolution: {integrity: sha512-CTbAS/jNAiUc6rcq94BrTB8z83O9+BsgWj2sBCQg9rD6Wkh2gjfR87usjx0Ncx0zGXP1NKgT7JNglay5Zfs9jw==}
+ '@biomejs/biome@2.3.8':
+ resolution: {integrity: sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA==}
engines: {node: '>=14.21.3'}
hasBin: true
- '@biomejs/cli-darwin-arm64@2.3.7':
- resolution: {integrity: sha512-LirkamEwzIUULhXcf2D5b+NatXKeqhOwilM+5eRkbrnr6daKz9rsBL0kNZ16Hcy4b8RFq22SG4tcLwM+yx/wFA==}
+ '@biomejs/cli-darwin-arm64@2.3.8':
+ resolution: {integrity: sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [darwin]
- '@biomejs/cli-darwin-x64@2.3.7':
- resolution: {integrity: sha512-Q4TO633kvrMQkKIV7wmf8HXwF0dhdTD9S458LGE24TYgBjSRbuhvio4D5eOQzirEYg6eqxfs53ga/rbdd8nBKg==}
+ '@biomejs/cli-darwin-x64@2.3.8':
+ resolution: {integrity: sha512-lUDQ03D7y/qEao7RgdjWVGCu+BLYadhKTm40HkpJIi6kn8LSv5PAwRlew/DmwP4YZ9ke9XXoTIQDO1vAnbRZlA==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [darwin]
- '@biomejs/cli-linux-arm64-musl@2.3.7':
- resolution: {integrity: sha512-/afy8lto4CB8scWfMdt+NoCZtatBUF62Tk3ilWH2w8ENd5spLhM77zKlFZEvsKJv9AFNHknMl03zO67CiklL2Q==}
+ '@biomejs/cli-linux-arm64-musl@2.3.8':
+ resolution: {integrity: sha512-PShR4mM0sjksUMyxbyPNMxoKFPVF48fU8Qe8Sfx6w6F42verbwRLbz+QiKNiDPRJwUoMG1nPM50OBL3aOnTevA==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
- '@biomejs/cli-linux-arm64@2.3.7':
- resolution: {integrity: sha512-inHOTdlstUBzgjDcx0ge71U4SVTbwAljmkfi3MC5WzsYCRhancqfeL+sa4Ke6v2ND53WIwCFD5hGsYExoI3EZQ==}
+ '@biomejs/cli-linux-arm64@2.3.8':
+ resolution: {integrity: sha512-Uo1OJnIkJgSgF+USx970fsM/drtPcQ39I+JO+Fjsaa9ZdCN1oysQmy6oAGbyESlouz+rzEckLTF6DS7cWse95g==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
- '@biomejs/cli-linux-x64-musl@2.3.7':
- resolution: {integrity: sha512-CQUtgH1tIN6e5wiYSJqzSwJumHYolNtaj1dwZGCnZXm2PZU1jOJof9TsyiP3bXNDb+VOR7oo7ZvY01If0W3iFQ==}
+ '@biomejs/cli-linux-x64-musl@2.3.8':
+ resolution: {integrity: sha512-YGLkqU91r1276uwSjiUD/xaVikdxgV1QpsicT0bIA1TaieM6E5ibMZeSyjQ/izBn4tKQthUSsVZacmoJfa3pDA==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
- '@biomejs/cli-linux-x64@2.3.7':
- resolution: {integrity: sha512-fJMc3ZEuo/NaMYo5rvoWjdSS5/uVSW+HPRQujucpZqm2ZCq71b8MKJ9U4th9yrv2L5+5NjPF0nqqILCl8HY/fg==}
+ '@biomejs/cli-linux-x64@2.3.8':
+ resolution: {integrity: sha512-QDPMD5bQz6qOVb3kiBui0zKZXASLo0NIQ9JVJio5RveBEFgDgsvJFUvZIbMbUZT3T00M/1wdzwWXk4GIh0KaAw==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
- '@biomejs/cli-win32-arm64@2.3.7':
- resolution: {integrity: sha512-aJAE8eCNyRpcfx2JJAtsPtISnELJ0H4xVVSwnxm13bzI8RwbXMyVtxy2r5DV1xT3WiSP+7LxORcApWw0LM8HiA==}
+ '@biomejs/cli-win32-arm64@2.3.8':
+ resolution: {integrity: sha512-H4IoCHvL1fXKDrTALeTKMiE7GGWFAraDwBYFquE/L/5r1927Te0mYIGseXi4F+lrrwhSWbSGt5qPFswNoBaCxg==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [win32]
- '@biomejs/cli-win32-x64@2.3.7':
- resolution: {integrity: sha512-pulzUshqv9Ed//MiE8MOUeeEkbkSHVDVY5Cz5wVAnH1DUqliCQG3j6s1POaITTFqFfo7AVIx2sWdKpx/GS+Nqw==}
+ '@biomejs/cli-win32-x64@2.3.8':
+ resolution: {integrity: sha512-RguzimPoZWtBapfKhKjcWXBVI91tiSprqdBYu7tWhgN8pKRZhw24rFeNZTNf6UiBfjCYCi9eFQs/JzJZIhuK4w==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [win32]
@@ -1684,108 +1689,108 @@ packages:
'@kurkle/color@0.3.4':
resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
- '@netlify/plugin-nextjs@5.14.7':
- resolution: {integrity: sha512-RJRPGIlaY3M4KA6GxpOlynCPUKCVbtkHwg4ccHhoSVrHgysW3nqw1pX+FBvlBexrUl1JO2zuDFh4enRal9BpAw==}
+ '@netlify/plugin-nextjs@5.15.1':
+ resolution: {integrity: sha512-HXm94tteOuA0FYwhkxjYIPe0zta+Dsu0wz7LnhfqVlaYcRaOLjHtd2vgfmpz3np/fx9TQg3gCfqGkXt2a9i7Aw==}
engines: {node: '>=18.0.0'}
- '@next/env@15.5.3':
- resolution: {integrity: sha512-RSEDTRqyihYXygx/OJXwvVupfr9m04+0vH8vyy0HfZ7keRto6VX9BbEk0J2PUk0VGy6YhklJUSrgForov5F9pw==}
+ '@next/env@15.5.7':
+ resolution: {integrity: sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==}
- '@next/env@15.5.6':
- resolution: {integrity: sha512-3qBGRW+sCGzgbpc5TS1a0p7eNxnOarGVQhZxfvTdnV0gFI61lX7QNtQ4V1TSREctXzYn5NetbUsLvyqwLFJM6Q==}
+ '@next/env@16.0.7':
+ resolution: {integrity: sha512-gpaNgUh5nftFKRkRQGnVi5dpcYSKGcZZkQffZ172OrG/XkrnS7UBTQ648YY+8ME92cC4IojpI2LqTC8sTDhAaw==}
- '@next/swc-darwin-arm64@15.5.3':
- resolution: {integrity: sha512-nzbHQo69+au9wJkGKTU9lP7PXv0d1J5ljFpvb+LnEomLtSbJkbZyEs6sbF3plQmiOB2l9OBtN2tNSvCH1nQ9Jg==}
+ '@next/swc-darwin-arm64@15.5.7':
+ resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-arm64@15.5.6':
- resolution: {integrity: sha512-ES3nRz7N+L5Umz4KoGfZ4XX6gwHplwPhioVRc25+QNsDa7RtUF/z8wJcbuQ2Tffm5RZwuN2A063eapoJ1u4nPg==}
+ '@next/swc-darwin-arm64@16.0.7':
+ resolution: {integrity: sha512-LlDtCYOEj/rfSnEn/Idi+j1QKHxY9BJFmxx7108A6D8K0SB+bNgfYQATPk/4LqOl4C0Wo3LACg2ie6s7xqMpJg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@15.5.3':
- resolution: {integrity: sha512-w83w4SkOOhekJOcA5HBvHyGzgV1W/XvOfpkrxIse4uPWhYTTRwtGEM4v/jiXwNSJvfRvah0H8/uTLBKRXlef8g==}
+ '@next/swc-darwin-x64@15.5.7':
+ resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-darwin-x64@15.5.6':
- resolution: {integrity: sha512-JIGcytAyk9LQp2/nuVZPAtj8uaJ/zZhsKOASTjxDug0SPU9LAM3wy6nPU735M1OqacR4U20LHVF5v5Wnl9ptTA==}
+ '@next/swc-darwin-x64@16.0.7':
+ resolution: {integrity: sha512-rtZ7BhnVvO1ICf3QzfW9H3aPz7GhBrnSIMZyr4Qy6boXF0b5E3QLs+cvJmg3PsTCG2M1PBoC+DANUi4wCOKXpA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@15.5.3':
- resolution: {integrity: sha512-+m7pfIs0/yvgVu26ieaKrifV8C8yiLe7jVp9SpcIzg7XmyyNE7toC1fy5IOQozmr6kWl/JONC51osih2RyoXRw==}
+ '@next/swc-linux-arm64-gnu@15.5.7':
+ resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-gnu@15.5.6':
- resolution: {integrity: sha512-qvz4SVKQ0P3/Im9zcS2RmfFL/UCQnsJKJwQSkissbngnB/12c6bZTCB0gHTexz1s6d/mD0+egPKXAIRFVS7hQg==}
+ '@next/swc-linux-arm64-gnu@16.0.7':
+ resolution: {integrity: sha512-mloD5WcPIeIeeZqAIP5c2kdaTa6StwP4/2EGy1mUw8HiexSHGK/jcM7lFuS3u3i2zn+xH9+wXJs6njO7VrAqww==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-musl@15.5.3':
- resolution: {integrity: sha512-u3PEIzuguSenoZviZJahNLgCexGFhso5mxWCrrIMdvpZn6lkME5vc/ADZG8UUk5K1uWRy4hqSFECrON6UKQBbQ==}
+ '@next/swc-linux-arm64-musl@15.5.7':
+ resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-musl@15.5.6':
- resolution: {integrity: sha512-FsbGVw3SJz1hZlvnWD+T6GFgV9/NYDeLTNQB2MXoPN5u9VA9OEDy6fJEfePfsUKAhJufFbZLgp0cPxMuV6SV0w==}
+ '@next/swc-linux-arm64-musl@16.0.7':
+ resolution: {integrity: sha512-+ksWNrZrthisXuo9gd1XnjHRowCbMtl/YgMpbRvFeDEqEBd523YHPWpBuDjomod88U8Xliw5DHhekBC3EOOd9g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-x64-gnu@15.5.3':
- resolution: {integrity: sha512-lDtOOScYDZxI2BENN9m0pfVPJDSuUkAD1YXSvlJF0DKwZt0WlA7T7o3wrcEr4Q+iHYGzEaVuZcsIbCps4K27sA==}
+ '@next/swc-linux-x64-gnu@15.5.7':
+ resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-gnu@15.5.6':
- resolution: {integrity: sha512-3QnHGFWlnvAgyxFxt2Ny8PTpXtQD7kVEeaFat5oPAHHI192WKYB+VIKZijtHLGdBBvc16tiAkPTDmQNOQ0dyrA==}
+ '@next/swc-linux-x64-gnu@16.0.7':
+ resolution: {integrity: sha512-4WtJU5cRDxpEE44Ana2Xro1284hnyVpBb62lIpU5k85D8xXxatT+rXxBgPkc7C1XwkZMWpK5rXLXTh9PFipWsA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-musl@15.5.3':
- resolution: {integrity: sha512-9vWVUnsx9PrY2NwdVRJ4dUURAQ8Su0sLRPqcCCxtX5zIQUBES12eRVHq6b70bbfaVaxIDGJN2afHui0eDm+cLg==}
+ '@next/swc-linux-x64-musl@15.5.7':
+ resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-musl@15.5.6':
- resolution: {integrity: sha512-OsGX148sL+TqMK9YFaPFPoIaJKbFJJxFzkXZljIgA9hjMjdruKht6xDCEv1HLtlLNfkx3c5w2GLKhj7veBQizQ==}
+ '@next/swc-linux-x64-musl@16.0.7':
+ resolution: {integrity: sha512-HYlhqIP6kBPXalW2dbMTSuB4+8fe+j9juyxwfMwCe9kQPPeiyFn7NMjNfoFOfJ2eXkeQsoUGXg+O2SE3m4Qg2w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-win32-arm64-msvc@15.5.3':
- resolution: {integrity: sha512-1CU20FZzY9LFQigRi6jM45oJMU3KziA5/sSG+dXeVaTm661snQP6xu3ykGxxwU5sLG3sh14teO/IOEPVsQMRfA==}
+ '@next/swc-win32-arm64-msvc@15.5.7':
+ resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-arm64-msvc@15.5.6':
- resolution: {integrity: sha512-ONOMrqWxdzXDJNh2n60H6gGyKed42Ieu6UTVPZteXpuKbLZTH4G4eBMsr5qWgOBA+s7F+uB4OJbZnrkEDnZ5Fg==}
+ '@next/swc-win32-arm64-msvc@16.0.7':
+ resolution: {integrity: sha512-EviG+43iOoBRZg9deGauXExjRphhuYmIOJ12b9sAPy0eQ6iwcPxfED2asb/s2/yiLYOdm37kPaiZu8uXSYPs0Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-x64-msvc@15.5.3':
- resolution: {integrity: sha512-JMoLAq3n3y5tKXPQwCK5c+6tmwkuFDa2XAxz8Wm4+IVthdBZdZGh+lmiLUHg9f9IDwIQpUjp+ysd6OkYTyZRZw==}
+ '@next/swc-win32-x64-msvc@15.5.7':
+ resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@next/swc-win32-x64-msvc@15.5.6':
- resolution: {integrity: sha512-pxK4VIjFRx1MY92UycLOOw7dTdvccWsNETQ0kDHkBlcFH1GrTLUjSiHU1ohrznnux6TqRHgv5oflhfIWZwVROQ==}
+ '@next/swc-win32-x64-msvc@16.0.7':
+ resolution: {integrity: sha512-gniPjy55zp5Eg0896qSrf3yB1dw4F/3s8VK1ephdsZZ129j2n6e1WqCbE2YgcKhW9hPB9TVZENugquWJD5x0ug==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -2812,11 +2817,11 @@ packages:
'@swc/helpers@0.5.17':
resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
- '@tanstack/query-core@5.90.10':
- resolution: {integrity: sha512-EhZVFu9rl7GfRNuJLJ3Y7wtbTnENsvzp+YpcAV7kCYiXni1v8qZh++lpw4ch4rrwC0u/EZRnBHIehzCGzwXDSQ==}
+ '@tanstack/query-core@5.90.11':
+ resolution: {integrity: sha512-f9z/nXhCgWDF4lHqgIE30jxLe4sYv15QodfdPDKYAk7nAEjNcndy4dHz3ezhdUaR23BpWa4I2EH4/DZ0//Uf8A==}
- '@tanstack/react-query@5.90.10':
- resolution: {integrity: sha512-BKLss9Y8PQ9IUjPYQiv3/Zmlx92uxffUOX8ZZNoQlCIZBJPT5M+GOMQj7xislvVQ6l1BstBjcX0XB/aHfFYVNw==}
+ '@tanstack/react-query@5.90.11':
+ resolution: {integrity: sha512-3uyzz01D1fkTLXuxF3JfoJoHQMU2fxsfJwE+6N5hHy0dVNoZOvwKP8Z2k7k1KDeD54N20apcJnG75TBAStIrBA==}
peerDependencies:
react: ^18 || ^19
@@ -2914,8 +2919,8 @@ packages:
'@types/react-window@1.8.8':
resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==}
- '@types/react@19.2.6':
- resolution: {integrity: sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w==}
+ '@types/react@19.2.7':
+ resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==}
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@@ -2945,8 +2950,8 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@umami/react-zen@0.210.0':
- resolution: {integrity: sha512-nQ8EfrSleuXMPBVabr6rDoH2VS0ca41A3V2OCQbG4HqgLJ5+Mj8gHT/aLqUz5EKNBAmMy0/XxPNAgsHwwoxrCQ==}
+ '@umami/react-zen@0.211.0':
+ resolution: {integrity: sha512-e9dfsmMYpClYU/xQ+nwFo4ktAJc6eth4k6lpdD4j47FD5PaMfSY1FK1qJ7yq/JVN0Ydomc8cuWBDZbHpG4sQmQ==}
'@umami/redis-client@0.29.0':
resolution: {integrity: sha512-Jaqh++jskqDB7ny75pfC02OvKp1JTS4asGDsFrRL3qy8sxL3PAl9+/mybCJe4/6vWrXDJKqpgkSfUDJq2bFjyw==}
@@ -3275,8 +3280,8 @@ packages:
caniuse-lite@1.0.30001741:
resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==}
- caniuse-lite@1.0.30001756:
- resolution: {integrity: sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A==}
+ caniuse-lite@1.0.30001759:
+ resolution: {integrity: sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==}
caseless@0.12.0:
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
@@ -4174,6 +4179,9 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
+ get-tsconfig@4.13.0:
+ resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
+
getos@3.2.1:
resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==}
@@ -4192,6 +4200,10 @@ packages:
resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
hasBin: true
+ glob@13.0.0:
+ resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==}
+ engines: {node: 20 || >=22}
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -4408,8 +4420,8 @@ packages:
intl-messageformat@10.7.18:
resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==}
- ipaddr.js@2.2.0:
- resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==}
+ ipaddr.js@2.3.0:
+ resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==}
engines: {node: '>= 10'}
is-array-buffer@3.0.5:
@@ -5035,6 +5047,10 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+ lru-cache@11.2.4:
+ resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -5042,21 +5058,21 @@ packages:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
- lucide-react@0.511.0:
- resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==}
+ lucide-react@0.543.0:
+ resolution: {integrity: sha512-fpVfuOQO0V3HBaOA1stIiP/A2fPCXHIleRZL16Mx3HmjTYwNSbimhnFBygs2CAfU1geexMX5ItUcWBGUaqw5CA==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
- lucide-react@0.543.0:
- resolution: {integrity: sha512-fpVfuOQO0V3HBaOA1stIiP/A2fPCXHIleRZL16Mx3HmjTYwNSbimhnFBygs2CAfU1geexMX5ItUcWBGUaqw5CA==}
+ lucide-react@0.555.0:
+ resolution: {integrity: sha512-D8FvHUGbxWBRQM90NZeIyhAvkFfsh3u9ekrMvJ30Z6gnpBHS6HC6ldLg7tL45hwiIz/u66eKDtdA23gwwGsAHA==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
- magic-string@0.30.18:
- resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
make-dir@3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
@@ -5159,6 +5175,10 @@ packages:
resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
engines: {node: 20 || >=22}
+ minimatch@10.1.1:
+ resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
+ engines: {node: 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -5226,8 +5246,8 @@ packages:
neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
- next@15.5.3:
- resolution: {integrity: sha512-r/liNAx16SQj4D+XH/oI1dlpv9tdKJ6cONYPwwcCC46f2NjpaRWY+EKCzULfgQYV6YKXjHBchff2IZBSlZmJNw==}
+ next@15.5.7:
+ resolution: {integrity: sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==}
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
hasBin: true
peerDependencies:
@@ -5247,9 +5267,9 @@ packages:
sass:
optional: true
- next@15.5.6:
- resolution: {integrity: sha512-zTxsnI3LQo3c9HSdSf91O1jMNsEzIXDShXd4wVdg9y5shwLqBXi4ZtUUJyB86KGVSJLZx0PFONvO54aheGX8QQ==}
- engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
+ next@16.0.7:
+ resolution: {integrity: sha512-3mBRJyPxT4LOxAJI6IsXeFtKfiJUbjCLgvXO02fV8Wy/lIhPvP94Fe7dGhUgHXcQy4sSuYwQNcOLhIfOm0rL0A==}
+ engines: {node: '>=20.9.0'}
hasBin: true
peerDependencies:
'@opentelemetry/api': ^1.1.0
@@ -5449,6 +5469,10 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
+ path-scurry@2.0.1:
+ resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==}
+ engines: {node: 20 || >=22}
+
path-type@3.0.0:
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
engines: {node: '>=4'}
@@ -6107,18 +6131,18 @@ packages:
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
- react-dom@19.2.0:
- resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==}
+ react-dom@19.2.1:
+ resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==}
peerDependencies:
- react: ^19.2.0
+ react: ^19.2.1
react-error-boundary@4.1.2:
resolution: {integrity: sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==}
peerDependencies:
react: '>=16.13.1'
- react-hook-form@7.66.1:
- resolution: {integrity: sha512-2KnjpgG2Rhbi+CIiIBQQ9Df6sMGH5ExNyFl4Hw9qO7pIqMBR8Bvu9RQyjl3JM4vehzCh9soiNUM/xYMswb2EiA==}
+ react-hook-form@7.67.0:
+ resolution: {integrity: sha512-E55EOwKJHHIT/I6J9DmQbCWToAYSw9nN5R57MZw9rMtjh+YQreMDxRLfdjfxQbiJ3/qbg3Z02wGzBX4M+5fMtQ==}
engines: {node: '>=18.0.0'}
peerDependencies:
react: ^16.8.0 || ^17 || ^18 || ^19
@@ -6183,8 +6207,8 @@ packages:
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react@19.2.0:
- resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
+ react@19.2.1:
+ resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==}
engines: {node: '>=0.10.0'}
read-babelrc-up@1.1.0:
@@ -6269,6 +6293,9 @@ packages:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
resolve.exports@2.0.3:
resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
engines: {node: '>=10'}
@@ -6308,8 +6335,8 @@ packages:
peerDependencies:
rollup: '*'
- rollup-plugin-dts@6.2.3:
- resolution: {integrity: sha512-UgnEsfciXSPpASuOelix7m4DrmyQgiaWBnvI0TM4GxuDh5FkqW8E5hu57bCxXB90VvR1WNfLV80yEDN18UogSA==}
+ rollup-plugin-dts@6.3.0:
+ resolution: {integrity: sha512-d0UrqxYd8KyZ6i3M2Nx7WOMy708qsV/7fTHMHxCMCBOAe3V/U7OMPu5GkX8hC+cmkHhzGnfeYongl1IgiooddA==}
engines: {node: '>=16'}
peerDependencies:
rollup: ^3.29.4 || ^4
@@ -6818,8 +6845,8 @@ packages:
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- ts-jest@29.4.5:
- resolution: {integrity: sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==}
+ ts-jest@29.4.6:
+ resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==}
engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -6881,6 +6908,11 @@ packages:
typescript:
optional: true
+ tsx@4.21.0:
+ resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
@@ -7162,11 +7194,11 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- zod@4.1.12:
- resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==}
+ zod@4.1.13:
+ resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==}
- zustand@5.0.8:
- resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==}
+ zustand@5.0.9:
+ resolution: {integrity: sha512-ALBtUj0AfjJt3uNRQoL1tL2tMvj6Gp/6e39dnfT6uzpelGru8v1tPOGBzayOWbPJvujM8JojDk3E1LxeFisBNg==}
engines: {node: '>=12.20.0'}
peerDependencies:
'@types/react': '>=18.0.0'
@@ -7381,39 +7413,39 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@biomejs/biome@2.3.7':
+ '@biomejs/biome@2.3.8':
optionalDependencies:
- '@biomejs/cli-darwin-arm64': 2.3.7
- '@biomejs/cli-darwin-x64': 2.3.7
- '@biomejs/cli-linux-arm64': 2.3.7
- '@biomejs/cli-linux-arm64-musl': 2.3.7
- '@biomejs/cli-linux-x64': 2.3.7
- '@biomejs/cli-linux-x64-musl': 2.3.7
- '@biomejs/cli-win32-arm64': 2.3.7
- '@biomejs/cli-win32-x64': 2.3.7
+ '@biomejs/cli-darwin-arm64': 2.3.8
+ '@biomejs/cli-darwin-x64': 2.3.8
+ '@biomejs/cli-linux-arm64': 2.3.8
+ '@biomejs/cli-linux-arm64-musl': 2.3.8
+ '@biomejs/cli-linux-x64': 2.3.8
+ '@biomejs/cli-linux-x64-musl': 2.3.8
+ '@biomejs/cli-win32-arm64': 2.3.8
+ '@biomejs/cli-win32-x64': 2.3.8
- '@biomejs/cli-darwin-arm64@2.3.7':
+ '@biomejs/cli-darwin-arm64@2.3.8':
optional: true
- '@biomejs/cli-darwin-x64@2.3.7':
+ '@biomejs/cli-darwin-x64@2.3.8':
optional: true
- '@biomejs/cli-linux-arm64-musl@2.3.7':
+ '@biomejs/cli-linux-arm64-musl@2.3.8':
optional: true
- '@biomejs/cli-linux-arm64@2.3.7':
+ '@biomejs/cli-linux-arm64@2.3.8':
optional: true
- '@biomejs/cli-linux-x64-musl@2.3.7':
+ '@biomejs/cli-linux-x64-musl@2.3.8':
optional: true
- '@biomejs/cli-linux-x64@2.3.7':
+ '@biomejs/cli-linux-x64@2.3.8':
optional: true
- '@biomejs/cli-win32-arm64@2.3.7':
+ '@biomejs/cli-win32-arm64@2.3.8':
optional: true
- '@biomejs/cli-win32-x64@2.3.7':
+ '@biomejs/cli-win32-x64@2.3.8':
optional: true
'@clickhouse/client-common@1.14.0': {}
@@ -7882,10 +7914,10 @@ snapshots:
'@fontsource/jetbrains-mono@5.2.8': {}
- '@formatjs/cli@4.8.4(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))':
+ '@formatjs/cli@4.8.4(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))':
dependencies:
'@formatjs/icu-messageformat-parser': 2.1.0
- '@formatjs/ts-transformer': 3.9.4(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
+ '@formatjs/ts-transformer': 3.9.4(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
'@types/estree': 0.0.50
'@types/fs-extra': 9.0.13
'@types/json-stable-stringify': 1.2.0
@@ -7972,15 +8004,15 @@ snapshots:
optionalDependencies:
typescript: 5.9.3
- '@formatjs/ts-transformer@2.13.0(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))':
+ '@formatjs/ts-transformer@2.13.0(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))':
dependencies:
intl-messageformat-parser: 6.1.2
tslib: 2.8.1
typescript: 4.9.5
optionalDependencies:
- ts-jest: 29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)
+ ts-jest: 29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)
- '@formatjs/ts-transformer@3.9.4(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))':
+ '@formatjs/ts-transformer@3.9.4(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))':
dependencies:
'@formatjs/icu-messageformat-parser': 2.1.0
'@types/node': 14.18.63
@@ -7988,19 +8020,19 @@ snapshots:
tslib: 2.8.1
typescript: 4.9.5
optionalDependencies:
- ts-jest: 29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)
+ ts-jest: 29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)
- '@hello-pangea/dnd@17.0.0(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@hello-pangea/dnd@17.0.0(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@babel/runtime': 7.28.3
css-box-model: 1.2.1
memoize-one: 6.0.0
raf-schd: 4.0.3
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- react-redux: 9.2.0(@types/react@19.2.6)(react@19.2.0)(redux@5.0.1)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
+ react-redux: 9.2.0(@types/react@19.2.7)(react@19.2.1)(redux@5.0.1)
redux: 5.0.1
- use-memo-one: 1.1.3(react@19.2.0)
+ use-memo-one: 1.1.3(react@19.2.1)
transitivePeerDependencies:
- '@types/react'
@@ -8444,58 +8476,58 @@ snapshots:
'@kurkle/color@0.3.4': {}
- '@netlify/plugin-nextjs@5.14.7': {}
+ '@netlify/plugin-nextjs@5.15.1': {}
- '@next/env@15.5.3': {}
+ '@next/env@15.5.7': {}
- '@next/env@15.5.6': {}
+ '@next/env@16.0.7': {}
- '@next/swc-darwin-arm64@15.5.3':
+ '@next/swc-darwin-arm64@15.5.7':
optional: true
- '@next/swc-darwin-arm64@15.5.6':
+ '@next/swc-darwin-arm64@16.0.7':
optional: true
- '@next/swc-darwin-x64@15.5.3':
+ '@next/swc-darwin-x64@15.5.7':
optional: true
- '@next/swc-darwin-x64@15.5.6':
+ '@next/swc-darwin-x64@16.0.7':
optional: true
- '@next/swc-linux-arm64-gnu@15.5.3':
+ '@next/swc-linux-arm64-gnu@15.5.7':
optional: true
- '@next/swc-linux-arm64-gnu@15.5.6':
+ '@next/swc-linux-arm64-gnu@16.0.7':
optional: true
- '@next/swc-linux-arm64-musl@15.5.3':
+ '@next/swc-linux-arm64-musl@15.5.7':
optional: true
- '@next/swc-linux-arm64-musl@15.5.6':
+ '@next/swc-linux-arm64-musl@16.0.7':
optional: true
- '@next/swc-linux-x64-gnu@15.5.3':
+ '@next/swc-linux-x64-gnu@15.5.7':
optional: true
- '@next/swc-linux-x64-gnu@15.5.6':
+ '@next/swc-linux-x64-gnu@16.0.7':
optional: true
- '@next/swc-linux-x64-musl@15.5.3':
+ '@next/swc-linux-x64-musl@15.5.7':
optional: true
- '@next/swc-linux-x64-musl@15.5.6':
+ '@next/swc-linux-x64-musl@16.0.7':
optional: true
- '@next/swc-win32-arm64-msvc@15.5.3':
+ '@next/swc-win32-arm64-msvc@15.5.7':
optional: true
- '@next/swc-win32-arm64-msvc@15.5.6':
+ '@next/swc-win32-arm64-msvc@16.0.7':
optional: true
- '@next/swc-win32-x64-msvc@15.5.3':
+ '@next/swc-win32-x64-msvc@15.5.7':
optional: true
- '@next/swc-win32-x64-msvc@15.5.6':
+ '@next/swc-win32-x64-msvc@16.0.7':
optional: true
'@nodelib/fs.scandir@2.1.5':
@@ -8564,1110 +8596,1110 @@ snapshots:
dependencies:
'@prisma/debug': 6.19.0
- '@react-aria/autocomplete@3.0.0-rc.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/autocomplete@3.0.0-rc.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/combobox': 3.14.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/listbox': 3.15.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/searchfield': 3.8.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/textfield': 3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/autocomplete': 3.0.0-beta.3(react@19.2.0)
- '@react-stately/combobox': 3.12.0(react@19.2.0)
- '@react-types/autocomplete': 3.0.0-alpha.35(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/combobox': 3.14.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/listbox': 3.15.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/searchfield': 3.8.9(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/textfield': 3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/autocomplete': 3.0.0-beta.3(react@19.2.1)
+ '@react-stately/combobox': 3.12.0(react@19.2.1)
+ '@react-types/autocomplete': 3.0.0-alpha.35(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/breadcrumbs@3.5.29(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/breadcrumbs@3.5.29(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/link': 3.8.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/breadcrumbs': 3.7.17(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/link': 3.8.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/breadcrumbs': 3.7.17(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/button@3.14.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/button@3.14.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/toolbar': 3.0.0-beta.21(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/toggle': 3.9.2(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/toolbar': 3.0.0-beta.21(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/toggle': 3.9.2(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/calendar@3.9.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/calendar@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@internationalized/date': 3.10.0
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-aria/live-announcer': 3.4.4
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/calendar': 3.9.0(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/calendar': 3.8.0(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/calendar': 3.9.0(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/calendar': 3.8.0(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/checkbox@3.16.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/checkbox@3.16.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/form': 3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/toggle': 3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/checkbox': 3.7.2(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/toggle': 3.9.2(react@19.2.0)
- '@react-types/checkbox': 3.10.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/form': 3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/toggle': 3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/checkbox': 3.7.2(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/toggle': 3.9.2(react@19.2.1)
+ '@react-types/checkbox': 3.10.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/collections@3.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/collections@3.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- use-sync-external-store: 1.6.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
+ use-sync-external-store: 1.6.0(react@19.2.1)
- '@react-aria/color@3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/color@3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/numberfield': 3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/slider': 3.8.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/spinbutton': 3.6.19(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/textfield': 3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/color': 3.9.2(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-types/color': 3.1.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/numberfield': 3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/slider': 3.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/spinbutton': 3.6.19(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/textfield': 3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/color': 3.9.2(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-types/color': 3.1.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/combobox@3.14.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/combobox@3.14.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/listbox': 3.15.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/listbox': 3.15.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-aria/live-announcer': 3.4.4
- '@react-aria/menu': 3.19.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/overlays': 3.30.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/textfield': 3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/combobox': 3.12.0(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/combobox': 3.13.9(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/menu': 3.19.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/overlays': 3.30.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/textfield': 3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/combobox': 3.12.0(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/combobox': 3.13.9(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/datepicker@3.15.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/datepicker@3.15.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@internationalized/date': 3.10.0
'@internationalized/number': 3.6.5
'@internationalized/string': 3.2.7
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/form': 3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/spinbutton': 3.6.19(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/datepicker': 3.15.2(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/calendar': 3.8.0(react@19.2.0)
- '@react-types/datepicker': 3.13.2(react@19.2.0)
- '@react-types/dialog': 3.5.22(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/form': 3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/spinbutton': 3.6.19(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/datepicker': 3.15.2(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/calendar': 3.8.0(react@19.2.1)
+ '@react-types/datepicker': 3.13.2(react@19.2.1)
+ '@react-types/dialog': 3.5.22(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/dialog@3.5.31(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/dialog@3.5.31(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/overlays': 3.30.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/dialog': 3.5.22(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/overlays': 3.30.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/dialog': 3.5.22(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/disclosure@3.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/disclosure@3.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/disclosure': 3.0.8(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/disclosure': 3.0.8(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/dnd@3.11.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/dnd@3.11.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@internationalized/string': 3.2.7
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-aria/live-announcer': 3.4.4
- '@react-aria/overlays': 3.30.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/dnd': 3.7.1(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/overlays': 3.30.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/dnd': 3.7.1(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/focus@3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/focus@3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
clsx: 2.1.1
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/form@3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/form@3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/grid@3.14.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/grid@3.14.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-aria/live-announcer': 3.4.4
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/grid': 3.11.6(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-types/checkbox': 3.10.2(react@19.2.0)
- '@react-types/grid': 3.3.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/grid': 3.11.6(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-types/checkbox': 3.10.2(react@19.2.1)
+ '@react-types/grid': 3.3.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/gridlist@3.14.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/gridlist@3.14.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/grid': 3.14.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/list': 3.13.1(react@19.2.0)
- '@react-stately/tree': 3.9.3(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/grid': 3.14.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/list': 3.13.1(react@19.2.1)
+ '@react-stately/tree': 3.9.3(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/i18n@3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/i18n@3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@internationalized/date': 3.10.0
'@internationalized/message': 3.1.8
'@internationalized/number': 3.6.5
'@internationalized/string': 3.2.7
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/interactions@3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/interactions@3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-stately/flags': 3.1.2
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/label@3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/label@3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/landmark@3.0.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/landmark@3.0.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- use-sync-external-store: 1.6.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
+ use-sync-external-store: 1.6.0(react@19.2.1)
- '@react-aria/link@3.8.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/link@3.8.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/link': 3.6.5(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/link': 3.6.5(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/listbox@3.15.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/listbox@3.15.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/list': 3.13.1(react@19.2.0)
- '@react-types/listbox': 3.7.4(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/list': 3.13.1(react@19.2.1)
+ '@react-types/listbox': 3.7.4(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
'@react-aria/live-announcer@3.4.4':
dependencies:
'@swc/helpers': 0.5.17
- '@react-aria/menu@3.19.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/menu@3.19.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/overlays': 3.30.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/menu': 3.9.8(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-stately/tree': 3.9.3(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/menu': 3.10.5(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/overlays': 3.30.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/menu': 3.9.8(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-stately/tree': 3.9.3(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/menu': 3.10.5(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/meter@3.4.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/meter@3.4.27(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/progress': 3.4.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/meter': 3.4.13(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/progress': 3.4.27(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/meter': 3.4.13(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/numberfield@3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/numberfield@3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/spinbutton': 3.6.19(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/textfield': 3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/numberfield': 3.10.2(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/numberfield': 3.8.15(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/spinbutton': 3.6.19(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/textfield': 3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/numberfield': 3.10.2(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/numberfield': 3.8.15(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/overlays@3.30.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/overlays@3.30.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/overlays': 3.6.20(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/overlays': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/overlays': 3.6.20(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/overlays': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/progress@3.4.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/progress@3.4.27(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/progress': 3.5.16(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/progress': 3.5.16(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/radio@3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/radio@3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/form': 3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/radio': 3.11.2(react@19.2.0)
- '@react-types/radio': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/form': 3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/radio': 3.11.2(react@19.2.1)
+ '@react-types/radio': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/searchfield@3.8.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/searchfield@3.8.9(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/textfield': 3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/searchfield': 3.5.16(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/searchfield': 3.6.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/textfield': 3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/searchfield': 3.5.16(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/searchfield': 3.6.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/select@3.17.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/select@3.17.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/form': 3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/listbox': 3.15.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/menu': 3.19.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/select': 3.8.0(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/select': 3.11.0(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/form': 3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/listbox': 3.15.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/menu': 3.19.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/select': 3.8.0(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/select': 3.11.0(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/selection@3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/selection@3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/separator@3.4.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/separator@3.4.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/slider@3.8.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/slider@3.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/slider': 3.7.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/slider': 3.8.2(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/slider': 3.7.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/slider': 3.8.2(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/spinbutton@3.6.19(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/spinbutton@3.6.19(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-aria/live-announcer': 3.4.4
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/ssr@3.9.10(react@19.2.0)':
+ '@react-aria/ssr@3.9.10(react@19.2.1)':
dependencies:
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-aria/switch@3.7.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/switch@3.7.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/toggle': 3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/toggle': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/switch': 3.5.15(react@19.2.0)
+ '@react-aria/toggle': 3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/toggle': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/switch': 3.5.15(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/table@3.17.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/table@3.17.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/grid': 3.14.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/grid': 3.14.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-aria/live-announcer': 3.4.4
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/collections': 3.12.8(react@19.2.0)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
'@react-stately/flags': 3.1.2
- '@react-stately/table': 3.15.1(react@19.2.0)
- '@react-types/checkbox': 3.10.2(react@19.2.0)
- '@react-types/grid': 3.3.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/table': 3.13.4(react@19.2.0)
+ '@react-stately/table': 3.15.1(react@19.2.1)
+ '@react-types/checkbox': 3.10.2(react@19.2.1)
+ '@react-types/grid': 3.3.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/table': 3.13.4(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/tabs@3.10.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/tabs@3.10.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/tabs': 3.8.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/tabs': 3.3.19(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/tabs': 3.8.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/tabs': 3.3.19(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/tag@3.7.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/tag@3.7.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/gridlist': 3.14.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/list': 3.13.1(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/gridlist': 3.14.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/list': 3.13.1(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/textfield@3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/textfield@3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/form': 3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/textfield': 3.12.6(react@19.2.0)
+ '@react-aria/form': 3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/textfield': 3.12.6(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/toast@3.0.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/toast@3.0.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/landmark': 3.0.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/toast': 3.1.2(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/landmark': 3.0.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/toast': 3.1.2(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/toggle@3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/toggle@3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/toggle': 3.9.2(react@19.2.0)
- '@react-types/checkbox': 3.10.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/toggle': 3.9.2(react@19.2.1)
+ '@react-types/checkbox': 3.10.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/toolbar@3.0.0-beta.21(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/toolbar@3.0.0-beta.21(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/tooltip@3.8.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/tooltip@3.8.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/tooltip': 3.5.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/tooltip': 3.4.21(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/tooltip': 3.5.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/tooltip': 3.4.21(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/tree@3.1.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/tree@3.1.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/gridlist': 3.14.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/tree': 3.9.3(react@19.2.0)
- '@react-types/button': 3.14.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/gridlist': 3.14.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/tree': 3.9.3(react@19.2.1)
+ '@react-types/button': 3.14.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/utils@3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/utils@3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/ssr': 3.9.10(react@19.2.0)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
'@react-stately/flags': 3.1.2
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
clsx: 2.1.1
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/virtualizer@4.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/virtualizer@4.1.10(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/virtualizer': 4.4.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/virtualizer': 4.4.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-aria/visually-hidden@3.8.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-aria/visually-hidden@3.8.28(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-spring/animated@10.0.3(react@19.2.0)':
+ '@react-spring/animated@10.0.3(react@19.2.1)':
dependencies:
- '@react-spring/shared': 10.0.3(react@19.2.0)
+ '@react-spring/shared': 10.0.3(react@19.2.1)
'@react-spring/types': 10.0.3
- react: 19.2.0
+ react: 19.2.1
- '@react-spring/animated@9.7.5(react@19.2.0)':
+ '@react-spring/animated@9.7.5(react@19.2.1)':
dependencies:
- '@react-spring/shared': 9.7.5(react@19.2.0)
+ '@react-spring/shared': 9.7.5(react@19.2.1)
'@react-spring/types': 9.7.5
- react: 19.2.0
+ react: 19.2.1
- '@react-spring/core@10.0.3(react@19.2.0)':
+ '@react-spring/core@10.0.3(react@19.2.1)':
dependencies:
- '@react-spring/animated': 10.0.3(react@19.2.0)
- '@react-spring/shared': 10.0.3(react@19.2.0)
+ '@react-spring/animated': 10.0.3(react@19.2.1)
+ '@react-spring/shared': 10.0.3(react@19.2.1)
'@react-spring/types': 10.0.3
- react: 19.2.0
+ react: 19.2.1
- '@react-spring/core@9.7.5(react@19.2.0)':
+ '@react-spring/core@9.7.5(react@19.2.1)':
dependencies:
- '@react-spring/animated': 9.7.5(react@19.2.0)
- '@react-spring/shared': 9.7.5(react@19.2.0)
+ '@react-spring/animated': 9.7.5(react@19.2.1)
+ '@react-spring/shared': 9.7.5(react@19.2.1)
'@react-spring/types': 9.7.5
- react: 19.2.0
+ react: 19.2.1
'@react-spring/rafz@10.0.3': {}
'@react-spring/rafz@9.7.5': {}
- '@react-spring/shared@10.0.3(react@19.2.0)':
+ '@react-spring/shared@10.0.3(react@19.2.1)':
dependencies:
'@react-spring/rafz': 10.0.3
'@react-spring/types': 10.0.3
- react: 19.2.0
+ react: 19.2.1
- '@react-spring/shared@9.7.5(react@19.2.0)':
+ '@react-spring/shared@9.7.5(react@19.2.1)':
dependencies:
'@react-spring/rafz': 9.7.5
'@react-spring/types': 9.7.5
- react: 19.2.0
+ react: 19.2.1
'@react-spring/types@10.0.3': {}
'@react-spring/types@9.7.5': {}
- '@react-spring/web@10.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-spring/animated': 10.0.3(react@19.2.0)
- '@react-spring/core': 10.0.3(react@19.2.0)
- '@react-spring/shared': 10.0.3(react@19.2.0)
+ '@react-spring/animated': 10.0.3(react@19.2.1)
+ '@react-spring/core': 10.0.3(react@19.2.1)
+ '@react-spring/shared': 10.0.3(react@19.2.1)
'@react-spring/types': 10.0.3
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-spring/web@9.7.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-spring/web@9.7.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-spring/animated': 9.7.5(react@19.2.0)
- '@react-spring/core': 9.7.5(react@19.2.0)
- '@react-spring/shared': 9.7.5(react@19.2.0)
+ '@react-spring/animated': 9.7.5(react@19.2.1)
+ '@react-spring/core': 9.7.5(react@19.2.1)
+ '@react-spring/shared': 9.7.5(react@19.2.1)
'@react-spring/types': 9.7.5
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-stately/autocomplete@3.0.0-beta.3(react@19.2.0)':
+ '@react-stately/autocomplete@3.0.0-beta.3(react@19.2.1)':
dependencies:
- '@react-stately/utils': 3.10.8(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/calendar@3.9.0(react@19.2.0)':
+ '@react-stately/calendar@3.9.0(react@19.2.1)':
dependencies:
'@internationalized/date': 3.10.0
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/calendar': 3.8.0(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/calendar': 3.8.0(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/checkbox@3.7.2(react@19.2.0)':
+ '@react-stately/checkbox@3.7.2(react@19.2.1)':
dependencies:
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/checkbox': 3.10.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/checkbox': 3.10.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/collections@3.12.8(react@19.2.0)':
+ '@react-stately/collections@3.12.8(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/color@3.9.2(react@19.2.0)':
+ '@react-stately/color@3.9.2(react@19.2.1)':
dependencies:
'@internationalized/number': 3.6.5
'@internationalized/string': 3.2.7
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/numberfield': 3.10.2(react@19.2.0)
- '@react-stately/slider': 3.7.2(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/color': 3.1.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/numberfield': 3.10.2(react@19.2.1)
+ '@react-stately/slider': 3.7.2(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/color': 3.1.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/combobox@3.12.0(react@19.2.0)':
+ '@react-stately/combobox@3.12.0(react@19.2.1)':
dependencies:
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/list': 3.13.1(react@19.2.0)
- '@react-stately/overlays': 3.6.20(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/combobox': 3.13.9(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/list': 3.13.1(react@19.2.1)
+ '@react-stately/overlays': 3.6.20(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/combobox': 3.13.9(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/data@3.14.1(react@19.2.0)':
+ '@react-stately/data@3.14.1(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/datepicker@3.15.2(react@19.2.0)':
+ '@react-stately/datepicker@3.15.2(react@19.2.1)':
dependencies:
'@internationalized/date': 3.10.0
'@internationalized/string': 3.2.7
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/overlays': 3.6.20(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/datepicker': 3.13.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/overlays': 3.6.20(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/datepicker': 3.13.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/disclosure@3.0.8(react@19.2.0)':
+ '@react-stately/disclosure@3.0.8(react@19.2.1)':
dependencies:
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/dnd@3.7.1(react@19.2.0)':
+ '@react-stately/dnd@3.7.1(react@19.2.1)':
dependencies:
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
'@react-stately/flags@3.1.2':
dependencies:
'@swc/helpers': 0.5.17
- '@react-stately/form@3.2.2(react@19.2.0)':
+ '@react-stately/form@3.2.2(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/grid@3.11.6(react@19.2.0)':
+ '@react-stately/grid@3.11.6(react@19.2.1)':
dependencies:
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-types/grid': 3.3.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-types/grid': 3.3.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/layout@4.5.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-stately/layout@4.5.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/table': 3.15.1(react@19.2.0)
- '@react-stately/virtualizer': 4.4.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/grid': 3.3.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/table': 3.13.4(react@19.2.0)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/table': 3.15.1(react@19.2.1)
+ '@react-stately/virtualizer': 4.4.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/grid': 3.3.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/table': 3.13.4(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-stately/list@3.13.1(react@19.2.0)':
+ '@react-stately/list@3.13.1(react@19.2.1)':
dependencies:
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/menu@3.9.8(react@19.2.0)':
+ '@react-stately/menu@3.9.8(react@19.2.1)':
dependencies:
- '@react-stately/overlays': 3.6.20(react@19.2.0)
- '@react-types/menu': 3.10.5(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/overlays': 3.6.20(react@19.2.1)
+ '@react-types/menu': 3.10.5(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/numberfield@3.10.2(react@19.2.0)':
+ '@react-stately/numberfield@3.10.2(react@19.2.1)':
dependencies:
'@internationalized/number': 3.6.5
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/numberfield': 3.8.15(react@19.2.0)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/numberfield': 3.8.15(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/overlays@3.6.20(react@19.2.0)':
+ '@react-stately/overlays@3.6.20(react@19.2.1)':
dependencies:
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/overlays': 3.9.2(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/overlays': 3.9.2(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/radio@3.11.2(react@19.2.0)':
+ '@react-stately/radio@3.11.2(react@19.2.1)':
dependencies:
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/radio': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/radio': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/searchfield@3.5.16(react@19.2.0)':
+ '@react-stately/searchfield@3.5.16(react@19.2.1)':
dependencies:
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/searchfield': 3.6.6(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/searchfield': 3.6.6(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/select@3.8.0(react@19.2.0)':
+ '@react-stately/select@3.8.0(react@19.2.1)':
dependencies:
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/list': 3.13.1(react@19.2.0)
- '@react-stately/overlays': 3.6.20(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/select': 3.11.0(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/list': 3.13.1(react@19.2.1)
+ '@react-stately/overlays': 3.6.20(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/select': 3.11.0(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/selection@3.20.6(react@19.2.0)':
+ '@react-stately/selection@3.20.6(react@19.2.1)':
dependencies:
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/slider@3.7.2(react@19.2.0)':
+ '@react-stately/slider@3.7.2(react@19.2.1)':
dependencies:
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/slider': 3.8.2(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/slider': 3.8.2(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/table@3.15.1(react@19.2.0)':
+ '@react-stately/table@3.15.1(react@19.2.1)':
dependencies:
- '@react-stately/collections': 3.12.8(react@19.2.0)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
'@react-stately/flags': 3.1.2
- '@react-stately/grid': 3.11.6(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/grid': 3.3.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/table': 3.13.4(react@19.2.0)
+ '@react-stately/grid': 3.11.6(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/grid': 3.3.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/table': 3.13.4(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/tabs@3.8.6(react@19.2.0)':
+ '@react-stately/tabs@3.8.6(react@19.2.1)':
dependencies:
- '@react-stately/list': 3.13.1(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/tabs': 3.3.19(react@19.2.0)
+ '@react-stately/list': 3.13.1(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/tabs': 3.3.19(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/toast@3.1.2(react@19.2.0)':
+ '@react-stately/toast@3.1.2(react@19.2.1)':
dependencies:
'@swc/helpers': 0.5.17
- react: 19.2.0
- use-sync-external-store: 1.6.0(react@19.2.0)
+ react: 19.2.1
+ use-sync-external-store: 1.6.0(react@19.2.1)
- '@react-stately/toggle@3.9.2(react@19.2.0)':
+ '@react-stately/toggle@3.9.2(react@19.2.1)':
dependencies:
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/checkbox': 3.10.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/checkbox': 3.10.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/tooltip@3.5.8(react@19.2.0)':
+ '@react-stately/tooltip@3.5.8(react@19.2.1)':
dependencies:
- '@react-stately/overlays': 3.6.20(react@19.2.0)
- '@react-types/tooltip': 3.4.21(react@19.2.0)
+ '@react-stately/overlays': 3.6.20(react@19.2.1)
+ '@react-types/tooltip': 3.4.21(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/tree@3.9.3(react@19.2.0)':
+ '@react-stately/tree@3.9.3(react@19.2.1)':
dependencies:
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/utils@3.10.8(react@19.2.0)':
+ '@react-stately/utils@3.10.8(react@19.2.1)':
dependencies:
'@swc/helpers': 0.5.17
- react: 19.2.0
+ react: 19.2.1
- '@react-stately/virtualizer@4.4.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@react-stately/virtualizer@4.4.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
+ '@react-types/shared': 3.32.1(react@19.2.1)
'@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- '@react-types/autocomplete@3.0.0-alpha.35(react@19.2.0)':
+ '@react-types/autocomplete@3.0.0-alpha.35(react@19.2.1)':
dependencies:
- '@react-types/combobox': 3.13.9(react@19.2.0)
- '@react-types/searchfield': 3.6.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/combobox': 3.13.9(react@19.2.1)
+ '@react-types/searchfield': 3.6.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/breadcrumbs@3.7.17(react@19.2.0)':
+ '@react-types/breadcrumbs@3.7.17(react@19.2.1)':
dependencies:
- '@react-types/link': 3.6.5(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/link': 3.6.5(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/button@3.14.1(react@19.2.0)':
+ '@react-types/button@3.14.1(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/calendar@3.8.0(react@19.2.0)':
+ '@react-types/calendar@3.8.0(react@19.2.1)':
dependencies:
'@internationalized/date': 3.10.0
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/checkbox@3.10.2(react@19.2.0)':
+ '@react-types/checkbox@3.10.2(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/color@3.1.2(react@19.2.0)':
+ '@react-types/color@3.1.2(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/slider': 3.8.2(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/slider': 3.8.2(react@19.2.1)
+ react: 19.2.1
- '@react-types/combobox@3.13.9(react@19.2.0)':
+ '@react-types/combobox@3.13.9(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/datepicker@3.13.2(react@19.2.0)':
+ '@react-types/datepicker@3.13.2(react@19.2.1)':
dependencies:
'@internationalized/date': 3.10.0
- '@react-types/calendar': 3.8.0(react@19.2.0)
- '@react-types/overlays': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/calendar': 3.8.0(react@19.2.1)
+ '@react-types/overlays': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/dialog@3.5.22(react@19.2.0)':
+ '@react-types/dialog@3.5.22(react@19.2.1)':
dependencies:
- '@react-types/overlays': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/overlays': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/form@3.7.16(react@19.2.0)':
+ '@react-types/form@3.7.16(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/grid@3.3.6(react@19.2.0)':
+ '@react-types/grid@3.3.6(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/link@3.6.5(react@19.2.0)':
+ '@react-types/link@3.6.5(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/listbox@3.7.4(react@19.2.0)':
+ '@react-types/listbox@3.7.4(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/menu@3.10.5(react@19.2.0)':
+ '@react-types/menu@3.10.5(react@19.2.1)':
dependencies:
- '@react-types/overlays': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/overlays': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/meter@3.4.13(react@19.2.0)':
+ '@react-types/meter@3.4.13(react@19.2.1)':
dependencies:
- '@react-types/progress': 3.5.16(react@19.2.0)
- react: 19.2.0
+ '@react-types/progress': 3.5.16(react@19.2.1)
+ react: 19.2.1
- '@react-types/numberfield@3.8.15(react@19.2.0)':
+ '@react-types/numberfield@3.8.15(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/overlays@3.9.2(react@19.2.0)':
+ '@react-types/overlays@3.9.2(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/progress@3.5.16(react@19.2.0)':
+ '@react-types/progress@3.5.16(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/radio@3.9.2(react@19.2.0)':
+ '@react-types/radio@3.9.2(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/searchfield@3.6.6(react@19.2.0)':
+ '@react-types/searchfield@3.6.6(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/textfield': 3.12.6(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/textfield': 3.12.6(react@19.2.1)
+ react: 19.2.1
- '@react-types/select@3.11.0(react@19.2.0)':
+ '@react-types/select@3.11.0(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/shared@3.32.1(react@19.2.0)':
+ '@react-types/shared@3.32.1(react@19.2.1)':
dependencies:
- react: 19.2.0
+ react: 19.2.1
- '@react-types/slider@3.8.2(react@19.2.0)':
+ '@react-types/slider@3.8.2(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/switch@3.5.15(react@19.2.0)':
+ '@react-types/switch@3.5.15(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/table@3.13.4(react@19.2.0)':
+ '@react-types/table@3.13.4(react@19.2.1)':
dependencies:
- '@react-types/grid': 3.3.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/grid': 3.3.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/tabs@3.3.19(react@19.2.0)':
+ '@react-types/tabs@3.3.19(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/textfield@3.12.6(react@19.2.0)':
+ '@react-types/textfield@3.12.6(react@19.2.1)':
dependencies:
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- '@react-types/tooltip@3.4.21(react@19.2.0)':
+ '@react-types/tooltip@3.4.21(react@19.2.1)':
dependencies:
- '@react-types/overlays': 3.9.2(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-types/overlays': 3.9.2(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
'@redis/bloom@1.2.0(@redis/client@1.6.1)':
dependencies:
@@ -9949,12 +9981,12 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@tanstack/query-core@5.90.10': {}
+ '@tanstack/query-core@5.90.11': {}
- '@tanstack/react-query@5.90.10(react@19.2.0)':
+ '@tanstack/react-query@5.90.11(react@19.2.1)':
dependencies:
- '@tanstack/query-core': 5.90.10
- react: 19.2.0
+ '@tanstack/query-core': 5.90.11
+ react: 19.2.1
'@trysound/sax@0.2.0': {}
@@ -10008,9 +10040,9 @@ snapshots:
dependencies:
'@types/node': 24.10.1
- '@types/hoist-non-react-statics@3.3.7(@types/react@19.2.6)':
+ '@types/hoist-non-react-statics@3.3.7(@types/react@19.2.7)':
dependencies:
- '@types/react': 19.2.6
+ '@types/react': 19.2.7
hoist-non-react-statics: 3.3.2
'@types/istanbul-lib-coverage@2.0.6': {}
@@ -10048,15 +10080,15 @@ snapshots:
'@types/normalize-package-data@2.4.4': {}
- '@types/react-dom@19.2.3(@types/react@19.2.6)':
+ '@types/react-dom@19.2.3(@types/react@19.2.7)':
dependencies:
- '@types/react': 19.2.6
+ '@types/react': 19.2.7
'@types/react-window@1.8.8':
dependencies:
- '@types/react': 19.2.6
+ '@types/react': 19.2.7
- '@types/react@19.2.6':
+ '@types/react@19.2.7':
dependencies:
csstype: 3.2.3
@@ -10085,24 +10117,24 @@ snapshots:
'@types/node': 24.10.1
optional: true
- '@umami/react-zen@0.210.0(@babel/core@7.28.3)(@types/react@19.2.6)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.0))':
+ '@umami/react-zen@0.211.0(@babel/core@7.28.3)(@types/react@19.2.7)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.1))':
dependencies:
'@fontsource/jetbrains-mono': 5.2.8
'@internationalized/date': 3.10.0
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-spring/web': 9.7.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-spring/web': 9.7.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
classnames: 2.5.1
- glob: 10.5.0
+ glob: 13.0.0
highlight.js: 11.11.1
- lucide-react: 0.511.0(react@19.2.0)
- next: 15.5.6(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react: 19.2.0
- react-aria-components: 1.13.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react-dom: 19.2.0(react@19.2.0)
- react-hook-form: 7.66.1(react@19.2.0)
- react-icons: 5.5.0(react@19.2.0)
+ lucide-react: 0.555.0(react@19.2.1)
+ next: 16.0.7(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ react: 19.2.1
+ react-aria-components: 1.13.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ react-dom: 19.2.1(react@19.2.1)
+ react-hook-form: 7.67.0(react@19.2.1)
+ react-icons: 5.5.0(react@19.2.1)
thenby: 1.3.4
- zustand: 5.0.8(@types/react@19.2.6)(immer@10.2.0)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0))
+ zustand: 5.0.9(@types/react@19.2.7)(immer@10.2.0)(react@19.2.1)(use-sync-external-store@1.6.0(react@19.2.1))
transitivePeerDependencies:
- '@babel/core'
- '@opentelemetry/api'
@@ -10142,7 +10174,7 @@ snapshots:
'@vue/compiler-ssr': 3.5.18
'@vue/shared': 3.5.18
estree-walker: 2.0.2
- magic-string: 0.30.18
+ magic-string: 0.30.21
postcss: 8.5.6
source-map-js: 1.2.1
@@ -10336,12 +10368,12 @@ snapshots:
dependencies:
'@babel/types': 7.28.2
- babel-plugin-react-intl@7.9.4(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)):
+ babel-plugin-react-intl@7.9.4(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)):
dependencies:
'@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/types': 7.28.2
- '@formatjs/ts-transformer': 2.13.0(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
+ '@formatjs/ts-transformer': 2.13.0(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
'@types/babel__core': 7.20.5
'@types/fs-extra': 9.0.13
'@types/schema-utils': 2.4.0
@@ -10505,7 +10537,7 @@ snapshots:
caniuse-lite@1.0.30001741: {}
- caniuse-lite@1.0.30001756: {}
+ caniuse-lite@1.0.30001759: {}
caseless@0.12.0: {}
@@ -11356,10 +11388,10 @@ snapshots:
extend@3.0.2: {}
- extract-react-intl-messages@4.1.1(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)):
+ extract-react-intl-messages@4.1.1(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3)):
dependencies:
'@babel/core': 7.28.3
- babel-plugin-react-intl: 7.9.4(ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
+ babel-plugin-react-intl: 7.9.4(ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3))
flat: 5.0.2
glob: 7.2.3
js-yaml: 3.14.1
@@ -11454,7 +11486,7 @@ snapshots:
fix-dts-default-cjs-exports@1.0.1:
dependencies:
- magic-string: 0.30.18
+ magic-string: 0.30.21
mlly: 1.8.0
rollup: 4.53.3
@@ -11584,6 +11616,10 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
+ get-tsconfig@4.13.0:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
getos@3.2.1:
dependencies:
async: 3.2.6
@@ -11614,6 +11650,12 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
+ glob@13.0.0:
+ dependencies:
+ minimatch: 10.1.1
+ minipass: 7.1.2
+ path-scurry: 2.0.1
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -11825,7 +11867,7 @@ snapshots:
'@formatjs/icu-messageformat-parser': 2.11.4
tslib: 2.8.1
- ipaddr.js@2.2.0: {}
+ ipaddr.js@2.3.0: {}
is-array-buffer@3.0.5:
dependencies:
@@ -12644,6 +12686,8 @@ snapshots:
lru-cache@10.4.3: {}
+ lru-cache@11.2.4: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -12652,19 +12696,19 @@ snapshots:
dependencies:
yallist: 4.0.0
- lucide-react@0.511.0(react@19.2.0):
+ lucide-react@0.543.0(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
- lucide-react@0.543.0(react@19.2.0):
+ lucide-react@0.555.0(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
magic-string@0.30.17:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
- magic-string@0.30.18:
+ magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -12767,6 +12811,10 @@ snapshots:
dependencies:
'@isaacs/brace-expansion': 5.0.0
+ minimatch@10.1.1:
+ dependencies:
+ '@isaacs/brace-expansion': 5.0.0
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.12
@@ -12827,48 +12875,48 @@ snapshots:
neo-async@2.6.2: {}
- next@15.5.3(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ next@15.5.7(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
- '@next/env': 15.5.3
+ '@next/env': 15.5.7
'@swc/helpers': 0.5.15
caniuse-lite: 1.0.30001741
postcss: 8.4.31
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
+ styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.1)
optionalDependencies:
- '@next/swc-darwin-arm64': 15.5.3
- '@next/swc-darwin-x64': 15.5.3
- '@next/swc-linux-arm64-gnu': 15.5.3
- '@next/swc-linux-arm64-musl': 15.5.3
- '@next/swc-linux-x64-gnu': 15.5.3
- '@next/swc-linux-x64-musl': 15.5.3
- '@next/swc-win32-arm64-msvc': 15.5.3
- '@next/swc-win32-x64-msvc': 15.5.3
+ '@next/swc-darwin-arm64': 15.5.7
+ '@next/swc-darwin-x64': 15.5.7
+ '@next/swc-linux-arm64-gnu': 15.5.7
+ '@next/swc-linux-arm64-musl': 15.5.7
+ '@next/swc-linux-x64-gnu': 15.5.7
+ '@next/swc-linux-x64-musl': 15.5.7
+ '@next/swc-win32-arm64-msvc': 15.5.7
+ '@next/swc-win32-x64-msvc': 15.5.7
babel-plugin-react-compiler: 19.1.0-rc.2
sharp: 0.34.3
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
- next@15.5.6(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ next@16.0.7(@babel/core@7.28.3)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
- '@next/env': 15.5.6
+ '@next/env': 16.0.7
'@swc/helpers': 0.5.15
- caniuse-lite: 1.0.30001756
+ caniuse-lite: 1.0.30001759
postcss: 8.4.31
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
+ styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.1)
optionalDependencies:
- '@next/swc-darwin-arm64': 15.5.6
- '@next/swc-darwin-x64': 15.5.6
- '@next/swc-linux-arm64-gnu': 15.5.6
- '@next/swc-linux-arm64-musl': 15.5.6
- '@next/swc-linux-x64-gnu': 15.5.6
- '@next/swc-linux-x64-musl': 15.5.6
- '@next/swc-win32-arm64-msvc': 15.5.6
- '@next/swc-win32-x64-msvc': 15.5.6
+ '@next/swc-darwin-arm64': 16.0.7
+ '@next/swc-darwin-x64': 16.0.7
+ '@next/swc-linux-arm64-gnu': 16.0.7
+ '@next/swc-linux-arm64-musl': 16.0.7
+ '@next/swc-linux-x64-gnu': 16.0.7
+ '@next/swc-linux-x64-musl': 16.0.7
+ '@next/swc-win32-arm64-msvc': 16.0.7
+ '@next/swc-win32-x64-msvc': 16.0.7
babel-plugin-react-compiler: 19.1.0-rc.2
sharp: 0.34.5
transitivePeerDependencies:
@@ -13053,6 +13101,11 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
+ path-scurry@2.0.1:
+ dependencies:
+ lru-cache: 11.2.4
+ minipass: 7.1.2
+
path-type@3.0.0:
dependencies:
pify: 3.0.0
@@ -13284,12 +13337,13 @@ snapshots:
postcss: 8.5.6
ts-node: 10.9.2(@types/node@24.10.1)(typescript@5.9.3)
- postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1):
+ postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.1):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
jiti: 2.6.1
postcss: 8.5.6
+ tsx: 4.21.0
yaml: 2.8.1
postcss-logical@5.0.4(postcss@8.5.6):
@@ -13657,115 +13711,115 @@ snapshots:
defu: 6.1.4
destr: 2.0.5
- react-aria-components@1.13.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ react-aria-components@1.13.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
'@internationalized/date': 3.10.0
'@internationalized/string': 3.2.7
- '@react-aria/autocomplete': 3.0.0-rc.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/collections': 3.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/dnd': 3.11.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-aria/autocomplete': 3.0.0-rc.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/collections': 3.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/dnd': 3.11.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@react-aria/live-announcer': 3.4.4
- '@react-aria/overlays': 3.30.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/textfield': 3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/toolbar': 3.0.0-beta.21(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/virtualizer': 4.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/autocomplete': 3.0.0-beta.3(react@19.2.0)
- '@react-stately/layout': 4.5.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-stately/table': 3.15.1(react@19.2.0)
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-stately/virtualizer': 4.4.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/form': 3.7.16(react@19.2.0)
- '@react-types/grid': 3.3.6(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@react-types/table': 3.13.4(react@19.2.0)
+ '@react-aria/overlays': 3.30.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
+ '@react-aria/textfield': 3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/toolbar': 3.0.0-beta.21(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/virtualizer': 4.1.10(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/autocomplete': 3.0.0-beta.3(react@19.2.1)
+ '@react-stately/layout': 4.5.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-stately/table': 3.15.1(react@19.2.1)
+ '@react-stately/utils': 3.10.8(react@19.2.1)
+ '@react-stately/virtualizer': 4.4.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/form': 3.7.16(react@19.2.1)
+ '@react-types/grid': 3.3.6(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ '@react-types/table': 3.13.4(react@19.2.1)
'@swc/helpers': 0.5.17
client-only: 0.0.1
- react: 19.2.0
- react-aria: 3.44.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react-dom: 19.2.0(react@19.2.0)
- react-stately: 3.42.0(react@19.2.0)
- use-sync-external-store: 1.6.0(react@19.2.0)
+ react: 19.2.1
+ react-aria: 3.44.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ react-dom: 19.2.1(react@19.2.1)
+ react-stately: 3.42.0(react@19.2.1)
+ use-sync-external-store: 1.6.0(react@19.2.1)
- react-aria@3.44.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ react-aria@3.44.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
'@internationalized/string': 3.2.7
- '@react-aria/breadcrumbs': 3.5.29(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/button': 3.14.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/calendar': 3.9.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/checkbox': 3.16.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/color': 3.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/combobox': 3.14.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/datepicker': 3.15.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/dialog': 3.5.31(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/disclosure': 3.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/dnd': 3.11.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/gridlist': 3.14.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/i18n': 3.12.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/label': 3.7.22(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/landmark': 3.0.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/link': 3.8.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/listbox': 3.15.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/menu': 3.19.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/meter': 3.4.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/numberfield': 3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/overlays': 3.30.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/progress': 3.4.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/radio': 3.12.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/searchfield': 3.8.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/select': 3.17.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/selection': 3.26.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/separator': 3.4.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/slider': 3.8.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/switch': 3.7.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/table': 3.17.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/tabs': 3.10.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/tag': 3.7.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/textfield': 3.18.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/toast': 3.0.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/tooltip': 3.8.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/tree': 3.1.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ '@react-aria/breadcrumbs': 3.5.29(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/button': 3.14.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/calendar': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/checkbox': 3.16.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/color': 3.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/combobox': 3.14.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/datepicker': 3.15.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/dialog': 3.5.31(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/disclosure': 3.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/dnd': 3.11.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/focus': 3.21.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/gridlist': 3.14.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/i18n': 3.12.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/interactions': 3.25.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/label': 3.7.22(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/landmark': 3.0.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/link': 3.8.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/listbox': 3.15.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/menu': 3.19.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/meter': 3.4.27(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/numberfield': 3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/overlays': 3.30.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/progress': 3.4.27(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/radio': 3.12.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/searchfield': 3.8.9(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/select': 3.17.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/selection': 3.26.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/separator': 3.4.13(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/slider': 3.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/ssr': 3.9.10(react@19.2.1)
+ '@react-aria/switch': 3.7.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/table': 3.17.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/tabs': 3.10.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/tag': 3.7.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/textfield': 3.18.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/toast': 3.0.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/tooltip': 3.8.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/tree': 3.1.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/utils': 3.31.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-aria/visually-hidden': 3.8.28(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- react-dom@19.2.0(react@19.2.0):
+ react-dom@19.2.1(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
scheduler: 0.27.0
- react-error-boundary@4.1.2(react@19.2.0):
+ react-error-boundary@4.1.2(react@19.2.1):
dependencies:
'@babel/runtime': 7.28.3
- react: 19.2.0
+ react: 19.2.1
- react-hook-form@7.66.1(react@19.2.0):
+ react-hook-form@7.67.0(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
- react-icons@5.5.0(react@19.2.0):
+ react-icons@5.5.0(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
- react-intl@7.1.14(react@19.2.0)(typescript@5.9.3):
+ react-intl@7.1.14(react@19.2.1)(typescript@5.9.3):
dependencies:
'@formatjs/ecma402-abstract': 2.3.6
'@formatjs/icu-messageformat-parser': 2.11.4
'@formatjs/intl': 3.1.8(typescript@5.9.3)
- '@types/hoist-non-react-statics': 3.3.7(@types/react@19.2.6)
- '@types/react': 19.2.6
+ '@types/hoist-non-react-statics': 3.3.7(@types/react@19.2.7)
+ '@types/react': 19.2.7
hoist-non-react-statics: 3.3.2
intl-messageformat: 10.7.18
- react: 19.2.0
+ react: 19.2.1
tslib: 2.8.1
optionalDependencies:
typescript: 5.9.3
@@ -13774,69 +13828,69 @@ snapshots:
react-is@18.3.1: {}
- react-redux@9.2.0(@types/react@19.2.6)(react@19.2.0)(redux@5.0.1):
+ react-redux@9.2.0(@types/react@19.2.7)(react@19.2.1)(redux@5.0.1):
dependencies:
'@types/use-sync-external-store': 0.0.6
- react: 19.2.0
- use-sync-external-store: 1.5.0(react@19.2.0)
+ react: 19.2.1
+ use-sync-external-store: 1.5.0(react@19.2.1)
optionalDependencies:
- '@types/react': 19.2.6
+ '@types/react': 19.2.7
redux: 5.0.1
- react-simple-maps@2.3.0(prop-types@15.8.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ react-simple-maps@2.3.0(prop-types@15.8.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
d3-geo: 2.0.2
d3-selection: 2.0.0
d3-zoom: 2.0.0
prop-types: 15.8.1
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
topojson-client: 3.1.0
- react-stately@3.42.0(react@19.2.0):
+ react-stately@3.42.0(react@19.2.1):
dependencies:
- '@react-stately/calendar': 3.9.0(react@19.2.0)
- '@react-stately/checkbox': 3.7.2(react@19.2.0)
- '@react-stately/collections': 3.12.8(react@19.2.0)
- '@react-stately/color': 3.9.2(react@19.2.0)
- '@react-stately/combobox': 3.12.0(react@19.2.0)
- '@react-stately/data': 3.14.1(react@19.2.0)
- '@react-stately/datepicker': 3.15.2(react@19.2.0)
- '@react-stately/disclosure': 3.0.8(react@19.2.0)
- '@react-stately/dnd': 3.7.1(react@19.2.0)
- '@react-stately/form': 3.2.2(react@19.2.0)
- '@react-stately/list': 3.13.1(react@19.2.0)
- '@react-stately/menu': 3.9.8(react@19.2.0)
- '@react-stately/numberfield': 3.10.2(react@19.2.0)
- '@react-stately/overlays': 3.6.20(react@19.2.0)
- '@react-stately/radio': 3.11.2(react@19.2.0)
- '@react-stately/searchfield': 3.5.16(react@19.2.0)
- '@react-stately/select': 3.8.0(react@19.2.0)
- '@react-stately/selection': 3.20.6(react@19.2.0)
- '@react-stately/slider': 3.7.2(react@19.2.0)
- '@react-stately/table': 3.15.1(react@19.2.0)
- '@react-stately/tabs': 3.8.6(react@19.2.0)
- '@react-stately/toast': 3.1.2(react@19.2.0)
- '@react-stately/toggle': 3.9.2(react@19.2.0)
- '@react-stately/tooltip': 3.5.8(react@19.2.0)
- '@react-stately/tree': 3.9.3(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- react: 19.2.0
+ '@react-stately/calendar': 3.9.0(react@19.2.1)
+ '@react-stately/checkbox': 3.7.2(react@19.2.1)
+ '@react-stately/collections': 3.12.8(react@19.2.1)
+ '@react-stately/color': 3.9.2(react@19.2.1)
+ '@react-stately/combobox': 3.12.0(react@19.2.1)
+ '@react-stately/data': 3.14.1(react@19.2.1)
+ '@react-stately/datepicker': 3.15.2(react@19.2.1)
+ '@react-stately/disclosure': 3.0.8(react@19.2.1)
+ '@react-stately/dnd': 3.7.1(react@19.2.1)
+ '@react-stately/form': 3.2.2(react@19.2.1)
+ '@react-stately/list': 3.13.1(react@19.2.1)
+ '@react-stately/menu': 3.9.8(react@19.2.1)
+ '@react-stately/numberfield': 3.10.2(react@19.2.1)
+ '@react-stately/overlays': 3.6.20(react@19.2.1)
+ '@react-stately/radio': 3.11.2(react@19.2.1)
+ '@react-stately/searchfield': 3.5.16(react@19.2.1)
+ '@react-stately/select': 3.8.0(react@19.2.1)
+ '@react-stately/selection': 3.20.6(react@19.2.1)
+ '@react-stately/slider': 3.7.2(react@19.2.1)
+ '@react-stately/table': 3.15.1(react@19.2.1)
+ '@react-stately/tabs': 3.8.6(react@19.2.1)
+ '@react-stately/toast': 3.1.2(react@19.2.1)
+ '@react-stately/toggle': 3.9.2(react@19.2.1)
+ '@react-stately/tooltip': 3.5.8(react@19.2.1)
+ '@react-stately/tree': 3.9.3(react@19.2.1)
+ '@react-types/shared': 3.32.1(react@19.2.1)
+ react: 19.2.1
- react-use-measure@2.1.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ react-use-measure@2.1.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
optionalDependencies:
- react-dom: 19.2.0(react@19.2.0)
+ react-dom: 19.2.1(react@19.2.1)
- react-window@1.8.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ react-window@1.8.11(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
'@babel/runtime': 7.28.3
memoize-one: 5.2.1
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
+ react: 19.2.1
+ react-dom: 19.2.1(react@19.2.1)
- react@19.2.0: {}
+ react@19.2.1: {}
read-babelrc-up@1.1.0:
dependencies:
@@ -13950,6 +14004,8 @@ snapshots:
resolve-from@5.0.0: {}
+ resolve-pkg-maps@1.0.0: {}
+
resolve.exports@2.0.3: {}
resolve@1.22.10:
@@ -13989,9 +14045,9 @@ snapshots:
del: 8.0.0
rollup: 4.53.3
- rollup-plugin-dts@6.2.3(rollup@4.53.3)(typescript@5.9.3):
+ rollup-plugin-dts@6.3.0(rollup@4.53.3)(typescript@5.9.3):
dependencies:
- magic-string: 0.30.18
+ magic-string: 0.30.21
rollup: 4.53.3
typescript: 5.9.3
optionalDependencies:
@@ -14435,10 +14491,10 @@ snapshots:
style-search@0.1.0: {}
- styled-jsx@5.1.6(@babel/core@7.28.3)(react@19.2.0):
+ styled-jsx@5.1.6(@babel/core@7.28.3)(react@19.2.1):
dependencies:
client-only: 0.0.1
- react: 19.2.0
+ react: 19.2.1
optionalDependencies:
'@babel/core': 7.28.3
@@ -14661,7 +14717,7 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-jest@29.4.5(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3):
+ ts-jest@29.4.6(@babel/core@7.28.3)(@jest/transform@29.7.0)(@jest/types@30.0.5)(babel-jest@29.7.0(@babel/core@7.28.3))(esbuild@0.25.12)(jest-util@30.0.5)(jest@29.7.0(@types/node@24.10.1)(ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
@@ -14702,7 +14758,7 @@ snapshots:
tslib@2.8.1: {}
- tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.1):
+ tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.1):
dependencies:
bundle-require: 5.1.0(esbuild@0.27.0)
cac: 6.7.14
@@ -14713,7 +14769,7 @@ snapshots:
fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1
picocolors: 1.1.1
- postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1)
+ postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.1)
resolve-from: 5.0.0
rollup: 4.53.3
source-map: 0.7.6
@@ -14730,6 +14786,13 @@ snapshots:
- tsx
- yaml
+ tsx@4.21.0:
+ dependencies:
+ esbuild: 0.27.0
+ get-tsconfig: 4.13.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
tunnel-agent@0.6.0:
dependencies:
safe-buffer: 5.2.1
@@ -14831,17 +14894,17 @@ snapshots:
dependencies:
punycode: 2.3.1
- use-memo-one@1.1.3(react@19.2.0):
+ use-memo-one@1.1.3(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
- use-sync-external-store@1.5.0(react@19.2.0):
+ use-sync-external-store@1.5.0(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
- use-sync-external-store@1.6.0(react@19.2.0):
+ use-sync-external-store@1.6.0(react@19.2.1):
dependencies:
- react: 19.2.0
+ react: 19.2.1
util-deprecate@1.0.2: {}
@@ -15029,11 +15092,11 @@ snapshots:
yocto-queue@0.1.0: {}
- zod@4.1.12: {}
+ zod@4.1.13: {}
- zustand@5.0.8(@types/react@19.2.6)(immer@10.2.0)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)):
+ zustand@5.0.9(@types/react@19.2.7)(immer@10.2.0)(react@19.2.1)(use-sync-external-store@1.6.0(react@19.2.1)):
optionalDependencies:
- '@types/react': 19.2.6
+ '@types/react': 19.2.7
immer: 10.2.0
- react: 19.2.0
- use-sync-external-store: 1.6.0(react@19.2.0)
+ react: 19.2.1
+ use-sync-external-store: 1.6.0(react@19.2.1)
diff --git a/scripts/seed-data.ts b/scripts/seed-data.ts
new file mode 100644
index 00000000..82a0564c
--- /dev/null
+++ b/scripts/seed-data.ts
@@ -0,0 +1,121 @@
+#!/usr/bin/env node
+/* eslint-disable no-console */
+
+/**
+ * Umami Sample Data Generator
+ *
+ * Generates realistic analytics data for local development and testing.
+ * Creates two demo websites:
+ * - Demo Blog: Low traffic (~100 sessions/month)
+ * - Demo SaaS: Average traffic (~500 sessions/day)
+ *
+ * Usage:
+ * npm run seed-data # Generate 30 days of data
+ * npm run seed-data -- --days 90 # Generate 90 days of data
+ * npm run seed-data -- --clear # Clear existing demo data first
+ * npm run seed-data -- --verbose # Show detailed progress
+ */
+
+import { seed, type SeedConfig } from './seed/index.js';
+
+function parseArgs(): SeedConfig {
+ const args = process.argv.slice(2);
+
+ const config: SeedConfig = {
+ days: 30,
+ clear: false,
+ verbose: false,
+ };
+
+ for (let i = 0; i < args.length; i++) {
+ const arg = args[i];
+
+ if (arg === '--days' && args[i + 1]) {
+ config.days = parseInt(args[i + 1], 10);
+ if (isNaN(config.days) || config.days < 1) {
+ console.error('Error: --days must be a positive integer');
+ process.exit(1);
+ }
+ i++;
+ } else if (arg === '--clear') {
+ config.clear = true;
+ } else if (arg === '--verbose' || arg === '-v') {
+ config.verbose = true;
+ } else if (arg === '--help' || arg === '-h') {
+ printHelp();
+ process.exit(0);
+ } else if (arg.startsWith('--days=')) {
+ config.days = parseInt(arg.split('=')[1], 10);
+ if (isNaN(config.days) || config.days < 1) {
+ console.error('Error: --days must be a positive integer');
+ process.exit(1);
+ }
+ }
+ }
+
+ return config;
+}
+
+function printHelp(): void {
+ console.log(`
+Umami Sample Data Generator
+
+Generates realistic analytics data for local development and testing.
+
+Usage:
+ npm run seed-data [options]
+
+Options:
+ --days Number of days of data to generate (default: 30)
+ --clear Clear existing demo data before generating
+ --verbose, -v Show detailed progress
+ --help, -h Show this help message
+
+Examples:
+ npm run seed-data # Generate 30 days of data
+ npm run seed-data -- --days 90 # Generate 90 days of data
+ npm run seed-data -- --clear # Clear existing demo data first
+ npm run seed-data -- --days 7 -v # Generate 7 days with verbose output
+
+Generated Sites:
+ - Demo Blog: Low traffic (~90 sessions/month)
+ - Demo SaaS: Average traffic (~500 sessions/day) with revenue tracking
+
+Note:
+ This script is blocked from running in production environments
+ (NODE_ENV=production or cloud platforms like Vercel/Netlify/Railway).
+`);
+}
+
+function checkEnvironment(): void {
+ const nodeEnv = process.env.NODE_ENV;
+
+ if (nodeEnv === 'production') {
+ console.error('\nError: seed-data cannot run in production environment.');
+ console.error('This script is only for local development and testing.\n');
+ process.exit(1);
+ }
+
+ if (process.env.VERCEL || process.env.NETLIFY || process.env.RAILWAY_ENVIRONMENT) {
+ console.error('\nError: seed-data cannot run in cloud environments.');
+ console.error('This script is only for local development and testing.\n');
+ process.exit(1);
+ }
+}
+
+async function main(): Promise {
+ console.log('\nUmami Sample Data Generator\n');
+
+ checkEnvironment();
+
+ const config = parseArgs();
+
+ try {
+ await seed(config);
+ } catch (error) {
+ console.error('\nError generating seed data:', error);
+ process.exit(1);
+ }
+}
+
+main();
diff --git a/scripts/seed/distributions/devices.ts b/scripts/seed/distributions/devices.ts
new file mode 100644
index 00000000..9d8b8c00
--- /dev/null
+++ b/scripts/seed/distributions/devices.ts
@@ -0,0 +1,80 @@
+import { weightedRandom, pickRandom, type WeightedOption } from '../utils.js';
+
+export type DeviceType = 'desktop' | 'mobile' | 'tablet';
+
+const deviceWeights: WeightedOption[] = [
+ { value: 'desktop', weight: 0.55 },
+ { value: 'mobile', weight: 0.4 },
+ { value: 'tablet', weight: 0.05 },
+];
+
+const browsersByDevice: Record[]> = {
+ desktop: [
+ { value: 'Chrome', weight: 0.65 },
+ { value: 'Safari', weight: 0.12 },
+ { value: 'Firefox', weight: 0.1 },
+ { value: 'Edge', weight: 0.1 },
+ { value: 'Opera', weight: 0.03 },
+ ],
+ mobile: [
+ { value: 'Chrome', weight: 0.55 },
+ { value: 'Safari', weight: 0.35 },
+ { value: 'Samsung', weight: 0.05 },
+ { value: 'Firefox', weight: 0.03 },
+ { value: 'Opera', weight: 0.02 },
+ ],
+ tablet: [
+ { value: 'Safari', weight: 0.6 },
+ { value: 'Chrome', weight: 0.35 },
+ { value: 'Firefox', weight: 0.05 },
+ ],
+};
+
+const osByDevice: Record[]> = {
+ desktop: [
+ { value: 'Windows 10', weight: 0.5 },
+ { value: 'Mac OS', weight: 0.3 },
+ { value: 'Linux', weight: 0.12 },
+ { value: 'Chrome OS', weight: 0.05 },
+ { value: 'Windows 11', weight: 0.03 },
+ ],
+ mobile: [
+ { value: 'iOS', weight: 0.45 },
+ { value: 'Android', weight: 0.55 },
+ ],
+ tablet: [
+ { value: 'iOS', weight: 0.75 },
+ { value: 'Android', weight: 0.25 },
+ ],
+};
+
+const screensByDevice: Record = {
+ desktop: [
+ '1920x1080',
+ '2560x1440',
+ '1366x768',
+ '1440x900',
+ '3840x2160',
+ '1536x864',
+ '1680x1050',
+ '2560x1080',
+ ],
+ mobile: ['390x844', '414x896', '375x812', '360x800', '428x926', '393x873', '412x915', '360x780'],
+ tablet: ['1024x768', '768x1024', '834x1194', '820x1180', '810x1080', '800x1280'],
+};
+
+export interface DeviceInfo {
+ device: DeviceType;
+ browser: string;
+ os: string;
+ screen: string;
+}
+
+export function getRandomDevice(): DeviceInfo {
+ const device = weightedRandom(deviceWeights);
+ const browser = weightedRandom(browsersByDevice[device]);
+ const os = weightedRandom(osByDevice[device]);
+ const screen = pickRandom(screensByDevice[device]);
+
+ return { device, browser, os, screen };
+}
diff --git a/scripts/seed/distributions/geographic.ts b/scripts/seed/distributions/geographic.ts
new file mode 100644
index 00000000..ba6ebae3
--- /dev/null
+++ b/scripts/seed/distributions/geographic.ts
@@ -0,0 +1,144 @@
+import { weightedRandom, pickRandom, type WeightedOption } from '../utils.js';
+
+interface GeoLocation {
+ country: string;
+ region: string;
+ city: string;
+}
+
+const countryWeights: WeightedOption[] = [
+ { value: 'US', weight: 0.35 },
+ { value: 'GB', weight: 0.08 },
+ { value: 'DE', weight: 0.06 },
+ { value: 'FR', weight: 0.05 },
+ { value: 'CA', weight: 0.04 },
+ { value: 'AU', weight: 0.03 },
+ { value: 'IN', weight: 0.08 },
+ { value: 'BR', weight: 0.04 },
+ { value: 'JP', weight: 0.03 },
+ { value: 'NL', weight: 0.02 },
+ { value: 'ES', weight: 0.02 },
+ { value: 'IT', weight: 0.02 },
+ { value: 'PL', weight: 0.02 },
+ { value: 'SE', weight: 0.01 },
+ { value: 'MX', weight: 0.02 },
+ { value: 'KR', weight: 0.02 },
+ { value: 'SG', weight: 0.01 },
+ { value: 'ID', weight: 0.02 },
+ { value: 'PH', weight: 0.01 },
+ { value: 'TH', weight: 0.01 },
+ { value: 'VN', weight: 0.01 },
+ { value: 'RU', weight: 0.02 },
+ { value: 'UA', weight: 0.01 },
+ { value: 'ZA', weight: 0.01 },
+ { value: 'NG', weight: 0.01 },
+];
+
+const regionsByCountry: Record = {
+ US: [
+ { region: 'CA', city: 'San Francisco' },
+ { region: 'CA', city: 'Los Angeles' },
+ { region: 'NY', city: 'New York' },
+ { region: 'TX', city: 'Austin' },
+ { region: 'TX', city: 'Houston' },
+ { region: 'WA', city: 'Seattle' },
+ { region: 'IL', city: 'Chicago' },
+ { region: 'MA', city: 'Boston' },
+ { region: 'CO', city: 'Denver' },
+ { region: 'GA', city: 'Atlanta' },
+ { region: 'FL', city: 'Miami' },
+ { region: 'PA', city: 'Philadelphia' },
+ ],
+ GB: [
+ { region: 'ENG', city: 'London' },
+ { region: 'ENG', city: 'Manchester' },
+ { region: 'ENG', city: 'Birmingham' },
+ { region: 'SCT', city: 'Edinburgh' },
+ { region: 'ENG', city: 'Bristol' },
+ ],
+ DE: [
+ { region: 'BE', city: 'Berlin' },
+ { region: 'BY', city: 'Munich' },
+ { region: 'HH', city: 'Hamburg' },
+ { region: 'HE', city: 'Frankfurt' },
+ { region: 'NW', city: 'Cologne' },
+ ],
+ FR: [
+ { region: 'IDF', city: 'Paris' },
+ { region: 'ARA', city: 'Lyon' },
+ { region: 'PAC', city: 'Marseille' },
+ { region: 'OCC', city: 'Toulouse' },
+ ],
+ CA: [
+ { region: 'ON', city: 'Toronto' },
+ { region: 'BC', city: 'Vancouver' },
+ { region: 'QC', city: 'Montreal' },
+ { region: 'AB', city: 'Calgary' },
+ ],
+ AU: [
+ { region: 'NSW', city: 'Sydney' },
+ { region: 'VIC', city: 'Melbourne' },
+ { region: 'QLD', city: 'Brisbane' },
+ { region: 'WA', city: 'Perth' },
+ ],
+ IN: [
+ { region: 'MH', city: 'Mumbai' },
+ { region: 'KA', city: 'Bangalore' },
+ { region: 'DL', city: 'New Delhi' },
+ { region: 'TN', city: 'Chennai' },
+ { region: 'TG', city: 'Hyderabad' },
+ ],
+ BR: [
+ { region: 'SP', city: 'Sao Paulo' },
+ { region: 'RJ', city: 'Rio de Janeiro' },
+ { region: 'MG', city: 'Belo Horizonte' },
+ ],
+ JP: [
+ { region: '13', city: 'Tokyo' },
+ { region: '27', city: 'Osaka' },
+ { region: '23', city: 'Nagoya' },
+ ],
+ NL: [
+ { region: 'NH', city: 'Amsterdam' },
+ { region: 'ZH', city: 'Rotterdam' },
+ { region: 'ZH', city: 'The Hague' },
+ ],
+};
+
+const defaultRegions = [{ region: '', city: '' }];
+
+export function getRandomGeo(): GeoLocation {
+ const country = weightedRandom(countryWeights);
+ const regions = regionsByCountry[country] || defaultRegions;
+ const { region, city } = pickRandom(regions);
+
+ return { country, region, city };
+}
+
+const languages: WeightedOption[] = [
+ { value: 'en-US', weight: 0.4 },
+ { value: 'en-GB', weight: 0.08 },
+ { value: 'de-DE', weight: 0.06 },
+ { value: 'fr-FR', weight: 0.05 },
+ { value: 'es-ES', weight: 0.05 },
+ { value: 'pt-BR', weight: 0.04 },
+ { value: 'ja-JP', weight: 0.03 },
+ { value: 'zh-CN', weight: 0.05 },
+ { value: 'ko-KR', weight: 0.02 },
+ { value: 'ru-RU', weight: 0.02 },
+ { value: 'it-IT', weight: 0.02 },
+ { value: 'nl-NL', weight: 0.02 },
+ { value: 'pl-PL', weight: 0.02 },
+ { value: 'hi-IN', weight: 0.04 },
+ { value: 'ar-SA', weight: 0.02 },
+ { value: 'tr-TR', weight: 0.02 },
+ { value: 'vi-VN', weight: 0.01 },
+ { value: 'th-TH', weight: 0.01 },
+ { value: 'id-ID', weight: 0.02 },
+ { value: 'sv-SE', weight: 0.01 },
+ { value: 'da-DK', weight: 0.01 },
+];
+
+export function getRandomLanguage(): string {
+ return weightedRandom(languages);
+}
diff --git a/scripts/seed/distributions/referrers.ts b/scripts/seed/distributions/referrers.ts
new file mode 100644
index 00000000..5b3f2c45
--- /dev/null
+++ b/scripts/seed/distributions/referrers.ts
@@ -0,0 +1,163 @@
+import { weightedRandom, pickRandom, randomInt, type WeightedOption } from '../utils.js';
+
+export type ReferrerType = 'direct' | 'organic' | 'social' | 'paid' | 'referral';
+
+export interface ReferrerInfo {
+ type: ReferrerType;
+ domain: string | null;
+ path: string | null;
+ utmSource: string | null;
+ utmMedium: string | null;
+ utmCampaign: string | null;
+ utmContent: string | null;
+ utmTerm: string | null;
+ gclid: string | null;
+ fbclid: string | null;
+}
+
+const referrerTypeWeights: WeightedOption[] = [
+ { value: 'direct', weight: 0.4 },
+ { value: 'organic', weight: 0.25 },
+ { value: 'social', weight: 0.15 },
+ { value: 'paid', weight: 0.1 },
+ { value: 'referral', weight: 0.1 },
+];
+
+const searchEngines = [
+ { domain: 'google.com', path: '/search' },
+ { domain: 'bing.com', path: '/search' },
+ { domain: 'duckduckgo.com', path: '/' },
+ { domain: 'yahoo.com', path: '/search' },
+ { domain: 'baidu.com', path: '/s' },
+];
+
+const socialPlatforms = [
+ { domain: 'twitter.com', path: null },
+ { domain: 'x.com', path: null },
+ { domain: 'linkedin.com', path: '/feed' },
+ { domain: 'facebook.com', path: null },
+ { domain: 'reddit.com', path: '/r/programming' },
+ { domain: 'news.ycombinator.com', path: '/item' },
+ { domain: 'threads.net', path: null },
+ { domain: 'bsky.app', path: null },
+];
+
+const referralSites = [
+ { domain: 'medium.com', path: '/@author/article' },
+ { domain: 'dev.to', path: '/post' },
+ { domain: 'hashnode.com', path: '/blog' },
+ { domain: 'techcrunch.com', path: '/article' },
+ { domain: 'producthunt.com', path: '/posts' },
+ { domain: 'indiehackers.com', path: '/post' },
+];
+
+interface PaidCampaign {
+ source: string;
+ medium: string;
+ campaign: string;
+ useGclid?: boolean;
+ useFbclid?: boolean;
+}
+
+const paidCampaigns: PaidCampaign[] = [
+ { source: 'google', medium: 'cpc', campaign: 'brand_search', useGclid: true },
+ { source: 'google', medium: 'cpc', campaign: 'product_awareness', useGclid: true },
+ { source: 'facebook', medium: 'paid_social', campaign: 'retargeting', useFbclid: true },
+ { source: 'facebook', medium: 'paid_social', campaign: 'lookalike', useFbclid: true },
+ { source: 'linkedin', medium: 'cpc', campaign: 'b2b_targeting' },
+ { source: 'twitter', medium: 'paid_social', campaign: 'launch_promo' },
+];
+
+const organicCampaigns = [
+ { source: 'newsletter', medium: 'email', campaign: 'weekly_digest' },
+ { source: 'newsletter', medium: 'email', campaign: 'product_update' },
+ { source: 'partner', medium: 'referral', campaign: 'integration_launch' },
+];
+
+function generateClickId(): string {
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
+ let result = '';
+ for (let i = 0; i < 32; i++) {
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
+ }
+ return result;
+}
+
+export function getRandomReferrer(): ReferrerInfo {
+ const type = weightedRandom(referrerTypeWeights);
+
+ const result: ReferrerInfo = {
+ type,
+ domain: null,
+ path: null,
+ utmSource: null,
+ utmMedium: null,
+ utmCampaign: null,
+ utmContent: null,
+ utmTerm: null,
+ gclid: null,
+ fbclid: null,
+ };
+
+ switch (type) {
+ case 'direct':
+ // No referrer data
+ break;
+
+ case 'organic': {
+ const engine = pickRandom(searchEngines);
+ result.domain = engine.domain;
+ result.path = engine.path;
+ break;
+ }
+
+ case 'social': {
+ const platform = pickRandom(socialPlatforms);
+ result.domain = platform.domain;
+ result.path = platform.path;
+
+ // Some social traffic has UTM params
+ if (Math.random() < 0.3) {
+ result.utmSource = platform.domain.replace('.com', '').replace('.net', '');
+ result.utmMedium = 'social';
+ }
+ break;
+ }
+
+ case 'paid': {
+ const campaign = pickRandom(paidCampaigns);
+ result.utmSource = campaign.source;
+ result.utmMedium = campaign.medium;
+ result.utmCampaign = campaign.campaign;
+ result.utmContent = `ad_${randomInt(1, 5)}`;
+
+ if (campaign.useGclid) {
+ result.gclid = generateClickId();
+ result.domain = 'google.com';
+ result.path = '/search';
+ } else if (campaign.useFbclid) {
+ result.fbclid = generateClickId();
+ result.domain = 'facebook.com';
+ result.path = null;
+ }
+ break;
+ }
+
+ case 'referral': {
+ // Mix of pure referrals and organic campaigns
+ if (Math.random() < 0.6) {
+ const site = pickRandom(referralSites);
+ result.domain = site.domain;
+ result.path = site.path;
+ } else {
+ const campaign = pickRandom(organicCampaigns);
+ result.utmSource = campaign.source;
+ result.utmMedium = campaign.medium;
+ result.utmCampaign = campaign.campaign;
+ }
+ break;
+ }
+ }
+
+ return result;
+}
diff --git a/scripts/seed/distributions/temporal.ts b/scripts/seed/distributions/temporal.ts
new file mode 100644
index 00000000..da0409a9
--- /dev/null
+++ b/scripts/seed/distributions/temporal.ts
@@ -0,0 +1,69 @@
+import { weightedRandom, randomInt, type WeightedOption } from '../utils.js';
+
+const hourlyWeights: WeightedOption[] = [
+ { value: 0, weight: 0.02 },
+ { value: 1, weight: 0.01 },
+ { value: 2, weight: 0.01 },
+ { value: 3, weight: 0.01 },
+ { value: 4, weight: 0.01 },
+ { value: 5, weight: 0.02 },
+ { value: 6, weight: 0.03 },
+ { value: 7, weight: 0.05 },
+ { value: 8, weight: 0.07 },
+ { value: 9, weight: 0.08 },
+ { value: 10, weight: 0.09 },
+ { value: 11, weight: 0.08 },
+ { value: 12, weight: 0.07 },
+ { value: 13, weight: 0.08 },
+ { value: 14, weight: 0.09 },
+ { value: 15, weight: 0.08 },
+ { value: 16, weight: 0.07 },
+ { value: 17, weight: 0.06 },
+ { value: 18, weight: 0.05 },
+ { value: 19, weight: 0.04 },
+ { value: 20, weight: 0.03 },
+ { value: 21, weight: 0.03 },
+ { value: 22, weight: 0.02 },
+ { value: 23, weight: 0.02 },
+];
+
+const dayOfWeekWeights: WeightedOption[] = [
+ { value: 0, weight: 0.08 }, // Sunday
+ { value: 1, weight: 0.16 }, // Monday
+ { value: 2, weight: 0.17 }, // Tuesday
+ { value: 3, weight: 0.17 }, // Wednesday
+ { value: 4, weight: 0.16 }, // Thursday
+ { value: 5, weight: 0.15 }, // Friday
+ { value: 6, weight: 0.11 }, // Saturday
+];
+
+export function getWeightedHour(): number {
+ return weightedRandom(hourlyWeights);
+}
+
+export function getDayOfWeekMultiplier(dayOfWeek: number): number {
+ const weight = dayOfWeekWeights.find(d => d.value === dayOfWeek)?.weight ?? 0.14;
+ return weight / 0.14; // Normalize around 1.0
+}
+
+export function generateTimestampForDay(day: Date): Date {
+ const hour = getWeightedHour();
+ const minute = randomInt(0, 59);
+ const second = randomInt(0, 59);
+ const millisecond = randomInt(0, 999);
+
+ const timestamp = new Date(day);
+ timestamp.setHours(hour, minute, second, millisecond);
+
+ return timestamp;
+}
+
+export function getSessionCountForDay(baseCount: number, day: Date): number {
+ const dayOfWeek = day.getDay();
+ const multiplier = getDayOfWeekMultiplier(dayOfWeek);
+
+ // Add some random variance (±20%)
+ const variance = 0.8 + Math.random() * 0.4;
+
+ return Math.round(baseCount * multiplier * variance);
+}
diff --git a/scripts/seed/generators/events.ts b/scripts/seed/generators/events.ts
new file mode 100644
index 00000000..72429062
--- /dev/null
+++ b/scripts/seed/generators/events.ts
@@ -0,0 +1,191 @@
+import { uuid, addSeconds, randomInt } from '../utils.js';
+import { getRandomReferrer } from '../distributions/referrers.js';
+import type { SessionData } from './sessions.js';
+
+export const EVENT_TYPE = {
+ pageView: 1,
+ customEvent: 2,
+} as const;
+
+export interface PageConfig {
+ path: string;
+ title: string;
+ weight: number;
+ avgTimeOnPage: number;
+}
+
+export interface CustomEventConfig {
+ name: string;
+ weight: number;
+ pages?: string[];
+ data?: Record;
+}
+
+export interface JourneyConfig {
+ pages: string[];
+ weight: number;
+}
+
+export interface EventData {
+ id: string;
+ websiteId: string;
+ sessionId: string;
+ visitId: string;
+ eventType: number;
+ urlPath: string;
+ urlQuery: string | null;
+ pageTitle: string | null;
+ hostname: string;
+ referrerDomain: string | null;
+ referrerPath: string | null;
+ utmSource: string | null;
+ utmMedium: string | null;
+ utmCampaign: string | null;
+ utmContent: string | null;
+ utmTerm: string | null;
+ gclid: string | null;
+ fbclid: string | null;
+ eventName: string | null;
+ tag: string | null;
+ createdAt: Date;
+}
+
+export interface EventDataEntry {
+ id: string;
+ websiteId: string;
+ websiteEventId: string;
+ dataKey: string;
+ stringValue: string | null;
+ numberValue: number | null;
+ dateValue: Date | null;
+ dataType: number;
+ createdAt: Date;
+}
+
+export interface SiteConfig {
+ hostname: string;
+ pages: PageConfig[];
+ journeys: JourneyConfig[];
+ customEvents: CustomEventConfig[];
+}
+
+function getPageTitle(pages: PageConfig[], path: string): string | null {
+ const page = pages.find(p => p.path === path);
+ return page?.title ?? null;
+}
+
+function getPageTimeOnPage(pages: PageConfig[], path: string): number {
+ const page = pages.find(p => p.path === path);
+ return page?.avgTimeOnPage ?? 30;
+}
+
+export function generateEventsForSession(
+ session: SessionData,
+ siteConfig: SiteConfig,
+ journey: string[],
+): { events: EventData[]; eventDataEntries: EventDataEntry[] } {
+ const events: EventData[] = [];
+ const eventDataEntries: EventDataEntry[] = [];
+ const visitId = uuid();
+
+ let currentTime = session.createdAt;
+ const referrer = getRandomReferrer();
+
+ for (let i = 0; i < journey.length; i++) {
+ const pagePath = journey[i];
+ const isFirstPage = i === 0;
+
+ const eventId = uuid();
+ const pageTitle = getPageTitle(siteConfig.pages, pagePath);
+
+ events.push({
+ id: eventId,
+ websiteId: session.websiteId,
+ sessionId: session.id,
+ visitId,
+ eventType: EVENT_TYPE.pageView,
+ urlPath: pagePath,
+ urlQuery: null,
+ pageTitle,
+ hostname: siteConfig.hostname,
+ referrerDomain: isFirstPage ? referrer.domain : null,
+ referrerPath: isFirstPage ? referrer.path : null,
+ utmSource: isFirstPage ? referrer.utmSource : null,
+ utmMedium: isFirstPage ? referrer.utmMedium : null,
+ utmCampaign: isFirstPage ? referrer.utmCampaign : null,
+ utmContent: isFirstPage ? referrer.utmContent : null,
+ utmTerm: isFirstPage ? referrer.utmTerm : null,
+ gclid: isFirstPage ? referrer.gclid : null,
+ fbclid: isFirstPage ? referrer.fbclid : null,
+ eventName: null,
+ tag: null,
+ createdAt: currentTime,
+ });
+
+ // Check for custom events on this page
+ for (const customEvent of siteConfig.customEvents) {
+ // Check if this event can occur on this page
+ if (customEvent.pages && !customEvent.pages.includes(pagePath)) {
+ continue;
+ }
+
+ // Random chance based on weight
+ if (Math.random() < customEvent.weight) {
+ currentTime = addSeconds(currentTime, randomInt(2, 15));
+
+ const customEventId = uuid();
+ events.push({
+ id: customEventId,
+ websiteId: session.websiteId,
+ sessionId: session.id,
+ visitId,
+ eventType: EVENT_TYPE.customEvent,
+ urlPath: pagePath,
+ urlQuery: null,
+ pageTitle,
+ hostname: siteConfig.hostname,
+ referrerDomain: null,
+ referrerPath: null,
+ utmSource: null,
+ utmMedium: null,
+ utmCampaign: null,
+ utmContent: null,
+ utmTerm: null,
+ gclid: null,
+ fbclid: null,
+ eventName: customEvent.name,
+ tag: null,
+ createdAt: currentTime,
+ });
+
+ // Generate event data if configured
+ if (customEvent.data) {
+ for (const [key, values] of Object.entries(customEvent.data)) {
+ const value = values[Math.floor(Math.random() * values.length)];
+ const isNumber = typeof value === 'number';
+
+ eventDataEntries.push({
+ id: uuid(),
+ websiteId: session.websiteId,
+ websiteEventId: customEventId,
+ dataKey: key,
+ stringValue: isNumber ? null : String(value),
+ numberValue: isNumber ? value : null,
+ dateValue: null,
+ dataType: isNumber ? 2 : 1, // 1 = string, 2 = number
+ createdAt: currentTime,
+ });
+ }
+ }
+ }
+ }
+
+ // Time spent on page before navigating
+ const timeOnPage = getPageTimeOnPage(siteConfig.pages, pagePath);
+ const variance = Math.floor(timeOnPage * 0.5);
+ const actualTime = timeOnPage + randomInt(-variance, variance);
+ currentTime = addSeconds(currentTime, Math.max(5, actualTime));
+ }
+
+ return { events, eventDataEntries };
+}
diff --git a/scripts/seed/generators/revenue.ts b/scripts/seed/generators/revenue.ts
new file mode 100644
index 00000000..deea9e6b
--- /dev/null
+++ b/scripts/seed/generators/revenue.ts
@@ -0,0 +1,65 @@
+import { uuid, randomFloat } from '../utils.js';
+import type { EventData } from './events.js';
+
+export interface RevenueConfig {
+ eventName: string;
+ minAmount: number;
+ maxAmount: number;
+ currency: string;
+ weight: number;
+}
+
+export interface RevenueData {
+ id: string;
+ websiteId: string;
+ sessionId: string;
+ eventId: string;
+ eventName: string;
+ currency: string;
+ revenue: number;
+ createdAt: Date;
+}
+
+export function generateRevenue(event: EventData, config: RevenueConfig): RevenueData | null {
+ if (event.eventName !== config.eventName) {
+ return null;
+ }
+
+ if (Math.random() > config.weight) {
+ return null;
+ }
+
+ const revenue = randomFloat(config.minAmount, config.maxAmount);
+
+ return {
+ id: uuid(),
+ websiteId: event.websiteId,
+ sessionId: event.sessionId,
+ eventId: event.id,
+ eventName: event.eventName!,
+ currency: config.currency,
+ revenue: Math.round(revenue * 100) / 100, // Round to 2 decimal places
+ createdAt: event.createdAt,
+ };
+}
+
+export function generateRevenueForEvents(
+ events: EventData[],
+ configs: RevenueConfig[],
+): RevenueData[] {
+ const revenueEntries: RevenueData[] = [];
+
+ for (const event of events) {
+ if (!event.eventName) continue;
+
+ for (const config of configs) {
+ const revenue = generateRevenue(event, config);
+ if (revenue) {
+ revenueEntries.push(revenue);
+ break; // Only one revenue per event
+ }
+ }
+ }
+
+ return revenueEntries;
+}
diff --git a/scripts/seed/generators/sessions.ts b/scripts/seed/generators/sessions.ts
new file mode 100644
index 00000000..1370511f
--- /dev/null
+++ b/scripts/seed/generators/sessions.ts
@@ -0,0 +1,52 @@
+import { uuid } from '../utils.js';
+import { getRandomDevice } from '../distributions/devices.js';
+import { getRandomGeo, getRandomLanguage } from '../distributions/geographic.js';
+import { generateTimestampForDay } from '../distributions/temporal.js';
+
+export interface SessionData {
+ id: string;
+ websiteId: string;
+ browser: string;
+ os: string;
+ device: string;
+ screen: string;
+ language: string;
+ country: string;
+ region: string;
+ city: string;
+ createdAt: Date;
+}
+
+export function createSession(websiteId: string, day: Date): SessionData {
+ const deviceInfo = getRandomDevice();
+ const geo = getRandomGeo();
+ const language = getRandomLanguage();
+ const createdAt = generateTimestampForDay(day);
+
+ return {
+ id: uuid(),
+ websiteId,
+ browser: deviceInfo.browser,
+ os: deviceInfo.os,
+ device: deviceInfo.device,
+ screen: deviceInfo.screen,
+ language,
+ country: geo.country,
+ region: geo.region,
+ city: geo.city,
+ createdAt,
+ };
+}
+
+export function createSessions(websiteId: string, day: Date, count: number): SessionData[] {
+ const sessions: SessionData[] = [];
+
+ for (let i = 0; i < count; i++) {
+ sessions.push(createSession(websiteId, day));
+ }
+
+ // Sort by createdAt to maintain chronological order
+ sessions.sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
+
+ return sessions;
+}
diff --git a/scripts/seed/index.ts b/scripts/seed/index.ts
new file mode 100644
index 00000000..5b9de8de
--- /dev/null
+++ b/scripts/seed/index.ts
@@ -0,0 +1,378 @@
+/* eslint-disable no-console */
+import 'dotenv/config';
+import { PrismaPg } from '@prisma/adapter-pg';
+import { PrismaClient, Prisma } from '../../src/generated/prisma/client.js';
+import { uuid, generateDatesBetween, subDays, formatNumber, progressBar } from './utils.js';
+import { createSessions, type SessionData } from './generators/sessions.js';
+import {
+ generateEventsForSession,
+ type EventData,
+ type EventDataEntry,
+} from './generators/events.js';
+import {
+ generateRevenueForEvents,
+ type RevenueData,
+ type RevenueConfig,
+} from './generators/revenue.js';
+import { getSessionCountForDay } from './distributions/temporal.js';
+import {
+ BLOG_WEBSITE_NAME,
+ BLOG_WEBSITE_DOMAIN,
+ BLOG_SESSIONS_PER_DAY,
+ getBlogSiteConfig,
+ getBlogJourney,
+} from './sites/blog.js';
+import {
+ SAAS_WEBSITE_NAME,
+ SAAS_WEBSITE_DOMAIN,
+ SAAS_SESSIONS_PER_DAY,
+ getSaasSiteConfig,
+ getSaasJourney,
+ saasRevenueConfigs,
+} from './sites/saas.js';
+
+const BATCH_SIZE = 1000;
+
+type SessionCreateInput = Prisma.SessionCreateManyInput;
+type WebsiteEventCreateInput = Prisma.WebsiteEventCreateManyInput;
+type EventDataCreateInput = Prisma.EventDataCreateManyInput;
+type RevenueCreateInput = Prisma.RevenueCreateManyInput;
+
+export interface SeedConfig {
+ days: number;
+ clear: boolean;
+ verbose: boolean;
+}
+
+export interface SeedResult {
+ websites: number;
+ sessions: number;
+ events: number;
+ eventData: number;
+ revenue: number;
+}
+
+async function batchInsertSessions(
+ prisma: PrismaClient,
+ data: SessionCreateInput[],
+ verbose: boolean,
+): Promise {
+ for (let i = 0; i < data.length; i += BATCH_SIZE) {
+ const batch = data.slice(i, i + BATCH_SIZE);
+ await prisma.session.createMany({ data: batch, skipDuplicates: true });
+ if (verbose) {
+ console.log(
+ ` Inserted ${Math.min(i + BATCH_SIZE, data.length)}/${data.length} session records`,
+ );
+ }
+ }
+}
+
+async function batchInsertEvents(
+ prisma: PrismaClient,
+ data: WebsiteEventCreateInput[],
+ verbose: boolean,
+): Promise {
+ for (let i = 0; i < data.length; i += BATCH_SIZE) {
+ const batch = data.slice(i, i + BATCH_SIZE);
+ await prisma.websiteEvent.createMany({ data: batch, skipDuplicates: true });
+ if (verbose) {
+ console.log(
+ ` Inserted ${Math.min(i + BATCH_SIZE, data.length)}/${data.length} event records`,
+ );
+ }
+ }
+}
+
+async function batchInsertEventData(
+ prisma: PrismaClient,
+ data: EventDataCreateInput[],
+ verbose: boolean,
+): Promise {
+ for (let i = 0; i < data.length; i += BATCH_SIZE) {
+ const batch = data.slice(i, i + BATCH_SIZE);
+ await prisma.eventData.createMany({ data: batch, skipDuplicates: true });
+ if (verbose) {
+ console.log(
+ ` Inserted ${Math.min(i + BATCH_SIZE, data.length)}/${data.length} eventData records`,
+ );
+ }
+ }
+}
+
+async function batchInsertRevenue(
+ prisma: PrismaClient,
+ data: RevenueCreateInput[],
+ verbose: boolean,
+): Promise {
+ for (let i = 0; i < data.length; i += BATCH_SIZE) {
+ const batch = data.slice(i, i + BATCH_SIZE);
+ await prisma.revenue.createMany({ data: batch, skipDuplicates: true });
+ if (verbose) {
+ console.log(
+ ` Inserted ${Math.min(i + BATCH_SIZE, data.length)}/${data.length} revenue records`,
+ );
+ }
+ }
+}
+
+async function findAdminUser(prisma: PrismaClient): Promise {
+ const adminUser = await prisma.user.findFirst({
+ where: { role: 'admin' },
+ select: { id: true },
+ });
+
+ if (!adminUser) {
+ throw new Error(
+ 'No admin user found in the database.\n' +
+ 'Please ensure you have run the initial setup and created an admin user.\n' +
+ 'The default admin user is created during first build (username: admin, password: umami).',
+ );
+ }
+
+ return adminUser.id;
+}
+
+async function createWebsite(
+ prisma: PrismaClient,
+ name: string,
+ domain: string,
+ adminUserId: string,
+): Promise {
+ const websiteId = uuid();
+
+ await prisma.website.create({
+ data: {
+ id: websiteId,
+ name,
+ domain,
+ userId: adminUserId,
+ createdBy: adminUserId,
+ },
+ });
+
+ return websiteId;
+}
+
+async function clearDemoData(prisma: PrismaClient): Promise {
+ console.log('Clearing existing demo data...');
+
+ const demoWebsites = await prisma.website.findMany({
+ where: {
+ OR: [{ name: BLOG_WEBSITE_NAME }, { name: SAAS_WEBSITE_NAME }],
+ },
+ select: { id: true },
+ });
+
+ const websiteIds = demoWebsites.map(w => w.id);
+
+ if (websiteIds.length === 0) {
+ console.log(' No existing demo websites found');
+ return;
+ }
+
+ console.log(` Found ${websiteIds.length} demo website(s)`);
+
+ // Delete in correct order due to foreign key constraints
+ await prisma.revenue.deleteMany({ where: { websiteId: { in: websiteIds } } });
+ await prisma.eventData.deleteMany({ where: { websiteId: { in: websiteIds } } });
+ await prisma.sessionData.deleteMany({ where: { websiteId: { in: websiteIds } } });
+ await prisma.websiteEvent.deleteMany({ where: { websiteId: { in: websiteIds } } });
+ await prisma.session.deleteMany({ where: { websiteId: { in: websiteIds } } });
+ await prisma.segment.deleteMany({ where: { websiteId: { in: websiteIds } } });
+ await prisma.report.deleteMany({ where: { websiteId: { in: websiteIds } } });
+ await prisma.website.deleteMany({ where: { id: { in: websiteIds } } });
+
+ console.log(' Cleared existing demo data');
+}
+
+interface SiteGeneratorConfig {
+ name: string;
+ domain: string;
+ sessionsPerDay: number;
+ getSiteConfig: () => ReturnType;
+ getJourney: () => string[];
+ revenueConfigs?: RevenueConfig[];
+}
+
+async function generateSiteData(
+ prisma: PrismaClient,
+ config: SiteGeneratorConfig,
+ days: Date[],
+ adminUserId: string,
+ verbose: boolean,
+): Promise<{ sessions: number; events: number; eventData: number; revenue: number }> {
+ console.log(`\nGenerating data for ${config.name}...`);
+
+ const websiteId = await createWebsite(prisma, config.name, config.domain, adminUserId);
+ console.log(` Created website: ${config.name} (${websiteId})`);
+
+ const siteConfig = config.getSiteConfig();
+
+ const allSessions: SessionData[] = [];
+ const allEvents: EventData[] = [];
+ const allEventData: EventDataEntry[] = [];
+ const allRevenue: RevenueData[] = [];
+
+ for (let dayIndex = 0; dayIndex < days.length; dayIndex++) {
+ const day = days[dayIndex];
+ const sessionCount = getSessionCountForDay(config.sessionsPerDay, day);
+ const sessions = createSessions(websiteId, day, sessionCount);
+
+ for (const session of sessions) {
+ const journey = config.getJourney();
+ const { events, eventDataEntries } = generateEventsForSession(session, siteConfig, journey);
+
+ allSessions.push(session);
+ allEvents.push(...events);
+ allEventData.push(...eventDataEntries);
+
+ if (config.revenueConfigs) {
+ const revenueEntries = generateRevenueForEvents(events, config.revenueConfigs);
+ allRevenue.push(...revenueEntries);
+ }
+ }
+
+ // Show progress (every day in verbose mode, otherwise every 2 days)
+ const shouldShowProgress = verbose || dayIndex % 2 === 0 || dayIndex === days.length - 1;
+ if (shouldShowProgress) {
+ process.stdout.write(
+ `\r ${progressBar(dayIndex + 1, days.length)} Day ${dayIndex + 1}/${days.length}`,
+ );
+ }
+ }
+
+ console.log(''); // New line after progress bar
+
+ // Batch insert all data
+ console.log(` Inserting ${formatNumber(allSessions.length)} sessions...`);
+ await batchInsertSessions(prisma, allSessions as SessionCreateInput[], verbose);
+
+ console.log(` Inserting ${formatNumber(allEvents.length)} events...`);
+ await batchInsertEvents(prisma, allEvents as WebsiteEventCreateInput[], verbose);
+
+ if (allEventData.length > 0) {
+ console.log(` Inserting ${formatNumber(allEventData.length)} event data entries...`);
+ await batchInsertEventData(prisma, allEventData as EventDataCreateInput[], verbose);
+ }
+
+ if (allRevenue.length > 0) {
+ console.log(` Inserting ${formatNumber(allRevenue.length)} revenue entries...`);
+ await batchInsertRevenue(prisma, allRevenue as RevenueCreateInput[], verbose);
+ }
+
+ return {
+ sessions: allSessions.length,
+ events: allEvents.length,
+ eventData: allEventData.length,
+ revenue: allRevenue.length,
+ };
+}
+
+function createPrismaClient(): PrismaClient {
+ const url = process.env.DATABASE_URL;
+ if (!url) {
+ throw new Error(
+ 'DATABASE_URL environment variable is not set.\n' +
+ 'Please set DATABASE_URL in your .env file or environment.\n' +
+ 'Example: DATABASE_URL=postgresql://user:password@localhost:5432/umami',
+ );
+ }
+
+ let schema: string | undefined;
+ try {
+ const connectionUrl = new URL(url);
+ schema = connectionUrl.searchParams.get('schema') ?? undefined;
+ } catch {
+ throw new Error(
+ 'DATABASE_URL is not a valid URL.\n' +
+ 'Expected format: postgresql://user:password@host:port/database\n' +
+ `Received: ${url.substring(0, 30)}...`,
+ );
+ }
+
+ const adapter = new PrismaPg({ connectionString: url }, { schema });
+
+ return new PrismaClient({
+ adapter,
+ errorFormat: 'pretty',
+ });
+}
+
+export async function seed(config: SeedConfig): Promise {
+ const prisma = createPrismaClient();
+
+ try {
+ const endDate = new Date();
+ const startDate = subDays(endDate, config.days);
+ const days = generateDatesBetween(startDate, endDate);
+
+ console.log(`\nSeed Configuration:`);
+ console.log(
+ ` Date range: ${startDate.toISOString().split('T')[0]} to ${endDate.toISOString().split('T')[0]}`,
+ );
+ console.log(` Days: ${days.length}`);
+ console.log(` Clear existing: ${config.clear}`);
+
+ if (config.clear) {
+ await clearDemoData(prisma);
+ }
+
+ // Find admin user to own the demo websites
+ const adminUserId = await findAdminUser(prisma);
+ console.log(` Using admin user: ${adminUserId}`);
+
+ // Generate Blog site (low traffic)
+ const blogResults = await generateSiteData(
+ prisma,
+ {
+ name: BLOG_WEBSITE_NAME,
+ domain: BLOG_WEBSITE_DOMAIN,
+ sessionsPerDay: BLOG_SESSIONS_PER_DAY,
+ getSiteConfig: getBlogSiteConfig,
+ getJourney: getBlogJourney,
+ },
+ days,
+ adminUserId,
+ config.verbose,
+ );
+
+ // Generate SaaS site (high traffic)
+ const saasResults = await generateSiteData(
+ prisma,
+ {
+ name: SAAS_WEBSITE_NAME,
+ domain: SAAS_WEBSITE_DOMAIN,
+ sessionsPerDay: SAAS_SESSIONS_PER_DAY,
+ getSiteConfig: getSaasSiteConfig,
+ getJourney: getSaasJourney,
+ revenueConfigs: saasRevenueConfigs,
+ },
+ days,
+ adminUserId,
+ config.verbose,
+ );
+
+ const result: SeedResult = {
+ websites: 2,
+ sessions: blogResults.sessions + saasResults.sessions,
+ events: blogResults.events + saasResults.events,
+ eventData: blogResults.eventData + saasResults.eventData,
+ revenue: blogResults.revenue + saasResults.revenue,
+ };
+
+ console.log(`\n${'─'.repeat(50)}`);
+ console.log(`Seed Complete!`);
+ console.log(`${'─'.repeat(50)}`);
+ console.log(` Websites: ${formatNumber(result.websites)}`);
+ console.log(` Sessions: ${formatNumber(result.sessions)}`);
+ console.log(` Events: ${formatNumber(result.events)}`);
+ console.log(` Event Data: ${formatNumber(result.eventData)}`);
+ console.log(` Revenue: ${formatNumber(result.revenue)}`);
+ console.log(`${'─'.repeat(50)}\n`);
+
+ return result;
+ } finally {
+ await prisma.$disconnect();
+ }
+}
diff --git a/scripts/seed/sites/blog.ts b/scripts/seed/sites/blog.ts
new file mode 100644
index 00000000..e60b8b95
--- /dev/null
+++ b/scripts/seed/sites/blog.ts
@@ -0,0 +1,108 @@
+import { weightedRandom, type WeightedOption } from '../utils.js';
+import type {
+ SiteConfig,
+ JourneyConfig,
+ PageConfig,
+ CustomEventConfig,
+} from '../generators/events.js';
+
+export const BLOG_WEBSITE_NAME = 'Demo Blog';
+export const BLOG_WEBSITE_DOMAIN = 'blog.example.com';
+
+const blogPosts = [
+ 'getting-started-with-analytics',
+ 'privacy-first-tracking',
+ 'understanding-your-visitors',
+ 'improving-page-performance',
+ 'seo-best-practices',
+ 'content-marketing-guide',
+ 'building-audience-trust',
+ 'data-driven-decisions',
+];
+
+export const blogPages: PageConfig[] = [
+ { path: '/', title: 'Demo Blog - Home', weight: 0.25, avgTimeOnPage: 30 },
+ { path: '/blog', title: 'Blog Posts', weight: 0.2, avgTimeOnPage: 45 },
+ { path: '/about', title: 'About Us', weight: 0.1, avgTimeOnPage: 60 },
+ { path: '/contact', title: 'Contact', weight: 0.05, avgTimeOnPage: 45 },
+ ...blogPosts.map(slug => ({
+ path: `/blog/${slug}`,
+ title: slug
+ .split('-')
+ .map(w => w.charAt(0).toUpperCase() + w.slice(1))
+ .join(' '),
+ weight: 0.05,
+ avgTimeOnPage: 180,
+ })),
+];
+
+export const blogJourneys: JourneyConfig[] = [
+ // Direct to blog post (organic search)
+ { pages: ['/blog/getting-started-with-analytics'], weight: 0.15 },
+ { pages: ['/blog/privacy-first-tracking'], weight: 0.12 },
+ { pages: ['/blog/understanding-your-visitors'], weight: 0.1 },
+
+ // Homepage bounces
+ { pages: ['/'], weight: 0.15 },
+
+ // Homepage to blog listing
+ { pages: ['/', '/blog'], weight: 0.1 },
+
+ // Homepage to blog post
+ { pages: ['/', '/blog', '/blog/seo-best-practices'], weight: 0.08 },
+ { pages: ['/', '/blog', '/blog/content-marketing-guide'], weight: 0.08 },
+
+ // About page visits
+ { pages: ['/', '/about'], weight: 0.07 },
+ { pages: ['/', '/about', '/contact'], weight: 0.05 },
+
+ // Blog post to another
+ { pages: ['/blog/improving-page-performance', '/blog/data-driven-decisions'], weight: 0.05 },
+
+ // Longer sessions
+ { pages: ['/', '/blog', '/blog/building-audience-trust', '/about'], weight: 0.05 },
+];
+
+export const blogCustomEvents: CustomEventConfig[] = [
+ {
+ name: 'newsletter_signup',
+ weight: 0.03,
+ pages: ['/', '/blog'],
+ },
+ {
+ name: 'share_click',
+ weight: 0.05,
+ pages: blogPosts.map(slug => `/blog/${slug}`),
+ data: {
+ platform: ['twitter', 'linkedin', 'facebook', 'copy_link'],
+ },
+ },
+ {
+ name: 'scroll_depth',
+ weight: 0.2,
+ pages: blogPosts.map(slug => `/blog/${slug}`),
+ data: {
+ depth: [25, 50, 75, 100],
+ },
+ },
+];
+
+export function getBlogSiteConfig(): SiteConfig {
+ return {
+ hostname: BLOG_WEBSITE_DOMAIN,
+ pages: blogPages,
+ journeys: blogJourneys,
+ customEvents: blogCustomEvents,
+ };
+}
+
+export function getBlogJourney(): string[] {
+ const journeyWeights: WeightedOption[] = blogJourneys.map(j => ({
+ value: j.pages,
+ weight: j.weight,
+ }));
+
+ return weightedRandom(journeyWeights);
+}
+
+export const BLOG_SESSIONS_PER_DAY = 3; // ~90 sessions per month
diff --git a/scripts/seed/sites/saas.ts b/scripts/seed/sites/saas.ts
new file mode 100644
index 00000000..133895af
--- /dev/null
+++ b/scripts/seed/sites/saas.ts
@@ -0,0 +1,185 @@
+import { weightedRandom, type WeightedOption } from '../utils.js';
+import type {
+ SiteConfig,
+ JourneyConfig,
+ PageConfig,
+ CustomEventConfig,
+} from '../generators/events.js';
+import type { RevenueConfig } from '../generators/revenue.js';
+
+export const SAAS_WEBSITE_NAME = 'Demo SaaS';
+export const SAAS_WEBSITE_DOMAIN = 'app.example.com';
+
+const docsSections = [
+ 'getting-started',
+ 'installation',
+ 'configuration',
+ 'api-reference',
+ 'integrations',
+];
+
+const blogPosts = [
+ 'announcing-v2',
+ 'customer-success-story',
+ 'product-roadmap',
+ 'security-best-practices',
+];
+
+export const saasPages: PageConfig[] = [
+ { path: '/', title: 'Demo SaaS - Analytics Made Simple', weight: 0.2, avgTimeOnPage: 45 },
+ { path: '/features', title: 'Features', weight: 0.15, avgTimeOnPage: 90 },
+ { path: '/pricing', title: 'Pricing', weight: 0.15, avgTimeOnPage: 120 },
+ { path: '/docs', title: 'Documentation', weight: 0.1, avgTimeOnPage: 60 },
+ { path: '/blog', title: 'Blog', weight: 0.05, avgTimeOnPage: 45 },
+ { path: '/signup', title: 'Sign Up', weight: 0.08, avgTimeOnPage: 90 },
+ { path: '/login', title: 'Login', weight: 0.05, avgTimeOnPage: 30 },
+ { path: '/demo', title: 'Request Demo', weight: 0.05, avgTimeOnPage: 60 },
+ ...docsSections.map(slug => ({
+ path: `/docs/${slug}`,
+ title: `Docs: ${slug
+ .split('-')
+ .map(w => w.charAt(0).toUpperCase() + w.slice(1))
+ .join(' ')}`,
+ weight: 0.02,
+ avgTimeOnPage: 180,
+ })),
+ ...blogPosts.map(slug => ({
+ path: `/blog/${slug}`,
+ title: slug
+ .split('-')
+ .map(w => w.charAt(0).toUpperCase() + w.slice(1))
+ .join(' '),
+ weight: 0.02,
+ avgTimeOnPage: 150,
+ })),
+];
+
+export const saasJourneys: JourneyConfig[] = [
+ // Conversion funnel
+ { pages: ['/', '/features', '/pricing', '/signup'], weight: 0.12 },
+ { pages: ['/', '/pricing', '/signup'], weight: 0.1 },
+ { pages: ['/pricing', '/signup'], weight: 0.08 },
+
+ // Feature exploration
+ { pages: ['/', '/features'], weight: 0.1 },
+ { pages: ['/', '/features', '/pricing'], weight: 0.08 },
+
+ // Documentation users
+ { pages: ['/docs', '/docs/getting-started'], weight: 0.08 },
+ { pages: ['/docs/getting-started', '/docs/installation', '/docs/configuration'], weight: 0.06 },
+ { pages: ['/docs/api-reference'], weight: 0.05 },
+
+ // Blog readers
+ { pages: ['/blog/announcing-v2'], weight: 0.05 },
+ { pages: ['/blog/customer-success-story'], weight: 0.04 },
+
+ // Returning users
+ { pages: ['/login'], weight: 0.08 },
+
+ // Bounces
+ { pages: ['/'], weight: 0.08 },
+ { pages: ['/pricing'], weight: 0.05 },
+
+ // Demo requests
+ { pages: ['/', '/demo'], weight: 0.03 },
+];
+
+export const saasCustomEvents: CustomEventConfig[] = [
+ {
+ name: 'signup_started',
+ weight: 0.6,
+ pages: ['/signup'],
+ data: {
+ plan: ['free', 'pro', 'enterprise'],
+ },
+ },
+ {
+ name: 'signup_completed',
+ weight: 0.3,
+ pages: ['/signup'],
+ data: {
+ plan: ['free', 'pro', 'enterprise'],
+ method: ['email', 'google', 'github'],
+ },
+ },
+ {
+ name: 'purchase',
+ weight: 0.15,
+ pages: ['/signup', '/pricing'],
+ data: {
+ plan: ['pro', 'enterprise'],
+ billing: ['monthly', 'annual'],
+ revenue: [29, 49, 99, 299],
+ currency: ['USD'],
+ },
+ },
+ {
+ name: 'demo_requested',
+ weight: 0.5,
+ pages: ['/demo'],
+ data: {
+ company_size: ['1-10', '11-50', '51-200', '200+'],
+ },
+ },
+ {
+ name: 'feature_viewed',
+ weight: 0.3,
+ pages: ['/features'],
+ data: {
+ feature: ['analytics', 'reports', 'api', 'integrations', 'privacy'],
+ },
+ },
+ {
+ name: 'cta_click',
+ weight: 0.15,
+ pages: ['/', '/features', '/pricing'],
+ data: {
+ button: ['hero_signup', 'nav_signup', 'pricing_cta', 'footer_cta'],
+ },
+ },
+ {
+ name: 'docs_search',
+ weight: 0.2,
+ pages: ['/docs', ...docsSections.map(s => `/docs/${s}`)],
+ data: {
+ query_type: ['api', 'setup', 'integration', 'troubleshooting'],
+ },
+ },
+];
+
+export const saasRevenueConfigs: RevenueConfig[] = [
+ {
+ eventName: 'purchase',
+ minAmount: 29,
+ maxAmount: 29,
+ currency: 'USD',
+ weight: 0.7, // 70% Pro plan
+ },
+ {
+ eventName: 'purchase',
+ minAmount: 299,
+ maxAmount: 299,
+ currency: 'USD',
+ weight: 0.3, // 30% Enterprise
+ },
+];
+
+export function getSaasSiteConfig(): SiteConfig {
+ return {
+ hostname: SAAS_WEBSITE_DOMAIN,
+ pages: saasPages,
+ journeys: saasJourneys,
+ customEvents: saasCustomEvents,
+ };
+}
+
+export function getSaasJourney(): string[] {
+ const journeyWeights: WeightedOption[] = saasJourneys.map(j => ({
+ value: j.pages,
+ weight: j.weight,
+ }));
+
+ return weightedRandom(journeyWeights);
+}
+
+export const SAAS_SESSIONS_PER_DAY = 500;
diff --git a/scripts/seed/utils.ts b/scripts/seed/utils.ts
new file mode 100644
index 00000000..7b44261e
--- /dev/null
+++ b/scripts/seed/utils.ts
@@ -0,0 +1,85 @@
+import { v4 as uuidv4 } from 'uuid';
+
+export interface WeightedOption {
+ value: T;
+ weight: number;
+}
+
+export function weightedRandom(options: WeightedOption[]): T {
+ const totalWeight = options.reduce((sum, opt) => sum + opt.weight, 0);
+ let random = Math.random() * totalWeight;
+
+ for (const option of options) {
+ random -= option.weight;
+ if (random <= 0) {
+ return option.value;
+ }
+ }
+
+ return options[options.length - 1].value;
+}
+
+export function randomInt(min: number, max: number): number {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+}
+
+export function randomFloat(min: number, max: number): number {
+ return Math.random() * (max - min) + min;
+}
+
+export function pickRandom(array: T[]): T {
+ return array[Math.floor(Math.random() * array.length)];
+}
+
+export function shuffleArray(array: T[]): T[] {
+ const result = [...array];
+ for (let i = result.length - 1; i > 0; i--) {
+ const j = Math.floor(Math.random() * (i + 1));
+ [result[i], result[j]] = [result[j], result[i]];
+ }
+ return result;
+}
+
+export function uuid(): string {
+ return uuidv4();
+}
+
+export function generateDatesBetween(startDate: Date, endDate: Date): Date[] {
+ const dates: Date[] = [];
+ const current = new Date(startDate);
+ current.setHours(0, 0, 0, 0);
+
+ while (current <= endDate) {
+ dates.push(new Date(current));
+ current.setDate(current.getDate() + 1);
+ }
+
+ return dates;
+}
+
+export function addHours(date: Date, hours: number): Date {
+ return new Date(date.getTime() + hours * 60 * 60 * 1000);
+}
+
+export function addMinutes(date: Date, minutes: number): Date {
+ return new Date(date.getTime() + minutes * 60 * 1000);
+}
+
+export function addSeconds(date: Date, seconds: number): Date {
+ return new Date(date.getTime() + seconds * 1000);
+}
+
+export function subDays(date: Date, days: number): Date {
+ return new Date(date.getTime() - days * 24 * 60 * 60 * 1000);
+}
+
+export function formatNumber(num: number): string {
+ return num.toLocaleString();
+}
+
+export function progressBar(current: number, total: number, width = 30): string {
+ const percent = current / total;
+ const filled = Math.round(width * percent);
+ const empty = width - filled;
+ return `[${'█'.repeat(filled)}${'░'.repeat(empty)}] ${Math.round(percent * 100)}%`;
+}
diff --git a/src/app/(main)/links/LinksTable.tsx b/src/app/(main)/links/LinksTable.tsx
index 2ce4ba49..a3b4a86a 100644
--- a/src/app/(main)/links/LinksTable.tsx
+++ b/src/app/(main)/links/LinksTable.tsx
@@ -21,7 +21,11 @@ export function LinksTable(props: DataTableProps) {
{({ slug }: any) => {
const url = getSlugUrl(slug);
- return {url};
+ return (
+
+ {url}
+
+ );
}}
diff --git a/src/app/(main)/links/[linkId]/LinkHeader.tsx b/src/app/(main)/links/[linkId]/LinkHeader.tsx
index b7c70f07..a84a6260 100644
--- a/src/app/(main)/links/[linkId]/LinkHeader.tsx
+++ b/src/app/(main)/links/[linkId]/LinkHeader.tsx
@@ -1,4 +1,4 @@
-import { Icon, Text } from '@umami/react-zen';
+import { IconLabel } from '@umami/react-zen';
import { LinkButton } from '@/components/common/LinkButton';
import { PageHeader } from '@/components/common/PageHeader';
import { useLink, useMessages, useSlug } from '@/components/hooks';
@@ -10,12 +10,9 @@ export function LinkHeader() {
const link = useLink();
return (
- } marginBottom="3">
-
-
-
-
- {formatMessage(labels.view)}
+ }>
+
+ } label={formatMessage(labels.view)} />
);
diff --git a/src/app/(main)/pixels/PixelsTable.tsx b/src/app/(main)/pixels/PixelsTable.tsx
index 48f2121b..48a84589 100644
--- a/src/app/(main)/pixels/PixelsTable.tsx
+++ b/src/app/(main)/pixels/PixelsTable.tsx
@@ -21,7 +21,11 @@ export function PixelsTable(props: DataTableProps) {
{({ slug }: any) => {
const url = getSlugUrl(slug);
- return {url};
+ return (
+
+ {url}
+
+ );
}}
diff --git a/src/app/(main)/pixels/[pixelId]/PixelHeader.tsx b/src/app/(main)/pixels/[pixelId]/PixelHeader.tsx
index 8171aaf1..c771687f 100644
--- a/src/app/(main)/pixels/[pixelId]/PixelHeader.tsx
+++ b/src/app/(main)/pixels/[pixelId]/PixelHeader.tsx
@@ -1,4 +1,4 @@
-import { Icon, Text } from '@umami/react-zen';
+import { IconLabel } from '@umami/react-zen';
import { LinkButton } from '@/components/common/LinkButton';
import { PageHeader } from '@/components/common/PageHeader';
import { useMessages, usePixel, useSlug } from '@/components/hooks';
@@ -10,12 +10,9 @@ export function PixelHeader() {
const pixel = usePixel();
return (
- } marginBottom="3">
-
-
-
-
- {formatMessage(labels.view)}
+ }>
+
+ } label={formatMessage(labels.view)} />
);
diff --git a/src/app/(main)/websites/WebsitesDataTable.tsx b/src/app/(main)/websites/WebsitesDataTable.tsx
index 2203262b..3f0a6b9c 100644
--- a/src/app/(main)/websites/WebsitesDataTable.tsx
+++ b/src/app/(main)/websites/WebsitesDataTable.tsx
@@ -1,6 +1,8 @@
import Link from 'next/link';
import { DataGrid } from '@/components/common/DataGrid';
import { useLoginQuery, useNavigation, useUserWebsitesQuery } from '@/components/hooks';
+import { Favicon } from '@/index';
+import { Icon, Row } from '@umami/react-zen';
import { WebsitesTable } from './WebsitesTable';
export function WebsitesDataTable({
@@ -21,7 +23,12 @@ export function WebsitesDataTable({
const { renderUrl } = useNavigation();
const renderLink = (row: any) => (
- {row.name}
+
+
+
+
+ {row.name}
+
);
return (
diff --git a/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx b/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx
index 7db22912..7dd1d771 100644
--- a/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx
+++ b/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx
@@ -13,12 +13,18 @@ export function WebsiteHeader({ showActions }: { showActions?: boolean }) {
const { renderUrl, pathname } = useNavigation();
const isSettings = pathname.endsWith('/settings');
+ const { formatMessage, labels } = useMessages();
+
if (isSettings) {
return null;
}
return (
- } marginBottom="3">
+ }
+ titleHref={renderUrl(`/websites/${website.id}`, false)}
+ >
@@ -29,7 +35,7 @@ export function WebsiteHeader({ showActions }: { showActions?: boolean }) {
- Edit
+ {formatMessage(labels.edit)}
)}
diff --git a/src/app/api/auth/login/route.ts b/src/app/api/auth/login/route.ts
index 7c2b2fed..17ca2f7d 100644
--- a/src/app/api/auth/login/route.ts
+++ b/src/app/api/auth/login/route.ts
@@ -7,7 +7,7 @@ import { checkPassword } from '@/lib/password';
import redis from '@/lib/redis';
import { parseRequest } from '@/lib/request';
import { json, unauthorized } from '@/lib/response';
-import { getUserByUsername } from '@/queries/prisma';
+import { getAllUserTeams, getUserByUsername } from '@/queries/prisma';
export async function POST(request: Request) {
const schema = z.object({
@@ -39,8 +39,10 @@ export async function POST(request: Request) {
token = createSecureToken({ userId: user.id, role }, secret());
}
+ const teams = await getAllUserTeams(id);
+
return json({
token,
- user: { id, username, role, createdAt, isAdmin: role === ROLES.admin },
+ user: { id, username, role, createdAt, isAdmin: role === ROLES.admin, teams },
});
}
diff --git a/src/app/api/batch/route.ts b/src/app/api/batch/route.ts
index aae14c96..46e8b3c3 100644
--- a/src/app/api/batch/route.ts
+++ b/src/app/api/batch/route.ts
@@ -17,6 +17,7 @@ export async function POST(request: Request) {
const errors = [];
let index = 0;
+ let cache = null;
for (const data of body) {
// Recreate a fresh Request since `new Request(request)` will have the following error:
// > Cannot read private member #state from an object whose class did not declare it
@@ -33,9 +34,12 @@ export async function POST(request: Request) {
});
const response = await send.POST(newRequest);
+ const responseJson = await response.json();
if (!response.ok) {
- errors.push({ index, response: await response.json() });
+ errors.push({ index, response: responseJson });
+ } else {
+ cache ??= responseJson.cache;
}
index++;
@@ -46,6 +50,7 @@ export async function POST(request: Request) {
processed: body.length - errors.length,
errors: errors.length,
details: errors,
+ cache,
});
} catch (e) {
return serverError(e);
diff --git a/src/app/api/send/route.ts b/src/app/api/send/route.ts
index d1a7b90b..a0becc2a 100644
--- a/src/app/api/send/route.ts
+++ b/src/app/api/send/route.ts
@@ -41,6 +41,9 @@ const schema = z.object({
userAgent: z.string().optional(),
timestamp: z.coerce.number().int().optional(),
id: z.string().optional(),
+ browser: z.string().optional(),
+ os: z.string().optional(),
+ device: z.string().optional(),
})
.refine(
data => {
diff --git a/src/app/login/LoginForm.tsx b/src/app/login/LoginForm.tsx
index 63711795..26d78dd5 100644
--- a/src/app/login/LoginForm.tsx
+++ b/src/app/login/LoginForm.tsx
@@ -25,8 +25,7 @@ export function LoginForm() {
onSuccess: async ({ token, user }) => {
setClientAuthToken(token);
setUser(user);
-
- router.push('/websites');
+ router.push('/');
},
});
};
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 38eda1de..6f0033df 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -2,7 +2,7 @@
import { redirect } from 'next/navigation';
import { useEffect } from 'react';
import { LAST_TEAM_CONFIG } from '@/lib/constants';
-import { getItem, removeItem } from '@/lib/storage';
+import { getItem } from '@/lib/storage';
export default function RootPage() {
useEffect(() => {
@@ -11,8 +11,6 @@ export default function RootPage() {
if (lastTeam) {
redirect(`/teams/${lastTeam}/websites`);
} else {
- removeItem(LAST_TEAM_CONFIG);
-
redirect(`/websites`);
}
}, []);
diff --git a/src/app/share/[...shareId]/SharePage.tsx b/src/app/share/[...shareId]/SharePage.tsx
index 55d3ee9f..7ed06673 100644
--- a/src/app/share/[...shareId]/SharePage.tsx
+++ b/src/app/share/[...shareId]/SharePage.tsx
@@ -1,5 +1,6 @@
'use client';
-import { Column } from '@umami/react-zen';
+import { Column, useTheme } from '@umami/react-zen';
+import { useEffect } from 'react';
import { WebsiteHeader } from '@/app/(main)/websites/[websiteId]/WebsiteHeader';
import { WebsitePage } from '@/app/(main)/websites/[websiteId]/WebsitePage';
import { WebsiteProvider } from '@/app/(main)/websites/WebsiteProvider';
@@ -10,6 +11,16 @@ import { Header } from './Header';
export function SharePage({ shareId }) {
const { shareToken, isLoading } = useShareTokenQuery(shareId);
+ const { setTheme } = useTheme();
+
+ useEffect(() => {
+ const url = new URL(window?.location?.href);
+ const theme = url.searchParams.get('theme');
+
+ if (theme === 'light' || theme === 'dark') {
+ setTheme(theme);
+ }
+ }, []);
if (isLoading || !shareToken) {
return null;
diff --git a/src/components/common/ExternalLink.tsx b/src/components/common/ExternalLink.tsx
index 6b6dbb99..dec0d16f 100644
--- a/src/components/common/ExternalLink.tsx
+++ b/src/components/common/ExternalLink.tsx
@@ -1,8 +1,13 @@
import { Icon, Row, Text } from '@umami/react-zen';
-import Link from 'next/link';
+import Link, { type LinkProps } from 'next/link';
+import type { ReactNode } from 'react';
import { ExternalLink as LinkIcon } from '@/components/icons';
-export function ExternalLink({ href, children, ...props }) {
+export function ExternalLink({
+ href,
+ children,
+ ...props
+}: LinkProps & { href: string; children: ReactNode }) {
return (
diff --git a/src/components/common/LinkButton.tsx b/src/components/common/LinkButton.tsx
index 682970e8..35292ba4 100644
--- a/src/components/common/LinkButton.tsx
+++ b/src/components/common/LinkButton.tsx
@@ -9,6 +9,7 @@ export interface LinkButtonProps extends ButtonProps {
scroll?: boolean;
variant?: any;
prefetch?: boolean;
+ asAnchor?: boolean;
children?: ReactNode;
}
@@ -19,15 +20,22 @@ export function LinkButton({
target,
prefetch,
children,
+ asAnchor,
...props
}: LinkButtonProps) {
const { dir } = useLocale();
return (
);
}
diff --git a/src/components/common/PageHeader.tsx b/src/components/common/PageHeader.tsx
index b4605150..92167888 100644
--- a/src/components/common/PageHeader.tsx
+++ b/src/components/common/PageHeader.tsx
@@ -1,5 +1,6 @@
import { Column, Grid, Heading, Icon, Row, Text } from '@umami/react-zen';
import type { ReactNode } from 'react';
+import { LinkButton } from './LinkButton';
export function PageHeader({
title,
@@ -7,6 +8,7 @@ export function PageHeader({
label,
icon,
showBorder = true,
+ titleHref,
children,
}: {
title: string;
@@ -14,6 +16,7 @@ export function PageHeader({
label?: ReactNode;
icon?: ReactNode;
showBorder?: boolean;
+ titleHref?: string;
allowEdit?: boolean;
className?: string;
children?: ReactNode;
@@ -33,7 +36,13 @@ export function PageHeader({
{icon}
)}
- {title && {title}}
+ {title && titleHref ? (
+
+ {title}
+
+ ) : (
+ title && {title}
+ )}
{description && (
@@ -41,7 +50,9 @@ export function PageHeader({
)}
- {children}
+
+ {children}
+
);
}
diff --git a/src/components/input/NavButton.tsx b/src/components/input/NavButton.tsx
index 7ea966cc..ab77ef06 100644
--- a/src/components/input/NavButton.tsx
+++ b/src/components/input/NavButton.tsx
@@ -14,6 +14,7 @@ import {
Text,
} from '@umami/react-zen';
import { ArrowRight } from 'lucide-react';
+import type { Key } from 'react';
import {
useConfig,
useLoginQuery,
@@ -33,7 +34,8 @@ import {
Users,
} from '@/components/icons';
import { Switch } from '@/components/svg';
-import { DOCS_URL } from '@/lib/constants';
+import { DOCS_URL, LAST_TEAM_CONFIG } from '@/lib/constants';
+import { removeItem } from '@/lib/storage';
export interface TeamsButtonProps {
showText?: boolean;
@@ -44,7 +46,7 @@ export function NavButton({ showText = true }: TeamsButtonProps) {
const { user } = useLoginQuery();
const { cloudMode } = useConfig();
const { formatMessage, labels } = useMessages();
- const { teamId } = useNavigation();
+ const { teamId, router } = useNavigation();
const { isMobile } = useMobile();
const team = user?.teams?.find(({ id }) => id === teamId);
const selectedKeys = new Set([teamId || 'user']);
@@ -54,7 +56,16 @@ export function NavButton({ showText = true }: TeamsButtonProps) {
return cloudMode ? `${process.env.cloudUrl}${url}` : url;
};
- const handleAction = async () => {};
+ const handleAction = async (key: Key) => {
+ if (key === 'user') {
+ removeItem(LAST_TEAM_CONFIG);
+ if (cloudMode) {
+ window.location.href = '/';
+ } else {
+ router.push('/');
+ }
+ }
+ };
return (
@@ -84,16 +95,16 @@ export function NavButton({ showText = true }: TeamsButtonProps) {
-