-
-
-
-
Save Queue as Playlist
-
-
+
diff --git a/apps/web/src/components/ui/dialog/Dialog.tsx b/apps/web/src/components/ui/dialog/Dialog.tsx
index 84942cb49..b73b5fc06 100644
--- a/apps/web/src/components/ui/dialog/Dialog.tsx
+++ b/apps/web/src/components/ui/dialog/Dialog.tsx
@@ -5,6 +5,7 @@ import { Button } from '../button';
import { FocusTrap } from '../focus-trap';
import { cn } from '@/lib/utils';
import { AlertCircle, Info, X } from 'lucide-react';
+import { useTranslation } from '@/hooks/useTranslation';
import type { DialogProps, DialogVariant } from './types';
const variantIcons: Record<
@@ -50,6 +51,7 @@ export function Dialog({
closeOnOverlayClick: closeOnOverlayClickProp,
closeOnEscape: closeOnEscapeProp = true,
}: DialogProps) {
+ const { t } = useTranslation();
const titleId = useId();
const handleClose = () => {
@@ -171,7 +173,7 @@ export function Dialog({
size="icon"
onClick={handleClose}
className="ml-auto"
- aria-label="Fermer"
+ aria-label={t('common.close')}
>
diff --git a/apps/web/src/hooks/useSeason.ts b/apps/web/src/hooks/useSeason.ts
new file mode 100644
index 000000000..142b0afb3
--- /dev/null
+++ b/apps/web/src/hooks/useSeason.ts
@@ -0,0 +1,186 @@
+/**
+ * useSeason — Seasonal asset management for SUMI Design System
+ *
+ * Determines the current season and provides the correct asset paths.
+ * Assets are organized by season in /assets/sumi/{season}/.
+ *
+ * The system supports:
+ * - Automatic season detection based on date
+ * - Manual override (for Storybook / testing)
+ * - Graceful fallback if seasonal assets aren't available yet
+ * - Transition periods between seasons (last/first week blending)
+ */
+import { useMemo, useState, useEffect } from 'react';
+
+export type Season = 'spring' | 'summer' | 'autumn' | 'winter';
+
+export interface SeasonalContext {
+ /** Current season */
+ season: Season;
+ /** Asset base path for current season */
+ assetPath: string;
+ /** Japanese name for the season */
+ kanji: string;
+ /** Season-specific accent tint (very subtle) */
+ seasonTint: string;
+ /** Opacity for the season tint overlay */
+ seasonTintOpacity: number;
+ /** Day of season (1–~90) */
+ dayOfSeason: number;
+ /** Progress through the season (0–1) */
+ progress: number;
+ /** Whether we're in a transition week between seasons */
+ isTransitioning: boolean;
+ /** If transitioning, the previous season */
+ previousSeason: Season | null;
+ /** Transition blend factor (0 = full previous, 1 = full current) */
+ transitionBlend: number;
+}
+
+interface SeasonConfig {
+ season: Season;
+ kanji: string;
+ startMonth: number; // 1-indexed
+ startDay: number;
+ tintHue: number;
+ tintSat: number;
+ tintLit: number;
+ tintOpacity: number;
+}
+
+const SEASONS: SeasonConfig[] = [
+ {
+ season: 'spring',
+ kanji: '春',
+ startMonth: 3,
+ startDay: 20,
+ tintHue: 340, // Sakura pink
+ tintSat: 20,
+ tintLit: 85,
+ tintOpacity: 0.03,
+ },
+ {
+ season: 'summer',
+ kanji: '夏',
+ startMonth: 6,
+ startDay: 21,
+ tintHue: 160, // Deep green
+ tintSat: 15,
+ tintLit: 60,
+ tintOpacity: 0.02,
+ },
+ {
+ season: 'autumn',
+ kanji: '秋',
+ startMonth: 9,
+ startDay: 22,
+ tintHue: 25, // Warm amber
+ tintSat: 30,
+ tintLit: 65,
+ tintOpacity: 0.04,
+ },
+ {
+ season: 'winter',
+ kanji: '冬',
+ startMonth: 12,
+ startDay: 21,
+ tintHue: 210, // Cold blue
+ tintSat: 10,
+ tintLit: 75,
+ tintOpacity: 0.02,
+ },
+];
+
+function getSeasonStartDate(config: SeasonConfig, year: number): Date {
+ return new Date(year, config.startMonth - 1, config.startDay);
+}
+
+function getSeasonForDate(date: Date): { current: SeasonConfig; dayOfSeason: number; progress: number } {
+ const year = date.getFullYear();
+ const time = date.getTime();
+
+ // Build array of season start dates for this year and next
+ const starts = SEASONS.map((s, i) => ({
+ config: s,
+ start: getSeasonStartDate(s, s.startMonth === 12 && date.getMonth() < 2 ? year - 1 : year),
+ nextStart: getSeasonStartDate(
+ SEASONS[(i + 1) % SEASONS.length],
+ SEASONS[(i + 1) % SEASONS.length].startMonth < s.startMonth ? year + 1 : year,
+ ),
+ }));
+
+ for (const entry of starts) {
+ if (time >= entry.start.getTime() && time < entry.nextStart.getTime()) {
+ const totalDays = (entry.nextStart.getTime() - entry.start.getTime()) / (1000 * 60 * 60 * 24);
+ const dayOfSeason = Math.floor((time - entry.start.getTime()) / (1000 * 60 * 60 * 24)) + 1;
+ return {
+ current: entry.config,
+ dayOfSeason,
+ progress: dayOfSeason / totalDays,
+ };
+ }
+ }
+
+ // Fallback: winter
+ return { current: SEASONS[3], dayOfSeason: 1, progress: 0 };
+}
+
+const TRANSITION_DAYS = 7;
+
+function computeSeasonalContext(date: Date): SeasonalContext {
+ const { current, dayOfSeason, progress } = getSeasonForDate(date);
+ const currentIndex = SEASONS.indexOf(current);
+ const previousSeason = SEASONS[(currentIndex - 1 + SEASONS.length) % SEASONS.length];
+
+ const isTransitioning = dayOfSeason <= TRANSITION_DAYS;
+ const transitionBlend = isTransitioning ? dayOfSeason / TRANSITION_DAYS : 1;
+
+ return {
+ season: current.season,
+ assetPath: `/assets/sumi/${current.season}`,
+ kanji: current.kanji,
+ seasonTint: `hsl(${current.tintHue}, ${current.tintSat}%, ${current.tintLit}%)`,
+ seasonTintOpacity: current.tintOpacity * transitionBlend,
+ dayOfSeason,
+ progress,
+ isTransitioning,
+ previousSeason: isTransitioning ? previousSeason.season : null,
+ transitionBlend,
+ };
+}
+
+/**
+ * Returns the current seasonal context.
+ * Updates once per day.
+ */
+export function useSeason(overrideSeason?: Season): SeasonalContext {
+ const [date, setDate] = useState(() => new Date());
+
+ useEffect(() => {
+ // Check once per hour if the day changed
+ const interval = setInterval(() => {
+ const now = new Date();
+ if (now.getDate() !== date.getDate()) setDate(now);
+ }, 60 * 60 * 1000);
+ return () => clearInterval(interval);
+ }, [date]);
+
+ return useMemo(() => {
+ if (overrideSeason) {
+ const config = SEASONS.find((s) => s.season === overrideSeason) ?? SEASONS[0];
+ return {
+ season: config.season,
+ assetPath: `/assets/sumi/${config.season}`,
+ kanji: config.kanji,
+ seasonTint: `hsl(${config.tintHue}, ${config.tintSat}%, ${config.tintLit}%)`,
+ seasonTintOpacity: config.tintOpacity,
+ dayOfSeason: 45,
+ progress: 0.5,
+ isTransitioning: false,
+ previousSeason: null,
+ transitionBlend: 1,
+ };
+ }
+ return computeSeasonalContext(date);
+ }, [date, overrideSeason]);
+}
diff --git a/apps/web/src/hooks/useTimeOfDay.ts b/apps/web/src/hooks/useTimeOfDay.ts
new file mode 100644
index 000000000..f0888adac
--- /dev/null
+++ b/apps/web/src/hooks/useTimeOfDay.ts
@@ -0,0 +1,243 @@
+/**
+ * useTimeOfDay — Enhanced circadian engine for SUMI Design System
+ *
+ * Goes beyond warmth/brightness: provides a full ambient palette
+ * that shifts through 6 periods of the day. Each period has its own
+ * tint color, ink opacity, atmosphere density, and ambient light direction.
+ *
+ * The UI should feel like a living space that breathes with the sun.
+ */
+import { useEffect, useMemo, useState } from 'react';
+
+export type TimeOfDayPeriod = 'dawn' | 'morning' | 'midday' | 'afternoon' | 'dusk' | 'night';
+
+export interface TimeOfDayPalette {
+ /** Current period name */
+ period: TimeOfDayPeriod;
+ /** Ambient tint applied as a very subtle overlay (HSL string) */
+ tint: string;
+ /** Tint opacity — always very low (0.02–0.06) to stay subtle */
+ tintOpacity: number;
+ /** Ink wash opacity multiplier — how visible the lavis backgrounds are */
+ inkOpacity: number;
+ /** Atmospheric haze amount (0–1) */
+ haze: number;
+ /** Ambient light angle in degrees (for subtle gradient direction) */
+ lightAngle: number;
+ /** Sky color for the topmost gradient (very faint) */
+ skyTint: string;
+ /** Hour (0-23) */
+ hour: number;
+ /** Progress within the current period (0–1) */
+ progress: number;
+}
+
+interface PeriodConfig {
+ period: TimeOfDayPeriod;
+ startHour: number;
+ endHour: number;
+ tintHue: number;
+ tintSat: number;
+ tintLit: number;
+ tintOpacity: number;
+ inkOpacity: number;
+ haze: number;
+ lightAngle: number;
+ skyTint: string;
+}
+
+const PERIODS: PeriodConfig[] = [
+ {
+ // Dawn: 5–7h — warm amber glow from the east
+ period: 'dawn',
+ startHour: 5,
+ endHour: 7,
+ tintHue: 25,
+ tintSat: 60,
+ tintLit: 70,
+ tintOpacity: 0.04,
+ inkOpacity: 0.7,
+ haze: 0.3,
+ lightAngle: 90,
+ skyTint: 'hsl(25, 50%, 85%)',
+ },
+ {
+ // Morning: 7–11h — clean, bright, neutral with slight warmth
+ period: 'morning',
+ startHour: 7,
+ endHour: 11,
+ tintHue: 40,
+ tintSat: 20,
+ tintLit: 80,
+ tintOpacity: 0.02,
+ inkOpacity: 0.85,
+ haze: 0.1,
+ lightAngle: 120,
+ skyTint: 'hsl(45, 20%, 92%)',
+ },
+ {
+ // Midday: 11–14h — strongest light, most clarity, no tint
+ period: 'midday',
+ startHour: 11,
+ endHour: 14,
+ tintHue: 45,
+ tintSat: 10,
+ tintLit: 90,
+ tintOpacity: 0.01,
+ inkOpacity: 1.0,
+ haze: 0.0,
+ lightAngle: 180,
+ skyTint: 'hsl(50, 10%, 95%)',
+ },
+ {
+ // Afternoon: 14–17h — golden warmth starts creeping in
+ period: 'afternoon',
+ startHour: 14,
+ endHour: 17,
+ tintHue: 35,
+ tintSat: 40,
+ tintLit: 75,
+ tintOpacity: 0.03,
+ inkOpacity: 0.9,
+ haze: 0.15,
+ lightAngle: 240,
+ skyTint: 'hsl(35, 35%, 88%)',
+ },
+ {
+ // Dusk: 17–20h — dramatic warm light, deep oranges and purples
+ period: 'dusk',
+ startHour: 17,
+ endHour: 20,
+ tintHue: 15,
+ tintSat: 50,
+ tintLit: 60,
+ tintOpacity: 0.05,
+ inkOpacity: 0.75,
+ haze: 0.25,
+ lightAngle: 270,
+ skyTint: 'hsl(15, 45%, 75%)',
+ },
+ {
+ // Night: 20–5h — cool, deep, minimal interference
+ period: 'night',
+ startHour: 20,
+ endHour: 5,
+ tintHue: 220,
+ tintSat: 15,
+ tintLit: 30,
+ tintOpacity: 0.03,
+ inkOpacity: 0.6,
+ haze: 0.2,
+ lightAngle: 0,
+ skyTint: 'hsl(220, 15%, 15%)',
+ },
+];
+
+function getPeriodForHour(hour: number): PeriodConfig {
+ for (const p of PERIODS) {
+ if (p.startHour < p.endHour) {
+ if (hour >= p.startHour && hour < p.endHour) return p;
+ } else {
+ // Wraps midnight (night: 20–5)
+ if (hour >= p.startHour || hour < p.endHour) return p;
+ }
+ }
+ return PERIODS[5]; // fallback to night
+}
+
+function getProgressInPeriod(hour: number, minutes: number, config: PeriodConfig): number {
+ const currentMinutes = hour * 60 + minutes;
+ const startMinutes = config.startHour * 60;
+ let endMinutes = config.endHour * 60;
+
+ if (config.startHour > config.endHour) {
+ // Wraps midnight
+ if (hour >= config.startHour) {
+ endMinutes = config.endHour * 60 + 24 * 60;
+ } else {
+ return (currentMinutes + 24 * 60 - startMinutes) / (endMinutes + 24 * 60 - startMinutes);
+ }
+ }
+
+ return Math.max(0, Math.min(1, (currentMinutes - startMinutes) / (endMinutes - startMinutes)));
+}
+
+function lerp(a: number, b: number, t: number): number {
+ return a + (b - a) * t;
+}
+
+function computePalette(now: Date): TimeOfDayPalette {
+ const hour = now.getHours();
+ const minutes = now.getMinutes();
+ const current = getPeriodForHour(hour);
+ const progress = getProgressInPeriod(hour, minutes, current);
+
+ // Find next period for smooth interpolation
+ const nextPeriodIndex = (PERIODS.indexOf(current) + 1) % PERIODS.length;
+ const next = PERIODS[nextPeriodIndex];
+
+ // Smooth transition in the last 30% of each period
+ const transitionZone = progress > 0.7 ? (progress - 0.7) / 0.3 : 0;
+ const eased = transitionZone * transitionZone; // ease-in for imperceptible blending
+
+ return {
+ period: current.period,
+ tint: `hsl(${Math.round(lerp(current.tintHue, next.tintHue, eased))}, ${Math.round(lerp(current.tintSat, next.tintSat, eased))}%, ${Math.round(lerp(current.tintLit, next.tintLit, eased))}%)`,
+ tintOpacity: lerp(current.tintOpacity, next.tintOpacity, eased),
+ inkOpacity: lerp(current.inkOpacity, next.inkOpacity, eased),
+ haze: lerp(current.haze, next.haze, eased),
+ lightAngle: lerp(current.lightAngle, next.lightAngle, eased),
+ skyTint: current.skyTint,
+ hour,
+ progress,
+ };
+}
+
+/**
+ * Returns the current time-of-day palette.
+ * Updates every 5 minutes for imperceptible transitions.
+ *
+ * @param enabled - If false, returns a neutral midday palette
+ */
+export function useTimeOfDay(enabled = true): TimeOfDayPalette {
+ const [now, setNow] = useState(() => new Date());
+
+ useEffect(() => {
+ if (!enabled) return;
+ const interval = setInterval(() => setNow(new Date()), 5 * 60 * 1000);
+ return () => clearInterval(interval);
+ }, [enabled]);
+
+ return useMemo(() => {
+ if (!enabled) {
+ return {
+ period: 'midday' as const,
+ tint: 'hsl(45, 10%, 90%)',
+ tintOpacity: 0,
+ inkOpacity: 1,
+ haze: 0,
+ lightAngle: 180,
+ skyTint: 'hsl(50, 10%, 95%)',
+ hour: 12,
+ progress: 0.5,
+ };
+ }
+ return computePalette(now);
+ }, [now, enabled]);
+}
+
+/** Force a specific period (for Storybook / testing) */
+export function getTimeOfDayPalette(period: TimeOfDayPeriod): TimeOfDayPalette {
+ const config = PERIODS.find((p) => p.period === period) ?? PERIODS[2];
+ return {
+ period: config.period,
+ tint: `hsl(${config.tintHue}, ${config.tintSat}%, ${config.tintLit}%)`,
+ tintOpacity: config.tintOpacity,
+ inkOpacity: config.inkOpacity,
+ haze: config.haze,
+ lightAngle: config.lightAngle,
+ skyTint: config.skyTint,
+ hour: config.startHour,
+ progress: 0.5,
+ };
+}
diff --git a/apps/web/src/locales/en.json b/apps/web/src/locales/en.json
index d5a8b7c67..1c4b1bda1 100644
--- a/apps/web/src/locales/en.json
+++ b/apps/web/src/locales/en.json
@@ -7,6 +7,7 @@
"delete": "Delete",
"confirm": "Confirm",
"close": "Close",
+ "help": "Help",
"back": "Back",
"next": "Next",
"previous": "Previous",
@@ -26,6 +27,8 @@
"register": "Register",
"email": "Email",
"password": "Password",
+ "showPassword": "Show password",
+ "hidePassword": "Hide password",
"username": "Username",
"firstName": "First Name",
"lastName": "Last Name",
@@ -50,7 +53,8 @@
"notifications": "Notifications",
"retry": "Retry",
"retrying": "Retrying...",
- "dismiss": "Dismiss"
+ "dismiss": "Dismiss",
+ "loadingAria": "Loading in progress"
},
"auth": {
"login": {
@@ -63,29 +67,144 @@
"loginButton": "Sign in",
"noAccount": "Don't have an account?",
"createAccount": "Create account",
+ "orContinueWith": "or continue with",
+ "footerLink": "Don't have an account? Sign up",
+ "oauthProvider": "Sign in with {{provider}}",
"errors": {
"invalidCredentials": "Invalid email or password",
"accountLocked": "Account locked",
- "emailNotVerified": "Email not verified"
+ "emailNotVerified": "Email not verified",
+ "emailRequired": "Email is required",
+ "emailInvalid": "Invalid email format",
+ "passwordRequired": "Password is required",
+ "connectionError": "Connection error. Check your internet.",
+ "genericError": "An error occurred. Please try again."
}
},
+ "twoFactor": {
+ "title": "Two-factor authentication",
+ "subtitle": "Enter the code from your authenticator app",
+ "backToSignIn": "Back to sign in",
+ "verificationCode": "Verification Code",
+ "enterCode": "Enter the 6-digit code from your authenticator app to continue signing in.",
+ "lostAccess": "Lost access?",
+ "useBackupCode": "Use a backup code",
+ "useAuthenticator": "Use authenticator code instead",
+ "backupCode": "Backup Code",
+ "verify": "Verify",
+ "verifying": "Verifying...",
+ "cancel": "Cancel",
+ "enterCodeError": "Please enter a verification code"
+ },
+ "layout": {
+ "pageLabel": "Authentication page",
+ "navLabel": "Authentication navigation"
+ },
"register": {
- "title": "Create Account",
- "subtitle": "Join the Veza community",
+ "title": "Sign Up",
+ "subtitle": "Create your account",
"firstName": "First Name",
"lastName": "Last Name",
"username": "Username",
"email": "Email",
"password": "Password",
"confirmPassword": "Confirm Password",
- "registerButton": "Create Account",
+ "registerButton": "Sign Up",
+ "loadingText": "Signing up...",
"hasAccount": "Already have an account?",
"loginLink": "Sign in",
+ "footerLink": "Already have an account? Sign in",
+ "formAriaLabel": "Registration form",
"errors": {
+ "emailRequired": "Email required",
+ "emailInvalid": "Invalid email",
+ "usernameRequired": "Username required",
+ "usernameTooShort": "Username must be at least 3 characters",
+ "usernameUnavailable": "This username is already taken",
+ "passwordRequired": "Password required",
+ "passwordTooShort": "Password must be at least 12 characters",
+ "passwordWeak": "Password must contain uppercase, lowercase, digit and special character",
+ "confirmRequired": "Password confirmation required",
"passwordMismatch": "Passwords do not match",
"emailExists": "This email is already in use",
"usernameExists": "This username is already taken",
- "weakPassword": "Password must contain at least 12 characters"
+ "weakPassword": "Password must contain at least 12 characters",
+ "termsRequired": "You must accept the terms of service and privacy policy"
+ },
+ "terms": {
+ "accept": "I accept the",
+ "termsOfService": "Terms of Service",
+ "termsAriaLabel": "Read the Terms of Service",
+ "and": "and the",
+ "privacyPolicy": "Privacy Policy",
+ "privacyAriaLabel": "Read the Privacy Policy",
+ "description": "You must accept the terms of service and privacy policy to create an account"
+ },
+ "usernameCheck": {
+ "checking": "Checking...",
+ "available": "This username is available",
+ "unavailable": "This username is already taken"
+ },
+ "passwordStrength": {
+ "label": "Password strength: {{level}}",
+ "weak": "Weak",
+ "fair": "Fair",
+ "good": "Good",
+ "strong": "Strong",
+ "reqLength": "At least 12 characters ({{current}}/12)",
+ "reqCase": "Uppercase and lowercase",
+ "reqDigit": "A digit",
+ "reqSpecial": "A special character (!@#$%^&*...)"
+ },
+ "verification": {
+ "title": "Registration successful!",
+ "emailSent": "A verification email has been sent to",
+ "checkInbox": "Please check your inbox and click the verification link.",
+ "resendButton": "Resend verification email",
+ "resendLoading": "Sending...",
+ "resendSuccess": "Verification email resent successfully!",
+ "resendError": "Failed to resend email. Please try again."
+ }
+ },
+ "verifyEmail": {
+ "title": {
+ "verifying": "Email Verification",
+ "success": "Email Verified",
+ "error": "Email Verification"
+ },
+ "subtitle": {
+ "verifying": "Verification in progress...",
+ "success": "Your email has been successfully verified",
+ "error": "An error occurred"
+ },
+ "message": {
+ "verifying": "Verifying your email...",
+ "success": "Your email has been successfully verified!",
+ "invalidLink": "Invalid or missing verification link",
+ "defaultError": "Verification failed",
+ "resendSuccess": "Verification email sent! Please check your inbox.",
+ "emailNotFound": "Email not found. Please register again or contact support.",
+ "resendError": "Failed to send the email"
+ },
+ "button": {
+ "retry": "Retry",
+ "resend": "Resend verification email",
+ "resendCooldown": "Resend in {{seconds}}s",
+ "resendCooldownAriaLabel": "Resend verification email in {{seconds}} seconds",
+ "resendAriaLabel": "Resend verification email"
+ },
+ "success": {
+ "title": "Success!",
+ "redirecting": "You will be redirected to the login page..."
+ },
+ "error": {
+ "title": "Error"
+ },
+ "srOnly": {
+ "verifying": "Verifying your email, please wait"
+ },
+ "footer": {
+ "backToLogin": "Back to login"
}
},
"forgotPassword": {
@@ -94,16 +213,135 @@
"email": "Email",
"sendButton": "Send Reset Link",
"backToLogin": "Back to login",
- "success": "Reset email sent"
+ "success": "Reset email sent",
+ "successTitle": "Check your email",
+ "successBody": "If an account with that email exists, we've sent password reset instructions.",
+ "checkInbox": "Please check your inbox and click the link to reset your password.",
+ "resendButton": "Resend email",
+ "formAriaLabel": "Password reset form",
+ "pageTitle": "Forgot Password - Veza",
+ "errors": {
+ "emailRequired": "Email is required",
+ "emailInvalid": "Invalid email format"
+ }
+ },
+ "resetPassword": {
+ "title": "Reset Password",
+ "subtitle": "Enter your new password",
+ "pageTitle": "Reset Password - Veza",
+ "password": "New password",
+ "confirmPassword": "Confirm password",
+ "submitButton": "Reset password",
+ "backToLogin": "Back to login",
+ "requestNewLink": "Request a new link",
+ "formAriaLabel": "Password reset form",
+ "invalidToken": {
+ "title": "Invalid reset link",
+ "subtitle": "The reset link is invalid or has expired",
+ "heading": "Invalid link",
+ "body": "The reset link is invalid or has expired. Please request a new link."
+ },
+ "success": {
+ "title": "Password reset",
+ "subtitle": "Your password has been changed successfully",
+ "heading": "Success!",
+ "body": "Your password has been reset successfully.",
+ "redirecting": "You will be redirected to the login page in {{seconds}}s..."
+ },
+ "errors": {
+ "passwordRequired": "Password is required",
+ "passwordTooShort": "Password must be at least 8 characters",
+ "confirmRequired": "Password confirmation is required",
+ "passwordMismatch": "Passwords do not match"
+ }
}
},
+ "landing": {
+ "nav": {
+ "product": "PRODUCT",
+ "platform": "PLATFORM",
+ "login": "LOGIN",
+ "ariaLabel": "Main navigation"
+ },
+ "hero": {
+ "tagline1": "Professional audio hardware — open, repairable, transparent.",
+ "tagline2": "Ethical music platform — no tracking, no algorithm.",
+ "cta": "Launching soon — Join the first ones",
+ "placeholder": "your@email.com",
+ "submit": "JOIN",
+ "discover": "DISCOVER"
+ },
+ "values": {
+ "kicker": "三つの柱",
+ "title": "Three commitments",
+ "card1": {
+ "title": "Open Hardware",
+ "desc": "Schematics published under CERN-OHL license. You can build, repair and improve every component. No planned obsolescence."
+ },
+ "card2": {
+ "title": "Ethical Platform",
+ "desc": "Zero behavioral tracking. Zero manipulation algorithm. Chronological feed. Private data. Open-source code (AGPL-3.0)."
+ },
+ "card3": {
+ "title": "Artist Community",
+ "desc": "Streaming, marketplace, real-time chat, collaborative playlists. Transparent compensation. Artists control their music."
+ }
+ },
+ "product": {
+ "kicker": "First product",
+ "title": "Condenser Microphone",
+ "desc": "Large diaphragm. OPA1642 preamp. Machined aluminum body. Published schematics, standard components, repair guide included. 5-year warranty.",
+ "feat1": "KiCAD schematics published — CERN-OHL-W",
+ "feat2": "Repairable — no glue, standard components",
+ "feat3": "Made in France — documented sourcing",
+ "feat4": "~€150 — full cost transparency",
+ "cta": "GET NOTIFIED AT LAUNCH"
+ },
+ "platform": {
+ "kicker": "The platform",
+ "subtitle": "墨 STREAMING — FROM MIC TO LISTENER",
+ "streaming": "HLS Streaming",
+ "community": "Community",
+ "marketplace": "Marketplace",
+ "privacy": "Privacy",
+ "openSource": "Open source",
+ "zeroTracking": "Zero tracking",
+ "stats": "435,000 lines of code. External security audit. 34 test suites. Go backend + Rust stream server + React frontend. Self-hosted. No cloud. No VC."
+ },
+ "notify": {
+ "title": "Join the first ones",
+ "desc": "Sign up to be notified at launch. No spam — one single email on launch day.",
+ "submit": "NOTIFY ME",
+ "placeholder": "your@email.com",
+ "ariaLabel": "Email address for launch notification"
+ },
+ "form": {
+ "successHero": "Registration confirmed. See you soon.",
+ "successCta": "Noted. Thank you.",
+ "errorSubscription": "Subscription failed",
+ "errorGeneric": "An error occurred",
+ "loadingAriaLabel": "Submitting..."
+ },
+ "footer": {
+ "openSource": "Open Source",
+ "privacy": "Privacy",
+ "contact": "Contact",
+ "tagline": "ETHICAL AUDIO TECHNOLOGY — MADE IN FRANCE"
+ },
+ "pageTitle": "TALAS — Ethical Audio Hardware & Platform"
+ },
"feed": {
"title": "Feed",
"subtitle": "Latest tracks from your artists",
"emptyTitle": "Your feed is empty",
"emptyDescription": "Follow artists to see their latest tracks here.",
"newReleasesInGenres": "New releases in your genres",
- "followedArtists": "Followed artists"
+ "followedArtists": "Followed artists",
+ "noNewTracks": "No new tracks",
+ "suggestedAccounts": "Suggested Accounts",
+ "followers_one": "{{count}} follower",
+ "followers_other": "{{count}} followers",
+ "seeAll": "See all"
},
"dashboard": {
"title": "Dashboard",
@@ -156,6 +394,13 @@
"goBack": "Go back",
"stayTuned": "Stay tuned — we'll let you know when it's ready."
},
+ "designSystem": {
+ "pageTitle": "Design System — Veza",
+ "title": "Design System",
+ "subtitle": "Component library and visual reference",
+ "underConstruction": "This page is under construction. Components will be showcased here soon.",
+ "backToHome": "Back to home"
+ },
"player": {
"miniPlayerAriaLabel": "Mini audio player",
"expandPlayer": "Expand player",
@@ -217,6 +462,22 @@
"description": "Upload your first track or create a playlist to get started.",
"uploadButton": "Upload file",
"uploadTrack": "Upload Track"
+ },
+ "new": "New",
+ "searchPlaceholder": "Search...",
+ "table": {
+ "label": "My tracks list",
+ "title": "Title",
+ "artist": "Artist",
+ "date": "Date",
+ "duration": "Duration",
+ "download": "Download",
+ "delete": "Delete",
+ "moreOptions": "More options for {{title}}"
+ },
+ "grid": {
+ "label": "Library tracks grid",
+ "play": "Play {{title}}"
}
},
"profile": {
@@ -245,6 +506,58 @@
"bioPlaceholder": "Tell us about yourself..."
}
},
+ "profilePublic": {
+ "pageTitle": "{{displayName}} — Veza",
+ "about": "About",
+ "noBio": "Systems online. No bio data available.",
+ "links": "Links",
+ "joined": "Joined {{date}}",
+ "tabs": {
+ "tracks": "Tracks",
+ "playlists": "Playlists",
+ "reposts": "Reposts",
+ "feed": "Feed"
+ },
+ "stats": {
+ "tracks": "Tracks",
+ "playlists": "Playlists",
+ "followers": "Followers",
+ "following": "Following"
+ },
+ "empty": {
+ "noTracks": "No tracks yet",
+ "noTracksDesc": "This user currently has no public tracks.",
+ "noPlaylists": "No playlists yet",
+ "noPlaylistsDesc": "No public playlists found for this user.",
+ "noPosts": "No posts yet",
+ "noPostsDesc": "This user hasn't posted anything yet.",
+ "noReposts": "No reposts yet",
+ "noRepostsDesc": "This user hasn't reposted any tracks yet."
+ },
+ "reposted": "Reposted",
+ "unknownArtist": "Unknown Artist",
+ "error": {
+ "notFound": "User Not Found",
+ "notFoundDesc": "The signal was lost in the void. We couldn't find the profile you were looking for.",
+ "generic": "Something went wrong",
+ "genericDesc": "We couldn't load this profile. Check your connection and try again.",
+ "tryAgain": "Try again",
+ "returnToBase": "Return to Base"
+ },
+ "private": {
+ "title": "Private Profile",
+ "description": "This profile is hidden. Its content is not visible."
+ },
+ "follow": {
+ "follow": "Follow",
+ "following": "Following",
+ "subscribing": "Subscribing...",
+ "unsubscribing": "Unsubscribing...",
+ "followSuccess": "You are now following this user",
+ "unfollowSuccess": "You are no longer following this user"
+ },
+ "loading": "Loading profile"
+ },
"settings": {
"title": "Settings",
"subtitle": "Manage your preferences and account settings",
@@ -485,11 +798,150 @@
"genre": "Genre",
"year": "Year",
"plays": "Plays",
- "likes": "Likes"
+ "likes": "Likes",
+ "grid": {
+ "label": "Tracks grid",
+ "track": "Track: {{title}}",
+ "play": "Play {{title}}",
+ "pause": "Pause {{title}}",
+ "coverAlt": "Cover art for {{title}}",
+ "moreOptions": "More options for {{title}}",
+ "nowPlaying": "Now playing",
+ "densityCompact": "Compact",
+ "densityDefault": "Default",
+ "densityLarge": "Large"
+ },
+ "detail": {
+ "back": "Back",
+ "addToQueue": "Add to Queue",
+ "addedToQueue": "Added to queue",
+ "listenTogether": "Listen together",
+ "edit": "Edit",
+ "startListening": "Start listening",
+ "close": "Close",
+ "listenTogetherHelp": "Share this link with friends to listen together. Playback will be synchronized.",
+ "shareLink": "Share link",
+ "couldNotCreateSession": "Could not create listening session",
+ "linkCopied": "Link copied to clipboard",
+ "linkCopyFailed": "Failed to copy link",
+ "playsLabel": "Plays",
+ "likesLabel": "Likes",
+ "format": "Format",
+ "bitrate": "Bitrate",
+ "sampleRate": "Sample Rate",
+ "bpm": "BPM",
+ "key": "Key",
+ "tags": "Tags",
+ "uploaded": "Uploaded",
+ "discussion": "Discussion",
+ "analytics": "Analytics",
+ "history": "History",
+ "lyrics": "Lyrics",
+ "stems": "Stems",
+ "performanceData": "Performance Data",
+ "versionHistory": "Version History",
+ "notFound": "Track not found",
+ "failedToLoad": "Failed to load track",
+ "goBack": "Go Back"
+ },
+ "commentSection": {
+ "title": "Comments",
+ "titleWithCount": "Comments ({{count}})",
+ "placeholder": "Write a comment...",
+ "empty": "No comments yet. Be the first to comment!",
+ "publishError": "Error publishing comment",
+ "publishSuccess": "Comment published",
+ "loginToComment": "Log in to comment",
+ "loadError": "Failed to load comments"
+ },
+ "repost": {
+ "reposted": "Track added to your profile",
+ "repostFailed": "Repost failed",
+ "unreposted": "Repost removed",
+ "unrepostFailed": "Failed to remove repost",
+ "repostAction": "Repost to your profile",
+ "unrepostAction": "Remove repost"
+ },
+ "likeAction": {
+ "added": "Added to favorites",
+ "addFailed": "Failed to add to favorites",
+ "removed": "Removed from favorites",
+ "removeFailed": "Failed to remove from favorites"
+ },
+ "shareDialog": {
+ "title": "Share Track",
+ "creatingLink": "Creating share link...",
+ "shareLink": "Share Link",
+ "expiresIn": "This link will expire in 7 day(s)",
+ "close": "Close",
+ "copyLink": "Copy Link",
+ "createFailed": "Failed to create share link",
+ "linkCopied": "Link copied to clipboard",
+ "linkCopyFailed": "Failed to copy link"
+ },
+ "lyricsSection": {
+ "title": "Lyrics",
+ "loadError": "Unable to load lyrics.",
+ "empty": "No lyrics available for this track.",
+ "showLess": "Show less",
+ "showMore": "Show more"
+ },
+ "stemsSection": {
+ "title": "Stems",
+ "upload": "Upload",
+ "loading": "Loading stems...",
+ "loadError": "Failed to load stems.",
+ "empty": "No stems available.",
+ "uploadHelp": "Upload stems (WAV, AIFF, FLAC) to share with collaborators."
+ },
+ "stats": {
+ "scanning": "SCANNING...",
+ "telemetryError": "Telemetry interrupted",
+ "views": "Views",
+ "likes": "Likes",
+ "comments": "Comms",
+ "downloads": "Data",
+ "playTime": "Pulse"
+ }
+ },
+ "discover": {
+ "title": "Discover",
+ "subtitle": "Explore by genre, tag, or editorial playlist",
+ "byGenre": "By Genre",
+ "editorialPlaylists": "Editorial Playlists",
+ "noEditorialPlaylists": "No editorial playlists available yet",
+ "back": "Back",
+ "noTracksInGenre": "No tracks in this genre",
+ "browseGenre": "Browse {{genre}} tracks",
+ "trackCount": "{{count}} tracks"
},
"playlists": {
"title": "Playlists",
+ "pageTitle": "Playlists — Veza",
+ "subtitle": "Discover and manage your playlists",
"create": "Create Playlist",
+ "createButton": "Create",
+ "createButtonMobile": "New",
+ "createNewPlaylist": "Create a new playlist",
+ "importButton": "Import",
+ "selectButton": "Select",
+ "deselectButton": "Cancel",
+ "enableSelection": "Enable selection",
+ "disableSelection": "Disable selection",
+ "searchPlaceholder": "Search playlists...",
+ "filtersButton": "Filters",
+ "filtersActive": "Active",
+ "clearFilters": "Clear",
+ "filterVisibility": "Visibility",
+ "filterOwner": "Owner",
+ "filterSortBy": "Sort By",
+ "sortToggle": "Toggle sort order",
+ "all": "All",
+ "myPlaylists": "My Playlists",
+ "others": "Others",
+ "sortByDate": "Date",
+ "sortByTitle": "Title",
+ "sortByTracks": "Tracks",
"edit": "Edit Playlist",
"delete": "Delete Playlist",
"follow": "Follow",
@@ -503,10 +955,188 @@
"addCollaborator": "Add Collaborator",
"removeCollaborator": "Remove Collaborator",
"noPlaylists": "No playlists available",
+ "emptyTitle": "No playlists yet",
+ "emptyDescription": "Start by creating your first playlist to organize your tracks.",
"loading": "Loading playlists...",
"tracks": "Tracks",
+ "trackListLabel": "Playlist tracks",
+ "trackItem": "Track {{position}}: {{title}}",
"public": "Public",
- "private": "Private"
+ "private": "Private",
+ "createDialog": {
+ "title": "Create a playlist",
+ "titleLabel": "Title",
+ "titlePlaceholder": "My new playlist",
+ "titleRequired": "Title is required",
+ "descriptionLabel": "Description",
+ "descriptionPlaceholder": "Describe your playlist...",
+ "publicPlaylist": "Public playlist",
+ "cancel": "Cancel playlist creation",
+ "cancelButton": "Cancel",
+ "submit": "Create the playlist",
+ "submitButton": "Create"
+ },
+ "shared": {
+ "playAll": "Play All",
+ "shuffle": "Shuffle",
+ "copyLink": "Copy link",
+ "linkCopied": "Link copied to clipboard",
+ "sharedPlaylist": "Shared playlist",
+ "trackCount": "{{count}} track",
+ "trackCount_other": "{{count}} tracks",
+ "notFound": "Playlist Not Found",
+ "backToLibrary": "Back to Library",
+ "noTracks": "No tracks in this playlist",
+ "noTracksDescription": "This shared playlist is empty.",
+ "publicSignal": "Public",
+ "encrypted": "Private",
+ "updated": "Updated {{date}}",
+ "followers": "{{count}} followers"
+ },
+ "detail": {
+ "reorder": "Reorder",
+ "playTrack": "Play {{title}}",
+ "pauseTrack": "Pause {{title}}",
+ "coverAlt": "Cover of {{title}}",
+ "addToFavorites": "Add {{title}} to Favorites",
+ "filterTracks": "Filter tracks...",
+ "addTracks": "Add Tracks",
+ "squadMembers": "Squad Members",
+ "invite": "Invite",
+ "suggestedForYou": "Suggested for you",
+ "recommendations": "Recommendations",
+ "trackAdded": "Track added",
+ "trackRemoved": "Track removed",
+ "reordered": "Reordered",
+ "playlistReordered": "Playlist reordered",
+ "reorderError": "Unable to reorder the playlist. Please try again.",
+ "emptyTracks": "No tracks in this playlist",
+ "emptyTracksDescription": "Add tracks to this playlist to get started.",
+ "loadingTracks": "Loading tracks",
+ "loadingTracksProgress": "Loading tracks..."
+ },
+ "actions": {
+ "groupLabel": "Playlist actions",
+ "edit": "Edit",
+ "editPlaylist": "Edit playlist",
+ "saving": "Saving...",
+ "saved": "Saved",
+ "share": "Share",
+ "sharePlaylist": "Share playlist",
+ "delete": "Delete",
+ "deletePlaylist": "Delete playlist",
+ "deleteTitle": "Delete playlist",
+ "deleteConfirmation": "Are you sure you want to delete \"{{title}}\"? This action is irreversible. All tracks in the playlist will be removed.",
+ "deleteConfirm": "Delete",
+ "deleteCancel": "Cancel",
+ "updateSuccess": "Playlist updated successfully",
+ "updateError": "Error updating playlist",
+ "deleteSuccess": "Playlist deleted successfully",
+ "deleteError": "Error deleting playlist"
+ },
+ "editDialog": {
+ "title": "Edit playlist",
+ "save": "Save",
+ "saving": "Saving...",
+ "cancel": "Cancel",
+ "titleLabel": "Title",
+ "titlePlaceholder": "Playlist title",
+ "descriptionLabel": "Description",
+ "descriptionPlaceholder": "Playlist description",
+ "coverUrlLabel": "Cover URL",
+ "isPublic": "Public playlist",
+ "savingInProgress": "Saving in progress..."
+ },
+ "form": {
+ "editAriaLabel": "Edit playlist form",
+ "createAriaLabel": "Create playlist form",
+ "titleLabel": "Title",
+ "titlePlaceholder": "My playlist",
+ "titleRequired": "Title is required",
+ "titleMaxLength": "Title cannot exceed 200 characters",
+ "descriptionLabel": "Description",
+ "descriptionPlaceholder": "Describe your playlist...",
+ "descriptionMaxLength": "Description cannot exceed 2000 characters",
+ "coverUrlLabel": "Cover URL",
+ "coverUrlMaxLength": "URL cannot exceed 500 characters",
+ "coverUrlInvalid": "Cover URL must be valid",
+ "isPublic": "Public playlist",
+ "cancel": "Cancel",
+ "cancelEdit": "Cancel editing",
+ "save": "Save",
+ "create": "Create",
+ "saveChanges": "Save changes",
+ "createPlaylist": "Create playlist",
+ "updateSuccess": "Playlist updated successfully",
+ "createSuccess": "Playlist created successfully",
+ "genericError": "An error occurred"
+ },
+ "duplicate": {
+ "button": "Duplicate",
+ "duplicating": "Duplicating...",
+ "ariaLabel": "Duplicate playlist",
+ "copySuffix": "{{title}} (copy)",
+ "success": "Playlist duplicated successfully",
+ "error": "Error duplicating playlist"
+ },
+ "export": {
+ "button": "Export",
+ "exporting": "Exporting...",
+ "json": "Export as JSON",
+ "csv": "Export as CSV",
+ "m3u": "Export as M3U",
+ "success": "Playlist exported as {{format}}",
+ "authRequired": "You must be logged in to export a playlist",
+ "forbidden": "You don't have permission to export this playlist",
+ "notFound": "Playlist not found",
+ "error": "Error during export",
+ "genericError": "An error occurred during export"
+ },
+ "followBtn": {
+ "follow": "Follow",
+ "following": "Following",
+ "unfollowing": "Unfollowing...",
+ "subscribing": "Subscribing...",
+ "followSuccess": "You are now following this playlist",
+ "followError": "Error following playlist",
+ "unfollowSuccess": "You are no longer following this playlist",
+ "unfollowError": "Error unfollowing playlist"
+ }
+ },
+ "queue": {
+ "pageTitle": "Queue — Veza",
+ "heading": "PLAY QUEUE",
+ "tracksUpcoming_one": "{{count}} track upcoming",
+ "tracksUpcoming_other": "{{count}} tracks upcoming",
+ "nowPlaying": "Now Playing",
+ "upNext": "Up Next",
+ "emptyTitle": "Nothing in your queue",
+ "emptyDescription": "Start playing music and add tracks to build your queue.",
+ "saveQueue": "Save Queue",
+ "clear": "Clear",
+ "clearTitle": "Clear queue",
+ "clearDescription": "Remove all tracks from your queue. This cannot be undone.",
+ "clearConfirm": "Clear",
+ "removeFromQueue": "Remove from queue",
+ "reorderTrack": "Reorder {{title}}",
+ "playTrack": "Play {{title}}",
+ "pauseTrack": "Pause {{title}}",
+ "emptyQueueError": "Queue is empty",
+ "savedAs": "Queue saved as \"{{name}}\"",
+ "saveAsPlaylist": {
+ "title": "Save Queue as Playlist",
+ "nameLabel": "Playlist Name",
+ "namePlaceholder": "My Queue Session",
+ "privatePlaylist": "Private Playlist",
+ "publicPlaylist": "Public Playlist",
+ "privateDescription": "Only visible to you",
+ "publicDescription": "Visible on your profile",
+ "toggleVisibility": "Toggle playlist visibility",
+ "cancel": "Cancel",
+ "save": "Save Playlist",
+ "nameRequired": "Please name your playlist",
+ "saveFailed": "Failed to save playlist"
+ }
},
"notifications": {
"title": "Notifications",
@@ -524,13 +1154,35 @@
},
"search": {
"title": "Search",
+ "pageTitle": "Search — Veza",
+ "heading": "Search",
"placeholder": "Search tracks, playlists, users...",
+ "searchPlaceholder": "Search for tracks, artists, playlists...",
+ "clearSearch": "Clear search",
"results": "Results",
- "noResults": "No results found",
+ "resultsCount_one": "{{count}} result found",
+ "resultsCount_other": "{{count}} results found",
+ "allResults": "All Results",
+ "topTracks": "Top Tracks",
"tracks": "Tracks",
+ "artists": "Artists",
"playlists": "Playlists",
"users": "Users",
- "all": "All"
+ "all": "All",
+ "noResults": "No results found",
+ "noResultsHint": "Try adjusting your search or use different keywords.",
+ "noDescription": "No description",
+ "recentSearches": "Recent Searches",
+ "clearHistory": "Clear search history",
+ "helpText": "Use AND, OR, NOT and \"exact phrase\" to refine your search.",
+ "discovery": {
+ "newReleases": "New Releases",
+ "newReleasesDesc": "Latest tracks from your artists",
+ "curatedMixes": "Curated Mixes",
+ "curatedMixesDesc": "Handpicked selections for you",
+ "exploreArtists": "Explore Artists",
+ "exploreArtistsDesc": "Discover community artists"
+ }
},
"analytics": {
"title": "Analytics",
diff --git a/apps/web/src/locales/es.json b/apps/web/src/locales/es.json
index 76a887cd2..478e3f816 100644
--- a/apps/web/src/locales/es.json
+++ b/apps/web/src/locales/es.json
@@ -7,6 +7,7 @@
"delete": "Eliminar",
"confirm": "Confirmar",
"close": "Cerrar",
+ "help": "Ayuda",
"back": "Volver",
"next": "Siguiente",
"previous": "Anterior",
@@ -26,6 +27,8 @@
"register": "Registrarse",
"email": "Correo electrónico",
"password": "Contraseña",
+ "showPassword": "Mostrar contraseña",
+ "hidePassword": "Ocultar contraseña",
"username": "Nombre de usuario",
"firstName": "Nombre",
"lastName": "Apellido",
@@ -50,7 +53,8 @@
"notifications": "Notificaciones",
"retry": "Reintentar",
"retrying": "Reintentando...",
- "dismiss": "Descartar"
+ "dismiss": "Descartar",
+ "loadingAria": "Cargando"
},
"auth": {
"login": {
@@ -63,29 +67,144 @@
"loginButton": "Iniciar sesión",
"noAccount": "¿No tienes una cuenta?",
"createAccount": "Crear cuenta",
+ "orContinueWith": "o continuar con",
+ "footerLink": "¿No tienes cuenta? Regístrate",
+ "oauthProvider": "Iniciar sesión con {{provider}}",
"errors": {
"invalidCredentials": "Correo o contraseña incorrectos",
"accountLocked": "Cuenta bloqueada",
- "emailNotVerified": "Correo no verificado"
+ "emailNotVerified": "Correo no verificado",
+ "emailRequired": "El correo es obligatorio",
+ "emailInvalid": "Formato de correo inválido",
+ "passwordRequired": "La contraseña es obligatoria",
+ "connectionError": "Error de conexión. Verifica tu internet.",
+ "genericError": "Ocurrió un error. Inténtalo de nuevo."
}
},
+ "twoFactor": {
+ "title": "Autenticación de dos factores",
+ "subtitle": "Ingresa el código de tu aplicación de autenticación",
+ "backToSignIn": "Volver a iniciar sesión",
+ "verificationCode": "Código de verificación",
+ "enterCode": "Ingresa el código de 6 dígitos de tu aplicación de autenticación para continuar.",
+ "lostAccess": "¿Perdiste el acceso?",
+ "useBackupCode": "Usar un código de respaldo",
+ "useAuthenticator": "Usar código de autenticador",
+ "backupCode": "Código de respaldo",
+ "verify": "Verificar",
+ "verifying": "Verificando...",
+ "cancel": "Cancelar",
+ "enterCodeError": "Por favor ingresa un código de verificación"
+ },
+ "layout": {
+ "pageLabel": "Página de autenticación",
+ "navLabel": "Navegación de autenticación"
+ },
"register": {
- "title": "Crear cuenta",
- "subtitle": "Únete a la comunidad Veza",
+ "title": "Registro",
+ "subtitle": "Crea tu cuenta",
"firstName": "Nombre",
"lastName": "Apellido",
"username": "Nombre de usuario",
"email": "Correo electrónico",
"password": "Contraseña",
"confirmPassword": "Confirmar contraseña",
- "registerButton": "Crear cuenta",
+ "registerButton": "Registrarse",
+ "loadingText": "Registrando...",
"hasAccount": "¿Ya tienes una cuenta?",
"loginLink": "Iniciar sesión",
+ "footerLink": "¿Ya tienes una cuenta? Iniciar sesión",
+ "formAriaLabel": "Formulario de registro",
"errors": {
+ "emailRequired": "Correo requerido",
+ "emailInvalid": "Correo inválido",
+ "usernameRequired": "Nombre de usuario requerido",
+ "usernameTooShort": "El nombre de usuario debe tener al menos 3 caracteres",
+ "usernameUnavailable": "Este nombre de usuario ya está en uso",
+ "passwordRequired": "Contraseña requerida",
+ "passwordTooShort": "La contraseña debe tener al menos 12 caracteres",
+ "passwordWeak": "La contraseña debe contener mayúscula, minúscula, número y carácter especial",
+ "confirmRequired": "Confirmación de contraseña requerida",
"passwordMismatch": "Las contraseñas no coinciden",
"emailExists": "Este correo ya está en uso",
"usernameExists": "Este nombre de usuario ya está en uso",
- "weakPassword": "La contraseña debe tener al menos 12 caracteres"
+ "weakPassword": "La contraseña debe tener al menos 12 caracteres",
+ "termsRequired": "Debes aceptar los términos de servicio y la política de privacidad"
+ },
+ "terms": {
+ "accept": "Acepto los",
+ "termsOfService": "términos de servicio",
+ "termsAriaLabel": "Leer los términos de servicio",
+ "and": "y la",
+ "privacyPolicy": "política de privacidad",
+ "privacyAriaLabel": "Leer la política de privacidad",
+ "description": "Debes aceptar los términos de servicio y la política de privacidad para crear una cuenta"
+ },
+ "usernameCheck": {
+ "checking": "Verificando...",
+ "available": "Este nombre de usuario está disponible",
+ "unavailable": "Este nombre de usuario ya está en uso"
+ },
+ "passwordStrength": {
+ "label": "Fuerza de la contraseña: {{level}}",
+ "weak": "Débil",
+ "fair": "Regular",
+ "good": "Buena",
+ "strong": "Fuerte",
+ "reqLength": "Al menos 12 caracteres ({{current}}/12)",
+ "reqCase": "Mayúscula y minúscula",
+ "reqDigit": "Un número",
+ "reqSpecial": "Un carácter especial (!@#$%^&*...)"
+ },
+ "verification": {
+ "title": "¡Registro exitoso!",
+ "emailSent": "Se ha enviado un correo de verificación a",
+ "checkInbox": "Revisa tu bandeja de entrada y haz clic en el enlace de verificación.",
+ "resendButton": "Reenviar correo de verificación",
+ "resendLoading": "Enviando...",
+ "resendSuccess": "¡Correo de verificación reenviado con éxito!",
+ "resendError": "No se pudo reenviar el correo. Inténtalo de nuevo."
+ }
+ },
+ "verifyEmail": {
+ "title": {
+ "verifying": "Verificación de correo",
+ "success": "Correo verificado",
+ "error": "Verificación de correo"
+ },
+ "subtitle": {
+ "verifying": "Verificación en curso...",
+ "success": "Tu correo ha sido verificado con éxito",
+ "error": "Ocurrió un error"
+ },
+ "message": {
+ "verifying": "Verificando tu correo electrónico...",
+ "success": "¡Tu correo ha sido verificado con éxito!",
+ "invalidLink": "Enlace de verificación inválido o faltante",
+ "defaultError": "La verificación falló",
+ "resendSuccess": "¡Correo de verificación enviado! Revisa tu bandeja de entrada.",
+ "emailNotFound": "Correo no encontrado. Regístrate de nuevo o contacta al soporte.",
+ "resendError": "Error al enviar el correo"
+ },
+ "button": {
+ "retry": "Reintentar",
+ "resend": "Reenviar correo de verificación",
+ "resendCooldown": "Reenviar en {{seconds}}s",
+ "resendCooldownAriaLabel": "Reenviar correo de verificación en {{seconds}} segundos",
+ "resendAriaLabel": "Reenviar correo de verificación"
+ },
+ "success": {
+ "title": "¡Éxito!",
+ "redirecting": "Serás redirigido a la página de inicio de sesión..."
+ },
+ "error": {
+ "title": "Error"
+ },
+ "srOnly": {
+ "verifying": "Verificando tu correo electrónico, por favor espera"
+ },
+ "footer": {
+ "backToLogin": "Volver al inicio de sesión"
}
},
"forgotPassword": {
@@ -94,9 +213,136 @@
"email": "Correo electrónico",
"sendButton": "Enviar enlace",
"backToLogin": "Volver al inicio de sesión",
- "success": "Correo de restablecimiento enviado"
+ "success": "Correo de restablecimiento enviado",
+ "successTitle": "Revisa tu correo",
+ "successBody": "Si existe una cuenta con ese correo, hemos enviado instrucciones para restablecer la contraseña.",
+ "checkInbox": "Revisa tu bandeja de entrada y haz clic en el enlace para restablecer tu contraseña.",
+ "resendButton": "Reenviar correo",
+ "formAriaLabel": "Formulario de restablecimiento de contraseña",
+ "pageTitle": "Contraseña olvidada - Veza",
+ "errors": {
+ "emailRequired": "Correo requerido",
+ "emailInvalid": "Formato de correo inválido"
+ }
+ },
+ "resetPassword": {
+ "title": "Restablecer contraseña",
+ "subtitle": "Ingresa tu nueva contraseña",
+ "pageTitle": "Restablecer contraseña - Veza",
+ "password": "Nueva contraseña",
+ "confirmPassword": "Confirmar contraseña",
+ "submitButton": "Restablecer contraseña",
+ "backToLogin": "Volver al inicio de sesión",
+ "requestNewLink": "Solicitar un nuevo enlace",
+ "formAriaLabel": "Formulario de restablecimiento de contraseña",
+ "invalidToken": {
+ "title": "Enlace de restablecimiento inválido",
+ "subtitle": "El enlace de restablecimiento es inválido o ha expirado",
+ "heading": "Enlace inválido",
+ "body": "El enlace de restablecimiento es inválido o ha expirado. Solicita un nuevo enlace."
+ },
+ "success": {
+ "title": "Contraseña restablecida",
+ "subtitle": "Tu contraseña ha sido cambiada con éxito",
+ "heading": "¡Éxito!",
+ "body": "Tu contraseña ha sido restablecida con éxito.",
+ "redirecting": "Serás redirigido a la página de inicio de sesión en {{seconds}}s..."
+ },
+ "errors": {
+ "passwordRequired": "Contraseña requerida",
+ "passwordTooShort": "La contraseña debe tener al menos 8 caracteres",
+ "confirmRequired": "Confirmación de contraseña requerida",
+ "passwordMismatch": "Las contraseñas no coinciden"
+ }
}
},
+ "landing": {
+ "nav": {
+ "product": "PRODUCTO",
+ "platform": "PLATAFORMA",
+ "login": "INICIAR SESIÓN",
+ "ariaLabel": "Navegación principal"
+ },
+ "hero": {
+ "tagline1": "Hardware de audio profesional — abierto, reparable, transparente.",
+ "tagline2": "Plataforma musical ética — sin rastreo, sin algoritmo.",
+ "cta": "Lanzamiento pronto — Únete a los primeros",
+ "placeholder": "tu@email.com",
+ "submit": "UNIRSE",
+ "discover": "DESCUBRIR"
+ },
+ "values": {
+ "kicker": "三つの柱",
+ "title": "Tres compromisos",
+ "card1": {
+ "title": "Hardware Abierto",
+ "desc": "Esquemas publicados bajo licencia CERN-OHL. Puedes construir, reparar y mejorar cada componente. Sin obsolescencia programada."
+ },
+ "card2": {
+ "title": "Plataforma Ética",
+ "desc": "Cero rastreo comportamental. Cero algoritmo de manipulación. Feed cronológico. Datos privados. Código open-source (AGPL-3.0)."
+ },
+ "card3": {
+ "title": "Comunidad Artista",
+ "desc": "Streaming, marketplace, chat en tiempo real, playlists colaborativas. Compensación transparente. Los artistas controlan su música."
+ }
+ },
+ "product": {
+ "kicker": "Primer producto",
+ "title": "Micrófono Condensador",
+ "desc": "Diafragma grande. Preamplificador OPA1642. Cuerpo de aluminio mecanizado. Esquemas publicados, componentes estándar, guía de reparación incluida. Garantía de 5 años.",
+ "feat1": "Esquemas KiCAD publicados — CERN-OHL-W",
+ "feat2": "Reparable — sin pegamento, componentes estándar",
+ "feat3": "Fabricado en Francia — sourcing documentado",
+ "feat4": "~150 € — transparencia total de costos",
+ "cta": "RECIBIR NOTIFICACIÓN DEL LANZAMIENTO"
+ },
+ "platform": {
+ "kicker": "La plataforma",
+ "subtitle": "墨 STREAMING — DEL MICRÓFONO AL OYENTE",
+ "streaming": "Streaming HLS",
+ "community": "Comunidad",
+ "marketplace": "Marketplace",
+ "privacy": "Privacidad",
+ "openSource": "Open source",
+ "zeroTracking": "Cero rastreo",
+ "stats": "435 000 líneas de código. Auditoría de seguridad externa. 34 suites de tests. Backend Go + Stream server Rust + Frontend React. Auto-hospedado. Sin cloud. Sin VC."
+ },
+ "notify": {
+ "title": "Únete a los primeros",
+ "desc": "Regístrate para ser notificado del lanzamiento. Sin spam — un solo correo el día del lanzamiento.",
+ "submit": "NOTIFICARME",
+ "placeholder": "tu@email.com",
+ "ariaLabel": "Correo electrónico para notificación de lanzamiento"
+ },
+ "form": {
+ "successHero": "Registro confirmado. ¡Hasta pronto!",
+ "successCta": "Registro confirmado. ¡Hasta pronto!",
+ "errorSubscription": "La suscripción falló",
+ "errorGeneric": "Ocurrió un error",
+ "loadingAriaLabel": "Enviando..."
+ },
+ "footer": {
+ "openSource": "Open Source",
+ "privacy": "Privacidad",
+ "contact": "Contacto",
+ "tagline": "TECNOLOGÍA AUDIO ÉTICA — HECHO EN FRANCIA"
+ },
+ "pageTitle": "TALAS — Hardware de audio ético y Plataforma"
+ },
+ "feed": {
+ "title": "Feed",
+ "subtitle": "Últimas pistas de tus artistas",
+ "emptyTitle": "Tu feed está vacío",
+ "emptyDescription": "Sigue artistas para ver sus últimas pistas aquí.",
+ "newReleasesInGenres": "Nuevos lanzamientos en tus géneros",
+ "followedArtists": "Artistas seguidos",
+ "noNewTracks": "No hay pistas nuevas",
+ "suggestedAccounts": "Cuentas sugeridas",
+ "followers_one": "{{count}} seguidor",
+ "followers_other": "{{count}} seguidores",
+ "seeAll": "Ver todo"
+ },
"dashboard": {
"title": "Panel de control",
"welcome": "¡Bienvenido, {{name}}!",
@@ -144,6 +390,13 @@
"notifyMe": "Notificarme",
"goBack": "Volver"
},
+ "designSystem": {
+ "pageTitle": "Design System — Veza",
+ "title": "Design System",
+ "subtitle": "Biblioteca de componentes y referencia visual",
+ "underConstruction": "Esta página está en construcción. Los componentes se mostrarán aquí pronto.",
+ "backToHome": "Volver al inicio"
+ },
"player": {
"miniPlayerAriaLabel": "Mini reproductor de audio",
"expandPlayer": "Expandir reproductor",
@@ -218,6 +471,22 @@
"description": "Sube tu primera pista o crea una playlist para empezar.",
"uploadButton": "Subir archivo",
"uploadTrack": "Subir pista"
+ },
+ "new": "Nuevo",
+ "searchPlaceholder": "Buscar...",
+ "table": {
+ "label": "Lista de mis pistas",
+ "title": "Título",
+ "artist": "Artista",
+ "date": "Fecha",
+ "duration": "Duración",
+ "download": "Descargar",
+ "delete": "Eliminar",
+ "moreOptions": "Más opciones para {{title}}"
+ },
+ "grid": {
+ "label": "Cuadrícula de pistas de la biblioteca",
+ "play": "Reproducir {{title}}"
}
},
"profile": {
@@ -246,6 +515,58 @@
"bioPlaceholder": "Cuéntanos sobre ti..."
}
},
+ "profilePublic": {
+ "pageTitle": "{{displayName}} — Veza",
+ "about": "Acerca de",
+ "noBio": "Sistemas en línea. Sin biografía disponible.",
+ "links": "Enlaces",
+ "joined": "Miembro desde {{date}}",
+ "tabs": {
+ "tracks": "Pistas",
+ "playlists": "Playlists",
+ "reposts": "Reposts",
+ "feed": "Feed"
+ },
+ "stats": {
+ "tracks": "Pistas",
+ "playlists": "Playlists",
+ "followers": "Seguidores",
+ "following": "Siguiendo"
+ },
+ "empty": {
+ "noTracks": "Aún no hay pistas",
+ "noTracksDesc": "Este usuario aún no tiene pistas públicas.",
+ "noPlaylists": "Aún no hay playlists",
+ "noPlaylistsDesc": "No se encontraron playlists públicas para este usuario.",
+ "noPosts": "Aún no hay publicaciones",
+ "noPostsDesc": "Este usuario aún no ha publicado nada.",
+ "noReposts": "Aún no hay reposts",
+ "noRepostsDesc": "Este usuario aún no ha reposteado pistas."
+ },
+ "reposted": "Reposteado",
+ "unknownArtist": "Artista desconocido",
+ "error": {
+ "notFound": "Usuario no encontrado",
+ "notFoundDesc": "La señal se perdió en el vacío. No encontramos el perfil que buscabas.",
+ "generic": "Algo salió mal",
+ "genericDesc": "No pudimos cargar este perfil. Verifica tu conexión e inténtalo de nuevo.",
+ "tryAgain": "Reintentar",
+ "returnToBase": "Volver a la base"
+ },
+ "private": {
+ "title": "Perfil privado",
+ "description": "Este perfil está oculto. Su contenido no es visible."
+ },
+ "follow": {
+ "follow": "Seguir",
+ "following": "Siguiendo",
+ "subscribing": "Suscribiendo...",
+ "unsubscribing": "Cancelando...",
+ "followSuccess": "Ahora sigues a este usuario",
+ "unfollowSuccess": "Ya no sigues a este usuario"
+ },
+ "loading": "Cargando perfil"
+ },
"settings": {
"title": "Configuración",
"subtitle": "Gestiona tus preferencias y configuración de cuenta",
@@ -486,11 +807,150 @@
"genre": "Género",
"year": "Año",
"plays": "Reproducciones",
- "likes": "Me gusta"
+ "likes": "Me gusta",
+ "grid": {
+ "label": "Cuadrícula de pistas",
+ "track": "Pista: {{title}}",
+ "play": "Reproducir {{title}}",
+ "pause": "Pausar {{title}}",
+ "coverAlt": "Portada de {{title}}",
+ "moreOptions": "Más opciones para {{title}}",
+ "nowPlaying": "Reproduciendo",
+ "densityCompact": "Compacto",
+ "densityDefault": "Estándar",
+ "densityLarge": "Grande"
+ },
+ "detail": {
+ "back": "Volver",
+ "addToQueue": "Añadir a la cola",
+ "addedToQueue": "Añadido a la cola",
+ "listenTogether": "Escuchar juntos",
+ "edit": "Editar",
+ "startListening": "Empezar a escuchar",
+ "close": "Cerrar",
+ "listenTogetherHelp": "Comparte este enlace con amigos para escuchar juntos. La reproducción estará sincronizada.",
+ "shareLink": "Enlace para compartir",
+ "couldNotCreateSession": "No se pudo crear la sesión de escucha",
+ "linkCopied": "Enlace copiado al portapapeles",
+ "linkCopyFailed": "Error al copiar el enlace",
+ "playsLabel": "Reproducciones",
+ "likesLabel": "Me gusta",
+ "format": "Formato",
+ "bitrate": "Tasa de bits",
+ "sampleRate": "Frecuencia de muestreo",
+ "bpm": "BPM",
+ "key": "Tonalidad",
+ "tags": "Etiquetas",
+ "uploaded": "Subido",
+ "discussion": "Discusión",
+ "analytics": "Estadísticas",
+ "history": "Historial",
+ "lyrics": "Letras",
+ "stems": "Stems",
+ "performanceData": "Datos de rendimiento",
+ "versionHistory": "Historial de versiones",
+ "notFound": "Pista no encontrada",
+ "failedToLoad": "Error al cargar la pista",
+ "goBack": "Volver"
+ },
+ "commentSection": {
+ "title": "Comentarios",
+ "titleWithCount": "Comentarios ({{count}})",
+ "placeholder": "Escribe un comentario...",
+ "empty": "Aún no hay comentarios. ¡Sé el primero en comentar!",
+ "publishError": "Error al publicar el comentario",
+ "publishSuccess": "Comentario publicado",
+ "loginToComment": "Inicia sesión para comentar",
+ "loadError": "Error al cargar los comentarios"
+ },
+ "repost": {
+ "reposted": "Pista añadida a tu perfil",
+ "repostFailed": "Error al repostear",
+ "unreposted": "Repost eliminado",
+ "unrepostFailed": "Error al eliminar el repost",
+ "repostAction": "Repostear en tu perfil",
+ "unrepostAction": "Eliminar repost"
+ },
+ "likeAction": {
+ "added": "Añadido a favoritos",
+ "addFailed": "Error al añadir a favoritos",
+ "removed": "Eliminado de favoritos",
+ "removeFailed": "Error al eliminar de favoritos"
+ },
+ "shareDialog": {
+ "title": "Compartir pista",
+ "creatingLink": "Creando enlace para compartir...",
+ "shareLink": "Enlace para compartir",
+ "expiresIn": "Este enlace expira en 7 día(s)",
+ "close": "Cerrar",
+ "copyLink": "Copiar enlace",
+ "createFailed": "Error al crear el enlace para compartir",
+ "linkCopied": "Enlace copiado al portapapeles",
+ "linkCopyFailed": "Error al copiar el enlace"
+ },
+ "lyricsSection": {
+ "title": "Letras",
+ "loadError": "No se pudieron cargar las letras.",
+ "empty": "No hay letras disponibles para esta pista.",
+ "showLess": "Ver menos",
+ "showMore": "Ver más"
+ },
+ "stemsSection": {
+ "title": "Stems",
+ "upload": "Subir",
+ "loading": "Cargando stems...",
+ "loadError": "Error al cargar los stems.",
+ "empty": "No hay stems disponibles.",
+ "uploadHelp": "Sube stems (WAV, AIFF, FLAC) para compartir con colaboradores."
+ },
+ "stats": {
+ "scanning": "ANALIZANDO...",
+ "telemetryError": "Telemetría interrumpida",
+ "views": "Vistas",
+ "likes": "Me gusta",
+ "comments": "Com.",
+ "downloads": "Datos",
+ "playTime": "Duración"
+ }
+ },
+ "discover": {
+ "title": "Descubrir",
+ "subtitle": "Explora por género, etiqueta o playlist editorial",
+ "byGenre": "Por género",
+ "editorialPlaylists": "Playlists editoriales",
+ "noEditorialPlaylists": "No hay playlists editoriales disponibles por el momento",
+ "back": "Volver",
+ "noTracksInGenre": "No hay pistas en este género",
+ "browseGenre": "Explorar pistas de {{genre}}",
+ "trackCount": "{{count}} pistas"
},
"playlists": {
"title": "Playlists",
+ "pageTitle": "Playlists — Veza",
+ "subtitle": "Descubre y gestiona tus playlists",
"create": "Crear playlist",
+ "createButton": "Crear",
+ "createButtonMobile": "Nueva",
+ "createNewPlaylist": "Crear una nueva playlist",
+ "importButton": "Importar",
+ "selectButton": "Seleccionar",
+ "deselectButton": "Cancelar",
+ "enableSelection": "Activar selección",
+ "disableSelection": "Desactivar selección",
+ "searchPlaceholder": "Buscar playlists...",
+ "filtersButton": "Filtros",
+ "filtersActive": "Activo",
+ "clearFilters": "Borrar",
+ "filterVisibility": "Visibilidad",
+ "filterOwner": "Propietario",
+ "filterSortBy": "Ordenar por",
+ "sortToggle": "Cambiar orden",
+ "all": "Todo",
+ "myPlaylists": "Mis playlists",
+ "others": "Otros",
+ "sortByDate": "Fecha",
+ "sortByTitle": "Título",
+ "sortByTracks": "Pistas",
"edit": "Editar playlist",
"delete": "Eliminar playlist",
"follow": "Seguir",
@@ -504,10 +964,188 @@
"addCollaborator": "Añadir colaborador",
"removeCollaborator": "Quitar colaborador",
"noPlaylists": "No hay playlists disponibles",
+ "emptyTitle": "Aún no hay playlists",
+ "emptyDescription": "Comienza creando tu primera playlist para organizar tus pistas.",
"loading": "Cargando playlists...",
"tracks": "Pistas",
+ "trackListLabel": "Pistas de la playlist",
+ "trackItem": "Pista {{position}}: {{title}}",
"public": "Pública",
- "private": "Privada"
+ "private": "Privada",
+ "createDialog": {
+ "title": "Crear una playlist",
+ "titleLabel": "Título",
+ "titlePlaceholder": "Mi nueva playlist",
+ "titleRequired": "El título es obligatorio",
+ "descriptionLabel": "Descripción",
+ "descriptionPlaceholder": "Describe tu playlist...",
+ "publicPlaylist": "Playlist pública",
+ "cancel": "Cancelar creación de playlist",
+ "cancelButton": "Cancelar",
+ "submit": "Crear la playlist",
+ "submitButton": "Crear"
+ },
+ "shared": {
+ "playAll": "Reproducir todo",
+ "shuffle": "Aleatorio",
+ "copyLink": "Copiar enlace",
+ "linkCopied": "Enlace copiado al portapapeles",
+ "sharedPlaylist": "Playlist compartida",
+ "trackCount": "{{count}} pista",
+ "trackCount_other": "{{count}} pistas",
+ "notFound": "Playlist no encontrada",
+ "backToLibrary": "Volver a la biblioteca",
+ "noTracks": "No hay pistas en esta playlist",
+ "noTracksDescription": "Esta playlist compartida está vacía.",
+ "publicSignal": "Pública",
+ "encrypted": "Privada",
+ "updated": "Actualizada el {{date}}",
+ "followers": "{{count}} seguidores"
+ },
+ "detail": {
+ "reorder": "Reordenar",
+ "playTrack": "Reproducir {{title}}",
+ "pauseTrack": "Pausar {{title}}",
+ "coverAlt": "Portada de {{title}}",
+ "addToFavorites": "Añadir {{title}} a Favoritos",
+ "filterTracks": "Filtrar pistas...",
+ "addTracks": "Añadir pistas",
+ "squadMembers": "Miembros del grupo",
+ "invite": "Invitar",
+ "suggestedForYou": "Sugerencias para ti",
+ "recommendations": "Recomendaciones",
+ "trackAdded": "Pista añadida",
+ "trackRemoved": "Pista eliminada",
+ "reordered": "Reordenado",
+ "playlistReordered": "Playlist reordenada",
+ "reorderError": "No se pudo reordenar la playlist. Inténtalo de nuevo.",
+ "emptyTracks": "No hay pistas en esta playlist",
+ "emptyTracksDescription": "Añade pistas a esta playlist para comenzar.",
+ "loadingTracks": "Cargando pistas",
+ "loadingTracksProgress": "Cargando pistas..."
+ },
+ "actions": {
+ "groupLabel": "Acciones de la playlist",
+ "edit": "Editar",
+ "editPlaylist": "Editar playlist",
+ "saving": "Guardando...",
+ "saved": "Guardado",
+ "share": "Compartir",
+ "sharePlaylist": "Compartir playlist",
+ "delete": "Eliminar",
+ "deletePlaylist": "Eliminar playlist",
+ "deleteTitle": "Eliminar playlist",
+ "deleteConfirmation": "¿Estás seguro de que quieres eliminar \"{{title}}\"? Esta acción es irreversible. Todas las pistas de la playlist se eliminarán.",
+ "deleteConfirm": "Eliminar",
+ "deleteCancel": "Cancelar",
+ "updateSuccess": "Playlist actualizada con éxito",
+ "updateError": "Error al actualizar la playlist",
+ "deleteSuccess": "Playlist eliminada con éxito",
+ "deleteError": "Error al eliminar la playlist"
+ },
+ "editDialog": {
+ "title": "Editar playlist",
+ "save": "Guardar",
+ "saving": "Guardando...",
+ "cancel": "Cancelar",
+ "titleLabel": "Título",
+ "titlePlaceholder": "Título de la playlist",
+ "descriptionLabel": "Descripción",
+ "descriptionPlaceholder": "Descripción de la playlist",
+ "coverUrlLabel": "URL de la portada",
+ "isPublic": "Playlist pública",
+ "savingInProgress": "Guardando..."
+ },
+ "form": {
+ "editAriaLabel": "Formulario de edición de playlist",
+ "createAriaLabel": "Formulario de creación de playlist",
+ "titleLabel": "Título",
+ "titlePlaceholder": "Mi playlist",
+ "titleRequired": "El título es obligatorio",
+ "titleMaxLength": "El título no puede superar los 200 caracteres",
+ "descriptionLabel": "Descripción",
+ "descriptionPlaceholder": "Describe tu playlist...",
+ "descriptionMaxLength": "La descripción no puede superar los 2000 caracteres",
+ "coverUrlLabel": "URL de la portada",
+ "coverUrlMaxLength": "La URL no puede superar los 500 caracteres",
+ "coverUrlInvalid": "La URL de la portada debe ser válida",
+ "isPublic": "Playlist pública",
+ "cancel": "Cancelar",
+ "cancelEdit": "Cancelar edición",
+ "save": "Guardar",
+ "create": "Crear",
+ "saveChanges": "Guardar cambios",
+ "createPlaylist": "Crear playlist",
+ "updateSuccess": "Playlist actualizada con éxito",
+ "createSuccess": "Playlist creada con éxito",
+ "genericError": "Se produjo un error"
+ },
+ "duplicate": {
+ "button": "Duplicar",
+ "duplicating": "Duplicando...",
+ "ariaLabel": "Duplicar playlist",
+ "copySuffix": "{{title}} (copia)",
+ "success": "Playlist duplicada con éxito",
+ "error": "Error al duplicar la playlist"
+ },
+ "export": {
+ "button": "Exportar",
+ "exporting": "Exportando...",
+ "json": "Exportar como JSON",
+ "csv": "Exportar como CSV",
+ "m3u": "Exportar como M3U",
+ "success": "Playlist exportada en formato {{format}}",
+ "authRequired": "Debes iniciar sesión para exportar una playlist",
+ "forbidden": "No tienes permiso para exportar esta playlist",
+ "notFound": "Playlist no encontrada",
+ "error": "Error durante la exportación",
+ "genericError": "Se produjo un error durante la exportación"
+ },
+ "followBtn": {
+ "follow": "Seguir",
+ "following": "Siguiendo",
+ "unfollowing": "Dejando de seguir...",
+ "subscribing": "Siguiendo...",
+ "followSuccess": "Ahora sigues esta playlist",
+ "followError": "Error al seguir la playlist",
+ "unfollowSuccess": "Ya no sigues esta playlist",
+ "unfollowError": "Error al dejar de seguir la playlist"
+ }
+ },
+ "queue": {
+ "pageTitle": "Cola de reproducción — Veza",
+ "heading": "COLA DE REPRODUCCIÓN",
+ "tracksUpcoming_one": "{{count}} pista siguiente",
+ "tracksUpcoming_other": "{{count}} pistas siguientes",
+ "nowPlaying": "Reproduciendo ahora",
+ "upNext": "A continuación",
+ "emptyTitle": "Nada en tu cola",
+ "emptyDescription": "Reproduce música y añade pistas para llenar tu cola.",
+ "saveQueue": "Guardar cola",
+ "clear": "Vaciar",
+ "clearTitle": "Vaciar la cola",
+ "clearDescription": "Eliminar todas las pistas de tu cola. Esta acción no se puede deshacer.",
+ "clearConfirm": "Vaciar",
+ "removeFromQueue": "Quitar de la cola",
+ "reorderTrack": "Reordenar {{title}}",
+ "playTrack": "Reproducir {{title}}",
+ "pauseTrack": "Pausar {{title}}",
+ "emptyQueueError": "La cola está vacía",
+ "savedAs": "Cola guardada como \"{{name}}\"",
+ "saveAsPlaylist": {
+ "title": "Guardar cola como playlist",
+ "nameLabel": "Nombre de la playlist",
+ "namePlaceholder": "Mi sesión de cola",
+ "privatePlaylist": "Playlist privada",
+ "publicPlaylist": "Playlist pública",
+ "privateDescription": "Solo visible para ti",
+ "publicDescription": "Visible en tu perfil",
+ "toggleVisibility": "Cambiar visibilidad de la playlist",
+ "cancel": "Cancelar",
+ "save": "Guardar playlist",
+ "nameRequired": "Por favor, nombra tu playlist",
+ "saveFailed": "Error al guardar la playlist"
+ }
},
"notifications": {
"title": "Notificaciones",
@@ -525,13 +1163,35 @@
},
"search": {
"title": "Búsqueda",
+ "pageTitle": "Búsqueda — Veza",
+ "heading": "Búsqueda",
"placeholder": "Buscar pistas, playlists, usuarios...",
+ "searchPlaceholder": "Buscar pistas, artistas, playlists...",
+ "clearSearch": "Borrar búsqueda",
"results": "Resultados",
- "noResults": "No se encontraron resultados",
+ "resultsCount_one": "{{count}} resultado encontrado",
+ "resultsCount_other": "{{count}} resultados encontrados",
+ "allResults": "Todos los resultados",
+ "topTracks": "Mejores pistas",
"tracks": "Pistas",
+ "artists": "Artistas",
"playlists": "Playlists",
"users": "Usuarios",
- "all": "Todo"
+ "all": "Todo",
+ "noResults": "No se encontraron resultados",
+ "noResultsHint": "Intenta ajustar tu búsqueda o usa palabras clave diferentes.",
+ "noDescription": "Sin descripción",
+ "recentSearches": "Búsquedas recientes",
+ "clearHistory": "Borrar historial de búsqueda",
+ "helpText": "Usa AND, OR, NOT y \"frase exacta\" para refinar tu búsqueda.",
+ "discovery": {
+ "newReleases": "Novedades",
+ "newReleasesDesc": "Últimas pistas de tus artistas",
+ "curatedMixes": "Selecciones",
+ "curatedMixesDesc": "Selecciones hechas a mano para ti",
+ "exploreArtists": "Explorar artistas",
+ "exploreArtistsDesc": "Descubre artistas de la comunidad"
+ }
},
"analytics": {
"title": "Analíticas",
diff --git a/apps/web/src/locales/fr.json b/apps/web/src/locales/fr.json
index a1685d01e..1a5cff5f9 100644
--- a/apps/web/src/locales/fr.json
+++ b/apps/web/src/locales/fr.json
@@ -7,6 +7,7 @@
"delete": "Supprimer",
"confirm": "Confirmer",
"close": "Fermer",
+ "help": "Aide",
"back": "Retour",
"next": "Suivant",
"previous": "Précédent",
@@ -26,6 +27,8 @@
"register": "S'inscrire",
"email": "Email",
"password": "Mot de passe",
+ "showPassword": "Afficher le mot de passe",
+ "hidePassword": "Masquer le mot de passe",
"username": "Nom d'utilisateur",
"firstName": "Prénom",
"lastName": "Nom",
@@ -50,7 +53,8 @@
"notifications": "Notifications",
"retry": "Réessayer",
"retrying": "Nouvelle tentative...",
- "dismiss": "Fermer"
+ "dismiss": "Fermer",
+ "loadingAria": "Chargement en cours"
},
"auth": {
"login": {
@@ -63,29 +67,144 @@
"loginButton": "Se connecter",
"noAccount": "Pas encore de compte ?",
"createAccount": "Créer un compte",
+ "orContinueWith": "ou continuer avec",
+ "footerLink": "Pas encore de compte ? S'inscrire",
+ "oauthProvider": "Se connecter avec {{provider}}",
"errors": {
"invalidCredentials": "Email ou mot de passe incorrect",
"accountLocked": "Compte verrouillé",
- "emailNotVerified": "Email non vérifié"
+ "emailNotVerified": "Email non vérifié",
+ "emailRequired": "Email requis",
+ "emailInvalid": "Format email invalide",
+ "passwordRequired": "Mot de passe requis",
+ "connectionError": "Erreur de connexion. Vérifiez votre internet.",
+ "genericError": "Une erreur est survenue. Veuillez réessayer."
}
},
+ "twoFactor": {
+ "title": "Authentification à deux facteurs",
+ "subtitle": "Entrez le code de votre application d'authentification",
+ "backToSignIn": "Retour à la connexion",
+ "verificationCode": "Code de vérification",
+ "enterCode": "Entrez le code à 6 chiffres de votre application d'authentification pour continuer.",
+ "lostAccess": "Accès perdu ?",
+ "useBackupCode": "Utiliser un code de secours",
+ "useAuthenticator": "Utiliser le code d'authentification",
+ "backupCode": "Code de secours",
+ "verify": "Vérifier",
+ "verifying": "Vérification...",
+ "cancel": "Annuler",
+ "enterCodeError": "Veuillez entrer un code de vérification"
+ },
+ "layout": {
+ "pageLabel": "Page d'authentification",
+ "navLabel": "Navigation d'authentification"
+ },
"register": {
- "title": "Créer un compte",
- "subtitle": "Rejoignez la communauté Veza",
+ "title": "Inscription",
+ "subtitle": "Créez votre compte",
"firstName": "Prénom",
"lastName": "Nom",
"username": "Nom d'utilisateur",
"email": "Email",
"password": "Mot de passe",
"confirmPassword": "Confirmer le mot de passe",
- "registerButton": "Créer le compte",
+ "registerButton": "S'inscrire",
+ "loadingText": "Inscription en cours...",
"hasAccount": "Déjà un compte ?",
"loginLink": "Se connecter",
+ "footerLink": "Déjà un compte ? Se connecter",
+ "formAriaLabel": "Formulaire d'inscription",
"errors": {
+ "emailRequired": "Email requis",
+ "emailInvalid": "Email invalide",
+ "usernameRequired": "Nom d'utilisateur requis",
+ "usernameTooShort": "Le nom d'utilisateur doit contenir au moins 3 caractères",
+ "usernameUnavailable": "Ce nom d'utilisateur est déjà pris",
+ "passwordRequired": "Mot de passe requis",
+ "passwordTooShort": "Le mot de passe doit contenir au moins 12 caractères",
+ "passwordWeak": "Le mot de passe doit contenir majuscule, minuscule, chiffre et caractère spécial",
+ "confirmRequired": "Confirmation du mot de passe requise",
"passwordMismatch": "Les mots de passe ne correspondent pas",
"emailExists": "Cet email est déjà utilisé",
"usernameExists": "Ce nom d'utilisateur est déjà pris",
- "weakPassword": "Le mot de passe doit contenir au moins 8 caractères"
+ "weakPassword": "Le mot de passe doit contenir au moins 12 caractères",
+ "termsRequired": "Vous devez accepter les conditions d'utilisation et la politique de confidentialité"
+ },
+ "terms": {
+ "accept": "J'accepte les",
+ "termsOfService": "conditions d'utilisation",
+ "termsAriaLabel": "Lire les conditions d'utilisation",
+ "and": "et la",
+ "privacyPolicy": "politique de confidentialité",
+ "privacyAriaLabel": "Lire la politique de confidentialité",
+ "description": "Vous devez accepter les conditions d'utilisation et la politique de confidentialité pour créer un compte"
+ },
+ "usernameCheck": {
+ "checking": "Vérification...",
+ "available": "Ce nom d'utilisateur est disponible",
+ "unavailable": "Ce nom d'utilisateur est déjà pris"
+ },
+ "passwordStrength": {
+ "label": "Force du mot de passe : {{level}}",
+ "weak": "Faible",
+ "fair": "Correct",
+ "good": "Bon",
+ "strong": "Fort",
+ "reqLength": "Au moins 12 caractères ({{current}}/12)",
+ "reqCase": "Majuscule et minuscule",
+ "reqDigit": "Un chiffre",
+ "reqSpecial": "Un caractère spécial (!@#$%^&*...)"
+ },
+ "verification": {
+ "title": "Inscription réussie !",
+ "emailSent": "Un email de vérification a été envoyé à",
+ "checkInbox": "Veuillez vérifier votre boîte mail et cliquer sur le lien de vérification.",
+ "resendButton": "Renvoyer l'email de vérification",
+ "resendLoading": "Envoi en cours...",
+ "resendSuccess": "Email de vérification renvoyé avec succès !",
+ "resendError": "Impossible de renvoyer l'email. Veuillez réessayer."
+ }
+ },
+ "verifyEmail": {
+ "title": {
+ "verifying": "Vérification de l'email",
+ "success": "Email vérifié",
+ "error": "Vérification de l'email"
+ },
+ "subtitle": {
+ "verifying": "Vérification en cours...",
+ "success": "Votre email a été vérifié avec succès",
+ "error": "Une erreur s'est produite"
+ },
+ "message": {
+ "verifying": "Vérification de votre email en cours...",
+ "success": "Votre email a été vérifié avec succès !",
+ "invalidLink": "Lien de vérification invalide ou manquant",
+ "defaultError": "La vérification a échoué",
+ "resendSuccess": "Email de vérification envoyé ! Veuillez vérifier votre boîte mail.",
+ "emailNotFound": "Email non trouvé. Veuillez vous réinscrire ou contacter le support.",
+ "resendError": "Échec de l'envoi de l'email"
+ },
+ "button": {
+ "retry": "Réessayer",
+ "resend": "Renvoyer l'email de vérification",
+ "resendCooldown": "Renvoyer dans {{seconds}}s",
+ "resendCooldownAriaLabel": "Renvoyer l'email de vérification dans {{seconds}} secondes",
+ "resendAriaLabel": "Renvoyer l'email de vérification"
+ },
+ "success": {
+ "title": "Succès !",
+ "redirecting": "Vous allez être redirigé vers la page de connexion..."
+ },
+ "error": {
+ "title": "Erreur"
+ },
+ "srOnly": {
+ "verifying": "Vérification de votre email en cours, veuillez patienter"
+ },
+ "footer": {
+ "backToLogin": "Retour à la connexion"
}
},
"forgotPassword": {
@@ -94,16 +213,135 @@
"email": "Email",
"sendButton": "Envoyer le lien",
"backToLogin": "Retour à la connexion",
- "success": "Email de réinitialisation envoyé"
+ "success": "Email de réinitialisation envoyé",
+ "successTitle": "Vérifiez votre email",
+ "successBody": "Si un compte avec cette adresse email existe, nous avons envoyé les instructions de réinitialisation.",
+ "checkInbox": "Veuillez vérifier votre boîte mail et cliquer sur le lien pour réinitialiser votre mot de passe.",
+ "resendButton": "Renvoyer l'email",
+ "formAriaLabel": "Formulaire de réinitialisation de mot de passe",
+ "pageTitle": "Mot de passe oublié - Veza",
+ "errors": {
+ "emailRequired": "Email requis",
+ "emailInvalid": "Format d'email invalide"
+ }
+ },
+ "resetPassword": {
+ "title": "Réinitialiser le mot de passe",
+ "subtitle": "Entrez votre nouveau mot de passe",
+ "pageTitle": "Réinitialisation mot de passe - Veza",
+ "password": "Nouveau mot de passe",
+ "confirmPassword": "Confirmer le mot de passe",
+ "submitButton": "Réinitialiser le mot de passe",
+ "backToLogin": "Retour à la connexion",
+ "requestNewLink": "Demander un nouveau lien",
+ "formAriaLabel": "Formulaire de réinitialisation de mot de passe",
+ "invalidToken": {
+ "title": "Lien de réinitialisation invalide",
+ "subtitle": "Le lien de réinitialisation est invalide ou a expiré",
+ "heading": "Lien invalide",
+ "body": "Le lien de réinitialisation est invalide ou a expiré. Veuillez demander un nouveau lien."
+ },
+ "success": {
+ "title": "Mot de passe réinitialisé",
+ "subtitle": "Votre mot de passe a été modifié avec succès",
+ "heading": "Succès !",
+ "body": "Votre mot de passe a été réinitialisé avec succès.",
+ "redirecting": "Vous allez être redirigé vers la page de connexion dans {{seconds}}s..."
+ },
+ "errors": {
+ "passwordRequired": "Mot de passe requis",
+ "passwordTooShort": "Le mot de passe doit contenir au moins 8 caractères",
+ "confirmRequired": "Confirmation du mot de passe requise",
+ "passwordMismatch": "Les mots de passe ne correspondent pas"
+ }
}
},
+ "landing": {
+ "nav": {
+ "product": "PRODUIT",
+ "platform": "PLATEFORME",
+ "login": "CONNEXION",
+ "ariaLabel": "Navigation principale"
+ },
+ "hero": {
+ "tagline1": "Matériel audio professionnel — ouvert, réparable, transparent.",
+ "tagline2": "Plateforme musicale éthique — sans tracking, sans algorithme.",
+ "cta": "Lancement bientôt — Rejoins les premiers",
+ "placeholder": "ton@email.com",
+ "submit": "REJOINDRE",
+ "discover": "DÉCOUVRIR"
+ },
+ "values": {
+ "kicker": "三つの柱",
+ "title": "Trois engagements",
+ "card1": {
+ "title": "Hardware Ouvert",
+ "desc": "Schémas publiés sous licence CERN-OHL. Tu peux construire, réparer et améliorer chaque composant. Pas d'obsolescence programmée."
+ },
+ "card2": {
+ "title": "Plateforme Éthique",
+ "desc": "Zéro tracking comportemental. Zéro algorithme de manipulation. Flux chronologique. Données privées. Code open-source (AGPL-3.0)."
+ },
+ "card3": {
+ "title": "Communauté Artiste",
+ "desc": "Streaming, marketplace, chat en temps réel, playlists collaboratives. Rémunération transparente. Les artistes contrôlent leur musique."
+ }
+ },
+ "product": {
+ "kicker": "Premier produit",
+ "title": "Microphone Condensateur",
+ "desc": "Large diaphragme. Préampli OPA1642. Corps aluminium usiné. Schémas publiés, composants standards, guide de réparation inclus. Garantie 5 ans.",
+ "feat1": "Schémas KiCAD publiés — CERN-OHL-W",
+ "feat2": "Réparable — pas de colle, composants standards",
+ "feat3": "Fabriqué en France — sourcing documenté",
+ "feat4": "~150 € — transparence totale des coûts",
+ "cta": "ÊTRE NOTIFIÉ DU LANCEMENT"
+ },
+ "platform": {
+ "kicker": "La plateforme",
+ "subtitle": "墨 STREAMING — DU MICRO À L'AUDITEUR",
+ "streaming": "Streaming HLS",
+ "community": "Communauté",
+ "marketplace": "Marketplace",
+ "privacy": "Vie privée",
+ "openSource": "Open source",
+ "zeroTracking": "Zéro tracking",
+ "stats": "435 000 lignes de code. Audit de sécurité externe. 34 suites de tests. Backend Go + Stream server Rust + Frontend React. Auto-hébergé. Pas de cloud. Pas de VC."
+ },
+ "notify": {
+ "title": "Rejoins les premiers",
+ "desc": "Inscris-toi pour être notifié du lancement. Pas de spam — un seul email le jour J.",
+ "submit": "ME NOTIFIER",
+ "placeholder": "ton@email.com",
+ "ariaLabel": "Adresse email pour notification de lancement"
+ },
+ "form": {
+ "successHero": "Inscription confirmée. À bientôt.",
+ "successCta": "Inscription confirmée. À bientôt.",
+ "errorSubscription": "L'inscription a échoué",
+ "errorGeneric": "Une erreur est survenue",
+ "loadingAriaLabel": "Envoi en cours..."
+ },
+ "footer": {
+ "openSource": "Open Source",
+ "privacy": "Confidentialité",
+ "contact": "Contact",
+ "tagline": "TECHNOLOGIE AUDIO ÉTHIQUE — FAIT EN FRANCE"
+ },
+ "pageTitle": "TALAS — Matériel audio éthique & Plateforme"
+ },
"feed": {
"title": "Feed",
"subtitle": "Derniers morceaux de vos artistes",
"emptyTitle": "Votre feed est vide",
"emptyDescription": "Suivez des artistes pour voir leurs nouveaux morceaux ici.",
"newReleasesInGenres": "Nouvelles sorties dans vos genres",
- "followedArtists": "Artistes suivis"
+ "followedArtists": "Artistes suivis",
+ "noNewTracks": "Pas de nouveaux morceaux",
+ "suggestedAccounts": "Comptes suggérés",
+ "followers_one": "{{count}} abonné",
+ "followers_other": "{{count}} abonnés",
+ "seeAll": "Voir tout"
},
"dashboard": {
"title": "Tableau de bord",
@@ -156,6 +394,13 @@
"goBack": "Retour",
"stayTuned": "Restez à l'écoute — nous vous informerons dès que ce sera prêt."
},
+ "designSystem": {
+ "pageTitle": "Design System — Veza",
+ "title": "Design System",
+ "subtitle": "Bibliothèque de composants et référence visuelle",
+ "underConstruction": "Cette page est en construction. Les composants seront présentés ici prochainement.",
+ "backToHome": "Retour à l'accueil"
+ },
"player": {
"miniPlayerAriaLabel": "Mini lecteur audio",
"expandPlayer": "Agrandir le lecteur",
@@ -217,6 +462,22 @@
"description": "Téléversez votre premier titre ou créez une playlist pour commencer.",
"uploadButton": "Téléverser un fichier",
"uploadTrack": "Téléverser un titre"
+ },
+ "new": "Nouveau",
+ "searchPlaceholder": "Rechercher...",
+ "table": {
+ "label": "Liste de mes pistes",
+ "title": "Titre",
+ "artist": "Artiste",
+ "date": "Date",
+ "duration": "Durée",
+ "download": "Télécharger",
+ "delete": "Supprimer",
+ "moreOptions": "Plus d'options pour {{title}}"
+ },
+ "grid": {
+ "label": "Grille de pistes de la bibliothèque",
+ "play": "Lire {{title}}"
}
},
"profile": {
@@ -245,6 +506,58 @@
"bioPlaceholder": "Parlez-nous de vous..."
}
},
+ "profilePublic": {
+ "pageTitle": "{{displayName}} — Veza",
+ "about": "À propos",
+ "noBio": "Systèmes en ligne. Aucune bio disponible.",
+ "links": "Liens",
+ "joined": "Membre depuis {{date}}",
+ "tabs": {
+ "tracks": "Morceaux",
+ "playlists": "Playlists",
+ "reposts": "Reposts",
+ "feed": "Fil"
+ },
+ "stats": {
+ "tracks": "Morceaux",
+ "playlists": "Playlists",
+ "followers": "Abonnés",
+ "following": "Abonnements"
+ },
+ "empty": {
+ "noTracks": "Pas encore de morceaux",
+ "noTracksDesc": "Cet utilisateur n'a pas encore de morceaux publics.",
+ "noPlaylists": "Pas encore de playlists",
+ "noPlaylistsDesc": "Aucune playlist publique trouvée pour cet utilisateur.",
+ "noPosts": "Pas encore de publications",
+ "noPostsDesc": "Cet utilisateur n'a pas encore publié.",
+ "noReposts": "Pas encore de reposts",
+ "noRepostsDesc": "Cet utilisateur n'a pas encore reposté de morceaux."
+ },
+ "reposted": "Reposté",
+ "unknownArtist": "Artiste inconnu",
+ "error": {
+ "notFound": "Utilisateur introuvable",
+ "notFoundDesc": "Le signal s'est perdu dans le vide. Nous n'avons pas trouvé le profil recherché.",
+ "generic": "Une erreur est survenue",
+ "genericDesc": "Impossible de charger ce profil. Vérifiez votre connexion et réessayez.",
+ "tryAgain": "Réessayer",
+ "returnToBase": "Retour à la base"
+ },
+ "private": {
+ "title": "Profil privé",
+ "description": "Ce profil est masqué. Son contenu n'est pas visible."
+ },
+ "follow": {
+ "follow": "Suivre",
+ "following": "Abonné",
+ "subscribing": "Abonnement...",
+ "unsubscribing": "Désabonnement...",
+ "followSuccess": "Vous suivez maintenant cet utilisateur",
+ "unfollowSuccess": "Vous ne suivez plus cet utilisateur"
+ },
+ "loading": "Chargement du profil"
+ },
"settings": {
"title": "Paramètres",
"subtitle": "Gérez vos préférences et paramètres de compte",
@@ -485,11 +798,150 @@
"genre": "Genre",
"year": "Année",
"plays": "Lectures",
- "likes": "J'aime"
+ "likes": "J'aime",
+ "grid": {
+ "label": "Grille de pistes",
+ "track": "Piste : {{title}}",
+ "play": "Lire {{title}}",
+ "pause": "Pause {{title}}",
+ "coverAlt": "Pochette de {{title}}",
+ "moreOptions": "Plus d'options pour {{title}}",
+ "nowPlaying": "En lecture",
+ "densityCompact": "Compact",
+ "densityDefault": "Standard",
+ "densityLarge": "Grand"
+ },
+ "detail": {
+ "back": "Retour",
+ "addToQueue": "Ajouter à la file",
+ "addedToQueue": "Ajouté à la file",
+ "listenTogether": "Écouter ensemble",
+ "edit": "Modifier",
+ "startListening": "Commencer l'écoute",
+ "close": "Fermer",
+ "listenTogetherHelp": "Partagez ce lien avec vos amis pour écouter ensemble. La lecture sera synchronisée.",
+ "shareLink": "Lien de partage",
+ "couldNotCreateSession": "Impossible de créer la session d'écoute",
+ "linkCopied": "Lien copié dans le presse-papiers",
+ "linkCopyFailed": "Échec de la copie du lien",
+ "playsLabel": "Lectures",
+ "likesLabel": "J'aime",
+ "format": "Format",
+ "bitrate": "Débit",
+ "sampleRate": "Fréquence d'échantillonnage",
+ "bpm": "BPM",
+ "key": "Tonalité",
+ "tags": "Tags",
+ "uploaded": "Téléversé",
+ "discussion": "Discussion",
+ "analytics": "Statistiques",
+ "history": "Historique",
+ "lyrics": "Paroles",
+ "stems": "Stems",
+ "performanceData": "Données de performance",
+ "versionHistory": "Historique des versions",
+ "notFound": "Piste introuvable",
+ "failedToLoad": "Échec du chargement de la piste",
+ "goBack": "Retour"
+ },
+ "commentSection": {
+ "title": "Commentaires",
+ "titleWithCount": "Commentaires ({{count}})",
+ "placeholder": "Écrire un commentaire...",
+ "empty": "Aucun commentaire pour le moment. Soyez le premier à commenter !",
+ "publishError": "Erreur lors de la publication",
+ "publishSuccess": "Commentaire publié",
+ "loginToComment": "Connectez-vous pour commenter",
+ "loadError": "Échec du chargement des commentaires"
+ },
+ "repost": {
+ "reposted": "Track ajouté à votre profil",
+ "repostFailed": "Échec du repost",
+ "unreposted": "Repost retiré",
+ "unrepostFailed": "Échec de l'annulation du repost",
+ "repostAction": "Reposter sur votre profil",
+ "unrepostAction": "Retirer le repost"
+ },
+ "likeAction": {
+ "added": "Ajouté aux favoris",
+ "addFailed": "Échec de l'ajout aux favoris",
+ "removed": "Retiré des favoris",
+ "removeFailed": "Échec de la suppression des favoris"
+ },
+ "shareDialog": {
+ "title": "Partager la piste",
+ "creatingLink": "Création du lien de partage...",
+ "shareLink": "Lien de partage",
+ "expiresIn": "Ce lien expire dans 7 jour(s)",
+ "close": "Fermer",
+ "copyLink": "Copier le lien",
+ "createFailed": "Échec de la création du lien de partage",
+ "linkCopied": "Lien copié dans le presse-papiers",
+ "linkCopyFailed": "Échec de la copie du lien"
+ },
+ "lyricsSection": {
+ "title": "Paroles",
+ "loadError": "Impossible de charger les paroles.",
+ "empty": "Aucune parole disponible pour cette piste.",
+ "showLess": "Voir moins",
+ "showMore": "Voir plus"
+ },
+ "stemsSection": {
+ "title": "Stems",
+ "upload": "Téléverser",
+ "loading": "Chargement des stems...",
+ "loadError": "Échec du chargement des stems.",
+ "empty": "Aucun stem disponible.",
+ "uploadHelp": "Téléversez des stems (WAV, AIFF, FLAC) pour les partager avec vos collaborateurs."
+ },
+ "stats": {
+ "scanning": "ANALYSE...",
+ "telemetryError": "Télémétrie interrompue",
+ "views": "Vues",
+ "likes": "J'aime",
+ "comments": "Comm.",
+ "downloads": "Données",
+ "playTime": "Durée"
+ }
+ },
+ "discover": {
+ "title": "Découvrir",
+ "subtitle": "Explorez par genre, tag ou playlist éditoriale",
+ "byGenre": "Par genre",
+ "editorialPlaylists": "Playlists éditoriales",
+ "noEditorialPlaylists": "Aucune playlist éditoriale disponible pour le moment",
+ "back": "Retour",
+ "noTracksInGenre": "Aucune piste dans ce genre",
+ "browseGenre": "Parcourir les pistes {{genre}}",
+ "trackCount": "{{count}} pistes"
},
"playlists": {
"title": "Playlists",
+ "pageTitle": "Playlists — Veza",
+ "subtitle": "Découvrez et gérez vos playlists",
"create": "Créer une playlist",
+ "createButton": "Créer",
+ "createButtonMobile": "Nouvelle",
+ "createNewPlaylist": "Créer une nouvelle playlist",
+ "importButton": "Importer",
+ "selectButton": "Sélectionner",
+ "deselectButton": "Annuler",
+ "enableSelection": "Activer la sélection",
+ "disableSelection": "Désactiver la sélection",
+ "searchPlaceholder": "Rechercher des playlists...",
+ "filtersButton": "Filtres",
+ "filtersActive": "Actif",
+ "clearFilters": "Effacer",
+ "filterVisibility": "Visibilité",
+ "filterOwner": "Propriétaire",
+ "filterSortBy": "Trier par",
+ "sortToggle": "Inverser l'ordre de tri",
+ "all": "Tout",
+ "myPlaylists": "Mes playlists",
+ "others": "Autres",
+ "sortByDate": "Date",
+ "sortByTitle": "Titre",
+ "sortByTracks": "Pistes",
"edit": "Modifier la playlist",
"delete": "Supprimer la playlist",
"follow": "Suivre",
@@ -503,10 +955,188 @@
"addCollaborator": "Ajouter un collaborateur",
"removeCollaborator": "Retirer un collaborateur",
"noPlaylists": "Aucune playlist disponible",
+ "emptyTitle": "Aucune playlist pour le moment",
+ "emptyDescription": "Commencez par créer votre première playlist pour organiser vos morceaux.",
"loading": "Chargement des playlists...",
"tracks": "Pistes",
+ "trackListLabel": "Pistes de la playlist",
+ "trackItem": "Piste {{position}} : {{title}}",
"public": "Publique",
- "private": "Privée"
+ "private": "Privée",
+ "createDialog": {
+ "title": "Créer une playlist",
+ "titleLabel": "Titre",
+ "titlePlaceholder": "Ma nouvelle playlist",
+ "titleRequired": "Le titre est requis",
+ "descriptionLabel": "Description",
+ "descriptionPlaceholder": "Décrivez votre playlist...",
+ "publicPlaylist": "Playlist publique",
+ "cancel": "Annuler la création de playlist",
+ "cancelButton": "Annuler",
+ "submit": "Créer la playlist",
+ "submitButton": "Créer"
+ },
+ "shared": {
+ "playAll": "Tout lire",
+ "shuffle": "Aléatoire",
+ "copyLink": "Copier le lien",
+ "linkCopied": "Lien copié dans le presse-papiers",
+ "sharedPlaylist": "Playlist partagée",
+ "trackCount": "{{count}} piste",
+ "trackCount_other": "{{count}} pistes",
+ "notFound": "Playlist introuvable",
+ "backToLibrary": "Retour à la bibliothèque",
+ "noTracks": "Aucune piste dans cette playlist",
+ "noTracksDescription": "Cette playlist partagée est vide.",
+ "publicSignal": "Publique",
+ "encrypted": "Privée",
+ "updated": "Mis à jour le {{date}}",
+ "followers": "{{count}} abonnés"
+ },
+ "detail": {
+ "reorder": "Réorganiser",
+ "playTrack": "Lire {{title}}",
+ "pauseTrack": "Mettre en pause {{title}}",
+ "coverAlt": "Pochette de {{title}}",
+ "addToFavorites": "Ajouter {{title}} aux favoris",
+ "filterTracks": "Filtrer les pistes...",
+ "addTracks": "Ajouter des pistes",
+ "squadMembers": "Membres du groupe",
+ "invite": "Inviter",
+ "suggestedForYou": "Suggestions pour vous",
+ "recommendations": "Recommandations",
+ "trackAdded": "Piste ajoutée",
+ "trackRemoved": "Piste retirée",
+ "reordered": "Réorganisé",
+ "playlistReordered": "Playlist réorganisée",
+ "reorderError": "Impossible de réorganiser la playlist. Veuillez réessayer.",
+ "emptyTracks": "Aucune piste dans cette playlist",
+ "emptyTracksDescription": "Ajoutez des pistes à cette playlist pour commencer.",
+ "loadingTracks": "Chargement des pistes",
+ "loadingTracksProgress": "Chargement des pistes en cours..."
+ },
+ "actions": {
+ "groupLabel": "Actions de la playlist",
+ "edit": "Modifier",
+ "editPlaylist": "Modifier la playlist",
+ "saving": "Enregistrement...",
+ "saved": "Enregistré",
+ "share": "Partager",
+ "sharePlaylist": "Partager la playlist",
+ "delete": "Supprimer",
+ "deletePlaylist": "Supprimer la playlist",
+ "deleteTitle": "Supprimer la playlist",
+ "deleteConfirmation": "Êtes-vous sûr de vouloir supprimer « {{title}} » ? Cette action est irréversible. Tous les titres de la playlist seront retirés.",
+ "deleteConfirm": "Supprimer",
+ "deleteCancel": "Annuler",
+ "updateSuccess": "Playlist mise à jour avec succès",
+ "updateError": "Erreur lors de la mise à jour",
+ "deleteSuccess": "Playlist supprimée avec succès",
+ "deleteError": "Erreur lors de la suppression"
+ },
+ "editDialog": {
+ "title": "Modifier la playlist",
+ "save": "Enregistrer",
+ "saving": "Enregistrement...",
+ "cancel": "Annuler",
+ "titleLabel": "Titre",
+ "titlePlaceholder": "Titre de la playlist",
+ "descriptionLabel": "Description",
+ "descriptionPlaceholder": "Description de la playlist",
+ "coverUrlLabel": "URL de la couverture",
+ "isPublic": "Playlist publique",
+ "savingInProgress": "Enregistrement en cours..."
+ },
+ "form": {
+ "editAriaLabel": "Formulaire de modification de playlist",
+ "createAriaLabel": "Formulaire de création de playlist",
+ "titleLabel": "Titre",
+ "titlePlaceholder": "Ma playlist",
+ "titleRequired": "Le titre est requis",
+ "titleMaxLength": "Le titre ne peut pas dépasser 200 caractères",
+ "descriptionLabel": "Description",
+ "descriptionPlaceholder": "Décrivez votre playlist...",
+ "descriptionMaxLength": "La description ne peut pas dépasser 2000 caractères",
+ "coverUrlLabel": "URL de la couverture",
+ "coverUrlMaxLength": "L'URL ne peut pas dépasser 500 caractères",
+ "coverUrlInvalid": "L'URL de la couverture doit être valide",
+ "isPublic": "Playlist publique",
+ "cancel": "Annuler",
+ "cancelEdit": "Annuler la modification",
+ "save": "Enregistrer",
+ "create": "Créer",
+ "saveChanges": "Enregistrer les modifications",
+ "createPlaylist": "Créer la playlist",
+ "updateSuccess": "Playlist mise à jour avec succès",
+ "createSuccess": "Playlist créée avec succès",
+ "genericError": "Une erreur est survenue"
+ },
+ "duplicate": {
+ "button": "Dupliquer",
+ "duplicating": "Duplication...",
+ "ariaLabel": "Dupliquer la playlist",
+ "copySuffix": "{{title}} (copie)",
+ "success": "Playlist dupliquée avec succès",
+ "error": "Erreur lors de la duplication de la playlist"
+ },
+ "export": {
+ "button": "Exporter",
+ "exporting": "Export...",
+ "json": "Exporter en JSON",
+ "csv": "Exporter en CSV",
+ "m3u": "Exporter en M3U",
+ "success": "La playlist a été exportée en format {{format}}",
+ "authRequired": "Vous devez être connecté pour exporter une playlist",
+ "forbidden": "Vous n'avez pas la permission d'exporter cette playlist",
+ "notFound": "Playlist non trouvée",
+ "error": "Erreur lors de l'export",
+ "genericError": "Une erreur est survenue lors de l'export"
+ },
+ "followBtn": {
+ "follow": "Suivre",
+ "following": "Abonné",
+ "unfollowing": "Désabonnement...",
+ "subscribing": "Abonnement...",
+ "followSuccess": "Vous suivez maintenant cette playlist",
+ "followError": "Erreur lors de l'abonnement à la playlist",
+ "unfollowSuccess": "Vous ne suivez plus cette playlist",
+ "unfollowError": "Erreur lors du désabonnement de la playlist"
+ }
+ },
+ "queue": {
+ "pageTitle": "File de lecture — Veza",
+ "heading": "FILE DE LECTURE",
+ "tracksUpcoming_one": "{{count}} morceau suivant",
+ "tracksUpcoming_other": "{{count}} morceaux suivants",
+ "nowPlaying": "En cours de lecture",
+ "upNext": "Suivants",
+ "emptyTitle": "Rien dans votre file de lecture",
+ "emptyDescription": "Lancez la musique et ajoutez des morceaux pour remplir votre file.",
+ "saveQueue": "Sauvegarder la file",
+ "clear": "Vider",
+ "clearTitle": "Vider la file de lecture",
+ "clearDescription": "Supprimer tous les morceaux de votre file de lecture. Cette action est irréversible.",
+ "clearConfirm": "Vider",
+ "removeFromQueue": "Retirer de la file",
+ "reorderTrack": "Réordonner {{title}}",
+ "playTrack": "Lire {{title}}",
+ "pauseTrack": "Mettre en pause {{title}}",
+ "emptyQueueError": "La file de lecture est vide",
+ "savedAs": "File sauvegardée sous \"{{name}}\"",
+ "saveAsPlaylist": {
+ "title": "Sauvegarder la file en playlist",
+ "nameLabel": "Nom de la playlist",
+ "namePlaceholder": "Ma session de file",
+ "privatePlaylist": "Playlist privée",
+ "publicPlaylist": "Playlist publique",
+ "privateDescription": "Visible uniquement par vous",
+ "publicDescription": "Visible sur votre profil",
+ "toggleVisibility": "Changer la visibilité de la playlist",
+ "cancel": "Annuler",
+ "save": "Sauvegarder la playlist",
+ "nameRequired": "Veuillez nommer votre playlist",
+ "saveFailed": "Échec de la sauvegarde de la playlist"
+ }
},
"notifications": {
"title": "Notifications",
@@ -524,13 +1154,35 @@
},
"search": {
"title": "Recherche",
+ "pageTitle": "Recherche — Veza",
+ "heading": "Recherche",
"placeholder": "Rechercher des pistes, playlists, utilisateurs...",
+ "searchPlaceholder": "Rechercher des morceaux, artistes, playlists...",
+ "clearSearch": "Effacer la recherche",
"results": "Résultats",
- "noResults": "Aucun résultat trouvé",
+ "resultsCount_one": "{{count}} résultat trouvé",
+ "resultsCount_other": "{{count}} résultats trouvés",
+ "allResults": "Tous les résultats",
+ "topTracks": "Meilleurs morceaux",
"tracks": "Pistes",
+ "artists": "Artistes",
"playlists": "Playlists",
"users": "Utilisateurs",
- "all": "Tout"
+ "all": "Tout",
+ "noResults": "Aucun résultat trouvé",
+ "noResultsHint": "Essayez d'ajuster votre recherche ou utilisez des mots-clés différents.",
+ "noDescription": "Aucune description",
+ "recentSearches": "Recherches récentes",
+ "clearHistory": "Effacer l'historique de recherche",
+ "helpText": "Utilisez AND, OR, NOT et \"expression exacte\" pour affiner votre recherche.",
+ "discovery": {
+ "newReleases": "Nouveautés",
+ "newReleasesDesc": "Derniers morceaux de vos artistes",
+ "curatedMixes": "Sélections",
+ "curatedMixesDesc": "Sélections triées sur le volet pour vous",
+ "exploreArtists": "Explorer les artistes",
+ "exploreArtistsDesc": "Découvrez les artistes de la communauté"
+ }
},
"analytics": {
"title": "Analytiques",
diff --git a/package-lock.json b/package-lock.json
index 3d3dc0101..5595c548f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -41,6 +41,7 @@
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-slot": "^1.2.4",
"@sentry/react": "^10.32.1",
+ "@storybook/addon-mcp": "^0.4.2",
"@tanstack/react-query": "^5.17.0",
"@tanstack/react-virtual": "^3.13.12",
"axios": "^1.13.5",
@@ -69,11 +70,12 @@
},
"devDependencies": {
"@openapitools/openapi-generator-cli": "^2.27.0",
- "@storybook/addon-a11y": "^8.6.15",
- "@storybook/addon-essentials": "^8.6.15",
- "@storybook/addon-interactions": "^8.6.15",
- "@storybook/builder-vite": "^8.6.15",
- "@storybook/react-vite": "^8.6.15",
+ "@storybook/addon-a11y": "^10.3.3",
+ "@storybook/addon-docs": "^10.3.3",
+ "@storybook/addon-vitest": "^10.3.3",
+ "@storybook/blocks": "^8.6.14",
+ "@storybook/builder-vite": "^10.3.3",
+ "@storybook/react-vite": "^10.3.3",
"@tailwindcss/postcss": "^4.0.0",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^14.2.1",
@@ -100,6 +102,7 @@
"eslint-plugin-react": "^7.37.0",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.5",
+ "eslint-plugin-storybook": "10.3.3",
"husky": "^9.1.7",
"jsdom": "^24.0.0",
"msw": "^2.11.2",
@@ -108,7 +111,7 @@
"pngjs": "^7.0.0",
"prettier": "^3.2.5",
"rollup-plugin-visualizer": "^6.0.5",
- "storybook": "^8.6.15",
+ "storybook": "^10.3.3",
"storybook-dark-mode": "^4.0.2",
"swagger-ui-dist": "^5.31.0",
"swagger-ui-react": "^5.31.0",
@@ -119,40 +122,6 @@
"vitest": "^3.2.4"
}
},
- "apps/web/node_modules/@joshwooding/vite-plugin-react-docgen-typescript": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.5.0.tgz",
- "integrity": "sha512-qYDdL7fPwLRI+bJNurVcis+tNgJmvWjH4YTBGXTA8xMuxFrnAz6E5o35iyzyKbq5J5Lr8mJGfrR5GXl+WGwhgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "glob": "^10.0.0",
- "magic-string": "^0.27.0",
- "react-docgen-typescript": "^2.2.2"
- },
- "peerDependencies": {
- "typescript": ">= 4.3.x",
- "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "apps/web/node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/magic-string": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
- "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.13"
- },
- "engines": {
- "node": ">=12"
- }
- },
"apps/web/node_modules/@remix-run/router": {
"version": "1.23.2",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz",
@@ -162,15 +131,37 @@
"node": ">=14.0.0"
}
},
- "apps/web/node_modules/@storybook/builder-vite": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.6.15.tgz",
- "integrity": "sha512-9Y05/ndZE6/eI7ZIUCD/QtH2htRIUs9j1gxE6oW0zRo9TJO1iqxfLNwgzd59KEkId7gdZxPei0l+LGTUGXYKRg==",
+ "apps/web/node_modules/@storybook/addon-a11y": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-10.3.3.tgz",
+ "integrity": "sha512-1yELCE8NXUJKcfS2k97pujtVw4z95PCwyoy2I6VAPiG/nRnJI8M6ned08YmCMEJhLBgGA1+GBh9HO4uk+xPcYA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@storybook/csf-plugin": "8.6.15",
- "browser-assert": "^1.2.1",
+ "@storybook/global": "^5.0.0",
+ "axe-core": "^4.2.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "storybook": "^10.3.3"
+ }
+ },
+ "apps/web/node_modules/@storybook/addon-docs": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.3.3.tgz",
+ "integrity": "sha512-trJQTpOtuOEuNv1Rn8X2Sopp5hSPpb0u0soEJ71BZAbxe4d2Y1d/1MYcxBdRKwncum6sCTsnxTpqQ/qvSJKlTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@mdx-js/react": "^3.0.0",
+ "@storybook/csf-plugin": "10.3.3",
+ "@storybook/icons": "^2.0.1",
+ "@storybook/react-dom-shim": "10.3.3",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"ts-dedent": "^2.0.0"
},
"funding": {
@@ -178,149 +169,400 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
- "storybook": "^8.6.15",
- "vite": "^4.0.0 || ^5.0.0 || ^6.0.0"
+ "storybook": "^10.3.3"
}
},
- "apps/web/node_modules/@storybook/react": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.6.15.tgz",
- "integrity": "sha512-hdnhlJg+YkpPMOw2hvK7+mhdxAbguA+TFTIAzVV9CeUYoHDIZAsgeKVhRmgZGN20NGjRN5ZcwkplAMJnF9v+6w==",
+ "apps/web/node_modules/@storybook/addon-docs/node_modules/@storybook/csf-plugin": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.3.3.tgz",
+ "integrity": "sha512-Utlh7zubm+4iOzBBfzLW4F4vD99UBtl2Do4edlzK2F7krQIcFvR2ontjAE8S1FQVLZAC3WHalCOS+Ch8zf3knA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@storybook/components": "8.6.15",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "8.6.15",
- "@storybook/preview-api": "8.6.15",
- "@storybook/react-dom-shim": "8.6.15",
- "@storybook/theming": "8.6.15"
- },
- "engines": {
- "node": ">=18.0.0"
+ "unplugin": "^2.3.5"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
- "@storybook/test": "8.6.15",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
- "storybook": "^8.6.15",
- "typescript": ">= 4.2.x"
+ "esbuild": "*",
+ "rollup": "*",
+ "storybook": "^10.3.3",
+ "vite": "*",
+ "webpack": "*"
},
"peerDependenciesMeta": {
- "@storybook/test": {
+ "esbuild": {
"optional": true
},
- "typescript": {
+ "rollup": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "apps/web/node_modules/@storybook/addon-docs/node_modules/@storybook/icons": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz",
+ "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "apps/web/node_modules/@storybook/addon-docs/node_modules/@storybook/react-dom-shim": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.3.3.tgz",
+ "integrity": "sha512-lkhuh4G3UTreU9M3Iz5Dt32c6U+l/4XuvqLtbe1sDHENZH6aPj7y0b5FwnfHyvuTvYRhtbo29xZrF5Bp9kCC0w==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "storybook": "^10.3.3"
+ }
+ },
+ "apps/web/node_modules/@storybook/addon-mcp": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-mcp/-/addon-mcp-0.4.2.tgz",
+ "integrity": "sha512-vFIhpOrk9mzBivnuDBdw+2V45LCWpAXnJtZzWtELA+Vd5mU5U7CikKgFZuSarISX4nMJ+gETfjZijWC0qPzH6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@storybook/mcp": "0.6.1",
+ "@tmcp/adapter-valibot": "^0.1.4",
+ "@tmcp/transport-http": "^0.8.0",
+ "picoquery": "^2.5.0",
+ "tmcp": "^1.16.0",
+ "valibot": "1.2.0"
+ },
+ "peerDependencies": {
+ "@storybook/addon-vitest": "^9.1.16 || ^10.0.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0",
+ "storybook": "^9.1.16 || ^10.0.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@storybook/addon-vitest": {
+ "optional": true
+ }
+ }
+ },
+ "apps/web/node_modules/@storybook/addon-vitest": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-vitest/-/addon-vitest-10.3.3.tgz",
+ "integrity": "sha512-9bbUAgraZhHh35WuWJn/83B0KvkcsP8dNpzbhssMeWQTfu92TR3DqRNeGTNSlyZvhbGfwiwT3TfBzzM4dX1feg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@storybook/global": "^5.0.0",
+ "@storybook/icons": "^2.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "@vitest/browser": "^3.0.0 || ^4.0.0",
+ "@vitest/browser-playwright": "^4.0.0",
+ "@vitest/runner": "^3.0.0 || ^4.0.0",
+ "storybook": "^10.3.3",
+ "vitest": "^3.0.0 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/browser-playwright": {
+ "optional": true
+ },
+ "@vitest/runner": {
+ "optional": true
+ },
+ "vitest": {
+ "optional": true
+ }
+ }
+ },
+ "apps/web/node_modules/@storybook/addon-vitest/node_modules/@storybook/icons": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz",
+ "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "apps/web/node_modules/@storybook/builder-vite": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.3.3.tgz",
+ "integrity": "sha512-awspKCTZvXyeV3KabL0id62mFbxR5u/5yyGQultwCiSb2/yVgBfip2MAqLyS850pvTiB6QFVM9deOyd2/G/bEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@storybook/csf-plugin": "10.3.3",
+ "ts-dedent": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "storybook": "^10.3.3",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "apps/web/node_modules/@storybook/builder-vite/node_modules/@storybook/csf-plugin": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.3.3.tgz",
+ "integrity": "sha512-Utlh7zubm+4iOzBBfzLW4F4vD99UBtl2Do4edlzK2F7krQIcFvR2ontjAE8S1FQVLZAC3WHalCOS+Ch8zf3knA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "unplugin": "^2.3.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "esbuild": "*",
+ "rollup": "*",
+ "storybook": "^10.3.3",
+ "vite": "*",
+ "webpack": "*"
+ },
+ "peerDependenciesMeta": {
+ "esbuild": {
+ "optional": true
+ },
+ "rollup": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ },
+ "webpack": {
"optional": true
}
}
},
"apps/web/node_modules/@storybook/react-vite": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.6.15.tgz",
- "integrity": "sha512-9st+2NCemzzBwmindpDrRLEqYJmwwd2RnXMoj+Wt4Y1r4MGoRe1l837ciT2tmstaqekY2mVUSYd6879NzeeMYw==",
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-10.3.3.tgz",
+ "integrity": "sha512-qHdlBe1hjqFAGXa8JL7bWTLbP/gDqXbWDm+SYCB646NHh5yvVDkZLwigP5Y+UL7M2ASfqFtosnroUK9tcCM2dw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@joshwooding/vite-plugin-react-docgen-typescript": "0.5.0",
+ "@joshwooding/vite-plugin-react-docgen-typescript": "^0.6.4",
"@rollup/pluginutils": "^5.0.2",
- "@storybook/builder-vite": "8.6.15",
- "@storybook/react": "8.6.15",
- "find-up": "^5.0.0",
+ "@storybook/builder-vite": "10.3.3",
+ "@storybook/react": "10.3.3",
+ "empathic": "^2.0.0",
"magic-string": "^0.30.0",
- "react-docgen": "^7.0.0",
+ "react-docgen": "^8.0.0",
"resolve": "^1.22.8",
"tsconfig-paths": "^4.2.0"
},
- "engines": {
- "node": ">=18.0.0"
- },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
- "@storybook/test": "8.6.15",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
- "storybook": "^8.6.15",
- "vite": "^4.0.0 || ^5.0.0 || ^6.0.0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "storybook": "^10.3.3",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "apps/web/node_modules/@storybook/react-vite/node_modules/@joshwooding/vite-plugin-react-docgen-typescript": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.6.4.tgz",
+ "integrity": "sha512-6PyZBYKnnVNqOSB0YFly+62R7dmov8segT27A+RVTBVd4iAE6kbW9QBJGlyR2yG4D4ohzhZSTIu7BK1UTtmFFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "glob": "^13.0.1",
+ "react-docgen-typescript": "^2.2.2"
+ },
+ "peerDependencies": {
+ "typescript": ">= 4.3.x",
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
},
"peerDependenciesMeta": {
- "@storybook/test": {
+ "typescript": {
"optional": true
}
}
},
+ "apps/web/node_modules/@storybook/react-vite/node_modules/@storybook/react": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.3.3.tgz",
+ "integrity": "sha512-cGG5TbR8Tdx9zwlpsWyBEfWrejm5iWdYF26EwIhwuKq9GFUTAVrQzo0Rs7Tqc3ZyVhRS/YfsRiWSEH+zmq2JiQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@storybook/global": "^5.0.0",
+ "@storybook/react-dom-shim": "10.3.3",
+ "react-docgen": "^8.0.2",
+ "react-docgen-typescript": "^2.2.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "storybook": "^10.3.3",
+ "typescript": ">= 4.9.x"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "apps/web/node_modules/@storybook/react-vite/node_modules/@storybook/react/node_modules/@storybook/react-dom-shim": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.3.3.tgz",
+ "integrity": "sha512-lkhuh4G3UTreU9M3Iz5Dt32c6U+l/4XuvqLtbe1sDHENZH6aPj7y0b5FwnfHyvuTvYRhtbo29xZrF5Bp9kCC0w==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "storybook": "^10.3.3"
+ }
+ },
+ "apps/web/node_modules/@storybook/react-vite/node_modules/react-docgen-typescript": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz",
+ "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "typescript": ">= 4.3.x"
+ }
+ },
"apps/web/node_modules/@types/node": {
- "version": "20.19.27",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz",
- "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==",
+ "version": "20.19.37",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.37.tgz",
+ "integrity": "sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
}
},
+ "apps/web/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
"apps/web/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "apps/web/node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
+ "balanced-match": "^4.0.2"
},
"engines": {
- "node": ">=6.0.0"
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "apps/web/node_modules/eslint-plugin-storybook": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.3.3.tgz",
+ "integrity": "sha512-jo8wZvKaJlxxrNvf4hCsROJP3CdlpaLiYewAs5Ww+PJxCrLelIi5XVHWOAgBvvr3H9WDKvUw8xuvqPYqAlpkFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/utils": "^8.48.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=8",
+ "storybook": "^10.3.3"
}
},
"apps/web/node_modules/glob": {
- "version": "10.5.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
- "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "version": "13.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
+ "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
+ "minimatch": "^10.2.2",
+ "minipass": "^7.1.3",
+ "path-scurry": "^2.0.2"
},
- "bin": {
- "glob": "dist/esm/bin.mjs"
+ "engines": {
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "apps/web/node_modules/minimatch": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
- "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
+ "apps/web/node_modules/lru-cache": {
+ "version": "11.2.7",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
+ "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "apps/web/node_modules/minimatch": {
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^2.0.2"
+ "brace-expansion": "^5.0.2"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "apps/web/node_modules/path-scurry": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
+ "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -359,28 +601,6 @@
"node": ">=14.19.0"
}
},
- "apps/web/node_modules/react-docgen": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-7.1.1.tgz",
- "integrity": "sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.18.9",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9",
- "@types/babel__core": "^7.18.0",
- "@types/babel__traverse": "^7.18.0",
- "@types/doctrine": "^0.0.9",
- "@types/resolve": "^1.20.2",
- "doctrine": "^3.0.0",
- "resolve": "^1.22.1",
- "strip-indent": "^4.0.0"
- },
- "engines": {
- "node": ">=16.14.0"
- }
- },
"apps/web/node_modules/react-router-dom": {
"version": "6.30.3",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz",
@@ -434,25 +654,81 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "apps/web/node_modules/strip-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz",
- "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==",
+ "apps/web/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=10"
}
},
- "apps/web/node_modules/undici-types": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
- "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "apps/web/node_modules/storybook": {
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.3.3.tgz",
+ "integrity": "sha512-tMoRAts9EVqf+mEMPLC6z1DPyHbcPe+CV1MhLN55IKsl0HxNjvVGK44rVPSePbltPE6vIsn4bdRj6CCUt8SJwQ==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "@storybook/global": "^5.0.0",
+ "@storybook/icons": "^2.0.1",
+ "@testing-library/jest-dom": "^6.9.1",
+ "@testing-library/user-event": "^14.6.1",
+ "@vitest/expect": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0",
+ "open": "^10.2.0",
+ "recast": "^0.23.5",
+ "semver": "^7.7.3",
+ "use-sync-external-store": "^1.5.0",
+ "ws": "^8.18.0"
+ },
+ "bin": {
+ "storybook": "dist/bin/dispatcher.js"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "prettier": "^2 || ^3"
+ },
+ "peerDependenciesMeta": {
+ "prettier": {
+ "optional": true
+ }
+ }
+ },
+ "apps/web/node_modules/storybook/node_modules/@storybook/icons": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz",
+ "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "apps/web/node_modules/unplugin": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz",
+ "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "acorn": "^8.15.0",
+ "picomatch": "^4.0.3",
+ "webpack-virtual-modules": "^0.6.2"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ }
},
"node_modules/@adobe/css-tools": {
"version": "4.4.4",
@@ -871,448 +1147,6 @@
"@playwright/test": "^1.0.0"
}
},
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
- "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/android-arm": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
- "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/android-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
- "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/android-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
- "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
- "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/darwin-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
- "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
- "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
- "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-arm": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
- "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
- "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-ia32": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
- "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-loong64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
- "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
- "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
- "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
- "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-s390x": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
- "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/linux-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
- "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
- "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
- "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
- "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
- "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/openharmony-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
- "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/sunos-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
- "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/win32-arm64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
- "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/win32-ia32": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
- "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@esbuild/win32-x64": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
- "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/@chromatic-com/playwright/node_modules/@storybook/addon-actions": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.5.8.tgz",
@@ -1534,48 +1368,6 @@
}
}
},
- "node_modules/@chromatic-com/playwright/node_modules/@storybook/core": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.5.8.tgz",
- "integrity": "sha512-OT02DQhkGpBgn5P+nZOZmbzxqubC4liVqbhpjp/HOGi5cOA3+fCJzDJeSDTu+pPh7dZnopC4XnR+5dWjtOJHdA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/csf": "0.1.12",
- "better-opn": "^3.0.2",
- "browser-assert": "^1.2.1",
- "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0",
- "esbuild-register": "^3.5.0",
- "jsdoc-type-pratt-parser": "^4.0.0",
- "process": "^0.11.10",
- "recast": "^0.23.5",
- "semver": "^7.6.2",
- "util": "^0.12.5",
- "ws": "^8.2.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "prettier": "^2 || ^3"
- },
- "peerDependenciesMeta": {
- "prettier": {
- "optional": true
- }
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/@storybook/csf": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.12.tgz",
- "integrity": "sha512-9/exVhabisyIVL0VxTCxo01Tdm8wefIXKXfltAPTSr8cbLn5JAxGQ6QV3mjdecLGEOucfoVhAKtJfVHxEK1iqw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^2.19.0"
- }
- },
"node_modules/@chromatic-com/playwright/node_modules/@storybook/csf-plugin": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.5.8.tgz",
@@ -1593,20 +1385,6 @@
"storybook": "^8.5.8"
}
},
- "node_modules/@chromatic-com/playwright/node_modules/@storybook/manager-api": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.5.8.tgz",
- "integrity": "sha512-ik3yikvYxAJMDFg0s3Pm7hZWucAlkFaaO7e2RlfOctaJFdaEi3evR4RS7GdmS38uKBEk31RC7x+nnIJkqEC59A==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
- }
- },
"node_modules/@chromatic-com/playwright/node_modules/@storybook/react-dom-shim": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.5.8.tgz",
@@ -1630,115 +1408,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@chromatic-com/playwright/node_modules/esbuild": {
- "version": "0.25.12",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
- "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.12",
- "@esbuild/android-arm": "0.25.12",
- "@esbuild/android-arm64": "0.25.12",
- "@esbuild/android-x64": "0.25.12",
- "@esbuild/darwin-arm64": "0.25.12",
- "@esbuild/darwin-x64": "0.25.12",
- "@esbuild/freebsd-arm64": "0.25.12",
- "@esbuild/freebsd-x64": "0.25.12",
- "@esbuild/linux-arm": "0.25.12",
- "@esbuild/linux-arm64": "0.25.12",
- "@esbuild/linux-ia32": "0.25.12",
- "@esbuild/linux-loong64": "0.25.12",
- "@esbuild/linux-mips64el": "0.25.12",
- "@esbuild/linux-ppc64": "0.25.12",
- "@esbuild/linux-riscv64": "0.25.12",
- "@esbuild/linux-s390x": "0.25.12",
- "@esbuild/linux-x64": "0.25.12",
- "@esbuild/netbsd-arm64": "0.25.12",
- "@esbuild/netbsd-x64": "0.25.12",
- "@esbuild/openbsd-arm64": "0.25.12",
- "@esbuild/openbsd-x64": "0.25.12",
- "@esbuild/openharmony-arm64": "0.25.12",
- "@esbuild/sunos-x64": "0.25.12",
- "@esbuild/win32-arm64": "0.25.12",
- "@esbuild/win32-ia32": "0.25.12",
- "@esbuild/win32-x64": "0.25.12"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/storybook": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.5.8.tgz",
- "integrity": "sha512-k3QDa7z4a656oO3Mx929KNm+xIdEI2nIDCKatVl1mA6vt+ge+uwoiG+ro182J9LOEppR5XXD2mQQi4u1xNsy6A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/core": "8.5.8"
- },
- "bin": {
- "getstorybook": "bin/index.cjs",
- "sb": "bin/index.cjs",
- "storybook": "bin/index.cjs"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "prettier": "^2 || ^3"
- },
- "peerDependenciesMeta": {
- "prettier": {
- "optional": true
- }
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@chromatic-com/playwright/node_modules/util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "which-typed-array": "^1.1.2"
- }
- },
"node_modules/@chromaui/rrweb-snapshot": {
"version": "2.0.0-alpha.18-noAbsolute",
"resolved": "https://registry.npmjs.org/@chromaui/rrweb-snapshot/-/rrweb-snapshot-2.0.0-alpha.18-noAbsolute.tgz",
@@ -1918,9 +1587,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz",
- "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz",
+ "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==",
"cpu": [
"ppc64"
],
@@ -1930,15 +1599,14 @@
"os": [
"aix"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz",
- "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz",
+ "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==",
"cpu": [
"arm"
],
@@ -1948,15 +1616,14 @@
"os": [
"android"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz",
- "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz",
+ "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==",
"cpu": [
"arm64"
],
@@ -1966,15 +1633,14 @@
"os": [
"android"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz",
- "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz",
+ "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==",
"cpu": [
"x64"
],
@@ -1984,15 +1650,14 @@
"os": [
"android"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz",
- "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz",
+ "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==",
"cpu": [
"arm64"
],
@@ -2002,15 +1667,14 @@
"os": [
"darwin"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz",
- "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz",
+ "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==",
"cpu": [
"x64"
],
@@ -2020,15 +1684,14 @@
"os": [
"darwin"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz",
- "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==",
"cpu": [
"arm64"
],
@@ -2038,15 +1701,14 @@
"os": [
"freebsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz",
- "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz",
+ "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==",
"cpu": [
"x64"
],
@@ -2056,15 +1718,14 @@
"os": [
"freebsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz",
- "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz",
+ "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==",
"cpu": [
"arm"
],
@@ -2074,15 +1735,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz",
- "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz",
+ "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==",
"cpu": [
"arm64"
],
@@ -2092,15 +1752,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz",
- "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz",
+ "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==",
"cpu": [
"ia32"
],
@@ -2110,15 +1769,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz",
- "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz",
+ "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==",
"cpu": [
"loong64"
],
@@ -2128,15 +1786,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz",
- "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz",
+ "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==",
"cpu": [
"mips64el"
],
@@ -2146,15 +1803,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz",
- "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz",
+ "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==",
"cpu": [
"ppc64"
],
@@ -2164,15 +1820,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz",
- "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz",
+ "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==",
"cpu": [
"riscv64"
],
@@ -2182,15 +1837,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz",
- "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz",
+ "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==",
"cpu": [
"s390x"
],
@@ -2200,15 +1854,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz",
- "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz",
+ "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==",
"cpu": [
"x64"
],
@@ -2218,15 +1871,14 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz",
- "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==",
"cpu": [
"arm64"
],
@@ -2236,15 +1888,14 @@
"os": [
"netbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz",
- "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==",
"cpu": [
"x64"
],
@@ -2254,15 +1905,14 @@
"os": [
"netbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz",
- "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==",
"cpu": [
"arm64"
],
@@ -2272,15 +1922,14 @@
"os": [
"openbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz",
- "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==",
"cpu": [
"x64"
],
@@ -2290,15 +1939,14 @@
"os": [
"openbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openharmony-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz",
- "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz",
+ "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==",
"cpu": [
"arm64"
],
@@ -2308,15 +1956,14 @@
"os": [
"openharmony"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz",
- "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz",
+ "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==",
"cpu": [
"x64"
],
@@ -2326,15 +1973,14 @@
"os": [
"sunos"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz",
- "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz",
+ "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==",
"cpu": [
"arm64"
],
@@ -2344,15 +1990,14 @@
"os": [
"win32"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz",
- "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz",
+ "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==",
"cpu": [
"ia32"
],
@@ -2362,15 +2007,14 @@
"os": [
"win32"
],
- "peer": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz",
- "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz",
+ "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==",
"cpu": [
"x64"
],
@@ -2380,7 +2024,6 @@
"os": [
"win32"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -2663,26 +2306,6 @@
}
}
},
- "node_modules/@inquirer/core/node_modules/cli-width": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
- "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/@inquirer/core/node_modules/mute-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
- "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
"node_modules/@inquirer/external-editor": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz",
@@ -2820,13 +2443,13 @@
}
},
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
- "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "ansi-regex": "^6.2.2"
},
"engines": {
"node": ">=12"
@@ -3236,9 +2859,9 @@
}
},
"node_modules/@openapitools/openapi-generator-cli/node_modules/brace-expansion": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
- "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3248,19 +2871,6 @@
"node": "18 || 20 || >=22"
}
},
- "node_modules/@openapitools/openapi-generator-cli/node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@openapitools/openapi-generator-cli/node_modules/cli-width": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
@@ -3389,25 +2999,15 @@
}
},
"node_modules/@openapitools/openapi-generator-cli/node_modules/lru-cache": {
- "version": "11.2.4",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz",
- "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==",
+ "version": "11.2.7",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
+ "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
"node": "20 || >=22"
}
},
- "node_modules/@openapitools/openapi-generator-cli/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/@openapitools/openapi-generator-cli/node_modules/minimatch": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
@@ -3431,26 +3031,10 @@
"dev": true,
"license": "ISC"
},
- "node_modules/@openapitools/openapi-generator-cli/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@openapitools/openapi-generator-cli/node_modules/path-scurry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
- "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
+ "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
@@ -3458,7 +3042,7 @@
"minipass": "^7.1.2"
},
"engines": {
- "node": "20 || >=22"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -3475,37 +3059,6 @@
"url": "https://opencollective.com/express"
}
},
- "node_modules/@openapitools/openapi-generator-cli/node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@openapitools/openapi-generator-cli/node_modules/rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
- "node_modules/@openapitools/openapi-generator-cli/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/@openapitools/openapi-generator-cli/node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -3604,42 +3157,10 @@
"node": ">=18"
}
},
- "node_modules/@puppeteer/browsers/node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@puppeteer/browsers/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@puppeteer/browsers/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -3649,91 +3170,6 @@
"node": ">=10"
}
},
- "node_modules/@puppeteer/browsers/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@radix-ui/primitive": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
@@ -4728,250 +4164,10 @@
"integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
"license": "MIT"
},
- "node_modules/@storybook/addon-a11y": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.6.15.tgz",
- "integrity": "sha512-hNSI28z1PCu7/mQ+skVHX+PvLwnLLiM4d+Ecr0hhZLJDwa5JoZrnszSrCoGadSzaRe270kwjYoEwgX9MGXaxrA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/addon-highlight": "8.6.15",
- "@storybook/global": "^5.0.0",
- "@storybook/test": "8.6.15",
- "axe-core": "^4.2.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-actions": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.6.15.tgz",
- "integrity": "sha512-zc600PBJqP9hCyRY5escKgKf6Zt9kdNZfm+Jwb46k5/NMSO4tNVeOPGBFxW9kSsIYk8j55sNske+Yh60G+8bcw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "@types/uuid": "^9.0.1",
- "dequal": "^2.0.2",
- "polished": "^4.2.2",
- "uuid": "^9.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/@types/uuid": {
- "version": "9.0.8",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
- "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@storybook/addon-backgrounds": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.6.15.tgz",
- "integrity": "sha512-W36uEzMWPO/K3+8vV1R/GozdaFrIix0qqmxX0qoAT6/o4+zqHiloZkTF+2iuUTx/VmuztLcAoSaPDh8UPy3Q+g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-controls": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.6.15.tgz",
- "integrity": "sha512-CgV8WqGxQrqSKs1a/Y1v4mrsBJXGFmO5u4kvdhPbftRVfln11W4Hvc1SFmgXwGvmcwekAKH79Uwwkjhj3l6gzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "dequal": "^2.0.2",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-docs": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.6.15.tgz",
- "integrity": "sha512-Nm5LlxwAmGQRkCUY36FhtCLz21C+5XlydF7/bkBOHsf08p2xR5MNLMSPrIhte/PY7ne9viNUCm1d3d3LiWnkKg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@mdx-js/react": "^3.0.0",
- "@storybook/blocks": "8.6.15",
- "@storybook/csf-plugin": "8.6.15",
- "@storybook/react-dom-shim": "8.6.15",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-essentials": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.6.15.tgz",
- "integrity": "sha512-BIcE/7t5WXDXs4+zycm7MLNPHA2219ImkKO70IH7uxGM4cm7jDuJ5v0crkAvNeeRVsZixT2P2L9EfUfi1cFCQg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/addon-actions": "8.6.15",
- "@storybook/addon-backgrounds": "8.6.15",
- "@storybook/addon-controls": "8.6.15",
- "@storybook/addon-docs": "8.6.15",
- "@storybook/addon-highlight": "8.6.15",
- "@storybook/addon-measure": "8.6.15",
- "@storybook/addon-outline": "8.6.15",
- "@storybook/addon-toolbars": "8.6.15",
- "@storybook/addon-viewport": "8.6.15",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-highlight": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.6.15.tgz",
- "integrity": "sha512-lOu44QTVw5nR8kzag0ukxWnLq48oy2MqMUDuMVFQWPBKX8ayhmgl2OiEcvAOVNsieTHrr2W4CkP7FFvF4D0vlg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-interactions": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.6.15.tgz",
- "integrity": "sha512-9qgu7jbPjzFm44UF57D6puK+/86maE26gY+06Thz1NpTBCjVIl2fTZ/CA00iXb5+12f3JmSF0w3XEjsqcrzd3w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "@storybook/instrumenter": "8.6.15",
- "@storybook/test": "8.6.15",
- "polished": "^4.2.2",
- "ts-dedent": "^2.2.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-measure": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.6.15.tgz",
- "integrity": "sha512-F78fJlmuXMulTphFp9Iqx7I1GsbmNLboChnW/VqR6nRZx5o9cdGjc8IaEyXVFXZ7k1pnSvdaP5ndFmzkcPxQdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-outline": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.6.15.tgz",
- "integrity": "sha512-rpGRLajsjBdpbggPmdNZbftF68zQwsYLosu7YiUSBaR4dm+gQ+7m5nLLI/MjZDHbt2nJRW94yXpn7dUw2CDF6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-toolbars": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.6.15.tgz",
- "integrity": "sha512-NfHAbOOu5qI9SQq6jJr2VfinaZpHrmz3bavBeUppxCxM+zfPuNudK8MlMOOuyPBPAoUqcDSoKZgNfCkOBQcyGg==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/addon-viewport": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.6.15.tgz",
- "integrity": "sha512-ylTK4sehAeVTwcYMZyisyP3xX+m43NjJrQHKc3DAII3Z3RFqTv9l6CUMogM2/8mysTzoo8xYVtQB6hX7zB8Dew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
"node_modules/@storybook/blocks": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.6.15.tgz",
- "integrity": "sha512-nc5jQkvPo0EirteHsrmcx9on/0lGQ8F4lUNky7kN2I5WM8Frr3cPTeRoAvzjUkOwrqt/vm3g+T4zSbmDq/OEDA==",
+ "version": "8.6.14",
+ "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.6.14.tgz",
+ "integrity": "sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4985,7 +4181,7 @@
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "storybook": "^8.6.15"
+ "storybook": "^8.6.14"
},
"peerDependenciesMeta": {
"react": {
@@ -5069,9 +4265,9 @@
}
},
"node_modules/@storybook/components": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.6.15.tgz",
- "integrity": "sha512-+9GVKXPEW8Kl9zvNSTm9+VrJtx/puMZiO7gxCML63nK4aTWJXHQr4t9YUoGammSBM3AV1JglsKm6dBgJEeCoiA==",
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.5.8.tgz",
+ "integrity": "sha512-PPEMqWPXn7rX+qISaOOv9CDSuuvG538f0+4M5Ppq2LwpjXecgOG5ktqJF0ZqxmTytT+RpEaJmgjGW0dMAKZswA==",
"dev": true,
"license": "MIT",
"funding": {
@@ -5083,13 +4279,13 @@
}
},
"node_modules/@storybook/core": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.15.tgz",
- "integrity": "sha512-VFpKcphNurJpSC4fpUfKL3GTXVoL53oytghGR30QIw5jKWwaT50HVbTyb41BLOUuZjmMhUQA8weiQEew6RX0gw==",
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.5.8.tgz",
+ "integrity": "sha512-OT02DQhkGpBgn5P+nZOZmbzxqubC4liVqbhpjp/HOGi5cOA3+fCJzDJeSDTu+pPh7dZnopC4XnR+5dWjtOJHdA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@storybook/theming": "8.6.15",
+ "@storybook/csf": "0.1.12",
"better-opn": "^3.0.2",
"browser-assert": "^1.2.1",
"esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0",
@@ -5158,7 +4354,6 @@
"os": [
"aix"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5176,7 +4371,6 @@
"os": [
"android"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5194,7 +4388,6 @@
"os": [
"android"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5212,7 +4405,6 @@
"os": [
"android"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5230,7 +4422,6 @@
"os": [
"darwin"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5248,7 +4439,6 @@
"os": [
"darwin"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5266,7 +4456,6 @@
"os": [
"freebsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5284,7 +4473,6 @@
"os": [
"freebsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5302,7 +4490,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5320,7 +4507,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5338,7 +4524,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5356,7 +4541,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5374,7 +4558,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5392,7 +4575,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5410,7 +4592,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5428,7 +4609,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5446,7 +4626,6 @@
"os": [
"linux"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5464,7 +4643,6 @@
"os": [
"netbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5482,7 +4660,6 @@
"os": [
"netbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5500,7 +4677,6 @@
"os": [
"openbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5518,7 +4694,6 @@
"os": [
"openbsd"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5536,7 +4711,6 @@
"os": [
"openharmony"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5554,7 +4728,6 @@
"os": [
"sunos"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5572,7 +4745,6 @@
"os": [
"win32"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5590,7 +4762,6 @@
"os": [
"win32"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5608,7 +4779,6 @@
"os": [
"win32"
],
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -5656,9 +4826,9 @@
}
},
"node_modules/@storybook/core/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -5682,21 +4852,27 @@
"which-typed-array": "^1.1.2"
}
},
- "node_modules/@storybook/csf-plugin": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.6.15.tgz",
- "integrity": "sha512-ZLz/mtOoE1Jj2lE4pK3U7MmYrv5+lot3mGtwxGb832tcABMc97j9O+reCVxZYc7DeFbBuuEdMT9rBL/O3kXYmw==",
+ "node_modules/@storybook/csf": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.12.tgz",
+ "integrity": "sha512-9/exVhabisyIVL0VxTCxo01Tdm8wefIXKXfltAPTSr8cbLn5JAxGQ6QV3mjdecLGEOucfoVhAKtJfVHxEK1iqw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "unplugin": "^1.3.1"
+ "type-fest": "^2.19.0"
+ }
+ },
+ "node_modules/@storybook/csf/node_modules/type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=12.20"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@storybook/global": {
@@ -5720,66 +4896,10 @@
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta"
}
},
- "node_modules/@storybook/instrumenter": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.6.15.tgz",
- "integrity": "sha512-TvHR/+yyIAOp/1bLulFai2kkhIBtAlBw7J6Jd9DKyInoGhTWNE1G1Y61jD5GWXX29AlwaHfzGUaX5NL1K+FJpg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "@vitest/utils": "^2.1.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/instrumenter/node_modules/@vitest/pretty-format": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz",
- "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@storybook/instrumenter/node_modules/@vitest/utils": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz",
- "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "2.1.9",
- "loupe": "^3.1.2",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@storybook/instrumenter/node_modules/tinyrainbow": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/@storybook/manager-api": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.6.15.tgz",
- "integrity": "sha512-ZOFtH821vFcwzECbFYFTKtSVO96Cvwwg45dMh3M/9bZIdN7klsloX7YNKw8OKvwE6XLFLsi2OvsNNcmTW6g88w==",
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.5.8.tgz",
+ "integrity": "sha512-ik3yikvYxAJMDFg0s3Pm7hZWucAlkFaaO7e2RlfOctaJFdaEi3evR4RS7GdmS38uKBEk31RC7x+nnIJkqEC59A==",
"dev": true,
"license": "MIT",
"funding": {
@@ -5790,6 +4910,18 @@
"storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
}
},
+ "node_modules/@storybook/mcp": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/@storybook/mcp/-/mcp-0.6.1.tgz",
+ "integrity": "sha512-fdVJ3Br9/7Taj/sMCeM0jXM5rwdBbsRoh+nz8krMJj+Cj1vzfXRewkeadjt1Bg0q5UcV/0CSOHwj0QI8S5TIgA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tmcp/adapter-valibot": "^0.1.4",
+ "@tmcp/transport-http": "^0.8.0",
+ "tmcp": "^1.16.0",
+ "valibot": "1.2.0"
+ }
+ },
"node_modules/@storybook/preset-server-webpack": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@storybook/preset-server-webpack/-/preset-server-webpack-8.5.8.tgz",
@@ -5815,36 +4947,6 @@
"storybook": "^8.5.8"
}
},
- "node_modules/@storybook/preview-api": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.6.15.tgz",
- "integrity": "sha512-oqsp8f7QekB9RzpDqOXZQcPPRXXd/mTsnZSdAAQB/pBVqUpC9h/y5hgovbYnJ6DWXcpODbMwH+wbJHZu5lvm+w==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
- }
- },
- "node_modules/@storybook/react-dom-shim": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.6.15.tgz",
- "integrity": "sha512-m2trBmmd4iom1qwrp1F109zjRDc0cPaHYhDQxZR4Qqdz8pYevYJTlipDbH/K4NVB6Rn687RT29OoOPfJh6vkFA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
- "storybook": "^8.6.15"
- }
- },
"node_modules/@storybook/server": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@storybook/server/-/server-8.5.8.tgz",
@@ -5894,44 +4996,6 @@
"storybook": "^8.5.8"
}
},
- "node_modules/@storybook/server/node_modules/@storybook/components": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.5.8.tgz",
- "integrity": "sha512-PPEMqWPXn7rX+qISaOOv9CDSuuvG538f0+4M5Ppq2LwpjXecgOG5ktqJF0ZqxmTytT+RpEaJmgjGW0dMAKZswA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
- }
- },
- "node_modules/@storybook/server/node_modules/@storybook/csf": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.12.tgz",
- "integrity": "sha512-9/exVhabisyIVL0VxTCxo01Tdm8wefIXKXfltAPTSr8cbLn5JAxGQ6QV3mjdecLGEOucfoVhAKtJfVHxEK1iqw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^2.19.0"
- }
- },
- "node_modules/@storybook/server/node_modules/@storybook/manager-api": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.5.8.tgz",
- "integrity": "sha512-ik3yikvYxAJMDFg0s3Pm7hZWucAlkFaaO7e2RlfOctaJFdaEi3evR4RS7GdmS38uKBEk31RC7x+nnIJkqEC59A==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
- }
- },
"node_modules/@storybook/server/node_modules/@storybook/preview-api": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.5.8.tgz",
@@ -5946,7 +5010,7 @@
"storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
}
},
- "node_modules/@storybook/server/node_modules/@storybook/theming": {
+ "node_modules/@storybook/theming": {
"version": "8.5.8",
"resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.5.8.tgz",
"integrity": "sha512-/Rm6BV778sCT+3Ok861VYmw9BlEV5zcCq2zg5TOVuk8HqZw7H7VHtubVsjukEuhveYCs+oF+i2tv/II6jh6jdg==",
@@ -5960,210 +5024,6 @@
"storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
}
},
- "node_modules/@storybook/server/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@storybook/test": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.6.15.tgz",
- "integrity": "sha512-EwquDRUDVvWcZds3T2abmB5wSN/Vattal4YtZ6fpBlIUqONV4o/cOBX39cFfQSUCBrIXIjQ6RmapQCHK/PvBYw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@storybook/global": "^5.0.0",
- "@storybook/instrumenter": "8.6.15",
- "@testing-library/dom": "10.4.0",
- "@testing-library/jest-dom": "6.5.0",
- "@testing-library/user-event": "14.5.2",
- "@vitest/expect": "2.0.5",
- "@vitest/spy": "2.0.5"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.6.15"
- }
- },
- "node_modules/@storybook/test/node_modules/@testing-library/dom": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
- "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.10.4",
- "@babel/runtime": "^7.12.5",
- "@types/aria-query": "^5.0.1",
- "aria-query": "5.3.0",
- "chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.9",
- "lz-string": "^1.5.0",
- "pretty-format": "^27.0.2"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@storybook/test/node_modules/@testing-library/jest-dom": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz",
- "integrity": "sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@adobe/css-tools": "^4.4.0",
- "aria-query": "^5.0.0",
- "chalk": "^3.0.0",
- "css.escape": "^1.5.1",
- "dom-accessibility-api": "^0.6.3",
- "lodash": "^4.17.21",
- "redent": "^3.0.0"
- },
- "engines": {
- "node": ">=14",
- "npm": ">=6",
- "yarn": ">=1"
- }
- },
- "node_modules/@storybook/test/node_modules/@testing-library/jest-dom/node_modules/chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@storybook/test/node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
- "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@storybook/test/node_modules/@testing-library/user-event": {
- "version": "14.5.2",
- "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz",
- "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12",
- "npm": ">=6"
- },
- "peerDependencies": {
- "@testing-library/dom": ">=7.21.4"
- }
- },
- "node_modules/@storybook/test/node_modules/@vitest/expect": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.5.tgz",
- "integrity": "sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/spy": "2.0.5",
- "@vitest/utils": "2.0.5",
- "chai": "^5.1.1",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@storybook/test/node_modules/@vitest/pretty-format": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz",
- "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@storybook/test/node_modules/@vitest/spy": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.5.tgz",
- "integrity": "sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyspy": "^3.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@storybook/test/node_modules/@vitest/utils": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.5.tgz",
- "integrity": "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "2.0.5",
- "estree-walker": "^3.0.3",
- "loupe": "^3.1.1",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@storybook/test/node_modules/tinyrainbow": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@storybook/test/node_modules/tinyspy": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
- "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@storybook/theming": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.15.tgz",
- "integrity": "sha512-dAbL0XOekyT6XsF49R6Etj3WxQ/LpdJDIswUUeHgVJ6/yd2opZOGbPxnwA3zlmAh1c0tvpPyhSDXxSG79u8e4Q==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0"
- }
- },
"node_modules/@swagger-api/apidom-ast": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ast/-/apidom-ast-1.2.2.tgz",
@@ -6795,9 +5655,9 @@
}
},
"node_modules/@swagger-api/apidom-reference/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7280,6 +6140,69 @@
"@testing-library/dom": ">=7.21.4"
}
},
+ "node_modules/@tmcp/adapter-valibot": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@tmcp/adapter-valibot/-/adapter-valibot-0.1.5.tgz",
+ "integrity": "sha512-9P2wrVYPngemNK0UvPb/opC722/jfd09QxXmme1TRp/wPsl98vpSk/MXt24BCMqBRv4Dvs0xxJH4KHDcjXW52Q==",
+ "dependencies": {
+ "@standard-schema/spec": "^1.0.0",
+ "@valibot/to-json-schema": "^1.3.0",
+ "valibot": "^1.1.0"
+ },
+ "peerDependencies": {
+ "tmcp": "^1.17.0",
+ "valibot": "^1.1.0"
+ }
+ },
+ "node_modules/@tmcp/adapter-valibot/node_modules/@valibot/to-json-schema": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@valibot/to-json-schema/-/to-json-schema-1.6.0.tgz",
+ "integrity": "sha512-d6rYyK5KVa2XdqamWgZ4/Nr+cXhxjy7lmpe6Iajw15J/jmU+gyxl2IEd1Otg1d7Rl3gOQL5reulnSypzBtYy1A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "valibot": "^1.3.0"
+ }
+ },
+ "node_modules/@tmcp/adapter-valibot/node_modules/valibot": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz",
+ "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "typescript": ">=5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tmcp/session-manager": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@tmcp/session-manager/-/session-manager-0.2.1.tgz",
+ "integrity": "sha512-DOGy9LfufXCy1wfpGHZ6qPSDQtRnTVwOb71+41ffovTqzLMZlK3iLK/LIsekHxIiku+iIAUiqEKN+DHbqEm8IA==",
+ "peerDependencies": {
+ "tmcp": "^1.16.3"
+ }
+ },
+ "node_modules/@tmcp/transport-http": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/@tmcp/transport-http/-/transport-http-0.8.5.tgz",
+ "integrity": "sha512-qQLqiCTtbxtTSswqOn/782df7O57RxI/yLUtCDQ++kHEhbmDUc8glmmtGJ3mrb7yPSPoM5VF2Pc2Q5cA6quzLA==",
+ "dependencies": {
+ "@tmcp/session-manager": "^0.2.1",
+ "esm-env": "^1.2.2"
+ },
+ "peerDependencies": {
+ "@tmcp/auth": "^0.3.3 || ^0.4.0",
+ "tmcp": "^1.18.0"
+ },
+ "peerDependenciesMeta": {
+ "@tmcp/auth": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@tokenizer/inflate": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.4.1.tgz",
@@ -7523,15 +6446,22 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "25.0.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz",
- "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz",
+ "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~7.16.0"
+ "undici-types": "~7.18.0"
}
},
+ "node_modules/@types/node/node_modules/undici-types": {
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/parse-json": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
@@ -7550,7 +6480,7 @@
"version": "15.7.15",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
"integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
- "devOptional": true,
+ "dev": true,
"license": "MIT"
},
"node_modules/@types/ramda": {
@@ -7567,7 +6497,7 @@
"version": "18.3.27",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
"integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"dependencies": {
"@types/prop-types": "*",
@@ -7578,7 +6508,7 @@
"version": "18.3.7",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
"integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"peerDependencies": {
"@types/react": "^18.0.0"
@@ -7633,9 +6563,9 @@
"license": "MIT"
},
"node_modules/@types/unist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
- "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
"dev": true,
"license": "MIT"
},
@@ -7852,9 +6782,9 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7878,9 +6808,9 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -8377,6 +7307,16 @@
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
@@ -8582,16 +7522,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/are-we-there-yet/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -8998,12 +7928,11 @@
}
},
"node_modules/bare-fs": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz",
- "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==",
+ "version": "4.5.6",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.6.tgz",
+ "integrity": "sha512-1QovqDrR80Pmt5HPAsMsXTCFcDYr+NSUKW6nd6WO5v0JBmnItc/irNRzm2KOQ5oZ69P37y+AMujNyNtG+1Rggw==",
"dev": true,
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"bare-events": "^2.5.4",
"bare-path": "^3.0.0",
@@ -9029,7 +7958,6 @@
"integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==",
"dev": true,
"license": "Apache-2.0",
- "optional": true,
"engines": {
"bare": ">=1.14.0"
}
@@ -9040,7 +7968,6 @@
"integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
"dev": true,
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"bare-os": "^3.0.1"
}
@@ -9051,7 +7978,6 @@
"integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==",
"dev": true,
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"streamx": "^2.21.0"
},
@@ -9074,7 +8000,6 @@
"integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==",
"dev": true,
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"bare-path": "^3.0.0"
}
@@ -9236,9 +8161,9 @@
"license": "ISC"
},
"node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9355,6 +8280,22 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/bundle-name": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "run-applescript": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/bundlesize": {
"version": "0.18.2",
"resolved": "https://registry.npmjs.org/bundlesize/-/bundlesize-0.18.2.tgz",
@@ -9826,6 +8767,19 @@
"node": ">=6"
}
},
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/cli-spinners": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
@@ -9839,6 +8793,94 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/cli-width": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cliui/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
@@ -9964,76 +9006,6 @@
"url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
}
},
- "node_modules/concurrently/node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/concurrently/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/concurrently/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/concurrently/node_modules/rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
- "node_modules/concurrently/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/concurrently/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/concurrently/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -10050,63 +9022,6 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/concurrently/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/concurrently/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/concurrently/node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/concurrently/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/consola": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
@@ -10221,9 +9136,9 @@
"license": "MIT"
},
"node_modules/cosmiconfig": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
- "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz",
+ "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10761,6 +9676,36 @@
"node": ">=0.10.0"
}
},
+ "node_modules/default-browser": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz",
+ "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/defaults": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
@@ -11151,6 +10096,16 @@
"node": ">= 4"
}
},
+ "node_modules/empathic": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz",
+ "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/encodeurl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
@@ -11427,9 +10382,9 @@
]
},
"node_modules/esbuild": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz",
- "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==",
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz",
+ "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -11440,32 +10395,32 @@
"node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.27.2",
- "@esbuild/android-arm": "0.27.2",
- "@esbuild/android-arm64": "0.27.2",
- "@esbuild/android-x64": "0.27.2",
- "@esbuild/darwin-arm64": "0.27.2",
- "@esbuild/darwin-x64": "0.27.2",
- "@esbuild/freebsd-arm64": "0.27.2",
- "@esbuild/freebsd-x64": "0.27.2",
- "@esbuild/linux-arm": "0.27.2",
- "@esbuild/linux-arm64": "0.27.2",
- "@esbuild/linux-ia32": "0.27.2",
- "@esbuild/linux-loong64": "0.27.2",
- "@esbuild/linux-mips64el": "0.27.2",
- "@esbuild/linux-ppc64": "0.27.2",
- "@esbuild/linux-riscv64": "0.27.2",
- "@esbuild/linux-s390x": "0.27.2",
- "@esbuild/linux-x64": "0.27.2",
- "@esbuild/netbsd-arm64": "0.27.2",
- "@esbuild/netbsd-x64": "0.27.2",
- "@esbuild/openbsd-arm64": "0.27.2",
- "@esbuild/openbsd-x64": "0.27.2",
- "@esbuild/openharmony-arm64": "0.27.2",
- "@esbuild/sunos-x64": "0.27.2",
- "@esbuild/win32-arm64": "0.27.2",
- "@esbuild/win32-ia32": "0.27.2",
- "@esbuild/win32-x64": "0.27.2"
+ "@esbuild/aix-ppc64": "0.27.4",
+ "@esbuild/android-arm": "0.27.4",
+ "@esbuild/android-arm64": "0.27.4",
+ "@esbuild/android-x64": "0.27.4",
+ "@esbuild/darwin-arm64": "0.27.4",
+ "@esbuild/darwin-x64": "0.27.4",
+ "@esbuild/freebsd-arm64": "0.27.4",
+ "@esbuild/freebsd-x64": "0.27.4",
+ "@esbuild/linux-arm": "0.27.4",
+ "@esbuild/linux-arm64": "0.27.4",
+ "@esbuild/linux-ia32": "0.27.4",
+ "@esbuild/linux-loong64": "0.27.4",
+ "@esbuild/linux-mips64el": "0.27.4",
+ "@esbuild/linux-ppc64": "0.27.4",
+ "@esbuild/linux-riscv64": "0.27.4",
+ "@esbuild/linux-s390x": "0.27.4",
+ "@esbuild/linux-x64": "0.27.4",
+ "@esbuild/netbsd-arm64": "0.27.4",
+ "@esbuild/netbsd-x64": "0.27.4",
+ "@esbuild/openbsd-arm64": "0.27.4",
+ "@esbuild/openbsd-x64": "0.27.4",
+ "@esbuild/openharmony-arm64": "0.27.4",
+ "@esbuild/sunos-x64": "0.27.4",
+ "@esbuild/win32-arm64": "0.27.4",
+ "@esbuild/win32-ia32": "0.27.4",
+ "@esbuild/win32-x64": "0.27.4"
}
},
"node_modules/esbuild-register": {
@@ -11719,6 +10674,12 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/esm-env": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
+ "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
+ "license": "MIT"
+ },
"node_modules/espree": {
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
@@ -13117,12 +12078,16 @@
"node": ">= 14"
}
},
- "node_modules/http-proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
"engines": {
"node": ">= 14"
}
@@ -13724,6 +12689,41 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-inside-container/node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-interactive": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
@@ -14028,9 +13028,9 @@
}
},
"node_modules/istanbul-lib-report/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -14255,30 +13255,6 @@
}
}
},
- "node_modules/jsdom/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/jsdom/node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/jsesc": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
@@ -14313,6 +13289,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/json-rpc-2.0": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/json-rpc-2.0/-/json-rpc-2.0-1.7.1.tgz",
+ "integrity": "sha512-JqZjhjAanbpkXIzFE7u8mE/iFblawwlXtONaCvRqI+pyABVz7B4M1EUNpyVW+dZjqgQ2L5HFmZCmOCgUKm00hg==",
+ "license": "MIT"
+ },
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -15028,6 +14010,16 @@
"node": ">= 0.6"
}
},
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/mimic-response": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
@@ -15088,11 +14080,11 @@
}
},
"node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"engines": {
"node": ">=16 || 14 >=14.17"
}
@@ -15207,21 +14199,6 @@
"msw": "^2.0.0"
}
},
- "node_modules/msw/node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/msw/node_modules/cookie": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
@@ -15236,23 +14213,6 @@
"url": "https://opencollective.com/express"
}
},
- "node_modules/msw/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/msw/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/msw/node_modules/path-to-regexp": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
@@ -15260,38 +14220,10 @@
"dev": true,
"license": "MIT"
},
- "node_modules/msw/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/msw/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/msw/node_modules/tough-cookie": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
- "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz",
+ "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -15301,61 +14233,14 @@
"node": ">=16"
}
},
- "node_modules/msw/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/msw/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "node_modules/mute-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
+ "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
"dev": true,
"license": "ISC",
"engines": {
- "node": ">=10"
- }
- },
- "node_modules/msw/node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/msw/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/nan": {
@@ -15495,6 +14380,25 @@
"node": ">=10.5.0"
}
},
+ "node_modules/node-exports-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz",
+ "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array.prototype.flatmap": "^1.3.3",
+ "es-errors": "^1.3.0",
+ "object.entries": "^1.1.9",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
@@ -15797,6 +14701,54 @@
"wrappy": "1"
}
},
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
+ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "default-browser": "^5.2.1",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "wsl-utils": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open/node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/openapi-path-templating": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/openapi-path-templating/-/openapi-path-templating-2.2.1.tgz",
@@ -15889,66 +14841,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ora/node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ora/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ora/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ora/node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ora/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/ora/node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -16062,30 +14954,6 @@
"node": ">= 14"
}
},
- "node_modules/pac-proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/pac-resolver": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
@@ -16151,13 +15019,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/parse-entities/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -16304,9 +15165,9 @@
"license": "ISC"
},
"node_modules/path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
+ "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==",
"dev": true,
"license": "MIT"
},
@@ -16352,9 +15213,9 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -16364,6 +15225,12 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/picoquery": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/picoquery/-/picoquery-2.5.0.tgz",
+ "integrity": "sha512-j1kgOFxtaCyoFCkpoYG2Oj3OdGakadO7HZ7o5CqyRazlmBekKhbDoUnNnXASE07xSY4nDImWZkrZv7toSxMi/g==",
+ "license": "MIT"
+ },
"node_modules/pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
@@ -16923,30 +15790,6 @@
"node": ">= 14"
}
},
- "node_modules/proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/proxy-agent/node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/proxy-agent/node_modules/lru-cache": {
"version": "7.18.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
@@ -17234,14 +16077,73 @@
"react": "^15.3.0 || 16 || 17 || 18"
}
},
- "node_modules/react-docgen-typescript": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz",
- "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==",
+ "node_modules/react-docgen": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.3.tgz",
+ "integrity": "sha512-aEZ9qP+/M+58x2qgfSFEWH1BxLyHe5+qkLNJOZQb5iGS017jpbRnoKhNRrXPeA6RfBrZO5wZrT9DMC1UqE1f1w==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "typescript": ">= 4.3.x"
+ "dependencies": {
+ "@babel/core": "^7.28.0",
+ "@babel/traverse": "^7.28.0",
+ "@babel/types": "^7.28.2",
+ "@types/babel__core": "^7.20.5",
+ "@types/babel__traverse": "^7.20.7",
+ "@types/doctrine": "^0.0.9",
+ "@types/resolve": "^1.20.2",
+ "doctrine": "^3.0.0",
+ "resolve": "^1.22.1",
+ "strip-indent": "^4.0.0"
+ },
+ "engines": {
+ "node": "^20.9.0 || >=22"
+ }
+ },
+ "node_modules/react-docgen/node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/react-docgen/node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/react-docgen/node_modules/strip-indent": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz",
+ "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/react-dom": {
@@ -17813,19 +16715,25 @@
"license": "MIT"
},
"node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "version": "2.0.0-next.6",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
+ "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "node-exports-info": "^1.6.0",
+ "object-keys": "^1.1.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -17840,6 +16748,27 @@
"node": ">=4"
}
},
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/restore-cursor/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/ret": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz",
@@ -17933,38 +16862,6 @@
}
}
},
- "node_modules/rollup-plugin-visualizer/node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/rollup-plugin-visualizer/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/rollup-plugin-visualizer/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/rollup-plugin-visualizer/node_modules/open": {
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
@@ -17993,91 +16890,6 @@
"node": ">= 12"
}
},
- "node_modules/rollup-plugin-visualizer/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/rollup-plugin-visualizer/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/rollup-plugin-visualizer/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/rollup-plugin-visualizer/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/rollup-plugin-visualizer/node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/rollup-plugin-visualizer/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/rrweb-cssom": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
@@ -18085,6 +16897,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/run-applescript": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/run-async": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
@@ -18095,6 +16920,16 @@
"node": ">=0.12.0"
}
},
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/safe-array-concat": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
@@ -18639,16 +17474,6 @@
"node": ">= 14"
}
},
- "node_modules/socks-proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -18698,6 +17523,12 @@
"dev": true,
"license": "BSD-3-Clause"
},
+ "node_modules/sqids": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/sqids/-/sqids-0.3.0.tgz",
+ "integrity": "sha512-lOQK1ucVg+W6n3FhRwwSeUijxe93b51Bfz5PMRMihVf1iVkl82ePQG7V5vwrhzB11v0NtsR25PSZRGiSomJaJw==",
+ "license": "MIT"
+ },
"node_modules/stackback": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
@@ -18737,13 +17568,13 @@
}
},
"node_modules/storybook": {
- "version": "8.6.15",
- "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.15.tgz",
- "integrity": "sha512-Ob7DMlwWx8s7dMvcQ3xPc02TvUeralb+xX3oaPRk9wY9Hc6M1IBC/7cEoITkSmRS2v38DHubC+mtEKNc1u2gQg==",
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.5.8.tgz",
+ "integrity": "sha512-k3QDa7z4a656oO3Mx929KNm+xIdEI2nIDCKatVl1mA6vt+ge+uwoiG+ro182J9LOEppR5XXD2mQQi4u1xNsy6A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@storybook/core": "8.6.15"
+ "@storybook/core": "8.5.8"
},
"bin": {
"getstorybook": "bin/index.cjs",
@@ -18800,15 +17631,22 @@
"license": "MIT"
},
"node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "safe-buffer": "~5.2.0"
+ "safe-buffer": "~5.1.0"
}
},
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -19317,9 +18155,9 @@
}
},
"node_modules/tar-fs": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
- "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz",
+ "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -19332,21 +18170,22 @@
}
},
"node_modules/tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz",
+ "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"b4a": "^1.6.4",
+ "bare-fs": "^4.5.5",
"fast-fifo": "^1.2.0",
"streamx": "^2.15.0"
}
},
"node_modules/tar-stream/node_modules/b4a": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
- "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz",
+ "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==",
"dev": true,
"license": "Apache-2.0",
"peerDependencies": {
@@ -19512,9 +18351,9 @@
}
},
"node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -19569,9 +18408,9 @@
}
},
"node_modules/text-decoder/node_modules/b4a": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
- "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz",
+ "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==",
"dev": true,
"license": "Apache-2.0",
"peerDependencies": {
@@ -19677,6 +18516,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/tmcp": {
+ "version": "1.19.3",
+ "resolved": "https://registry.npmjs.org/tmcp/-/tmcp-1.19.3.tgz",
+ "integrity": "sha512-plz/TLKNFrdfQN32LjCTN6ULy6pynfGPgHcU7KGCI5dBrxQ9Mub99SmcYuzxEkLjJooQuOD3gosSwZEl1htOtw==",
+ "license": "MIT",
+ "dependencies": {
+ "@standard-schema/spec": "^1.0.0",
+ "json-rpc-2.0": "^1.7.1",
+ "sqids": "^0.3.0",
+ "uri-template-matcher": "^1.1.1",
+ "valibot": "^1.1.0"
+ }
+ },
"node_modules/to-buffer": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
@@ -20018,9 +18870,9 @@
}
},
"node_modules/type-fest": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.3.1.tgz",
- "integrity": "sha512-VCn+LMHbd4t6sF3wfU/+HKT63C9OoyrSIf4b+vtWHpt2U7/4InZG467YDNMFMR70DdHjAdpPWmw2lzRdg0Xqqg==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz",
+ "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"dependencies": {
@@ -20139,7 +18991,7 @@
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
- "devOptional": true,
+ "dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
@@ -20230,9 +19082,9 @@
}
},
"node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"dev": true,
"license": "MIT"
},
@@ -20328,6 +19180,12 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/uri-template-matcher": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/uri-template-matcher/-/uri-template-matcher-1.1.2.tgz",
+ "integrity": "sha512-uZc1h12jdO3m/R77SfTEOuo6VbMhgWznaawKpBjRGSJb7i91x5PgI37NQJtG+Cerxkk0yr1pylBY2qG1kQ+aEQ==",
+ "license": "ISC"
+ },
"node_modules/url": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
@@ -20474,6 +19332,20 @@
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/valibot": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.2.0.tgz",
+ "integrity": "sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "typescript": ">=5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -21399,6 +20271,38 @@
}
}
},
+ "node_modules/wsl-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
+ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/wsl-utils/node_modules/is-wsl": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/xml": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
@@ -21443,6 +20347,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -21481,6 +20395,80 @@
"node": ">= 14"
}
},
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/yargs/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/yauzl": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",