diff --git a/.env.example b/.env.example
index fd75f69b..caf5f396 100644
--- a/.env.example
+++ b/.env.example
@@ -1,5 +1,9 @@
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url_here
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your_publishable_key_here
+# Server-only. AES-256-GCM key for application-layer PII encryption (base64, 32 bytes).
+# Generate with: openssl rand -base64 32
+FIELD_ENCRYPTION_KEY=
+
# Keep secrets out of the repository.
# Add any future public-only client variables here as placeholders.
\ No newline at end of file
diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index c7990764..f8335a24 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -59,6 +59,7 @@ jobs:
PUBLISHABLE_KEY=$(supabase status -o env | grep '^PUBLISHABLE_KEY=' | cut -d'"' -f2)
echo "NEXT_PUBLIC_SUPABASE_URL=$API_URL" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=$PUBLISHABLE_KEY" >> "$GITHUB_ENV"
+ echo "FIELD_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> "$GITHUB_ENV"
- name: Run Playwright E2E suite
run: pnpm run e2e
diff --git a/.github/workflows/zap-baseline.yml b/.github/workflows/zap-baseline.yml
index 40c8902d..73903dcc 100644
--- a/.github/workflows/zap-baseline.yml
+++ b/.github/workflows/zap-baseline.yml
@@ -45,6 +45,9 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile
+ - name: Generate field encryption key
+ run: echo "FIELD_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> "$GITHUB_ENV"
+
- name: Build app
run: pnpm run build
diff --git a/.github/workflows/zap-full-scan.yml b/.github/workflows/zap-full-scan.yml
index 8745129e..75c27eb3 100644
--- a/.github/workflows/zap-full-scan.yml
+++ b/.github/workflows/zap-full-scan.yml
@@ -41,6 +41,9 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile
+ - name: Generate field encryption key
+ run: echo "FIELD_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> "$GITHUB_ENV"
+
- name: Build app
run: pnpm run build
diff --git a/app/auth/callback/route.ts b/app/auth/callback/route.ts
index 37888212..3fc36002 100644
--- a/app/auth/callback/route.ts
+++ b/app/auth/callback/route.ts
@@ -7,11 +7,27 @@ export async function GET(request: NextRequest) {
const requestUrl = new URL(request.url);
const code = requestUrl.searchParams.get("code");
const next = requestUrl.searchParams.get("next");
+ const flowId = requestUrl.searchParams.get("sb_flow_id");
const redirectPath = getSafeRedirectPath(next);
if (code) {
const supabase = await createClient();
- await supabase.auth.exchangeCodeForSession(code);
+ // flowId deixa exchangeCodeForSession limpar o cookie verificador
+ // PKCE deste próprio login (por que é passado via query param: ver
+ // lib/supabase/client.ts).
+ const { data } = await supabase.auth.exchangeCodeForSession(
+ code,
+ flowId ? { flowId } : undefined,
+ );
+
+ // Os tokens do provider (access/refresh do Google) nunca são lidos
+ // por este app; re-salvar via setSession os descarta da sessão.
+ if (data.session) {
+ await supabase.auth.setSession({
+ access_token: data.session.access_token,
+ refresh_token: data.session.refresh_token,
+ });
+ }
}
return NextResponse.redirect(new URL(redirectPath, requestUrl.origin));
diff --git a/components/dashboard/app-shell.tsx b/components/dashboard/app-shell.tsx
index c8b9e877..f8c2d447 100644
--- a/components/dashboard/app-shell.tsx
+++ b/components/dashboard/app-shell.tsx
@@ -6,6 +6,7 @@ import { MobileNav } from "@/components/dashboard/mobile-nav";
import { NavigationPrefetcher } from "@/components/dashboard/navigation-prefetcher";
import { PageTransition } from "@/components/dashboard/page-transition";
import { Sidebar } from "@/components/dashboard/sidebar";
+import { ensureEncryptedProfile } from "@/lib/auth/encrypted-profile";
import { requireAcceptedTerms } from "@/lib/auth/terms";
import type {
AuthenticatedUserClaims,
@@ -203,6 +204,11 @@ export async function AppShell({
claims,
);
+ await ensureEncryptedProfile(supabase, user.id, {
+ email: userEmail,
+ name: userName,
+ });
+
return (
diff --git a/components/dashboard/form-inputs/currency-input.tsx b/components/dashboard/form-inputs/currency-input.tsx
index 999941a3..81dcdd78 100644
--- a/components/dashboard/form-inputs/currency-input.tsx
+++ b/components/dashboard/form-inputs/currency-input.tsx
@@ -1,6 +1,6 @@
"use client";
-import { useEffect, useRef, useState, type ReactNode } from "react";
+import { useState, type ReactNode } from "react";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
@@ -70,18 +70,16 @@ function useCurrencyDigits(
onValueChange: (value: number) => void,
) {
const [digits, setDigits] = useState(() => digitsFromValue(value));
- const prevValueRef = useRef(value);
+ const [prevValue, setPrevValue] = useState(value);
- /* c8 ignore start */
- useEffect(() => {
+ if (value !== prevValue) {
+ setPrevValue(value);
const externalCents = Math.round(value * 100);
const internalCents = digits ? Number.parseInt(digits, 10) : 0;
- if (externalCents !== internalCents && value !== prevValueRef.current) {
+ if (externalCents !== internalCents) {
setDigits(digitsFromValue(value));
}
- prevValueRef.current = value;
- }, [value, digits]);
- /* c8 ignore stop */
+ }
function pushDigits(newDigits: string) {
// Remove leading zeros, cap at 13 digits (~999 billion cents)
diff --git a/components/ui/resizable.tsx b/components/ui/resizable.tsx
index 5c2f91d5..878ee69f 100644
--- a/components/ui/resizable.tsx
+++ b/components/ui/resizable.tsx
@@ -9,14 +9,13 @@ import { cn } from '@/lib/utils'
function ResizablePanelGroup({
className,
...props
-}: React.ComponentProps) {
+}: React.ComponentProps) {
+ // ponytail: v4 sets flex-direction inline based on `orientation`, no more
+ // data-panel-group-direction attribute to key off of in CSS.
return (
-
)
@@ -32,14 +31,14 @@ function ResizableHandle({
withHandle,
className,
...props
-}: React.ComponentProps & {
+}: React.ComponentProps & {
withHandle?: boolean
}) {
return (
- div]:rotate-90',
+ 'bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden aria-[orientation=vertical]:h-px aria-[orientation=vertical]:w-full aria-[orientation=vertical]:after:left-0 aria-[orientation=vertical]:after:h-1 aria-[orientation=vertical]:after:w-full aria-[orientation=vertical]:after:translate-x-0 aria-[orientation=vertical]:after:-translate-y-1/2 [&[aria-orientation=vertical]>div]:rotate-90',
className,
)}
{...props}
@@ -49,7 +48,7 @@ function ResizableHandle({
)}
-
+
)
}
diff --git a/docs/database.md b/docs/database.md
index 63c1f1fc..0ec09768 100644
--- a/docs/database.md
+++ b/docs/database.md
@@ -20,6 +20,7 @@ The current committed schema defines these Supabase tables:
- `002_security_lgpd_hardening.sql`: adds `updated_at` and `deleted_at` columns, moves helper functions into the private schema, adds privacy requests, hardens grants and RLS policies, validates transaction ownership references, and adds LGPD-oriented comments.
- `005_add_installment_group_metadata.sql`: adds stable installment grouping metadata and an authenticated-user scoped installment group index.
- `006_add_installment_prepayment_metadata.sql`: adds installment prepayment metadata and an authenticated-user scoped prepayment month index.
+- `010_stop_writing_plaintext_profile_pii.sql`: stops the signup trigger from writing plaintext `profiles.name`/`email` (application-layer encryption now owns these fields, see `lib/crypto/field-encryption.ts`), and drops the now-unused `transactions_user_id_notes_idx` partial index.
## What belongs in the repository
@@ -44,12 +45,14 @@ The repository must not include:
## Profile fields used by the app
- `id`
-- `email`
-- `name`
+- `email` — application-layer encrypted (`lib/crypto/field-encryption.ts`), never plaintext at rest. Distinct from `auth.users.email`, which Supabase Auth manages and is unaffected.
+- `name` — application-layer encrypted (`lib/crypto/field-encryption.ts`), never plaintext at rest.
- `created_at`
- `updated_at`
- `deleted_at`
+`private.handle_new_user()` no longer writes plaintext `name`/`email` into `profiles` (see migration `010`). `lib/auth/encrypted-profile.ts` fills them in, encrypted, on the user's next authenticated request.
+
## Category fields used by the app
- `id`
@@ -85,14 +88,14 @@ The application has backward-compatible fallbacks for older environments that do
- `amount`
- `category_id`
- `date`
-- `description`
+- `description` — application-layer encrypted with a deterministic IV (`lib/crypto/field-encryption.ts`) so equality lookups (subscription grouping) still work; never plaintext at rest.
- `kind`
- `installment_group_id`
- `installment_number`
- `installment_total`
- `advanced_to_month`
- `advanced_at`
-- `notes`
+- `notes` — application-layer encrypted (`lib/crypto/field-encryption.ts`), random IV; never plaintext at rest.
- `payment_method_id`
- `created_at`
- `updated_at`
@@ -102,7 +105,7 @@ Installments and subscriptions are modeled as multiple transaction rows. Install
Installment prepayment uses `advanced_to_month` and `advanced_at`. The original transaction `date`, category, payment method, and installment metadata are preserved for auditability. Payment and invoice views use `advanced_to_month` as the payment context so advanced installments appear in the target month and no longer appear as future obligations.
-Subscription rows use `notes` values beginning with `subscription`; paused subscriptions use `subscription paused`.
+Subscription rows use `notes` values beginning with `subscription`; paused subscriptions use `subscription paused`. Since `notes` is stored encrypted, this prefix check happens in application code against the decrypted value (`lib/finance/transactions.ts`), not as a SQL `LIKE` predicate.
## Monthly budget fields in the schema
diff --git a/lib/auth/encrypted-profile.ts b/lib/auth/encrypted-profile.ts
new file mode 100644
index 00000000..6b67bd5c
--- /dev/null
+++ b/lib/auth/encrypted-profile.ts
@@ -0,0 +1,35 @@
+import "server-only";
+
+import type { SupabaseClient } from "@supabase/supabase-js";
+
+import {
+ encryptField,
+ isAlreadyEncrypted,
+} from "@/lib/crypto/field-encryption";
+
+export async function ensureEncryptedProfile(
+ supabase: SupabaseClient,
+ userId: string,
+ identity: { email: string; name: string },
+) {
+ const { data } = await supabase
+ .from("profiles")
+ .select("name, email")
+ .eq("id", userId)
+ .maybeSingle();
+
+ if (
+ isAlreadyEncrypted(data?.name ?? null) &&
+ isAlreadyEncrypted(data?.email ?? null)
+ ) {
+ return;
+ }
+
+ await supabase
+ .from("profiles")
+ .update({
+ email: encryptField(identity.email),
+ name: encryptField(identity.name),
+ })
+ .eq("id", userId);
+}
diff --git a/lib/auth/terms.ts b/lib/auth/terms.ts
index 26b6f84e..6c9bb1d2 100644
--- a/lib/auth/terms.ts
+++ b/lib/auth/terms.ts
@@ -7,12 +7,20 @@ export async function requireAcceptedTerms(
supabase: SupabaseClient,
userId: string,
) {
- const { data } = await supabase
+ const { data, error } = await supabase
.from("profiles")
.select("terms_accepted")
.eq("id", userId)
.single();
+ // PGRST116 = nenhuma linha encontrada (genuinamente "termos não
+ // aceitos"). Qualquer outro erro não pode ser mascarado como isso,
+ // ou uma falha transitória entra em loop com o redirect assim que
+ // a falha passa.
+ if (error && error.code !== "PGRST116") {
+ throw error;
+ }
+
if (!data?.terms_accepted) {
redirect("/auth/accept-terms");
}
diff --git a/lib/crypto/field-encryption.ts b/lib/crypto/field-encryption.ts
new file mode 100644
index 00000000..ddde2b95
--- /dev/null
+++ b/lib/crypto/field-encryption.ts
@@ -0,0 +1,114 @@
+import {
+ createCipheriv,
+ createDecipheriv,
+ createHmac,
+ hkdfSync,
+ randomBytes,
+} from "node:crypto";
+
+const ALGORITHM = "aes-256-gcm";
+const IV_LENGTH = 12;
+const AUTH_TAG_LENGTH = 16;
+const KEY_LENGTH = 32;
+
+let cachedKeys: { cipherKey: Buffer; hmacKey: Buffer } | null = null;
+
+function deriveKeys(): { cipherKey: Buffer; hmacKey: Buffer } {
+ if (cachedKeys) return cachedKeys;
+
+ const masterKeyBase64 = process.env.FIELD_ENCRYPTION_KEY;
+ if (!masterKeyBase64) {
+ throw new Error("FIELD_ENCRYPTION_KEY is not set.");
+ }
+
+ const masterKey = Buffer.from(masterKeyBase64, "base64");
+ if (masterKey.length !== KEY_LENGTH) {
+ throw new Error(
+ "FIELD_ENCRYPTION_KEY must be a base64-encoded 32-byte key.",
+ );
+ }
+
+ const cipherKey = Buffer.from(
+ hkdfSync(
+ "sha256",
+ masterKey,
+ Buffer.alloc(0),
+ "field-encryption:cipher",
+ KEY_LENGTH,
+ ),
+ );
+ const hmacKey = Buffer.from(
+ hkdfSync(
+ "sha256",
+ masterKey,
+ Buffer.alloc(0),
+ "field-encryption:hmac",
+ KEY_LENGTH,
+ ),
+ );
+
+ cachedKeys = { cipherKey, hmacKey };
+ return cachedKeys;
+}
+
+function encryptWithIv(plaintext: string, iv: Buffer): string {
+ const { cipherKey } = deriveKeys();
+ const cipher = createCipheriv(ALGORITHM, cipherKey, iv);
+ const ciphertext = Buffer.concat([
+ cipher.update(plaintext, "utf8"),
+ cipher.final(),
+ ]);
+ const authTag = cipher.getAuthTag();
+
+ return Buffer.concat([iv, authTag, ciphertext]).toString("base64");
+}
+
+function decrypt(stored: string): string {
+ const { cipherKey } = deriveKeys();
+ const buffer = Buffer.from(stored, "base64");
+ const iv = buffer.subarray(0, IV_LENGTH);
+ const authTag = buffer.subarray(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);
+ const ciphertext = buffer.subarray(IV_LENGTH + AUTH_TAG_LENGTH);
+
+ const decipher = createDecipheriv(ALGORITHM, cipherKey, iv, {
+ authTagLength: AUTH_TAG_LENGTH,
+ });
+ decipher.setAuthTag(authTag);
+
+ return Buffer.concat([
+ decipher.update(ciphertext),
+ decipher.final(),
+ ]).toString("utf8");
+}
+
+export function encryptField(value: string | null | undefined): string | null {
+ if (!value) return null;
+ return encryptWithIv(value, randomBytes(IV_LENGTH));
+}
+
+export function decryptField(stored: string | null | undefined): string | null {
+ if (!stored) return stored ?? null;
+
+ try {
+ return decrypt(stored);
+ } catch {
+ return stored;
+ }
+}
+
+export function encryptDescription(value: string): string {
+ const { hmacKey } = deriveKeys();
+ const iv = createHmac("sha256", hmacKey)
+ .update(value, "utf8")
+ .digest()
+ .subarray(0, IV_LENGTH);
+
+ return encryptWithIv(value, iv);
+}
+
+export const decryptDescription = decryptField;
+
+export function isAlreadyEncrypted(stored: string | null | undefined): boolean {
+ if (!stored) return false;
+ return decryptField(stored) !== stored;
+}
diff --git a/lib/finance/transactions.ts b/lib/finance/transactions.ts
index 78b40343..5ffe83d5 100644
--- a/lib/finance/transactions.ts
+++ b/lib/finance/transactions.ts
@@ -1,8 +1,18 @@
import "server-only";
import { redirect } from "next/navigation";
-import { type SupabaseClient, type User } from "@supabase/supabase-js";
+import {
+ isAuthSessionMissingError,
+ type SupabaseClient,
+ type User,
+} from "@supabase/supabase-js";
+import {
+ decryptDescription,
+ decryptField,
+ encryptDescription,
+ encryptField,
+} from "@/lib/crypto/field-encryption";
import {
type CreditCardInvoiceDetails,
type Transaction,
@@ -693,10 +703,21 @@ export async function getUserContext(
const supabase = supabaseClient
? await (supabaseClient as Promise)
: await createClient();
- const [{ data: claimsData }, { data: userData }] = await Promise.all([
- supabase.auth.getClaims(),
- supabase.auth.getUser(),
- ]);
+ const [
+ { data: claimsData, error: claimsError },
+ { data: userData, error: userError },
+ ] = await Promise.all([supabase.auth.getClaims(), supabase.auth.getUser()]);
+
+ // Sessão ausente é o caso esperado de "deslogado", tratado no
+ // redirect abaixo. Qualquer outro erro não pode ser mascarado como
+ // isso, ou uma falha transitória entra em loop com a página pra
+ // onde redireciona assim que a falha passa.
+ const unexpectedError = [claimsError, userError].find(
+ (error) => error && !isAuthSessionMissingError(error),
+ );
+ if (unexpectedError) {
+ throw unexpectedError;
+ }
const claims = claimsData?.claims as AuthenticatedUserClaims | undefined;
const user = userData.user;
@@ -966,8 +987,12 @@ function resolveRawCategoryName(row: TransactionRow) {
return row.categories?.name ?? row.kind;
}
-function resolveDescriptionKey(row: TransactionRow, categoryName: string) {
- return row.description || row.notes || categoryName;
+function resolveDescriptionKey(
+ description: string | null,
+ notes: string | null,
+ categoryName: string,
+) {
+ return description || notes || categoryName;
}
function toTransaction(row: TransactionRow): Transaction {
@@ -977,6 +1002,8 @@ function toTransaction(row: TransactionRow): Transaction {
const rawCategoryName = resolveRawCategoryName(row);
const categoryName = resolveTransactionCategoryName(row, rawCategoryName);
const paymentMethodKey = resolveTransactionPaymentMethodKey(row);
+ const description = decryptDescription(row.description);
+ const notes = decryptField(row.notes);
return {
id: row.id,
@@ -986,13 +1013,13 @@ function toTransaction(row: TransactionRow): Transaction {
categoryId: row.category_id,
categoryKey: categoryName,
date: row.date,
- descriptionKey: resolveDescriptionKey(row, categoryName),
+ descriptionKey: resolveDescriptionKey(description, notes, categoryName),
group,
icon: resolveTransactionIcon(row, rawCategoryName),
installmentGroupId: row.installment_group_id ?? null,
installmentNumber: resolveInstallmentNumber(row),
installmentTotal: resolveInstallmentTotal(row),
- notes: row.notes,
+ notes,
paymentMethodId: row.payment_method_id,
paymentMethodClosingDay: resolveTransactionPaymentMethodClosingDay(row),
paymentMethodDueDay: resolveTransactionPaymentMethodDueDay(row),
@@ -1770,17 +1797,19 @@ function buildInstallmentRow(index: number, context: InstallmentRowContext) {
amount: resolveOccurrenceAmount(index, plan),
category_id: categoryId,
date: formatOccurrenceDate(baseDate, index),
- description: resolveOccurrenceDescription({
- description,
- installmentMetadata,
- index,
- installmentCount,
- }),
+ description: encryptDescription(
+ resolveOccurrenceDescription({
+ description,
+ installmentMetadata,
+ index,
+ installmentCount,
+ }),
+ ),
installment_group_id: installmentMetadata?.installmentGroupId ?? null,
installment_number: installmentMetadata?.installmentNumber ?? null,
installment_total: installmentMetadata?.installmentTotal ?? null,
kind,
- notes: resolveOccurrenceNotes(installmentMetadata, notes),
+ notes: encryptField(resolveOccurrenceNotes(installmentMetadata, notes)),
payment_method_id: paymentMethodId,
user_id: userId,
};
@@ -1991,9 +2020,9 @@ export async function createInvoiceAdvancePayment(
amount,
category_id: null,
date,
- description: "transaction.invoiceAdvancePayment",
+ description: encryptDescription("transaction.invoiceAdvancePayment"),
kind: "expense" satisfies DbTransactionKind,
- notes: getInvoiceAdvancePaymentNote(input.invoiceId),
+ notes: encryptField(getInvoiceAdvancePaymentNote(input.invoiceId)),
payment_method_id: paymentMethodId,
user_id: userId,
});
@@ -2020,6 +2049,7 @@ function buildSubscriptionRows({
}) {
const [year, month, day] = date.split("-").map(Number);
const baseDate = new Date(year, month - 1, day);
+ const encryptedDescription = encryptDescription(description);
return Array.from({ length: 12 }, (_, index) => {
const occurrenceDate = addMonthsClamped(baseDate, index);
@@ -2033,9 +2063,9 @@ function buildSubscriptionRows({
amount,
category_id: categoryId,
date: dateValue,
- description,
+ description: encryptedDescription,
kind: "expense" as DbTransactionKind,
- notes: `subscription ${index + 1}/12`,
+ notes: encryptField(`subscription ${index + 1}/12`),
payment_method_id: paymentMethodId,
user_id: userId,
};
@@ -2109,7 +2139,13 @@ async function loadSubscriptionReference(
const subscription = reference as SubscriptionReferenceRow | null;
- if (!subscription?.notes?.startsWith("subscription")) {
+ if (!subscription) {
+ throw new Error("Subscription is invalid.");
+ }
+
+ const decryptedNotes = decryptField(subscription.notes);
+
+ if (!decryptedNotes?.startsWith("subscription")) {
throw new Error("Subscription is invalid.");
}
@@ -2123,10 +2159,9 @@ async function queryFutureSubscriptionOccurrences(
) {
let query = supabase
.from("transactions")
- .select("id, date")
+ .select("id, date, notes")
.eq("user_id", userId)
.eq("description", subscription.description)
- .like("notes", "subscription%")
.gte("date", getTodayValue())
.order("date", { ascending: true });
@@ -2144,7 +2179,12 @@ async function queryFutureSubscriptionOccurrences(
throw new Error(`Unable to load subscription charges: ${error.message}`);
}
- const occurrences = (data ?? []) as SubscriptionOccurrenceRow[];
+ const rows = (data ?? []) as Array<
+ SubscriptionOccurrenceRow & { notes: string | null }
+ >;
+ const occurrences: SubscriptionOccurrenceRow[] = rows
+ .filter((row) => decryptField(row.notes)?.startsWith("subscription"))
+ .map(({ id, date }) => ({ id, date }));
if (!occurrences.length) {
throw new Error("No future subscription charges found.");
@@ -2199,7 +2239,7 @@ async function relabelSubscriptionOccurrences(
const occurrenceIds = occurrences.map((occurrence) => occurrence.id);
const { error } = await supabase
.from("transactions")
- .update({ notes: `subscription ${occurrences.length}/12` })
+ .update({ notes: encryptField(`subscription ${occurrences.length}/12`) })
.in("id", occurrenceIds)
.eq("user_id", userId);
@@ -2226,6 +2266,7 @@ async function applySubscriptionOccurrenceUpdates({
paymentMethodId: string | null;
};
}) {
+ const encryptedDescription = encryptDescription(fields.description);
const results = await Promise.all(
occurrences.map((occurrence, index) =>
supabase
@@ -2234,7 +2275,7 @@ async function applySubscriptionOccurrenceUpdates({
amount: fields.amount,
category_id: fields.categoryId,
date: toDateValue(addMonthsClamped(baseDate, index)),
- description: fields.description,
+ description: encryptedDescription,
payment_method_id: fields.paymentMethodId,
})
.eq("id", occurrence.id)
@@ -2283,9 +2324,11 @@ export async function setSubscriptionPaused(
supabase
.from("transactions")
.update({
- notes: paused
- ? `subscription paused ${index + 1}/12`
- : `subscription ${index + 1}/12`,
+ notes: encryptField(
+ paused
+ ? `subscription paused ${index + 1}/12`
+ : `subscription ${index + 1}/12`,
+ ),
})
.eq("id", occurrence.id)
.eq("user_id", userId),
@@ -2636,9 +2679,9 @@ export async function updateTransaction(input: UpdateTransactionInput) {
amount,
category_id: categoryId,
date,
- description,
+ description: encryptDescription(description),
kind,
- notes: input.notes?.trim() || null,
+ notes: encryptField(input.notes?.trim() || null),
payment_method_id: paymentMethodId,
})
.eq("id", input.id)
@@ -2898,10 +2941,9 @@ function getSubscriptionGroupQuery(
) {
let query = supabase
.from("transactions")
- .select("id, date")
+ .select("id, date, notes")
.eq("user_id", userId)
- .eq("description", subscription.description)
- .like("notes", "subscription%");
+ .eq("description", subscription.description);
query = subscription.category_id
? query.eq("category_id", subscription.category_id)
@@ -2935,7 +2977,12 @@ async function resolveSubscriptionOccurrenceIdsToDelete({
throw new Error(`Unable to load subscription charges: ${error.message}`);
}
- const occurrences = (data ?? []) as SubscriptionOccurrenceRow[];
+ const rows = (data ?? []) as Array<
+ SubscriptionOccurrenceRow & { notes: string | null }
+ >;
+ const occurrences: SubscriptionOccurrenceRow[] = rows
+ .filter((row) => decryptField(row.notes)?.startsWith("subscription"))
+ .map(({ id, date }) => ({ id, date }));
const selectedOccurrence = occurrences.find(
(occurrence) => occurrence.id === input.transactionId,
);
@@ -3578,8 +3625,19 @@ function assembleDashboardData({
sourceData: Awaited>;
budgetContext: ReturnType;
}): DashboardData {
- const { transactions, previousTransactions, scheduledTransactions, displayTransactions, displayScheduledTransactions, totalSaved, previousTotalSaved, categories, paymentMethods } = sourceData;
- const { trendExpenseTransactions, scheduledExpenseTransactions, budgetData } = budgetContext;
+ const {
+ transactions,
+ previousTransactions,
+ scheduledTransactions,
+ displayTransactions,
+ displayScheduledTransactions,
+ totalSaved,
+ previousTotalSaved,
+ categories,
+ paymentMethods,
+ } = sourceData;
+ const { trendExpenseTransactions, scheduledExpenseTransactions, budgetData } =
+ budgetContext;
return {
budgetData,
@@ -3616,7 +3674,11 @@ export async function getDashboardData(
const previousMonth = getPreviousMonthValue(selectedMonth);
const monthBuckets = getLastSixMonthKeys(selectedMonth);
const ctx = userContext ?? (await getUserContext());
- const sourceData = await fetchDashboardSourceData(selectedMonth, previousMonth, ctx);
+ const sourceData = await fetchDashboardSourceData(
+ selectedMonth,
+ previousMonth,
+ ctx,
+ );
const budgetContext = buildDashboardBudgetContext(
sourceData.transactions,
sourceData.scheduledTransactions,
diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts
index 75eca220..490e50c7 100644
--- a/lib/supabase/client.ts
+++ b/lib/supabase/client.ts
@@ -1,8 +1,16 @@
-import { createBrowserClient } from "@supabase/ssr"
+import { createBrowserClient } from "@supabase/ssr";
export function createClient() {
return createBrowserClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY!,
- )
+ {
+ auth: {
+ // exchangeCodeForSession roda server-side, sem `window` pra ler
+ // sb_flow_id sozinho — sem isso, o cookie verificador PKCE deste
+ // flow (`-flow--code-verifier`) fica órfão a cada login.
+ experimental: { appendPkceFlowIdToRedirects: true },
+ },
+ },
+ );
}
diff --git a/lib/supabase/proxy.ts b/lib/supabase/proxy.ts
index e89de0e3..7a1efaae 100644
--- a/lib/supabase/proxy.ts
+++ b/lib/supabase/proxy.ts
@@ -1,8 +1,8 @@
-import { createServerClient } from "@supabase/ssr"
-import { NextResponse, type NextRequest } from "next/server"
+import { createServerClient } from "@supabase/ssr";
+import { NextResponse, type NextRequest } from "next/server";
export async function updateSession(request: NextRequest) {
- let supabaseResponse = NextResponse.next({ request })
+ let supabaseResponse = NextResponse.next({ request });
const supabase = createServerClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
@@ -10,28 +10,28 @@ export async function updateSession(request: NextRequest) {
{
cookies: {
getAll() {
- return request.cookies.getAll()
+ return request.cookies.getAll();
},
setAll(cookiesToSet, headers) {
cookiesToSet.forEach(({ name, value }) => {
- request.cookies.set(name, value)
- })
+ request.cookies.set(name, value);
+ });
- supabaseResponse = NextResponse.next({ request })
+ supabaseResponse = NextResponse.next({ request });
cookiesToSet.forEach(({ name, value, options }) => {
- supabaseResponse.cookies.set(name, value, options)
- })
+ supabaseResponse.cookies.set(name, value, options);
+ });
Object.entries(headers).forEach(([key, value]) => {
- supabaseResponse.headers.set(key, value)
- })
+ supabaseResponse.headers.set(key, value);
+ });
},
},
},
- )
+ );
- await supabase.auth.getClaims()
+ await supabase.auth.getClaims();
- return supabaseResponse
+ return supabaseResponse;
}
diff --git a/lib/supabase/server.ts b/lib/supabase/server.ts
index 66e54785..e94332f0 100644
--- a/lib/supabase/server.ts
+++ b/lib/supabase/server.ts
@@ -1,8 +1,8 @@
-import { createServerClient } from "@supabase/ssr"
-import { cookies } from "next/headers"
+import { createServerClient } from "@supabase/ssr";
+import { cookies } from "next/headers";
export async function createClient() {
- const cookieStore = await cookies()
+ const cookieStore = await cookies();
return createServerClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
@@ -10,18 +10,18 @@ export async function createClient() {
{
cookies: {
getAll() {
- return cookieStore.getAll()
+ return cookieStore.getAll();
},
setAll(cookiesToSet) {
try {
cookiesToSet.forEach(({ name, value, options }) => {
- cookieStore.set(name, value, options)
- })
+ cookieStore.set(name, value, options);
+ });
} catch {
// Server Components cannot write cookies directly.
}
},
},
},
- )
+ );
}
diff --git a/next-env.d.ts b/next-env.d.ts
index 9edff1c7..ce4e94a6 100644
--- a/next-env.d.ts
+++ b/next-env.d.ts
@@ -1,6 +1,7 @@
///
///
import "./.next/types/routes.d.ts";
+import "./.next/types/root-params.d.ts";
// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/next.config.mjs b/next.config.mjs
index 61e0dd7b..65f2bbe1 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -26,6 +26,16 @@ const supabaseConnectSrc = ["https://*.supabase.co", supabaseOrigin]
const nextConfig = {
poweredByHeader: false,
+ experimental: {
+ // Next 16.2.7+ enables this by default in dev. Its cache-restore path
+ // (dist/client/dev/debug-channel.js) calls location.reload() reusing the
+ // original navigation entry whenever the initial document's
+ // PerformanceNavigationTiming reports transferSize === 0, which Firefox
+ // does for the page landed on right after the Google OAuth redirect —
+ // causing an infinite full-page reload loop, dev-only, Firefox-only.
+ reactDebugChannel: false,
+ },
+
async headers() {
return [
{
@@ -61,8 +71,7 @@ const nextConfig = {
},
{
key: "Content-Security-Policy",
- value:
- `default-src 'self'; base-uri 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self' ${supabaseConnectSrc}; connect-src 'self' ${supabaseConnectSrc} https://va.vercel-scripts.com https://vitals.vercel-insights.com; img-src 'self' data: blob: ${supabaseConnectSrc} https://*.googleusercontent.com https://lh3.googleusercontent.com; style-src 'self' 'unsafe-inline'; script-src ${scriptSrc};`,
+ value: `default-src 'self'; base-uri 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self' ${supabaseConnectSrc}; connect-src 'self' ${supabaseConnectSrc} https://va.vercel-scripts.com https://vitals.vercel-insights.com; img-src 'self' data: blob: ${supabaseConnectSrc} https://*.googleusercontent.com https://lh3.googleusercontent.com; style-src 'self' 'unsafe-inline'; script-src ${scriptSrc};`,
},
],
},
diff --git a/package.json b/package.json
index 54b65221..d9014a5c 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "dragg-finance",
"version": "0.1.0",
"private": true,
- "packageManager": "pnpm@10.33.2",
+ "packageManager": "pnpm@11.22.0",
"engines": {
"node": ">=24 <25",
"pnpm": ">=10"
@@ -26,83 +26,83 @@
"update:check": "pnpm outdated"
},
"dependencies": {
- "@hookform/resolvers": "^3.10.0",
- "@radix-ui/react-accordion": "1.2.12",
- "@radix-ui/react-alert-dialog": "1.1.15",
- "@radix-ui/react-aspect-ratio": "1.1.8",
- "@radix-ui/react-avatar": "1.1.11",
- "@radix-ui/react-checkbox": "1.3.3",
- "@radix-ui/react-collapsible": "1.1.12",
- "@radix-ui/react-context-menu": "2.2.16",
- "@radix-ui/react-dialog": "1.1.15",
- "@radix-ui/react-dropdown-menu": "2.1.16",
- "@radix-ui/react-hover-card": "1.1.15",
- "@radix-ui/react-label": "2.1.8",
- "@radix-ui/react-menubar": "1.1.16",
- "@radix-ui/react-navigation-menu": "1.2.14",
- "@radix-ui/react-popover": "1.1.15",
- "@radix-ui/react-progress": "1.1.8",
- "@radix-ui/react-radio-group": "1.3.8",
- "@radix-ui/react-scroll-area": "1.2.10",
- "@radix-ui/react-select": "2.2.6",
- "@radix-ui/react-separator": "1.1.8",
- "@radix-ui/react-slider": "1.3.6",
- "@radix-ui/react-slot": "1.2.4",
- "@radix-ui/react-switch": "1.2.6",
- "@radix-ui/react-tabs": "1.1.13",
- "@radix-ui/react-toast": "1.2.15",
- "@radix-ui/react-toggle": "1.1.10",
- "@radix-ui/react-toggle-group": "1.1.11",
- "@radix-ui/react-tooltip": "1.2.8",
- "@supabase/ssr": "^0.10.3",
- "@supabase/supabase-js": "^2.108.2",
- "@vercel/analytics": "1.6.1",
+ "@hookform/resolvers": "^5.9.1",
+ "@radix-ui/react-accordion": "1.2.20",
+ "@radix-ui/react-alert-dialog": "1.1.23",
+ "@radix-ui/react-aspect-ratio": "1.1.15",
+ "@radix-ui/react-avatar": "1.2.6",
+ "@radix-ui/react-checkbox": "1.3.11",
+ "@radix-ui/react-collapsible": "1.1.20",
+ "@radix-ui/react-context-menu": "2.3.7",
+ "@radix-ui/react-dialog": "1.1.23",
+ "@radix-ui/react-dropdown-menu": "2.1.24",
+ "@radix-ui/react-hover-card": "1.1.23",
+ "@radix-ui/react-label": "2.1.15",
+ "@radix-ui/react-menubar": "1.1.24",
+ "@radix-ui/react-navigation-menu": "1.2.22",
+ "@radix-ui/react-popover": "1.1.23",
+ "@radix-ui/react-progress": "1.1.16",
+ "@radix-ui/react-radio-group": "1.4.7",
+ "@radix-ui/react-scroll-area": "1.2.18",
+ "@radix-ui/react-select": "2.3.7",
+ "@radix-ui/react-separator": "1.1.15",
+ "@radix-ui/react-slider": "1.4.7",
+ "@radix-ui/react-slot": "1.3.3",
+ "@radix-ui/react-switch": "1.3.7",
+ "@radix-ui/react-tabs": "1.1.21",
+ "@radix-ui/react-toast": "1.2.23",
+ "@radix-ui/react-toggle": "1.1.18",
+ "@radix-ui/react-toggle-group": "1.1.19",
+ "@radix-ui/react-tooltip": "1.2.16",
+ "@supabase/ssr": "^0.12.4",
+ "@supabase/supabase-js": "^2.112.3",
+ "@vercel/analytics": "2.0.1",
"@vercel/speed-insights": "^2.0.0",
- "autoprefixer": "^10.5.0",
+ "autoprefixer": "^10.5.4",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "1.1.1",
- "date-fns": "4.1.0",
+ "date-fns": "4.4.0",
"embla-carousel-react": "8.6.0",
- "input-otp": "1.4.2",
- "lucide-react": "^0.564.0",
- "next": "16.2.11",
+ "input-otp": "1.5.0",
+ "lucide-react": "^1.33.0",
+ "next": "16.3.1",
"next-themes": "^0.4.6",
- "react": "^19.2.7",
- "react-day-picker": "9.13.2",
- "react-dom": "^19.2.7",
- "react-hook-form": "^7.80.0",
- "react-resizable-panels": "^2.1.9",
- "recharts": "3.8.1",
+ "react": "^19.2.8",
+ "react-day-picker": "10.0.1",
+ "react-dom": "^19.2.8",
+ "react-hook-form": "^7.85.0",
+ "react-resizable-panels": "^4.12.3",
+ "recharts": "3.10.1",
"server-only": "^0.0.1",
- "sonner": "^1.7.4",
+ "sonner": "^2.0.8",
"tailwind-merge": "^3.6.0",
"vaul": "^1.1.2",
- "zod": "^3.25.76"
+ "zod": "^4.4.3"
},
"devDependencies": {
- "@playwright/test": "^1.61.1",
- "@tailwindcss/postcss": "^4.3.1",
- "@testing-library/jest-dom": "^6.9.1",
+ "@playwright/test": "^1.62.1",
+ "@tailwindcss/postcss": "^4.3.3",
+ "@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.3.2",
- "@testing-library/user-event": "^14.6.1",
- "@types/node": "^24.13.2",
- "@types/react": "^19.2.17",
- "@types/react-dom": "^19.2.3",
- "@vitest/coverage-v8": "^4.1.9",
- "eslint": "^9.39.4",
- "eslint-config-next": "^16.2.9",
+ "@testing-library/user-event": "^14.6.5",
+ "@types/node": "^24.13.3",
+ "@types/react": "^19.2.18",
+ "@types/react-dom": "^19.2.4",
+ "@vitest/coverage-v8": "^4.1.11",
+ "eslint": "^10.8.1",
+ "eslint-config-next": "^16.3.1",
"eslint-plugin-clean-code": "^0.1.12",
"eslint-plugin-sonarjs": "^4.2.0",
"husky": "^9.1.7",
- "jsdom": "^29.1.1",
- "postcss": "^8.5.23",
- "prettier": "^3.9.5",
- "tailwindcss": "^4.3.1",
+ "jsdom": "^30.0.1",
+ "postcss": "^8.5.26",
+ "prettier": "^3.9.6",
+ "tailwindcss": "^4.3.3",
"tw-animate-css": "1.4.0",
- "typescript": "5.7.3",
- "vite": "^8.0.16",
- "vitest": "^4.1.9"
+ "typescript": "6.0.3",
+ "vite": "^8.2.2",
+ "vitest": "^4.1.11"
},
"overrides": {
"postcss": "^8.5.23",
@@ -112,20 +112,5 @@
"brace-expansion@5": "^5.0.7",
"js-yaml": "^4.3.0",
"sharp": "^0.35.0"
- },
- "pnpm": {
- "overrides": {
- "postcss": "^8.5.23",
- "lodash": ">=4.18.0",
- "vite": "^8.0.16",
- "brace-expansion@1": "^1.1.16",
- "brace-expansion@5": "^5.0.7",
- "js-yaml": "^4.3.0",
- "sharp": "^0.35.0"
- },
- "onlyBuiltDependencies": [
- "sharp",
- "unrs-resolver"
- ]
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 21519137..ca203b6b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -18,104 +18,104 @@ importers:
.:
dependencies:
'@hookform/resolvers':
- specifier: ^3.10.0
- version: 3.10.0(react-hook-form@7.80.0(react@19.2.7))
+ specifier: ^5.9.1
+ version: 5.9.1(@standard-schema/spec@1.1.0)(react-hook-form@7.85.0(react@19.2.8))(zod@4.4.3)
'@radix-ui/react-accordion':
- specifier: 1.2.12
- version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.2.20
+ version: 1.2.20(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-alert-dialog':
- specifier: 1.1.15
- version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.23
+ version: 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-aspect-ratio':
- specifier: 1.1.8
- version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.15
+ version: 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-avatar':
- specifier: 1.1.11
- version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.2.6
+ version: 1.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-checkbox':
- specifier: 1.3.3
- version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.3.11
+ version: 1.3.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-collapsible':
- specifier: 1.1.12
- version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.20
+ version: 1.1.20(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-context-menu':
- specifier: 2.2.16
- version: 2.2.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 2.3.7
+ version: 2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-dialog':
- specifier: 1.1.15
- version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.23
+ version: 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-dropdown-menu':
- specifier: 2.1.16
- version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 2.1.24
+ version: 2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-hover-card':
- specifier: 1.1.15
- version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.23
+ version: 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-label':
- specifier: 2.1.8
- version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 2.1.15
+ version: 2.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-menubar':
- specifier: 1.1.16
- version: 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.24
+ version: 1.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-navigation-menu':
- specifier: 1.2.14
- version: 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.2.22
+ version: 1.2.22(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-popover':
- specifier: 1.1.15
- version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.23
+ version: 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-progress':
- specifier: 1.1.8
- version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.16
+ version: 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-radio-group':
- specifier: 1.3.8
- version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.4.7
+ version: 1.4.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-scroll-area':
- specifier: 1.2.10
- version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.2.18
+ version: 1.2.18(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-select':
- specifier: 2.2.6
- version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 2.3.7
+ version: 2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-separator':
- specifier: 1.1.8
- version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.15
+ version: 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-slider':
- specifier: 1.3.6
- version: 1.3.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.4.7
+ version: 1.4.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-slot':
- specifier: 1.2.4
- version: 1.2.4(@types/react@19.2.17)(react@19.2.7)
+ specifier: 1.3.3
+ version: 1.3.3(@types/react@19.2.18)(react@19.2.8)
'@radix-ui/react-switch':
- specifier: 1.2.6
- version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.3.7
+ version: 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-tabs':
- specifier: 1.1.13
- version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.21
+ version: 1.1.21(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-toast':
- specifier: 1.2.15
- version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.2.23
+ version: 1.2.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-toggle':
- specifier: 1.1.10
- version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.18
+ version: 1.1.18(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-toggle-group':
- specifier: 1.1.11
- version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.1.19
+ version: 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@radix-ui/react-tooltip':
- specifier: 1.2.8
- version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.2.16
+ version: 1.2.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@supabase/ssr':
- specifier: ^0.10.3
- version: 0.10.3(@supabase/supabase-js@2.108.2)
+ specifier: ^0.12.4
+ version: 0.12.4(@supabase/supabase-js@2.112.3)
'@supabase/supabase-js':
- specifier: ^2.108.2
- version: 2.108.2
+ specifier: ^2.112.3
+ version: 2.112.3
'@vercel/analytics':
- specifier: 1.6.1
- version: 1.6.1(next@16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)
+ specifier: 2.0.1
+ version: 2.0.1(next@16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
'@vercel/speed-insights':
specifier: ^2.0.0
- version: 2.0.0(next@16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)
+ version: 2.0.0(next@16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
autoprefixer:
- specifier: ^10.5.0
- version: 10.5.0(postcss@8.5.23)
+ specifier: ^10.5.4
+ version: 10.5.4(postcss@8.5.26)
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@@ -124,125 +124,125 @@ importers:
version: 2.1.1
cmdk:
specifier: 1.1.1
- version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ version: 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
date-fns:
- specifier: 4.1.0
- version: 4.1.0
+ specifier: 4.4.0
+ version: 4.4.0
embla-carousel-react:
specifier: 8.6.0
- version: 8.6.0(react@19.2.7)
+ version: 8.6.0(react@19.2.8)
input-otp:
- specifier: 1.4.2
- version: 1.4.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 1.5.0
+ version: 1.5.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
lucide-react:
- specifier: ^0.564.0
- version: 0.564.0(react@19.2.7)
+ specifier: ^1.33.0
+ version: 1.33.0(react@19.2.8)
next:
- specifier: 16.2.11
- version: 16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: 16.3.1
+ version: 16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
next-themes:
specifier: ^0.4.6
- version: 0.4.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ version: 0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
react:
- specifier: ^19.2.7
- version: 19.2.7
+ specifier: ^19.2.8
+ version: 19.2.8
react-day-picker:
- specifier: 9.13.2
- version: 9.13.2(react@19.2.7)
+ specifier: 10.0.1
+ version: 10.0.1(@types/react@19.2.18)(react@19.2.8)
react-dom:
- specifier: ^19.2.7
- version: 19.2.7(react@19.2.7)
+ specifier: ^19.2.8
+ version: 19.2.8(react@19.2.8)
react-hook-form:
- specifier: ^7.80.0
- version: 7.80.0(react@19.2.7)
+ specifier: ^7.85.0
+ version: 7.85.0(react@19.2.8)
react-resizable-panels:
- specifier: ^2.1.9
- version: 2.1.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: ^4.12.3
+ version: 4.12.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
recharts:
- specifier: 3.8.1
- version: 3.8.1(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@18.3.1)(react@19.2.7)(redux@5.0.1)
+ specifier: 3.10.1
+ version: 3.10.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react-is@16.13.1)(react@19.2.8)(redux@5.0.1)
server-only:
specifier: ^0.0.1
version: 0.0.1
sonner:
- specifier: ^1.7.4
- version: 1.7.4(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ specifier: ^2.0.8
+ version: 2.0.8(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
tailwind-merge:
specifier: ^3.6.0
version: 3.6.0
vaul:
specifier: ^1.1.2
- version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ version: 1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
zod:
- specifier: ^3.25.76
- version: 3.25.76
+ specifier: ^4.4.3
+ version: 4.4.3
devDependencies:
'@playwright/test':
- specifier: ^1.61.1
- version: 1.61.1
+ specifier: ^1.62.1
+ version: 1.62.1
'@tailwindcss/postcss':
- specifier: ^4.3.1
- version: 4.3.1
+ specifier: ^4.3.3
+ version: 4.3.3
'@testing-library/jest-dom':
- specifier: ^6.9.1
- version: 6.9.1
+ specifier: ^7.0.1
+ version: 7.0.1(@testing-library/dom@10.4.1)(vitest@4.1.11)
'@testing-library/react':
specifier: ^16.3.2
- version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@testing-library/user-event':
- specifier: ^14.6.1
- version: 14.6.1(@testing-library/dom@10.4.1)
+ specifier: ^14.6.5
+ version: 14.6.5(@testing-library/dom@10.4.1)
'@types/node':
- specifier: ^24.13.2
- version: 24.13.2
+ specifier: ^24.13.3
+ version: 24.13.3
'@types/react':
- specifier: ^19.2.17
- version: 19.2.17
+ specifier: ^19.2.18
+ version: 19.2.18
'@types/react-dom':
- specifier: ^19.2.3
- version: 19.2.3(@types/react@19.2.17)
+ specifier: ^19.2.4
+ version: 19.2.4(@types/react@19.2.18)
'@vitest/coverage-v8':
- specifier: ^4.1.9
- version: 4.1.9(vitest@4.1.9)
+ specifier: ^4.1.11
+ version: 4.1.11(vitest@4.1.11)
eslint:
- specifier: ^9.39.4
- version: 9.39.4(jiti@2.7.0)
+ specifier: ^10.8.1
+ version: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
eslint-config-next:
- specifier: ^16.2.9
- version: 16.2.9(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
+ specifier: ^16.3.1
+ version: 16.3.1(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
eslint-plugin-clean-code:
specifier: ^0.1.12
version: 0.1.12
eslint-plugin-sonarjs:
specifier: ^4.2.0
- version: 4.2.0(eslint@9.39.4(jiti@2.7.0))
+ version: 4.2.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))
husky:
specifier: ^9.1.7
version: 9.1.7
jsdom:
- specifier: ^29.1.1
- version: 29.1.1
+ specifier: ^30.0.1
+ version: 30.0.1
postcss:
specifier: ^8.5.23
- version: 8.5.23
+ version: 8.5.26
prettier:
- specifier: ^3.9.5
- version: 3.9.5
+ specifier: ^3.9.6
+ version: 3.9.6
tailwindcss:
- specifier: ^4.3.1
- version: 4.3.1
+ specifier: ^4.3.3
+ version: 4.3.3
tw-animate-css:
specifier: 1.4.0
version: 1.4.0
typescript:
- specifier: 5.7.3
- version: 5.7.3
+ specifier: 6.0.3
+ version: 6.0.3
vite:
specifier: ^8.0.16
- version: 8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)
+ version: 8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0)
vitest:
- specifier: ^4.1.9
- version: 4.1.9(@types/node@24.13.2)(@vitest/coverage-istanbul@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@29.1.1)(vite@8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))
+ specifier: ^4.1.11
+ version: 4.1.11(@types/node@24.13.3)(@vitest/coverage-v8@4.1.11)(jsdom@30.0.1)(vite@8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0))
packages:
@@ -253,20 +253,13 @@ packages:
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
- '@asamuzakjp/css-color@5.1.11':
- resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==}
- engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+ '@asamuzakjp/css-color@6.0.7':
+ resolution: {integrity: sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==}
+ engines: {node: ^22.13.0 || >=24.0.0}
- '@asamuzakjp/dom-selector@7.1.1':
- resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==}
- engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
-
- '@asamuzakjp/generational-cache@1.0.1':
- resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==}
- engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
-
- '@asamuzakjp/nwsapi@2.3.9':
- resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==}
+ '@asamuzakjp/dom-selector@8.3.2':
+ resolution: {integrity: sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==}
+ engines: {node: ^22.13.0 || >=24.0.0}
'@babel/code-frame@7.29.7':
resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
@@ -280,8 +273,8 @@ packages:
resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.29.7':
- resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==}
+ '@babel/generator@7.29.8':
+ resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==}
engines: {node: '>=6.9.0'}
'@babel/helper-compilation-targets@7.29.7':
@@ -318,8 +311,8 @@ packages:
resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.29.7':
- resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
+ '@babel/parser@7.29.8':
+ resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -331,12 +324,12 @@ packages:
resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.29.7':
- resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==}
+ '@babel/traverse@7.29.8':
+ resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.29.7':
- resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
+ '@babel/types@7.29.8':
+ resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
engines: {node: '>=6.9.0'}
'@bcoe/v8-coverage@1.0.2':
@@ -347,19 +340,19 @@ packages:
resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==}
hasBin: true
- '@csstools/color-helpers@6.1.0':
- resolution: {integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==}
+ '@csstools/color-helpers@6.1.1':
+ resolution: {integrity: sha512-gLNsunvwf3mCi5u5o46/Z/JcJMnhbHSaZ69rkgPzNM3J4s8hWwpPUQB6/tt0EDFyCiWzxANlx+2LJwpYj4zS1w==}
engines: {node: '>=20.19.0'}
- '@csstools/css-calc@3.2.1':
- resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==}
+ '@csstools/css-calc@3.3.0':
+ resolution: {integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==}
engines: {node: '>=20.19.0'}
peerDependencies:
'@csstools/css-parser-algorithms': ^4.0.0
'@csstools/css-tokenizer': ^4.0.0
- '@csstools/css-color-parser@4.1.9':
- resolution: {integrity: sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==}
+ '@csstools/css-color-parser@4.2.0':
+ resolution: {integrity: sha512-5+5LEmFuY1AjXdYhmgjTJogtQnP1evJ1zrBZGUNZ0thkpwnnmKxcHdAMn/OtFjAb25zA+jKDVYVRl+5G7rjv1A==}
engines: {node: '>=20.19.0'}
peerDependencies:
'@csstools/css-parser-algorithms': ^4.0.0
@@ -371,8 +364,8 @@ packages:
peerDependencies:
'@csstools/css-tokenizer': ^4.0.0
- '@csstools/css-syntax-patches-for-csstree@1.1.6':
- resolution: {integrity: sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==}
+ '@csstools/css-syntax-patches-for-csstree@1.1.8':
+ resolution: {integrity: sha512-CpMLjAvwQg3BL5S0IeqsZNMH7EQrEWi0kLKOC13ZBF0ZwERiLWlibNPJr8G1kdU3Ms/r2KiNrF81pUh2HwAHdg==}
peerDependencies:
css-tree: ^3.2.1
peerDependenciesMeta:
@@ -389,20 +382,20 @@ packages:
'@emnapi/core@1.10.0':
resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
- '@emnapi/core@1.11.1':
- resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==}
-
'@emnapi/runtime@1.10.0':
resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
- '@emnapi/runtime@1.11.1':
- resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==}
+ '@emnapi/runtime@1.11.3':
+ resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
'@emnapi/wasi-threads@1.2.1':
resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
- '@emnapi/wasi-threads@1.2.2':
- resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==}
+ '@eslint-community/eslint-utils@4.10.1':
+ resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
'@eslint-community/eslint-utils@4.9.1':
resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
@@ -414,33 +407,25 @@ packages:
resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/config-array@0.21.2':
- resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/config-helpers@0.4.2':
- resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/core@0.17.0':
- resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/config-array@0.23.5':
+ resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/eslintrc@3.3.5':
- resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/config-helpers@0.7.0':
+ resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/js@9.39.4':
- resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/core@1.2.1':
+ resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/object-schema@2.1.7':
- resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/object-schema@3.0.5':
+ resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/plugin-kit@0.4.1':
- resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/plugin-kit@0.7.2':
+ resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
'@exodus/bytes@1.15.1':
resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==}
@@ -451,25 +436,98 @@ packages:
'@noble/hashes':
optional: true
- '@floating-ui/core@1.7.5':
- resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+ '@floating-ui/core@1.8.0':
+ resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==}
- '@floating-ui/dom@1.7.6':
- resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
+ '@floating-ui/dom@1.8.0':
+ resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==}
- '@floating-ui/react-dom@2.1.8':
- resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==}
+ '@floating-ui/react-dom@2.1.9':
+ resolution: {integrity: sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
- '@floating-ui/utils@0.2.11':
- resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
-
- '@hookform/resolvers@3.10.0':
- resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==}
- peerDependencies:
- react-hook-form: ^7.0.0
+ '@floating-ui/utils@0.2.12':
+ resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
+
+ '@hookform/resolvers@5.9.1':
+ resolution: {integrity: sha512-7b7vsbraJxKgjVSA1Nur9tLwj539WGJUBLA7QNvXnFoT2pM5Z7G+6rlukk4B2/QrTZy6huRtH6wKeESPKuIr6w==}
+ peerDependencies:
+ '@sinclair/typebox': '>=0.25.24'
+ '@standard-schema/spec': ^1.0.0
+ '@typeschema/main': '>=0.13.7'
+ '@vinejs/vine': ^2.0.0 || ^3.0.0 || ^4.0.0
+ ajv: ^8.12.0
+ ajv-errors: ^3.0.0
+ ajv-formats: ^2.1.1
+ arktype: ^2.0.0
+ ata-validator: ^1.2.0
+ class-transformer: '>=0.4.0'
+ class-validator: '>=0.12.0'
+ computed-types: ^1.0.0
+ effect: ^3.10.3
+ fluentvalidation-ts: ^3.0.0
+ fp-ts: ^2.7.0
+ io-ts: ^2.0.0
+ joi: ^17.0.0 || ^18.0.0
+ nope-validator: '>=0.12.0'
+ react-hook-form: ^7.55.0
+ superstruct: '>=0.12.0'
+ typanion: ^3.3.2
+ valibot: '>=0.31.0 || ^1.0.0-beta.4 || ^1.0.0-rc'
+ vest: '>=6.0.0'
+ yup: ^1.0.0
+ zod: ^3.25.0 || ^4.0.0
+ peerDependenciesMeta:
+ '@sinclair/typebox':
+ optional: true
+ '@standard-schema/spec':
+ optional: true
+ '@typeschema/main':
+ optional: true
+ '@vinejs/vine':
+ optional: true
+ ajv:
+ optional: true
+ ajv-errors:
+ optional: true
+ ajv-formats:
+ optional: true
+ arktype:
+ optional: true
+ ata-validator:
+ optional: true
+ class-transformer:
+ optional: true
+ class-validator:
+ optional: true
+ computed-types:
+ optional: true
+ effect:
+ optional: true
+ fluentvalidation-ts:
+ optional: true
+ fp-ts:
+ optional: true
+ io-ts:
+ optional: true
+ joi:
+ optional: true
+ nope-validator:
+ optional: true
+ superstruct:
+ optional: true
+ typanion:
+ optional: true
+ valibot:
+ optional: true
+ vest:
+ optional: true
+ yup:
+ optional: true
+ zod:
+ optional: true
'@humanfs/core@0.19.2':
resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
@@ -653,10 +711,6 @@ packages:
cpu: [x64]
os: [win32]
- '@istanbuljs/schema@0.1.6':
- resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==}
- engines: {node: '>=8'}
-
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -673,66 +727,67 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
- '@napi-rs/wasm-runtime@1.1.5':
- resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==}
+ '@napi-rs/wasm-runtime@1.2.3':
+ resolution: {integrity: sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
peerDependencies:
- '@emnapi/core': ^1.7.1
- '@emnapi/runtime': ^1.7.1
+ '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4
+ '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4
- '@next/env@16.2.11':
- resolution: {integrity: sha512-0do5A3BJ2gxWr0ZCMcD6BhW+e595jyxdTl3rXTS6lOtD8ektMiW6CO+EPwt1Eca1DBnm90r/7GdiKWBKxH++DA==}
+ '@next/env@16.3.1':
+ resolution: {integrity: sha512-35G3xwkQUb2oETSDjFXGrVugknoayLFBh7vSE+yAcl9IP2zT9wyGwq7297AYHR11kJld807t5f8AJBs6WBzXsQ==}
- '@next/eslint-plugin-next@16.2.9':
- resolution: {integrity: sha512-UZi8+YT/MLgTC9nrrn2Xd4lBYv1B7lVmtWHfPcthAI5Tt/C1LuDe6DfmtCtJ+WQod3ksY4VrKSvk3oMVAnL7qw==}
+ '@next/eslint-plugin-next@16.3.1':
+ resolution: {integrity: sha512-B4SznlXwVpaLDa7Tbi6zLuueria2d/PmFDhXyDymPGrk2r1n/RMJmcn5FZq1L64k+Jsyte1lKvOr7lP9Xo80mQ==}
- '@next/swc-darwin-arm64@16.2.11':
- resolution: {integrity: sha512-wryL4pjKmDwGv2ox6+GZDFxvmtSRLqApBR8kL1j4+vhB7Z5vJC/zAnXpiR9Xkfzl0AS8WLMnsuGV/UKI67/rrw==}
+ '@next/swc-darwin-arm64@16.3.1':
+ resolution: {integrity: sha512-ABMIu2zQ7cnNIHm5ivKGwZwUrm0pAai3yiJ/gK/rF1c1VP9UOnj7XECbMKFdVKp9I9eMYq9NoDs1WXOoowxzJw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@16.2.11':
- resolution: {integrity: sha512-aZl2j4f/fLyjQvOhv0Oe9UaMAQHolYpKhctsoYzplSumKJKPUmgjcf6545aBtysLTcu994TREd0+pSgNE4ohmg==}
+ '@next/swc-darwin-x64@16.3.1':
+ resolution: {integrity: sha512-gNG21e/UnrroeScbY/QndUEdl0mF1FRibW7BBeYUz/5ABCepjqDdEdgr592vpzMtCn/m7FTjYq3TN4TpyDnutw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@16.2.11':
- resolution: {integrity: sha512-5jEriyEnH/LWFy27L2ZG0XaLlyEJIjhsImEsiS9P563PKEVp2BVups/xfOucIrsvVntp11oNcZwjHvaDPYVB5g==}
+ '@next/swc-linux-arm64-gnu@16.3.1':
+ resolution: {integrity: sha512-6B6Lw016iwNUQuaJoraMMTLh6TwHzFUtxipSScD1F3YyymcrRWkobodRS2ftIOkF5vrs4zNlyUrTC5YZQ9Lz5w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-arm64-musl@16.2.11':
- resolution: {integrity: sha512-eIjcpx2fnnFSSkZDbTxy74KnokUXDjfoLClpWelfgHLf621aTqswhwXQ7GkD5K5rplrS6LZ/Bj+mVuvzluBOEg==}
+ '@next/swc-linux-arm64-musl@16.3.1':
+ resolution: {integrity: sha512-JUiPXZKK9wOhjf4MgDiH29GZLxfqOesbLtHq2pDxwH/WwscTRV2ToymnOTh1egzaZf0ueUf8T2+CeYTGHjW0Iw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@next/swc-linux-x64-gnu@16.2.11':
- resolution: {integrity: sha512-8WgzpaWMs46qJT9kiV47cje86L0x/Mu9t8/Gwj+pnbgW3rETVfCnaScPjlYUwNScpOozdcIMHWmAvuZJUonR2w==}
+ '@next/swc-linux-x64-gnu@16.3.1':
+ resolution: {integrity: sha512-Uog9jsrmIRIL/lfvIp9htmskSNC7JcQsMVucXL2V2YY1y/D9IUN3LPEafqy0zRJ2cIU1SQ0V6F6TlffQ+pLAGg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-x64-musl@16.2.11':
- resolution: {integrity: sha512-I3UgPds7G4ZYnTb/H+5GBGuUT2DhAk6j0mL6A4s63RjFs74wB2hOWP0vaxsK+3NJraExt3eYEPQ/UtT0x/64Nw==}
+ '@next/swc-linux-x64-musl@16.3.1':
+ resolution: {integrity: sha512-6yy3FT13KgUFOj5H8bl8w/6nKiJwHIvbtwh1V+1acsu+7y4tJjnemSa6mhsh53BeoVrlozE+fMgZhXH46WmjMA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@next/swc-win32-arm64-msvc@16.2.11':
- resolution: {integrity: sha512-n89CjtcThnjrwgJMAiI5xbqwLY51zvwC9tSlArmVndAJLYVl9T9UAdlkXTmZvE++idoXe8KdglQlhNRdUp1c6g==}
+ '@next/swc-win32-arm64-msvc@16.3.1':
+ resolution: {integrity: sha512-iOoN1QecUoGNZik536U/vtK43YwgyrCsGIkth52yIkl612n+0C9MjSnJbQAikISpb+WYRooBVhaDlUW7iZoKog==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-x64-msvc@16.2.11':
- resolution: {integrity: sha512-md8CLNggS1Dx9pUgApzps5uAf+N8GN9xywzmNx9vHAWo94HtBwCCqkSnhIrdfQe83Dhz8Lfo/20Nb1Zxal092w==}
+ '@next/swc-win32-x64-msvc@16.3.1':
+ resolution: {integrity: sha512-d/k+PpAriUPaeMJJOG7HUSdqfEX46FEPWU1p3/nm2ACmXhj9hFEWdFODUBIpkuijXYkfL90qZzTqVPRp4BW/hw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -753,22 +808,22 @@ packages:
resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines: {node: '>=12.4.0'}
- '@oxc-project/types@0.137.0':
- resolution: {integrity: sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==}
+ '@oxc-project/types@0.146.0':
+ resolution: {integrity: sha512-XC0QsnnhVe7sLIWmYmdPw7x5P0h4W8vUU3Nv1ySgWXtvCz8NizoAEpGXA0sOYoJQV2Rl13LgURAHQ5cI5ILCSA==}
- '@playwright/test@1.61.1':
- resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==}
- engines: {node: '>=18'}
+ '@playwright/test@1.62.1':
+ resolution: {integrity: sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==}
+ engines: {node: '>=20'}
hasBin: true
- '@radix-ui/number@1.1.1':
- resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==}
+ '@radix-ui/number@1.1.3':
+ resolution: {integrity: sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==}
- '@radix-ui/primitive@1.1.3':
- resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==}
+ '@radix-ui/primitive@1.1.7':
+ resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==}
- '@radix-ui/react-accordion@1.2.12':
- resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==}
+ '@radix-ui/react-accordion@1.2.20':
+ resolution: {integrity: sha512-jDhG9FvAEnlhnjrsINbNXcUa4G+L1KqSkJSunkbKEzFRcAb52jvM0PjPxPRvhe1HNc5F5yc0yzzWeeqlH4yBIg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -780,8 +835,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-alert-dialog@1.1.15':
- resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==}
+ '@radix-ui/react-alert-dialog@1.1.23':
+ resolution: {integrity: sha512-VAYOiQRqj3GPpYJE0I9J+X8Ip05cyVlNdKOFeiGS2Ou1HHGfpl0BxOyZm6nmVDyU+W+NF3/XLzmjHmVGydhwgA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -793,8 +848,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-arrow@1.1.7':
- resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
+ '@radix-ui/react-arrow@1.1.15':
+ resolution: {integrity: sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -806,8 +861,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-aspect-ratio@1.1.8':
- resolution: {integrity: sha512-5nZrJTF7gH+e0nZS7/QxFz6tJV4VimhQb1avEgtsJxvvIp5JilL+c58HICsKzPxghdwaDt48hEfPM1au4zGy+w==}
+ '@radix-ui/react-aspect-ratio@1.1.15':
+ resolution: {integrity: sha512-fy+dyVR+90nelK8rqIznFlxzx7uPcGbhxH8Nfr2bHb4UfSe+e3hklOC0luK0hDwVwnRX7xTRySpsrQVeW+/oNQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -819,8 +874,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-avatar@1.1.11':
- resolution: {integrity: sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==}
+ '@radix-ui/react-avatar@1.2.6':
+ resolution: {integrity: sha512-4ULOTJ/mqy2hT9GlWa/MFHxHSvH3nJzHnZM1waNsc5Bonv7i70aNenghXmD97S6OJ81ekXONGGt4nT1r0PfEdA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -832,8 +887,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-checkbox@1.3.3':
- resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==}
+ '@radix-ui/react-checkbox@1.3.11':
+ resolution: {integrity: sha512-Gnptr9pDDQxD3hgq2dtPbtrp/c2qH1mBwIzw3X/ivrMb2e1t0jMTi606fVEqFPaQR1ggXIVQWKj3P2WW9v7zGQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -845,8 +900,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-collapsible@1.1.12':
- resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==}
+ '@radix-ui/react-collapsible@1.1.20':
+ resolution: {integrity: sha512-mcGesGplBnzN2sbvJETzpCNfSMyPnb29q1GRLU+Ib7bJrpIG2ywmRoh2V5VbA2uNvKikKUlVbAPks7JDjz4A8Q==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -858,8 +913,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-collection@1.1.7':
- resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
+ '@radix-ui/react-collection@1.1.15':
+ resolution: {integrity: sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -871,8 +926,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-compose-refs@1.1.2':
- resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
+ '@radix-ui/react-compose-refs@1.1.5':
+ resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -880,17 +935,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-compose-refs@1.1.3':
- resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-context-menu@2.2.16':
- resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==}
+ '@radix-ui/react-context-menu@2.3.7':
+ resolution: {integrity: sha512-CtXP35dxaB5T3zXSd+E3uHe/QpXcpYnZmxp6OaIbfthtfW4wyb77M23BG+bwIJDtsMwEP/YssdsmNyZu7jhWew==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -902,8 +948,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-context@1.1.2':
- resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==}
+ '@radix-ui/react-context@1.2.2':
+ resolution: {integrity: sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -911,17 +957,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-context@1.1.3':
- resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-dialog@1.1.15':
- resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==}
+ '@radix-ui/react-dialog@1.1.23':
+ resolution: {integrity: sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -933,8 +970,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-direction@1.1.1':
- resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
+ '@radix-ui/react-direction@1.1.4':
+ resolution: {integrity: sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -942,8 +979,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-dismissable-layer@1.1.11':
- resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==}
+ '@radix-ui/react-dismissable-layer@1.1.19':
+ resolution: {integrity: sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -955,8 +992,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-dropdown-menu@2.1.16':
- resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==}
+ '@radix-ui/react-dropdown-menu@2.1.24':
+ resolution: {integrity: sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -968,8 +1005,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-focus-guards@1.1.3':
- resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==}
+ '@radix-ui/react-focus-guards@1.1.6':
+ resolution: {integrity: sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -977,8 +1014,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-focus-scope@1.1.7':
- resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
+ '@radix-ui/react-focus-scope@1.1.16':
+ resolution: {integrity: sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -990,8 +1027,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-hover-card@1.1.15':
- resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==}
+ '@radix-ui/react-hover-card@1.1.23':
+ resolution: {integrity: sha512-H8qONfZd3ltrU3+jHCIgITbWo6e1iTKvP9DHdrvYbX48ooRM5FjEDTn16AMwdfuOGkWdZEhpl3PLL/Wk/AnHDQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1003,8 +1040,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-id@1.1.1':
- resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
+ '@radix-ui/react-id@1.1.4':
+ resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1012,17 +1049,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-id@1.1.2':
- resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-label@2.1.8':
- resolution: {integrity: sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==}
+ '@radix-ui/react-label@2.1.15':
+ resolution: {integrity: sha512-o/rdYEwZTTo5tjknnPeyQFU45kUC4i/XyeDPP+HGyi6XqpOP6Zf5Ya5vh/Yfe9Id5JiuWnnAx2XqIeD3UYZt0g==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1034,8 +1062,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-menu@2.1.16':
- resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==}
+ '@radix-ui/react-menu@2.1.24':
+ resolution: {integrity: sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1047,8 +1075,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-menubar@1.1.16':
- resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==}
+ '@radix-ui/react-menubar@1.1.24':
+ resolution: {integrity: sha512-eeVs0vf7cuqXaM0qLQCPcufImiJNVBXdJDLu7ZGYl2732UH23Qat/foNGrr6vYV3/DdTsBqASoggUFgH14OcZA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1060,8 +1088,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-navigation-menu@1.2.14':
- resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==}
+ '@radix-ui/react-navigation-menu@1.2.22':
+ resolution: {integrity: sha512-ou7iLEJ+yrhQndkkA4U21XIdS/CS45F4iXIkTZcb6/Ne9EMsOuDudVmCwmDnfFZZ+y1FZqXRNSIgBy+YMvZVZg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1073,8 +1101,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-popover@1.1.15':
- resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==}
+ '@radix-ui/react-popover@1.1.23':
+ resolution: {integrity: sha512-mw58MrBlyHWFisTOYignD0vf/3gdcgAR+9of1s9G/38CbFiUwH1nCDkc0AUM9IrXFgN5Ue8n45j9WCgyM1sbiQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1086,8 +1114,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-popper@1.2.8':
- resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==}
+ '@radix-ui/react-popper@1.3.7':
+ resolution: {integrity: sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1099,8 +1127,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-portal@1.1.9':
- resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
+ '@radix-ui/react-portal@1.1.17':
+ resolution: {integrity: sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1112,8 +1140,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-presence@1.1.5':
- resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==}
+ '@radix-ui/react-presence@1.1.10':
+ resolution: {integrity: sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1125,8 +1153,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-primitive@2.1.3':
- resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
+ '@radix-ui/react-primitive@2.1.10':
+ resolution: {integrity: sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1138,8 +1166,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-primitive@2.1.4':
- resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==}
+ '@radix-ui/react-progress@1.1.16':
+ resolution: {integrity: sha512-5XnomAsoZZCY+KNTxbIghpGqPruZvKFNlvcAljVAOdDRDsH4/OZQxhtwo5wdtoDM5R6MhJBb2sPnDuRFep3lzg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1151,8 +1179,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-primitive@2.1.5':
- resolution: {integrity: sha512-zifXeB8Y88qCYx8PLZ5oQb32KwZub+s925mMoZsBBq9KUQqWKkREubTfs6ASjRPPBe7Jt9O8OHH89+95VG+grA==}
+ '@radix-ui/react-radio-group@1.4.7':
+ resolution: {integrity: sha512-cgYFEkntCxppHZgtSZ+7vh0wbZQ+IC7PPMw8DSnRG27B6kDd32/Zw0OJt7dGDigCoprMuWHjg2PvUn3PYvPFoQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1164,8 +1192,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-progress@1.1.8':
- resolution: {integrity: sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==}
+ '@radix-ui/react-roving-focus@1.1.19':
+ resolution: {integrity: sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1177,8 +1205,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-radio-group@1.3.8':
- resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==}
+ '@radix-ui/react-scroll-area@1.2.18':
+ resolution: {integrity: sha512-Zn5Cd171wxsO3Dfg8HaW6RifTb9CYTKQJHs/G4+LN1GfmJpaQMZQyQxMprVPHpaz7QY4l9BxK2JwQuzHsXC8nA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1190,8 +1218,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-roving-focus@1.1.11':
- resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==}
+ '@radix-ui/react-select@2.3.7':
+ resolution: {integrity: sha512-WFGImkmbzcfxeIwq/+4HvRN0pizBwbwQUED4I13ezQsDdfl38ZntN6TmR8XaSzPBqoCToe8rF75j6NPNDSzhbg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1203,8 +1231,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-scroll-area@1.2.10':
- resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==}
+ '@radix-ui/react-separator@1.1.15':
+ resolution: {integrity: sha512-jOLO4lssEzWpoDu7G+Ze4VjwMRUBt291pnZD0gmalREZipnTX3wadQo7Fy48GCTfe14/YRN6rw/rOJqrE85Wxw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1216,8 +1244,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-select@2.2.6':
- resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==}
+ '@radix-ui/react-slider@1.4.7':
+ resolution: {integrity: sha512-mTSLf1GC/C0moWjTbvCM6Qn/gBjvlFt1azuWF2v7MN5C3Zq2U2J2lN3ZEYkpujuOU5Ro7A28wkviSxaKnG0BYg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1229,21 +1257,17 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-separator@1.1.8':
- resolution: {integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==}
+ '@radix-ui/react-slot@1.3.3':
+ resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==}
peerDependencies:
'@types/react': '*'
- '@types/react-dom': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
- '@types/react-dom':
- optional: true
- '@radix-ui/react-slider@1.3.6':
- resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==}
+ '@radix-ui/react-switch@1.3.7':
+ resolution: {integrity: sha512-48tB/4dn2UVLBCYhTu9AuR63IHl73l/qLbLgxd86noTUor4/K4LFDAcYjK+isP5313qxaFpjPVogE7+Y0/V3Kw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1255,35 +1279,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-slot@1.2.3':
- resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-slot@1.2.4':
- resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-slot@1.2.5':
- resolution: {integrity: sha512-rCMO3QsIVKv5JTY5CVbo2MvO77SpEqqYc8AvRE7OWqRDOIqAKjsp+DrmnY9uc8NPdxB5E2z47HTYGeE2+NTptg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-switch@1.2.6':
- resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==}
+ '@radix-ui/react-tabs@1.1.21':
+ resolution: {integrity: sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1295,8 +1292,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-tabs@1.1.13':
- resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==}
+ '@radix-ui/react-toast@1.2.23':
+ resolution: {integrity: sha512-ofhyAsYaocRGOs/n0XWdUOSVzEAG6BfrMVM8z0c0kLEWY38w/0WuMFPTJP/HVaZPYkMvHZoKIIhNcjbTCBILPg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1308,8 +1305,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-toast@1.2.15':
- resolution: {integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==}
+ '@radix-ui/react-toggle-group@1.1.19':
+ resolution: {integrity: sha512-OtnwuSVjd1Ofi+AdnvhsjQdyuhCDwYs1w9RyB5BN/OavXOVQo42SYqQjwUnbPnaiPFBpQ9aX70dWeee+v2oBLA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1321,8 +1318,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-toggle-group@1.1.11':
- resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==}
+ '@radix-ui/react-toggle@1.1.18':
+ resolution: {integrity: sha512-7lonPlKfSacd20GlOBx2ltuVKz9oqWYZz+oMQyOltw6t1y2nyftj2ZmwwUHYn49kqfDWcp8dNZm5NgV+5Z+mug==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1334,8 +1331,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-toggle@1.1.10':
- resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==}
+ '@radix-ui/react-tooltip@1.2.16':
+ resolution: {integrity: sha512-6EamKFRRnlpdadndbZ6LMwycfwkwPte1B42hs6QA0gYhjaOKqW4PZ4pjaW9UrlDX5eVt/OjncE7BFTPL5nmZhg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1347,21 +1344,17 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-tooltip@1.2.8':
- resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==}
+ '@radix-ui/react-use-callback-ref@1.1.4':
+ resolution: {integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==}
peerDependencies:
'@types/react': '*'
- '@types/react-dom': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
- '@types/react-dom':
- optional: true
- '@radix-ui/react-use-callback-ref@1.1.1':
- resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
+ '@radix-ui/react-use-controllable-state@1.2.6':
+ resolution: {integrity: sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1369,8 +1362,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-controllable-state@1.2.2':
- resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
+ '@radix-ui/react-use-effect-event@0.0.5':
+ resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1378,8 +1371,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-effect-event@0.0.2':
- resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==}
+ '@radix-ui/react-use-is-hydrated@0.1.3':
+ resolution: {integrity: sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1387,8 +1380,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-escape-keydown@1.1.1':
- resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
+ '@radix-ui/react-use-layout-effect@1.1.4':
+ resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1396,8 +1389,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-is-hydrated@0.1.0':
- resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==}
+ '@radix-ui/react-use-previous@1.1.4':
+ resolution: {integrity: sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1405,8 +1398,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-layout-effect@1.1.1':
- resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
+ '@radix-ui/react-use-rect@1.1.4':
+ resolution: {integrity: sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1414,8 +1407,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-layout-effect@1.1.2':
- resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==}
+ '@radix-ui/react-use-size@1.1.4':
+ resolution: {integrity: sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
@@ -1423,35 +1416,8 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-previous@1.1.1':
- resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-rect@1.1.1':
- resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-size@1.1.1':
- resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-visually-hidden@1.2.3':
- resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==}
+ '@radix-ui/react-visually-hidden@1.2.11':
+ resolution: {integrity: sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -1463,8 +1429,8 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/rect@1.1.1':
- resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
+ '@radix-ui/rect@1.1.3':
+ resolution: {integrity: sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==}
'@reduxjs/toolkit@2.12.0':
resolution: {integrity: sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==}
@@ -1477,97 +1443,98 @@ packages:
react-redux:
optional: true
- '@rolldown/binding-android-arm64@1.1.2':
- resolution: {integrity: sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==}
+ '@rolldown/binding-android-arm-eabi@1.2.5':
+ resolution: {integrity: sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [android]
+
+ '@rolldown/binding-android-arm64@1.2.5':
+ resolution: {integrity: sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rolldown/binding-darwin-arm64@1.1.2':
- resolution: {integrity: sha512-RkPMJnygxsgOYdkfqgpwY0/Fzm8d0VQe6HGU2/B00Xa9eqdLbrII+DOKAodbJAn3ZL1AJxGHkZRPYazgGY6Ljw==}
+ '@rolldown/binding-darwin-arm64@1.2.5':
+ resolution: {integrity: sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rolldown/binding-darwin-x64@1.1.2':
- resolution: {integrity: sha512-Uiczh6vFhwyfd7WNe7Q7mCA4KxAiLdz7jPE/WGizfRpIieoyFuNVMmM8HqZ9HwudTkY6/AeMQwlNJ9NJijguWw==}
+ '@rolldown/binding-darwin-x64@1.2.5':
+ resolution: {integrity: sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rolldown/binding-freebsd-x64@1.1.2':
- resolution: {integrity: sha512-+TpdtTRgHiJFjCVFbw311SuLk3KfytPOQQn+VlAEv+gBxYPtL7E6JS9e/tk+8CwxhIZvemJKo4rTKgfWNsKkkA==}
+ '@rolldown/binding-freebsd-x64@1.2.5':
+ resolution: {integrity: sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rolldown/binding-linux-arm-gnueabihf@1.1.2':
- resolution: {integrity: sha512-4lv1/tkmi7ueIVHnyreaOeUpiZP26BH9rRy6hoYfR9310A2B9nUEVRDvBx69vx64Nr3eTPPRkyciqJJs+j9Jmw==}
+ '@rolldown/binding-linux-arm-gnueabihf@1.2.5':
+ resolution: {integrity: sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rolldown/binding-linux-arm64-gnu@1.1.2':
- resolution: {integrity: sha512-gBSUVO0eaWgw1JMjK3gB8BMlX2Mk148s2lTiVT3e9vjVxbl7UDfMWWY8CfIaaqiXuM9fVTMxIpUz6CAo/B6Vlw==}
+ '@rolldown/binding-linux-arm64-gnu@1.2.5':
+ resolution: {integrity: sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-arm64-musl@1.1.2':
- resolution: {integrity: sha512-LjQP/iZLBu8o8PjIfk4x3At0/mT6h282pvz8Z5LAyhGbu/kDezyO7ea62rF5uoqmgnIYqbN/MqJ3Si3Aymi7xQ==}
+ '@rolldown/binding-linux-arm64-musl@1.2.5':
+ resolution: {integrity: sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@rolldown/binding-linux-ppc64-gnu@1.1.2':
- resolution: {integrity: sha512-X/7bVLWelEsbyWDUSXt7zVsTniLLPIY2n1rH58qr78l9i7MNbbxBWD8gI2vRfBWf4NUXJCUuQnfZDsp32LqsfQ==}
+ '@rolldown/binding-linux-ppc64-gnu@1.2.5':
+ resolution: {integrity: sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-s390x-gnu@1.1.2':
- resolution: {integrity: sha512-gb6dYKW/1KDorGXyy48glEBJs/sxVSC5pcVrox/pFGV4mvwSFeg2sK5L2tRkVsVlh7kueqOgg4GEcuipJcGuKg==}
+ '@rolldown/binding-linux-s390x-gnu@1.2.5':
+ resolution: {integrity: sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-gnu@1.1.2':
- resolution: {integrity: sha512-JY4w85pU3iAiJVMh5nuk4/Mh9GjMsupe8MrIN53rwxAZW64GKrWeJBuN6SxQg9QTU5uB1cxyhDzW8jqRn1EABw==}
+ '@rolldown/binding-linux-x64-gnu@1.2.5':
+ resolution: {integrity: sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-musl@1.1.2':
- resolution: {integrity: sha512-xvpA7o5KCYLB0Rwscmuylb1/zHHSUx4g4xilm4prC5jP76pEUlzBmMbgpbh7bVDbId4NcfT96gN5i6mE6UDaiw==}
+ '@rolldown/binding-linux-x64-musl@1.2.5':
+ resolution: {integrity: sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@rolldown/binding-openharmony-arm64@1.1.2':
- resolution: {integrity: sha512-p/ts6KBLjuk49Bp21XH77poQGt02iNz7ChgHep7tudPOaLinR/De/RHdxF8w8Yj4r/bF/bqXwH6PZrB2sA+Nvw==}
+ '@rolldown/binding-openharmony-arm64@1.2.5':
+ resolution: {integrity: sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rolldown/binding-wasm32-wasi@1.1.2':
- resolution: {integrity: sha512-VMu/wmrZ9hJzYlRhbw7jK5PODlugyKZ5mOdX78+lS8OvuFkWNQdz1pFLrI2p3P0pjXOmUZ7B48o5VnMH9QOGtg==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [wasm32]
-
- '@rolldown/binding-win32-arm64-msvc@1.1.2':
- resolution: {integrity: sha512-xtUJqs8qEkuSviS0n1tsohaPuz3a1SPhZywOji4Oo+sgrJs8daEDMZ0QtqL0OS7dx8PoVpg2J/ZZycPY5I2+Zg==}
+ '@rolldown/binding-win32-arm64-msvc@1.2.5':
+ resolution: {integrity: sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@rolldown/binding-win32-x64-msvc@1.1.2':
- resolution: {integrity: sha512-85YiLQqjUKgSO/Zjnf9e0XIn5Ymrh1fLDWBeAkZqpuBR/3R8TpfoHXuyblqyQrftSSgWO9qpcHN8mkyKsLraoA==}
+ '@rolldown/binding-win32-x64-msvc@1.2.5':
+ resolution: {integrity: sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -1584,104 +1551,109 @@ packages:
'@standard-schema/utils@0.3.0':
resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==}
- '@supabase/auth-js@2.108.2':
- resolution: {integrity: sha512-tNaQmBgodDZwgB40mRwVbxFy8IDYwjdpcZ0BYrWiwlULCSQoJj4QoG4zgJT7QRPXcqipefNOzvO/qAu4dF98ag==}
- engines: {node: '>=20.0.0'}
+ '@supabase/auth-js@2.112.3':
+ resolution: {integrity: sha512-NA0rsgAlWZPvbhw8aUdmgfpHVgUAcd8zK5ov43l++o1bLIPXZhRiAlRobhwF5AatQuovpqxsMH50F4oyyV4XZw==}
+ engines: {node: '>=22.0.0'}
- '@supabase/functions-js@2.108.2':
- resolution: {integrity: sha512-RNUX8EiBy3iLwAX19jtRzLyePnl11/fHcgwDHLnpKcDSXt/5qBnh3LUwAtIjT21Q66QsmNUR2esrHziLCpNubw==}
- engines: {node: '>=20.0.0'}
+ '@supabase/functions-js@2.112.3':
+ resolution: {integrity: sha512-gfv481mTOVWtZIJgXupxZpni2V2UWPf6jeF/jOK7HdMHdH+mt6sU0sHHwf0POsPip8ltlulu9OUHgwVzl5ddRw==}
+ engines: {node: '>=22.0.0'}
- '@supabase/phoenix@0.4.2':
- resolution: {integrity: sha512-YSAGnmDAfuleFCVt3CeurQZAhxRfXWeZIIkwp7NhYzQ1UwW6ePSnzsFAiUm/mbCkfoCf70QQHKW/K6RKh52a4A==}
+ '@supabase/phoenix@0.4.5':
+ resolution: {integrity: sha512-aAn9H9ovVyeApKy11OWOrrOGq8DV68yWeH4ud2lN9fzn4aO8Zb5GLL9m1pUg9nLqIcT+ZDfAcsZe0E/nqdv2lw==}
- '@supabase/postgrest-js@2.108.2':
- resolution: {integrity: sha512-GQ28/Y8hk3CFmkb3kXH1h/AQx6JIYSQfO0CJMRVBcEKZoNy6C45cXAZ4fcJvRC5Id0cs6xnkUV0+c0rIocigsw==}
- engines: {node: '>=20.0.0'}
+ '@supabase/postgrest-js@2.112.3':
+ resolution: {integrity: sha512-+Mf6uCpzr00bqxwX8hTK2X2L9eAL/1vuOjdEjx6upz9ulb0RmQT16XeU/JkMUlVHw/B46ZnPa2busY4Kd9YCzw==}
+ engines: {node: '>=22.0.0'}
- '@supabase/realtime-js@2.108.2':
- resolution: {integrity: sha512-aAGxCSUemZvQIibnCdvNvgaKib28I4rfrNjKbQ9cG1uBLwUsI7hVpGXgEbypCCDhLjQlDTAiJlu7rgljYUT73g==}
- engines: {node: '>=20.0.0'}
+ '@supabase/realtime-js@2.112.3':
+ resolution: {integrity: sha512-E6wljXWs7DUOloyIB69i3YFInWE6IyCvgTAbQ0KYxOHv26FdA1KzEXTuzxrYEdf70t406Z9BRwUlGyclGF2FXA==}
+ engines: {node: '>=22.0.0'}
- '@supabase/ssr@0.10.3':
- resolution: {integrity: sha512-ux2CJgX89h0Fz2lY7ZNafNG2SkXpyRc5dz77K9eKeBLPdtywQixKwIuetDeIViAJBp/buOUVmgj8PVesOklNpw==}
+ '@supabase/ssr@0.12.4':
+ resolution: {integrity: sha512-xHzcgI8cC1TpBKSwJcR5Yd8CCwfIq0SBc5yb4yz/YFw5tbCrEQ0QT3a+2jymCxHgQWLfzwN93HZ6eRbcoMkOlA==}
peerDependencies:
- '@supabase/supabase-js': ^2.105.3
+ '@supabase/supabase-js': ^2.111.0
- '@supabase/storage-js@2.108.2':
- resolution: {integrity: sha512-TVZPQxXGxY2+A6yTtm77zUHsh70lBhYUEaJL8RQC+BghcX/ygiMG/rmXrNVBce30/WAeNPa8FiG8HbqlGeV05g==}
- engines: {node: '>=20.0.0'}
+ '@supabase/storage-js@2.112.3':
+ resolution: {integrity: sha512-oSK61tzlUvg+BWPqpKQCu9qqonsO26btaoAR9D6Gest2aj7xUqToj9rKyaoYOJczkhg9BjqA1REbYy9tPI4bDA==}
+ engines: {node: '>=22.0.0'}
- '@supabase/supabase-js@2.108.2':
- resolution: {integrity: sha512-hFhnPveb5JQg4a0QYicM0swT253YHMdfeRAl2BKHOlI5VAzuHxUGSr8RbwNLYNPauWOgQMS1H8sz8bvYlgwUfQ==}
- engines: {node: '>=20.0.0'}
+ '@supabase/supabase-js@2.112.3':
+ resolution: {integrity: sha512-Jv1bxVQmEJNkjvPEhFaKjPzsh+Ozyew6lWGD+SoYcsclDEP1z7yEvKvfUQfzy0DkxRIQnZNxmmWtAzw5XLTQoA==}
+ engines: {node: '>=22.0.0'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0'
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
- '@swc/helpers@0.5.15':
- resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
+ '@swc/helpers@0.5.23':
+ resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
- '@tailwindcss/node@4.3.1':
- resolution: {integrity: sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==}
+ '@tailwindcss/node@4.3.3':
+ resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
- '@tailwindcss/oxide-android-arm64@4.3.1':
- resolution: {integrity: sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==}
+ '@tailwindcss/oxide-android-arm64@4.3.3':
+ resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [android]
- '@tailwindcss/oxide-darwin-arm64@4.3.1':
- resolution: {integrity: sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==}
+ '@tailwindcss/oxide-darwin-arm64@4.3.3':
+ resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [darwin]
- '@tailwindcss/oxide-darwin-x64@4.3.1':
- resolution: {integrity: sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==}
+ '@tailwindcss/oxide-darwin-x64@4.3.3':
+ resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [darwin]
- '@tailwindcss/oxide-freebsd-x64@4.3.1':
- resolution: {integrity: sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==}
+ '@tailwindcss/oxide-freebsd-x64@4.3.3':
+ resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [freebsd]
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1':
- resolution: {integrity: sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==}
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3':
+ resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==}
engines: {node: '>= 20'}
cpu: [arm]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-gnu@4.3.1':
- resolution: {integrity: sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==}
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.3':
+ resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@tailwindcss/oxide-linux-arm64-musl@4.3.1':
- resolution: {integrity: sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==}
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.3':
+ resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@tailwindcss/oxide-linux-x64-gnu@4.3.1':
- resolution: {integrity: sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==}
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.3':
+ resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@tailwindcss/oxide-linux-x64-musl@4.3.1':
- resolution: {integrity: sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==}
+ '@tailwindcss/oxide-linux-x64-musl@4.3.3':
+ resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@tailwindcss/oxide-wasm32-wasi@4.3.1':
- resolution: {integrity: sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==}
+ '@tailwindcss/oxide-wasm32-wasi@4.3.3':
+ resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
@@ -1692,32 +1664,38 @@ packages:
- '@emnapi/wasi-threads'
- tslib
- '@tailwindcss/oxide-win32-arm64-msvc@4.3.1':
- resolution: {integrity: sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==}
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.3':
+ resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [win32]
- '@tailwindcss/oxide-win32-x64-msvc@4.3.1':
- resolution: {integrity: sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==}
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.3':
+ resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [win32]
- '@tailwindcss/oxide@4.3.1':
- resolution: {integrity: sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==}
+ '@tailwindcss/oxide@4.3.3':
+ resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==}
engines: {node: '>= 20'}
- '@tailwindcss/postcss@4.3.1':
- resolution: {integrity: sha512-dNJuNbdEJT/SWRuXTYP1WSamelsz3ztkUsdtWQPjrexysrTpaEPM40P/71knXiXLYEojqPOEGitVLLpPMS5T6A==}
+ '@tailwindcss/postcss@4.3.3':
+ resolution: {integrity: sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==}
'@testing-library/dom@10.4.1':
resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==}
engines: {node: '>=18'}
- '@testing-library/jest-dom@6.9.1':
- resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==}
- engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
+ '@testing-library/jest-dom@7.0.1':
+ resolution: {integrity: sha512-oMDTC3oA+6CXSO2JZnvOI7CA6oVub6kij5ggk9ohwye5slmkwxYDXcPOVxgMw/RQlticjtO0C1RZkR97HgrWMw==}
+ engines: {node: '>=22', npm: '>=6', yarn: '>=1'}
+ peerDependencies:
+ '@testing-library/dom': '>=10 <11'
+ vitest: '>= 0.32'
+ peerDependenciesMeta:
+ vitest:
+ optional: true
'@testing-library/react@16.3.2':
resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==}
@@ -1734,14 +1712,14 @@ packages:
'@types/react-dom':
optional: true
- '@testing-library/user-event@14.6.1':
- resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==}
+ '@testing-library/user-event@14.6.5':
+ resolution: {integrity: sha512-FhqjldLTpteueBaKflhNFlMT3+PM0O5fiBUivht6b9CZ1eesJyy7+g3Jr7XwJzt/Hip3ZG5hWwK1MX1FuDiE4w==}
engines: {node: '>=12', npm: '>=6'}
peerDependencies:
'@testing-library/dom': '>=7.21.4'
- '@tybys/wasm-util@0.10.2':
- resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==}
+ '@tybys/wasm-util@0.10.3':
+ resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==}
'@types/aria-query@5.0.4':
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
@@ -1779,6 +1757,9 @@ packages:
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+ '@types/esrecurse@4.3.1':
+ resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==}
+
'@types/estree@1.0.9':
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
@@ -1788,77 +1769,77 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
- '@types/node@24.13.2':
- resolution: {integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==}
+ '@types/node@24.13.3':
+ resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==}
- '@types/react-dom@19.2.3':
- resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
+ '@types/react-dom@19.2.4':
+ resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==}
peerDependencies:
'@types/react': ^19.2.0
- '@types/react@19.2.17':
- resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==}
+ '@types/react@19.2.18':
+ resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==}
'@types/use-sync-external-store@0.0.6':
resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
- '@typescript-eslint/eslint-plugin@8.61.0':
- resolution: {integrity: sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw==}
+ '@typescript-eslint/eslint-plugin@8.67.0':
+ resolution: {integrity: sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.61.0
+ '@typescript-eslint/parser': ^8.67.0
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/parser@8.61.0':
- resolution: {integrity: sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==}
+ '@typescript-eslint/parser@8.67.0':
+ resolution: {integrity: sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/project-service@8.61.0':
- resolution: {integrity: sha512-DV42F7MLJO6Rax7SK1yg43tcnEfGUrurSpSxKuVX+a3RCTzBlH3fuxprrOJXKCJGAaw82xXocikJ0uQaqwXgGA==}
+ '@typescript-eslint/project-service@8.67.0':
+ resolution: {integrity: sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/scope-manager@8.61.0':
- resolution: {integrity: sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==}
+ '@typescript-eslint/scope-manager@8.67.0':
+ resolution: {integrity: sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.61.0':
- resolution: {integrity: sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==}
+ '@typescript-eslint/tsconfig-utils@8.67.0':
+ resolution: {integrity: sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/type-utils@8.61.0':
- resolution: {integrity: sha512-TuBiQYIkd97yBfInHCTKVYMbX4kvEmpOEuixIuzCU9p8BGT1SfyyO0d0IfDMbPIHcjn/hWnusUX5e8v5Xg+X8A==}
+ '@typescript-eslint/type-utils@8.67.0':
+ resolution: {integrity: sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/types@8.61.0':
- resolution: {integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==}
+ '@typescript-eslint/types@8.67.0':
+ resolution: {integrity: sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.61.0':
- resolution: {integrity: sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==}
+ '@typescript-eslint/typescript-estree@8.67.0':
+ resolution: {integrity: sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/utils@8.61.0':
- resolution: {integrity: sha512-3bzFt7ImFMW/jVYwJamDoe/dMOdFLSC6pom6rRjdh4SZJEYupyMzem8e7vKZLclLfpHjlwSAXOUxtKxGXUiLqA==}
+ '@typescript-eslint/utils@8.67.0':
+ resolution: {integrity: sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/visitor-keys@8.61.0':
- resolution: {integrity: sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==}
+ '@typescript-eslint/visitor-keys@8.67.0':
+ resolution: {integrity: sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unrs/resolver-binding-android-arm-eabi@1.12.2':
@@ -1981,12 +1962,13 @@ packages:
cpu: [x64]
os: [win32]
- '@vercel/analytics@1.6.1':
- resolution: {integrity: sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==}
+ '@vercel/analytics@2.0.1':
+ resolution: {integrity: sha512-MTQG6V9qQrt1tsDeF+2Uoo5aPjqbVPys1xvnIftXSJYG2SrwXRHnqEvVoYID7BTruDz4lCd2Z7rM1BdkUehk2g==}
peerDependencies:
'@remix-run/react': ^2
'@sveltejs/kit': ^1 || ^2
next: '>= 13'
+ nuxt: '>= 3'
react: ^18 || ^19 || ^19.0.0-rc
svelte: '>= 4'
vue: ^3
@@ -1998,6 +1980,8 @@ packages:
optional: true
next:
optional: true
+ nuxt:
+ optional: true
react:
optional: true
svelte:
@@ -2033,25 +2017,20 @@ packages:
vue-router:
optional: true
- '@vitest/coverage-istanbul@4.1.9':
- resolution: {integrity: sha512-4a7DsIwycTf4eYwEDtnMfMV8H80KSKH9PuMHhqL5SwPZzDyUKq2X/TPCVZ7NqIuSz7UbZckmEmkip6iZBI/gEA==}
+ '@vitest/coverage-v8@4.1.11':
+ resolution: {integrity: sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw==}
peerDependencies:
- vitest: 4.1.9
-
- '@vitest/coverage-v8@4.1.9':
- resolution: {integrity: sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==}
- peerDependencies:
- '@vitest/browser': 4.1.9
- vitest: 4.1.9
+ '@vitest/browser': 4.1.11
+ vitest: 4.1.11
peerDependenciesMeta:
'@vitest/browser':
optional: true
- '@vitest/expect@4.1.9':
- resolution: {integrity: sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==}
+ '@vitest/expect@4.1.11':
+ resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==}
- '@vitest/mocker@4.1.9':
- resolution: {integrity: sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==}
+ '@vitest/mocker@4.1.11':
+ resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==}
peerDependencies:
msw: ^2.4.9
vite: ^8.0.16
@@ -2061,28 +2040,28 @@ packages:
vite:
optional: true
- '@vitest/pretty-format@4.1.9':
- resolution: {integrity: sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==}
+ '@vitest/pretty-format@4.1.11':
+ resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==}
- '@vitest/runner@4.1.9':
- resolution: {integrity: sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==}
+ '@vitest/runner@4.1.11':
+ resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==}
- '@vitest/snapshot@4.1.9':
- resolution: {integrity: sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==}
+ '@vitest/snapshot@4.1.11':
+ resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==}
- '@vitest/spy@4.1.9':
- resolution: {integrity: sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==}
+ '@vitest/spy@4.1.11':
+ resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==}
- '@vitest/utils@4.1.9':
- resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==}
+ '@vitest/utils@4.1.11':
+ resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==}
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- acorn@8.17.0:
- resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
+ acorn@8.18.0:
+ resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -2093,17 +2072,10 @@ packages:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
ansi-styles@5.2.0:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
- argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-
aria-hidden@1.2.6:
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
engines: {node: '>=10'}
@@ -2154,15 +2126,15 @@ packages:
ast-types-flow@0.0.8:
resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
- ast-v8-to-istanbul@1.0.4:
- resolution: {integrity: sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA==}
+ ast-v8-to-istanbul@1.0.5:
+ resolution: {integrity: sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==}
async-function@1.0.0:
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
engines: {node: '>= 0.4'}
- autoprefixer@10.5.0:
- resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==}
+ autoprefixer@10.5.4:
+ resolution: {integrity: sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
@@ -2172,8 +2144,8 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- axe-core@4.12.1:
- resolution: {integrity: sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==}
+ axe-core@4.13.0:
+ resolution: {integrity: sha512-UzGt8zg7Ny8djbYMhxl2zuEevVa7r2gJjYY5Lwr1xM7+XU2nd6CkIWFTVcCIbAP63vSz71NaVyyuSk9lHKcy0A==}
engines: {node: '>=4'}
axobject-query@4.1.0:
@@ -2187,27 +2159,27 @@ packages:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
- baseline-browser-mapping@2.10.36:
- resolution: {integrity: sha512-lVq/Df7LXlO79MVaaUHztSwWiG9oXoWHlgvNS51v8Dpd4+G4/VIy6qYePTw31nAVls33nUtnfezYeLkYAak9dg==}
+ baseline-browser-mapping@2.11.15:
+ resolution: {integrity: sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA==}
engines: {node: '>=6.0.0'}
hasBin: true
bidi-js@1.0.3:
resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==}
- brace-expansion@1.1.16:
- resolution: {integrity: sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==}
+ brace-expansion@1.1.18:
+ resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==}
- brace-expansion@5.0.7:
- resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==}
- engines: {node: 18 || 20 || >=22}
+ brace-expansion@5.0.9:
+ resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==}
+ engines: {node: 20 || >=22}
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- browserslist@4.28.2:
- resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
+ browserslist@4.28.8:
+ resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -2231,21 +2203,13 @@ packages:
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: '>= 0.4'}
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- caniuse-lite@1.0.30001799:
- resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==}
+ caniuse-lite@1.0.30001809:
+ resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==}
chai@6.2.2:
resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
engines: {node: '>=18'}
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
class-variance-authority@0.7.1:
resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
@@ -2262,13 +2226,6 @@ packages:
react: ^18 || ^19 || ^19.0.0-rc
react-dom: ^18 || ^19 || ^19.0.0-rc
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -2356,11 +2313,8 @@ packages:
resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
engines: {node: '>= 0.4'}
- date-fns-jalali@4.1.0-0:
- resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==}
-
- date-fns@4.1.0:
- resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==}
+ date-fns@4.4.0:
+ resolution: {integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==}
debug@3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
@@ -2421,8 +2375,8 @@ packages:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
- electron-to-chromium@1.5.371:
- resolution: {integrity: sha512-e9htk9mAYL6AzmkEhSvVVw7IWGSBJ/Bqdn2eRyRLrj1g6sncN4WbFt5qnILYoCktktr45pyjIrOiRvBThQ808w==}
+ electron-to-chromium@1.5.411:
+ resolution: {integrity: sha512-gglkxzokjHfawpGxq75XdBV2/l3BAPzrsMs70qgaZdTW5rpV1tC4MdgJVP9fN126bODA4ZJQkn1wryEzJyQXIg==}
embla-carousel-react@8.6.0:
resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==}
@@ -2440,14 +2394,18 @@ packages:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
- enhanced-resolve@5.21.6:
- resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==}
+ enhanced-resolve@5.24.5:
+ resolution: {integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==}
engines: {node: '>=10.13.0'}
entities@8.0.0:
resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==}
engines: {node: '>=20.19.0'}
+ es-abstract-get@1.0.0:
+ resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==}
+ engines: {node: '>= 0.4'}
+
es-abstract@1.24.2:
resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==}
engines: {node: '>= 0.4'}
@@ -2460,12 +2418,12 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- es-iterator-helpers@1.3.3:
- resolution: {integrity: sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==}
+ es-iterator-helpers@1.4.0:
+ resolution: {integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==}
engines: {node: '>= 0.4'}
- es-module-lexer@2.1.0:
- resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==}
+ es-module-lexer@2.3.2:
+ resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==}
es-object-atoms@1.1.2:
resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
@@ -2479,12 +2437,12 @@ packages:
resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
engines: {node: '>= 0.4'}
- es-to-primitive@1.3.0:
- resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ es-to-primitive@1.3.4:
+ resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==}
engines: {node: '>= 0.4'}
- es-toolkit@1.47.0:
- resolution: {integrity: sha512-n1GuoD0WEQZMBk5tttoZSqwgyLx01oqa5XsBmCHwPyNe1S9jPBEmtR2pSgp2kJuWE3ciFZ6yRHmY4pM4C3OOkw==}
+ es-toolkit@1.51.0:
+ resolution: {integrity: sha512-zC2lQGkM7QX+Gm6iM3+WIdZJzthsEd14LvRNJneSO2hzyz/zNBENR8+YXWo1cKxgPBtV6ksPYHELbcwBRzmdCw==}
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
@@ -2494,8 +2452,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eslint-config-next@16.2.9:
- resolution: {integrity: sha512-olGtBrs07bQchpaJWeqbk9GaMoU0oGmN/pYNEBXSbfgKngb5uHnPe37X6tVeh6DJfaWFQildvinGEOrolo5fmw==}
+ eslint-config-next@16.3.1:
+ resolution: {integrity: sha512-0vtrpwFVHFEkycUgV/DyrG29OS+HSRdah5Yu8YuZoiBMtlAT6NIiWzaLwDkJZxr2kGfx+9LIvfQ7KHAlEs0VsA==}
peerDependencies:
eslint: '>=9.0.0'
typescript: '>=3.3.1'
@@ -2519,8 +2477,8 @@ packages:
eslint-plugin-import-x:
optional: true
- eslint-module-utils@2.13.0:
- resolution: {integrity: sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==}
+ eslint-module-utils@2.14.0:
+ resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -2577,25 +2535,21 @@ packages:
peerDependencies:
eslint: ^8.0.0 || ^9.0.0 || ^10.0.0
- eslint-scope@8.4.0:
- resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint-scope@9.1.2:
+ resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.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-visitor-keys@5.0.1:
resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- eslint@9.39.4:
- resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint@10.8.1:
+ resolution: {integrity: sha512-wqA7W2jbsC/BnV9Iv1UZpKVFkO1AdNoSmYW8NWG4HNOBbkAMvIqDZ27pI2f07dqn583NcIC44ckjAcOXDL1QbQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
hasBin: true
peerDependencies:
jiti: '*'
@@ -2603,9 +2557,9 @@ packages:
jiti:
optional: true
- espree@10.4.0:
- resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ espree@11.2.0:
+ resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
esquery@1.7.0:
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
@@ -2629,8 +2583,8 @@ packages:
eventemitter3@5.0.4:
resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
- expect-type@1.3.0:
- resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
+ expect-type@1.4.0:
+ resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
engines: {node: '>=12.0.0'}
fast-deep-equal@3.1.3:
@@ -2674,8 +2628,8 @@ packages:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
- flatted@3.4.2:
- resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+ flatted@3.4.4:
+ resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
for-each@0.3.5:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
@@ -2731,8 +2685,8 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
- get-tsconfig@4.14.0:
- resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==}
+ get-tsconfig@4.14.3:
+ resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==}
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
@@ -2742,16 +2696,12 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
globals@16.4.0:
resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==}
engines: {node: '>=18'}
- globals@17.7.0:
- resolution: {integrity: sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==}
+ globals@17.11.0:
+ resolution: {integrity: sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==}
engines: {node: '>=18'}
globalthis@1.0.4:
@@ -2818,19 +2768,12 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
- ignore@7.0.5:
- resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ ignore@7.0.6:
+ resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==}
engines: {node: '>= 4'}
- immer@10.2.0:
- resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
-
- immer@11.1.8:
- resolution: {integrity: sha512-/tbkHMW7y10Lx6i1crLjD4/OhNkRG+Fo7byZHtah0547nIeXYcpIXaUh0IAQY6gO5459qpGGYapcEOHtFXkIuA==}
-
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
+ immer@11.1.18:
+ resolution: {integrity: sha512-EQyQtLiYW029lyoczMl/Hh4Xu7cDecSc58JRYpHyL4tIAu3eqd1yJzQX04d2BZHDkzFFvm6qJEJWOtfDSWAXbQ==}
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
@@ -2840,8 +2783,8 @@ packages:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
- input-otp@1.4.2:
- resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==}
+ input-otp@1.5.0:
+ resolution: {integrity: sha512-3AcfdW1sNG0FmSA5hHMBXG7jNW5CdcdKs8ln8JOmn6S2SRkoXoJx+2UwC+ZvjflfnOdHJx0SfQ9/YjlxVYLtGQ==}
peerDependencies:
react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
@@ -2996,15 +2939,11 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-yaml@4.3.0:
- resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==}
- hasBin: true
-
- jsdom@29.1.1:
- resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==}
- engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0}
+ jsdom@30.0.1:
+ resolution: {integrity: sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==}
+ engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
peerDependencies:
- canvas: ^3.0.0
+ canvas: ^3.2.3
peerDependenciesMeta:
canvas:
optional: true
@@ -3060,30 +2999,60 @@ packages:
cpu: [arm64]
os: [android]
+ lightningcss-android-arm64@1.33.0:
+ resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
lightningcss-darwin-arm64@1.32.0:
resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
+ lightningcss-darwin-arm64@1.33.0:
+ resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
lightningcss-darwin-x64@1.32.0:
resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
+ lightningcss-darwin-x64@1.33.0:
+ resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
lightningcss-freebsd-x64@1.32.0:
resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
+ lightningcss-freebsd-x64@1.33.0:
+ resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
lightningcss-linux-arm-gnueabihf@1.32.0:
resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
+ lightningcss-linux-arm-gnueabihf@1.33.0:
+ resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
lightningcss-linux-arm64-gnu@1.32.0:
resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
engines: {node: '>= 12.0.0'}
@@ -3091,6 +3060,13 @@ packages:
os: [linux]
libc: [glibc]
+ lightningcss-linux-arm64-gnu@1.33.0:
+ resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
lightningcss-linux-arm64-musl@1.32.0:
resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
engines: {node: '>= 12.0.0'}
@@ -3098,6 +3074,13 @@ packages:
os: [linux]
libc: [musl]
+ lightningcss-linux-arm64-musl@1.33.0:
+ resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
lightningcss-linux-x64-gnu@1.32.0:
resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
engines: {node: '>= 12.0.0'}
@@ -3105,6 +3088,13 @@ packages:
os: [linux]
libc: [glibc]
+ lightningcss-linux-x64-gnu@1.33.0:
+ resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
lightningcss-linux-x64-musl@1.32.0:
resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
engines: {node: '>= 12.0.0'}
@@ -3112,22 +3102,45 @@ packages:
os: [linux]
libc: [musl]
+ lightningcss-linux-x64-musl@1.33.0:
+ resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
lightningcss-win32-arm64-msvc@1.32.0:
resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [win32]
+ lightningcss-win32-arm64-msvc@1.33.0:
+ resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
lightningcss-win32-x64-msvc@1.32.0:
resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
+ lightningcss-win32-x64-msvc@1.33.0:
+ resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
lightningcss@1.32.0:
resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
engines: {node: '>= 12.0.0'}
+ lightningcss@1.33.0:
+ resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
+ engines: {node: '>= 12.0.0'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -3146,8 +3159,8 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
- lucide-react@0.564.0:
- resolution: {integrity: sha512-JJ8GVTQqFwuliifD48U6+h7DXEHdkhJ/E87kksGByII3qHxtPciVb8T8woQONHBQgHVOl7rSMrrip3SeVNy7Fg==}
+ lucide-react@1.33.0:
+ resolution: {integrity: sha512-MTRwMy0ZlL8Ur/vOAiJ9XGHE+kFPC7brq6MxAm0GiGXEBj0qy0jA/pG4N675oSzciO/UCdX8T+5yUQdmDeTLxg==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -3158,8 +3171,8 @@ packages:
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
- magicast@0.5.3:
- resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==}
+ magicast@0.5.4:
+ resolution: {integrity: sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==}
make-dir@4.0.0:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
@@ -3184,8 +3197,8 @@ packages:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
- minimatch@10.2.5:
- resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
+ minimatch@10.2.6:
+ resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
engines: {node: 18 || 20 || >=22}
minimatch@3.1.5:
@@ -3197,8 +3210,8 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- nanoid@3.3.16:
- resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==}
+ nanoid@3.3.18:
+ resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@@ -3216,8 +3229,8 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
- next@16.2.11:
- resolution: {integrity: sha512-B339zaqbyK8cmxhoAvLrcwoabwCP1wz21zSzfqxqXAemTu2BXnH7tQnfcglKv1vnMUIDBc+Hth7XODQriTZiRQ==}
+ next@16.3.1:
+ resolution: {integrity: sha512-hsAp0i7Rh+/dhe7DGIeN2YlpLM1DP4MNxti9EtDMtqcO612X81MvvEj388/oTce9U1EcEIOWDlGq0zRwrBKvuA==}
engines: {node: '>=20.9.0'}
hasBin: true
peerDependencies:
@@ -3237,12 +3250,12 @@ packages:
sass:
optional: true
- node-exports-info@1.6.0:
- resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==}
+ node-exports-info@1.6.2:
+ resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==}
engines: {node: '>= 0.4'}
- node-releases@2.0.47:
- resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
+ node-releases@2.0.53:
+ resolution: {integrity: sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==}
engines: {node: '>=18'}
object-assign@4.1.1:
@@ -3277,16 +3290,16 @@ packages:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
- obug@2.1.2:
- resolution: {integrity: sha512-AWGB9WFcRXOQs48Z/udjI5ZcZMHXwX8XPByNpOydgcGsDLIzjGizhoMWJyKAWze7AVW/2W1i+/gPX4YtKe5cyg==}
+ obug@2.1.4:
+ resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==}
engines: {node: '>=12.20.0'}
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
- own-keys@1.0.1:
- resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ own-keys@1.0.2:
+ resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==}
engines: {node: '>= 0.4'}
p-limit@3.1.0:
@@ -3297,10 +3310,6 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
-
parse5@8.0.1:
resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==}
@@ -3325,18 +3334,18 @@ packages:
resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
engines: {node: '>=8.6'}
- picomatch@4.0.4:
- resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
+ picomatch@4.0.5:
+ resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
engines: {node: '>=12'}
- playwright-core@1.61.1:
- resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==}
- engines: {node: '>=18'}
+ playwright-core@1.62.1:
+ resolution: {integrity: sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==}
+ engines: {node: '>=20'}
hasBin: true
- playwright@1.61.1:
- resolution: {integrity: sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==}
- engines: {node: '>=18'}
+ playwright@1.62.1:
+ resolution: {integrity: sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==}
+ engines: {node: '>=20'}
hasBin: true
possible-typed-array-names@1.1.0:
@@ -3346,16 +3355,16 @@ packages:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
- postcss@8.5.23:
- resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==}
+ postcss@8.5.26:
+ resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.9.5:
- resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==}
+ prettier@3.9.6:
+ resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==}
engines: {node: '>=14'}
hasBin: true
@@ -3373,19 +3382,23 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- react-day-picker@9.13.2:
- resolution: {integrity: sha512-IMPiXfXVIAuR5Yk58DDPBC8QKClrhdXV+Tr/alBrwrHUw0qDDYB1m5zPNuTnnPIr/gmJ4ChMxmtqPdxm8+R4Eg==}
+ react-day-picker@10.0.1:
+ resolution: {integrity: sha512-eNh6BlwcYInWaJtRv18mXQ06Ys/H6rdTZAnTaSdOYJuTpwP1JMCHNd1FDRadA+gbeinq+psdULN5Xnowy9mV8w==}
engines: {node: '>=18'}
peerDependencies:
+ '@types/react': '>=16.8.0'
react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
- react-dom@19.2.7:
- resolution: {integrity: sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==}
+ react-dom@19.2.8:
+ resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==}
peerDependencies:
- react: ^19.2.7
+ react: ^19.2.8
- react-hook-form@7.80.0:
- resolution: {integrity: sha512-4P+fk6oXsxY+6xSj7Euhc2sumQD8zQqCuVHoJwoyp9EchP+IUW9OESB7uHFJOKsIBQ4MQqYE84INJFqUCYNoOg==}
+ react-hook-form@7.85.0:
+ resolution: {integrity: sha512-U2MTriFXnclmV4rOE20p2DcRFv5WEg3FIcBFOKcOLFHDVvGIMPvLTkTWefUsonmlaVy23khVDxDWym6uJVGOzw==}
engines: {node: '>=18.0.0'}
peerDependencies:
react: ^16.8.0 || ^17 || ^18 || ^19
@@ -3396,9 +3409,6 @@ packages:
react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
- react-is@18.3.1:
- resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
-
react-redux@9.3.0:
resolution: {integrity: sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==}
peerDependencies:
@@ -3431,11 +3441,11 @@ packages:
'@types/react':
optional: true
- react-resizable-panels@2.1.9:
- resolution: {integrity: sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==}
+ react-resizable-panels@4.12.3:
+ resolution: {integrity: sha512-GHMJWnDXui/3RX4bT+cgBP+N3N2nkwcoZATr/2xLFpqQQe7TlBrE0cGM0dUa9ceT7A90tUrSRsiqgRG+g0/2AA==}
peerDependencies:
- react: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
react-style-singleton@2.2.3:
resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
@@ -3447,12 +3457,12 @@ packages:
'@types/react':
optional: true
- react@19.2.7:
- resolution: {integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==}
+ react@19.2.8:
+ resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==}
engines: {node: '>=0.10.0'}
- recharts@3.8.1:
- resolution: {integrity: sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg==}
+ recharts@3.10.1:
+ resolution: {integrity: sha512-QXFrvt6IVcw7eeZCoyXTwkIJAX3Dv1nyVhMicXJ47GsGDDpcN8z6o644DibE9XjpBTThtsomLKnTV6lc+cVFUA==}
engines: {node: '>=18'}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -3495,12 +3505,8 @@ packages:
resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==}
engines: {node: '>=0.10.5'}
- reselect@5.1.1:
- resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==}
-
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
+ reselect@5.2.0:
+ resolution: {integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==}
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
@@ -3514,8 +3520,8 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rolldown@1.1.2:
- resolution: {integrity: sha512-x0CrQQqCXWGeI8dTvFfN/Dnv3yMKT9hv5jFjlOreKAx9wqLq9wz7VvLLHyaAXC90/CpggTu9SisSbsJJTPSjNQ==}
+ rolldown@1.2.5:
+ resolution: {integrity: sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -3549,11 +3555,6 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- semver@7.8.4:
- resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==}
- engines: {node: '>=10'}
- hasBin: true
-
semver@7.8.5:
resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
engines: {node: '>=10'}
@@ -3610,11 +3611,15 @@ packages:
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
- sonner@1.7.4:
- resolution: {integrity: sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==}
+ sonner@2.0.8:
+ resolution: {integrity: sha512-UM/ByIoFra8yzV75n1o0Puu0bw5U/9UNnDacrJNspekBewIfsQ3D6ez1nvlWpt7aTsO6rujQtifBpycwIivqlg==}
peerDependencies:
+ '@types/react': ^18.0.0 || ^19.0.0
react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
@@ -3626,8 +3631,8 @@ packages:
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
- std-env@4.1.0:
- resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==}
+ std-env@4.2.0:
+ resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==}
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
@@ -3664,10 +3669,6 @@ packages:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
engines: {node: '>=8'}
- strip-json-comments@3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- engines: {node: '>=8'}
-
styled-jsx@5.1.6:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -3695,8 +3696,8 @@ packages:
tailwind-merge@3.6.0:
resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==}
- tailwindcss@4.3.1:
- resolution: {integrity: sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==}
+ tailwindcss@4.3.3:
+ resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==}
tapable@2.3.3:
resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
@@ -3708,23 +3709,23 @@ packages:
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
- tinyexec@1.2.4:
- resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==}
+ tinyexec@1.3.0:
+ resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==}
engines: {node: '>=18'}
tinyglobby@0.2.17:
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
- tinyrainbow@3.1.0:
- resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==}
+ tinyrainbow@3.1.1:
+ resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==}
engines: {node: '>=14.0.0'}
- tldts-core@7.4.8:
- resolution: {integrity: sha512-c1P7u0EhACHj7lPy4MJm8iTFEU8+nB0LCtddH0fhP7noaVoXAqafMtOOeX+ulpuPBqnrRgRhw494RICT3mbhnw==}
+ tldts-core@7.4.10:
+ resolution: {integrity: sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==}
- tldts@7.4.8:
- resolution: {integrity: sha512-htwgN/8KRB3z3vnC0BOETVh2m499g5GmyTK9Wq5JBLX3FNz6tSBveAd+fQhzy9hkjif8vy2jwDMR1sGhLtZl2A==}
+ tldts@7.4.10:
+ resolution: {integrity: sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==}
hasBin: true
to-regex-range@5.0.1:
@@ -3774,15 +3775,15 @@ packages:
resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==}
engines: {node: '>= 0.4'}
- typescript-eslint@8.61.0:
- resolution: {integrity: sha512-8y31Rd0eGTrDKqhy6vT0HtzhN+YLjQizwX3aA3hPXP/ynSfnrBXcQY5IzsP9/DM7+klX4IUncZZjkchP0z+rUw==}
+ typescript-eslint@8.67.0:
+ resolution: {integrity: sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- typescript@5.7.3:
- resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+ typescript@6.0.3:
+ resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
engines: {node: '>=14.17'}
hasBin: true
@@ -3793,15 +3794,15 @@ packages:
undici-types@7.18.2:
resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==}
- undici@7.28.0:
- resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==}
- engines: {node: '>=20.18.1'}
+ undici@8.10.0:
+ resolution: {integrity: sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==}
+ engines: {node: '>=22.19.0'}
unrs-resolver@1.12.2:
resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==}
- update-browserslist-db@1.2.3:
- resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
+ update-browserslist-db@1.3.1:
+ resolution: {integrity: sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -3843,13 +3844,13 @@ packages:
victory-vendor@37.3.6:
resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==}
- vite@8.1.0:
- resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==}
+ vite@8.2.2:
+ resolution: {integrity: sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
'@types/node': ^20.19.0 || >=22.12.0
- '@vitejs/devtools': ^0.3.0
+ '@vitejs/devtools': ^0.4.0 || ^0.5.0
esbuild: ^0.27.0 || ^0.28.0
jiti: '>=1.21.0'
less: ^4.0.0
@@ -3886,20 +3887,20 @@ packages:
yaml:
optional: true
- vitest@4.1.9:
- resolution: {integrity: sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==}
+ vitest@4.1.11:
+ resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@opentelemetry/api': ^1.9.0
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 4.1.9
- '@vitest/browser-preview': 4.1.9
- '@vitest/browser-webdriverio': 4.1.9
- '@vitest/coverage-istanbul': 4.1.9
- '@vitest/coverage-v8': 4.1.9
- '@vitest/ui': 4.1.9
+ '@vitest/browser-playwright': 4.1.11
+ '@vitest/browser-preview': 4.1.11
+ '@vitest/browser-webdriverio': 4.1.11
+ '@vitest/coverage-istanbul': 4.1.11
+ '@vitest/coverage-v8': 4.1.11
+ '@vitest/ui': 4.1.11
happy-dom: '*'
jsdom: '*'
vite: ^8.0.16
@@ -3943,6 +3944,10 @@ packages:
resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+ whatwg-url@17.1.0:
+ resolution: {integrity: sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==}
+ engines: {node: ^22.14.0 || >=24.0.0}
+
which-boxed-primitive@1.1.1:
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines: {node: '>= 0.4'}
@@ -3998,8 +4003,8 @@ packages:
peerDependencies:
zod: ^3.25.0 || ^4.0.0
- zod@3.25.76:
- resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
+ zod@4.4.3:
+ resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
snapshots:
@@ -4007,25 +4012,20 @@ snapshots:
'@alloc/quick-lru@5.2.0': {}
- '@asamuzakjp/css-color@5.1.11':
+ '@asamuzakjp/css-color@6.0.7':
dependencies:
- '@asamuzakjp/generational-cache': 1.0.1
- '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
- '@csstools/css-color-parser': 4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-color-parser': 4.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0
+ lru-cache: 11.5.2
- '@asamuzakjp/dom-selector@7.1.1':
+ '@asamuzakjp/dom-selector@8.3.2':
dependencies:
- '@asamuzakjp/generational-cache': 1.0.1
- '@asamuzakjp/nwsapi': 2.3.9
bidi-js: 1.0.3
css-tree: 3.2.1
is-potential-custom-element-name: 1.0.1
-
- '@asamuzakjp/generational-cache@1.0.1': {}
-
- '@asamuzakjp/nwsapi@2.3.9': {}
+ lru-cache: 11.5.2
'@babel/code-frame@7.29.7':
dependencies:
@@ -4035,30 +4035,30 @@ snapshots:
'@babel/compat-data@7.29.7': {}
- '@babel/core@7.29.7':
+ '@babel/core@7.29.7(supports-color@7.2.0)':
dependencies:
'@babel/code-frame': 7.29.7
- '@babel/generator': 7.29.7
+ '@babel/generator': 7.29.8
'@babel/helper-compilation-targets': 7.29.7
- '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0)
'@babel/helpers': 7.29.7
- '@babel/parser': 7.29.7
+ '@babel/parser': 7.29.8
'@babel/template': 7.29.7
- '@babel/traverse': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/traverse': 7.29.8(supports-color@7.2.0)
+ '@babel/types': 7.29.8
'@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
- debug: 4.4.3
+ debug: 4.4.3(supports-color@7.2.0)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.29.7':
+ '@babel/generator@7.29.8':
dependencies:
- '@babel/parser': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/parser': 7.29.8
+ '@babel/types': 7.29.8
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
@@ -4067,25 +4067,25 @@ snapshots:
dependencies:
'@babel/compat-data': 7.29.7
'@babel/helper-validator-option': 7.29.7
- browserslist: 4.28.2
+ browserslist: 4.28.8
lru-cache: 5.1.1
semver: 6.3.1
'@babel/helper-globals@7.29.7': {}
- '@babel/helper-module-imports@7.29.7':
+ '@babel/helper-module-imports@7.29.7(supports-color@7.2.0)':
dependencies:
- '@babel/traverse': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/traverse': 7.29.8(supports-color@7.2.0)
+ '@babel/types': 7.29.8
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)':
+ '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0)':
dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-module-imports': 7.29.7
+ '@babel/core': 7.29.7(supports-color@7.2.0)
+ '@babel/helper-module-imports': 7.29.7(supports-color@7.2.0)
'@babel/helper-validator-identifier': 7.29.7
- '@babel/traverse': 7.29.7
+ '@babel/traverse': 7.29.8(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
@@ -4098,33 +4098,33 @@ snapshots:
'@babel/helpers@7.29.7':
dependencies:
'@babel/template': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/types': 7.29.8
- '@babel/parser@7.29.7':
+ '@babel/parser@7.29.8':
dependencies:
- '@babel/types': 7.29.7
+ '@babel/types': 7.29.8
'@babel/runtime@7.29.7': {}
'@babel/template@7.29.7':
dependencies:
'@babel/code-frame': 7.29.7
- '@babel/parser': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/parser': 7.29.8
+ '@babel/types': 7.29.8
- '@babel/traverse@7.29.7':
+ '@babel/traverse@7.29.8(supports-color@7.2.0)':
dependencies:
'@babel/code-frame': 7.29.7
- '@babel/generator': 7.29.7
+ '@babel/generator': 7.29.8
'@babel/helper-globals': 7.29.7
- '@babel/parser': 7.29.7
+ '@babel/parser': 7.29.8
'@babel/template': 7.29.7
- '@babel/types': 7.29.7
- debug: 4.4.3
+ '@babel/types': 7.29.8
+ debug: 4.4.3(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
- '@babel/types@7.29.7':
+ '@babel/types@7.29.8':
dependencies:
'@babel/helper-string-parser': 7.29.7
'@babel/helper-validator-identifier': 7.29.7
@@ -4135,17 +4135,17 @@ snapshots:
dependencies:
css-tree: 3.2.1
- '@csstools/color-helpers@6.1.0': {}
+ '@csstools/color-helpers@6.1.1': {}
- '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
+ '@csstools/css-calc@3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
dependencies:
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0
- '@csstools/css-color-parser@4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
+ '@csstools/css-color-parser@4.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
dependencies:
- '@csstools/color-helpers': 6.1.0
- '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/color-helpers': 6.1.1
+ '@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0
@@ -4153,7 +4153,7 @@ snapshots:
dependencies:
'@csstools/css-tokenizer': 4.0.0
- '@csstools/css-syntax-patches-for-csstree@1.1.6(css-tree@3.2.1)':
+ '@csstools/css-syntax-patches-for-csstree@1.1.8(css-tree@3.2.1)':
optionalDependencies:
css-tree: 3.2.1
@@ -4167,18 +4167,12 @@ snapshots:
tslib: 2.8.1
optional: true
- '@emnapi/core@1.11.1':
- dependencies:
- '@emnapi/wasi-threads': 1.2.2
- tslib: 2.8.1
- optional: true
-
'@emnapi/runtime@1.10.0':
dependencies:
tslib: 2.8.1
optional: true
- '@emnapi/runtime@1.11.1':
+ '@emnapi/runtime@1.11.3':
dependencies:
tslib: 2.8.1
optional: true
@@ -4188,79 +4182,67 @@ snapshots:
tslib: 2.8.1
optional: true
- '@emnapi/wasi-threads@1.2.2':
+ '@eslint-community/eslint-utils@4.10.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))':
dependencies:
- tslib: 2.8.1
- optional: true
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ eslint-visitor-keys: 3.4.3
- '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.7.0))':
+ '@eslint-community/eslint-utils@4.9.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))':
dependencies:
- eslint: 9.39.4(jiti@2.7.0)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
- '@eslint/config-array@0.21.2':
+ '@eslint/config-array@0.23.5(supports-color@7.2.0)':
dependencies:
- '@eslint/object-schema': 2.1.7
- debug: 4.4.3
- minimatch: 3.1.5
+ '@eslint/object-schema': 3.0.5
+ debug: 4.4.3(supports-color@7.2.0)
+ minimatch: 10.2.6
transitivePeerDependencies:
- supports-color
- '@eslint/config-helpers@0.4.2':
+ '@eslint/config-helpers@0.7.0':
dependencies:
- '@eslint/core': 0.17.0
+ '@eslint/core': 1.2.1
- '@eslint/core@0.17.0':
+ '@eslint/core@1.2.1':
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.3.5':
- dependencies:
- ajv: 6.15.0
- debug: 4.4.3
- espree: 10.4.0
- globals: 14.0.0
- ignore: 5.3.2
- import-fresh: 3.3.1
- js-yaml: 4.3.0
- minimatch: 3.1.5
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/js@9.39.4': {}
+ '@eslint/object-schema@3.0.5': {}
- '@eslint/object-schema@2.1.7': {}
-
- '@eslint/plugin-kit@0.4.1':
+ '@eslint/plugin-kit@0.7.2':
dependencies:
- '@eslint/core': 0.17.0
+ '@eslint/core': 1.2.1
levn: 0.4.1
'@exodus/bytes@1.15.1': {}
- '@floating-ui/core@1.7.5':
+ '@floating-ui/core@1.8.0':
dependencies:
- '@floating-ui/utils': 0.2.11
+ '@floating-ui/utils': 0.2.12
- '@floating-ui/dom@1.7.6':
+ '@floating-ui/dom@1.8.0':
dependencies:
- '@floating-ui/core': 1.7.5
- '@floating-ui/utils': 0.2.11
+ '@floating-ui/core': 1.8.0
+ '@floating-ui/utils': 0.2.12
- '@floating-ui/react-dom@2.1.8(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@floating-ui/react-dom@2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@floating-ui/dom': 1.7.6
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@floating-ui/dom': 1.8.0
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
- '@floating-ui/utils@0.2.11': {}
+ '@floating-ui/utils@0.2.12': {}
- '@hookform/resolvers@3.10.0(react-hook-form@7.80.0(react@19.2.7))':
+ '@hookform/resolvers@5.9.1(@standard-schema/spec@1.1.0)(react-hook-form@7.85.0(react@19.2.8))(zod@4.4.3)':
dependencies:
- react-hook-form: 7.80.0(react@19.2.7)
+ '@standard-schema/utils': 0.3.0
+ react-hook-form: 7.85.0(react@19.2.8)
+ optionalDependencies:
+ '@standard-schema/spec': 1.1.0
+ zod: 4.4.3
'@humanfs/core@0.19.2':
dependencies:
@@ -4368,7 +4350,7 @@ snapshots:
'@img/sharp-wasm32@0.35.3':
dependencies:
- '@emnapi/runtime': 1.11.1
+ '@emnapi/runtime': 1.11.3
optional: true
'@img/sharp-webcontainers-wasm32@0.35.3':
@@ -4385,9 +4367,6 @@ snapshots:
'@img/sharp-win32-x64@0.35.3':
optional: true
- '@istanbuljs/schema@0.1.6':
- optional: true
-
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -4407,48 +4386,44 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
- '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
+ '@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
'@emnapi/core': 1.10.0
'@emnapi/runtime': 1.10.0
- '@tybys/wasm-util': 0.10.2
+ '@tybys/wasm-util': 0.10.3
optional: true
- '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)':
- dependencies:
- '@emnapi/core': 1.11.1
- '@emnapi/runtime': 1.11.1
- '@tybys/wasm-util': 0.10.2
- optional: true
-
- '@next/env@16.2.11': {}
+ '@next/env@16.3.1': {}
- '@next/eslint-plugin-next@16.2.9':
+ '@next/eslint-plugin-next@16.3.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))':
dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))
fast-glob: 3.3.1
+ transitivePeerDependencies:
+ - eslint
- '@next/swc-darwin-arm64@16.2.11':
+ '@next/swc-darwin-arm64@16.3.1':
optional: true
- '@next/swc-darwin-x64@16.2.11':
+ '@next/swc-darwin-x64@16.3.1':
optional: true
- '@next/swc-linux-arm64-gnu@16.2.11':
+ '@next/swc-linux-arm64-gnu@16.3.1':
optional: true
- '@next/swc-linux-arm64-musl@16.2.11':
+ '@next/swc-linux-arm64-musl@16.3.1':
optional: true
- '@next/swc-linux-x64-gnu@16.2.11':
+ '@next/swc-linux-x64-gnu@16.3.1':
optional: true
- '@next/swc-linux-x64-musl@16.2.11':
+ '@next/swc-linux-x64-musl@16.3.1':
optional: true
- '@next/swc-win32-arm64-msvc@16.2.11':
+ '@next/swc-win32-arm64-msvc@16.3.1':
optional: true
- '@next/swc-win32-x64-msvc@16.2.11':
+ '@next/swc-win32-x64-msvc@16.3.1':
optional: true
'@nodelib/fs.scandir@2.1.5':
@@ -4465,801 +4440,733 @@ snapshots:
'@nolyfill/is-core-module@1.0.39': {}
- '@oxc-project/types@0.137.0': {}
+ '@oxc-project/types@0.146.0': {}
- '@playwright/test@1.61.1':
+ '@playwright/test@1.62.1':
dependencies:
- playwright: 1.61.1
+ playwright: 1.62.1
- '@radix-ui/number@1.1.1': {}
+ '@radix-ui/number@1.1.3': {}
- '@radix-ui/primitive@1.1.3': {}
+ '@radix-ui/primitive@1.1.7': {}
- '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-accordion@1.2.20(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collapsible': 1.1.20(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-alert-dialog@1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-arrow@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-aspect-ratio@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-aspect-ratio@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-avatar@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/react-context': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-avatar@1.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-checkbox@1.3.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-collapsible@1.1.20(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-collection@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-compose-refs@1.1.3(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-context-menu@2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- react: 19.2.7
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
-
- '@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-context@1.1.2(@types/react@19.2.17)(react@19.2.7)':
- dependencies:
- react: 19.2.7
- optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-context@1.1.3(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-context@1.2.2(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
-
- '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
+ '@types/react': 19.2.18
+
+ '@radix-ui/react-dialog@1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
aria-hidden: 1.2.6
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-direction@1.1.1(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-direction@1.1.4(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-dropdown-menu@2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-focus-guards@1.1.6(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-focus-scope@1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-id@1.1.1(@types/react@19.2.17)(react@19.2.7)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-hover-card@1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-id@1.1.2(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-id@1.1.4(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-label@2.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-menu@2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
aria-hidden: 1.2.6
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-menubar@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-menubar@1.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-navigation-menu@1.2.22(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-previous': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-popover@1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
aria-hidden: 1.2.6
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.7)
- optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@floating-ui/react-dom': 2.1.8(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/rect': 1.1.1
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-popper@1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-arrow': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-rect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/rect': 1.1.3
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-portal@1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-presence@1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-slot': 1.2.4(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-primitive@2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-slot': 1.2.5(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-progress@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-progress@1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-context': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-radio-group@1.4.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-roving-focus@1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/number': 1.1.1
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-scroll-area@1.2.18(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/number': 1.1.3
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/number': 1.1.1
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-select@2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/number': 1.1.3
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-previous': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
aria-hidden: 1.2.6
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-separator@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-slider@1.3.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/number': 1.1.1
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-slot@1.2.3(@types/react@19.2.17)(react@19.2.7)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- optionalDependencies:
- '@types/react': 19.2.17
-
- '@radix-ui/react-slot@1.2.4(@types/react@19.2.17)(react@19.2.7)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-slider@1.4.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/number': 1.1.3
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-previous': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-slot@1.2.5(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-slot@1.3.3(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
-
- '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+
+ '@radix-ui/react-switch@1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-tabs@1.1.21(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-toast@1.2.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-toggle-group@1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-toggle': 1.1.18(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@radix-ui/react-toggle@1.1.18(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
+
+ '@radix-ui/react-tooltip@1.2.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-callback-ref@1.1.4(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
+ '@radix-ui/primitive': 1.1.7
+ '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-is-hydrated@0.1.3(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
- use-sync-external-store: 1.6.0(react@19.2.7)
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-previous@1.1.4(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-rect@1.1.4(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ '@radix-ui/rect': 1.1.3
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-use-size@1.1.4(@types/react@19.2.18)(react@19.2.8)':
dependencies:
- react: 19.2.7
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ react: 19.2.8
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.17)(react@19.2.7)':
+ '@radix-ui/react-visually-hidden@1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
- '@radix-ui/rect': 1.1.1
- react: 19.2.7
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-use-size@1.1.1(@types/react@19.2.17)(react@19.2.7)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.2.7)
- react: 19.2.7
- optionalDependencies:
- '@types/react': 19.2.17
+ '@radix-ui/rect@1.1.3': {}
- '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
-
- '@radix-ui/rect@1.1.1': {}
-
- '@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.17)(react@19.2.7)(redux@5.0.1))(react@19.2.7)':
+ '@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1))(react@19.2.8)':
dependencies:
'@standard-schema/spec': 1.1.0
'@standard-schema/utils': 0.3.0
- immer: 11.1.8
+ immer: 11.1.18
redux: 5.0.1
redux-thunk: 3.1.0(redux@5.0.1)
- reselect: 5.1.1
+ reselect: 5.2.0
optionalDependencies:
- react: 19.2.7
- react-redux: 9.3.0(@types/react@19.2.17)(react@19.2.7)(redux@5.0.1)
+ react: 19.2.8
+ react-redux: 9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1)
- '@rolldown/binding-android-arm64@1.1.2':
+ '@rolldown/binding-android-arm-eabi@1.2.5':
optional: true
- '@rolldown/binding-darwin-arm64@1.1.2':
+ '@rolldown/binding-android-arm64@1.2.5':
optional: true
- '@rolldown/binding-darwin-x64@1.1.2':
+ '@rolldown/binding-darwin-arm64@1.2.5':
optional: true
- '@rolldown/binding-freebsd-x64@1.1.2':
+ '@rolldown/binding-darwin-x64@1.2.5':
optional: true
- '@rolldown/binding-linux-arm-gnueabihf@1.1.2':
+ '@rolldown/binding-freebsd-x64@1.2.5':
optional: true
- '@rolldown/binding-linux-arm64-gnu@1.1.2':
+ '@rolldown/binding-linux-arm-gnueabihf@1.2.5':
optional: true
- '@rolldown/binding-linux-arm64-musl@1.1.2':
+ '@rolldown/binding-linux-arm64-gnu@1.2.5':
optional: true
- '@rolldown/binding-linux-ppc64-gnu@1.1.2':
+ '@rolldown/binding-linux-arm64-musl@1.2.5':
optional: true
- '@rolldown/binding-linux-s390x-gnu@1.1.2':
+ '@rolldown/binding-linux-ppc64-gnu@1.2.5':
optional: true
- '@rolldown/binding-linux-x64-gnu@1.1.2':
+ '@rolldown/binding-linux-s390x-gnu@1.2.5':
optional: true
- '@rolldown/binding-linux-x64-musl@1.1.2':
+ '@rolldown/binding-linux-x64-gnu@1.2.5':
optional: true
- '@rolldown/binding-openharmony-arm64@1.1.2':
+ '@rolldown/binding-linux-x64-musl@1.2.5':
optional: true
- '@rolldown/binding-wasm32-wasi@1.1.2':
- dependencies:
- '@emnapi/core': 1.11.1
- '@emnapi/runtime': 1.11.1
- '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)
+ '@rolldown/binding-openharmony-arm64@1.2.5':
optional: true
- '@rolldown/binding-win32-arm64-msvc@1.1.2':
+ '@rolldown/binding-win32-arm64-msvc@1.2.5':
optional: true
- '@rolldown/binding-win32-x64-msvc@1.1.2':
+ '@rolldown/binding-win32-x64-msvc@1.2.5':
optional: true
'@rolldown/pluginutils@1.0.1': {}
@@ -5270,115 +5177,115 @@ snapshots:
'@standard-schema/utils@0.3.0': {}
- '@supabase/auth-js@2.108.2':
+ '@supabase/auth-js@2.112.3':
dependencies:
tslib: 2.8.1
- '@supabase/functions-js@2.108.2':
+ '@supabase/functions-js@2.112.3':
dependencies:
tslib: 2.8.1
- '@supabase/phoenix@0.4.2': {}
+ '@supabase/phoenix@0.4.5': {}
- '@supabase/postgrest-js@2.108.2':
+ '@supabase/postgrest-js@2.112.3':
dependencies:
tslib: 2.8.1
- '@supabase/realtime-js@2.108.2':
+ '@supabase/realtime-js@2.112.3':
dependencies:
- '@supabase/phoenix': 0.4.2
+ '@supabase/phoenix': 0.4.5
tslib: 2.8.1
- '@supabase/ssr@0.10.3(@supabase/supabase-js@2.108.2)':
+ '@supabase/ssr@0.12.4(@supabase/supabase-js@2.112.3)':
dependencies:
- '@supabase/supabase-js': 2.108.2
+ '@supabase/supabase-js': 2.112.3
cookie: 1.1.1
- '@supabase/storage-js@2.108.2':
+ '@supabase/storage-js@2.112.3':
dependencies:
iceberg-js: 0.8.1
tslib: 2.8.1
- '@supabase/supabase-js@2.108.2':
+ '@supabase/supabase-js@2.112.3':
dependencies:
- '@supabase/auth-js': 2.108.2
- '@supabase/functions-js': 2.108.2
- '@supabase/postgrest-js': 2.108.2
- '@supabase/realtime-js': 2.108.2
- '@supabase/storage-js': 2.108.2
+ '@supabase/auth-js': 2.112.3
+ '@supabase/functions-js': 2.112.3
+ '@supabase/postgrest-js': 2.112.3
+ '@supabase/realtime-js': 2.112.3
+ '@supabase/storage-js': 2.112.3
- '@swc/helpers@0.5.15':
+ '@swc/helpers@0.5.23':
dependencies:
tslib: 2.8.1
- '@tailwindcss/node@4.3.1':
+ '@tailwindcss/node@4.3.3':
dependencies:
'@jridgewell/remapping': 2.3.5
- enhanced-resolve: 5.21.6
+ enhanced-resolve: 5.24.5
jiti: 2.7.0
lightningcss: 1.32.0
magic-string: 0.30.21
source-map-js: 1.2.1
- tailwindcss: 4.3.1
+ tailwindcss: 4.3.3
- '@tailwindcss/oxide-android-arm64@4.3.1':
+ '@tailwindcss/oxide-android-arm64@4.3.3':
optional: true
- '@tailwindcss/oxide-darwin-arm64@4.3.1':
+ '@tailwindcss/oxide-darwin-arm64@4.3.3':
optional: true
- '@tailwindcss/oxide-darwin-x64@4.3.1':
+ '@tailwindcss/oxide-darwin-x64@4.3.3':
optional: true
- '@tailwindcss/oxide-freebsd-x64@4.3.1':
+ '@tailwindcss/oxide-freebsd-x64@4.3.3':
optional: true
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1':
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3':
optional: true
- '@tailwindcss/oxide-linux-arm64-gnu@4.3.1':
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.3':
optional: true
- '@tailwindcss/oxide-linux-arm64-musl@4.3.1':
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.3':
optional: true
- '@tailwindcss/oxide-linux-x64-gnu@4.3.1':
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.3':
optional: true
- '@tailwindcss/oxide-linux-x64-musl@4.3.1':
+ '@tailwindcss/oxide-linux-x64-musl@4.3.3':
optional: true
- '@tailwindcss/oxide-wasm32-wasi@4.3.1':
+ '@tailwindcss/oxide-wasm32-wasi@4.3.3':
optional: true
- '@tailwindcss/oxide-win32-arm64-msvc@4.3.1':
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.3':
optional: true
- '@tailwindcss/oxide-win32-x64-msvc@4.3.1':
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.3':
optional: true
- '@tailwindcss/oxide@4.3.1':
+ '@tailwindcss/oxide@4.3.3':
optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.3.1
- '@tailwindcss/oxide-darwin-arm64': 4.3.1
- '@tailwindcss/oxide-darwin-x64': 4.3.1
- '@tailwindcss/oxide-freebsd-x64': 4.3.1
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.1
- '@tailwindcss/oxide-linux-arm64-gnu': 4.3.1
- '@tailwindcss/oxide-linux-arm64-musl': 4.3.1
- '@tailwindcss/oxide-linux-x64-gnu': 4.3.1
- '@tailwindcss/oxide-linux-x64-musl': 4.3.1
- '@tailwindcss/oxide-wasm32-wasi': 4.3.1
- '@tailwindcss/oxide-win32-arm64-msvc': 4.3.1
- '@tailwindcss/oxide-win32-x64-msvc': 4.3.1
-
- '@tailwindcss/postcss@4.3.1':
+ '@tailwindcss/oxide-android-arm64': 4.3.3
+ '@tailwindcss/oxide-darwin-arm64': 4.3.3
+ '@tailwindcss/oxide-darwin-x64': 4.3.3
+ '@tailwindcss/oxide-freebsd-x64': 4.3.3
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.3
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.3.3
+ '@tailwindcss/oxide-linux-arm64-musl': 4.3.3
+ '@tailwindcss/oxide-linux-x64-gnu': 4.3.3
+ '@tailwindcss/oxide-linux-x64-musl': 4.3.3
+ '@tailwindcss/oxide-wasm32-wasi': 4.3.3
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3
+ '@tailwindcss/oxide-win32-x64-msvc': 4.3.3
+
+ '@tailwindcss/postcss@4.3.3':
dependencies:
'@alloc/quick-lru': 5.2.0
- '@tailwindcss/node': 4.3.1
- '@tailwindcss/oxide': 4.3.1
- postcss: 8.5.23
- tailwindcss: 4.3.1
+ '@tailwindcss/node': 4.3.3
+ '@tailwindcss/oxide': 4.3.3
+ postcss: 8.5.26
+ tailwindcss: 4.3.3
'@testing-library/dom@10.4.1':
dependencies:
@@ -5391,30 +5298,33 @@ snapshots:
picocolors: 1.1.1
pretty-format: 27.5.1
- '@testing-library/jest-dom@6.9.1':
+ '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@4.1.11)':
dependencies:
'@adobe/css-tools': 4.5.0
+ '@testing-library/dom': 10.4.1
aria-query: 5.3.2
css.escape: 1.5.1
dom-accessibility-api: 0.6.3
picocolors: 1.1.1
redent: 3.0.0
+ optionalDependencies:
+ vitest: 4.1.11(@types/node@24.13.3)(@vitest/coverage-v8@4.1.11)(jsdom@30.0.1)(vite@8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0))
- '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
+ '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
dependencies:
'@babel/runtime': 7.29.7
'@testing-library/dom': 10.4.1
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
- '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)':
+ '@testing-library/user-event@14.6.5(@testing-library/dom@10.4.1)':
dependencies:
'@testing-library/dom': 10.4.1
- '@tybys/wasm-util@0.10.2':
+ '@tybys/wasm-util@0.10.3':
dependencies:
tslib: 2.8.1
optional: true
@@ -5452,115 +5362,117 @@ snapshots:
'@types/deep-eql@4.0.2': {}
+ '@types/esrecurse@4.3.1': {}
+
'@types/estree@1.0.9': {}
'@types/json-schema@7.0.15': {}
'@types/json5@0.0.29': {}
- '@types/node@24.13.2':
+ '@types/node@24.13.3':
dependencies:
undici-types: 7.18.2
- '@types/react-dom@19.2.3(@types/react@19.2.17)':
+ '@types/react-dom@19.2.4(@types/react@19.2.18)':
dependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- '@types/react@19.2.17':
+ '@types/react@19.2.18':
dependencies:
csstype: 3.2.3
'@types/use-sync-external-store@0.0.6': {}
- '@typescript-eslint/eslint-plugin@8.61.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)':
+ '@typescript-eslint/eslint-plugin@8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- '@typescript-eslint/scope-manager': 8.61.0
- '@typescript-eslint/type-utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- '@typescript-eslint/utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.61.0
- eslint: 9.39.4(jiti@2.7.0)
- ignore: 7.0.5
+ '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/scope-manager': 8.67.0
+ '@typescript-eslint/type-utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/visitor-keys': 8.67.0
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ ignore: 7.0.6
natural-compare: 1.4.0
- ts-api-utils: 2.5.0(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)':
+ '@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.61.0
- '@typescript-eslint/types': 8.61.0
- '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.61.0
- debug: 4.4.3
- eslint: 9.39.4(jiti@2.7.0)
- typescript: 5.7.3
+ '@typescript-eslint/scope-manager': 8.67.0
+ '@typescript-eslint/types': 8.67.0
+ '@typescript-eslint/typescript-estree': 8.67.0(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/visitor-keys': 8.67.0
+ debug: 4.4.3(supports-color@7.2.0)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.61.0(typescript@5.7.3)':
+ '@typescript-eslint/project-service@8.67.0(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@5.7.3)
- '@typescript-eslint/types': 8.61.0
- debug: 4.4.3
- typescript: 5.7.3
+ '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@6.0.3)
+ '@typescript-eslint/types': 8.67.0
+ debug: 4.4.3(supports-color@7.2.0)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.61.0':
+ '@typescript-eslint/scope-manager@8.67.0':
dependencies:
- '@typescript-eslint/types': 8.61.0
- '@typescript-eslint/visitor-keys': 8.61.0
+ '@typescript-eslint/types': 8.67.0
+ '@typescript-eslint/visitor-keys': 8.67.0
- '@typescript-eslint/tsconfig-utils@8.61.0(typescript@5.7.3)':
+ '@typescript-eslint/tsconfig-utils@8.67.0(typescript@6.0.3)':
dependencies:
- typescript: 5.7.3
+ typescript: 6.0.3
- '@typescript-eslint/type-utils@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)':
+ '@typescript-eslint/type-utils@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/types': 8.61.0
- '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.7.3)
- '@typescript-eslint/utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- debug: 4.4.3
- eslint: 9.39.4(jiti@2.7.0)
- ts-api-utils: 2.5.0(typescript@5.7.3)
- typescript: 5.7.3
+ '@typescript-eslint/types': 8.67.0
+ '@typescript-eslint/typescript-estree': 8.67.0(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ debug: 4.4.3(supports-color@7.2.0)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.61.0': {}
+ '@typescript-eslint/types@8.67.0': {}
- '@typescript-eslint/typescript-estree@8.61.0(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.67.0(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/project-service': 8.61.0(typescript@5.7.3)
- '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@5.7.3)
- '@typescript-eslint/types': 8.61.0
- '@typescript-eslint/visitor-keys': 8.61.0
- debug: 4.4.3
- minimatch: 10.2.5
- semver: 7.8.4
+ '@typescript-eslint/project-service': 8.67.0(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@6.0.3)
+ '@typescript-eslint/types': 8.67.0
+ '@typescript-eslint/visitor-keys': 8.67.0
+ debug: 4.4.3(supports-color@7.2.0)
+ minimatch: 10.2.6
+ semver: 7.8.5
tinyglobby: 0.2.17
- ts-api-utils: 2.5.0(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0))
- '@typescript-eslint/scope-manager': 8.61.0
- '@typescript-eslint/types': 8.61.0
- '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.7.3)
- eslint: 9.39.4(jiti@2.7.0)
- typescript: 5.7.3
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))
+ '@typescript-eslint/scope-manager': 8.67.0
+ '@typescript-eslint/types': 8.67.0
+ '@typescript-eslint/typescript-estree': 8.67.0(supports-color@7.2.0)(typescript@6.0.3)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.61.0':
+ '@typescript-eslint/visitor-keys@8.67.0':
dependencies:
- '@typescript-eslint/types': 8.61.0
+ '@typescript-eslint/types': 8.67.0
eslint-visitor-keys: 5.0.1
'@unrs/resolver-binding-android-arm-eabi@1.12.2':
@@ -5621,7 +5533,7 @@ snapshots:
dependencies:
'@emnapi/core': 1.10.0
'@emnapi/runtime': 1.10.0
- '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
+ '@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
optional: true
'@unrs/resolver-binding-win32-arm64-msvc@1.12.2':
@@ -5633,93 +5545,76 @@ snapshots:
'@unrs/resolver-binding-win32-x64-msvc@1.12.2':
optional: true
- '@vercel/analytics@1.6.1(next@16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)':
+ '@vercel/analytics@2.0.1(next@16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
optionalDependencies:
- next: 16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
+ next: 16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
- '@vercel/speed-insights@2.0.0(next@16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)':
+ '@vercel/speed-insights@2.0.0(next@16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
optionalDependencies:
- next: 16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
+ next: 16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
- '@vitest/coverage-istanbul@4.1.9(vitest@4.1.9)':
- dependencies:
- '@babel/core': 7.29.7
- '@istanbuljs/schema': 0.1.6
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- istanbul-lib-coverage: 3.2.2
- istanbul-lib-report: 3.0.1
- istanbul-reports: 3.2.0
- magicast: 0.5.3
- obug: 2.1.2
- tinyrainbow: 3.1.0
- vitest: 4.1.9(@types/node@24.13.2)(@vitest/coverage-istanbul@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@29.1.1)(vite@8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))
- transitivePeerDependencies:
- - supports-color
- optional: true
-
- '@vitest/coverage-v8@4.1.9(vitest@4.1.9)':
+ '@vitest/coverage-v8@4.1.11(vitest@4.1.11)':
dependencies:
'@bcoe/v8-coverage': 1.0.2
- '@vitest/utils': 4.1.9
- ast-v8-to-istanbul: 1.0.4
+ '@vitest/utils': 4.1.11
+ ast-v8-to-istanbul: 1.0.5
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-reports: 3.2.0
- magicast: 0.5.3
- obug: 2.1.2
- std-env: 4.1.0
- tinyrainbow: 3.1.0
- vitest: 4.1.9(@types/node@24.13.2)(@vitest/coverage-istanbul@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@29.1.1)(vite@8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))
+ magicast: 0.5.4
+ obug: 2.1.4
+ std-env: 4.2.0
+ tinyrainbow: 3.1.1
+ vitest: 4.1.11(@types/node@24.13.3)(@vitest/coverage-v8@4.1.11)(jsdom@30.0.1)(vite@8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0))
- '@vitest/expect@4.1.9':
+ '@vitest/expect@4.1.11':
dependencies:
'@standard-schema/spec': 1.1.0
'@types/chai': 5.2.3
- '@vitest/spy': 4.1.9
- '@vitest/utils': 4.1.9
+ '@vitest/spy': 4.1.11
+ '@vitest/utils': 4.1.11
chai: 6.2.2
- tinyrainbow: 3.1.0
+ tinyrainbow: 3.1.1
- '@vitest/mocker@4.1.9(vite@8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.11(vite@8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0))':
dependencies:
- '@vitest/spy': 4.1.9
+ '@vitest/spy': 4.1.11
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)
+ vite: 8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0)
- '@vitest/pretty-format@4.1.9':
+ '@vitest/pretty-format@4.1.11':
dependencies:
- tinyrainbow: 3.1.0
+ tinyrainbow: 3.1.1
- '@vitest/runner@4.1.9':
+ '@vitest/runner@4.1.11':
dependencies:
- '@vitest/utils': 4.1.9
+ '@vitest/utils': 4.1.11
pathe: 2.0.3
- '@vitest/snapshot@4.1.9':
+ '@vitest/snapshot@4.1.11':
dependencies:
- '@vitest/pretty-format': 4.1.9
- '@vitest/utils': 4.1.9
+ '@vitest/pretty-format': 4.1.11
+ '@vitest/utils': 4.1.11
magic-string: 0.30.21
pathe: 2.0.3
- '@vitest/spy@4.1.9': {}
+ '@vitest/spy@4.1.11': {}
- '@vitest/utils@4.1.9':
+ '@vitest/utils@4.1.11':
dependencies:
- '@vitest/pretty-format': 4.1.9
+ '@vitest/pretty-format': 4.1.11
convert-source-map: 2.0.0
- tinyrainbow: 3.1.0
+ tinyrainbow: 3.1.1
- acorn-jsx@5.3.2(acorn@8.17.0):
+ acorn-jsx@5.3.2(acorn@8.18.0):
dependencies:
- acorn: 8.17.0
+ acorn: 8.18.0
- acorn@8.17.0: {}
+ acorn@8.18.0: {}
ajv@6.15.0:
dependencies:
@@ -5730,14 +5625,8 @@ snapshots:
ansi-regex@5.0.1: {}
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
ansi-styles@5.2.0: {}
- argparse@2.0.1: {}
-
aria-hidden@1.2.6:
dependencies:
tslib: 2.8.1
@@ -5819,7 +5708,7 @@ snapshots:
ast-types-flow@0.0.8: {}
- ast-v8-to-istanbul@1.0.4:
+ ast-v8-to-istanbul@1.0.5:
dependencies:
'@jridgewell/trace-mapping': 0.3.31
estree-walker: 3.0.3
@@ -5827,20 +5716,20 @@ snapshots:
async-function@1.0.0: {}
- autoprefixer@10.5.0(postcss@8.5.23):
+ autoprefixer@10.5.4(postcss@8.5.26):
dependencies:
- browserslist: 4.28.2
- caniuse-lite: 1.0.30001799
+ browserslist: 4.28.8
+ caniuse-lite: 1.0.30001809
fraction.js: 5.3.4
picocolors: 1.1.1
- postcss: 8.5.23
+ postcss: 8.5.26
postcss-value-parser: 4.2.0
available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.1.0
- axe-core@4.12.1: {}
+ axe-core@4.13.0: {}
axobject-query@4.1.0: {}
@@ -5848,18 +5737,18 @@ snapshots:
balanced-match@4.0.4: {}
- baseline-browser-mapping@2.10.36: {}
+ baseline-browser-mapping@2.11.15: {}
bidi-js@1.0.3:
dependencies:
require-from-string: 2.0.2
- brace-expansion@1.1.16:
+ brace-expansion@1.1.18:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@5.0.7:
+ brace-expansion@5.0.9:
dependencies:
balanced-match: 4.0.4
@@ -5867,13 +5756,13 @@ snapshots:
dependencies:
fill-range: 7.1.1
- browserslist@4.28.2:
+ browserslist@4.28.8:
dependencies:
- baseline-browser-mapping: 2.10.36
- caniuse-lite: 1.0.30001799
- electron-to-chromium: 1.5.371
- node-releases: 2.0.47
- update-browserslist-db: 1.2.3(browserslist@4.28.2)
+ baseline-browser-mapping: 2.11.15
+ caniuse-lite: 1.0.30001809
+ electron-to-chromium: 1.5.411
+ node-releases: 2.0.53
+ update-browserslist-db: 1.3.1(browserslist@4.28.8)
builtin-modules@3.3.0: {}
@@ -5896,17 +5785,10 @@ snapshots:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0
- callsites@3.1.0: {}
-
- caniuse-lite@1.0.30001799: {}
+ caniuse-lite@1.0.30001809: {}
chai@6.2.2: {}
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
class-variance-authority@0.7.1:
dependencies:
clsx: 2.1.1
@@ -5915,24 +5797,18 @@ snapshots:
clsx@2.1.1: {}
- cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ cmdk@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@19.2.7)
- '@radix-ui/react-primitive': 2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
transitivePeerDependencies:
- '@types/react'
- '@types/react-dom'
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
concat-map@0.0.1: {}
convert-source-map@2.0.0: {}
@@ -6019,17 +5895,19 @@ snapshots:
es-errors: 1.3.0
is-data-view: 1.0.2
- date-fns-jalali@4.1.0-0: {}
+ date-fns@4.4.0: {}
- date-fns@4.1.0: {}
-
- debug@3.2.7:
+ debug@3.2.7(supports-color@7.2.0):
dependencies:
ms: 2.1.3
+ optionalDependencies:
+ supports-color: 7.2.0
- debug@4.4.3:
+ debug@4.4.3(supports-color@7.2.0):
dependencies:
ms: 2.1.3
+ optionalDependencies:
+ supports-color: 7.2.0
decimal.js-light@2.5.1: {}
@@ -6069,13 +5947,13 @@ snapshots:
es-errors: 1.3.0
gopd: 1.2.0
- electron-to-chromium@1.5.371: {}
+ electron-to-chromium@1.5.411: {}
- embla-carousel-react@8.6.0(react@19.2.7):
+ embla-carousel-react@8.6.0(react@19.2.8):
dependencies:
embla-carousel: 8.6.0
embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0)
- react: 19.2.7
+ react: 19.2.8
embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0):
dependencies:
@@ -6085,13 +5963,20 @@ snapshots:
emoji-regex@9.2.2: {}
- enhanced-resolve@5.21.6:
+ enhanced-resolve@5.24.5:
dependencies:
graceful-fs: 4.2.11
tapable: 2.3.3
entities@8.0.0: {}
+ es-abstract-get@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ is-callable: 1.2.7
+ object-inspect: 1.13.4
+
es-abstract@1.24.2:
dependencies:
array-buffer-byte-length: 1.0.2
@@ -6106,7 +5991,7 @@ snapshots:
es-errors: 1.3.0
es-object-atoms: 1.1.2
es-set-tostringtag: 2.1.0
- es-to-primitive: 1.3.0
+ es-to-primitive: 1.3.4
function.prototype.name: 1.2.0
get-intrinsic: 1.3.0
get-proto: 1.0.1
@@ -6132,7 +6017,7 @@ snapshots:
object-inspect: 1.13.4
object-keys: 1.1.1
object.assign: 4.1.7
- own-keys: 1.0.1
+ own-keys: 1.0.2
regexp.prototype.flags: 1.5.4
safe-array-concat: 1.1.4
safe-push-apply: 1.0.0
@@ -6153,7 +6038,7 @@ snapshots:
es-errors@1.3.0: {}
- es-iterator-helpers@1.3.3:
+ es-iterator-helpers@1.4.0:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
@@ -6172,7 +6057,7 @@ snapshots:
iterator.prototype: 1.1.5
math-intrinsics: 1.1.0
- es-module-lexer@2.1.0: {}
+ es-module-lexer@2.3.2: {}
es-object-atoms@1.1.2:
dependencies:
@@ -6189,69 +6074,72 @@ snapshots:
dependencies:
hasown: 2.0.4
- es-to-primitive@1.3.0:
+ es-to-primitive@1.3.4:
dependencies:
+ es-abstract-get: 1.0.0
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
is-callable: 1.2.7
is-date-object: 1.1.0
is-symbol: 1.1.1
- es-toolkit@1.47.0: {}
+ es-toolkit@1.51.0: {}
escalade@3.2.0: {}
escape-string-regexp@4.0.0: {}
- eslint-config-next@16.2.9(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3):
+ eslint-config-next@16.3.1(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3):
dependencies:
- '@next/eslint-plugin-next': 16.2.9
- eslint: 9.39.4(jiti@2.7.0)
- eslint-import-resolver-node: 0.3.10
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.7.0))
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0))
- eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@2.7.0))
- eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.7.0))
- eslint-plugin-react-hooks: 7.1.1(eslint@9.39.4(jiti@2.7.0))
+ '@next/eslint-plugin-next': 16.3.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
+ eslint-plugin-jsx-a11y: 6.10.2(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))
+ eslint-plugin-react: 7.37.5(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))
+ eslint-plugin-react-hooks: 7.1.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
globals: 16.4.0
- typescript-eslint: 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
+ typescript-eslint: 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
optionalDependencies:
- typescript: 5.7.3
+ typescript: 6.0.3
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-webpack
- eslint-plugin-import-x
- supports-color
- eslint-import-resolver-node@0.3.10:
+ eslint-import-resolver-node@0.3.10(supports-color@7.2.0):
dependencies:
- debug: 3.2.7
+ debug: 3.2.7(supports-color@7.2.0)
is-core-module: 2.16.2
resolve: 2.0.0-next.7
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.7.0)):
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
dependencies:
'@nolyfill/is-core-module': 1.0.39
- debug: 4.4.3
- eslint: 9.39.4(jiti@2.7.0)
- get-tsconfig: 4.14.0
+ debug: 4.4.3(supports-color@7.2.0)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ get-tsconfig: 4.14.3
is-bun-module: 2.0.0
stable-hash: 0.0.5
tinyglobby: 0.2.17
unrs-resolver: 1.12.2
optionalDependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.13.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0)):
+ eslint-module-utils@2.14.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
dependencies:
- debug: 3.2.7
+ debug: 3.2.7(supports-color@7.2.0)
optionalDependencies:
- '@typescript-eslint/parser': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- eslint: 9.39.4(jiti@2.7.0)
- eslint-import-resolver-node: 0.3.10
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.7.0))
+ '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
@@ -6259,18 +6147,18 @@ snapshots:
dependencies:
requireindex: 1.1.0
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0)):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
array.prototype.findlastindex: 1.2.6
array.prototype.flat: 1.3.3
array.prototype.flatmap: 1.3.3
- debug: 3.2.7
+ debug: 3.2.7(supports-color@7.2.0)
doctrine: 2.1.0
- eslint: 9.39.4(jiti@2.7.0)
- eslint-import-resolver-node: 0.3.10
- eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0))
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
+ eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
hasown: 2.0.4
is-core-module: 2.16.2
is-glob: 4.0.3
@@ -6282,23 +6170,23 @@ snapshots:
string.prototype.trimend: 1.0.10
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
+ '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.4(jiti@2.7.0)):
+ eslint-plugin-jsx-a11y@6.10.2(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0)):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.9
array.prototype.flatmap: 1.3.3
ast-types-flow: 0.0.8
- axe-core: 4.12.1
+ axe-core: 4.13.0
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
- eslint: 9.39.4(jiti@2.7.0)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
hasown: 2.0.4
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@@ -6307,26 +6195,26 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
- eslint-plugin-react-hooks@7.1.1(eslint@9.39.4(jiti@2.7.0)):
+ eslint-plugin-react-hooks@7.1.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
dependencies:
- '@babel/core': 7.29.7
- '@babel/parser': 7.29.7
- eslint: 9.39.4(jiti@2.7.0)
+ '@babel/core': 7.29.7(supports-color@7.2.0)
+ '@babel/parser': 7.29.8
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
hermes-parser: 0.25.1
- zod: 3.25.76
- zod-validation-error: 4.0.2(zod@3.25.76)
+ zod: 4.4.3
+ zod-validation-error: 4.0.2(zod@4.4.3)
transitivePeerDependencies:
- supports-color
- eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.7.0)):
+ eslint-plugin-react@7.37.5(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0)):
dependencies:
array-includes: 3.1.9
array.prototype.findlast: 1.2.5
array.prototype.flatmap: 1.3.3
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
- es-iterator-helpers: 1.3.3
- eslint: 9.39.4(jiti@2.7.0)
+ es-iterator-helpers: 1.4.0
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
estraverse: 5.3.0
hasown: 2.0.4
jsx-ast-utils: 3.3.5
@@ -6340,56 +6228,53 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
- eslint-plugin-sonarjs@4.2.0(eslint@9.39.4(jiti@2.7.0)):
+ eslint-plugin-sonarjs@4.2.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0)):
dependencies:
'@eslint-community/regexpp': 4.12.2
builtin-modules: 3.3.0
bytes: 3.1.2
- eslint: 9.39.4(jiti@2.7.0)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
functional-red-black-tree: 1.0.1
- globals: 17.7.0
+ globals: 17.11.0
jsx-ast-utils-x: 0.1.0
lodash.merge: 4.6.2
- minimatch: 10.2.5
+ minimatch: 10.2.6
scslre: 0.3.0
semver: 7.8.5
- ts-api-utils: 2.5.0(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
yaml: 2.9.0
- eslint-scope@8.4.0:
+ eslint-scope@9.1.2:
dependencies:
+ '@types/esrecurse': 4.3.1
+ '@types/estree': 1.0.9
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-visitor-keys@3.4.3: {}
- eslint-visitor-keys@4.2.1: {}
-
eslint-visitor-keys@5.0.1: {}
- eslint@9.39.4(jiti@2.7.0):
+ eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0))
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))
'@eslint-community/regexpp': 4.12.2
- '@eslint/config-array': 0.21.2
- '@eslint/config-helpers': 0.4.2
- '@eslint/core': 0.17.0
- '@eslint/eslintrc': 3.3.5
- '@eslint/js': 9.39.4
- '@eslint/plugin-kit': 0.4.1
+ '@eslint/config-array': 0.23.5(supports-color@7.2.0)
+ '@eslint/config-helpers': 0.7.0
+ '@eslint/core': 1.2.1
+ '@eslint/plugin-kit': 0.7.2
'@humanfs/node': 0.16.8
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.9
ajv: 6.15.0
- chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.3
+ debug: 4.4.3(supports-color@7.2.0)
escape-string-regexp: 4.0.0
- eslint-scope: 8.4.0
- eslint-visitor-keys: 4.2.1
- espree: 10.4.0
+ eslint-scope: 9.1.2
+ eslint-visitor-keys: 5.0.1
+ espree: 11.2.0
esquery: 1.7.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
@@ -6400,8 +6285,7 @@ snapshots:
imurmurhash: 0.1.4
is-glob: 4.0.3
json-stable-stringify-without-jsonify: 1.0.1
- lodash.merge: 4.6.2
- minimatch: 3.1.5
+ minimatch: 10.2.6
natural-compare: 1.4.0
optionator: 0.9.4
optionalDependencies:
@@ -6409,11 +6293,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- espree@10.4.0:
+ espree@11.2.0:
dependencies:
- acorn: 8.17.0
- acorn-jsx: 5.3.2(acorn@8.17.0)
- eslint-visitor-keys: 4.2.1
+ acorn: 8.18.0
+ acorn-jsx: 5.3.2(acorn@8.18.0)
+ eslint-visitor-keys: 5.0.1
esquery@1.7.0:
dependencies:
@@ -6433,7 +6317,7 @@ snapshots:
eventemitter3@5.0.4: {}
- expect-type@1.3.0: {}
+ expect-type@1.4.0: {}
fast-deep-equal@3.1.3: {}
@@ -6453,9 +6337,9 @@ snapshots:
dependencies:
reusify: 1.1.0
- fdir@6.5.0(picomatch@4.0.4):
+ fdir@6.5.0(picomatch@4.0.5):
optionalDependencies:
- picomatch: 4.0.4
+ picomatch: 4.0.5
file-entry-cache@8.0.0:
dependencies:
@@ -6472,10 +6356,10 @@ snapshots:
flat-cache@4.0.1:
dependencies:
- flatted: 3.4.2
+ flatted: 3.4.4
keyv: 4.5.4
- flatted@3.4.2: {}
+ flatted@3.4.4: {}
for-each@0.3.5:
dependencies:
@@ -6537,7 +6421,7 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
- get-tsconfig@4.14.0:
+ get-tsconfig@4.14.3:
dependencies:
resolve-pkg-maps: 1.0.0
@@ -6549,11 +6433,9 @@ snapshots:
dependencies:
is-glob: 4.0.3
- globals@14.0.0: {}
-
globals@16.4.0: {}
- globals@17.7.0: {}
+ globals@17.11.0: {}
globalthis@1.0.4:
dependencies:
@@ -6606,25 +6488,18 @@ snapshots:
ignore@5.3.2: {}
- ignore@7.0.5: {}
-
- immer@10.2.0: {}
+ ignore@7.0.6: {}
- immer@11.1.8: {}
-
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
+ immer@11.1.18: {}
imurmurhash@0.1.4: {}
indent-string@4.0.0: {}
- input-otp@1.4.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ input-otp@1.5.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
internal-slot@1.1.0:
dependencies:
@@ -6659,7 +6534,7 @@ snapshots:
is-bun-module@2.0.0:
dependencies:
- semver: 7.8.4
+ semver: 7.8.5
is-callable@1.2.7: {}
@@ -6784,16 +6659,12 @@ snapshots:
js-tokens@4.0.0: {}
- js-yaml@4.3.0:
- dependencies:
- argparse: 2.0.1
-
- jsdom@29.1.1:
+ jsdom@30.0.1:
dependencies:
- '@asamuzakjp/css-color': 5.1.11
- '@asamuzakjp/dom-selector': 7.1.1
+ '@asamuzakjp/css-color': 6.0.7
+ '@asamuzakjp/dom-selector': 8.3.2
'@bramus/specificity': 2.4.2
- '@csstools/css-syntax-patches-for-csstree': 1.1.6(css-tree@3.2.1)
+ '@csstools/css-syntax-patches-for-csstree': 1.1.8(css-tree@3.2.1)
'@exodus/bytes': 1.15.1
css-tree: 3.2.1
data-urls: 7.0.0
@@ -6805,11 +6676,11 @@ snapshots:
saxes: 6.0.0
symbol-tree: 3.2.4
tough-cookie: 6.0.2
- undici: 7.28.0
+ undici: 8.10.0
w3c-xmlserializer: 5.0.0
webidl-conversions: 8.0.1
whatwg-mimetype: 5.0.0
- whatwg-url: 16.0.1
+ whatwg-url: 17.1.0
xml-name-validator: 5.0.0
transitivePeerDependencies:
- '@noble/hashes'
@@ -6855,36 +6726,69 @@ snapshots:
lightningcss-android-arm64@1.32.0:
optional: true
+ lightningcss-android-arm64@1.33.0:
+ optional: true
+
lightningcss-darwin-arm64@1.32.0:
optional: true
+ lightningcss-darwin-arm64@1.33.0:
+ optional: true
+
lightningcss-darwin-x64@1.32.0:
optional: true
+ lightningcss-darwin-x64@1.33.0:
+ optional: true
+
lightningcss-freebsd-x64@1.32.0:
optional: true
+ lightningcss-freebsd-x64@1.33.0:
+ optional: true
+
lightningcss-linux-arm-gnueabihf@1.32.0:
optional: true
+ lightningcss-linux-arm-gnueabihf@1.33.0:
+ optional: true
+
lightningcss-linux-arm64-gnu@1.32.0:
optional: true
+ lightningcss-linux-arm64-gnu@1.33.0:
+ optional: true
+
lightningcss-linux-arm64-musl@1.32.0:
optional: true
+ lightningcss-linux-arm64-musl@1.33.0:
+ optional: true
+
lightningcss-linux-x64-gnu@1.32.0:
optional: true
+ lightningcss-linux-x64-gnu@1.33.0:
+ optional: true
+
lightningcss-linux-x64-musl@1.32.0:
optional: true
+ lightningcss-linux-x64-musl@1.33.0:
+ optional: true
+
lightningcss-win32-arm64-msvc@1.32.0:
optional: true
+ lightningcss-win32-arm64-msvc@1.33.0:
+ optional: true
+
lightningcss-win32-x64-msvc@1.32.0:
optional: true
+ lightningcss-win32-x64-msvc@1.33.0:
+ optional: true
+
lightningcss@1.32.0:
dependencies:
detect-libc: 2.1.2
@@ -6901,6 +6805,22 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.32.0
lightningcss-win32-x64-msvc: 1.32.0
+ lightningcss@1.33.0:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.33.0
+ lightningcss-darwin-arm64: 1.33.0
+ lightningcss-darwin-x64: 1.33.0
+ lightningcss-freebsd-x64: 1.33.0
+ lightningcss-linux-arm-gnueabihf: 1.33.0
+ lightningcss-linux-arm64-gnu: 1.33.0
+ lightningcss-linux-arm64-musl: 1.33.0
+ lightningcss-linux-x64-gnu: 1.33.0
+ lightningcss-linux-x64-musl: 1.33.0
+ lightningcss-win32-arm64-msvc: 1.33.0
+ lightningcss-win32-x64-msvc: 1.33.0
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -6917,9 +6837,9 @@ snapshots:
dependencies:
yallist: 3.1.1
- lucide-react@0.564.0(react@19.2.7):
+ lucide-react@1.33.0(react@19.2.8):
dependencies:
- react: 19.2.7
+ react: 19.2.8
lz-string@1.5.0: {}
@@ -6927,15 +6847,15 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
- magicast@0.5.3:
+ magicast@0.5.4:
dependencies:
- '@babel/parser': 7.29.7
- '@babel/types': 7.29.7
+ '@babel/parser': 7.29.8
+ '@babel/types': 7.29.8
source-map-js: 1.2.1
make-dir@4.0.0:
dependencies:
- semver: 7.8.4
+ semver: 7.8.5
math-intrinsics@1.1.0: {}
@@ -6950,63 +6870,63 @@ snapshots:
min-indent@1.0.1: {}
- minimatch@10.2.5:
+ minimatch@10.2.6:
dependencies:
- brace-expansion: 5.0.7
+ brace-expansion: 5.0.9
minimatch@3.1.5:
dependencies:
- brace-expansion: 1.1.16
+ brace-expansion: 1.1.18
minimist@1.2.8: {}
ms@2.1.3: {}
- nanoid@3.3.16: {}
+ nanoid@3.3.18: {}
napi-postinstall@0.3.4: {}
natural-compare@1.4.0: {}
- next-themes@0.4.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ next-themes@0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
- next@16.2.11(@babel/core@7.29.7)(@playwright/test@1.61.1)(@types/node@24.13.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ next@16.3.1(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- '@next/env': 16.2.11
- '@swc/helpers': 0.5.15
- baseline-browser-mapping: 2.10.36
- caniuse-lite: 1.0.30001799
- postcss: 8.5.23
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- styled-jsx: 5.1.6(@babel/core@7.29.7)(react@19.2.7)
+ '@next/env': 16.3.1
+ '@swc/helpers': 0.5.23
+ baseline-browser-mapping: 2.11.15
+ caniuse-lite: 1.0.30001809
+ postcss: 8.5.26
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ styled-jsx: 5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.2.8)
optionalDependencies:
- '@next/swc-darwin-arm64': 16.2.11
- '@next/swc-darwin-x64': 16.2.11
- '@next/swc-linux-arm64-gnu': 16.2.11
- '@next/swc-linux-arm64-musl': 16.2.11
- '@next/swc-linux-x64-gnu': 16.2.11
- '@next/swc-linux-x64-musl': 16.2.11
- '@next/swc-win32-arm64-msvc': 16.2.11
- '@next/swc-win32-x64-msvc': 16.2.11
- '@playwright/test': 1.61.1
- sharp: 0.35.3(@types/node@24.13.2)
+ '@next/swc-darwin-arm64': 16.3.1
+ '@next/swc-darwin-x64': 16.3.1
+ '@next/swc-linux-arm64-gnu': 16.3.1
+ '@next/swc-linux-arm64-musl': 16.3.1
+ '@next/swc-linux-x64-gnu': 16.3.1
+ '@next/swc-linux-x64-musl': 16.3.1
+ '@next/swc-win32-arm64-msvc': 16.3.1
+ '@next/swc-win32-x64-msvc': 16.3.1
+ '@playwright/test': 1.62.1
+ sharp: 0.35.3(@types/node@24.13.3)
transitivePeerDependencies:
- '@babel/core'
- '@types/node'
- babel-plugin-macros
- node-exports-info@1.6.0:
+ node-exports-info@1.6.2:
dependencies:
array.prototype.flatmap: 1.3.3
es-errors: 1.3.0
object.entries: 1.1.9
semver: 6.3.1
- node-releases@2.0.47: {}
+ node-releases@2.0.53: {}
object-assign@4.1.1: {}
@@ -7050,7 +6970,7 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.2
- obug@2.1.2: {}
+ obug@2.1.4: {}
optionator@0.9.4:
dependencies:
@@ -7061,8 +6981,9 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
- own-keys@1.0.1:
+ own-keys@1.0.2:
dependencies:
+ call-bound: 1.0.4
get-intrinsic: 1.3.0
object-keys: 1.1.1
safe-push-apply: 1.0.0
@@ -7075,10 +6996,6 @@ snapshots:
dependencies:
p-limit: 3.1.0
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
-
parse5@8.0.1:
dependencies:
entities: 8.0.0
@@ -7095,13 +7012,13 @@ snapshots:
picomatch@2.3.2: {}
- picomatch@4.0.4: {}
+ picomatch@4.0.5: {}
- playwright-core@1.61.1: {}
+ playwright-core@1.62.1: {}
- playwright@1.61.1:
+ playwright@1.62.1:
dependencies:
- playwright-core: 1.61.1
+ playwright-core: 1.62.1
optionalDependencies:
fsevents: 2.3.2
@@ -7109,15 +7026,15 @@ snapshots:
postcss-value-parser@4.2.0: {}
- postcss@8.5.23:
+ postcss@8.5.26:
dependencies:
- nanoid: 3.3.16
+ nanoid: 3.3.18
picocolors: 1.1.1
source-map-js: 1.2.1
prelude-ls@1.2.1: {}
- prettier@3.9.5: {}
+ prettier@3.9.6: {}
pretty-format@27.5.1:
dependencies:
@@ -7135,86 +7052,85 @@ snapshots:
queue-microtask@1.2.3: {}
- react-day-picker@9.13.2(react@19.2.7):
+ react-day-picker@10.0.1(@types/react@19.2.18)(react@19.2.8):
dependencies:
'@date-fns/tz': 1.5.0
- date-fns: 4.1.0
- date-fns-jalali: 4.1.0-0
- react: 19.2.7
+ date-fns: 4.4.0
+ react: 19.2.8
+ optionalDependencies:
+ '@types/react': 19.2.18
- react-dom@19.2.7(react@19.2.7):
+ react-dom@19.2.8(react@19.2.8):
dependencies:
- react: 19.2.7
+ react: 19.2.8
scheduler: 0.27.0
- react-hook-form@7.80.0(react@19.2.7):
+ react-hook-form@7.85.0(react@19.2.8):
dependencies:
- react: 19.2.7
+ react: 19.2.8
react-is@16.13.1: {}
react-is@17.0.2: {}
- react-is@18.3.1: {}
-
- react-redux@9.3.0(@types/react@19.2.17)(react@19.2.7)(redux@5.0.1):
+ react-redux@9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1):
dependencies:
'@types/use-sync-external-store': 0.0.6
- react: 19.2.7
- use-sync-external-store: 1.6.0(react@19.2.7)
+ react: 19.2.8
+ use-sync-external-store: 1.6.0(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
redux: 5.0.1
- react-remove-scroll-bar@2.3.8(@types/react@19.2.17)(react@19.2.7):
+ react-remove-scroll-bar@2.3.8(@types/react@19.2.18)(react@19.2.8):
dependencies:
- react: 19.2.7
- react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.7)
+ react: 19.2.8
+ react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.2.8)
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- react-remove-scroll@2.7.2(@types/react@19.2.17)(react@19.2.7):
+ react-remove-scroll@2.7.2(@types/react@19.2.18)(react@19.2.8):
dependencies:
- react: 19.2.7
- react-remove-scroll-bar: 2.3.8(@types/react@19.2.17)(react@19.2.7)
- react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.7)
+ react: 19.2.8
+ react-remove-scroll-bar: 2.3.8(@types/react@19.2.18)(react@19.2.8)
+ react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.2.8)
tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.2.17)(react@19.2.7)
- use-sidecar: 1.1.3(@types/react@19.2.17)(react@19.2.7)
+ use-callback-ref: 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ use-sidecar: 1.1.3(@types/react@19.2.18)(react@19.2.8)
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- react-resizable-panels@2.1.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ react-resizable-panels@4.12.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
- react-style-singleton@2.2.3(@types/react@19.2.17)(react@19.2.7):
+ react-style-singleton@2.2.3(@types/react@19.2.18)(react@19.2.8):
dependencies:
get-nonce: 1.0.1
- react: 19.2.7
+ react: 19.2.8
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- react@19.2.7: {}
+ react@19.2.8: {}
- recharts@3.8.1(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@18.3.1)(react@19.2.7)(redux@5.0.1):
+ recharts@3.10.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react-is@16.13.1)(react@19.2.8)(redux@5.0.1):
dependencies:
- '@reduxjs/toolkit': 2.12.0(react-redux@9.3.0(@types/react@19.2.17)(react@19.2.7)(redux@5.0.1))(react@19.2.7)
+ '@reduxjs/toolkit': 2.12.0(react-redux@9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1))(react@19.2.8)
clsx: 2.1.1
decimal.js-light: 2.5.1
- es-toolkit: 1.47.0
+ es-toolkit: 1.51.0
eventemitter3: 5.0.4
- immer: 10.2.0
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
- react-is: 18.3.1
- react-redux: 9.3.0(@types/react@19.2.17)(react@19.2.7)(redux@5.0.1)
- reselect: 5.1.1
+ immer: 11.1.18
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-is: 16.13.1
+ react-redux: 9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1)
+ reselect: 5.2.0
tiny-invariant: 1.3.3
- use-sync-external-store: 1.6.0(react@19.2.7)
+ use-sync-external-store: 1.6.0(react@19.2.8)
victory-vendor: 37.3.6
transitivePeerDependencies:
- '@types/react'
@@ -7264,9 +7180,7 @@ snapshots:
requireindex@1.1.0: {}
- reselect@5.1.1: {}
-
- resolve-from@4.0.0: {}
+ reselect@5.2.0: {}
resolve-pkg-maps@1.0.0: {}
@@ -7274,33 +7188,33 @@ snapshots:
dependencies:
es-errors: 1.3.0
is-core-module: 2.16.2
- node-exports-info: 1.6.0
+ node-exports-info: 1.6.2
object-keys: 1.1.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
reusify@1.1.0: {}
- rolldown@1.1.2:
+ rolldown@1.2.5:
dependencies:
- '@oxc-project/types': 0.137.0
+ '@oxc-project/types': 0.146.0
'@rolldown/pluginutils': 1.0.1
optionalDependencies:
- '@rolldown/binding-android-arm64': 1.1.2
- '@rolldown/binding-darwin-arm64': 1.1.2
- '@rolldown/binding-darwin-x64': 1.1.2
- '@rolldown/binding-freebsd-x64': 1.1.2
- '@rolldown/binding-linux-arm-gnueabihf': 1.1.2
- '@rolldown/binding-linux-arm64-gnu': 1.1.2
- '@rolldown/binding-linux-arm64-musl': 1.1.2
- '@rolldown/binding-linux-ppc64-gnu': 1.1.2
- '@rolldown/binding-linux-s390x-gnu': 1.1.2
- '@rolldown/binding-linux-x64-gnu': 1.1.2
- '@rolldown/binding-linux-x64-musl': 1.1.2
- '@rolldown/binding-openharmony-arm64': 1.1.2
- '@rolldown/binding-wasm32-wasi': 1.1.2
- '@rolldown/binding-win32-arm64-msvc': 1.1.2
- '@rolldown/binding-win32-x64-msvc': 1.1.2
+ '@rolldown/binding-android-arm-eabi': 1.2.5
+ '@rolldown/binding-android-arm64': 1.2.5
+ '@rolldown/binding-darwin-arm64': 1.2.5
+ '@rolldown/binding-darwin-x64': 1.2.5
+ '@rolldown/binding-freebsd-x64': 1.2.5
+ '@rolldown/binding-linux-arm-gnueabihf': 1.2.5
+ '@rolldown/binding-linux-arm64-gnu': 1.2.5
+ '@rolldown/binding-linux-arm64-musl': 1.2.5
+ '@rolldown/binding-linux-ppc64-gnu': 1.2.5
+ '@rolldown/binding-linux-s390x-gnu': 1.2.5
+ '@rolldown/binding-linux-x64-gnu': 1.2.5
+ '@rolldown/binding-linux-x64-musl': 1.2.5
+ '@rolldown/binding-openharmony-arm64': 1.2.5
+ '@rolldown/binding-win32-arm64-msvc': 1.2.5
+ '@rolldown/binding-win32-x64-msvc': 1.2.5
run-parallel@1.2.0:
dependencies:
@@ -7339,8 +7253,6 @@ snapshots:
semver@6.3.1: {}
- semver@7.8.4: {}
-
semver@7.8.5: {}
server-only@0.0.1: {}
@@ -7367,7 +7279,7 @@ snapshots:
es-errors: 1.3.0
es-object-atoms: 1.1.2
- sharp@0.35.3(@types/node@24.13.2):
+ sharp@0.35.3(@types/node@24.13.3):
dependencies:
'@img/colour': 1.1.0
detect-libc: 2.1.2
@@ -7398,7 +7310,7 @@ snapshots:
'@img/sharp-win32-arm64': 0.35.3
'@img/sharp-win32-ia32': 0.35.3
'@img/sharp-win32-x64': 0.35.3
- '@types/node': 24.13.2
+ '@types/node': 24.13.3
optional: true
shebang-command@2.0.0:
@@ -7437,10 +7349,12 @@ snapshots:
siginfo@2.0.0: {}
- sonner@1.7.4(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ sonner@2.0.8(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ optionalDependencies:
+ '@types/react': 19.2.18
source-map-js@1.2.1: {}
@@ -7448,7 +7362,7 @@ snapshots:
stackback@0.0.2: {}
- std-env@4.1.0: {}
+ std-env@4.2.0: {}
stop-iteration-iterator@1.1.0:
dependencies:
@@ -7512,14 +7426,12 @@ snapshots:
dependencies:
min-indent: 1.0.1
- strip-json-comments@3.1.1: {}
-
- styled-jsx@5.1.6(@babel/core@7.29.7)(react@19.2.7):
+ styled-jsx@5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.2.8):
dependencies:
client-only: 0.0.1
- react: 19.2.7
+ react: 19.2.8
optionalDependencies:
- '@babel/core': 7.29.7
+ '@babel/core': 7.29.7(supports-color@7.2.0)
supports-color@7.2.0:
dependencies:
@@ -7531,7 +7443,7 @@ snapshots:
tailwind-merge@3.6.0: {}
- tailwindcss@4.3.1: {}
+ tailwindcss@4.3.3: {}
tapable@2.3.3: {}
@@ -7539,20 +7451,20 @@ snapshots:
tinybench@2.9.0: {}
- tinyexec@1.2.4: {}
+ tinyexec@1.3.0: {}
tinyglobby@0.2.17:
dependencies:
- fdir: 6.5.0(picomatch@4.0.4)
- picomatch: 4.0.4
+ fdir: 6.5.0(picomatch@4.0.5)
+ picomatch: 4.0.5
- tinyrainbow@3.1.0: {}
+ tinyrainbow@3.1.1: {}
- tldts-core@7.4.8: {}
+ tldts-core@7.4.10: {}
- tldts@7.4.8:
+ tldts@7.4.10:
dependencies:
- tldts-core: 7.4.8
+ tldts-core: 7.4.10
to-regex-range@5.0.1:
dependencies:
@@ -7560,15 +7472,15 @@ snapshots:
tough-cookie@6.0.2:
dependencies:
- tldts: 7.4.8
+ tldts: 7.4.10
tr46@6.0.0:
dependencies:
punycode: 2.3.1
- ts-api-utils@2.5.0(typescript@5.7.3):
+ ts-api-utils@2.5.0(typescript@6.0.3):
dependencies:
- typescript: 5.7.3
+ typescript: 6.0.3
tsconfig-paths@3.15.0:
dependencies:
@@ -7618,18 +7530,18 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- typescript-eslint@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3):
+ typescript-eslint@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.61.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- '@typescript-eslint/parser': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.7.3)
- '@typescript-eslint/utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.7.3)
- eslint: 9.39.4(jiti@2.7.0)
- typescript: 5.7.3
+ '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/typescript-estree': 8.67.0(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ eslint: 10.8.1(jiti@2.7.0)(supports-color@7.2.0)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- typescript@5.7.3: {}
+ typescript@6.0.3: {}
unbox-primitive@1.1.0:
dependencies:
@@ -7640,7 +7552,7 @@ snapshots:
undici-types@7.18.2: {}
- undici@7.28.0: {}
+ undici@8.10.0: {}
unrs-resolver@1.12.2:
dependencies:
@@ -7669,9 +7581,9 @@ snapshots:
'@unrs/resolver-binding-win32-ia32-msvc': 1.12.2
'@unrs/resolver-binding-win32-x64-msvc': 1.12.2
- update-browserslist-db@1.2.3(browserslist@4.28.2):
+ update-browserslist-db@1.3.1(browserslist@4.28.8):
dependencies:
- browserslist: 4.28.2
+ browserslist: 4.28.8
escalade: 3.2.0
picocolors: 1.1.1
@@ -7679,30 +7591,30 @@ snapshots:
dependencies:
punycode: 2.3.1
- use-callback-ref@1.3.3(@types/react@19.2.17)(react@19.2.7):
+ use-callback-ref@1.3.3(@types/react@19.2.18)(react@19.2.8):
dependencies:
- react: 19.2.7
+ react: 19.2.8
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- use-sidecar@1.1.3(@types/react@19.2.17)(react@19.2.7):
+ use-sidecar@1.1.3(@types/react@19.2.18)(react@19.2.8):
dependencies:
detect-node-es: 1.1.0
- react: 19.2.7
+ react: 19.2.8
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.17
+ '@types/react': 19.2.18
- use-sync-external-store@1.6.0(react@19.2.7):
+ use-sync-external-store@1.6.0(react@19.2.8):
dependencies:
- react: 19.2.7
+ react: 19.2.8
- vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ vaul@1.1.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- react: 19.2.7
- react-dom: 19.2.7(react@19.2.7)
+ '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
transitivePeerDependencies:
- '@types/react'
- '@types/react-dom'
@@ -7724,46 +7636,45 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite@8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0):
+ vite@8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0):
dependencies:
- lightningcss: 1.32.0
- picomatch: 4.0.4
- postcss: 8.5.23
- rolldown: 1.1.2
+ lightningcss: 1.33.0
+ picomatch: 4.0.5
+ postcss: 8.5.26
+ rolldown: 1.2.5
tinyglobby: 0.2.17
optionalDependencies:
- '@types/node': 24.13.2
+ '@types/node': 24.13.3
fsevents: 2.3.3
jiti: 2.7.0
yaml: 2.9.0
- vitest@4.1.9(@types/node@24.13.2)(@vitest/coverage-istanbul@4.1.9)(@vitest/coverage-v8@4.1.9)(jsdom@29.1.1)(vite@8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)):
- dependencies:
- '@vitest/expect': 4.1.9
- '@vitest/mocker': 4.1.9(vite@8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0))
- '@vitest/pretty-format': 4.1.9
- '@vitest/runner': 4.1.9
- '@vitest/snapshot': 4.1.9
- '@vitest/spy': 4.1.9
- '@vitest/utils': 4.1.9
- es-module-lexer: 2.1.0
- expect-type: 1.3.0
+ vitest@4.1.11(@types/node@24.13.3)(@vitest/coverage-v8@4.1.11)(jsdom@30.0.1)(vite@8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0)):
+ dependencies:
+ '@vitest/expect': 4.1.11
+ '@vitest/mocker': 4.1.11(vite@8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0))
+ '@vitest/pretty-format': 4.1.11
+ '@vitest/runner': 4.1.11
+ '@vitest/snapshot': 4.1.11
+ '@vitest/spy': 4.1.11
+ '@vitest/utils': 4.1.11
+ es-module-lexer: 2.3.2
+ expect-type: 1.4.0
magic-string: 0.30.21
- obug: 2.1.2
+ obug: 2.1.4
pathe: 2.0.3
- picomatch: 4.0.4
- std-env: 4.1.0
+ picomatch: 4.0.5
+ std-env: 4.2.0
tinybench: 2.9.0
- tinyexec: 1.2.4
+ tinyexec: 1.3.0
tinyglobby: 0.2.17
- tinyrainbow: 3.1.0
- vite: 8.1.0(@types/node@24.13.2)(jiti@2.7.0)(yaml@2.9.0)
+ tinyrainbow: 3.1.1
+ vite: 8.2.2(@types/node@24.13.3)(jiti@2.7.0)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 24.13.2
- '@vitest/coverage-istanbul': 4.1.9(vitest@4.1.9)
- '@vitest/coverage-v8': 4.1.9(vitest@4.1.9)
- jsdom: 29.1.1
+ '@types/node': 24.13.3
+ '@vitest/coverage-v8': 4.1.11(vitest@4.1.11)
+ jsdom: 30.0.1
transitivePeerDependencies:
- msw
@@ -7783,6 +7694,14 @@ snapshots:
transitivePeerDependencies:
- '@noble/hashes'
+ whatwg-url@17.1.0:
+ dependencies:
+ '@exodus/bytes': 1.15.1
+ tr46: 6.0.0
+ webidl-conversions: 8.0.1
+ transitivePeerDependencies:
+ - '@noble/hashes'
+
which-boxed-primitive@1.1.1:
dependencies:
is-bigint: 1.1.0
@@ -7845,8 +7764,8 @@ snapshots:
yocto-queue@0.1.0: {}
- zod-validation-error@4.0.2(zod@3.25.76):
+ zod-validation-error@4.0.2(zod@4.4.3):
dependencies:
- zod: 3.25.76
+ zod: 4.4.3
- zod@3.25.76: {}
+ zod@4.4.3: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 00000000..f43d7cd4
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,16 @@
+allowBuilds:
+ sharp: true
+ unrs-resolver: true
+minimumReleaseAgeExclude:
+ - vite@8.2.2
+overrides:
+ postcss: ^8.5.23
+ lodash: '>=4.18.0'
+ vite: ^8.0.16
+ brace-expansion@1: ^1.1.16
+ brace-expansion@5: ^5.0.7
+ js-yaml: ^4.3.0
+ sharp: ^0.35.0
+onlyBuiltDependencies:
+ - sharp
+ - unrs-resolver
diff --git a/proxy.ts b/proxy.ts
index 25d3d470..1fbbf843 100644
--- a/proxy.ts
+++ b/proxy.ts
@@ -1,13 +1,11 @@
-import { type NextRequest } from "next/server"
+import { type NextRequest } from "next/server";
-import { updateSession } from "@/lib/supabase/proxy"
+import { updateSession } from "@/lib/supabase/proxy";
export default async function middleware(request: NextRequest) {
- return updateSession(request)
+ return updateSession(request);
}
export const config = {
- matcher: [
- "/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)",
- ],
-}
+ matcher: ["/((?!_next/|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)"],
+};
diff --git a/scripts/backfill-encrypt-fields.ts b/scripts/backfill-encrypt-fields.ts
new file mode 100644
index 00000000..e6b84ac1
--- /dev/null
+++ b/scripts/backfill-encrypt-fields.ts
@@ -0,0 +1,163 @@
+import { createClient, type SupabaseClient } from "@supabase/supabase-js";
+
+import {
+ encryptDescription,
+ encryptField,
+ isAlreadyEncrypted,
+} from "../lib/crypto/field-encryption";
+
+const BATCH_SIZE = 500;
+
+function requireEnv(name: string): string {
+ const value = process.env[name];
+ if (!value) {
+ throw new Error(`${name} is required to run this script.`);
+ }
+ return value;
+}
+
+function getClient() {
+ const url = requireEnv("NEXT_PUBLIC_SUPABASE_URL");
+ const serviceRoleKey = requireEnv("SUPABASE_SERVICE_ROLE_KEY");
+ return createClient(url, serviceRoleKey);
+}
+
+type ProfileRow = { id: string; name: string | null; email: string | null };
+type TransactionRow = {
+ id: string;
+ description: string;
+ notes: string | null;
+};
+
+type BackfillConfig = {
+ table: string;
+ columns: string;
+ resolvePatch: (row: Row) => Record | null;
+};
+
+async function fetchPage(
+ supabase: SupabaseClient,
+ config: { table: string; columns: string },
+ cursor: string | null,
+): Promise {
+ let query = supabase
+ .from(config.table)
+ .select(config.columns)
+ .order("id", { ascending: true })
+ .limit(BATCH_SIZE);
+ if (cursor) query = query.gt("id", cursor);
+
+ const { data, error } = await query;
+ if (error) {
+ throw new Error(`Unable to page ${config.table}: ${error.message}`);
+ }
+
+ return (data ?? []) as unknown as T[];
+}
+
+async function applyPatch(
+ supabase: SupabaseClient,
+ target: { table: string; rowId: string },
+ patch: Record,
+) {
+ const { error } = await supabase
+ .from(target.table)
+ .update(patch)
+ .eq("id", target.rowId);
+ if (error) {
+ throw new Error(
+ `Unable to update ${target.table} ${target.rowId}: ${error.message}`,
+ );
+ }
+}
+
+async function backfillTable(
+ supabase: SupabaseClient,
+ config: BackfillConfig,
+): Promise {
+ let updated = 0;
+ let cursor: string | null = null;
+
+ for (;;) {
+ const rows: Row[] = await fetchPage(supabase, config, cursor);
+ if (!rows.length) break;
+
+ for (const row of rows) {
+ const patch = config.resolvePatch(row);
+ if (patch) {
+ await applyPatch(
+ supabase,
+ { table: config.table, rowId: row.id },
+ patch,
+ );
+ updated += 1;
+ }
+ }
+
+ cursor = rows.at(-1)!.id;
+ if (rows.length < BATCH_SIZE) break;
+ }
+
+ return updated;
+}
+
+function resolveProfilePatch(row: ProfileRow) {
+ const needsName = row.name !== null && !isAlreadyEncrypted(row.name);
+ const needsEmail = row.email !== null && !isAlreadyEncrypted(row.email);
+
+ if (!needsName && !needsEmail) return null;
+
+ return {
+ ...(needsName ? { name: encryptField(row.name) } : {}),
+ ...(needsEmail ? { email: encryptField(row.email) } : {}),
+ };
+}
+
+function resolveTransactionPatch(row: TransactionRow) {
+ const needsDescription = !isAlreadyEncrypted(row.description);
+ const needsNotes = row.notes !== null && !isAlreadyEncrypted(row.notes);
+
+ if (!needsDescription && !needsNotes) return null;
+
+ return {
+ ...(needsDescription
+ ? { description: encryptDescription(row.description) }
+ : {}),
+ ...(needsNotes ? { notes: encryptField(row.notes) } : {}),
+ };
+}
+
+export async function runBackfill(supabase: SupabaseClient) {
+ const profilesUpdated = await backfillTable(supabase, {
+ table: "profiles",
+ columns: "id, name, email",
+ resolvePatch: resolveProfilePatch,
+ });
+ const transactionsUpdated = await backfillTable(supabase, {
+ table: "transactions",
+ columns: "id, description, notes",
+ resolvePatch: resolveTransactionPatch,
+ });
+
+ return { profilesUpdated, transactionsUpdated };
+}
+
+async function main() {
+ const supabase = getClient();
+ const { profilesUpdated, transactionsUpdated } = await runBackfill(supabase);
+
+ console.log(`profiles updated: ${profilesUpdated}`);
+ console.log(`transactions updated: ${transactionsUpdated}`);
+ console.log(
+ profilesUpdated === 0 && transactionsUpdated === 0
+ ? "Nothing left to backfill — safe to move to Fase 3."
+ : "Re-run this script again; Fase 3 requires a run that updates 0 rows.",
+ );
+}
+
+if (require.main === module) {
+ main().catch((error) => {
+ console.error(error);
+ process.exitCode = 1;
+ });
+}
diff --git a/supabase/migrations/010_stop_writing_plaintext_profile_pii.sql b/supabase/migrations/010_stop_writing_plaintext_profile_pii.sql
new file mode 100644
index 00000000..2703175b
--- /dev/null
+++ b/supabase/migrations/010_stop_writing_plaintext_profile_pii.sql
@@ -0,0 +1,64 @@
+create or replace function private.handle_new_user()
+returns trigger
+language plpgsql
+security definer
+set search_path = public, auth
+as $$
+begin
+ insert into public.profiles (id, email, name, terms_accepted)
+ values (
+ new.id,
+ null,
+ null,
+ coalesce((new.raw_user_meta_data->>'terms_accepted')::boolean, false)
+ );
+
+ insert into public.categories (
+ user_id,
+ name,
+ group_type,
+ monthly_limit,
+ is_default,
+ icon
+ )
+ values
+ (new.id, 'Housing', 'needs', 2000, true, '🏠'),
+ (new.id, 'Food', 'needs', 400, true, '🛒'),
+ (new.id, 'Transportation', 'needs', 300, true, '🚗'),
+ (new.id, 'Health', 'needs', 200, true, '💡'),
+ (new.id, 'Education', 'needs', 160, true, '📚'),
+ (new.id, 'Important', 'needs', 180, true, '⚡'),
+ (new.id, 'Debt', 'needs', 250, true, '🧾'),
+ (new.id, 'Leisure', 'wants', 150, true, '📺'),
+ (new.id, 'Subscriptions', 'wants', 200, true, '🎬'),
+ (new.id, 'Shopping', 'wants', 300, true, '🛍️'),
+ (new.id, 'Others', 'wants', 120, true, '🏷️'),
+ (new.id, 'Investments', 'savings', 500, true, '📈'),
+ (new.id, 'Income', 'income', null, true, '💼');
+
+ insert into public.payment_methods (
+ user_id,
+ name,
+ type,
+ credit_limit
+ )
+ values
+ (new.id, 'Pix', 'pix', null),
+ (new.id, 'Cash', 'cash', null),
+ (new.id, 'Credit Card', 'credit', 0),
+ (new.id, 'Debit Card', 'debit', null);
+
+ return new;
+end;
+$$;
+
+comment on column public.profiles.name is
+ 'Application-layer encrypted (lib/crypto/field-encryption.ts). Never plaintext after 010.';
+comment on column public.profiles.email is
+ 'Application-layer encrypted (lib/crypto/field-encryption.ts). Never plaintext after 010. Distinct from auth.users.email.';
+comment on column public.transactions.description is
+ 'Application-layer encrypted with a deterministic IV (lib/crypto/field-encryption.ts) to preserve equality lookups.';
+comment on column public.transactions.notes is
+ 'Application-layer encrypted (lib/crypto/field-encryption.ts). Subscription state now lives in application logic derived from decrypted notes, not this index.';
+
+drop index if exists transactions_user_id_notes_idx;
diff --git a/tests/auth/callback-route.test.ts b/tests/auth/callback-route.test.ts
index 61eddf4f..e62ff6dd 100644
--- a/tests/auth/callback-route.test.ts
+++ b/tests/auth/callback-route.test.ts
@@ -1,8 +1,11 @@
import { NextRequest } from "next/server";
import { beforeEach, describe, expect, it, vi } from "vitest";
-const { exchangeCodeForSession, createClient } = vi.hoisted(() => ({
- exchangeCodeForSession: vi.fn().mockResolvedValue({ error: null }),
+const { exchangeCodeForSession, setSession, createClient } = vi.hoisted(() => ({
+ exchangeCodeForSession: vi
+ .fn()
+ .mockResolvedValue({ data: { session: null }, error: null }),
+ setSession: vi.fn(),
createClient: vi.fn(),
}));
@@ -13,8 +16,12 @@ import { GET } from "@/app/auth/callback/route";
describe("GET /auth/callback", () => {
beforeEach(() => {
vi.clearAllMocks();
+ exchangeCodeForSession.mockResolvedValue({
+ data: { session: null },
+ error: null,
+ });
createClient.mockResolvedValue({
- auth: { exchangeCodeForSession },
+ auth: { exchangeCodeForSession, setSession },
});
});
@@ -25,13 +32,49 @@ describe("GET /auth/callback", () => {
const response = await GET(request);
- expect(exchangeCodeForSession).toHaveBeenCalledWith("abc123");
+ expect(exchangeCodeForSession).toHaveBeenCalledWith("abc123", undefined);
+ expect(setSession).not.toHaveBeenCalled();
expect(response.status).toBe(307);
expect(response.headers.get("location")).toBe(
"http://localhost/transactions",
);
});
+ it("passes sb_flow_id through so the matching PKCE verifier cookie is cleaned up", async () => {
+ const request = new NextRequest(
+ "http://localhost/auth/callback?code=abc123&sb_flow_id=flow-xyz",
+ );
+
+ await GET(request);
+
+ expect(exchangeCodeForSession).toHaveBeenCalledWith("abc123", {
+ flowId: "flow-xyz",
+ });
+ });
+
+ it("re-saves the session via setSession to drop the provider token bloat", async () => {
+ exchangeCodeForSession.mockResolvedValue({
+ data: {
+ session: {
+ access_token: "at-123",
+ refresh_token: "rt-456",
+ provider_token: "google-at",
+ },
+ },
+ error: null,
+ });
+ const request = new NextRequest(
+ "http://localhost/auth/callback?code=abc123",
+ );
+
+ await GET(request);
+
+ expect(setSession).toHaveBeenCalledWith({
+ access_token: "at-123",
+ refresh_token: "rt-456",
+ });
+ });
+
it("skips the exchange and redirects to /dashboard when there is no code or 'next' param", async () => {
const request = new NextRequest("http://localhost/auth/callback");
@@ -39,9 +82,7 @@ describe("GET /auth/callback", () => {
expect(exchangeCodeForSession).not.toHaveBeenCalled();
expect(createClient).not.toHaveBeenCalled();
- expect(response.headers.get("location")).toBe(
- "http://localhost/dashboard",
- );
+ expect(response.headers.get("location")).toBe("http://localhost/dashboard");
});
it("falls back to /dashboard when 'next' points off-site", async () => {
@@ -51,8 +92,6 @@ describe("GET /auth/callback", () => {
const response = await GET(request);
- expect(response.headers.get("location")).toBe(
- "http://localhost/dashboard",
- );
+ expect(response.headers.get("location")).toBe("http://localhost/dashboard");
});
});
diff --git a/tests/dashboard/transaction-form.test.tsx b/tests/dashboard/transaction-form.test.tsx
index 2b8c2e42..ab43a9e7 100644
--- a/tests/dashboard/transaction-form.test.tsx
+++ b/tests/dashboard/transaction-form.test.tsx
@@ -391,7 +391,12 @@ describe("installment eligibility across payment method types", () => {
describe("date field", () => {
it("defaults to today's date, round-trips a valid typed date, and clears back to today on an invalid date", () => {
- const todayInputValue = new Date().toISOString().slice(0, 10);
+ const today = new Date();
+ const todayInputValue = [
+ today.getFullYear(),
+ String(today.getMonth() + 1).padStart(2, "0"),
+ String(today.getDate()).padStart(2, "0"),
+ ].join("-");
render();
const dateInput = screen.getByLabelText("Date") as HTMLInputElement;
diff --git a/tests/dashboard/transactions-screen-details.test.tsx b/tests/dashboard/transactions-screen-details.test.tsx
index 444083b1..e544bec6 100644
--- a/tests/dashboard/transactions-screen-details.test.tsx
+++ b/tests/dashboard/transactions-screen-details.test.tsx
@@ -989,60 +989,67 @@ describe("Transaction details dialog - invoice view", () => {
});
describe("Transaction details dialog - edit mode", () => {
- it("updates amount, description, date, category, payment method and notes fields, then saves them all", async () => {
- const user = userEvent.setup();
- const plainTx = makeTransaction({
- id: "tx-edit",
- date: "2026-07-01",
- descriptionKey: "Edit me",
- categoryId: "cat-wants",
- paymentMethodId: "pm-card",
- notes: "old notes",
- amount: -50,
- });
- const updateTransactionAction = vi.fn().mockResolvedValue(undefined);
- renderScreen({ transactions: [plainTx], updateTransactionAction });
-
- await user.click(getRowOpenButton("Edit me"));
- const dialog = await screen.findByRole("dialog");
-
- const amountInput = within(dialog).getByLabelText("Transaction amount");
- fireChange(amountInput, "5000");
-
- const descriptionInput = within(dialog).getByLabelText("Description");
- await user.clear(descriptionInput);
- await user.type(descriptionInput, "Updated description");
-
- const dateInput = within(dialog).getByLabelText("Transaction date");
- fireChange(dateInput, "2026-07-15");
-
- await user.click(within(dialog).getByLabelText("Category"));
- let listbox = await screen.findByRole("listbox");
- await user.click(within(listbox).getByText("Rent"));
-
- await user.click(within(dialog).getByLabelText("Payment method"));
- listbox = await screen.findByRole("listbox");
- await user.click(within(listbox).getByText("Payment method"));
-
- const notesInput = within(dialog).getByLabelText("Notes");
- await user.clear(notesInput);
- await user.type(notesInput, "new notes");
-
- await user.click(within(dialog).getByText("Save changes"));
-
- await vi.waitFor(() => {
- expect(updateTransactionAction).toHaveBeenCalledWith({
- amount: 50,
- category: "cat-needs",
- date: "2026-07-15",
- description: "Updated description",
+ it(
+ "updates amount, description, date, category, payment method and notes fields, then saves them all",
+ async () => {
+ const user = userEvent.setup();
+ const plainTx = makeTransaction({
id: "tx-edit",
- notes: "new notes",
- paymentMethod: "none",
- type: "expense",
+ date: "2026-07-01",
+ descriptionKey: "Edit me",
+ categoryId: "cat-wants",
+ paymentMethodId: "pm-card",
+ notes: "old notes",
+ amount: -50,
});
- });
- });
+ const updateTransactionAction = vi.fn().mockResolvedValue(undefined);
+ renderScreen({ transactions: [plainTx], updateTransactionAction });
+
+ await user.click(getRowOpenButton("Edit me"));
+ const dialog = await screen.findByRole("dialog");
+
+ const amountInput = within(dialog).getByLabelText("Transaction amount");
+ fireChange(amountInput, "5000");
+
+ const descriptionInput = within(dialog).getByLabelText("Description");
+ await user.clear(descriptionInput);
+ await user.type(descriptionInput, "Updated description");
+
+ const dateInput = within(dialog).getByLabelText("Transaction date");
+ fireChange(dateInput, "2026-07-15");
+
+ await user.click(within(dialog).getByLabelText("Category"));
+ let listbox = await screen.findByRole("listbox");
+ await user.click(within(listbox).getByText("Rent"));
+
+ await user.click(within(dialog).getByLabelText("Payment method"));
+ listbox = await screen.findByRole("listbox");
+ await user.click(within(listbox).getByText("Payment method"));
+
+ const notesInput = within(dialog).getByLabelText("Notes");
+ await user.clear(notesInput);
+ await user.type(notesInput, "new notes");
+
+ await user.click(within(dialog).getByText("Save changes"));
+
+ await vi.waitFor(() => {
+ expect(updateTransactionAction).toHaveBeenCalledWith({
+ amount: 50,
+ category: "cat-needs",
+ date: "2026-07-15",
+ description: "Updated description",
+ id: "tx-edit",
+ notes: "new notes",
+ paymentMethod: "none",
+ type: "expense",
+ });
+ });
+ },
+ // Six sequential real-timer userEvent interactions (type x2,
+ // click-through comboboxes x2) can exceed the default 10s testTimeout
+ // under CPU contention (e.g. the full suite running under coverage).
+ 20_000,
+ );
it("saves changes successfully: calls updateTransactionAction, closes, and refreshes", async () => {
const user = userEvent.setup();
diff --git a/tests/lib/auth/encrypted-profile.test.ts b/tests/lib/auth/encrypted-profile.test.ts
new file mode 100644
index 00000000..8464ba40
--- /dev/null
+++ b/tests/lib/auth/encrypted-profile.test.ts
@@ -0,0 +1,115 @@
+import { describe, expect, it, vi } from "vitest";
+
+import { ensureEncryptedProfile } from "@/lib/auth/encrypted-profile";
+
+vi.mock("@/lib/crypto/field-encryption", () => ({
+ encryptField: vi.fn((value: string | null) =>
+ value ? `enc:${value}` : null,
+ ),
+ isAlreadyEncrypted: vi.fn(
+ (value: string | null) => typeof value === "string" && value.startsWith("enc:"),
+ ),
+}));
+
+function mockSupabase(row: { name: string | null; email: string | null } | null) {
+ const maybeSingle = vi.fn().mockResolvedValue({ data: row });
+ const eq = vi.fn(() => ({ maybeSingle }));
+ const select = vi.fn(() => ({ eq }));
+
+ const updateEq = vi.fn().mockResolvedValue({ error: null });
+ const update = vi.fn(() => ({ eq: updateEq }));
+
+ const from = vi.fn(() => ({ select, update }));
+
+ return { from, select, eq, maybeSingle, update, updateEq };
+}
+
+describe("ensureEncryptedProfile", () => {
+ it("does nothing when name and email are already encrypted", async () => {
+ const supabase = mockSupabase({ name: "enc:Ana", email: "enc:ana@example.com" });
+
+ await ensureEncryptedProfile(
+ supabase as never,
+ "user-1",
+ { email: "ana@example.com", name: "Ana" },
+ );
+
+ expect(supabase.update).not.toHaveBeenCalled();
+ });
+
+ it("encrypts and writes name/email when the row is null (fresh signup trigger)", async () => {
+ const supabase = mockSupabase({ name: null, email: null });
+
+ await ensureEncryptedProfile(
+ supabase as never,
+ "user-1",
+ { email: "ana@example.com", name: "Ana" },
+ );
+
+ expect(supabase.update).toHaveBeenCalledWith({
+ email: "enc:ana@example.com",
+ name: "enc:Ana",
+ });
+ expect(supabase.updateEq).toHaveBeenCalledWith("id", "user-1");
+ });
+
+ it("encrypts and writes name/email when only one of the two is already encrypted", async () => {
+ const supabase = mockSupabase({ name: "enc:Ana", email: "ana@example.com" });
+
+ await ensureEncryptedProfile(
+ supabase as never,
+ "user-1",
+ { email: "ana@example.com", name: "Ana" },
+ );
+
+ expect(supabase.update).toHaveBeenCalledWith({
+ email: "enc:ana@example.com",
+ name: "enc:Ana",
+ });
+ });
+
+ it("encrypts and writes name/email when name is encrypted but email is null", async () => {
+ const supabase = mockSupabase({ name: "enc:Ana", email: null });
+
+ await ensureEncryptedProfile(
+ supabase as never,
+ "user-1",
+ { email: "ana@example.com", name: "Ana" },
+ );
+
+ expect(supabase.update).toHaveBeenCalledWith({
+ email: "enc:ana@example.com",
+ name: "enc:Ana",
+ });
+ });
+
+ it("encrypts and writes name/email when the row still has legacy plaintext", async () => {
+ const supabase = mockSupabase({ name: "Ana", email: "ana@example.com" });
+
+ await ensureEncryptedProfile(
+ supabase as never,
+ "user-1",
+ { email: "ana@example.com", name: "Ana" },
+ );
+
+ expect(supabase.update).toHaveBeenCalledWith({
+ email: "enc:ana@example.com",
+ name: "enc:Ana",
+ });
+ });
+
+ it("treats a missing profile row as needing encryption", async () => {
+ const supabase = mockSupabase(null);
+
+ await ensureEncryptedProfile(
+ supabase as never,
+ "user-1",
+ { email: "ana@example.com", name: "Ana" },
+ );
+
+ expect(supabase.update).toHaveBeenCalledWith({
+ email: "enc:ana@example.com",
+ name: "enc:Ana",
+ });
+ });
+});
diff --git a/tests/lib/auth/terms.test.ts b/tests/lib/auth/terms.test.ts
index 3eddf847..240c9a0a 100644
--- a/tests/lib/auth/terms.test.ts
+++ b/tests/lib/auth/terms.test.ts
@@ -11,7 +11,7 @@ vi.mock("next/navigation", () => ({
function mockSupabase(termsAccepted: boolean | null) {
const single = vi
.fn()
- .mockResolvedValue({ data: { terms_accepted: termsAccepted } });
+ .mockResolvedValue({ data: { terms_accepted: termsAccepted }, error: null });
const eq = vi.fn(() => ({ single }));
const select = vi.fn(() => ({ eq }));
const from = vi.fn(() => ({ select }));
@@ -39,12 +39,27 @@ describe("requireAcceptedTerms", () => {
).rejects.toThrow("REDIRECT:/auth/accept-terms");
});
- it("redirects when the profile row is missing", async () => {
+ it("redirects when the profile row is missing (PGRST116)", async () => {
const supabase = mockSupabase(null);
- supabase.single.mockResolvedValueOnce({ data: null });
+ supabase.single.mockResolvedValueOnce({
+ data: null,
+ error: { code: "PGRST116", message: "no rows" },
+ });
await expect(
requireAcceptedTerms(supabase as never, "user-1"),
).rejects.toThrow("REDIRECT:/auth/accept-terms");
});
+
+ it("throws instead of redirecting when the query errors transiently", async () => {
+ const supabase = mockSupabase(null);
+ supabase.single.mockResolvedValueOnce({
+ data: null,
+ error: { code: "PGRST301", message: "JWT expired" },
+ });
+
+ await expect(
+ requireAcceptedTerms(supabase as never, "user-1"),
+ ).rejects.toThrow("JWT expired");
+ });
});
diff --git a/tests/lib/crypto/field-encryption.test.ts b/tests/lib/crypto/field-encryption.test.ts
new file mode 100644
index 00000000..085a5c85
--- /dev/null
+++ b/tests/lib/crypto/field-encryption.test.ts
@@ -0,0 +1,123 @@
+import { randomBytes } from "node:crypto";
+
+import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
+
+const ORIGINAL_KEY = process.env.FIELD_ENCRYPTION_KEY;
+
+function setKey(key: string | undefined) {
+ if (key === undefined) {
+ delete process.env.FIELD_ENCRYPTION_KEY;
+ } else {
+ process.env.FIELD_ENCRYPTION_KEY = key;
+ }
+}
+
+async function importFresh() {
+ vi.resetModules();
+ return import("@/lib/crypto/field-encryption");
+}
+
+describe("field-encryption", () => {
+ beforeEach(() => {
+ setKey(randomBytes(32).toString("base64"));
+ });
+
+ afterEach(() => {
+ setKey(ORIGINAL_KEY);
+ });
+
+ describe("encryptField/decryptField", () => {
+ it("round-trips a value", async () => {
+ const { encryptField, decryptField } = await importFresh();
+ const stored = encryptField("segredo do usuário");
+ expect(stored).not.toBe("segredo do usuário");
+ expect(decryptField(stored)).toBe("segredo do usuário");
+ });
+
+ it("produces different ciphertext for the same plaintext (random IV)", async () => {
+ const { encryptField } = await importFresh();
+ const a = encryptField("mesmo texto");
+ const b = encryptField("mesmo texto");
+ expect(a).not.toBe(b);
+ });
+
+ it("returns null for null, undefined, and empty string input", async () => {
+ const { encryptField } = await importFresh();
+ expect(encryptField(null)).toBeNull();
+ expect(encryptField(undefined)).toBeNull();
+ expect(encryptField("")).toBeNull();
+ });
+
+ it("returns null/empty unchanged when decrypting null-ish stored values", async () => {
+ const { decryptField } = await importFresh();
+ expect(decryptField(null)).toBeNull();
+ expect(decryptField(undefined)).toBeNull();
+ expect(decryptField("")).toBe("");
+ });
+
+ it("falls back to the original value when it is not valid ciphertext (legacy plaintext)", async () => {
+ const { decryptField } = await importFresh();
+ expect(decryptField("plain legacy text")).toBe("plain legacy text");
+ });
+
+ it("throws when the key is missing", async () => {
+ setKey(undefined);
+ const { encryptField } = await importFresh();
+ expect(() => encryptField("value")).toThrow(/FIELD_ENCRYPTION_KEY/);
+ });
+
+ it("throws when the key is not a base64-encoded 32-byte value", async () => {
+ setKey(Buffer.from("too-short").toString("base64"));
+ const { encryptField } = await importFresh();
+ expect(() => encryptField("value")).toThrow(/32-byte/);
+ });
+ });
+
+ describe("encryptDescription/decryptDescription", () => {
+ it("round-trips a value", async () => {
+ const { encryptDescription, decryptDescription } = await importFresh();
+ const stored = encryptDescription("Supermercado");
+ expect(decryptDescription(stored)).toBe("Supermercado");
+ });
+
+ it("is deterministic: same plaintext always encrypts to the same ciphertext", async () => {
+ const { encryptDescription } = await importFresh();
+ const a = encryptDescription("Netflix");
+ const b = encryptDescription("Netflix");
+ expect(a).toBe(b);
+ });
+
+ it("produces different ciphertext for different plaintext", async () => {
+ const { encryptDescription } = await importFresh();
+ const a = encryptDescription("Netflix");
+ const b = encryptDescription("Spotify");
+ expect(a).not.toBe(b);
+ });
+ });
+
+ describe("isAlreadyEncrypted", () => {
+ it("returns true for a value produced by encryptField", async () => {
+ const { encryptField, isAlreadyEncrypted } = await importFresh();
+ const stored = encryptField("valor");
+ expect(isAlreadyEncrypted(stored)).toBe(true);
+ });
+
+ it("returns true for a value produced by encryptDescription", async () => {
+ const { encryptDescription, isAlreadyEncrypted } = await importFresh();
+ const stored = encryptDescription("valor");
+ expect(isAlreadyEncrypted(stored)).toBe(true);
+ });
+
+ it("returns false for legacy plaintext", async () => {
+ const { isAlreadyEncrypted } = await importFresh();
+ expect(isAlreadyEncrypted("plain text")).toBe(false);
+ });
+
+ it("returns false for null/undefined/empty", async () => {
+ const { isAlreadyEncrypted } = await importFresh();
+ expect(isAlreadyEncrypted(null)).toBe(false);
+ expect(isAlreadyEncrypted(undefined)).toBe(false);
+ expect(isAlreadyEncrypted("")).toBe(false);
+ });
+ });
+});
diff --git a/tests/lib/finance/transactions-crud.test.ts b/tests/lib/finance/transactions-crud.test.ts
index f9ad95a5..2f4ca1e4 100644
--- a/tests/lib/finance/transactions-crud.test.ts
+++ b/tests/lib/finance/transactions-crud.test.ts
@@ -6,6 +6,13 @@ vi.mock("next/navigation", () => ({
throw new Error(`REDIRECT:${url}`);
}),
}));
+vi.mock("@/lib/crypto/field-encryption", () => ({
+ decryptDescription: (value: string | null | undefined) => value ?? null,
+ decryptField: (value: string | null | undefined) => value ?? null,
+ encryptDescription: (value: string) => value,
+ encryptField: (value: string | null | undefined) => value ?? null,
+ isAlreadyEncrypted: () => false,
+}));
import { createClient } from "@/lib/supabase/server";
import {
@@ -234,7 +241,7 @@ describe("updateSubscription", () => {
}),
error: null,
}),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ data: { id: CATEGORY_ID }, error: null }),
qb({ data: { id: PAYMENT_METHOD_ID }, error: null }),
qb({ error: { message: "notes failed" } }),
@@ -257,7 +264,7 @@ describe("updateSubscription", () => {
}),
error: null,
}),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ data: { id: CATEGORY_ID }, error: null }),
qb({ data: { id: PAYMENT_METHOD_ID }, error: null }),
qb({ error: null }),
@@ -276,7 +283,7 @@ describe("updateSubscription", () => {
it("throws when updating an occurrence fails", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
qb({ error: { message: "update failed" } }),
]);
@@ -297,7 +304,7 @@ describe("setSubscriptionPaused", () => {
it("pauses every future occurrence (category/payment null)", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
]);
await expect(
@@ -308,7 +315,7 @@ describe("setSubscriptionPaused", () => {
it("resumes every future occurrence", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
]);
await expect(
@@ -319,7 +326,7 @@ describe("setSubscriptionPaused", () => {
it("throws when an occurrence update fails", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ error: { message: "pause failed" } }),
]);
await expect(setSubscriptionPaused(SUBSCRIPTION_ID, true)).rejects.toThrow(
@@ -332,7 +339,7 @@ describe("deleteSubscription", () => {
it("deletes every future occurrence", async () => {
const supabase = setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
]);
await expect(deleteSubscription(SUBSCRIPTION_ID)).resolves.toBeUndefined();
@@ -342,7 +349,7 @@ describe("deleteSubscription", () => {
it("throws when the delete fails", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: "occ-1" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "occ-1", notes: "subscription 1/12" }], error: null }),
qb({ error: { message: "delete failed" } }),
]);
await expect(deleteSubscription(SUBSCRIPTION_ID)).rejects.toThrow(
@@ -408,7 +415,7 @@ describe("deleteSubscriptionOccurrences", () => {
it("throws when the selected occurrence is not in the group", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: "other-occurrence" }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: "other-occurrence", notes: "subscription 1/12" }], error: null }),
]);
await expect(
deleteSubscriptionOccurrences({
@@ -427,7 +434,7 @@ describe("deleteSubscriptionOccurrences", () => {
}),
error: null,
}),
- qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID, notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
]);
await expect(
@@ -442,7 +449,7 @@ describe("deleteSubscriptionOccurrences", () => {
it("deletes the selected occurrence group (category/payment null)", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID, notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
]);
await expect(
@@ -456,7 +463,7 @@ describe("deleteSubscriptionOccurrences", () => {
it("throws when the final delete fails", async () => {
setup([
qb({ data: subscriptionReference(), error: null }),
- qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID, notes: "subscription 1/12" }], error: null }),
qb({ error: { message: "delete failed" } }),
]);
await expect(
@@ -496,7 +503,7 @@ describe("deleteSubscriptionOccurrences", () => {
data: subscriptionReference({ category_id: CATEGORY_ID }),
error: null,
}),
- qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID, notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
]);
await expect(
@@ -514,7 +521,7 @@ describe("deleteSubscriptionOccurrences", () => {
data: subscriptionReference({ payment_method_id: PAYMENT_METHOD_ID }),
error: null,
}),
- qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID }], error: null }),
+ qb({ data: [{ date: "2026-08-01", id: SUBSCRIPTION_ID, notes: "subscription 1/12" }], error: null }),
qb({ error: null }),
]);
await expect(
@@ -531,9 +538,9 @@ describe("deleteSubscriptionOccurrences", () => {
qb({ data: subscriptionReference(), error: null }),
qb({
data: [
- { date: "2026-06-01", id: "past-occurrence" },
- { date: "2026-08-01", id: SUBSCRIPTION_ID },
- { date: "2026-09-01", id: "future-occurrence" },
+ { date: "2026-06-01", id: "past-occurrence", notes: "subscription 1/12" },
+ { date: "2026-08-01", id: SUBSCRIPTION_ID, notes: "subscription 1/12" },
+ { date: "2026-09-01", id: "future-occurrence", notes: "subscription 1/12" },
],
error: null,
}),
diff --git a/tests/lib/finance/transactions-mutations.test.ts b/tests/lib/finance/transactions-mutations.test.ts
index 39b53c4b..3182fc88 100644
--- a/tests/lib/finance/transactions-mutations.test.ts
+++ b/tests/lib/finance/transactions-mutations.test.ts
@@ -6,6 +6,13 @@ vi.mock("next/navigation", () => ({
throw new Error(`REDIRECT:${url}`);
}),
}));
+vi.mock("@/lib/crypto/field-encryption", () => ({
+ decryptDescription: (value: string | null | undefined) => value ?? null,
+ decryptField: (value: string | null | undefined) => value ?? null,
+ encryptDescription: (value: string) => value,
+ encryptField: (value: string | null | undefined) => value ?? null,
+ isAlreadyEncrypted: () => false,
+}));
import { createClient } from "@/lib/supabase/server";
import {
diff --git a/tests/lib/finance/transactions-queries.test.ts b/tests/lib/finance/transactions-queries.test.ts
index d783d125..7ca062cd 100644
--- a/tests/lib/finance/transactions-queries.test.ts
+++ b/tests/lib/finance/transactions-queries.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from "vitest";
+import { afterAll, beforeEach, describe, expect, it, vi } from "vitest";
vi.mock("@/lib/supabase/server", () => ({ createClient: vi.fn() }));
vi.mock("next/navigation", () => ({
@@ -20,9 +20,21 @@ import {
const USER_ID = "11111111-1111-4111-8111-111111111111";
-// Dynamic "today"/"current month", mirroring how the source computes them
-// (getTodayValue/getCurrentMonthValue both use the real clock), so tests stay
-// correct regardless of which day this suite actually runs on.
+// Pin the clock to the 15th of the real current month so the day-of-month
+// arithmetic below never clamps back to "today" near month boundaries (e.g.
+// the last day of the month) — see project_flaky_date_test memory.
+const realNow = new Date();
+vi.useFakeTimers();
+vi.setSystemTime(
+ new Date(Date.UTC(realNow.getUTCFullYear(), realNow.getUTCMonth(), 15, 12)),
+);
+afterAll(() => {
+ vi.useRealTimers();
+});
+
+// "today"/"current month", mirroring how the source computes them
+// (getTodayValue/getCurrentMonthValue both use the clock, now pinned above),
+// so tests stay correct regardless of which month this suite actually runs in.
const now = new Date();
const CURRENT_MONTH = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}`;
@@ -30,11 +42,8 @@ const CURRENT_MONTH = `${now.getFullYear()}-${String(now.getMonth() + 1).padStar
// closing_day, so the invoice cycle stays anchored to the current month —
// see getCreditCardInvoiceCycle) so a credit card invoice due on this day
// deterministically lands in the getPaymentsDueStatus "next" (due within 3
-// days) bucket regardless of which day this suite runs on.
-// ponytail: still misses the "next" bucket in the first ~6 days of a month
-// (floor of 10 pushes the due date more than 3 days out) or on the very
-// last day (rollover clamps back to today) — acceptable, much narrower than
-// the fixed due_day=20 this replaced, which only worked on 4 days a month.
+// days) bucket. The clock is pinned to the 15th above, so this no longer
+// clamps back to "today" near month boundaries.
const daysInCurrentMonth = new Date(
Date.UTC(now.getUTCFullYear(), now.getUTCMonth() + 1, 0),
).getUTCDate();
@@ -76,13 +85,20 @@ function qb(response: { data?: unknown; error?: unknown }) {
function makeSupabase(
fromResponses: unknown[],
- opts: { createdAt?: string | null; noClaims?: boolean; noUser?: boolean } = {},
+ opts: {
+ claimsError?: unknown;
+ createdAt?: string | null;
+ noClaims?: boolean;
+ noUser?: boolean;
+ userError?: unknown;
+ } = {},
) {
const queue = [...fromResponses];
return {
auth: {
getClaims: vi.fn().mockResolvedValue({
data: { claims: opts.noClaims ? {} : { sub: USER_ID } },
+ error: opts.claimsError ?? null,
}),
getUser: vi.fn().mockResolvedValue({
data: {
@@ -90,6 +106,7 @@ function makeSupabase(
? null
: { id: USER_ID, created_at: opts.createdAt ?? null },
},
+ error: opts.userError ?? null,
}),
},
from: vi.fn(() => {
@@ -104,7 +121,13 @@ function makeSupabase(
function setup(
fromResponses: unknown[] = [],
- opts: { createdAt?: string | null; noClaims?: boolean; noUser?: boolean } = {},
+ opts: {
+ claimsError?: unknown;
+ createdAt?: string | null;
+ noClaims?: boolean;
+ noUser?: boolean;
+ userError?: unknown;
+ } = {},
) {
const supabase = makeSupabase(fromResponses, opts);
vi.mocked(createClient).mockResolvedValue(supabase as never);
@@ -167,6 +190,12 @@ describe("getUserContext", () => {
setup([], { noClaims: true });
await expect(getUserContext()).rejects.toThrow("REDIRECT:/");
});
+
+ it("throws an unexpected claims/user query error instead of masking it as logged-out", async () => {
+ const queryError = new Error("network down");
+ setup([], { claimsError: queryError });
+ await expect(getUserContext()).rejects.toBe(queryError);
+ });
});
describe("listCategoryOverview", () => {
diff --git a/tests/lib/finance/transactions-reports.test.ts b/tests/lib/finance/transactions-reports.test.ts
index 8bb38bcd..823b20b5 100644
--- a/tests/lib/finance/transactions-reports.test.ts
+++ b/tests/lib/finance/transactions-reports.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from "vitest";
+import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
vi.mock("@/lib/supabase/server", () => ({ createClient: vi.fn() }));
vi.mock("next/navigation", () => ({
@@ -194,6 +194,10 @@ beforeEach(() => {
vi.clearAllMocks();
});
+afterEach(() => {
+ vi.useRealTimers();
+});
+
describe("listTransactions", () => {
it("loads transactions with no month filter and no future/previous flags", async () => {
setup([
@@ -462,6 +466,10 @@ describe("listTransactions", () => {
});
it("marks future-dated rows and credit-card invoices as planned when includeFuture is set", async () => {
+ // Pin "today" mid-month so the "future" fixture date below stays in the
+ // future regardless of which day this suite actually runs on.
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date("2026-07-15T12:00:00.000Z"));
setup([
qb({
data: [
@@ -553,6 +561,8 @@ describe("getMonthlySummary", () => {
});
it("falls back to the current month when no/invalid month is passed", async () => {
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date("2026-07-15T12:00:00.000Z"));
setup([
qb({
data: [row({ id: "current-month", amount: 500, kind: "income", date: "2026-07-05" })],
@@ -579,6 +589,10 @@ describe("getDashboardData", () => {
});
it("aggregates income, expenses, budgets, trends, and merges the latest transactions", async () => {
+ // Pin "today" mid-month so the future-dated fixtures below stay in the
+ // future regardless of which day this suite actually runs on.
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date("2026-07-15T12:00:00.000Z"));
const actualDataset = [
row({ id: "inc-1", amount: 5000, kind: "income", date: "2026-07-05" }),
row({
diff --git a/tests/lib/supabase/client.test.ts b/tests/lib/supabase/client.test.ts
index 78e5e7f1..06441c57 100644
--- a/tests/lib/supabase/client.test.ts
+++ b/tests/lib/supabase/client.test.ts
@@ -22,6 +22,7 @@ describe("createClient (browser)", () => {
expect(createBrowserClient).toHaveBeenCalledWith(
"https://project.supabase.co",
"publishable-key",
+ { auth: { experimental: { appendPkceFlowIdToRedirects: true } } },
);
expect(client).toEqual({ marker: "browser-client" });
});
diff --git a/tests/scripts/backfill-encrypt-fields.test.ts b/tests/scripts/backfill-encrypt-fields.test.ts
new file mode 100644
index 00000000..a6724688
--- /dev/null
+++ b/tests/scripts/backfill-encrypt-fields.test.ts
@@ -0,0 +1,134 @@
+import { randomBytes } from "node:crypto";
+
+import { beforeEach, describe, expect, it, vi } from "vitest";
+
+import { runBackfill } from "../../scripts/backfill-encrypt-fields";
+import { encryptDescription, encryptField } from "../../lib/crypto/field-encryption";
+
+process.env.FIELD_ENCRYPTION_KEY = randomBytes(32).toString("base64");
+
+type Row = Record & { id: string };
+
+function makeTable(rows: Row[]) {
+ const updates: Array<{ id: string; patch: Record }> = [];
+
+ function select(sortedRows: Row[]) {
+ let cursor: string | null = null;
+ let limit = sortedRows.length;
+
+ const builder = {
+ order: () => builder,
+ limit: (n: number) => {
+ limit = n;
+ return builder;
+ },
+ gt: (_column: string, value: string) => {
+ cursor = value;
+ return builder;
+ },
+ then: (resolve: (result: { data: Row[]; error: null }) => void) => {
+ const filtered = cursor
+ ? sortedRows.filter((row) => row.id > cursor!)
+ : sortedRows;
+ resolve({ data: filtered.slice(0, limit), error: null });
+ },
+ };
+
+ return builder;
+ }
+
+ return {
+ select: () => select([...rows].sort((a, b) => a.id.localeCompare(b.id))),
+ update: (patch: Record) => ({
+ eq: (_column: string, id: string) => {
+ updates.push({ id, patch });
+ const row = rows.find((r) => r.id === id);
+ if (row) Object.assign(row, patch);
+ return Promise.resolve({ error: null });
+ },
+ }),
+ updates,
+ };
+}
+
+function makeSupabase(profiles: Row[], transactions: Row[]) {
+ const profilesTable = makeTable(profiles);
+ const transactionsTable = makeTable(transactions);
+
+ return {
+ from: vi.fn((table: string) => {
+ if (table === "profiles") return profilesTable;
+ if (table === "transactions") return transactionsTable;
+ throw new Error(`Unexpected table: ${table}`);
+ }),
+ profilesTable,
+ transactionsTable,
+ };
+}
+
+describe("runBackfill", () => {
+ beforeEach(() => {
+ vi.resetModules();
+ });
+
+ it("encrypts plaintext rows and leaves already-encrypted rows untouched", async () => {
+ const supabase = makeSupabase(
+ [
+ { id: "p1", name: "Ana", email: "ana@example.com" },
+ {
+ id: "p2",
+ name: encryptField("Bea"),
+ email: encryptField("bea@example.com"),
+ },
+ ],
+ [
+ { id: "t1", description: "Mercado", notes: "nota livre" },
+ {
+ id: "t2",
+ description: encryptDescription("Netflix"),
+ notes: null,
+ },
+ ],
+ );
+
+ const result = await runBackfill(supabase as never);
+
+ expect(result).toEqual({ profilesUpdated: 1, transactionsUpdated: 1 });
+ expect(supabase.profilesTable.updates).toHaveLength(1);
+ expect(supabase.profilesTable.updates[0].id).toBe("p1");
+ expect(supabase.transactionsTable.updates).toHaveLength(1);
+ expect(supabase.transactionsTable.updates[0].id).toBe("t1");
+ });
+
+ it("is idempotent: a second run over the already-backfilled data updates nothing", async () => {
+ const profiles = [{ id: "p1", name: "Ana", email: "ana@example.com" }];
+ const transactions = [
+ { id: "t1", description: "Mercado", notes: "nota livre" },
+ ];
+ const supabase = makeSupabase(profiles, transactions);
+
+ await runBackfill(supabase as never);
+ const secondRun = await runBackfill(supabase as never);
+
+ expect(secondRun).toEqual({ profilesUpdated: 0, transactionsUpdated: 0 });
+ });
+
+ it("returns zero updates when there is nothing to backfill", async () => {
+ const supabase = makeSupabase([], []);
+
+ const result = await runBackfill(supabase as never);
+
+ expect(result).toEqual({ profilesUpdated: 0, transactionsUpdated: 0 });
+ });
+
+ it("handles null profile name/email without treating them as needing encryption", async () => {
+ const supabase = makeSupabase(
+ [{ id: "p1", name: null, email: null }],
+ [],
+ );
+
+ const result = await runBackfill(supabase as never);
+
+ expect(result.profilesUpdated).toBe(0);
+ });
+});
diff --git a/vitest.config.ts b/vitest.config.ts
index 5eb01e6c..c5df80b2 100644
--- a/vitest.config.ts
+++ b/vitest.config.ts
@@ -24,6 +24,7 @@ export default defineConfig({
"lib/animations/**",
"e2e/**",
"playwright.config.ts",
+ "scripts/**",
],
thresholds: {
branches: 100,