diff --git a/.gitignore b/.gitignore index 93e3209..c2bd592 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,6 @@ next-env.d.ts .tmp docker/ .assets + +# IDE +.idea/ diff --git a/next.config.mjs b/next.config.mjs index bf855a4..539b11e 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,7 +1,6 @@ // @ts-check import NextBundleAnalyzer from "@next/bundle-analyzer"; import { execSync } from "node:child_process"; -const withBundleAnalyzer = NextBundleAnalyzer({ enabled: process.env.ANALYZE === "true" }); /** @type {import('next').NextConfig} */ const nextConfig = { images: { @@ -51,4 +50,4 @@ const nextConfig = { }, }; -export default withBundleAnalyzer(nextConfig); +export default NextBundleAnalyzer({ enabled: process.env.ANALYZE === "true" })(nextConfig); diff --git a/package.json b/package.json index 567e1e7..be066fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "stardust", - "version": "0.7-beta", + "version": "0.8-rc", "private": true, "type": "module", "scripts": { @@ -43,14 +43,15 @@ "dockerode": "^4.0.2", "dotenv": "^16.4.5", "drizzle-orm": "^0.30.4", + "drizzle-zod": "^0.5.1", "lucide-react": "^0.358.0", "next": "15.0.0-rc.0", "next-auth": "5.0.0-beta.18", "next-themes": "^0.3.0", "node-loader": "^2.0.0", "postgres": "^3.4.4", - "react": "19.0.0-rc-4c2e457c7c-20240522", - "react-dom": "19.0.0-rc-4c2e457c7c-20240522", + "react": "19.0.0-rc-6f23540c7d-20240528", + "react-dom": "19.0.0-rc-6f23540c7d-20240528", "server-only": "^0.0.1", "sharp": "^0.33.3", "sonner": "^1.4.41", @@ -58,14 +59,15 @@ "tailwind-merge": "^2.2.2", "tailwindcss-animate": "^1.0.7", "tsx": "^4.9.1", - "ws": "^8.17.0" + "ws": "^8.17.0", + "zod": "^3.23.8" }, "devDependencies": { "@biomejs/biome": "1.7.0", "@types/node": "^20.11.30", "@types/novnc__novnc": "^1.3.5", "@types/pg": "^8.11.4", - "@types/react": "^18.3.2", + "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "autoprefixer": "^10.4.19", "drizzle-kit": "^0.21.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 796158d..bfbf2ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,61 +13,61 @@ dependencies: version: 1.4.0 '@radix-ui/react-accordion': specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-alert-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-aspect-ratio': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-avatar': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-checkbox': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-context-menu': specifier: ^2.1.5 - version: 2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-label': specifier: ^2.0.2 - version: 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-navigation-menu': specifier: ^1.1.4 - version: 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-popover': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-select': specifier: ^2.0.0 - version: 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-separator': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-slider': specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-slot': specifier: ^1.0.2 - version: 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-switch': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-tabs': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/react-tooltip': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@tanstack/react-table': specifier: ^8.16.0 - version: 8.16.0(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 8.16.0(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) '@types/dockerode': specifier: ^3.3.26 version: 3.3.26 @@ -94,19 +94,22 @@ dependencies: version: 16.4.5 drizzle-orm: specifier: ^0.30.4 - version: 0.30.4(@types/pg@8.11.4)(@types/react@18.3.2)(postgres@3.4.4)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 0.30.4(@types/pg@8.11.4)(@types/react@18.3.3)(postgres@3.4.4)(react@19.0.0-rc-6f23540c7d-20240528) + drizzle-zod: + specifier: ^0.5.1 + version: 0.5.1(drizzle-orm@0.30.4)(zod@3.23.8) lucide-react: specifier: ^0.358.0 - version: 0.358.0(react@19.0.0-rc-4c2e457c7c-20240522) + version: 0.358.0(react@19.0.0-rc-6f23540c7d-20240528) next: specifier: 15.0.0-rc.0 - version: 15.0.0-rc.0(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 15.0.0-rc.0(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) next-auth: specifier: 5.0.0-beta.18 - version: 5.0.0-beta.18(next@15.0.0-rc.0)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 5.0.0-beta.18(next@15.0.0-rc.0)(react@19.0.0-rc-6f23540c7d-20240528) next-themes: specifier: ^0.3.0 - version: 0.3.0(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 0.3.0(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) node-loader: specifier: ^2.0.0 version: 2.0.0(webpack@5.91.0) @@ -114,11 +117,11 @@ dependencies: specifier: ^3.4.4 version: 3.4.4 react: - specifier: 19.0.0-rc-4c2e457c7c-20240522 - version: 19.0.0-rc-4c2e457c7c-20240522 + specifier: 19.0.0-rc-6f23540c7d-20240528 + version: 19.0.0-rc-6f23540c7d-20240528 react-dom: - specifier: 19.0.0-rc-4c2e457c7c-20240522 - version: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + specifier: 19.0.0-rc-6f23540c7d-20240528 + version: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) server-only: specifier: ^0.0.1 version: 0.0.1 @@ -127,10 +130,10 @@ dependencies: version: 0.33.3 sonner: specifier: ^1.4.41 - version: 1.4.41(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) + version: 1.4.41(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) swr: specifier: ^2.2.5 - version: 2.2.5(react@19.0.0-rc-4c2e457c7c-20240522) + version: 2.2.5(react@19.0.0-rc-6f23540c7d-20240528) tailwind-merge: specifier: ^2.2.2 version: 2.2.2 @@ -143,6 +146,9 @@ dependencies: ws: specifier: ^8.17.0 version: 8.17.0 + zod: + specifier: ^3.23.8 + version: 3.23.8 devDependencies: '@biomejs/biome': @@ -158,8 +164,8 @@ devDependencies: specifier: ^8.11.4 version: 8.11.4 '@types/react': - specifier: ^18.3.2 - version: 18.3.2 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 @@ -968,15 +974,15 @@ packages: '@floating-ui/utils': 0.2.1 dev: false - /@floating-ui/react-dom@2.0.8(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@floating-ui/react-dom@2.0.8(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: '@floating-ui/dom': 1.6.3 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false /@floating-ui/utils@0.2.1: @@ -1481,7 +1487,7 @@ packages: '@babel/runtime': 7.24.1 dev: false - /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} peerDependencies: '@types/react': '*' @@ -1496,21 +1502,21 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==} peerDependencies: '@types/react': '*' @@ -1525,18 +1531,18 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -1550,14 +1556,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-aspect-ratio@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-aspect-ratio@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-fXR5kbMan9oQqMuacfzlGG/SQMcmMlZ4wrvpckv8SgUulD0MMpspxJrxg/Gp/ISV3JfV1AeSWTYK9GvxA4ySwA==} peerDependencies: '@types/react': '*' @@ -1571,14 +1577,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==} peerDependencies: '@types/react': '*' @@ -1592,17 +1598,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} peerDependencies: '@types/react': '*' @@ -1617,20 +1623,20 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: '@types/react': '*' @@ -1645,20 +1651,20 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -1672,17 +1678,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -1692,11 +1698,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==} peerDependencies: '@types/react': '*' @@ -1711,18 +1717,18 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -1732,11 +1738,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: '@types/react': '*' @@ -1751,26 +1757,26 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 aria-hidden: 1.2.4 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-direction@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-direction@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -1780,11 +1786,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -1799,17 +1805,17 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -1824,19 +1830,19 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -1846,11 +1852,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -1864,16 +1870,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -1883,12 +1889,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: '@types/react': '*' @@ -1902,14 +1908,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -1924,30 +1930,30 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 aria-hidden: 1.2.4 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-navigation-menu@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-navigation-menu@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-Cc+seCS3PmWmjI51ufGG7zp1cAAIRqHVw7C9LOA2TZ+R4hG6rDvHcTqIsEEFLmZO3zNVH72jOOE7kKNy8W+RtA==} peerDependencies: '@types/react': '*' @@ -1962,26 +1968,26 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-popover@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-popover@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' @@ -1996,27 +2002,27 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 aria-hidden: 1.2.4 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -2030,23 +2036,23 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@floating-ui/react-dom': 2.0.8(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + '@floating-ui/react-dom': 2.0.8(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) '@radix-ui/rect': 1.0.1 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -2060,14 +2066,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -2081,15 +2087,15 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -2103,14 +2109,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -2125,21 +2131,21 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-select@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-select@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} peerDependencies: '@types/react': '*' @@ -2155,32 +2161,32 @@ packages: '@babel/runtime': 7.24.1 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 aria-hidden: 1.2.4 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-separator@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -2194,14 +2200,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-slider@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-slider@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==} peerDependencies: '@types/react': '*' @@ -2217,22 +2223,22 @@ packages: '@babel/runtime': 7.24.1 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-slot@1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -2242,12 +2248,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-switch@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -2262,19 +2268,19 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -2289,20 +2295,20 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' @@ -2317,24 +2323,24 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -2344,11 +2350,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -2358,12 +2364,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -2373,12 +2379,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -2388,11 +2394,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-use-previous@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -2402,11 +2408,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -2417,11 +2423,11 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@radix-ui/rect': 1.0.1 - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-use-size@1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -2431,12 +2437,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -2450,11 +2456,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - '@types/react': 18.3.2 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false /@radix-ui/rect@1.0.1: @@ -2469,7 +2475,7 @@ packages: tslib: 2.6.2 dev: false - /@tanstack/react-table@8.16.0(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /@tanstack/react-table@8.16.0(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-rKRjnt8ostqN2fercRVOIH/dq7MAmOENCMvVlKx6P9Iokhh6woBGnIZEkqsY/vEJf1jN3TqLOb34xQGLVRuhAg==} engines: {node: '>=12'} peerDependencies: @@ -2477,8 +2483,8 @@ packages: react-dom: '>=16.8' dependencies: '@tanstack/table-core': 8.16.0 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false /@tanstack/table-core@8.16.0: @@ -2583,10 +2589,10 @@ packages: /@types/react-dom@18.3.0: resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.3 - /@types/react@18.3.2: - resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -2843,8 +2849,8 @@ packages: chalk: 4.1.2 invariant: 2.2.4 pretty-format: 24.9.0 - zod: 3.22.4 - zod-validation-error: 2.1.0(zod@3.22.4) + zod: 3.23.8 + zod-validation-error: 2.1.0(zod@3.23.8) dev: false /balanced-match@1.0.2: @@ -2928,8 +2934,8 @@ packages: /caniuse-lite@1.0.30001600: resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} - /caniuse-lite@1.0.30001621: - resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} + /caniuse-lite@1.0.30001625: + resolution: {integrity: sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==} dev: false /chalk@4.1.2: @@ -3177,12 +3183,12 @@ packages: glob: 8.1.0 hanji: 0.0.5 json-diff: 0.9.0 - zod: 3.22.4 + zod: 3.23.8 transitivePeerDependencies: - supports-color dev: true - /drizzle-orm@0.30.4(@types/pg@8.11.4)(@types/react@18.3.2)(postgres@3.4.4)(react@19.0.0-rc-4c2e457c7c-20240522): + /drizzle-orm@0.30.4(@types/pg@8.11.4)(@types/react@18.3.3)(postgres@3.4.4)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-kWoSMGbrOFkmkAweLTFtHJMpN+nwhx89q0mLELqT2aEU+1szNV8jrnBmJwZ0WGNp7J7yQn/ezEtxBI/qzTSElQ==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' @@ -3260,9 +3266,19 @@ packages: optional: true dependencies: '@types/pg': 8.11.4 - '@types/react': 18.3.2 + '@types/react': 18.3.3 postgres: 3.4.4 - react: 19.0.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 + dev: false + + /drizzle-zod@0.5.1(drizzle-orm@0.30.4)(zod@3.23.8): + resolution: {integrity: sha512-C/8bvzUH/zSnVfwdSibOgFjLhtDtbKYmkbPbUCq46QZyZCH6kODIMSOgZ8R7rVjoI+tCj3k06MRJMDqsIeoS4A==} + peerDependencies: + drizzle-orm: '>=0.23.13' + zod: '*' + dependencies: + drizzle-orm: 0.30.4(@types/pg@8.11.4)(@types/react@18.3.3)(postgres@3.4.4)(react@19.0.0-rc-6f23540c7d-20240528) + zod: 3.23.8 dev: false /duplexer@0.1.2: @@ -3833,12 +3849,12 @@ packages: es5-ext: 0.10.64 dev: true - /lucide-react@0.358.0(react@19.0.0-rc-4c2e457c7c-20240522): + /lucide-react@0.358.0(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-rBSptRjZTMBm24zsFhR6pK/NgbT18JegZGKcH4+1H3+UigMSRpeoWLtR/fAwMYwYnlJOZB+y8WpeHne9D6X6Kg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: - react: 19.0.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false /memoizee@0.4.15: @@ -3932,7 +3948,7 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: false - /next-auth@5.0.0-beta.18(next@15.0.0-rc.0)(react@19.0.0-rc-4c2e457c7c-20240522): + /next-auth@5.0.0-beta.18(next@15.0.0-rc.0)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-x55L8wZb8PcPGCYA3e/l9tdpd7YL3FDuhas4W8pxq3PjrWJ9OoDxNN0otK9axJamJBbBgjfzTJjVQB6hXoe0ZQ==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 @@ -3949,25 +3965,25 @@ packages: optional: true dependencies: '@auth/core': 0.31.0 - next: 15.0.0-rc.0(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522) - react: 19.0.0-rc-4c2e457c7c-20240522 + next: 15.0.0-rc.0(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528) + react: 19.0.0-rc-6f23540c7d-20240528 dev: false - /next-themes@0.3.0(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /next-themes@0.3.0(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} peerDependencies: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 dependencies: - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false /next-tick@1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: true - /next@15.0.0-rc.0(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /next@15.0.0-rc.0(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-IWcCvxUSCAuOK5gig4+9yiyt/dLKpIa+WT01Qcx4CBE4TtwJljyTDnCVVn64jDZ4qmSzsaEYXpb4DTI8qbk03A==} engines: {node: '>=18.17.0'} hasBin: true @@ -3992,12 +4008,12 @@ packages: '@swc/helpers': 0.5.11 babel-plugin-react-compiler: 0.0.0-experimental-592953e-20240517 busboy: 1.6.0 - caniuse-lite: 1.0.30001621 + caniuse-lite: 1.0.30001625 graceful-fs: 4.2.11 postcss: 8.4.31 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) - styled-jsx: 5.1.3(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) + styled-jsx: 5.1.3(react@19.0.0-rc-6f23540c7d-20240528) optionalDependencies: '@next/swc-darwin-arm64': 15.0.0-rc.0 '@next/swc-darwin-x64': 15.0.0-rc.0 @@ -4263,20 +4279,20 @@ packages: safe-buffer: 5.2.1 dev: false - /react-dom@19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522): - resolution: {integrity: sha512-HXPEwX9ibB3OSzaU03Bh6uw7QFulRzyLJM3x+3WoF2j++D9tl2PoqiN6+ctH5Nrh6X11+oxH7Eq3RqkQhbQqKw==} + /react-dom@19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528): + resolution: {integrity: sha512-TPZ7f0MYH/y51jHuPx0UdMH+WdZ7xX1UOcydOZWpjbjs2GXSgJFV2ilIm7FUSinHB6DSoGFVxhPqm1sa63IkbA==} peerDependencies: - react: 19.0.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 dependencies: - react: 19.0.0-rc-4c2e457c7c-20240522 - scheduler: 0.25.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 + scheduler: 0.25.0-rc-6f23540c7d-20240528 dev: false /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: false - /react-remove-scroll-bar@2.3.6(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} engines: {node: '>=10'} peerDependencies: @@ -4286,13 +4302,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-style-singleton: 2.2.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) tslib: 2.6.2 dev: false - /react-remove-scroll@2.5.5(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /react-remove-scroll@2.5.5(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -4302,16 +4318,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - react-style-singleton: 2.2.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) - use-sidecar: 1.1.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522) + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528) dev: false - /react-style-singleton@2.2.1(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /react-style-singleton@2.2.1(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -4321,15 +4337,15 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.3 get-nonce: 1.0.1 invariant: 2.2.4 - react: 19.0.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 tslib: 2.6.2 dev: false - /react@19.0.0-rc-4c2e457c7c-20240522: - resolution: {integrity: sha512-jA9abMci6Z9xYDh07shOajSM5/wII9/lo8Cshk6zXo2Y6nc4LIvXqhjk0yOfiMlwMGEc+Ee1veGwa4ixjnzBJA==} + /react@19.0.0-rc-6f23540c7d-20240528: + resolution: {integrity: sha512-fo4drQwFP/R7ZJF5USwhn8YccEqOiH9C1ci5Jg7iM2+5pId8Bjcno+dDT/Cv5iYGmgwZzQIa+EwczD5IHEsmQA==} engines: {node: '>=0.10.0'} dev: false @@ -4385,8 +4401,8 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false - /scheduler@0.25.0-rc-4c2e457c7c-20240522: - resolution: {integrity: sha512-Vyzc3lN/cMuxvrMKtToIytTL6P2Xiz0zQlY+0KioteRSSgNORZ5gQX7MYEHpQ0QUm44mcpkZxSdZsI7YYNLpsQ==} + /scheduler@0.25.0-rc-6f23540c7d-20240528: + resolution: {integrity: sha512-5V2Aa+F16Qe+kT1zjwxPzBRoF6/xjw+LU9L2c1j2Dzw2GTiLEV8DxG3RAkRN8Lm5jlqbyK9ivRH3GGtipy+a6Q==} dev: false /schema-utils@3.3.0: @@ -4519,14 +4535,14 @@ packages: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true - /sonner@1.4.41(react-dom@19.0.0-rc-4c2e457c7c-20240522)(react@19.0.0-rc-4c2e457c7c-20240522): + /sonner@1.4.41(react-dom@19.0.0-rc-6f23540c7d-20240528)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-uG511ggnnsw6gcn/X+YKkWPo5ep9il9wYi3QJxHsYe7yTZ4+cOd1wuodOUmOpFuXL+/RE3R04LczdNCDygTDgQ==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - react: 19.0.0-rc-4c2e457c7c-20240522 - react-dom: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + react-dom: 19.0.0-rc-6f23540c7d-20240528(react@19.0.0-rc-6f23540c7d-20240528) dev: false /source-map-js@1.2.0: @@ -4603,7 +4619,7 @@ packages: dependencies: ansi-regex: 6.0.1 - /styled-jsx@5.1.3(react@19.0.0-rc-4c2e457c7c-20240522): + /styled-jsx@5.1.3(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-qLRShOWTE/Mf6Bvl72kFeKBl8N2Eq9WIFfoAuvbtP/6tqlnj1SCjv117n2MIjOPpa1jTorYqLJgsHKy5Y3ziww==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -4617,7 +4633,7 @@ packages: optional: true dependencies: client-only: 0.0.1 - react: 19.0.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false /sucrase@3.35.0: @@ -4651,14 +4667,14 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /swr@2.2.5(react@19.0.0-rc-4c2e457c7c-20240522): + /swr@2.2.5(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: client-only: 0.0.1 - react: 19.0.0-rc-4c2e457c7c-20240522 - use-sync-external-store: 1.2.0(react@19.0.0-rc-4c2e457c7c-20240522) + react: 19.0.0-rc-6f23540c7d-20240528 + use-sync-external-store: 1.2.0(react@19.0.0-rc-6f23540c7d-20240528) dev: false /tailwind-merge@2.2.2: @@ -4864,7 +4880,7 @@ packages: punycode: 2.3.1 dev: false - /use-callback-ref@1.3.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /use-callback-ref@1.3.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} peerDependencies: @@ -4874,12 +4890,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.2 - react: 19.0.0-rc-4c2e457c7c-20240522 + '@types/react': 18.3.3 + react: 19.0.0-rc-6f23540c7d-20240528 tslib: 2.6.2 dev: false - /use-sidecar@1.1.2(@types/react@18.3.2)(react@19.0.0-rc-4c2e457c7c-20240522): + /use-sidecar@1.1.2(@types/react@18.3.3)(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -4889,18 +4905,18 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.3 detect-node-es: 1.1.0 - react: 19.0.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 tslib: 2.6.2 dev: false - /use-sync-external-store@1.2.0(react@19.0.0-rc-4c2e457c7c-20240522): + /use-sync-external-store@1.2.0(react@19.0.0-rc-6f23540c7d-20240528): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 19.0.0-rc-4c2e457c7c-20240522 + react: 19.0.0-rc-6f23540c7d-20240528 dev: false /util-deprecate@1.0.2: @@ -5047,14 +5063,14 @@ packages: engines: {node: '>= 14'} hasBin: true - /zod-validation-error@2.1.0(zod@3.22.4): + /zod-validation-error@2.1.0(zod@3.23.8): resolution: {integrity: sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.18.0 dependencies: - zod: 3.22.4 + zod: 3.23.8 dev: false - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} diff --git a/server.ts b/server.ts index 0362214..abfa7e5 100644 --- a/server.ts +++ b/server.ts @@ -9,8 +9,7 @@ import { WebSocketServer } from "ws"; const port = Number.parseInt(process.env.PORT as string) || 3000; const dev = process.env.NODE_ENV !== "production"; if (process.argv.includes("--turbo")) { - process.env.TURBOPACK = "1"; - + process.env.TURBOPACK = "1"; } const server = createServer(); const app = next({ dev, port, httpServer: server, hostname: process.env.HOSTNAME }); @@ -20,55 +19,53 @@ const nextRequest = app.getRequestHandler(); const nextUpgrade = app.getUpgradeHandler(); const websockify = new WebSocketServer({ noServer: true }); websockify.on("connection", async (ws, req) => { - try { - const id = req.url?.split("/")[2]; - if (!id) { - ws.close(1008, "Missing ID"); - return; - } - const container = docker.getContainer(id); - const ip = await container - .inspect() - .then((data) => data.NetworkSettings.Networks[data.HostConfig.NetworkMode as string].IPAddress); - const socket = new Socket(); - socket.connect(5901, ip); - ws.on("message", (message: Uint8Array) => { - socket.write(message); - }); - ws.on("close", (code, reason) => { - consola.info( - `✨ Stardust: Connection closed with code ${code} and ${reason ? `reason ${reason.toString()}` : "no reason"}`, - ); - socket.end() - }); + try { + const id = req.url?.split("/")[2]; + if (!id) { + ws.close(1008, "Missing ID"); + return; + } + const container = await docker.getContainer(id).inspect(); + const ip = container.NetworkSettings.Networks[container.HostConfig.NetworkMode as string].IPAddress; + const socket = new Socket(); + socket.connect(5901, ip); + ws.on("message", (message: Uint8Array) => { + socket.write(message); + }); + ws.on("close", (code, reason) => { + consola.info( + `✨ Stardust: Connection closed with code ${code} and ${reason ? `reason ${reason.toString()}` : "no reason"}`, + ); + socket.end(); + }); - socket.on("data", (data) => { - ws.send(data); - }); + socket.on("data", (data) => { + ws.send(data); + }); - socket.on("error", (err) => { - consola.warn(`✨ Stardust: ${err.message}`); - ws.close(); - }); + socket.on("error", (err) => { + consola.warn(`✨ Stardust: ${err.message}`); + ws.close(); + }); - socket.on("close", () => { - ws.close(); - }); - } catch (error) { - ws.close(1008, "Server error"); - consola.error(`✨ Stardust: ${(error as Error).message}`); - } + socket.on("close", () => { + ws.close(); + }); + } catch (error) { + ws.close(1008, "Server error"); + consola.error(`✨ Stardust: ${(error as Error).message}`); + } }); server.on("request", nextRequest); server.on("upgrade", async (req, socket, head) => { - if (req.url?.includes("websockify")) { - websockify.handleUpgrade(req, socket, head, (ws) => { - websockify.emit("connection", ws, req, websockify); - }); - } else { - nextUpgrade(req, socket, head); - } + if (req.url?.includes("websockify")) { + websockify.handleUpgrade(req, socket, head, (ws) => { + websockify.emit("connection", ws, req, websockify); + }); + } else { + nextUpgrade(req, socket, head); + } }); server.listen(port, () => { - consola.success(`✨ Stardust: Server listening on ${port}`); + consola.success(`✨ Stardust: Server listening on ${port}`); }); diff --git a/src/actions/image.ts b/src/actions/image.ts new file mode 100644 index 0000000..439ad70 --- /dev/null +++ b/src/actions/image.ts @@ -0,0 +1,56 @@ +"use server"; + +import docker from "@/lib/docker"; +import { db } from "@/lib/drizzle/db"; +import { image, insertImageSchema } from "@/lib/drizzle/schema"; +import { revalidatePath } from "next/cache"; + +export async function addImage(data: FormData) { + const validatedFields = insertImageSchema.safeParse({ + dockerImage: data.get("dockerImage"), + friendlyName: data.get("friendlyName"), + category: data + .get("category") + ?.toString() + .split(",") + .map((cat) => cat.trim()), + icon: data.get("icon"), + pulled: true, + }); + if (!validatedFields.success) { + return { + errors: validatedFields.error.flatten().fieldErrors, + }; + } + await new Promise((resolve, reject) => + docker.pull(validatedFields.data.dockerImage, (_err: Error, stream: NodeJS.ReadableStream) => { + docker.modem.followProgress(stream, (err, res) => { + if (err) { + reject(err); + } else { + resolve(res); + } + }); + }), + ); + await db + .insert(image) + .values({ + category: [validatedFields.data.category as string], + dockerImage: validatedFields.data.dockerImage, + friendlyName: validatedFields.data.friendlyName, + icon: validatedFields.data.icon, + pulled: validatedFields.data.pulled, + }) + .onConflictDoUpdate({ + target: image.dockerImage, + set: { + category: [validatedFields.data.category as string], + friendlyName: validatedFields.data.friendlyName, + icon: validatedFields.data.icon, + pulled: validatedFields.data.pulled, + }, + }); + revalidatePath("/admin/images"); + return { success: true }; +} diff --git a/src/actions/user.ts b/src/actions/user.ts new file mode 100644 index 0000000..97bff78 --- /dev/null +++ b/src/actions/user.ts @@ -0,0 +1,44 @@ +"use server"; + +import { auth } from "@/lib/auth"; +import { db, session, user } from "@/lib/drizzle/db"; +import { deleteSession } from "@/lib/session"; +import { and, eq } from "drizzle-orm"; +import { revalidatePath } from "next/cache"; + +export async function deleteUser(userId: string) { + const userSession = await auth(); + const { sessions, currentUser } = await db.transaction(async (tx) => { + const sessions = await tx.select().from(session).where(eq(session.userId, userId)); + const currentUser = await tx.query.user.findFirst({ + where: (users, { eq }) => and(eq(users.email, userSession?.user?.email as string), eq(user.id, userId)), + }); + return { sessions, currentUser }; + }); + if (currentUser?.isAdmin) { + throw new Error("Cannot delete the current user"); + } + await Promise.all(sessions.map((session) => deleteSession(session.id))); + await db.delete(user).where(eq(user.id, userId)); + revalidatePath("/admin/users"); + return { success: true }; +} +export async function deleteUserSessions(userId: string) { + const sessions = await db.select().from(session).where(eq(session.userId, userId)); + await Promise.all(sessions.map((session) => deleteSession(session.id))); + revalidatePath("/admin/users"); + + return { success: true }; +} +export async function changeUserAdminStatus(userId: string, isAdmin: boolean) { + const userSession = await auth(); + const currentUser = await db.query.user.findFirst({ + where: (users, { eq }) => and(eq(users.email, userSession?.user?.email as string), eq(user.id, userId)), + }); + if (currentUser?.isAdmin) { + throw new Error("Cannot change the admin status of the current user"); + } + const [update] = await db.update(user).set({ isAdmin }).where(eq(user.id, userId)).returning(); + revalidatePath("/admin/users"); + return { success: true, admin: update.isAdmin }; +} diff --git a/src/app/(main)/admin/images/page.tsx b/src/app/(main)/admin/images/page.tsx index 963a2eb..a6920e9 100644 --- a/src/app/(main)/admin/images/page.tsx +++ b/src/app/(main)/admin/images/page.tsx @@ -1,22 +1,59 @@ import { db } from "@/lib/drizzle/db"; import { columns } from "./columns"; import { DataTable } from "@/components/ui/data-table"; +import { StyledSubmit } from "@/components/submit-button"; +import { Button } from "@/components/ui/button"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; import type { Metadata } from "next"; +import { addImage } from "@/actions/image"; export const metadata: Metadata = { title: "Images", }; export default async function AdminPage() { - const sessions = await db.query.image.findMany({ + const data = await db.query.image.findMany({ with: { session: true, }, }); return (
-

Images

-
- +

Images

+
+
+
+ + + + + + + Add Image + The image will automatically save after you click the button. + +
+ + + + + + + + + Submit +
+
+
+
); } diff --git a/src/app/(main)/admin/layout.tsx b/src/app/(main)/admin/layout.tsx index 54f5e5c..5da03a4 100644 --- a/src/app/(main)/admin/layout.tsx +++ b/src/app/(main)/admin/layout.tsx @@ -22,7 +22,7 @@ export default async function AdminLayout({ children }: { children: React.ReactN return ( <> -
{children}
+
{children}
); } diff --git a/src/app/(main)/admin/page.tsx b/src/app/(main)/admin/page.tsx index bd8684b..eadb147 100644 --- a/src/app/(main)/admin/page.tsx +++ b/src/app/(main)/admin/page.tsx @@ -1,22 +1,25 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { auth } from "@/lib/auth"; -import { db, user } from "@/lib/drizzle/db"; -import { Container, Users } from "lucide-react"; - +import { db, image, user } from "@/lib/drizzle/db"; +import { Container, Layers, Users } from "lucide-react"; +function mode(arr: Array) { + return arr.sort((a, b) => arr.filter((v) => v === a).length - arr.filter((v) => v === b).length).pop(); +} export default async function AdminPage() { const userSession = await auth(); - const { users, sessions } = await db.transaction(async (tx) => { + const { users, sessions, images } = await db.transaction(async (tx) => { const users = await tx.select().from(user); const sessions = await tx.query.session.findMany({ - with: { user: true }, + with: { user: true, image: true }, }); - return { users, sessions }; + const images = await tx.select().from(image); + return { users, sessions, images }; }); - const activeUsers = sessions.map((s) => s.user); + const activeUsers = [...new Set(sessions.map((s) => s.user.id))]; return (
-

Welcome, {userSession?.user?.name}

-
+

Welcome, {userSession?.user?.name}

+
Sessions @@ -29,6 +32,18 @@ export default async function AdminPage() {

+ + + Images + + + +
{images.length}
+

+ Most used image is {mode(sessions.map((s) => s.image.friendlyName)) || "N/A"} +

+
+
Users @@ -38,8 +53,8 @@ export default async function AdminPage() {
{users.length}

{users.filter((u) => u.isAdmin).length > 1 - ? `There are ${users.filter((u) => u.isAdmin).length} admins` - : `There is ${users.filter((u) => u.isAdmin).length} admin`} + ? `${users.filter((u) => u.isAdmin).length} admins` + : `${users.filter((u) => u.isAdmin).length} admin`}

diff --git a/src/app/(main)/admin/sessions/columns.tsx b/src/app/(main)/admin/sessions/columns.tsx index 49bf26d..b0c5ebb 100644 --- a/src/app/(main)/admin/sessions/columns.tsx +++ b/src/app/(main)/admin/sessions/columns.tsx @@ -52,7 +52,7 @@ export const columns: ColumnDef[] = [ { accessorKey: "dockerImage", header: ({ column }) => }, { accessorKey: "createdAt", - header: "Created at", + header: ({ column }) => , cell: ({ row }) => { const date = new Date(row.original.createdAt); return date.toLocaleString(); @@ -60,7 +60,7 @@ export const columns: ColumnDef[] = [ }, { accessorKey: "expiresAt", - header: "Expires at", + header: ({ column }) => , cell: ({ row }) => { const date = new Date(row.original.expiresAt); return date.toLocaleString(); diff --git a/src/app/(main)/admin/sessions/page.tsx b/src/app/(main)/admin/sessions/page.tsx index d0f124e..b74501c 100644 --- a/src/app/(main)/admin/sessions/page.tsx +++ b/src/app/(main)/admin/sessions/page.tsx @@ -6,16 +6,16 @@ export const metadata: Metadata = { title: "Sessions", }; export default async function AdminPage() { - const sessions = await db.query.session.findMany({ + const data = await db.query.session.findMany({ with: { user: true, }, }); return (
-

Sessions

-
- +

Sessions

+
+
); diff --git a/src/app/(main)/admin/users/columns.tsx b/src/app/(main)/admin/users/columns.tsx index e70f77d..5bdd5cb 100644 --- a/src/app/(main)/admin/users/columns.tsx +++ b/src/app/(main)/admin/users/columns.tsx @@ -1,21 +1,91 @@ +"use client"; +import { changeUserAdminStatus, deleteUser, deleteUserSessions } from "@/actions/user"; +import { DataTableColumnHeader } from "@/components/data-table/column-header"; +import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuCheckboxItem, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; import type { SelectUserRelation } from "@/lib/drizzle/relational-types"; import type { ColumnDef } from "@tanstack/react-table"; +import { MoreHorizontal } from "lucide-react"; +import { toast } from "sonner"; export const columns: ColumnDef[] = [ { accessorKey: "email", - header: "Email", + header: ({ column }) => , }, { accessorKey: "name", - header: "name", + header: ({ column }) => , }, { accessorKey: "id", - header: "User ID", + header: ({ column }) => , }, { accessorKey: "isAdmin", - header: "Admin", + header: ({ column }) => , + }, + { + id: "actions", + cell: ({ row }) => { + const user = row.original; + return ( + + + + + + Actions + navigator.clipboard.writeText(user.id)}>Copy user ID + + + toast.promise(() => changeUserAdminStatus(user.id, !user.isAdmin), { + loading: "Changing user's admin status...", + success: ({ admin }) => `Admin status changed to ${admin}`, + error: (error) => `Failed to change admin status: ${error}`, + }) + } + > + Admin + + + toast.promise(() => deleteUserSessions(user.id), { + loading: "Deleting user's sessions...", + success: "Sessions deleted", + error: (error) => `Failed to delete sessions: ${error}`, + }) + } + > + Delete user's sessions + + + toast.promise(() => deleteUser(user.id), { + loading: "Deleting user...", + success: "User deleted", + error: (error) => `Failed to delete user: ${error}`, + }) + } + > + Delete user + + + + ); + }, }, ]; diff --git a/src/app/(main)/admin/users/page.tsx b/src/app/(main)/admin/users/page.tsx index 7422e99..8b2c887 100644 --- a/src/app/(main)/admin/users/page.tsx +++ b/src/app/(main)/admin/users/page.tsx @@ -6,16 +6,16 @@ export const metadata: Metadata = { title: "Users", }; export default async function AdminPage() { - const sessions = await db.query.user.findMany({ + const data = await db.query.user.findMany({ with: { session: true, }, }); return (
-

Users

-
- +

Users

+
+
); diff --git a/src/app/(main)/page.tsx b/src/app/(main)/page.tsx index 532c5be..7fd2c9e 100644 --- a/src/app/(main)/page.tsx +++ b/src/app/(main)/page.tsx @@ -73,6 +73,7 @@ export default async function Dashboard() { return { sessions, images }; }); + const containerStates = await Promise.all(sessions.map((session) => docker.getContainer(session.id).inspect())); return (
@@ -130,8 +131,8 @@ export default async function Dashboard() { }> {sessions.length ? ( - sessions.map(async (session) => { - const { State } = await docker.getContainer(session.id).inspect(); + sessions.map((session, key) => { + const { State } = containerStates[key]; const expiresAt = new Date(session.expiresAt); return (

Expires at {`${expiresAt.toLocaleTimeString()} on ${expiresAt.toLocaleDateString("en-US")}`} - {hydrated ? "" : " (UTC)"} + {hydrated ? "" : " (Server TZ)"}

); diff --git a/src/app/api/session/[slug]/route.ts b/src/app/api/session/[slug]/route.ts index 6e902d5..17c76e5 100644 --- a/src/app/api/session/[slug]/route.ts +++ b/src/app/api/session/[slug]/route.ts @@ -19,7 +19,7 @@ export async function GET(_req: NextRequest, { params }: { params: { slug: strin await container.unpause(); } await sessionRunning(containerSession.ip); - const password = await fetch(`http://${containerSession.ip}:6080/password`).then((res) => res.text()); + const password = await (await fetch(`http://${containerSession.ip}:6080/password`)).text(); return Response.json({ exists: true, password, diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 75ea3e8..917267e 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,10 +1,8 @@ import { Toaster } from "@/components/ui/sonner"; -import { auth } from "@/lib/auth"; import type { Metadata } from "next"; import { ThemeProvider } from "next-themes"; import { Inter, JetBrains_Mono } from "next/font/google"; import "./globals.css"; -import { SessionProvider } from "next-auth/react"; import { headers } from "next/headers"; const inter = Inter({ subsets: ["latin"] }); const jetbrains = JetBrains_Mono({ subsets: ["latin"], variable: "--mono" }); @@ -38,18 +36,16 @@ export default async function RootLayout({ return ( - - - - {children} - - + + + {children} + ); diff --git a/src/app/view/[slug]/page.tsx b/src/app/view/[slug]/page.tsx index db1e271..8b8c6db 100644 --- a/src/app/view/[slug]/page.tsx +++ b/src/app/view/[slug]/page.tsx @@ -31,7 +31,6 @@ import { fetcher } from "@/lib/utils"; import { AlertCircle, Camera, - ChevronRight, Clipboard, Download, File, @@ -43,14 +42,16 @@ import { Pause, RotateCw, ScreenShareOff, + Settings, Sparkles, Square, TrashIcon, Upload, } from "lucide-react"; +import dynamic from "next/dynamic"; import Link from "next/link"; import { useRouter } from "next/navigation"; -import { Suspense, lazy, useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { toast } from "sonner"; import useSWR from "swr"; type ScalingValues = "remote" | "local" | "none"; @@ -60,7 +61,7 @@ const Loading = ({ text }: { text: string }) => (

{text}

); -const VncScreen = lazy(() => import("@/components/vnc-screen")); +const VncScreen = dynamic(() => import("@/components/vnc-screen"), { loading: () => }); export default function View({ params }: { params: { slug: string } }) { const vncRef = useRef(null); const [connected, setConnected] = useState(false); @@ -114,19 +115,15 @@ export default function View({ params }: { params: { slug: string } }) { }, [session, sessionMutate]); // jank, but it works ¯\_(ツ)_/¯ useEffect(() => { - const interval = setInterval(() => { + const interval = setInterval(async () => { if (connected && vncRef.current?.rfb && document.hasFocus() && !sidebarOpen) { vncRef.current.rfb.focus(); - navigator.clipboard - .readText() - .then((text) => { - if (text !== clipboard) { - setWorkingClipboard(true); - vncRef.current?.clipboardPaste(text); - setClipboard(text); - } - }) - .catch(() => setWorkingClipboard(false)); + const text = await navigator.clipboard.readText().catch(() => setWorkingClipboard(false)); + if (text && text !== clipboard) { + setWorkingClipboard(true); + vncRef.current?.clipboardPaste(text); + setClipboard(text); + } } }, 250); return () => clearInterval(interval); @@ -147,14 +144,23 @@ export default function View({ params }: { params: { slug: string } }) { return (
{connected ? ( - +
+ + + +
) : null} - toast.promise(() => manageSession(params.slug, "pause").then(() => router.push("/")), { - loading: "Pausing container...", - success: "Session paused", - error: "Failed to pause container", - }) + toast.promise( + async () => { + await manageSession(params.slug, "pause"); + router.push("/"); + }, + { + loading: "Pausing container...", + success: "Session paused", + error: "Failed to pause container", + }, + ) } > @@ -213,14 +225,20 @@ export default function View({ params }: { params: { slug: string } }) { @@ -244,11 +262,17 @@ export default function View({ params }: { params: { slug: string } }) { asChild onClick={() => { vncRef.current?.rfb?.disconnect(); - toast.promise(() => deleteSession(params.slug).then(() => router.push("/")), { - loading: "Deleting session...", - success: "Session deleted", - error: "Failed to delete session", - }); + toast.promise( + async () => { + await deleteSession(params.slug); + router.push("/"); + }, + { + loading: "Deleting session...", + success: "Session deleted", + error: "Failed to delete session", + }, + ); }} > @@ -262,28 +286,6 @@ export default function View({ params }: { params: { slug: string } }) { Log Out - -
@@ -314,18 +316,16 @@ export default function View({ params }: { params: { slug: string } }) {
diff --git a/src/components/navbar.tsx b/src/components/navbar.tsx index 95669a8..e78658e 100644 --- a/src/components/navbar.tsx +++ b/src/components/navbar.tsx @@ -31,7 +31,6 @@ import { } from "@/components/ui/navigation-menu"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; import type { SelectUser } from "@/lib/drizzle/schema"; -import { cn } from "@/lib/utils"; import { Book, ComputerIcon, Globe, Info, LogOut, Settings, Sparkles, SwatchBook, User } from "lucide-react"; import type { Route } from "next"; import type { Session } from "next-auth"; @@ -84,7 +83,7 @@ export default function Navigation({ ]; const developers = ["incognitotgt", "yosoof3", "rare1k"]; return ( -