diff --git a/apps/dev-tool/package.json b/apps/dev-tool/package.json index e7b00deb8..883026971 100644 --- a/apps/dev-tool/package.json +++ b/apps/dev-tool/package.json @@ -9,10 +9,10 @@ }, "dependencies": { "@ai-sdk/openai": "^1.3.22", - "@hookform/resolvers": "^5.1.0", - "@tanstack/react-query": "5.80.6", + "@hookform/resolvers": "^5.1.1", + "@tanstack/react-query": "5.80.7", "ai": "4.3.16", - "lucide-react": "^0.513.0", + "lucide-react": "^0.514.0", "next": "15.3.3", "nodemailer": "^7.0.3", "react": "19.1.0", @@ -26,17 +26,17 @@ "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", "@tailwindcss/postcss": "^4.1.8", - "@types/node": "^22.15.30", + "@types/node": "^24.0.1", "@types/nodemailer": "6.4.17", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "@types/react-dom": "19.1.6", "babel-plugin-react-compiler": "19.1.0-rc.2", "pino-pretty": "^13.0.0", "react-hook-form": "^7.57.0", - "tailwindcss": "4.1.8", + "tailwindcss": "4.1.10", "tailwindcss-animate": "^1.0.7", "typescript": "^5.8.3", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "prettier": "@kit/prettier-config", "browserslist": [ diff --git a/apps/e2e/package.json b/apps/e2e/package.json index ab0acc833..00295a096 100644 --- a/apps/e2e/package.json +++ b/apps/e2e/package.json @@ -12,8 +12,8 @@ "author": "", "license": "ISC", "devDependencies": { - "@playwright/test": "^1.52.0", - "@types/node": "^22.15.30", + "@playwright/test": "^1.53.0", + "@types/node": "^24.0.1", "dotenv": "16.5.0", "node-html-parser": "^7.0.1", "totp-generator": "^1.0.0" diff --git a/apps/e2e/tests/authentication/auth.spec.ts b/apps/e2e/tests/authentication/auth.spec.ts index 0a57cc68d..53b90f18b 100644 --- a/apps/e2e/tests/authentication/auth.spec.ts +++ b/apps/e2e/tests/authentication/auth.spec.ts @@ -96,3 +96,147 @@ test.describe('Protected routes', () => { expect(page.url()).toContain('/auth/sign-in?next=/home/settings'); }); }); + +test.describe('Last auth method tracking', () => { + let testEmail: string; + + test.beforeEach(async ({ page }) => { + const auth = new AuthPageObject(page); + + testEmail = auth.createRandomEmail(); + + // First, sign up with password + await auth.goToSignUp(); + + await auth.signUp({ + email: testEmail, + password: 'password123', + repeatPassword: 'password123', + }); + + await auth.visitConfirmEmailLink(testEmail); + await page.waitForURL('**/home'); + + // Sign out + await auth.signOut(); + await page.waitForURL('/'); + }); + + test('should show last used method hint on sign-in page after password sign-in', async ({ + page, + }) => { + const auth = new AuthPageObject(page); + + // Go to sign-in page and check for last method hint + await auth.goToSignIn(); + + // Check if the last used method hint is visible + const lastMethodHint = page.locator('[data-test="last-auth-method-hint"]'); + await expect(lastMethodHint).toBeVisible(); + + // Verify it shows the correct method (password) + const passwordMethodText = page.locator('text=email and password'); + await expect(passwordMethodText).toBeVisible(); + }); + + test('should show existing account hint on sign-up page after previous sign-in', async ({ + page, + }) => { + const auth = new AuthPageObject(page); + + // Go to sign-up page (user already signed in with password in previous test) + await auth.goToSignUp(); + + // Check if the existing account hint is visible + const existingAccountHint = page.locator( + '[data-test="existing-account-hint"]', + ); + + await expect(existingAccountHint).toBeVisible(); + }); + + test('should track method after successful sign-in', async ({ page }) => { + const auth = new AuthPageObject(page); + + // Clear cookies to simulate a fresh session + await page.context().clearCookies(); + + // Sign in with the test email + await auth.goToSignIn(); + + await auth.signIn({ + email: testEmail, + password: 'password123', + }); + + await page.waitForURL('**/home'); + + // Sign out and check the method is still tracked + await auth.signOut(); + await page.waitForURL('/'); + + // Go to sign-in page and check for last method hint + await auth.goToSignIn(); + + // The hint should still be visible after signing in again + const lastMethodHint = page.locator('[data-test="last-auth-method-hint"]'); + + await expect(lastMethodHint).toBeVisible(); + }); + + test('should clear localStorage after 30 days simulation', async ({ + page, + }) => { + const auth = new AuthPageObject(page); + + // Go to sign-in page first + await auth.goToSignIn(); + + // Simulate old timestamp (31 days ago) by directly modifying localStorage + const thirtyOneDaysAgo = Date.now() - 31 * 24 * 60 * 60 * 1000; + + await page.evaluate((timestamp) => { + const oldAuthMethod = { + method: 'password', + email: 'old@example.com', + timestamp: timestamp, + }; + localStorage.setItem('auth_last_method', JSON.stringify(oldAuthMethod)); + }, thirtyOneDaysAgo); + + // Reload the page to trigger the expiry check + await page.reload(); + + // The hint should not be visible for expired data + const lastMethodHint = page.locator('[data-test="last-auth-method-hint"]'); + await expect(lastMethodHint).not.toBeVisible(); + + // Verify localStorage was cleared + const storedMethod = await page.evaluate(() => { + return localStorage.getItem('auth_last_method'); + }); + + expect(storedMethod).toBeNull(); + }); + + test('should handle localStorage errors gracefully', async ({ page }) => { + const auth = new AuthPageObject(page); + + await auth.goToSignIn(); + + // Simulate corrupted localStorage data + await page.evaluate(() => { + localStorage.setItem('auth_last_method', 'invalid-json-data'); + }); + + // Reload the page + await page.reload(); + + // Should not crash and not show the hint + const lastMethodHint = page.locator('[data-test="last-auth-method-hint"]'); + await expect(lastMethodHint).not.toBeVisible(); + + // Page should still be functional + await expect(page.locator('input[name="email"]')).toBeVisible(); + }); +}); diff --git a/apps/web/app/home/(user)/settings/page.tsx b/apps/web/app/home/(user)/settings/page.tsx index 488c38f4e..29adf4a6d 100644 --- a/apps/web/app/home/(user)/settings/page.tsx +++ b/apps/web/app/home/(user)/settings/page.tsx @@ -13,8 +13,11 @@ import { requireUserInServerComponent } from '~/lib/server/require-user-in-serve const features = { enableAccountDeletion: featureFlagsConfig.enableAccountDeletion, enablePasswordUpdate: authConfig.providers.password, + enableAccountLinking: authConfig.enableIdentityLinking, }; +const providers = authConfig.providers.oAuth; + const callbackPath = pathsConfig.auth.callback; const accountHomePath = pathsConfig.app.accountHome; @@ -41,6 +44,7 @@ function PersonalAccountSettingsPage() { userId={user.id} features={features} paths={paths} + providers={providers} /> diff --git a/apps/web/config/auth.config.ts b/apps/web/config/auth.config.ts index 44d206965..0e2c9dee8 100644 --- a/apps/web/config/auth.config.ts +++ b/apps/web/config/auth.config.ts @@ -15,6 +15,12 @@ const AuthConfigSchema = z.object({ description: 'Whether to display the terms checkbox during sign-up.', }) .optional(), + enableIdentityLinking: z + .boolean({ + description: 'Allow linking and unlinking of auth identities.', + }) + .optional() + .default(false), providers: z.object({ password: z.boolean({ description: 'Enable password authentication.', @@ -22,6 +28,9 @@ const AuthConfigSchema = z.object({ magicLink: z.boolean({ description: 'Enable magic link authentication.', }), + otp: z.boolean({ + description: 'Enable one-time password authentication.', + }), oAuth: providers.array(), }), }); @@ -35,11 +44,17 @@ const authConfig = AuthConfigSchema.parse({ displayTermsCheckbox: process.env.NEXT_PUBLIC_DISPLAY_TERMS_AND_CONDITIONS_CHECKBOX === 'true', + // whether to enable identity linking: + // This needs to be enabled in the Supabase Console as well for it to work. + enableIdentityLinking: + process.env.NEXT_PUBLIC_AUTH_IDENTITY_LINKING === 'true', + // NB: Enable the providers below in the Supabase Console // in your production project providers: { password: process.env.NEXT_PUBLIC_AUTH_PASSWORD === 'true', magicLink: process.env.NEXT_PUBLIC_AUTH_MAGIC_LINK === 'true', + otp: process.env.NEXT_PUBLIC_AUTH_OTP === 'true', oAuth: ['google'], }, } satisfies z.infer); diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index 0ffa657b3..59f634673 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -46,6 +46,9 @@ const config = { resolveExtensions: ['.ts', '.tsx', '.js', '.jsx'], resolveAlias: getModulesAliases(), }, + devIndicators: { + position: 'bottom-right', + }, experimental: { mdxRs: true, reactCompiler: ENABLE_REACT_COMPILER, diff --git a/apps/web/package.json b/apps/web/package.json index 2571c5631..86e7ab7e2 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@edge-csrf/nextjs": "2.5.3-cloudflare-rc1", - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@kit/accounts": "workspace:*", "@kit/admin": "workspace:*", "@kit/analytics": "workspace:*", @@ -57,21 +57,20 @@ "@nosecone/next": "1.0.0-beta.8", "@radix-ui/react-icons": "^1.3.2", "@supabase/supabase-js": "2.50.0", - "@tanstack/react-query": "5.80.6", + "@tanstack/react-query": "5.80.7", "@tanstack/react-table": "^8.21.3", "date-fns": "^4.1.0", - "lucide-react": "^0.513.0", + "lucide-react": "^0.514.0", "next": "15.3.3", "next-sitemap": "^4.2.3", "next-themes": "0.4.6", "react": "19.1.0", "react-dom": "19.1.0", "react-hook-form": "^7.57.0", - "react-i18next": "^15.5.2", + "react-i18next": "^15.5.3", "recharts": "2.15.3", - "sonner": "^2.0.5", - "tailwind-merge": "^3.3.0", - "zod": "^3.25.56" + "tailwind-merge": "^3.3.1", + "zod": "^3.25.63" }, "devDependencies": { "@kit/eslint-config": "workspace:*", @@ -79,15 +78,15 @@ "@kit/tsconfig": "workspace:*", "@next/bundle-analyzer": "15.3.3", "@tailwindcss/postcss": "^4.1.8", - "@types/node": "^22.15.30", - "@types/react": "19.1.6", + "@types/node": "^24.0.1", + "@types/react": "19.1.8", "@types/react-dom": "19.1.6", "babel-plugin-react-compiler": "19.1.0-rc.2", "cssnano": "^7.0.7", "pino-pretty": "^13.0.0", "prettier": "^3.5.3", "supabase": "^2.24.3", - "tailwindcss": "4.1.8", + "tailwindcss": "4.1.10", "tailwindcss-animate": "^1.0.7", "typescript": "^5.8.3" }, diff --git a/apps/web/public/locales/en/account.json b/apps/web/public/locales/en/account.json index fd8a54ae4..d019d138b 100644 --- a/apps/web/public/locales/en/account.json +++ b/apps/web/public/locales/en/account.json @@ -42,7 +42,7 @@ "emailNotMatching": "Emails do not match. Make sure you're using the correct email", "passwordNotChanged": "Your password has not changed", "emailsNotMatching": "Emails do not match. Make sure you're using the correct email", - "cannotUpdatePassword": "You cannot update your password because your account is not linked to any.", + "cannotUpdatePassword": "You cannot update your password because your account is not linked to an email.", "setupMfaButtonLabel": "Setup a new Factor", "multiFactorSetupErrorHeading": "Setup Failed", "multiFactorSetupErrorDescription": "Sorry, there was an error while setting up your factor. Please try again.", @@ -111,5 +111,29 @@ "languageDescription": "Choose your preferred language", "noTeamsYet": "You don't have any teams yet.", "createTeam": "Create a team to get started.", - "createTeamButtonLabel": "Create a Team" + "createTeamButtonLabel": "Create a Team", + "linkedAccounts": "Linked Accounts", + "linkedAccountsDescription": "Connect other authentication providers", + "unlinkAccountButton": "Unlink {{provider}}", + "unlinkAccountSuccess": "Account unlinked", + "unlinkAccountError": "Unlinking failed", + "linkAccountSuccess": "Account linked", + "linkAccountError": "Linking failed", + "linkEmailPasswordButton": "Add Email & Password", + "linkEmailPasswordSuccess": "Email and password linked", + "linkEmailPasswordError": "Failed to link email and password", + "linkingAccount": "Linking account...", + "accountLinked": "Account linked", + "unlinkAccount": "Unlink Account", + "failedToLinkAccount": "Failed to link account", + "availableAccounts": "Available Accounts", + "availableAccountsDescription": "Connect other authentication providers to your account", + "alreadyLinkedAccountsDescription": "You have already linked these accounts", + "confirmUnlinkAccount": "You are unlinking this provider.", + "unlinkAccountConfirmation": "Are you sure you want to unlink this provider from your account? This action cannot be undone.", + "unlinkingAccount": "Unlinking account...", + "accountUnlinked": "Account successfully unlinked", + "linkEmailPassword": "Email & Password", + "linkEmailPasswordDescription": "Add an email and password to your account for additional sign-in options", + "noAccountsAvailable": "No additional accounts available to link" } diff --git a/apps/web/public/locales/en/auth.json b/apps/web/public/locales/en/auth.json index 3bb81d4f9..18d879b1d 100644 --- a/apps/web/public/locales/en/auth.json +++ b/apps/web/public/locales/en/auth.json @@ -70,18 +70,27 @@ "privacyPolicy": "Privacy Policy", "orContinueWith": "Or continue with", "redirecting": "You're in! Please wait...", + "lastUsedMethodPrefix": "You last signed in with", + "methodPassword": "email and password", + "methodOtp": "OTP code", + "methodMagicLink": "email link", + "methodOauth": "social sign-in", + "methodOauthWithProvider": "{{provider}}", + "existingAccountHint": "You previously signed in with {{method}}. Already have an account?", "errors": { "Invalid login credentials": "The credentials entered are invalid", "User already registered": "This credential is already in use. Please try with another one.", "Email not confirmed": "Please confirm your email address before signing in", "default": "We have encountered an error. Please ensure you have a working internet connection and try again", "generic": "Sorry, we weren't able to authenticate you. Please try again.", - "link": "Sorry, we encountered an error while sending your link. Please try again.", + "linkTitle": "Sign in failed", + "linkDescription": "Sorry, we weren't able to sign you in. Please try again.", "codeVerifierMismatch": "It looks like you're trying to sign in using a different browser than the one you used to request the sign in link. Please try again using the same browser.", "minPasswordLength": "Password must be at least 8 characters long", "passwordsDoNotMatch": "The passwords do not match", "minPasswordNumbers": "Password must contain at least one number", "minPasswordSpecialChars": "Password must contain at least one special character", + "Signups not allowed for otp": "OTP is disabled. Please enable it in your account settings.", "uppercasePassword": "Password must contain at least one uppercase letter", "insufficient_aal": "Please sign-in with your current multi-factor authentication to perform this action", "otp_expired": "The email link has expired. Please try again.", diff --git a/apps/web/supabase/config.toml b/apps/web/supabase/config.toml index ad8d49ef3..5cd373e43 100644 --- a/apps/web/supabase/config.toml +++ b/apps/web/supabase/config.toml @@ -100,9 +100,14 @@ subject = "Sign in to Makerkit" content_path = "./supabase/templates/magic-link.html" [analytics] -enabled = false +enabled = true +port = 54327 +backend = "postgres" [db.migrations] schema_paths = [ "./schemas/*.sql", -] \ No newline at end of file +] + +[db.seed] +sql_paths = ['seed.sql', './seeds/*.sql'] \ No newline at end of file diff --git a/apps/web/supabase/templates/change-email-address.html b/apps/web/supabase/templates/change-email-address.html index 3fd0c2b13..ede4fc5f8 100644 --- a/apps/web/supabase/templates/change-email-address.html +++ b/apps/web/supabase/templates/change-email-address.html @@ -1,8 +1,8 @@ -
Confirm Change of Email | Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file +
Confirm Change of Email | Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file diff --git a/apps/web/supabase/templates/confirm-email.html b/apps/web/supabase/templates/confirm-email.html index 99c59b5e2..f4b532226 100644 --- a/apps/web/supabase/templates/confirm-email.html +++ b/apps/web/supabase/templates/confirm-email.html @@ -1,8 +1,8 @@ -
Confirm your email - Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file +
Confirm your email - Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file diff --git a/apps/web/supabase/templates/invite-user.html b/apps/web/supabase/templates/invite-user.html index add06d220..83358f1e3 100644 --- a/apps/web/supabase/templates/invite-user.html +++ b/apps/web/supabase/templates/invite-user.html @@ -1,8 +1,8 @@ -
You have bee invited to join - Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file +
You have bee invited to join - Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file diff --git a/apps/web/supabase/templates/magic-link.html b/apps/web/supabase/templates/magic-link.html index eb3c7c9b5..b372e0900 100644 --- a/apps/web/supabase/templates/magic-link.html +++ b/apps/web/supabase/templates/magic-link.html @@ -1,8 +1,8 @@ -
Your sign in link to Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file +
Your sign in link to Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file diff --git a/apps/web/supabase/templates/otp.html b/apps/web/supabase/templates/otp.html new file mode 100644 index 000000000..49d4a732f --- /dev/null +++ b/apps/web/supabase/templates/otp.html @@ -0,0 +1,8 @@ +
Your sign in link to Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file diff --git a/apps/web/supabase/templates/reset-password.html b/apps/web/supabase/templates/reset-password.html index ce6ed5abe..4ca427d10 100644 --- a/apps/web/supabase/templates/reset-password.html +++ b/apps/web/supabase/templates/reset-password.html @@ -1,8 +1,8 @@ -
Reset your password | Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file +
Reset your password | Makerkit
 ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
\ No newline at end of file diff --git a/package.json b/package.json index 1b6ea95e2..264040452 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "next-supabase-saas-kit-turbo", - "version": "2.10.0", + "version": "2.11.0", "private": true, "sideEffects": false, "engines": { diff --git a/packages/analytics/package.json b/packages/analytics/package.json index c0dc03d23..e10c4486f 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -16,7 +16,7 @@ "@kit/eslint-config": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/node": "^22.15.30" + "@types/node": "^24.0.1" }, "typesVersions": { "*": { diff --git a/packages/billing/core/package.json b/packages/billing/core/package.json index 4c5b9e496..4601885d0 100644 --- a/packages/billing/core/package.json +++ b/packages/billing/core/package.json @@ -21,7 +21,7 @@ "@kit/supabase": "workspace:*", "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/billing/gateway/package.json b/packages/billing/gateway/package.json index 3e988aaea..db556b0ca 100644 --- a/packages/billing/gateway/package.json +++ b/packages/billing/gateway/package.json @@ -16,7 +16,7 @@ "./marketing": "./src/components/marketing.tsx" }, "devDependencies": { - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@kit/billing": "workspace:*", "@kit/eslint-config": "workspace:*", "@kit/lemon-squeezy": "workspace:*", @@ -27,14 +27,14 @@ "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", "@supabase/supabase-js": "2.50.0", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "date-fns": "^4.1.0", - "lucide-react": "^0.513.0", + "lucide-react": "^0.514.0", "next": "15.3.3", "react": "19.1.0", "react-hook-form": "^7.57.0", - "react-i18next": "^15.5.2", - "zod": "^3.25.56" + "react-i18next": "^15.5.3", + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/billing/lemon-squeezy/package.json b/packages/billing/lemon-squeezy/package.json index 1570fc065..a663bc301 100644 --- a/packages/billing/lemon-squeezy/package.json +++ b/packages/billing/lemon-squeezy/package.json @@ -24,10 +24,10 @@ "@kit/supabase": "workspace:*", "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "next": "15.3.3", "react": "19.1.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/billing/stripe/package.json b/packages/billing/stripe/package.json index f6fb855a3..b84a78734 100644 --- a/packages/billing/stripe/package.json +++ b/packages/billing/stripe/package.json @@ -27,11 +27,11 @@ "@kit/supabase": "workspace:*", "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "date-fns": "^4.1.0", "next": "15.3.3", "react": "19.1.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/cms/core/package.json b/packages/cms/core/package.json index 16f0543e8..7c47d1cb1 100644 --- a/packages/cms/core/package.json +++ b/packages/cms/core/package.json @@ -20,7 +20,7 @@ "@kit/shared": "workspace:*", "@kit/tsconfig": "workspace:*", "@kit/wordpress": "workspace:*", - "@types/node": "^22.15.30" + "@types/node": "^24.0.1" }, "typesVersions": { "*": { diff --git a/packages/cms/keystatic/package.json b/packages/cms/keystatic/package.json index 189feca72..14e33e7df 100644 --- a/packages/cms/keystatic/package.json +++ b/packages/cms/keystatic/package.json @@ -26,10 +26,10 @@ "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", - "@types/node": "^22.15.30", - "@types/react": "19.1.6", + "@types/node": "^24.0.1", + "@types/react": "19.1.8", "react": "19.1.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/cms/wordpress/package.json b/packages/cms/wordpress/package.json index c0c5e81e3..6b449f5a0 100644 --- a/packages/cms/wordpress/package.json +++ b/packages/cms/wordpress/package.json @@ -20,8 +20,8 @@ "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", - "@types/node": "^22.15.30", - "@types/react": "19.1.6", + "@types/node": "^24.0.1", + "@types/react": "19.1.8", "wp-types": "^4.68.0" }, "typesVersions": { diff --git a/packages/database-webhooks/package.json b/packages/database-webhooks/package.json index a038490cd..52b1e3e51 100644 --- a/packages/database-webhooks/package.json +++ b/packages/database-webhooks/package.json @@ -23,7 +23,7 @@ "@kit/team-accounts": "workspace:*", "@kit/tsconfig": "workspace:*", "@supabase/supabase-js": "2.50.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/email-templates/package.json b/packages/email-templates/package.json index 1046988e1..c7b0fef3d 100644 --- a/packages/email-templates/package.json +++ b/packages/email-templates/package.json @@ -13,7 +13,7 @@ ".": "./src/index.ts" }, "dependencies": { - "@react-email/components": "0.0.41" + "@react-email/components": "0.0.42" }, "devDependencies": { "@kit/eslint-config": "workspace:*", diff --git a/packages/features/accounts/package.json b/packages/features/accounts/package.json index c276ad0ca..744716c4f 100644 --- a/packages/features/accounts/package.json +++ b/packages/features/accounts/package.json @@ -20,7 +20,7 @@ "nanoid": "^5.1.5" }, "devDependencies": { - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@kit/billing-gateway": "workspace:*", "@kit/email-templates": "workspace:*", "@kit/eslint-config": "workspace:*", @@ -35,18 +35,17 @@ "@kit/ui": "workspace:*", "@radix-ui/react-icons": "^1.3.2", "@supabase/supabase-js": "2.50.0", - "@tanstack/react-query": "5.80.6", - "@types/react": "19.1.6", + "@tanstack/react-query": "5.80.7", + "@types/react": "19.1.8", "@types/react-dom": "19.1.6", - "lucide-react": "^0.513.0", + "lucide-react": "^0.514.0", "next": "15.3.3", "next-themes": "0.4.6", "react": "19.1.0", "react-dom": "19.1.0", "react-hook-form": "^7.57.0", - "react-i18next": "^15.5.2", - "sonner": "^2.0.5", - "zod": "^3.25.56" + "react-i18next": "^15.5.3", + "zod": "^3.25.63" }, "prettier": "@kit/prettier-config", "typesVersions": { diff --git a/packages/features/accounts/src/components/personal-account-dropdown.tsx b/packages/features/accounts/src/components/personal-account-dropdown.tsx index ea2733d81..35e20bf17 100644 --- a/packages/features/accounts/src/components/personal-account-dropdown.tsx +++ b/packages/features/accounts/src/components/personal-account-dropdown.tsx @@ -91,7 +91,7 @@ export function PersonalAccountDropdown({ aria-label="Open your profile menu" data-test={'account-dropdown-trigger'} className={cn( - 'animate-in fade-in focus:outline-primary flex cursor-pointer items-center duration-500 group-data-[minimized=true]:px-0', + 'animate-in group/trigger fade-in focus:outline-primary flex cursor-pointer items-center border border-dashed group-data-[minimized=true]:px-0', className ?? '', { ['active:bg-secondary/50 items-center gap-4 rounded-md' + @@ -100,7 +100,9 @@ export function PersonalAccountDropdown({ )} > , ) { const supportsLanguageSelection = useSupportMultiLanguage(); @@ -150,6 +156,24 @@ export function PersonalAccountSettingsContainer( + + + + + + + + + + + + + + + + + + diff --git a/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx b/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx index f4b7f11d1..03120cb21 100644 --- a/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx +++ b/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx @@ -6,7 +6,6 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { CheckIcon } from '@radix-ui/react-icons'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { useUpdateUser } from '@kit/supabase/hooks/use-update-user-mutation'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; @@ -21,6 +20,7 @@ import { } from '@kit/ui/form'; import { If } from '@kit/ui/if'; import { Input } from '@kit/ui/input'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; import { UpdateEmailSchema } from '../../../schema/update-email.schema'; diff --git a/packages/features/accounts/src/components/personal-account-settings/index.ts b/packages/features/accounts/src/components/personal-account-settings/index.ts index 2869efb67..474bd3523 100644 --- a/packages/features/accounts/src/components/personal-account-settings/index.ts +++ b/packages/features/accounts/src/components/personal-account-settings/index.ts @@ -1 +1,2 @@ export * from './account-settings-container'; +export * from './link-accounts'; diff --git a/packages/features/accounts/src/components/personal-account-settings/link-accounts/index.ts b/packages/features/accounts/src/components/personal-account-settings/link-accounts/index.ts new file mode 100644 index 000000000..521d12ef2 --- /dev/null +++ b/packages/features/accounts/src/components/personal-account-settings/link-accounts/index.ts @@ -0,0 +1 @@ +export * from './link-accounts-list'; diff --git a/packages/features/accounts/src/components/personal-account-settings/link-accounts/link-accounts-list.tsx b/packages/features/accounts/src/components/personal-account-settings/link-accounts/link-accounts-list.tsx new file mode 100644 index 000000000..52b678f5c --- /dev/null +++ b/packages/features/accounts/src/components/personal-account-settings/link-accounts/link-accounts-list.tsx @@ -0,0 +1,211 @@ +'use client'; + +import type { Provider, UserIdentity } from '@supabase/supabase-js'; + +import { CheckCircle } from 'lucide-react'; + +import { useLinkIdentityWithProvider } from '@kit/supabase/hooks/use-link-identity-with-provider'; +import { useUnlinkUserIdentity } from '@kit/supabase/hooks/use-unlink-user-identity'; +import { useUserIdentities } from '@kit/supabase/hooks/use-user-identities'; +import { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle, + AlertDialogTrigger, +} from '@kit/ui/alert-dialog'; +import { Button } from '@kit/ui/button'; +import { If } from '@kit/ui/if'; +import { OauthProviderLogoImage } from '@kit/ui/oauth-provider-logo-image'; +import { Separator } from '@kit/ui/separator'; +import { toast } from '@kit/ui/sonner'; +import { Spinner } from '@kit/ui/spinner'; +import { Trans } from '@kit/ui/trans'; + +export function LinkAccountsList(props: { providers: Provider[] }) { + const unlinkMutation = useUnlinkUserIdentity(); + const linkMutation = useLinkIdentityWithProvider(); + + const { + identities, + hasMultipleIdentities, + isProviderConnected, + isLoading: isLoadingIdentities, + } = useUserIdentities(); + + // Only show providers from the allowed list that aren't already connected + const availableProviders = props.providers.filter( + (provider) => !isProviderConnected(provider), + ); + + // Show all connected identities, even if their provider isn't in the allowed providers list + const connectedIdentities = identities; + + const handleUnlinkAccount = (identity: UserIdentity) => { + const promise = unlinkMutation.mutateAsync(identity); + + toast.promise(promise, { + loading: , + success: , + error: , + }); + }; + + const handleLinkAccount = (provider: Provider) => { + const promise = linkMutation.mutateAsync(provider); + + toast.promise(promise, { + loading: , + success: , + error: , + }); + }; + + if (isLoadingIdentities) { + return ( +
+ +
+ ); + } + + return ( +
+ {/* Linked Accounts Section */} + 0}> +
+
+

+ +

+ +

+ +

+
+ +
+ {connectedIdentities.map((identity) => ( +
+
+ + +
+ + + + {identity.provider} + + + + + {identity.identity_data?.email as string} + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + handleUnlinkAccount(identity)} + className="bg-destructive text-destructive-foreground hover:bg-destructive/90" + > + + + + + + +
+ ))} +
+
+
+ + {/* Available Accounts Section */} + 0}> + + +
+
+

+ +

+ +

+ +

+
+ +
+ {availableProviders.map((provider) => ( + + ))} +
+
+
+ + +
+ +
+
+
+ ); +} diff --git a/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx b/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx index 87ea95a4f..c2e9ab691 100644 --- a/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx +++ b/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx @@ -8,7 +8,6 @@ import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { ShieldCheck, X } from 'lucide-react'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { useFetchAuthFactors } from '@kit/supabase/hooks/use-fetch-mfa-factors'; import { useSupabase } from '@kit/supabase/hooks/use-supabase'; @@ -27,6 +26,7 @@ import { import { Badge } from '@kit/ui/badge'; import { Button } from '@kit/ui/button'; import { If } from '@kit/ui/if'; +import { toast } from '@kit/ui/sonner'; import { Spinner } from '@kit/ui/spinner'; import { Table, diff --git a/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-setup-dialog.tsx b/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-setup-dialog.tsx index 6c302ffd0..2e0287e62 100644 --- a/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-setup-dialog.tsx +++ b/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-setup-dialog.tsx @@ -8,7 +8,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { ArrowLeftIcon } from 'lucide-react'; import { useForm, useWatch } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { z } from 'zod'; import { useSupabase } from '@kit/supabase/hooks/use-supabase'; @@ -40,6 +39,7 @@ import { InputOTPSeparator, InputOTPSlot, } from '@kit/ui/input-otp'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; import { refreshAuthSession } from '../../../server/personal-accounts-server-actions'; diff --git a/packages/features/accounts/src/components/personal-account-settings/password/update-password-container.tsx b/packages/features/accounts/src/components/personal-account-settings/password/update-password-container.tsx index 857b19dc3..ad9e88299 100644 --- a/packages/features/accounts/src/components/personal-account-settings/password/update-password-container.tsx +++ b/packages/features/accounts/src/components/personal-account-settings/password/update-password-container.tsx @@ -1,9 +1,7 @@ 'use client'; import { useUser } from '@kit/supabase/hooks/use-user'; -import { Alert } from '@kit/ui/alert'; import { LoadingOverlay } from '@kit/ui/loading-overlay'; -import { Trans } from '@kit/ui/trans'; import { UpdatePasswordForm } from './update-password-form'; @@ -18,25 +16,9 @@ export function UpdatePasswordFormContainer( return ; } - if (!user) { + if (!user?.email) { return null; } - const canUpdatePassword = user.identities?.some( - (item) => item.provider === `email`, - ); - - if (!canUpdatePassword) { - return ; - } - return ; } - -function WarnCannotUpdatePasswordAlert() { - return ( - - - - ); -} diff --git a/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx b/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx index 1df1bd0f1..5c88f8176 100644 --- a/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx +++ b/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx @@ -9,7 +9,6 @@ import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { Check } from 'lucide-react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { useUpdateUser } from '@kit/supabase/hooks/use-update-user-mutation'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; @@ -26,6 +25,7 @@ import { import { If } from '@kit/ui/if'; import { Input } from '@kit/ui/input'; import { Label } from '@kit/ui/label'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; import { PasswordUpdateSchema } from '../../../schema/update-password.schema'; diff --git a/packages/features/accounts/src/components/personal-account-settings/update-account-details-form.tsx b/packages/features/accounts/src/components/personal-account-settings/update-account-details-form.tsx index 921f766a9..952ff1143 100644 --- a/packages/features/accounts/src/components/personal-account-settings/update-account-details-form.tsx +++ b/packages/features/accounts/src/components/personal-account-settings/update-account-details-form.tsx @@ -1,7 +1,6 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { Database } from '@kit/supabase/database'; import { Button } from '@kit/ui/button'; @@ -14,6 +13,7 @@ import { FormMessage, } from '@kit/ui/form'; import { Input } from '@kit/ui/input'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; import { useUpdateAccountData } from '../../hooks/use-update-account'; diff --git a/packages/features/accounts/src/components/personal-account-settings/update-account-image-container.tsx b/packages/features/accounts/src/components/personal-account-settings/update-account-image-container.tsx index 03327790c..d7162e710 100644 --- a/packages/features/accounts/src/components/personal-account-settings/update-account-image-container.tsx +++ b/packages/features/accounts/src/components/personal-account-settings/update-account-image-container.tsx @@ -5,11 +5,11 @@ import { useCallback } from 'react'; import type { SupabaseClient } from '@supabase/supabase-js'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { Database } from '@kit/supabase/database'; import { useSupabase } from '@kit/supabase/hooks/use-supabase'; import { ImageUploader } from '@kit/ui/image-uploader'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; import { useRevalidatePersonalAccountDataQuery } from '../../hooks/use-personal-account-data'; diff --git a/packages/features/accounts/src/schema/link-email-password.schema.ts b/packages/features/accounts/src/schema/link-email-password.schema.ts new file mode 100644 index 000000000..90933e736 --- /dev/null +++ b/packages/features/accounts/src/schema/link-email-password.schema.ts @@ -0,0 +1,12 @@ +import { z } from 'zod'; + +export const LinkEmailPasswordSchema = z + .object({ + email: z.string().email(), + password: z.string().min(8).max(99), + repeatPassword: z.string().min(8).max(99), + }) + .refine((values) => values.password === values.repeatPassword, { + path: ['repeatPassword'], + message: `account:passwordNotMatching`, + }); diff --git a/packages/features/admin/package.json b/packages/features/admin/package.json index 5a6cb1008..5693a91b6 100644 --- a/packages/features/admin/package.json +++ b/packages/features/admin/package.json @@ -10,7 +10,7 @@ }, "prettier": "@kit/prettier-config", "devDependencies": { - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@kit/eslint-config": "workspace:*", "@kit/next": "workspace:*", "@kit/prettier-config": "workspace:*", @@ -21,15 +21,15 @@ "@makerkit/data-loader-supabase-core": "^0.0.10", "@makerkit/data-loader-supabase-nextjs": "^1.2.5", "@supabase/supabase-js": "2.50.0", - "@tanstack/react-query": "5.80.6", + "@tanstack/react-query": "5.80.7", "@tanstack/react-table": "^8.21.3", - "@types/react": "19.1.6", - "lucide-react": "^0.513.0", + "@types/react": "19.1.8", + "lucide-react": "^0.514.0", "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", "react-hook-form": "^7.57.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "exports": { ".": "./src/index.ts", diff --git a/packages/features/auth/package.json b/packages/features/auth/package.json index b1c5745b0..4acc398ff 100644 --- a/packages/features/auth/package.json +++ b/packages/features/auth/package.json @@ -16,10 +16,11 @@ "./mfa": "./src/mfa.ts", "./captcha/client": "./src/captcha/client/index.ts", "./captcha/server": "./src/captcha/server/index.ts", - "./resend-email-link": "./src/components/resend-auth-link-form.tsx" + "./resend-email-link": "./src/components/resend-auth-link-form.tsx", + "./oauth-provider-logo-image": "./src/components/oauth-provider-logo-image.tsx" }, "devDependencies": { - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@kit/eslint-config": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/shared": "workspace:*", @@ -29,14 +30,14 @@ "@marsidev/react-turnstile": "^1.1.0", "@radix-ui/react-icons": "^1.3.2", "@supabase/supabase-js": "2.50.0", - "@tanstack/react-query": "5.80.6", - "@types/react": "19.1.6", - "lucide-react": "^0.513.0", + "@tanstack/react-query": "5.80.7", + "@types/react": "19.1.8", + "lucide-react": "^0.514.0", "next": "15.3.3", "react-hook-form": "^7.57.0", - "react-i18next": "^15.5.2", + "react-i18next": "^15.5.3", "sonner": "^2.0.5", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "prettier": "@kit/prettier-config", "typesVersions": { diff --git a/packages/features/auth/src/components/auth-layout.tsx b/packages/features/auth/src/components/auth-layout.tsx index 26289aae0..180a5279d 100644 --- a/packages/features/auth/src/components/auth-layout.tsx +++ b/packages/features/auth/src/components/auth-layout.tsx @@ -15,7 +15,7 @@ export function AuthLayoutShell({ {Logo ? : null}
{children}
diff --git a/packages/features/auth/src/components/auth-link-redirect.tsx b/packages/features/auth/src/components/auth-link-redirect.tsx deleted file mode 100644 index bebb76916..000000000 --- a/packages/features/auth/src/components/auth-link-redirect.tsx +++ /dev/null @@ -1,34 +0,0 @@ -'use client'; - -import { useEffect } from 'react'; - -import { useRouter, useSearchParams } from 'next/navigation'; - -import { useSupabase } from '@kit/supabase/hooks/use-supabase'; - -function AuthLinkRedirect(props: { redirectPath?: string }) { - const params = useSearchParams(); - - const redirectPath = params?.get('redirectPath') ?? props.redirectPath ?? '/'; - - useRedirectOnSignIn(redirectPath); - - return null; -} - -export default AuthLinkRedirect; - -function useRedirectOnSignIn(redirectPath: string) { - const supabase = useSupabase(); - const router = useRouter(); - - useEffect(() => { - const { data } = supabase.auth.onAuthStateChange((_, session) => { - if (session) { - router.push(redirectPath); - } - }); - - return () => data.subscription.unsubscribe(); - }, [supabase, router, redirectPath]); -} diff --git a/packages/features/auth/src/components/auth-provider-button.tsx b/packages/features/auth/src/components/auth-provider-button.tsx index 113a989dd..903880770 100644 --- a/packages/features/auth/src/components/auth-provider-button.tsx +++ b/packages/features/auth/src/components/auth-provider-button.tsx @@ -1,6 +1,5 @@ import { Button } from '@kit/ui/button'; - -import { OauthProviderLogoImage } from './oauth-provider-logo-image'; +import { OauthProviderLogoImage } from '@kit/ui/oauth-provider-logo-image'; export function AuthProviderButton({ providerId, diff --git a/packages/features/auth/src/components/existing-account-hint.tsx b/packages/features/auth/src/components/existing-account-hint.tsx new file mode 100644 index 000000000..9e043b404 --- /dev/null +++ b/packages/features/auth/src/components/existing-account-hint.tsx @@ -0,0 +1,87 @@ +'use client'; + +import { useMemo } from 'react'; + +import dynamic from 'next/dynamic'; +import Link from 'next/link'; + +import { UserCheck } from 'lucide-react'; + +import { Alert, AlertDescription } from '@kit/ui/alert'; +import { If } from '@kit/ui/if'; +import { Trans } from '@kit/ui/trans'; + +import { useLastAuthMethod } from '../hooks/use-last-auth-method'; + +interface ExistingAccountHintProps { + signInPath?: string; + className?: string; +} + +// we force dynamic import to avoid hydration errors +export const ExistingAccountHint = dynamic( + async () => ({ default: ExistingAccountHintImpl }), + { + ssr: false, + }, +); + +export function ExistingAccountHintImpl({ + signInPath = '/auth/sign-in', + className, +}: ExistingAccountHintProps) { + const { hasLastMethod, methodType, providerName, isOAuth } = + useLastAuthMethod(); + + // Get the appropriate method description for the hint + // This must be called before any conditional returns to follow Rules of Hooks + const methodDescription = useMemo(() => { + if (isOAuth && providerName) { + return providerName; + } + + switch (methodType) { + case 'password': + return 'email and password'; + case 'otp': + return 'email verification'; + case 'magic_link': + return 'email link'; + default: + return 'another method'; + } + }, [methodType, isOAuth, providerName]); + + // Don't show anything until loaded or if no last method + if (!hasLastMethod) { + return null; + } + + return ( + + + + + + , + signInLink: ( + + ), + }} + /> + + + + ); +} diff --git a/packages/features/auth/src/components/last-auth-method-hint.tsx b/packages/features/auth/src/components/last-auth-method-hint.tsx new file mode 100644 index 000000000..1b6a9595d --- /dev/null +++ b/packages/features/auth/src/components/last-auth-method-hint.tsx @@ -0,0 +1,82 @@ +'use client'; + +import { useMemo } from 'react'; + +import dynamic from 'next/dynamic'; + +import { Lightbulb } from 'lucide-react'; + +import { If } from '@kit/ui/if'; +import { Trans } from '@kit/ui/trans'; + +import { useLastAuthMethod } from '../hooks/use-last-auth-method'; + +interface LastAuthMethodHintProps { + className?: string; +} + +// we force dynamic import to avoid hydration errors +export const LastAuthMethodHint = dynamic( + async () => ({ default: LastAuthMethodHintImpl }), + { + ssr: false, + }, +); + +function LastAuthMethodHintImpl({ className }: LastAuthMethodHintProps) { + const { hasLastMethod, methodType, providerName, isOAuth } = + useLastAuthMethod(); + + // Get the appropriate translation key based on the method - memoized + // This must be called before any conditional returns to follow Rules of Hooks + const methodKey = useMemo(() => { + switch (methodType) { + case 'password': + return 'auth:methodPassword'; + case 'otp': + return 'auth:methodOtp'; + case 'magic_link': + return 'auth:methodMagicLink'; + case 'oauth': + return 'auth:methodOauth'; + default: + return null; + } + }, [methodType]); + + // Don't show anything until loaded or if no last method + if (!hasLastMethod) { + return null; + } + + if (!methodKey) { + return null; // If method is not recognized, don't render anything + } + + return ( +
+ + + + {' '} + + , + }} + /> + + + + + + + +
+ ); +} diff --git a/packages/features/auth/src/components/magic-link-auth-container.tsx b/packages/features/auth/src/components/magic-link-auth-container.tsx index 6e43d7414..22cd2a8e4 100644 --- a/packages/features/auth/src/components/magic-link-auth-container.tsx +++ b/packages/features/auth/src/components/magic-link-auth-container.tsx @@ -4,7 +4,6 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { CheckIcon, ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { z } from 'zod'; import { useAppEvents } from '@kit/shared/events'; @@ -21,9 +20,11 @@ import { } from '@kit/ui/form'; import { If } from '@kit/ui/if'; import { Input } from '@kit/ui/input'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; import { useCaptchaToken } from '../captcha/client'; +import { useLastAuthMethod } from '../hooks/use-last-auth-method'; import { TermsAndConditionsFormField } from './terms-and-conditions-form-field'; export function MagicLinkAuthContainer({ @@ -46,6 +47,7 @@ export function MagicLinkAuthContainer({ const { t } = useTranslation(); const signInWithOtpMutation = useSignInWithOtp(); const appEvents = useAppEvents(); + const { recordAuthMethod } = useLastAuthMethod(); const form = useForm({ resolver: zodResolver( @@ -77,6 +79,8 @@ export function MagicLinkAuthContainer({ }, }); + recordAuthMethod('magic_link', { email }); + if (shouldCreateUser) { appEvents.emit({ type: 'user.signedUp', @@ -90,7 +94,7 @@ export function MagicLinkAuthContainer({ toast.promise(promise, { loading: t('auth:sendingEmailLink'), success: t(`auth:sendLinkSuccessToast`), - error: t(`auth:errors.link`), + error: t(`auth:errors.linkTitle`), }); resetCaptchaToken(); @@ -103,11 +107,11 @@ export function MagicLinkAuthContainer({ return (
- - - -
+ + + + ( @@ -171,11 +175,11 @@ function ErrorAlert() { - + - + ); diff --git a/packages/features/auth/src/components/oauth-providers.tsx b/packages/features/auth/src/components/oauth-providers.tsx index 454b552bb..5ee814775 100644 --- a/packages/features/auth/src/components/oauth-providers.tsx +++ b/packages/features/auth/src/components/oauth-providers.tsx @@ -12,6 +12,7 @@ import { If } from '@kit/ui/if'; import { LoadingOverlay } from '@kit/ui/loading-overlay'; import { Trans } from '@kit/ui/trans'; +import { useLastAuthMethod } from '../hooks/use-last-auth-method'; import { AuthErrorAlert } from './auth-error-alert'; import { AuthProviderButton } from './auth-provider-button'; @@ -42,6 +43,7 @@ export const OauthProviders: React.FC<{ }; }> = (props) => { const signInWithProviderMutation = useSignInWithProvider(); + const { recordAuthMethod } = useLastAuthMethod(); // we make the UI "busy" until the next page is fully loaded const loading = signInWithProviderMutation.isPending; @@ -105,9 +107,15 @@ export const OauthProviders: React.FC<{ }, } satisfies SignInWithOAuthCredentials; - return onSignInWithProvider(() => - signInWithProviderMutation.mutateAsync(credentials), - ); + return onSignInWithProvider(async () => { + const result = + await signInWithProviderMutation.mutateAsync(credentials); + + // Record successful OAuth sign-in + recordAuthMethod('oauth', { provider }); + + return result; + }); }} > void; + shouldCreateUser: boolean; +}) { + const verifyMutation = useVerifyOtp(); + const router = useRouter(); + const params = useSearchParams(); + const { recordAuthMethod } = useLastAuthMethod(); + + const otpForm = useForm({ + resolver: zodResolver(OtpSchema.merge(EmailSchema)), + defaultValues: { + token: '', + email: '', + }, + }); + + const email = useWatch({ + control: otpForm.control, + name: 'email', + }); + + const isEmailStep = !email; + + const handleVerifyOtp = async ({ + token, + email, + }: { + token: string; + email: string; + }) => { + const result = await verifyMutation.mutateAsync({ + type: 'email', + email, + token, + }); + + // Record successful OTP sign-in + recordAuthMethod('otp', { email }); + + if (onSignIn) { + return onSignIn(result?.user?.id); + } + + // on sign ups we redirect to the app home + if (shouldCreateUser) { + const next = params.get('next') ?? '/home'; + + router.replace(next); + } + }; + + if (isEmailStep) { + return ( + { + otpForm.setValue('email', email, { + shouldValidate: true, + }); + }} + /> + ); + } + + return ( + + + + + ( + + + + + + + + + + + + + + + + + + + + + + + + )} + /> + +
+ + + +
+ + + ); +} + +function OtpEmailForm({ + shouldCreateUser, + onSendOtp, +}: { + shouldCreateUser: boolean; + onSendOtp: (email: string) => void; +}) { + const { captchaToken, resetCaptchaToken } = useCaptchaToken(); + const signInMutation = useSignInWithOtp(); + + const emailForm = useForm({ + resolver: zodResolver(EmailSchema), + defaultValues: { email: '' }, + }); + + const handleSendOtp = async ({ email }: z.infer) => { + await signInMutation.mutateAsync({ + email, + options: { captchaToken, shouldCreateUser }, + }); + + resetCaptchaToken(); + onSendOtp(email); + }; + + return ( +
+ + + + ( + + + + + + + + )} + /> + + + + + ); +} diff --git a/packages/features/auth/src/components/password-sign-in-container.tsx b/packages/features/auth/src/components/password-sign-in-container.tsx index f01d72193..450c29bac 100644 --- a/packages/features/auth/src/components/password-sign-in-container.tsx +++ b/packages/features/auth/src/components/password-sign-in-container.tsx @@ -7,6 +7,7 @@ import type { z } from 'zod'; import { useSignInWithEmailPassword } from '@kit/supabase/hooks/use-sign-in-with-email-password'; import { useCaptchaToken } from '../captcha/client'; +import { useLastAuthMethod } from '../hooks/use-last-auth-method'; import type { PasswordSignInSchema } from '../schemas/password-sign-in.schema'; import { AuthErrorAlert } from './auth-error-alert'; import { PasswordSignInForm } from './password-sign-in-form'; @@ -18,6 +19,7 @@ export function PasswordSignInContainer({ }) { const { captchaToken, resetCaptchaToken } = useCaptchaToken(); const signInMutation = useSignInWithEmailPassword(); + const { recordAuthMethod } = useLastAuthMethod(); const isLoading = signInMutation.isPending; const isRedirecting = signInMutation.isSuccess; @@ -29,6 +31,9 @@ export function PasswordSignInContainer({ options: { captchaToken }, }); + // Record successful password sign-in + recordAuthMethod('password', { email: credentials.email }); + if (onSignIn) { const userId = data?.user?.id; @@ -40,7 +45,13 @@ export function PasswordSignInContainer({ resetCaptchaToken(); } }, - [captchaToken, onSignIn, resetCaptchaToken, signInMutation], + [ + captchaToken, + onSignIn, + resetCaptchaToken, + signInMutation, + recordAuthMethod, + ], ); return ( diff --git a/packages/features/auth/src/components/sign-in-methods-container.tsx b/packages/features/auth/src/components/sign-in-methods-container.tsx index 083f379f2..51772e318 100644 --- a/packages/features/auth/src/components/sign-in-methods-container.tsx +++ b/packages/features/auth/src/components/sign-in-methods-container.tsx @@ -1,5 +1,7 @@ 'use client'; +import { useCallback } from 'react'; + import { useRouter } from 'next/navigation'; import type { Provider } from '@supabase/supabase-js'; @@ -9,8 +11,10 @@ import { If } from '@kit/ui/if'; import { Separator } from '@kit/ui/separator'; import { Trans } from '@kit/ui/trans'; +import { LastAuthMethodHint } from './last-auth-method-hint'; import { MagicLinkAuthContainer } from './magic-link-auth-container'; import { OauthProviders } from './oauth-providers'; +import { OtpSignInContainer } from './otp-sign-in-container'; import { PasswordSignInContainer } from './password-sign-in-container'; export function SignInMethodsContainer(props: { @@ -25,6 +29,7 @@ export function SignInMethodsContainer(props: { providers: { password: boolean; magicLink: boolean; + otp: boolean; oAuth: Provider[]; }; }) { @@ -34,7 +39,7 @@ export function SignInMethodsContainer(props: { ? new URL(props.paths.callback, window?.location.origin).toString() : ''; - const onSignIn = () => { + const onSignIn = useCallback(() => { // if the user has an invite token, we should join the team if (props.inviteToken) { const searchParams = new URLSearchParams({ @@ -50,10 +55,12 @@ export function SignInMethodsContainer(props: { // otherwise, we should redirect to the return path router.replace(returnPath); } - }; + }, [props.inviteToken, props.paths.joinTeam, props.paths.returnPath, router]); return ( <> + + @@ -66,6 +73,10 @@ export function SignInMethodsContainer(props: { /> + + + +
diff --git a/packages/features/auth/src/components/sign-up-methods-container.tsx b/packages/features/auth/src/components/sign-up-methods-container.tsx index 3fde6d0b0..a11d552a0 100644 --- a/packages/features/auth/src/components/sign-up-methods-container.tsx +++ b/packages/features/auth/src/components/sign-up-methods-container.tsx @@ -8,8 +8,10 @@ import { If } from '@kit/ui/if'; import { Separator } from '@kit/ui/separator'; import { Trans } from '@kit/ui/trans'; +import { ExistingAccountHint } from './existing-account-hint'; import { MagicLinkAuthContainer } from './magic-link-auth-container'; import { OauthProviders } from './oauth-providers'; +import { OtpSignInContainer } from './otp-sign-in-container'; import { EmailPasswordSignUpContainer } from './password-sign-up-container'; export function SignUpMethodsContainer(props: { @@ -21,6 +23,7 @@ export function SignUpMethodsContainer(props: { providers: { password: boolean; magicLink: boolean; + otp: boolean; oAuth: Provider[]; }; @@ -32,6 +35,9 @@ export function SignUpMethodsContainer(props: { return ( <> + {/* Show hint if user might already have an account */} + + @@ -44,6 +50,10 @@ export function SignUpMethodsContainer(props: { /> + + + + ( + getLastAuthMethod(), + ); + + // Save a new auth method - memoized to prevent unnecessary re-renders + const recordAuthMethod = useCallback( + ( + method: AuthMethod, + options?: { + provider?: string; + email?: string; + }, + ) => { + const authMethod: LastAuthMethod = { + method, + provider: options?.provider, + email: options?.email, + timestamp: Date.now(), + }; + + saveLastAuthMethod(authMethod); + setLastAuthMethod(authMethod); + }, + [], + ); + + // Clear the stored auth method - memoized to prevent unnecessary re-renders + const clearAuthMethod = useCallback(() => { + clearLastAuthMethod(); + setLastAuthMethod(null); + }, []); + + // Compute derived values using useMemo for performance + const derivedData = useMemo(() => { + if (!lastAuthMethod) { + return { + hasLastMethod: false, + methodType: null, + providerName: null, + isOAuth: false, + }; + } + + const isOAuth = lastAuthMethod.method === 'oauth'; + + const providerName = + isOAuth && lastAuthMethod.provider + ? lastAuthMethod.provider.charAt(0).toUpperCase() + + lastAuthMethod.provider.slice(1) + : null; + + return { + hasLastMethod: true, + methodType: lastAuthMethod.method, + providerName, + isOAuth, + }; + }, [lastAuthMethod]); + + return { + lastAuthMethod, + recordAuthMethod, + clearAuthMethod, + ...derivedData, + }; +} diff --git a/packages/features/auth/src/hooks/use-sign-up-flow.ts b/packages/features/auth/src/hooks/use-sign-up-flow.ts index a6ba52e78..88f182bbd 100644 --- a/packages/features/auth/src/hooks/use-sign-up-flow.ts +++ b/packages/features/auth/src/hooks/use-sign-up-flow.ts @@ -7,6 +7,8 @@ import { useRouter } from 'next/navigation'; import { useAppEvents } from '@kit/shared/events'; import { useSignUpWithEmailAndPassword } from '@kit/supabase/hooks/use-sign-up-with-email-password'; +import { useLastAuthMethod } from './use-last-auth-method'; + type SignUpCredentials = { email: string; password: string; @@ -33,6 +35,7 @@ export function usePasswordSignUpFlow({ const router = useRouter(); const signUpMutation = useSignUpWithEmailAndPassword(); const appEvents = useAppEvents(); + const { recordAuthMethod } = useLastAuthMethod(); const signUp = useCallback( async (credentials: SignUpCredentials) => { @@ -47,6 +50,9 @@ export function usePasswordSignUpFlow({ captchaToken, }); + // Record last auth method + recordAuthMethod('password', { email: credentials.email }); + // emit event to track sign up appEvents.emit({ type: 'user.signedUp', @@ -58,6 +64,7 @@ export function usePasswordSignUpFlow({ // Update URL with success status. This is useful for password managers // to understand that the form was submitted successfully. const url = new URL(window.location.href); + url.searchParams.set('status', 'success'); router.replace(url.pathname + url.search); @@ -66,6 +73,7 @@ export function usePasswordSignUpFlow({ } } catch (error) { console.error(error); + throw error; } finally { resetCaptchaToken?.(); diff --git a/packages/features/auth/src/sign-in.ts b/packages/features/auth/src/sign-in.ts index 43fa1998d..9fa29b051 100644 --- a/packages/features/auth/src/sign-in.ts +++ b/packages/features/auth/src/sign-in.ts @@ -1,2 +1,3 @@ export * from './components/sign-in-methods-container'; +export * from './components/otp-sign-in-container'; export * from './schemas/password-sign-in.schema'; diff --git a/packages/features/auth/src/utils/last-auth-method.ts b/packages/features/auth/src/utils/last-auth-method.ts new file mode 100644 index 000000000..744849b05 --- /dev/null +++ b/packages/features/auth/src/utils/last-auth-method.ts @@ -0,0 +1,71 @@ +'use client'; + +import { isBrowser } from '@kit/shared/utils'; + +// Key for localStorage +const LAST_AUTH_METHOD_KEY = 'auth_last_method'; + +// Types of authentication methods +export type AuthMethod = 'password' | 'otp' | 'magic_link' | 'oauth'; + +export interface LastAuthMethod { + method: AuthMethod; + provider?: string; // For OAuth providers (e.g., 'google', 'github') + email?: string; // Store email for method-specific hints + timestamp: number; +} + +/** + * Save the last used authentication method to localStorage + */ +export function saveLastAuthMethod(authMethod: LastAuthMethod): void { + try { + localStorage.setItem(LAST_AUTH_METHOD_KEY, JSON.stringify(authMethod)); + } catch (error) { + console.warn('Failed to save last auth method:', error); + } +} + +/** + * Get the last used authentication method from localStorage + */ +export function getLastAuthMethod() { + if (!isBrowser()) { + return null; + } + + try { + const stored = localStorage.getItem(LAST_AUTH_METHOD_KEY); + + if (!stored) { + return null; + } + + const parsed = JSON.parse(stored) as LastAuthMethod; + + // Check if the stored method is older than 30 days + const thirtyDaysAgo = Date.now() - 30 * 24 * 60 * 60 * 1000; + + if (parsed.timestamp < thirtyDaysAgo) { + localStorage.removeItem(LAST_AUTH_METHOD_KEY); + + return null; + } + + return parsed; + } catch (error) { + console.warn('Failed to get last auth method:', error); + return null; + } +} + +/** + * Clear the last used authentication method from localStorage + */ +export function clearLastAuthMethod() { + try { + localStorage.removeItem(LAST_AUTH_METHOD_KEY); + } catch (error) { + console.warn('Failed to clear last auth method:', error); + } +} diff --git a/packages/features/notifications/package.json b/packages/features/notifications/package.json index a2f9289a1..34e9201b7 100644 --- a/packages/features/notifications/package.json +++ b/packages/features/notifications/package.json @@ -20,12 +20,12 @@ "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", "@supabase/supabase-js": "2.50.0", - "@tanstack/react-query": "5.80.6", - "@types/react": "19.1.6", - "lucide-react": "^0.513.0", + "@tanstack/react-query": "5.80.7", + "@types/react": "19.1.8", + "lucide-react": "^0.514.0", "react": "19.1.0", "react-dom": "19.1.0", - "react-i18next": "^15.5.2" + "react-i18next": "^15.5.3" }, "prettier": "@kit/prettier-config", "typesVersions": { diff --git a/packages/features/team-accounts/package.json b/packages/features/team-accounts/package.json index 747e34683..06294a0c2 100644 --- a/packages/features/team-accounts/package.json +++ b/packages/features/team-accounts/package.json @@ -18,7 +18,7 @@ "nanoid": "^5.1.5" }, "devDependencies": { - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@kit/accounts": "workspace:*", "@kit/billing-gateway": "workspace:*", "@kit/email-templates": "workspace:*", @@ -33,20 +33,19 @@ "@kit/tsconfig": "workspace:*", "@kit/ui": "workspace:*", "@supabase/supabase-js": "2.50.0", - "@tanstack/react-query": "5.80.6", + "@tanstack/react-query": "5.80.7", "@tanstack/react-table": "^8.21.3", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "@types/react-dom": "19.1.6", "class-variance-authority": "^0.7.1", "date-fns": "^4.1.0", - "lucide-react": "^0.513.0", + "lucide-react": "^0.514.0", "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", "react-hook-form": "^7.57.0", - "react-i18next": "^15.5.2", - "sonner": "^2.0.5", - "zod": "^3.25.56" + "react-i18next": "^15.5.3", + "zod": "^3.25.63" }, "prettier": "@kit/prettier-config", "typesVersions": { diff --git a/packages/features/team-accounts/src/components/members/invite-members-dialog-container.tsx b/packages/features/team-accounts/src/components/members/invite-members-dialog-container.tsx index 8d793a6fa..26fd9eebd 100644 --- a/packages/features/team-accounts/src/components/members/invite-members-dialog-container.tsx +++ b/packages/features/team-accounts/src/components/members/invite-members-dialog-container.tsx @@ -6,7 +6,6 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { Plus, X } from 'lucide-react'; import { useFieldArray, useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { Button } from '@kit/ui/button'; import { @@ -27,6 +26,7 @@ import { } from '@kit/ui/form'; import { If } from '@kit/ui/if'; import { Input } from '@kit/ui/input'; +import { toast } from '@kit/ui/sonner'; import { Tooltip, TooltipContent, diff --git a/packages/features/team-accounts/src/components/settings/update-team-account-image-container.tsx b/packages/features/team-accounts/src/components/settings/update-team-account-image-container.tsx index 6c4e871ca..698343056 100644 --- a/packages/features/team-accounts/src/components/settings/update-team-account-image-container.tsx +++ b/packages/features/team-accounts/src/components/settings/update-team-account-image-container.tsx @@ -5,10 +5,10 @@ import { useCallback } from 'react'; import type { SupabaseClient } from '@supabase/supabase-js'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { useSupabase } from '@kit/supabase/hooks/use-supabase'; import { ImageUploader } from '@kit/ui/image-uploader'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; const AVATARS_BUCKET = 'account_image'; diff --git a/packages/features/team-accounts/src/components/settings/update-team-account-name-form.tsx b/packages/features/team-accounts/src/components/settings/update-team-account-name-form.tsx index c11268a7f..6bc51df93 100644 --- a/packages/features/team-accounts/src/components/settings/update-team-account-name-form.tsx +++ b/packages/features/team-accounts/src/components/settings/update-team-account-name-form.tsx @@ -7,7 +7,6 @@ import { isRedirectError } from 'next/dist/client/components/redirect-error'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { toast } from 'sonner'; import { Button } from '@kit/ui/button'; import { @@ -19,6 +18,7 @@ import { FormMessage, } from '@kit/ui/form'; import { Input } from '@kit/ui/input'; +import { toast } from '@kit/ui/sonner'; import { Trans } from '@kit/ui/trans'; import { TeamNameFormSchema } from '../../schema/update-team-name.schema'; diff --git a/packages/i18n/package.json b/packages/i18n/package.json index e3c980db0..f1cb743cb 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -20,15 +20,15 @@ "@kit/prettier-config": "workspace:*", "@kit/shared": "workspace:*", "@kit/tsconfig": "workspace:*", - "@tanstack/react-query": "5.80.6", + "@tanstack/react-query": "5.80.7", "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", - "react-i18next": "^15.5.2" + "react-i18next": "^15.5.3" }, "dependencies": { "i18next": "25.2.1", - "i18next-browser-languagedetector": "8.1.0", + "i18next-browser-languagedetector": "8.2.0", "i18next-resources-to-backend": "^1.2.1" }, "typesVersions": { diff --git a/packages/mailers/core/package.json b/packages/mailers/core/package.json index 9ee4bda39..10c2b4367 100644 --- a/packages/mailers/core/package.json +++ b/packages/mailers/core/package.json @@ -20,8 +20,8 @@ "@kit/resend": "workspace:*", "@kit/shared": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/node": "^22.15.30", - "zod": "^3.25.56" + "@types/node": "^24.0.1", + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/mailers/nodemailer/package.json b/packages/mailers/nodemailer/package.json index 7b8970122..eb3909bed 100644 --- a/packages/mailers/nodemailer/package.json +++ b/packages/mailers/nodemailer/package.json @@ -21,7 +21,7 @@ "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", "@types/nodemailer": "6.4.17", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/mailers/resend/package.json b/packages/mailers/resend/package.json index d3d078e6d..0bebc8755 100644 --- a/packages/mailers/resend/package.json +++ b/packages/mailers/resend/package.json @@ -17,8 +17,8 @@ "@kit/mailers-shared": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/node": "^22.15.30", - "zod": "^3.25.56" + "@types/node": "^24.0.1", + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/mailers/shared/package.json b/packages/mailers/shared/package.json index b6d3e3620..c296051f3 100644 --- a/packages/mailers/shared/package.json +++ b/packages/mailers/shared/package.json @@ -16,7 +16,7 @@ "@kit/eslint-config": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/monitoring/api/package.json b/packages/monitoring/api/package.json index f43ff1c87..f4ee19fd2 100644 --- a/packages/monitoring/api/package.json +++ b/packages/monitoring/api/package.json @@ -24,9 +24,9 @@ "@kit/sentry": "workspace:*", "@kit/shared": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "react": "19.1.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/monitoring/baselime/package.json b/packages/monitoring/baselime/package.json index da5c4c222..ef3edf967 100644 --- a/packages/monitoring/baselime/package.json +++ b/packages/monitoring/baselime/package.json @@ -24,9 +24,9 @@ "@kit/eslint-config": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "react": "19.1.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/monitoring/baselime/src/components/provider.tsx b/packages/monitoring/baselime/src/components/provider.tsx index 9e1749b7f..ba7f21ef2 100644 --- a/packages/monitoring/baselime/src/components/provider.tsx +++ b/packages/monitoring/baselime/src/components/provider.tsx @@ -10,11 +10,9 @@ export function BaselimeProvider({ children, apiKey, enableWebVitals, - ErrorPage, }: React.PropsWithChildren<{ apiKey?: string; enableWebVitals?: boolean; - ErrorPage?: React.ReactElement; }>) { const key = apiKey ?? process.env.NEXT_PUBLIC_BASELIME_KEY ?? ''; @@ -28,11 +26,7 @@ export function BaselimeProvider({ } return ( - + {children} ); diff --git a/packages/monitoring/core/package.json b/packages/monitoring/core/package.json index e8ed3f216..3cec7795d 100644 --- a/packages/monitoring/core/package.json +++ b/packages/monitoring/core/package.json @@ -17,7 +17,7 @@ "@kit/eslint-config": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "react": "19.1.0" }, "typesVersions": { diff --git a/packages/monitoring/sentry/package.json b/packages/monitoring/sentry/package.json index 261dd64c6..31c560817 100644 --- a/packages/monitoring/sentry/package.json +++ b/packages/monitoring/sentry/package.json @@ -16,7 +16,7 @@ "./config/server": "./src/sentry.client.server.ts" }, "dependencies": { - "@sentry/nextjs": "^9.27.0", + "@sentry/nextjs": "^9.28.1", "import-in-the-middle": "1.14.0" }, "devDependencies": { @@ -24,7 +24,7 @@ "@kit/monitoring-core": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "react": "19.1.0" }, "typesVersions": { diff --git a/packages/next/package.json b/packages/next/package.json index 0aafe539c..8e64ecb97 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -22,7 +22,7 @@ "@kit/tsconfig": "workspace:*", "@supabase/supabase-js": "2.50.0", "next": "15.3.3", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/otp/package.json b/packages/otp/package.json index b11900692..edb4dca46 100644 --- a/packages/otp/package.json +++ b/packages/otp/package.json @@ -14,7 +14,7 @@ "./components": "./src/components/index.ts" }, "devDependencies": { - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@kit/email-templates": "workspace:*", "@kit/eslint-config": "workspace:*", "@kit/mailers": "workspace:*", @@ -26,12 +26,12 @@ "@kit/ui": "workspace:*", "@radix-ui/react-icons": "^1.3.2", "@supabase/supabase-js": "2.50.0", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "@types/react-dom": "19.1.6", "react": "19.1.0", "react-dom": "19.1.0", "react-hook-form": "^7.57.0", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/shared/package.json b/packages/shared/package.json index 808dc1d45..5ff1c8eda 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -20,7 +20,7 @@ "@kit/eslint-config": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", - "@types/react": "19.1.6" + "@types/react": "19.1.8" }, "dependencies": { "pino": "^9.7.0" diff --git a/packages/supabase/package.json b/packages/supabase/package.json index 6b71c01aa..028f38224 100644 --- a/packages/supabase/package.json +++ b/packages/supabase/package.json @@ -26,12 +26,12 @@ "@kit/tsconfig": "workspace:*", "@supabase/ssr": "^0.6.1", "@supabase/supabase-js": "2.50.0", - "@tanstack/react-query": "5.80.6", - "@types/react": "19.1.6", + "@tanstack/react-query": "5.80.7", + "@types/react": "19.1.8", "next": "15.3.3", "react": "19.1.0", "server-only": "^0.0.1", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "typesVersions": { "*": { diff --git a/packages/supabase/src/hooks/use-link-identity-with-email-password.ts b/packages/supabase/src/hooks/use-link-identity-with-email-password.ts new file mode 100644 index 000000000..fea960cba --- /dev/null +++ b/packages/supabase/src/hooks/use-link-identity-with-email-password.ts @@ -0,0 +1,50 @@ +import { useMutation, useQueryClient } from '@tanstack/react-query'; + +import { useSupabase } from './use-supabase'; +import { USER_IDENTITIES_QUERY_KEY } from './use-user-identities'; + +interface Credentials { + email: string; + password: string; + redirectTo: string; +} + +export function useLinkIdentityWithEmailPassword() { + const client = useSupabase(); + const queryClient = useQueryClient(); + const mutationKey = ['auth', 'link-email-password']; + + const mutationFn = async (credentials: Credentials) => { + const { email, password, redirectTo } = credentials; + + const { error } = await client.auth.updateUser( + { + email, + password, + data: { + // This is used to indicate that the user has a password set + // because Supabase does not add the identity after setting a password + // if the user was created with oAuth + hasPassword: true, + }, + }, + { emailRedirectTo: redirectTo }, + ); + + if (error) { + throw error.message ?? error; + } + + await client.auth.refreshSession(); + }; + + return useMutation({ + mutationKey, + mutationFn, + onSuccess: () => { + return queryClient.invalidateQueries({ + queryKey: USER_IDENTITIES_QUERY_KEY, + }); + }, + }); +} diff --git a/packages/supabase/src/hooks/use-link-identity-with-provider.ts b/packages/supabase/src/hooks/use-link-identity-with-provider.ts new file mode 100644 index 000000000..b1cc4501e --- /dev/null +++ b/packages/supabase/src/hooks/use-link-identity-with-provider.ts @@ -0,0 +1,37 @@ +import type { Provider } from '@supabase/supabase-js'; + +import { useMutation } from '@tanstack/react-query'; + +import { useSupabase } from './use-supabase'; + +export function useLinkIdentityWithProvider( + props: { + redirectToPath?: string; + } = {}, +) { + const client = useSupabase(); + const mutationKey = ['auth', 'link-identity']; + + const mutationFn = async (provider: Provider) => { + const origin = window.location.origin; + const redirectToPath = props.redirectToPath ?? '/home/settings'; + + const url = new URL('/auth/callback', origin); + url.searchParams.set('redirectTo', redirectToPath); + + const { error: linkError } = await client.auth.linkIdentity({ + provider, + options: { + redirectTo: url.toString(), + }, + }); + + if (linkError) { + throw linkError.message ?? linkError; + } + + await client.auth.refreshSession(); + }; + + return useMutation({ mutationKey, mutationFn }); +} diff --git a/packages/supabase/src/hooks/use-unlink-identity.ts b/packages/supabase/src/hooks/use-unlink-identity.ts new file mode 100644 index 000000000..e579f6c85 --- /dev/null +++ b/packages/supabase/src/hooks/use-unlink-identity.ts @@ -0,0 +1,22 @@ +import type { UserIdentity } from '@supabase/supabase-js'; + +import { useMutation } from '@tanstack/react-query'; + +import { useSupabase } from './use-supabase'; + +export function useUnlinkIdentity() { + const client = useSupabase(); + const mutationKey = ['auth', 'unlink-identity']; + + const mutationFn = async (identity: UserIdentity) => { + const { error } = await client.auth.unlinkIdentity(identity); + + if (error) { + throw error.message ?? error; + } + + await client.auth.refreshSession(); + }; + + return useMutation({ mutationKey, mutationFn }); +} diff --git a/packages/supabase/src/hooks/use-unlink-user-identity.ts b/packages/supabase/src/hooks/use-unlink-user-identity.ts new file mode 100644 index 000000000..4c2a52dea --- /dev/null +++ b/packages/supabase/src/hooks/use-unlink-user-identity.ts @@ -0,0 +1,30 @@ +import type { UserIdentity } from '@supabase/supabase-js'; + +import { useMutation, useQueryClient } from '@tanstack/react-query'; + +import { useSupabase } from './use-supabase'; +import { USER_IDENTITIES_QUERY_KEY } from './use-user-identities'; + +export function useUnlinkUserIdentity() { + const supabase = useSupabase(); + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: async (identity: UserIdentity) => { + // Unlink the identity + const { error } = await supabase.auth.unlinkIdentity(identity); + + if (error) { + throw error; + } + + return identity; + }, + onSuccess: () => { + // Invalidate and refetch user identities + return queryClient.invalidateQueries({ + queryKey: USER_IDENTITIES_QUERY_KEY, + }); + }, + }); +} diff --git a/packages/supabase/src/hooks/use-user-identities.ts b/packages/supabase/src/hooks/use-user-identities.ts new file mode 100644 index 000000000..77892f5bc --- /dev/null +++ b/packages/supabase/src/hooks/use-user-identities.ts @@ -0,0 +1,56 @@ +import { useMemo } from 'react'; + +import type { Provider } from '@supabase/supabase-js'; + +import { useQuery } from '@tanstack/react-query'; + +import { useSupabase } from './use-supabase'; + +export const USER_IDENTITIES_QUERY_KEY = ['user-identities']; + +export function useUserIdentities() { + const supabase = useSupabase(); + + const { + data: identities = [], + isLoading, + error, + refetch, + } = useQuery({ + queryKey: USER_IDENTITIES_QUERY_KEY, + queryFn: async () => { + const { data, error } = await supabase.auth.getUserIdentities(); + + if (error) { + throw error; + } + + return data.identities; + }, + }); + + const connectedProviders = useMemo(() => { + return identities.map((identity) => identity.provider); + }, [identities]); + + const hasMultipleIdentities = identities.length > 1; + + const getIdentityByProvider = (provider: Provider) => { + return identities.find((identity) => identity.provider === provider); + }; + + const isProviderConnected = (provider: Provider) => { + return connectedProviders.includes(provider); + }; + + return { + identities, + connectedProviders, + hasMultipleIdentities, + getIdentityByProvider, + isProviderConnected, + isLoading, + error, + refetch, + }; +} diff --git a/packages/ui/package.json b/packages/ui/package.json index 1570a3261..9bc795456 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -9,7 +9,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@hookform/resolvers": "^5.1.0", + "@hookform/resolvers": "^5.1.1", "@radix-ui/react-accordion": "1.2.11", "@radix-ui/react-alert-dialog": "^1.1.14", "@radix-ui/react-avatar": "^1.1.10", @@ -33,19 +33,19 @@ "clsx": "^2.1.1", "cmdk": "1.1.1", "input-otp": "1.4.2", - "lucide-react": "^0.513.0", + "lucide-react": "^0.514.0", "react-top-loading-bar": "3.0.2", "recharts": "2.15.3", - "tailwind-merge": "^3.3.0" + "tailwind-merge": "^3.3.1" }, "devDependencies": { "@kit/eslint-config": "workspace:*", "@kit/prettier-config": "workspace:*", "@kit/tsconfig": "workspace:*", "@radix-ui/react-icons": "^1.3.2", - "@tanstack/react-query": "5.80.6", + "@tanstack/react-query": "5.80.7", "@tanstack/react-table": "^8.21.3", - "@types/react": "19.1.6", + "@types/react": "19.1.8", "@types/react-dom": "19.1.6", "class-variance-authority": "^0.7.1", "date-fns": "^4.1.0", @@ -55,12 +55,12 @@ "prettier": "^3.5.3", "react-day-picker": "^9.7.0", "react-hook-form": "^7.57.0", - "react-i18next": "^15.5.2", + "react-i18next": "^15.5.3", "sonner": "^2.0.5", - "tailwindcss": "4.1.8", + "tailwindcss": "4.1.10", "tailwindcss-animate": "^1.0.7", "typescript": "^5.8.3", - "zod": "^3.25.56" + "zod": "^3.25.63" }, "prettier": "@kit/prettier-config", "imports": { @@ -129,7 +129,8 @@ "./multi-step-form": "./src/makerkit/multi-step-form.tsx", "./app-breadcrumbs": "./src/makerkit/app-breadcrumbs.tsx", "./empty-state": "./src/makerkit/empty-state.tsx", - "./marketing": "./src/makerkit/marketing/index.tsx" + "./marketing": "./src/makerkit/marketing/index.tsx", + "./oauth-provider-logo-image": "./src/makerkit/oauth-provider-logo-image.tsx" }, "typesVersions": { "*": { diff --git a/packages/features/auth/src/components/oauth-provider-logo-image.tsx b/packages/ui/src/makerkit/oauth-provider-logo-image.tsx similarity index 93% rename from packages/features/auth/src/components/oauth-provider-logo-image.tsx rename to packages/ui/src/makerkit/oauth-provider-logo-image.tsx index b62b47ac6..1b5bfd2d5 100644 --- a/packages/features/auth/src/components/oauth-provider-logo-image.tsx +++ b/packages/ui/src/makerkit/oauth-provider-logo-image.tsx @@ -33,8 +33,8 @@ export function OauthProviderLogoImage({ function getOAuthProviderLogos(): Record { return { - password: , - phone: , + email: , + phone: , google: '/images/oauth/google.webp', facebook: '/images/oauth/facebook.webp', github: '/images/oauth/github.webp', diff --git a/packages/ui/src/makerkit/page.tsx b/packages/ui/src/makerkit/page.tsx index 3e57af12f..527148cce 100644 --- a/packages/ui/src/makerkit/page.tsx +++ b/packages/ui/src/makerkit/page.tsx @@ -46,11 +46,7 @@ function PageWithSidebar(props: PageProps) { > {MobileNavigation} -
+
{Children}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99ae60f07..b9c2b98e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,7 +17,7 @@ importers: version: 0.24.0 '@turbo/gen': specifier: ^2.5.4 - version: 2.5.4(@types/node@22.15.30)(typescript@5.8.3) + version: 2.5.4(@types/node@24.0.1)(typescript@5.8.3) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -35,22 +35,22 @@ importers: dependencies: '@ai-sdk/openai': specifier: ^1.3.22 - version: 1.3.22(zod@3.25.56) + version: 1.3.22(zod@3.25.63) '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) ai: specifier: 4.3.16 - version: 4.3.16(react@19.1.0)(zod@3.25.56) + version: 4.3.16(react@19.1.0)(zod@3.25.63) lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) nodemailer: specifier: ^7.0.3 version: 7.0.3 @@ -83,17 +83,17 @@ importers: specifier: ^4.1.8 version: 4.1.8 '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 '@types/nodemailer': specifier: 6.4.17 version: 6.4.17 '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 '@types/react-dom': specifier: 19.1.6 - version: 19.1.6(@types/react@19.1.6) + version: 19.1.6(@types/react@19.1.8) babel-plugin-react-compiler: specifier: 19.1.0-rc.2 version: 19.1.0-rc.2 @@ -104,26 +104,26 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) tailwindcss: - specifier: 4.1.8 - version: 4.1.8 + specifier: 4.1.10 + version: 4.1.10 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.8) + version: 1.0.7(tailwindcss@4.1.10) typescript: specifier: ^5.8.3 version: 5.8.3 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 apps/e2e: devDependencies: '@playwright/test': - specifier: ^1.52.0 - version: 1.52.0 + specifier: ^1.53.0 + version: 1.53.0 '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 dotenv: specifier: 16.5.0 version: 16.5.0 @@ -138,10 +138,10 @@ importers: dependencies: '@edge-csrf/nextjs': specifier: 2.5.3-cloudflare-rc1 - version: 2.5.3-cloudflare-rc1(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + version: 2.5.3-cloudflare-rc1(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@kit/accounts': specifier: workspace:* version: link:../../packages/features/accounts @@ -201,13 +201,13 @@ importers: version: 0.0.10(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0) '@makerkit/data-loader-supabase-nextjs': specifier: ^1.2.5 - version: 1.2.5(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0)(@tanstack/react-query@5.80.6(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) + version: 1.2.5(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0)(@tanstack/react-query@5.80.7(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) '@marsidev/react-turnstile': specifier: ^1.1.0 version: 1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@nosecone/next': specifier: 1.0.0-beta.8 - version: 1.0.0-beta.8(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + version: 1.0.0-beta.8(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) '@radix-ui/react-icons': specifier: ^1.3.2 version: 1.3.2(react@19.1.0) @@ -215,8 +215,8 @@ importers: specifier: 2.50.0 version: 2.50.0 '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@tanstack/react-table': specifier: ^8.21.3 version: 8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -224,14 +224,14 @@ importers: specifier: ^4.1.0 version: 4.1.0 lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + version: 4.2.3(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) next-themes: specifier: 0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -245,20 +245,17 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) recharts: specifier: 2.15.3 version: 2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - sonner: - specifier: ^2.0.5 - version: 2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) tailwind-merge: - specifier: ^3.3.0 - version: 3.3.0 + specifier: ^3.3.1 + version: 3.3.1 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 devDependencies: '@kit/eslint-config': specifier: workspace:* @@ -276,20 +273,20 @@ importers: specifier: ^4.1.8 version: 4.1.8 '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 '@types/react-dom': specifier: 19.1.6 - version: 19.1.6(@types/react@19.1.6) + version: 19.1.6(@types/react@19.1.8) babel-plugin-react-compiler: specifier: 19.1.0-rc.2 version: 19.1.0-rc.2 cssnano: specifier: ^7.0.7 - version: 7.0.7(postcss@8.5.4) + version: 7.0.7(postcss@8.5.5) pino-pretty: specifier: ^13.0.0 version: 13.0.0 @@ -300,11 +297,11 @@ importers: specifier: ^2.24.3 version: 2.24.3 tailwindcss: - specifier: 4.1.8 - version: 4.1.8 + specifier: 4.1.10 + version: 4.1.10 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.8) + version: 1.0.7(tailwindcss@4.1.10) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -321,8 +318,8 @@ importers: specifier: workspace:* version: link:../../tooling/typescript '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 packages/billing/core: devDependencies: @@ -342,14 +339,14 @@ importers: specifier: workspace:* version: link:../../ui zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/billing/gateway: devDependencies: '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@kit/billing': specifier: workspace:* version: link:../core @@ -381,17 +378,17 @@ importers: specifier: 2.50.0 version: 2.50.0 '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 date-fns: specifier: ^4.1.0 version: 4.1.0 lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -399,11 +396,11 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/billing/lemon-squeezy: dependencies: @@ -433,17 +430,17 @@ importers: specifier: workspace:* version: link:../../ui '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/billing/stripe: dependencies: @@ -455,7 +452,7 @@ importers: version: 7.3.1 stripe: specifier: ^18.2.1 - version: 18.2.1(@types/node@22.15.30) + version: 18.2.1(@types/node@24.0.1) devDependencies: '@kit/billing': specifier: workspace:* @@ -479,20 +476,20 @@ importers: specifier: workspace:* version: link:../../ui '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 date-fns: specifier: ^4.1.0 version: 4.1.0 next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/cms/core: devDependencies: @@ -518,20 +515,20 @@ importers: specifier: workspace:* version: link:../wordpress '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 packages/cms/keystatic: dependencies: '@keystatic/core': specifier: 0.5.47 - version: 0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@keystatic/next': specifier: ^5.0.4 - version: 5.0.4(@keystatic/core@0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.0.4(@keystatic/core@0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@markdoc/markdoc': specifier: ^0.5.2 - version: 0.5.2(@types/react@19.1.6)(react@19.1.0) + version: 0.5.2(@types/react@19.1.8)(react@19.1.0) devDependencies: '@kit/cms-types': specifier: workspace:* @@ -549,17 +546,17 @@ importers: specifier: workspace:* version: link:../../ui '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 react: specifier: 19.1.0 version: 19.1.0 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/cms/types: devDependencies: @@ -591,11 +588,11 @@ importers: specifier: workspace:* version: link:../../ui '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 wp-types: specifier: ^4.68.0 version: 4.68.0 @@ -633,14 +630,14 @@ importers: specifier: 2.50.0 version: 2.50.0 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/email-templates: dependencies: '@react-email/components': - specifier: 0.0.41 - version: 0.0.41(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: 0.0.42 + version: 0.0.42(react-dom@19.1.0(react@19.1.0))(react@19.1.0) devDependencies: '@kit/eslint-config': specifier: workspace:* @@ -662,8 +659,8 @@ importers: version: 5.1.5 devDependencies: '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@kit/billing-gateway': specifier: workspace:* version: link:../../billing/gateway @@ -707,20 +704,20 @@ importers: specifier: 2.50.0 version: 2.50.0 '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 '@types/react-dom': specifier: 19.1.6 - version: 19.1.6(@types/react@19.1.6) + version: 19.1.6(@types/react@19.1.8) lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-themes: specifier: 0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -734,20 +731,17 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) - sonner: - specifier: ^2.0.5 - version: 2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/features/admin: devDependencies: '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@kit/eslint-config': specifier: workspace:* version: link:../../../tooling/eslint @@ -774,25 +768,25 @@ importers: version: 0.0.10(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0) '@makerkit/data-loader-supabase-nextjs': specifier: ^1.2.5 - version: 1.2.5(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0)(@tanstack/react-query@5.80.6(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) + version: 1.2.5(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0)(@tanstack/react-query@5.80.7(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) '@supabase/supabase-js': specifier: 2.50.0 version: 2.50.0 '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@tanstack/react-table': specifier: ^8.21.3 version: 8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -803,14 +797,14 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/features/auth: devDependencies: '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@kit/eslint-config': specifier: workspace:* version: link:../../../tooling/eslint @@ -839,29 +833,29 @@ importers: specifier: 2.50.0 version: 2.50.0 '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-hook-form: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) sonner: specifier: ^2.0.5 version: 2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/features/notifications: devDependencies: @@ -884,14 +878,14 @@ importers: specifier: 2.50.0 version: 2.50.0 '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -899,8 +893,8 @@ importers: specifier: 19.1.0 version: 19.1.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) packages/features/team-accounts: dependencies: @@ -909,8 +903,8 @@ importers: version: 5.1.5 devDependencies: '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@kit/accounts': specifier: workspace:* version: link:../accounts @@ -954,17 +948,17 @@ importers: specifier: 2.50.0 version: 2.50.0 '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@tanstack/react-table': specifier: ^8.21.3 version: 8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 '@types/react-dom': specifier: 19.1.6 - version: 19.1.6(@types/react@19.1.6) + version: 19.1.6(@types/react@19.1.8) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -972,11 +966,11 @@ importers: specifier: ^4.1.0 version: 4.1.0 lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -987,14 +981,11 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) - sonner: - specifier: ^2.0.5 - version: 2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/i18n: dependencies: @@ -1002,8 +993,8 @@ importers: specifier: 25.2.1 version: 25.2.1(typescript@5.8.3) i18next-browser-languagedetector: - specifier: 8.1.0 - version: 8.1.0 + specifier: 8.2.0 + version: 8.2.0 i18next-resources-to-backend: specifier: ^1.2.1 version: 1.2.1 @@ -1021,11 +1012,11 @@ importers: specifier: workspace:* version: link:../../tooling/typescript '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1033,8 +1024,8 @@ importers: specifier: 19.1.0 version: 19.1.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) packages/mailers/core: devDependencies: @@ -1060,11 +1051,11 @@ importers: specifier: workspace:* version: link:../../../tooling/typescript '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/mailers/nodemailer: dependencies: @@ -1088,8 +1079,8 @@ importers: specifier: 6.4.17 version: 6.4.17 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/mailers/resend: devDependencies: @@ -1106,11 +1097,11 @@ importers: specifier: workspace:* version: link:../../../tooling/typescript '@types/node': - specifier: ^22.15.30 - version: 22.15.30 + specifier: ^24.0.1 + version: 24.0.1 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/mailers/shared: devDependencies: @@ -1124,8 +1115,8 @@ importers: specifier: workspace:* version: link:../../../tooling/typescript zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/monitoring/api: devDependencies: @@ -1151,20 +1142,20 @@ importers: specifier: workspace:* version: link:../../../tooling/typescript '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 react: specifier: 19.1.0 version: 19.1.0 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/monitoring/baselime: dependencies: '@baselime/node-opentelemetry': specifier: ^0.5.8 - version: 0.5.8(@trpc/server@11.3.1(typescript@5.8.3)) + version: 0.5.8(@trpc/server@11.4.0(typescript@5.8.3)) '@baselime/react-rum': specifier: ^0.3.1 version: 0.3.1(react@19.1.0) @@ -1182,14 +1173,14 @@ importers: specifier: workspace:* version: link:../../../tooling/typescript '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 react: specifier: 19.1.0 version: 19.1.0 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/monitoring/core: devDependencies: @@ -1203,8 +1194,8 @@ importers: specifier: workspace:* version: link:../../../tooling/typescript '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 react: specifier: 19.1.0 version: 19.1.0 @@ -1212,8 +1203,8 @@ importers: packages/monitoring/sentry: dependencies: '@sentry/nextjs': - specifier: ^9.27.0 - version: 9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.99.9) + specifier: ^9.28.1 + version: 9.28.1(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.99.9) import-in-the-middle: specifier: 1.14.0 version: 1.14.0 @@ -1231,8 +1222,8 @@ importers: specifier: workspace:* version: link:../../../tooling/typescript '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 react: specifier: 19.1.0 version: 19.1.0 @@ -1262,16 +1253,16 @@ importers: version: 2.50.0 next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/otp: devDependencies: '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@kit/email-templates': specifier: workspace:* version: link:../email-templates @@ -1306,11 +1297,11 @@ importers: specifier: 2.50.0 version: 2.50.0 '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 '@types/react-dom': specifier: 19.1.6 - version: 19.1.6(@types/react@19.1.6) + version: 19.1.6(@types/react@19.1.8) react: specifier: 19.1.0 version: 19.1.0 @@ -1321,8 +1312,8 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/shared: dependencies: @@ -1340,8 +1331,8 @@ importers: specifier: workspace:* version: link:../../tooling/typescript '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 packages/supabase: devDependencies: @@ -1361,14 +1352,14 @@ importers: specifier: 2.50.0 version: 2.50.0 '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1376,86 +1367,86 @@ importers: specifier: ^0.0.1 version: 0.0.1 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 packages/ui: dependencies: '@hookform/resolvers': - specifier: ^5.1.0 - version: 5.1.0(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@radix-ui/react-accordion': specifier: 1.2.11 - version: 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-alert-dialog': specifier: ^1.1.14 - version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-avatar': specifier: ^1.1.10 - version: 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-checkbox': specifier: ^1.3.2 - version: 1.3.2(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-collapsible': specifier: 1.1.11 - version: 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dialog': specifier: ^1.1.14 - version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dropdown-menu': specifier: ^2.1.15 - version: 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-label': specifier: ^2.1.7 - version: 2.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-navigation-menu': specifier: ^1.2.13 - version: 1.2.13(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-popover': specifier: ^1.1.14 - version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-progress': specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-radio-group': specifier: ^1.3.7 - version: 1.3.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-scroll-area': specifier: ^1.2.9 - version: 1.2.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-select': specifier: ^2.2.5 - version: 2.2.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-separator': specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: 1.2.3 - version: 1.2.3(@types/react@19.1.6)(react@19.1.0) + version: 1.2.3(@types/react@19.1.8)(react@19.1.0) '@radix-ui/react-switch': specifier: ^1.2.5 - version: 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tabs': specifier: ^1.1.12 - version: 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-toast': specifier: ^1.2.14 - version: 1.2.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tooltip': specifier: 1.2.7 - version: 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) clsx: specifier: ^2.1.1 version: 2.1.1 cmdk: specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.1(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) input-otp: specifier: 1.4.2 version: 1.4.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) react-top-loading-bar: specifier: 3.0.2 version: 3.0.2(react@19.1.0) @@ -1463,8 +1454,8 @@ importers: specifier: 2.15.3 version: 2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) tailwind-merge: - specifier: ^3.3.0 - version: 3.3.0 + specifier: ^3.3.1 + version: 3.3.1 devDependencies: '@kit/eslint-config': specifier: workspace:* @@ -1479,17 +1470,17 @@ importers: specifier: ^1.3.2 version: 1.3.2(react@19.1.0) '@tanstack/react-query': - specifier: 5.80.6 - version: 5.80.6(react@19.1.0) + specifier: 5.80.7 + version: 5.80.7(react@19.1.0) '@tanstack/react-table': specifier: ^8.21.3 version: 8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/react': - specifier: 19.1.6 - version: 19.1.6 + specifier: 19.1.8 + version: 19.1.8 '@types/react-dom': specifier: 19.1.6 - version: 19.1.6(@types/react@19.1.6) + version: 19.1.6(@types/react@19.1.8) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -1501,7 +1492,7 @@ importers: version: 9.28.0(jiti@2.4.2) next: specifier: 15.3.3 - version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-themes: specifier: 0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -1515,23 +1506,23 @@ importers: specifier: ^7.57.0 version: 7.57.0(react@19.1.0) react-i18next: - specifier: ^15.5.2 - version: 15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^15.5.3 + version: 15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) sonner: specifier: ^2.0.5 version: 2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) tailwindcss: - specifier: 4.1.8 - version: 4.1.8 + specifier: 4.1.10 + version: 4.1.10 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.8) + version: 1.0.7(tailwindcss@4.1.10) typescript: specifier: ^5.8.3 version: 5.8.3 zod: - specifier: ^3.25.56 - version: 3.25.56 + specifier: ^3.25.63 + version: 3.25.63 tooling/eslint: dependencies: @@ -1548,8 +1539,8 @@ importers: specifier: ^2.5.4 version: 2.5.4(eslint@9.28.0(jiti@2.4.2))(turbo@2.5.4) typescript-eslint: - specifier: 8.33.1 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) devDependencies: '@kit/prettier-config': specifier: workspace:* @@ -1568,13 +1559,13 @@ importers: dependencies: '@trivago/prettier-plugin-sort-imports': specifier: 5.2.2 - version: 5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.33.17) + version: 5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.34.1) prettier: specifier: ^3.5.3 version: 3.5.3 prettier-plugin-tailwindcss: specifier: ^0.6.12 - version: 0.6.12(@trivago/prettier-plugin-sort-imports@5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.33.17))(prettier@3.5.3) + version: 0.6.12(@trivago/prettier-plugin-sort-imports@5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.34.1))(prettier@3.5.3) devDependencies: '@kit/tsconfig': specifier: workspace:* @@ -1721,14 +1712,14 @@ packages: resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.27.1': - resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.27.3': resolution: {integrity: sha512-7EYtGezsdiDMyY80+65EzwiGmcJqpmcZCojSXaRgdrBaGtWTgDZKq69cPIVped6MkIM78cTQ2GOiEYjwOlG4xw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} + engines: {node: '>=6.9.0'} + '@babel/template@7.27.0': resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} engines: {node: '>=6.9.0'} @@ -1919,8 +1910,8 @@ packages: engines: {node: '>=6'} hasBin: true - '@hookform/resolvers@5.1.0': - resolution: {integrity: sha512-A5tY8gxqvvR0lFfropqpy/gUDOxjwT7LZCxJ8lNA9puK7nFNRl/O0egGKxzdF4JSz/pnnT1O8g76P/YMyTBEFw==} + '@hookform/resolvers@5.1.1': + resolution: {integrity: sha512-J/NVING3LMAEvexJkyTLjruSm7aOFx7QX21pzkiJfMoNG0wl5aFEjLTl7ay7IQb9EWY6AkrBy7tHL2Alijpdcg==} peerDependencies: react-hook-form: ^7.55.0 @@ -2625,8 +2616,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test@1.52.0': - resolution: {integrity: sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==} + '@playwright/test@1.53.0': + resolution: {integrity: sha512-15hjKreZDcp7t6TL/7jkAo6Df5STZN09jGiv5dbP9A6vMVncXRqE7/B2SncsyOwrkZRBH2i6/TPOL8BVmm3c7w==} engines: {node: '>=18'} hasBin: true @@ -3558,8 +3549,8 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - '@react-email/components@0.0.41': - resolution: {integrity: sha512-WUI3wHwra3QS0pwrovSU6b0I0f3TvY33ph0y44LuhSYDSQlMRyeOzgoT6HRDY5FXMDF57cHYq9WoKwpwP0yd7Q==} + '@react-email/components@0.0.42': + resolution: {integrity: sha512-KZtf7RjCoLgEwa5swrsbEF/liGrmfMlZCDNDXqaAjlgF3iRq0h5KY/HNMs6LbLmW7fEneRhnynrwApwbkEwe+A==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -3648,8 +3639,8 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - '@react-email/text@0.1.4': - resolution: {integrity: sha512-cMNE02y8172DocpNGh97uV5HSTawaS4CKG/zOku8Pu+m6ehBKbAjgtQZDIxhgstw8+TWraFB8ltS1DPjfG8nLA==} + '@react-email/text@0.1.5': + resolution: {integrity: sha512-o5PNHFSE085VMXayxH+SJ1LSOtGsTv+RpNKnTiJDrJUwoBu77G3PlKOsZZQHCNyD28WsQpl9v2WcJLbQudqwPg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -4041,28 +4032,28 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry-internal/browser-utils@9.27.0': - resolution: {integrity: sha512-SJa7f6Ct1BzP8rWEomnshSGN1CmT+axNKvT+StrbFPD6AyHnYfFLJpKgc2iToIJHB/pmeuOI9dUwqtzVx+5nSw==} + '@sentry-internal/browser-utils@9.28.1': + resolution: {integrity: sha512-P/FEZkT7UqTw9P/2n/Y4Aa1OtGP6dnCvyqzPPkjiRdVa7Ep7S5ElBJloGv7077TLLBtAfCsEUVRlM1F6/jQoaA==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.27.0': - resolution: {integrity: sha512-e7L8eG0y63RulN352lmafoCCfQGg4jLVT8YLx6096eWu/YKLkgmVpgi8livsT5WREnH+HB+iFSrejOwK7cRkhw==} + '@sentry-internal/feedback@9.28.1': + resolution: {integrity: sha512-HOk/c26D3nlClO/xEefev8fIJzRA621PFQvNFPu/y0Z5HujEqSmIsrff0cXszPPYD95h4Mwk63E0ZYdspdeXcw==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.27.0': - resolution: {integrity: sha512-44rVSt3LCH6qePYRQrl4WUBwnkOk9dzinmnKmuwRksEdDOkVq5KBRhi/IDr7omwSpX8C+KrX5alfKhOx1cP0gQ==} + '@sentry-internal/replay-canvas@9.28.1': + resolution: {integrity: sha512-RtkogfcIpXLFCyV8CTnXmVTH2QauT/KwmUAXBbeOz3rRWsM19yjN1moHrsjxn7OdjTv+D4qWSCA8Ka1aKSpr7g==} engines: {node: '>=18'} - '@sentry-internal/replay@9.27.0': - resolution: {integrity: sha512-n2kO1wOfCG7GxkMAqbYYkpgTqJM5tuVLdp0JuNCqTOLTXWvw6svWGaYKlYpKUgsK9X/GDzJYSXZmfe+Dbg+FJQ==} + '@sentry-internal/replay@9.28.1': + resolution: {integrity: sha512-Tv9pkfAX+1bmhxF42TL0c4uTiK2+rp5LMYEPdz6JBfpfvG/Z1unPGsuB7fQmHYKyfHBQJmi92DZV+smljm7w/g==} engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@3.5.0': resolution: {integrity: sha512-s2go8w03CDHbF9luFGtBHKJp4cSpsQzNVqgIa9Pfa4wnjipvrK6CxVT4icpLA3YO6kg5u622Yoa5GF3cJdippw==} engines: {node: '>= 14'} - '@sentry/browser@9.27.0': - resolution: {integrity: sha512-geR3lhRJOmUQqi1WgovLSYcD/f66zYnctdnDEa7j1BW2XIB1nlTJn0mpYyAHghXKkUN/pBpp1Z+Jk0XlVwFYVg==} + '@sentry/browser@9.28.1': + resolution: {integrity: sha512-XAS46iQSq8lXTnv9udQP025JTf3PwSVRE9ePJVQhx25QBWxedqGhEOv5qqX9b1Ijf8KiZYXXhBWMQxBBXVzUaw==} engines: {node: '>=18'} '@sentry/bundler-plugin-core@3.5.0': @@ -4115,22 +4106,22 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@9.27.0': - resolution: {integrity: sha512-Zb2SSAdWXQjTem+sVWrrAq9L6YYfxyoTwtapaE6C6qZBR5C8Uak0wcYww8StaCFH7dDA/PSW+VxOwjNXocrQHQ==} + '@sentry/core@9.28.1': + resolution: {integrity: sha512-6q59r/71MeE+4StkvwdKAAyhBBNpWcii0HeiWBZ3l1gaFYQlb6bChjZJRZmxSzF5dnvkdF4duQbAC3JmjeIbPA==} engines: {node: '>=18'} - '@sentry/nextjs@9.27.0': - resolution: {integrity: sha512-xz4NcA5istwSa2V8DiEJLjHOY3AcThIQNKBXaFEZ8egzEBAm7Ig8R/TtVh4kaY8kCByQdsh0mEMREH/eI/yRmg==} + '@sentry/nextjs@9.28.1': + resolution: {integrity: sha512-3ryNddo0S+Ni2pcUx9u3hxhXvbGpjU8dLO8lemH3chlDMG787URD/IpO9o+mN/WXJcA/UnNFgDMebQ4bXSRj1g==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - '@sentry/node@9.27.0': - resolution: {integrity: sha512-EVyDfGRjMAL+SS0lFYK8BKZZiVfKBu6sItX/m2CGcpVLjTwhGxJQWdHlKJMEe8hIkjabME+VLL/mnkA3mINSfQ==} + '@sentry/node@9.28.1': + resolution: {integrity: sha512-1bC8ywFPs1EIKzRlUhLoreTR/fUU45O+ezVNvOu0I6JURMwjyC8uT23f0Xkiolx4WjKZXER+d0el3HojPaYkYw==} engines: {node: '>=18'} - '@sentry/opentelemetry@9.27.0': - resolution: {integrity: sha512-IHhDUdZU+gAUEupovcoUBgXfzQoMDh6n8epjLGpV5LxjiujM+byvvrBD7Witoz/ZilOFn585uvncW7juCe7grw==} + '@sentry/opentelemetry@9.28.1': + resolution: {integrity: sha512-1xxriB2diNSlNpkMosdgIKzPOPwAiyFg7XgEWKpLtDYWj7WVbLNyLkUWriFr4JgU40uZp3LW+sGgnshA48/zQQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -4140,14 +4131,14 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 '@opentelemetry/semantic-conventions': ^1.34.0 - '@sentry/react@9.27.0': - resolution: {integrity: sha512-UT7iaGEwTqe06O4mgHfKGTRBHg+U0JSI/id+QxrOji6ksosOsSnSC3Vdq+gPs9pzCCFE+6+DkH6foYNNLIN0lw==} + '@sentry/react@9.28.1': + resolution: {integrity: sha512-XnEURhb2wG7FFCGMuW/IJc8YeDMb9LM7cZSBwBDcplR11mCRsLpf4AGm6K1nWmAn5ZvWrXRO/TBAf9DNRAfnfg==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@9.27.0': - resolution: {integrity: sha512-3/Ou4fCZjaDOnyuDfw0iqMauWLzPI9GKUVcHq4+kvZacS/JE4FvoFAHZApT3fiMOP01RDNjQ1TmEJTKOI05Mtg==} + '@sentry/vercel-edge@9.28.1': + resolution: {integrity: sha512-fX4Zc3uzpnJxcallZrWCvXFaMDBy710KlnPll3ja82QJVIhyzCf2ot109jGW8mKlpMXXBbDSKGZlY0v4pQW+lg==} engines: {node: '>=18'} '@sentry/webpack-plugin@3.5.0': @@ -4307,11 +4298,11 @@ packages: '@tailwindcss/postcss@4.1.8': resolution: {integrity: sha512-vB/vlf7rIky+w94aWMw34bWW1ka6g6C3xIOdICKX2GC0VcLtL6fhlLiafF0DVIwa9V6EHz8kbWMkS2s2QvvNlw==} - '@tanstack/query-core@5.80.6': - resolution: {integrity: sha512-nl7YxT/TAU+VTf+e2zTkObGTyY8YZBMnbgeA1ee66lIVqzKlYursAII6z5t0e6rXgwUMJSV4dshBTNacNpZHbQ==} + '@tanstack/query-core@5.80.7': + resolution: {integrity: sha512-s09l5zeUKC8q7DCCCIkVSns8zZrK4ZDT6ryEjxNBFi68G4z2EBobBS7rdOY3r6W1WbUDpc1fe5oY+YO/+2UVUg==} - '@tanstack/react-query@5.80.6': - resolution: {integrity: sha512-izX+5CnkpON3NQGcEm3/d7LfFQNo9ZpFtX2QsINgCYK9LT2VCIdi8D3bMaMSNhrAJCznRoAkFic76uvLroALBw==} + '@tanstack/react-query@5.80.7': + resolution: {integrity: sha512-u2F0VK6+anItoEvB3+rfvTO9GEh2vb00Je05OwlUe/A0lkJBgW1HckiY3f9YZa+jx6IOe4dHPh10dyp9aY3iRQ==} peerDependencies: react: ^18 || ^19 @@ -4350,8 +4341,8 @@ packages: svelte: optional: true - '@trpc/server@11.3.1': - resolution: {integrity: sha512-5Rjigjqwl9ieXL91ebZ1M4FPFXQJ5qipRyZuBoNzvqkq7Qlig+2F4WwLELyiTSNk2bGzdJTXJMKLhRE9Z56D8w==} + '@trpc/server@11.4.0': + resolution: {integrity: sha512-ubE5LgMQuVH5PKcaFq0JJaHbAT3bBV8m1rdlLYEDjJG85zGrYak+6YkXIzUct/LYYXNg/FgyGrqOTM2FyzAlhQ==} peerDependencies: typescript: '>=5.7.2' @@ -4486,8 +4477,8 @@ packages: '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/node@22.15.30': - resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==} + '@types/node@24.0.1': + resolution: {integrity: sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw==} '@types/nodemailer@6.4.17': resolution: {integrity: sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==} @@ -4509,8 +4500,8 @@ packages: peerDependencies: '@types/react': ^19.0.0 - '@types/react@19.1.6': - resolution: {integrity: sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==} + '@types/react@19.1.8': + resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==} '@types/shimmer@1.2.0': resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} @@ -4541,6 +4532,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/eslint-plugin@8.34.0': + resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.34.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@8.33.1': resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4548,22 +4547,45 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@8.34.0': + resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/project-service@8.33.1': resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/project-service@8.34.0': + resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/scope-manager@8.33.1': resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.34.0': + resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.33.1': resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/tsconfig-utils@8.34.0': + resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.33.1': resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4571,16 +4593,33 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.34.0': + resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/types@8.33.1': resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.34.0': + resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.33.1': resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/typescript-estree@8.34.0': + resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.33.1': resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4588,10 +4627,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.34.0': + resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/visitor-keys@8.33.1': resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.34.0': + resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@unrs/resolver-binding-darwin-arm64@1.7.11': resolution: {integrity: sha512-i3/wlWjQJXMh1uiGtiv7k1EYvrrS3L1hdwmWJJiz1D8jWy726YFYPIxQWbEIVPVAgrfRR0XNlLrTQwq17cuCGw==} cpu: [arm64] @@ -4786,6 +4836,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -4971,6 +5026,9 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -5023,6 +5081,9 @@ packages: caniuse-lite@1.0.30001721: resolution: {integrity: sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==} + caniuse-lite@1.0.30001722: + resolution: {integrity: sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -5480,8 +5541,8 @@ packages: electron-to-chromium@1.5.151: resolution: {integrity: sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==} - electron-to-chromium@1.5.165: - resolution: {integrity: sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==} + electron-to-chromium@1.5.167: + resolution: {integrity: sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==} emery@1.4.4: resolution: {integrity: sha512-mMoO3uGDoiw/DmZ/YekT9gEoC0IFAXNWzYVukY8+/j0Wt8un1IDraIYGx+cMbRh+fHaCDE6Ui7zFAN8ezZSsAA==} @@ -5668,6 +5729,10 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@9.28.0: resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5694,8 +5759,8 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@1.4.7: - resolution: {integrity: sha512-0ZxW6guTF/AeKeKi7he93lmgv7Hx7giD1tBrOeVqkqsZGQJd2/kfnL7LdIsr9FT/AtkBK9XeDTov+gxprBqdEg==} + esrap@1.4.9: + resolution: {integrity: sha512-3OMlcd0a03UGuZpPeUC1HxR3nA23l+HEyCiZw3b3FumJIN9KphoGzDJKMXI1S72jVS1dsenDyQC0kJlO1U9E1g==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -5800,6 +5865,14 @@ packages: picomatch: optional: true + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -6065,8 +6138,8 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - i18next-browser-languagedetector@8.1.0: - resolution: {integrity: sha512-mHZxNx1Lq09xt5kCauZ/4bsXOEA2pfpwSoU11/QTJB+pD94iONFwp+ohqi///PwiFvjFOxe1akYCdHyFo1ng5Q==} + i18next-browser-languagedetector@8.2.0: + resolution: {integrity: sha512-P+3zEKLnOF0qmiesW383vsLdtQVyKtCNA9cjSoKCppTKPQVfKd2W8hbVo5ZhNJKDqeM7BOcvNoKJOjpHh4Js9g==} i18next-resources-to-backend@1.2.1: resolution: {integrity: sha512-okHbVA+HZ7n1/76MsfhPqDou0fptl2dAlhRDu2ideXloRRduzHsqDOznJBef+R3DFZnbvWoBW+KxJ7fnFjd6Yw==} @@ -6591,8 +6664,8 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lucide-react@0.513.0: - resolution: {integrity: sha512-CJZKq2g8Y8yN4Aq002GahSXbG2JpFv9kXwyiOAMvUBv7pxeOFHUWKB0mO7MiY4ZVFCV4aNjv2BJFq/z3DgKPQg==} + lucide-react@0.514.0: + resolution: {integrity: sha512-HXD0OAMd+JM2xCjlwG1EGW9Nuab64dhjO3+MvdyD+pSUeOTBaVAPhQblKIYmmX4RyBYbdzW0VWnJpjJmxWGr6w==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -7139,13 +7212,13 @@ packages: resolution: {integrity: sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==} hasBin: true - playwright-core@1.52.0: - resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==} + playwright-core@1.53.0: + resolution: {integrity: sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==} engines: {node: '>=18'} hasBin: true - playwright@1.52.0: - resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==} + playwright@1.53.0: + resolution: {integrity: sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q==} engines: {node: '>=18'} hasBin: true @@ -7330,6 +7403,10 @@ packages: resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.5: + resolution: {integrity: sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -7512,8 +7589,8 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - react-i18next@15.5.2: - resolution: {integrity: sha512-ePODyXgmZQAOYTbZXQn5rRsSBu3Gszo69jxW6aKmlSgxKAI1fOhDwSu6bT4EKHciWPKQ7v7lPrjeiadR6Gi+1A==} + react-i18next@15.5.3: + resolution: {integrity: sha512-ypYmOKOnjqPEJZO4m1BI0kS8kWqkBNsKYyhVUfij0gvjy9xJNoG/VcGkxq5dRlVwzmrmY1BQMAmpbbUBLwC4Kw==} peerDependencies: i18next: '>= 23.2.3' react: '>= 16.8.0' @@ -8026,8 +8103,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte@5.33.17: - resolution: {integrity: sha512-y453Ac1Xi/MFXbGIDK89YH1CeXlFk+aTsDQ1uMc7iE+iVau6ZnE4t3iWsr0oxKnIApjfI7CL4R1NEHzVMUrkVg==} + svelte@5.34.1: + resolution: {integrity: sha512-jWNnN2hZFNtnzKPptCcJHBWrD9CtbHPDwIRIODufOYaWkR0kLmAIlM384lMt4ucwuIRX4hCJwD2D8ZtEcGJQ0Q==} engines: {node: '>=18'} svgo@3.3.2: @@ -8046,14 +8123,17 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwind-merge@3.3.0: - resolution: {integrity: sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==} + tailwind-merge@3.3.1: + resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' + tailwindcss@4.1.10: + resolution: {integrity: sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==} + tailwindcss@4.1.8: resolution: {integrity: sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==} @@ -8081,8 +8161,8 @@ packages: uglify-js: optional: true - terser@5.41.0: - resolution: {integrity: sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==} + terser@5.42.0: + resolution: {integrity: sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==} engines: {node: '>=10'} hasBin: true @@ -8237,8 +8317,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.33.1: - resolution: {integrity: sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==} + typescript-eslint@8.34.0: + resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8258,8 +8338,8 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} undici@6.21.2: resolution: {integrity: sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==} @@ -8557,8 +8637,8 @@ packages: peerDependencies: zod: ^3.24.1 - zod@3.25.56: - resolution: {integrity: sha512-rd6eEF3BTNvQnR2e2wwolfTmUTnp70aUTqr0oaGbHifzC3BKJsoV+Gat8vxUMR1hwOKBs6El+qWehrHbCpW6SQ==} + zod@3.25.63: + resolution: {integrity: sha512-3ttCkqhtpncYXfP0f6dsyabbYV/nEUW+Xlu89jiXbTBifUfjaSqXOG6JnQPLtqt87n7KAmnMqcjay6c0Wq0Vbw==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -8569,39 +8649,39 @@ snapshots: optionalDependencies: graphql: 16.10.0 - '@ai-sdk/openai@1.3.22(zod@3.25.56)': + '@ai-sdk/openai@1.3.22(zod@3.25.63)': dependencies: '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.8(zod@3.25.56) - zod: 3.25.56 + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.63) + zod: 3.25.63 - '@ai-sdk/provider-utils@2.2.8(zod@3.25.56)': + '@ai-sdk/provider-utils@2.2.8(zod@3.25.63)': dependencies: '@ai-sdk/provider': 1.1.3 nanoid: 3.3.11 secure-json-parse: 2.7.0 - zod: 3.25.56 + zod: 3.25.63 '@ai-sdk/provider@1.1.3': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@1.2.12(react@19.1.0)(zod@3.25.56)': + '@ai-sdk/react@1.2.12(react@19.1.0)(zod@3.25.63)': dependencies: - '@ai-sdk/provider-utils': 2.2.8(zod@3.25.56) - '@ai-sdk/ui-utils': 1.2.11(zod@3.25.56) + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.63) + '@ai-sdk/ui-utils': 1.2.11(zod@3.25.63) react: 19.1.0 swr: 2.3.3(react@19.1.0) throttleit: 2.1.0 optionalDependencies: - zod: 3.25.56 + zod: 3.25.63 - '@ai-sdk/ui-utils@1.2.11(zod@3.25.56)': + '@ai-sdk/ui-utils@1.2.11(zod@3.25.63)': dependencies: '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.8(zod@3.25.56) - zod: 3.25.56 - zod-to-json-schema: 3.24.5(zod@3.25.56) + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.63) + zod: 3.25.63 + zod-to-json-schema: 3.24.5(zod@3.25.63) '@alloc/quick-lru@5.2.0': {} @@ -8722,10 +8802,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/runtime@7.27.1': {} - '@babel/runtime@7.27.3': {} + '@babel/runtime@7.27.6': {} + '@babel/template@7.27.0': dependencies: '@babel/code-frame': 7.26.2 @@ -8777,7 +8857,7 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@baselime/node-opentelemetry@0.5.8(@trpc/server@11.3.1(typescript@5.8.3))': + '@baselime/node-opentelemetry@0.5.8(@trpc/server@11.4.0(typescript@5.8.3))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/exporter-trace-otlp-http': 0.50.0(@opentelemetry/api@1.9.0) @@ -8787,7 +8867,7 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': 0.50.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) - '@trpc/server': 11.3.1(typescript@5.8.3) + '@trpc/server': 11.4.0(typescript@5.8.3) '@types/aws-lambda': 8.10.148 axios: 1.8.4 flat: 6.0.1 @@ -8815,9 +8895,9 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@edge-csrf/nextjs@2.5.3-cloudflare-rc1(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': + '@edge-csrf/nextjs@2.5.3-cloudflare-rc1(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': dependencies: - next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@emnapi/core@1.4.3': dependencies: @@ -9002,7 +9082,7 @@ snapshots: protobufjs: 7.4.0 yargs: 17.7.2 - '@hookform/resolvers@5.1.0(react-hook-form@7.57.0(react@19.1.0))': + '@hookform/resolvers@5.1.1(react-hook-form@7.57.0(react@19.1.0))': dependencies: '@standard-schema/utils': 0.3.0 react-hook-form: 7.57.0(react@19.1.0) @@ -9153,7 +9233,7 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@keystar/ui@0.7.19(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@keystar/ui@0.7.19(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.27.0 '@emotion/css': 11.13.5 @@ -9240,25 +9320,25 @@ snapshots: '@react-types/switch': 3.5.10(react@19.1.0) '@react-types/table': 3.12.0(react@19.1.0) '@react-types/tabs': 3.3.14(react@19.1.0) - '@types/react': 19.1.6 + '@types/react': 19.1.8 emery: 1.4.4 facepaint: 1.2.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - '@keystatic/core@0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@keystatic/core@0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.27.0 '@braintree/sanitize-url': 6.0.4 '@emotion/weak-memoize': 0.3.1 '@floating-ui/react': 0.24.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@internationalized/string': 3.2.6 - '@keystar/ui': 0.7.19(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@markdoc/markdoc': 0.4.0(@types/react@19.1.6)(react@19.1.0) + '@keystar/ui': 0.7.19(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@markdoc/markdoc': 0.4.0(@types/react@19.1.8)(react@19.1.0) '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -9275,7 +9355,7 @@ snapshots: '@sindresorhus/slugify': 1.1.2 '@toeverything/y-indexeddb': 0.10.0-canary.9(yjs@13.6.26) '@ts-gql/tag': 0.7.3(graphql@16.10.0) - '@types/react': 19.1.6 + '@types/react': 19.1.8 '@urql/core': 5.1.1(graphql@16.10.0) '@urql/exchange-auth': 2.2.1(@urql/core@5.1.1(graphql@16.10.0)) '@urql/exchange-graphcache': 7.2.3(@urql/core@5.1.1(graphql@16.10.0))(graphql@16.10.0) @@ -9328,13 +9408,13 @@ snapshots: - next - supports-color - '@keystatic/next@5.0.4(@keystatic/core@0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@keystatic/next@5.0.4(@keystatic/core@0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.27.0 - '@keystatic/core': 0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@types/react': 19.1.6 + '@keystatic/core': 0.5.47(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@types/react': 19.1.8 chokidar: 3.6.0 - next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) server-only: 0.0.1 @@ -9347,12 +9427,12 @@ snapshots: '@supabase/supabase-js': 2.50.0 ts-case-convert: 2.1.0 - '@makerkit/data-loader-supabase-nextjs@1.2.5(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0)(@tanstack/react-query@5.80.6(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': + '@makerkit/data-loader-supabase-nextjs@1.2.5(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0)(@tanstack/react-query@5.80.7(react@19.1.0))(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': dependencies: '@makerkit/data-loader-supabase-core': 0.0.10(@supabase/postgrest-js@1.19.4)(@supabase/supabase-js@2.50.0) '@supabase/supabase-js': 2.50.0 - '@tanstack/react-query': 5.80.6(react@19.1.0) - next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/react-query': 5.80.7(react@19.1.0) + next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 transitivePeerDependencies: - '@supabase/postgrest-js' @@ -9386,17 +9466,17 @@ snapshots: js-yaml: 4.1.0 tinyglobby: 0.2.13 - '@markdoc/markdoc@0.4.0(@types/react@19.1.6)(react@19.1.0)': + '@markdoc/markdoc@0.4.0(@types/react@19.1.8)(react@19.1.0)': optionalDependencies: '@types/markdown-it': 12.2.3 - '@types/react': 19.1.6 + '@types/react': 19.1.8 react: 19.1.0 - '@markdoc/markdoc@0.5.2(@types/react@19.1.6)(react@19.1.0)': + '@markdoc/markdoc@0.5.2(@types/react@19.1.8)(react@19.1.0)': optionalDependencies: '@types/linkify-it': 3.0.5 '@types/markdown-it': 12.2.3 - '@types/react': 19.1.6 + '@types/react': 19.1.8 react: 19.1.0 '@marsidev/react-turnstile@1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': @@ -9464,9 +9544,9 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@nosecone/next@1.0.0-beta.8(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': + '@nosecone/next@1.0.0-beta.8(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': dependencies: - next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) nosecone: 1.0.0-beta.8 '@opentelemetry/api-logs@0.50.0': @@ -9910,9 +9990,9 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@playwright/test@1.52.0': + '@playwright/test@1.53.0': dependencies: - playwright: 1.52.0 + playwright: 1.53.0 '@pnpm/config.env-replace@1.1.0': {} @@ -9962,608 +10042,608 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-alert-dialog@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-alert-dialog@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-context@1.1.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) aria-hidden: 1.2.6 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.7.0(@types/react@19.1.6)(react@19.1.0) + react-remove-scroll: 2.7.0(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) '@radix-ui/react-icons@1.3.2(react@19.1.0)': dependencies: react: 19.1.0 - '@radix-ui/react-id@1.1.0(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-id@1.1.0(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-id@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) aria-hidden: 1.2.6 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.7.0(@types/react@19.1.6)(react@19.1.0) + react-remove-scroll: 2.7.0(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-navigation-menu@1.2.13(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-navigation-menu@1.2.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) aria-hidden: 1.2.6 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.7.0(@types/react@19.1.6)(react@19.1.0) + react-remove-scroll: 2.7.0(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0) '@radix-ui/rect': 1.1.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-scroll-area@1.2.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-scroll-area@1.2.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-select@2.2.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-select@2.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) aria-hidden: 1.2.6 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.7.0(@types/react@19.1.6)(react@19.1.0) + react-remove-scroll: 2.7.0(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-slot@1.1.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-slot@1.1.2(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-slot@1.2.3(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-toast@1.2.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-toast@1.2.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 use-sync-external-store: 1.5.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) '@radix-ui/rect@1.1.1': {} @@ -11149,7 +11229,7 @@ snapshots: dependencies: react: 19.1.0 - '@react-email/components@0.0.41(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@react-email/components@0.0.42(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@react-email/body': 0.0.11(react@19.1.0) '@react-email/button': 0.0.19(react@19.1.0) @@ -11170,7 +11250,7 @@ snapshots: '@react-email/row': 0.0.12(react@19.1.0) '@react-email/section': 0.0.16(react@19.1.0) '@react-email/tailwind': 1.0.5(react@19.1.0) - '@react-email/text': 0.1.4(react@19.1.0) + '@react-email/text': 0.1.5(react@19.1.0) react: 19.1.0 transitivePeerDependencies: - react-dom @@ -11236,7 +11316,7 @@ snapshots: dependencies: react: 19.1.0 - '@react-email/text@0.1.4(react@19.1.0)': + '@react-email/text@0.1.5(react@19.1.0)': dependencies: react: 19.1.0 @@ -11608,7 +11688,7 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@4.35.0) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.5(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.2) is-reference: 1.2.1 magic-string: 0.30.17 picomatch: 4.0.2 @@ -11689,33 +11769,33 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@sentry-internal/browser-utils@9.27.0': + '@sentry-internal/browser-utils@9.28.1': dependencies: - '@sentry/core': 9.27.0 + '@sentry/core': 9.28.1 - '@sentry-internal/feedback@9.27.0': + '@sentry-internal/feedback@9.28.1': dependencies: - '@sentry/core': 9.27.0 + '@sentry/core': 9.28.1 - '@sentry-internal/replay-canvas@9.27.0': + '@sentry-internal/replay-canvas@9.28.1': dependencies: - '@sentry-internal/replay': 9.27.0 - '@sentry/core': 9.27.0 + '@sentry-internal/replay': 9.28.1 + '@sentry/core': 9.28.1 - '@sentry-internal/replay@9.27.0': + '@sentry-internal/replay@9.28.1': dependencies: - '@sentry-internal/browser-utils': 9.27.0 - '@sentry/core': 9.27.0 + '@sentry-internal/browser-utils': 9.28.1 + '@sentry/core': 9.28.1 '@sentry/babel-plugin-component-annotate@3.5.0': {} - '@sentry/browser@9.27.0': + '@sentry/browser@9.28.1': dependencies: - '@sentry-internal/browser-utils': 9.27.0 - '@sentry-internal/feedback': 9.27.0 - '@sentry-internal/replay': 9.27.0 - '@sentry-internal/replay-canvas': 9.27.0 - '@sentry/core': 9.27.0 + '@sentry-internal/browser-utils': 9.28.1 + '@sentry-internal/feedback': 9.28.1 + '@sentry-internal/replay': 9.28.1 + '@sentry-internal/replay-canvas': 9.28.1 + '@sentry/core': 9.28.1 '@sentry/bundler-plugin-core@3.5.0': dependencies: @@ -11771,22 +11851,22 @@ snapshots: - encoding - supports-color - '@sentry/core@9.27.0': {} + '@sentry/core@9.28.1': {} - '@sentry/nextjs@9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.99.9)': + '@sentry/nextjs@9.28.1(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.99.9)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.34.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) - '@sentry-internal/browser-utils': 9.27.0 - '@sentry/core': 9.27.0 - '@sentry/node': 9.27.0 - '@sentry/opentelemetry': 9.27.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) - '@sentry/react': 9.27.0(react@19.1.0) - '@sentry/vercel-edge': 9.27.0 + '@sentry-internal/browser-utils': 9.28.1 + '@sentry/core': 9.28.1 + '@sentry/node': 9.28.1 + '@sentry/opentelemetry': 9.28.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) + '@sentry/react': 9.28.1(react@19.1.0) + '@sentry/vercel-edge': 9.28.1 '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9) chalk: 3.0.0 - next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) resolve: 1.22.8 rollup: 4.35.0 stacktrace-parser: 0.1.11 @@ -11800,7 +11880,7 @@ snapshots: - supports-color - webpack - '@sentry/node@9.27.0': + '@sentry/node@9.28.1': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -11832,14 +11912,14 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 '@prisma/instrumentation': 6.8.2(@opentelemetry/api@1.9.0) - '@sentry/core': 9.27.0 - '@sentry/opentelemetry': 9.27.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) + '@sentry/core': 9.28.1 + '@sentry/opentelemetry': 9.28.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) import-in-the-middle: 1.14.0 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@9.27.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0)': + '@sentry/opentelemetry@9.28.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -11847,19 +11927,19 @@ snapshots: '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 - '@sentry/core': 9.27.0 + '@sentry/core': 9.28.1 - '@sentry/react@9.27.0(react@19.1.0)': + '@sentry/react@9.28.1(react@19.1.0)': dependencies: - '@sentry/browser': 9.27.0 - '@sentry/core': 9.27.0 + '@sentry/browser': 9.28.1 + '@sentry/core': 9.28.1 hoist-non-react-statics: 3.3.2 react: 19.1.0 - '@sentry/vercel-edge@9.27.0': + '@sentry/vercel-edge@9.28.1': dependencies: '@opentelemetry/api': 1.9.0 - '@sentry/core': 9.27.0 + '@sentry/core': 9.28.1 '@sentry/webpack-plugin@3.5.0(webpack@5.99.9)': dependencies: @@ -11939,9 +12019,9 @@ snapshots: - bufferutil - utf-8-validate - '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)': + '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': dependencies: - acorn: 8.14.1 + acorn: 8.15.0 optional: true '@swc/counter@0.1.3': {} @@ -12026,11 +12106,11 @@ snapshots: postcss: 8.5.4 tailwindcss: 4.1.8 - '@tanstack/query-core@5.80.6': {} + '@tanstack/query-core@5.80.7': {} - '@tanstack/react-query@5.80.6(react@19.1.0)': + '@tanstack/react-query@5.80.7(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.80.6 + '@tanstack/query-core': 5.80.7 react: 19.1.0 '@tanstack/react-table@8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': @@ -12050,7 +12130,7 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@trivago/prettier-plugin-sort-imports@5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.33.17)': + '@trivago/prettier-plugin-sort-imports@5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.34.1)': dependencies: '@babel/generator': 7.27.0 '@babel/parser': 7.27.0 @@ -12061,11 +12141,11 @@ snapshots: prettier: 3.5.3 optionalDependencies: '@vue/compiler-sfc': 3.5.16 - svelte: 5.33.17 + svelte: 5.34.1 transitivePeerDependencies: - supports-color - '@trpc/server@11.3.1(typescript@5.8.3)': + '@trpc/server@11.4.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 @@ -12085,7 +12165,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@turbo/gen@2.5.4(@types/node@22.15.30)(typescript@5.8.3)': + '@turbo/gen@2.5.4(@types/node@24.0.1)(typescript@5.8.3)': dependencies: '@turbo/workspaces': 2.5.4 commander: 10.0.1 @@ -12095,7 +12175,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@types/node@22.15.30)(typescript@5.8.3) + ts-node: 10.9.2(@types/node@24.0.1)(typescript@5.8.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -12128,7 +12208,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 '@types/d3-array@3.2.1': {} @@ -12183,7 +12263,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.30 + '@types/node': 24.0.1 '@types/hast@3.0.4': dependencies: @@ -12224,15 +12304,15 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 - '@types/node@22.15.30': + '@types/node@24.0.1': dependencies: - undici-types: 6.21.0 + undici-types: 7.8.0 '@types/nodemailer@6.4.17': dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 '@types/parse-json@4.0.2': {} @@ -12242,17 +12322,17 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 pg-protocol: 1.10.0 pg-types: 2.2.0 '@types/phoenix@1.6.6': {} - '@types/react-dom@19.1.6(@types/react@19.1.6)': + '@types/react-dom@19.1.6(@types/react@19.1.8)': dependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - '@types/react@19.1.6': + '@types/react@19.1.8': dependencies: csstype: 3.1.3 @@ -12260,11 +12340,11 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 '@types/through@0.0.33': dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 '@types/tinycolor2@1.4.6': {} @@ -12274,7 +12354,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: @@ -12293,6 +12373,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + eslint: 9.28.0(jiti@2.4.2) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.33.1 @@ -12305,6 +12402,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + debug: 4.4.1 + eslint: 9.28.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) @@ -12314,15 +12423,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + debug: 4.4.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.33.1': dependencies: '@typescript-eslint/types': 8.33.1 '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/scope-manager@8.34.0': + dependencies: + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 + '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 + '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) @@ -12334,8 +12461,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + debug: 4.4.1 + eslint: 9.28.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.33.1': {} + '@typescript-eslint/types@8.34.0': {} + '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': dependencies: '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) @@ -12352,6 +12492,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) @@ -12363,11 +12519,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.33.1': dependencies: '@typescript-eslint/types': 8.33.1 eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.34.0': + dependencies: + '@typescript-eslint/types': 8.34.0 + eslint-visitor-keys: 4.2.1 + '@unrs/resolver-binding-darwin-arm64@1.7.11': optional: true @@ -12470,7 +12642,7 @@ snapshots: '@vue/shared': 3.5.16 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.4 + postcss: 8.5.5 source-map-js: 1.2.1 optional: true @@ -12581,6 +12753,8 @@ snapshots: acorn@8.14.1: {} + acorn@8.15.0: {} + agent-base@6.0.2: dependencies: debug: 4.4.1 @@ -12594,15 +12768,15 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@4.3.16(react@19.1.0)(zod@3.25.56): + ai@4.3.16(react@19.1.0)(zod@3.25.63): dependencies: '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.8(zod@3.25.56) - '@ai-sdk/react': 1.2.12(react@19.1.0)(zod@3.25.56) - '@ai-sdk/ui-utils': 1.2.11(zod@3.25.56) + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.63) + '@ai-sdk/react': 1.2.12(react@19.1.0)(zod@3.25.63) + '@ai-sdk/ui-utils': 1.2.11(zod@3.25.63) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 - zod: 3.25.56 + zod: 3.25.63 optionalDependencies: react: 19.1.0 @@ -12802,6 +12976,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -12815,8 +12993,8 @@ snapshots: browserslist@4.25.0: dependencies: - caniuse-lite: 1.0.30001721 - electron-to-chromium: 1.5.165 + caniuse-lite: 1.0.30001722 + electron-to-chromium: 1.5.167 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.0) @@ -12866,6 +13044,8 @@ snapshots: caniuse-lite@1.0.30001721: {} + caniuse-lite@1.0.30001722: {} + ccount@2.0.1: {} chalk@2.4.2: @@ -12963,12 +13143,12 @@ snapshots: cmd-shim@7.0.0: {} - cmdk@1.1.1(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + cmdk@1.1.1(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.1.6)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -13059,9 +13239,9 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-declaration-sorter@7.2.0(postcss@8.5.4): + css-declaration-sorter@7.2.0(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 css-select@5.1.0: dependencies: @@ -13085,49 +13265,49 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.7(postcss@8.5.4): + cssnano-preset-default@7.0.7(postcss@8.5.5): dependencies: browserslist: 4.24.5 - css-declaration-sorter: 7.2.0(postcss@8.5.4) - cssnano-utils: 5.0.1(postcss@8.5.4) - postcss: 8.5.4 - postcss-calc: 10.1.1(postcss@8.5.4) - postcss-colormin: 7.0.3(postcss@8.5.4) - postcss-convert-values: 7.0.5(postcss@8.5.4) - postcss-discard-comments: 7.0.4(postcss@8.5.4) - postcss-discard-duplicates: 7.0.2(postcss@8.5.4) - postcss-discard-empty: 7.0.1(postcss@8.5.4) - postcss-discard-overridden: 7.0.1(postcss@8.5.4) - postcss-merge-longhand: 7.0.5(postcss@8.5.4) - postcss-merge-rules: 7.0.5(postcss@8.5.4) - postcss-minify-font-values: 7.0.1(postcss@8.5.4) - postcss-minify-gradients: 7.0.1(postcss@8.5.4) - postcss-minify-params: 7.0.3(postcss@8.5.4) - postcss-minify-selectors: 7.0.5(postcss@8.5.4) - postcss-normalize-charset: 7.0.1(postcss@8.5.4) - postcss-normalize-display-values: 7.0.1(postcss@8.5.4) - postcss-normalize-positions: 7.0.1(postcss@8.5.4) - postcss-normalize-repeat-style: 7.0.1(postcss@8.5.4) - postcss-normalize-string: 7.0.1(postcss@8.5.4) - postcss-normalize-timing-functions: 7.0.1(postcss@8.5.4) - postcss-normalize-unicode: 7.0.3(postcss@8.5.4) - postcss-normalize-url: 7.0.1(postcss@8.5.4) - postcss-normalize-whitespace: 7.0.1(postcss@8.5.4) - postcss-ordered-values: 7.0.2(postcss@8.5.4) - postcss-reduce-initial: 7.0.3(postcss@8.5.4) - postcss-reduce-transforms: 7.0.1(postcss@8.5.4) - postcss-svgo: 7.0.2(postcss@8.5.4) - postcss-unique-selectors: 7.0.4(postcss@8.5.4) + css-declaration-sorter: 7.2.0(postcss@8.5.5) + cssnano-utils: 5.0.1(postcss@8.5.5) + postcss: 8.5.5 + postcss-calc: 10.1.1(postcss@8.5.5) + postcss-colormin: 7.0.3(postcss@8.5.5) + postcss-convert-values: 7.0.5(postcss@8.5.5) + postcss-discard-comments: 7.0.4(postcss@8.5.5) + postcss-discard-duplicates: 7.0.2(postcss@8.5.5) + postcss-discard-empty: 7.0.1(postcss@8.5.5) + postcss-discard-overridden: 7.0.1(postcss@8.5.5) + postcss-merge-longhand: 7.0.5(postcss@8.5.5) + postcss-merge-rules: 7.0.5(postcss@8.5.5) + postcss-minify-font-values: 7.0.1(postcss@8.5.5) + postcss-minify-gradients: 7.0.1(postcss@8.5.5) + postcss-minify-params: 7.0.3(postcss@8.5.5) + postcss-minify-selectors: 7.0.5(postcss@8.5.5) + postcss-normalize-charset: 7.0.1(postcss@8.5.5) + postcss-normalize-display-values: 7.0.1(postcss@8.5.5) + postcss-normalize-positions: 7.0.1(postcss@8.5.5) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.5) + postcss-normalize-string: 7.0.1(postcss@8.5.5) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.5) + postcss-normalize-unicode: 7.0.3(postcss@8.5.5) + postcss-normalize-url: 7.0.1(postcss@8.5.5) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.5) + postcss-ordered-values: 7.0.2(postcss@8.5.5) + postcss-reduce-initial: 7.0.3(postcss@8.5.5) + postcss-reduce-transforms: 7.0.1(postcss@8.5.5) + postcss-svgo: 7.0.2(postcss@8.5.5) + postcss-unique-selectors: 7.0.4(postcss@8.5.5) - cssnano-utils@5.0.1(postcss@8.5.4): + cssnano-utils@5.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 - cssnano@7.0.7(postcss@8.5.4): + cssnano@7.0.7(postcss@8.5.5): dependencies: - cssnano-preset-default: 7.0.7(postcss@8.5.4) + cssnano-preset-default: 7.0.7(postcss@8.5.5) lilconfig: 3.1.3 - postcss: 8.5.4 + postcss: 8.5.5 csso@5.0.5: dependencies: @@ -13294,7 +13474,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.6 csstype: 3.1.3 dom-serializer@2.0.0: @@ -13333,7 +13513,7 @@ snapshots: electron-to-chromium@1.5.151: {} - electron-to-chromium@1.5.165: {} + electron-to-chromium@1.5.167: {} emery@1.4.4: {} @@ -13485,8 +13665,8 @@ snapshots: '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.28.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@9.28.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.28.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.28.0(jiti@2.4.2)) eslint-plugin-react: 7.37.5(eslint@9.28.0(jiti@2.4.2)) eslint-plugin-react-hooks: 5.2.0(eslint@9.28.0(jiti@2.4.2)) @@ -13511,7 +13691,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@9.28.0(jiti@2.4.2)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1 @@ -13522,22 +13702,22 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.7.11 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.28.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.28.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@9.28.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.28.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -13548,7 +13728,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.28.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.28.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13631,6 +13811,8 @@ snapshots: eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} + eslint@9.28.0(jiti@2.4.2): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) @@ -13688,7 +13870,7 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@1.4.7: + esrap@1.4.9: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 optional: true @@ -13784,6 +13966,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.6(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -14067,9 +14253,9 @@ snapshots: human-signals@2.1.0: {} - i18next-browser-languagedetector@8.1.0: + i18next-browser-languagedetector@8.2.0: dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 i18next-resources-to-backend@1.2.1: dependencies: @@ -14375,7 +14561,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14562,7 +14748,7 @@ snapshots: lru-cache@7.18.3: {} - lucide-react@0.513.0(react@19.1.0): + lucide-react@0.514.0(react@19.1.0): dependencies: react: 19.1.0 @@ -14969,7 +15155,7 @@ snapshots: minimatch@8.0.4: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: @@ -15011,20 +15197,20 @@ snapshots: netmask@2.0.2: {} - next-sitemap@4.2.3(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)): + next-sitemap@4.2.3(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.11 fast-glob: 3.3.3 minimist: 1.2.8 - next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.3.3 '@swc/counter': 0.1.3 @@ -15045,13 +15231,13 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.3.3 '@next/swc-win32-x64-msvc': 15.3.3 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.52.0 + '@playwright/test': 1.53.0 sharp: 0.34.2 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-react-compiler@19.1.0-rc.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.3.3 '@swc/counter': 0.1.3 @@ -15072,7 +15258,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.3.3 '@next/swc-win32-x64-msvc': 15.3.3 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.52.0 + '@playwright/test': 1.53.0 babel-plugin-react-compiler: 19.1.0-rc.2 sharp: 0.34.2 transitivePeerDependencies: @@ -15387,152 +15573,152 @@ snapshots: sonic-boom: 4.2.0 thread-stream: 3.1.0 - playwright-core@1.52.0: {} + playwright-core@1.53.0: {} - playwright@1.52.0: + playwright@1.53.0: dependencies: - playwright-core: 1.52.0 + playwright-core: 1.53.0 optionalDependencies: fsevents: 2.3.2 possible-typed-array-names@1.1.0: {} - postcss-calc@10.1.1(postcss@8.5.4): + postcss-calc@10.1.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.3(postcss@8.5.4): + postcss-colormin@7.0.3(postcss@8.5.5): dependencies: browserslist: 4.24.5 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.5(postcss@8.5.4): + postcss-convert-values@7.0.5(postcss@8.5.5): dependencies: browserslist: 4.24.5 - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.4(postcss@8.5.4): + postcss-discard-comments@7.0.4(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-selector-parser: 7.1.0 - postcss-discard-duplicates@7.0.2(postcss@8.5.4): + postcss-discard-duplicates@7.0.2(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 - postcss-discard-empty@7.0.1(postcss@8.5.4): + postcss-discard-empty@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 - postcss-discard-overridden@7.0.1(postcss@8.5.4): + postcss-discard-overridden@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 - postcss-merge-longhand@7.0.5(postcss@8.5.4): + postcss-merge-longhand@7.0.5(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - stylehacks: 7.0.5(postcss@8.5.4) + stylehacks: 7.0.5(postcss@8.5.5) - postcss-merge-rules@7.0.5(postcss@8.5.4): + postcss-merge-rules@7.0.5(postcss@8.5.5): dependencies: browserslist: 4.24.5 caniuse-api: 3.0.0 - cssnano-utils: 5.0.1(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 5.0.1(postcss@8.5.5) + postcss: 8.5.5 postcss-selector-parser: 7.1.0 - postcss-minify-font-values@7.0.1(postcss@8.5.4): + postcss-minify-font-values@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.1(postcss@8.5.4): + postcss-minify-gradients@7.0.1(postcss@8.5.5): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.1(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 5.0.1(postcss@8.5.5) + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.3(postcss@8.5.4): + postcss-minify-params@7.0.3(postcss@8.5.5): dependencies: browserslist: 4.24.5 - cssnano-utils: 5.0.1(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 5.0.1(postcss@8.5.5) + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.5(postcss@8.5.4): + postcss-minify-selectors@7.0.5(postcss@8.5.5): dependencies: cssesc: 3.0.0 - postcss: 8.5.4 + postcss: 8.5.5 postcss-selector-parser: 7.1.0 - postcss-normalize-charset@7.0.1(postcss@8.5.4): + postcss-normalize-charset@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 - postcss-normalize-display-values@7.0.1(postcss@8.5.4): + postcss-normalize-display-values@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.1(postcss@8.5.4): + postcss-normalize-positions@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.1(postcss@8.5.4): + postcss-normalize-repeat-style@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.1(postcss@8.5.4): + postcss-normalize-string@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.1(postcss@8.5.4): + postcss-normalize-timing-functions@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.3(postcss@8.5.4): + postcss-normalize-unicode@7.0.3(postcss@8.5.5): dependencies: browserslist: 4.24.5 - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.1(postcss@8.5.4): + postcss-normalize-url@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.1(postcss@8.5.4): + postcss-normalize-whitespace@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.2(postcss@8.5.4): + postcss-ordered-values@7.0.2(postcss@8.5.5): dependencies: - cssnano-utils: 5.0.1(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 5.0.1(postcss@8.5.5) + postcss: 8.5.5 postcss-value-parser: 4.2.0 - postcss-reduce-initial@7.0.3(postcss@8.5.4): + postcss-reduce-initial@7.0.3(postcss@8.5.5): dependencies: browserslist: 4.24.5 caniuse-api: 3.0.0 - postcss: 8.5.4 + postcss: 8.5.5 - postcss-reduce-transforms@7.0.1(postcss@8.5.4): + postcss-reduce-transforms@7.0.1(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 postcss-selector-parser@7.1.0: @@ -15540,15 +15726,15 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.2(postcss@8.5.4): + postcss-svgo@7.0.2(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.4(postcss@8.5.4): + postcss-unique-selectors@7.0.4(postcss@8.5.5): dependencies: - postcss: 8.5.4 + postcss: 8.5.5 postcss-selector-parser: 7.1.0 postcss-value-parser@4.2.0: {} @@ -15565,6 +15751,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.5: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-bytea@1.0.0: {} @@ -15577,11 +15769,11 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.12(@trivago/prettier-plugin-sort-imports@5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.33.17))(prettier@3.5.3): + prettier-plugin-tailwindcss@0.6.12(@trivago/prettier-plugin-sort-imports@5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.34.1))(prettier@3.5.3): dependencies: prettier: 3.5.3 optionalDependencies: - '@trivago/prettier-plugin-sort-imports': 5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.33.17) + '@trivago/prettier-plugin-sort-imports': 5.2.2(@vue/compiler-sfc@3.5.16)(prettier@3.5.3)(svelte@5.34.1) prettier@3.5.3: {} @@ -15659,7 +15851,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.15.30 + '@types/node': 24.0.1 long: 5.3.1 proxy-agent@6.5.0: @@ -15717,16 +15909,16 @@ snapshots: react-error-boundary@4.1.2(react@19.1.0): dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.6 react: 19.1.0 react-hook-form@7.57.0(react@19.1.0): dependencies: react: 19.1.0 - react-i18next@15.5.2(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3): + react-i18next@15.5.3(i18next@25.2.1(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3): dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.6 html-parse-stringify: 3.0.1 i18next: 25.2.1(typescript@5.8.3) react: 19.1.0 @@ -15740,24 +15932,24 @@ snapshots: dependencies: fast-deep-equal: 2.0.1 - react-remove-scroll-bar@2.3.8(@types/react@19.1.6)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.6)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.8)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - react-remove-scroll@2.7.0(@types/react@19.1.6)(react@19.1.0): + react-remove-scroll@2.7.0(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.6)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.6)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.8)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.8)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.6)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.6)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.8)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 react-smooth@4.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: @@ -15767,13 +15959,13 @@ snapshots: react-dom: 19.1.0(react@19.1.0) react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-style-singleton@2.2.3(@types/react@19.1.6)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.8)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 react-top-loading-bar@3.0.2(react@19.1.0): dependencies: @@ -15781,7 +15973,7 @@ snapshots: react-transition-group@4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -16282,11 +16474,11 @@ snapshots: strip-json-comments@3.1.1: {} - stripe@18.2.1(@types/node@22.15.30): + stripe@18.2.1(@types/node@24.0.1): dependencies: qs: 6.14.0 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 24.0.1 styled-jsx@5.1.6(@babel/core@7.27.4)(react@19.1.0): dependencies: @@ -16295,10 +16487,10 @@ snapshots: optionalDependencies: '@babel/core': 7.27.4 - stylehacks@7.0.5(postcss@8.5.4): + stylehacks@7.0.5(postcss@8.5.5): dependencies: browserslist: 4.24.5 - postcss: 8.5.4 + postcss: 8.5.5 postcss-selector-parser: 7.1.0 stylis@4.2.0: {} @@ -16328,18 +16520,18 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte@5.33.17: + svelte@5.34.1: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 - '@sveltejs/acorn-typescript': 1.0.5(acorn@8.14.1) + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) '@types/estree': 1.0.8 - acorn: 8.14.1 + acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 clsx: 2.1.1 esm-env: 1.2.2 - esrap: 1.4.7 + esrap: 1.4.9 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.17 @@ -16369,11 +16561,13 @@ snapshots: tabbable@6.2.0: {} - tailwind-merge@3.3.0: {} + tailwind-merge@3.3.1: {} - tailwindcss-animate@1.0.7(tailwindcss@4.1.8): + tailwindcss-animate@1.0.7(tailwindcss@4.1.10): dependencies: - tailwindcss: 4.1.8 + tailwindcss: 4.1.10 + + tailwindcss@4.1.10: {} tailwindcss@4.1.8: {} @@ -16394,13 +16588,13 @@ snapshots: jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.41.0 + terser: 5.42.0 webpack: 5.99.9 - terser@5.41.0: + terser@5.42.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -16464,14 +16658,14 @@ snapshots: ts-case-convert@2.1.0: {} - ts-node@10.9.2(@types/node@22.15.30)(typescript@5.8.3): + ts-node@10.9.2(@types/node@24.0.1)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.30 + '@types/node': 24.0.1 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -16561,11 +16755,11 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: @@ -16583,7 +16777,7 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} + undici-types@7.8.0: {} undici@6.21.2: {} @@ -16614,7 +16808,7 @@ snapshots: unplugin@1.0.1: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 chokidar: 3.6.0 webpack-sources: 3.3.2 webpack-virtual-modules: 0.5.0 @@ -16674,20 +16868,20 @@ snapshots: react: 19.1.0 wonka: 6.3.5 - use-callback-ref@1.3.3(@types/react@19.1.6)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 - use-sidecar@1.1.3(@types/react@19.1.6)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.8)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.8 use-sync-external-store@1.5.0(react@19.1.0): dependencies: @@ -16775,7 +16969,7 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.1 + acorn: 8.15.0 browserslist: 4.25.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.1 @@ -16934,10 +17128,10 @@ snapshots: zimmerframe@1.1.2: optional: true - zod-to-json-schema@3.24.5(zod@3.25.56): + zod-to-json-schema@3.24.5(zod@3.25.63): dependencies: - zod: 3.25.56 + zod: 3.25.63 - zod@3.25.56: {} + zod@3.25.63: {} zwitch@2.0.4: {} diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index ec1261b70..2f30bbf9e 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -17,7 +17,7 @@ "@types/eslint": "9.6.1", "eslint-config-next": "15.3.3", "eslint-config-turbo": "^2.5.4", - "typescript-eslint": "8.33.1" + "typescript-eslint": "8.34.0" }, "devDependencies": { "@kit/prettier-config": "workspace:*",