diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 25c9361c..1235bb02 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,7 +20,7 @@ jobs: - uses: pnpm/action-setup@v2 with: - version: 8 + version: 10.12.2 - name: Use Node.js uses: actions/setup-node@v3 @@ -31,8 +31,7 @@ jobs: - name: Install dependencies run: | - pnpm install --no-frozen-lockfile - pnpm install + pnpm install --frozen-lockfile - name: Run ESLint with autofix run: pnpm lint:fix diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..b582c294 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,58 @@ +# Contributor Covenant Code of Conduct + +## Our Commitment + +We are committed to making participation in our community a welcoming, respectful, and productive experience for everyone. + +## Standards + +Positive examples of behavior include: + +- Showing respect and kindness to others +- Being open to different perspectives and experiences +- Offering and accepting constructive feedback +- Taking responsibility for mistakes and working to correct them + +Unacceptable behavior includes: + +- Harassment or discrimination of any kind +- Offensive, derogatory, or inappropriate comments +- Personal attacks or trolling +- Sharing private information without consent +- Any unprofessional or disruptive conduct + +## Responsibilities + +Community leaders will: + +- Enforce this Code of Conduct consistently and fairly +- Take appropriate action for violations, which may include warnings, temporary bans, or permanent bans +- Provide clear reasons for moderation decisions when possible + +## Scope + +This Code of Conduct applies across all community spaces and when an individual is representing the community in public settings. + +## Enforcement + +If you experience or witness unacceptable behavior, please report it to the community leaders at **your-email@example.com**. Reports will be handled respectfully, promptly, and with confidentiality. + +## Enforcement Guidelines + +Community leaders will use the following guidelines when determining consequences for violations: + +1. **Warning** + - *Behavior*: Minor or first-time violation. + - *Action*: Private warning with explanation. A public apology may be requested. + +2. **Temporary Ban** + - *Behavior*: More serious or repeated violations. + - *Action*: Temporary restriction from community participation. + +3. **Permanent Ban** + - *Behavior*: Severe or ongoing violations. + - *Action*: Permanent removal from the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant, version 2.0](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html), with modifications for clarity and brevity. diff --git a/backend/.env.example b/backend/.env.example index 48faf812..64f2bb7c 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -1,3 +1,14 @@ +# ============================================================================================ +# IMPORTANT: DO NOT DELETE THIS FILE +# -------------------------------------------------------------------------------------------- +# This `.env.example` file is required for the repository. It serves as a reference template +# showing the environment variables needed to run the project. Actual values must be provided +# via Infisical or your own `.env` file, but this file should remain in version control. +# +# For setup instructions and details on configuring environment variables, see: +# https://docs.heygaia.io/configuration/environment-variables +# ============================================================================================ + # Environment Configuration ENV=development # Environment type: development, staging, production DISABLE_PROFILING=true # Disable performance profiling in non-production environments diff --git a/backend/Dockerfile b/backend/Dockerfile index b8099013..a5829df8 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -49,10 +49,8 @@ uv pip install --system --no-cache-dir -r heavy-deps.txt && \ rm -rf /root/.cache/pip - # Setup Playwright and NLTK - RUN python -m playwright install --with-deps chromium - RUN python -m nltk.downloader punkt stopwords punkt_tab && \ - rm -rf /root/.cache/nltk + # Setup Playwright + RUN python -m playwright install chromium # ---- Default Dependencies Stage: Install default application dependencies ---- FROM heavy-dependencies AS default-dependencies @@ -82,8 +80,7 @@ # Setup non-root user and permissions RUN adduser --disabled-password --gecos '' appuser \ - && mkdir -p /home/appuser/.cache/huggingface /home/appuser/nltk_data \ - && cp -R /root/nltk_data/* /home/appuser/nltk_data/ \ + && mkdir -p /home/appuser/.cache \ && chown -R appuser:appuser /home/appuser \ && cp -R /root/.cache/ms-playwright /home/appuser/.cache/ \ && chown -R appuser:appuser /home/appuser/.cache/ms-playwright \ diff --git a/backend/app/api/v1/dependencies/google_scope_dependencies.py b/backend/app/api/v1/dependencies/google_scope_dependencies.py index 9c3165d2..7f38efcc 100644 --- a/backend/app/api/v1/dependencies/google_scope_dependencies.py +++ b/backend/app/api/v1/dependencies/google_scope_dependencies.py @@ -5,11 +5,12 @@ before allowing access to protected endpoints that require specific integrations. """ -from typing import Dict, List, Literal, Union +from typing import List, Literal, Union import httpx from app.api.v1.dependencies.oauth_dependencies import get_current_user from app.config.loggers import auth_logger as logger +from app.config.oauth_config import get_integration_scopes, get_short_name_mapping from app.config.token_repository import token_repository from fastapi import Depends, HTTPException, status @@ -40,10 +41,13 @@ async def wrapper(user: dict = Depends(get_current_user)): ) try: - token = await token_repository.get_token( - user_id, "google", renew_if_expired=True - ) - authorized_scopes = str(token.get("scope", "")).split() + try: + token = await token_repository.get_token( + user_id, "google", renew_if_expired=True + ) + authorized_scopes = str(token.get("scope", "")).split() + except HTTPException: + authorized_scopes = [] # Handle both single scope and list of scopes required_scopes = [scope] if isinstance(scope, str) else scope @@ -76,18 +80,6 @@ async def wrapper(user: dict = Depends(get_current_user)): return wrapper -# Mapping of integration names to their required OAuth scope URLs -GOOGLE_SCOPE_URLS: Dict[str, Union[str, List[str]]] = { - "gmail": "https://www.googleapis.com/auth/gmail.modify", - "calendar": [ - "https://www.googleapis.com/auth/calendar.events", - "https://www.googleapis.com/auth/calendar.readonly", - ], - "drive": "https://www.googleapis.com/auth/drive.file", - "docs": "https://www.googleapis.com/auth/documents", -} - - def require_google_integration( integration: Literal["gmail", "calendar", "drive", "docs"], ): @@ -101,13 +93,13 @@ def require_google_integration( def get_events(user = Depends(require_google_integration("calendar"))): # user has Calendar scope with both read and write permissions - # For Calendar readonly endpoints - @app.get("/calendar/events/readonly") - def get_events_readonly(user = Depends(require_google_integration("calendar_readonly"))): - # user has Calendar readonly scope + # For Gmail endpoints + @app.get("/gmail/messages") + def get_messages(user = Depends(require_google_integration("gmail"))): + # user has Gmail scope with required permissions Args: - integration: The Google integration name + integration: The Google integration short name Returns: The corresponding scope dependency function @@ -115,10 +107,18 @@ def get_events_readonly(user = Depends(require_google_integration("calendar_read Raises: ValueError: If unknown integration name is provided """ - if integration not in GOOGLE_SCOPE_URLS: + # Get the short name mapping from oauth_config (single source of truth) + short_name_mapping = get_short_name_mapping() + + if integration not in short_name_mapping: raise ValueError( - f"Unknown integration: {integration}. Available: {list(GOOGLE_SCOPE_URLS.keys())}" + f"Unknown integration: {integration}. Available: {list(short_name_mapping.keys())}" ) - scope_urls = GOOGLE_SCOPE_URLS[integration] + integration_id = short_name_mapping[integration] + scope_urls = get_integration_scopes(integration_id) + + if not scope_urls: + raise ValueError(f"No scopes found for integration: {integration_id}") + return require_google_scope(scope_urls) diff --git a/backend/app/api/v1/router/chat.py b/backend/app/api/v1/router/chat.py index 514893db..264c30da 100644 --- a/backend/app/api/v1/router/chat.py +++ b/backend/app/api/v1/router/chat.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timezone from fastapi import APIRouter, BackgroundTasks, Depends from fastapi.responses import StreamingResponse @@ -7,13 +7,23 @@ get_current_user, get_user_timezone, ) -from app.decorators import tiered_rate_limit -from app.models.message_models import MessageRequestWithHistory -from app.services.chat_service import chat_stream +from app.decorators import profile_time, tiered_rate_limit +from app.models.message_models import ( + MessageRequestWithHistory, + SaveIncompleteConversationRequest, + MessageDict, +) +from app.models.chat_models import MessageModel, UpdateMessagesRequest +from app.services.chat_service import ( + chat_stream, +) +from app.services.conversation_service import update_messages +from app.utils.chat_utils import create_conversation router = APIRouter() +@profile_time() @router.post("/chat-stream") @tiered_rate_limit("chat_messages") async def chat_stream_endpoint( @@ -38,3 +48,61 @@ async def chat_stream_endpoint( "Access-Control-Allow-Origin": "*", }, ) + + +@router.post("/save-incomplete-conversation") +@tiered_rate_limit("chat_messages") +async def save_incomplete_conversation( + body: SaveIncompleteConversationRequest, + background_tasks: BackgroundTasks, + user: dict = Depends(get_current_user), +) -> dict: + """ + Save incomplete conversation when stream is cancelled. + """ + conversation_id = body.conversation_id + + # Only create new conversation if conversation_id is None + if conversation_id is None: + last_message: MessageDict = {"role": "user", "content": body.message} + selectedTool = body.selectedTool + conversation = await create_conversation( + last_message, user=user, selectedTool=selectedTool + ) + conversation_id = conversation.get("conversation_id", "") + + # Save the incomplete conversation immediately (not as background task) + # Since user expects to see it right away when they navigate/refresh + + # Create user message + user_message = MessageModel( + type="user", + response=body.message, + date=datetime.now(timezone.utc).isoformat(), + fileIds=body.fileIds, + fileData=body.fileData, + selectedTool=body.selectedTool, + toolCategory=body.toolCategory, + ) + + # Create bot message with incomplete response + bot_message = MessageModel( + type="bot", + response=body.incomplete_response, + date=datetime.now(timezone.utc).isoformat(), + fileIds=body.fileIds, + ) + + # Save immediately instead of background task + await update_messages( + UpdateMessagesRequest( + conversation_id=conversation_id, + messages=[user_message, bot_message], + ), + user=user, + ) + + return { + "success": True, + "conversation_id": conversation_id, + } diff --git a/backend/app/api/v1/router/mail_webhook.py b/backend/app/api/v1/router/mail_webhook.py index 07d5ac99..c3d37b18 100644 --- a/backend/app/api/v1/router/mail_webhook.py +++ b/backend/app/api/v1/router/mail_webhook.py @@ -1,13 +1,13 @@ import json -from fastapi import APIRouter, HTTPException, Request -from fastapi.encoders import jsonable_encoder -from fastapi.exceptions import RequestValidationError -from pydantic import ValidationError - from app.config.loggers import mail_webhook_logger as logger from app.models.mail_models import EmailWebhookRequest from app.services.mail_webhook_service import queue_email_processing +from app.utils.pubsub_auth import get_verified_pubsub_request +from fastapi import APIRouter, Depends, HTTPException, Request +from fastapi.encoders import jsonable_encoder +from fastapi.exceptions import RequestValidationError +from pydantic import ValidationError router = APIRouter() @@ -16,13 +16,21 @@ "/mail-webhook/receive", summary="Process Email Webhook", ) -async def receive_email(request: Request): +async def receive_email( + request: Request, + jwt_payload: dict = Depends( + get_verified_pubsub_request + ), # Ensure the request is verified +): """ Process incoming email webhook notifications from Gmail. The webhook payload contains information about new emails. This endpoint receives the webhook, validates the payload, and queues a background task for processing. + + The request is authenticated using JWT tokens to ensure it + comes from Google Cloud Pub/Sub and not unauthorized entities. """ try: # Log raw request body @@ -44,8 +52,6 @@ async def receive_email(request: Request): detail="Email address and history ID must be provided.", ) - logger.info(f"Parsed: email={email_address}, historyId={history_id}") - # Use service to queue email processing return await queue_email_processing(email_address, history_id) diff --git a/backend/app/api/v1/router/oauth.py b/backend/app/api/v1/router/oauth.py index 8147af01..b2f9f4cf 100644 --- a/backend/app/api/v1/router/oauth.py +++ b/backend/app/api/v1/router/oauth.py @@ -1,4 +1,5 @@ from datetime import datetime +from functools import lru_cache from typing import Optional from urllib.parse import urlencode @@ -10,6 +11,7 @@ from app.config.loggers import auth_logger as logger from app.config.oauth_config import ( OAUTH_INTEGRATIONS, + IntegrationConfigResponse, get_integration_by_id, get_integration_scopes, ) @@ -37,6 +39,7 @@ File, Form, HTTPException, + Request, UploadFile, ) from fastapi.responses import JSONResponse, RedirectResponse @@ -50,6 +53,44 @@ ) +@lru_cache(maxsize=1) +def _build_integrations_config(): + """ + Build and cache the integrations configuration response. + This function is cached using lru_cache for performance. + """ + integration_configs = [] + for integration in OAUTH_INTEGRATIONS: + config = IntegrationConfigResponse( + id=integration.id, + name=integration.name, + description=integration.description, + icons=integration.icons, + category=integration.category, + provider=integration.provider, + available=integration.available, + loginEndpoint=( + f"oauth/login/integration/{integration.id}" + if integration.available + else None + ), + isSpecial=integration.is_special, + displayPriority=integration.display_priority, + includedIntegrations=integration.included_integrations, + ) + integration_configs.append(config.model_dump()) + + return {"integrations": integration_configs} + + +def clear_integrations_cache(): + """ + Clear the integrations configuration cache. + Call this function when the integration configuration changes. + """ + _build_integrations_config.cache_clear() + + # @router.get("/login/google") # async def login_google(): # """Basic Google OAuth for signup - only requests essential scopes.""" @@ -80,7 +121,8 @@ async def login_workos(): """ # Add any needed parameters for your SSO implementation authorization_url = workos.user_management.get_authorization_url( - provider="authkit", redirect_uri=settings.WORKOS_REDIRECT_URI + provider="authkit", + redirect_uri=settings.WORKOS_REDIRECT_URI, ) return RedirectResponse(url=authorization_url) @@ -119,7 +161,9 @@ async def workos_callback( # Extract user information email = auth_response.user.email - name = f"{auth_response.user.first_name} {auth_response.user.last_name}" + first = auth_response.user.first_name or "" + last = auth_response.user.last_name or "" + name = f"{first} {last}".strip() picture_url = auth_response.user.profile_picture_url # Store user info in our database @@ -318,28 +362,10 @@ async def get_integrations_config(): """ Get the configuration for all integrations. This endpoint is public and returns integration metadata. + Uses lru_cache for improved performance. """ - return JSONResponse( - content={ - "integrations": [ - { - "id": integration.id, - "name": integration.name, - "description": integration.description, - "icon": integration.icon, - "category": integration.category, - "provider": integration.provider, - "available": integration.available, - "loginEndpoint": ( - f"oauth/login/integration/{integration.id}" - if integration.available - else None - ), - } - for integration in OAUTH_INTEGRATIONS - ] - } - ) + cached_config = _build_integrations_config() + return JSONResponse(content=cached_config) @router.get("/integrations/status") @@ -381,6 +407,24 @@ async def get_integrations_status( scope in authorized_scopes for scope in required_scopes ) + # Special handling for unified integrations + if integration.is_special and integration.included_integrations: + # For unified integrations, check if ALL included integrations are connected + included_connected = [] + for included_id in integration.included_integrations: + included_integration = get_integration_by_id(included_id) + if included_integration: + included_scopes = get_integration_scopes(included_id) + included_is_connected = all( + scope in authorized_scopes for scope in included_scopes + ) + included_connected.append(included_is_connected) + + # Unified integration is connected only if ALL included ones are connected + is_connected = ( + all(included_connected) if included_connected else False + ) + # Add other provider checks here (GitHub, Notion, etc.) integration_statuses.append( @@ -533,24 +577,42 @@ async def update_user_name( @router.post("/logout") -async def logout(): +async def logout( + request: Request, +): """ - Log out the user by revoking tokens for both Google and WorkOS. + Logout user and return logout URL for frontend redirection. + """ + wos_session = request.cookies.get("wos_session") - Args: - access_token: JWT access token or Google token + if not wos_session: + raise HTTPException(status_code=401, detail="No active session") - Returns: - JSONResponse with logout status - """ - response = JSONResponse(content={"detail": "Logged out successfully"}) - - response.delete_cookie( - "wos_session", - httponly=True, - path="/", - secure=settings.ENV == "production", - samesite="lax", - ) + try: + session = workos.user_management.load_sealed_session( + sealed_session=wos_session, + cookie_password=settings.WORKOS_COOKIE_PASSWORD, + ) + + if not session: + raise HTTPException(status_code=401, detail="Invalid session") + + logout_url = session.get_logout_url() + + # Create response with logout URL + response = JSONResponse(content={"logout_url": logout_url}) - return response + # Clear the session cookie + response.delete_cookie( + "wos_session", + httponly=True, + path="/", + secure=settings.ENV == "production", + samesite="lax", + ) + + return response + + except Exception as e: + logger.error(f"Logout error: {e}") + raise HTTPException(status_code=500, detail="Logout failed") diff --git a/backend/app/api/v1/router/payments.py b/backend/app/api/v1/router/payments.py index 9ee8703c..db79339e 100644 --- a/backend/app/api/v1/router/payments.py +++ b/backend/app/api/v1/router/payments.py @@ -1,213 +1,126 @@ """ -Clean payment and subscription router for Razorpay integration. +Clean payment router for Dodo Payments integration. +Single service approach - simple and maintainable. """ import json from typing import List -from fastapi import APIRouter, Depends, HTTPException, Request +from fastapi import APIRouter, Depends, HTTPException, Request, Header from app.api.v1.dependencies.oauth_dependencies import get_current_user from app.config.loggers import general_logger as logger from app.middleware.rate_limiter import limiter from app.models.payment_models import ( CreateSubscriptionRequest, - PaymentCallbackRequest, - PaymentResponse, + PaymentVerificationResponse, PlanResponse, - SubscriptionResponse, - UpdateSubscriptionRequest, UserSubscriptionStatus, - WebhookEvent, -) -from app.services.payments import ( - cancel_subscription, - create_subscription, - get_plans, - get_user_subscription_status, - process_webhook, - razorpay_service, - sync_subscription_from_razorpay, - update_subscription, - verify_payment, ) +from app.services.payment_service import payment_service +from app.services.payment_webhook_service import payment_webhook_service + -# Initialize router router = APIRouter() -# Core Payment Flow Endpoints -@router.get( - "/plans", response_model=List[PlanResponse], summary="Get subscription plans" -) -@limiter.limit("30/minute") # Allow 30 plan fetches per minute +@router.get("/plans", response_model=List[PlanResponse]) +@limiter.limit("30/minute") async def get_plans_endpoint(request: Request, active_only: bool = True): """Get all available subscription plans.""" - return await get_plans(active_only=active_only) + return await payment_service.get_plans(active_only=active_only) -@router.post( - "/subscriptions", - response_model=SubscriptionResponse, - summary="Create subscription", -) -@limiter.limit("5/minute") # Allow 5 subscription creations per minute +@router.post("/subscriptions") +@limiter.limit("5/minute") async def create_subscription_endpoint( request: Request, subscription_data: CreateSubscriptionRequest, current_user: dict = Depends(get_current_user), ): - """Create a new subscription for the authenticated user.""" - user_id = current_user.get("user_id") - if not user_id: - raise HTTPException(status_code=401, detail="Authentication required") - - return await create_subscription(user_id, subscription_data) - - -@router.get( - "/subscriptions/status", - response_model=UserSubscriptionStatus, - summary="Get subscription status", -) -@limiter.limit("60/minute") # Allow 60 status checks per minute -async def get_subscription_status_endpoint( - request: Request, - current_user: dict = Depends(get_current_user), -): - """Get the current subscription status for the authenticated user.""" - user_id = current_user.get("user_id") - if not user_id: - raise HTTPException(status_code=401, detail="Authentication required") - - return await get_user_subscription_status(user_id) - - -@router.put( - "/subscriptions", response_model=SubscriptionResponse, summary="Update subscription" -) -@limiter.limit("10/minute") # Allow 10 subscription updates per minute -async def update_subscription_endpoint( - request: Request, - subscription_data: UpdateSubscriptionRequest, - current_user: dict = Depends(get_current_user), -): - """Update the user's current subscription.""" + """Create a new subscription and return payment link.""" user_id = current_user.get("user_id") if not user_id: raise HTTPException(status_code=401, detail="Authentication required") - return await update_subscription(user_id, subscription_data) + return await payment_service.create_subscription( + user_id, subscription_data.product_id, subscription_data.quantity + ) -@router.delete("/subscriptions", summary="Cancel subscription") -@limiter.limit("5/minute") # Allow 5 cancellations per minute -async def cancel_subscription_endpoint( +@router.post("/verify-payment", response_model=PaymentVerificationResponse) +@limiter.limit("20/minute") +async def verify_payment_endpoint( request: Request, - cancel_at_cycle_end: bool = True, current_user: dict = Depends(get_current_user), ): - """Cancel the user's current subscription.""" + """Verify if user's payment has been completed.""" user_id = current_user.get("user_id") if not user_id: raise HTTPException(status_code=401, detail="Authentication required") - return await cancel_subscription(user_id, cancel_at_cycle_end) + result = await payment_service.verify_payment_completion(user_id) + return PaymentVerificationResponse(**result) -@router.post("/subscriptions/sync", summary="Sync subscription data from Razorpay") -@limiter.limit("5/minute") # Allow 5 sync operations per minute -async def sync_subscription_endpoint( +@router.get("/subscription-status", response_model=UserSubscriptionStatus) +@limiter.limit("60/minute") +async def get_subscription_status_endpoint( request: Request, current_user: dict = Depends(get_current_user), ): - """Sync subscription data from Razorpay to fix missing date fields.""" + """Get user's current subscription status.""" user_id = current_user.get("user_id") if not user_id: raise HTTPException(status_code=401, detail="Authentication required") - # Get user's current subscription - from app.db.mongodb.collections import subscriptions_collection - - subscription = await subscriptions_collection.find_one( - {"user_id": user_id, "status": {"$in": ["active", "created", "paused"]}} - ) - - if not subscription: - raise HTTPException(status_code=404, detail="No active subscription found") - - razorpay_subscription_id = subscription["razorpay_subscription_id"] + return await payment_service.get_user_subscription_status(user_id) - success = await sync_subscription_from_razorpay(razorpay_subscription_id) - if success: - return { - "message": "Subscription synced successfully", - "subscription_id": razorpay_subscription_id, - } - else: - raise HTTPException(status_code=500, detail="Failed to sync subscription") - - -@router.post("/verify", response_model=PaymentResponse, summary="Verify payment") -@limiter.limit("20/minute") # Allow 20 payment verifications per minute -async def verify_payment_endpoint( +@router.post("/webhooks/dodo") +async def handle_dodo_webhook( request: Request, - callback_data: PaymentCallbackRequest, - current_user: dict = Depends(get_current_user), + webhook_id: str = Header(..., alias="webhook-id"), + webhook_timestamp: str = Header(..., alias="webhook-timestamp"), + webhook_signature: str = Header(..., alias="webhook-signature"), ): - """Verify a payment after user completes the payment process.""" - user_id = current_user.get("user_id") - if not user_id: - raise HTTPException(status_code=401, detail="Authentication required") - - return await verify_payment(user_id, callback_data) - - -# Webhook endpoint (no rate limiting for webhooks from Razorpay) -@router.post("/webhooks/razorpay", summary="Handle Razorpay webhooks") -async def razorpay_webhook_endpoint(request: Request): - """Handle incoming webhooks from Razorpay.""" + """Handle incoming webhooks from Dodo Payments with signature verification.""" try: - # Get raw body and signature + # Get raw body for signature verification body = await request.body() - signature = request.headers.get("X-Razorpay-Signature") + payload = body.decode("utf-8") - if not signature: - raise HTTPException(status_code=400, detail="Missing signature") + # Prepare headers for verification + headers = { + "webhook-id": webhook_id, + "webhook-timestamp": webhook_timestamp, + "webhook-signature": webhook_signature, + } - # Verify webhook signature - if not razorpay_service.verify_webhook_signature(body, signature): - raise HTTPException(status_code=400, detail="Invalid signature") + # Verify webhook signature using Standard Webhooks library + if not payment_webhook_service.verify_webhook_signature(payload, headers): + logger.warning("Invalid webhook signature") + raise HTTPException(status_code=401, detail="Invalid webhook signature") # Parse webhook data - webhook_data = json.loads(body.decode("utf-8")) - event = WebhookEvent(**webhook_data) + webhook_data = json.loads(payload) # Process the webhook - result = await process_webhook(event) + result = await payment_webhook_service.process_webhook(webhook_data) - logger.info(f"Webhook processed successfully: {event.event}") - return result + logger.info(f"Webhook processed: {result.event_type} - {result.status}") + return { + "status": "success", + "event_type": result.event_type, + "processing_status": result.status, + "message": result.message, + } + except HTTPException: + raise except json.JSONDecodeError: logger.error("Invalid JSON in webhook payload") raise HTTPException(status_code=400, detail="Invalid JSON payload") except Exception as e: logger.error(f"Error processing webhook: {e}") raise HTTPException(status_code=500, detail="Webhook processing failed") - - -# Essential config endpoint -@router.get("/config", summary="Get payment configuration") -@limiter.limit("120/minute") # Allow frequent config fetches -async def get_payment_config(request: Request): - """Get payment configuration for frontend integration.""" - from app.config.settings import settings - - return { - "razorpay_key_id": settings.RAZORPAY_KEY_ID, - "currency": "USD", - "company_name": "GAIA", - "theme_color": "#00bbff", - } diff --git a/backend/app/api/v1/router/usage.py b/backend/app/api/v1/router/usage.py index e2b73185..072b866d 100644 --- a/backend/app/api/v1/router/usage.py +++ b/backend/app/api/v1/router/usage.py @@ -16,7 +16,7 @@ get_reset_time, RateLimitPeriod, ) -from app.services.payments.subscriptions import get_user_subscription_status +from app.services.payment_service import payment_service from app.models.payment_models import PlanType from app.decorators.rate_limiting import tiered_limiter @@ -33,7 +33,7 @@ async def get_usage_summary(user: dict = Depends(get_current_user)) -> Dict[str, raise HTTPException(status_code=400, detail="User ID not found") # Get user subscription - subscription = await get_user_subscription_status(user_id) + subscription = await payment_service.get_user_subscription_status(user_id) user_plan = subscription.plan_type or PlanType.FREE # Get real-time usage data directly from Redis diff --git a/backend/app/arq_worker.py b/backend/app/arq_worker.py index 096ea930..6ff8cc79 100644 --- a/backend/app/arq_worker.py +++ b/backend/app/arq_worker.py @@ -12,6 +12,10 @@ from app.config.settings import settings from app.langchain.llm.client import init_llm from app.services.reminder_service import process_reminder_task +# from app.tasks.subscription_cleanup import ( +# cleanup_abandoned_subscriptions, +# reconcile_subscription_payments, +# ) async def startup(ctx: dict): @@ -46,14 +50,37 @@ async def startup(ctx: dict): GraphManager.set_graph(built_graph, graph_name="reminder_processing") -async def shutdown(ctx: dict): - """ARQ worker shutdown function.""" - logger.info("ARQ worker shutting down...") - - # Clean up any resources - startup_time = ctx.get("startup_time", 0) - runtime = asyncio.get_event_loop().time() - startup_time - logger.info(f"ARQ worker ran for {runtime:.2f} seconds") +# async def cleanup_abandoned_subscriptions_task(ctx: dict) -> str: +# """ARQ task wrapper for cleaning up abandoned subscriptions.""" +# try: +# result = await cleanup_abandoned_subscriptions() +# message = f"Subscription cleanup completed. Status: {result['status']}, Cleaned: {result.get('cleaned_up_count', 0)}" +# logger.info(message) +# return message +# except Exception as e: +# error_msg = f"Failed to cleanup abandoned subscriptions: {str(e)}" +# logger.error(error_msg) +# raise + + +# async def reconcile_subscription_payments_task(ctx: dict) -> str: +# """ARQ task wrapper for reconciling subscription payments.""" +# try: +# result = await reconcile_subscription_payments() +# message = f"Payment reconciliation completed. Status: {result['status']}, Reconciled: {result.get('reconciled_count', 0)}, Deactivated: {result.get('deactivated_count', 0)}" +# logger.info(message) +# return message +# except Exception as e: +# error_msg = f"Failed to reconcile subscription payments: {str(e)}" +# logger.error(error_msg) +# raise +# """ARQ worker shutdown function.""" +# logger.info("ARQ worker shutting down...") + +# # Clean up any resources +# startup_time = ctx.get("startup_time", 0) +# runtime = asyncio.get_event_loop().time() - startup_time +# logger.info(f"ARQ worker ran for {runtime:.2f} seconds") async def process_reminder(ctx: dict, reminder_id: str) -> str: @@ -195,6 +222,12 @@ async def renew_gmail_watch_subscriptions(ctx: dict) -> str: return await renew_function(ctx, max_concurrent=15) +async def shutdown(ctx: dict): + """ARQ worker shutdown function.""" + logger.info("ARQ worker shutting down...") + # Clean up any resources if needed + + class WorkerSettings: """ ARQ worker settings configuration. @@ -208,6 +241,8 @@ class WorkerSettings: cleanup_expired_reminders, check_inactive_users, renew_gmail_watch_subscriptions, + # cleanup_abandoned_subscriptions_task, + # reconcile_subscription_payments_task, ] cron_jobs = [ cron( @@ -228,6 +263,17 @@ class WorkerSettings: minute=0, # At the start of the hour second=0, # At the start of the minute ), + # cron( + # cleanup_abandoned_subscriptions_task, + # minute={0, 30}, # Every 30 minutes + # second=0, + # ), + # cron( + # reconcile_subscription_payments_task, + # hour=1, # At 1 AM daily + # minute=0, + # second=0, + # ), ] on_startup = startup on_shutdown = shutdown diff --git a/backend/app/config/loggers.py b/backend/app/config/loggers.py index 4d866630..199a2c97 100644 --- a/backend/app/config/loggers.py +++ b/backend/app/config/loggers.py @@ -19,7 +19,6 @@ search_logger = get_logger(name="search") profiler_logger = get_logger(name="profiler") general_logger = get_logger(name="general") -nltk_logger = get_logger(name="nltk") langchain_logger = get_logger(name="langchain") request_logger = get_logger(name="requests") notification_logger = get_logger(name="notification") diff --git a/backend/app/config/oauth_config.py b/backend/app/config/oauth_config.py index c5d4b1f8..69bd09a4 100644 --- a/backend/app/config/oauth_config.py +++ b/backend/app/config/oauth_config.py @@ -1,8 +1,40 @@ """ OAuth Integration Configuration -This module defines all OAuth integrations dynamically. -Add new integrations by simply adding to the OAUTH_INTEGRATIONS list. +Single source of truth for all OAuth integration configurations in GAIA. +Defines integrations, scopes, display properties, and relationships. + +OAuthScope: Defines OAuth permission scopes with URL and description. +Used for: Backend permission validation, frontend permission displays. + +OAuthIntegration: Core integration definition with fields: +- id: Unique identifier for API endpoints, database records, frontend routing +- name: Human-readable name for frontend UI and user messages +- description: Detailed explanation for integration cards and settings pages +- icons: List of icon URLs for frontend UI components and different display sizes +- category: Groups integrations for frontend filtering, slash commands, settings organization +- provider: OAuth provider for flow routing, token management, API client selection +- scopes: Required permissions for OAuth authorization and validation +- available: Feature flag for frontend display logic and API availability +- oauth_endpoints: Custom OAuth URLs for non-standard providers +- is_special: Marks unified integrations for special frontend handling +- display_priority: Numeric sort order for frontend lists and dropdowns +- included_integrations: Child integration IDs for unified integrations +- short_name: Quick access identifier for slash commands and convenience functions + +IntegrationConfigResponse: API model that converts backend fields to frontend camelCase. + +Used by: +- google_scope_dependencies.py: Permission validation +- integration_checker.py: User permission checking +- oauth.py router: OAuth flows and status endpoints +- Frontend components: Integration cards, settings, slash commands +- Services: API client setup and token management + +Integration types: +- Individual: Single service with own scopes (gmail, google_calendar) +- Unified: Multiple services with combined scopes (google_workspace) +- Coming soon: Placeholder with available=False (github, figma) """ from typing import Dict, List, Optional @@ -22,22 +54,92 @@ class OAuthIntegration(BaseModel): id: str name: str description: str - icon: str + icons: List[str] # List of icon URLs for different contexts/sizes category: str provider: str # 'google', 'github', 'figma', 'notion', etc. scopes: List[OAuthScope] available: bool = True oauth_endpoints: Optional[Dict[str, str]] = None + # Display and organization properties + is_special: bool = False # For unified integrations like Google Workspace + display_priority: int = 0 # Higher priority shows first + included_integrations: List[str] = [] # Child integrations for unified ones + # Short name for slash command dropdowns and quick access + short_name: Optional[str] = None # e.g., "gmail", "calendar", "drive", "docs" + + +class IntegrationConfigResponse(BaseModel): + """Response model for integration configuration.""" + + id: str + name: str + description: str + icons: List[str] + category: str + provider: str + available: bool + loginEndpoint: Optional[str] + isSpecial: bool + displayPriority: int + includedIntegrations: List[str] # Define all integrations dynamically OAUTH_INTEGRATIONS: List[OAuthIntegration] = [ - # Google integrations + # Google Workspace - Unified Integration + OAuthIntegration( + id="google_workspace", + name="Google Workspace", + description="Connect all Google tools at once", + icons=[ + "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Google_%22G%22_logo.svg/1920px-Google_%22G%22_logo.svg.png", + "https://upload.wikimedia.org/wikipedia/commons/7/7e/Gmail_icon_%282020%29.svg", + "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Google_Calendar_icon_%282020%29.svg/640px-Google_Calendar_icon_%282020%29.svg.png", + "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Google_Docs_2020_Logo.svg/640px-Google_Docs_2020_Logo.svg.png", + "https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Google_Drive_icon_%282020%29.svg/640px-Google_Drive_icon_%282020%29.svg.png", + ], + category="productivity", + provider="google", + scopes=[ + # Combined scopes from all Google integrations + OAuthScope( + scope="https://www.googleapis.com/auth/gmail.modify", + description="Read, compose, and send emails", + ), + OAuthScope( + scope="https://www.googleapis.com/auth/calendar.events", + description="Create and manage calendar events", + ), + OAuthScope( + scope="https://www.googleapis.com/auth/calendar.readonly", + description="View calendar events", + ), + OAuthScope( + scope="https://www.googleapis.com/auth/documents", + description="Create and edit documents", + ), + OAuthScope( + scope="https://www.googleapis.com/auth/drive.file", + description="Create and manage files", + ), + ], + is_special=True, + display_priority=100, + included_integrations=[ + "gmail", + "google_calendar", + "google_docs", + "google_drive", + ], + ), + # Individual Google integrations OAuthIntegration( id="google_calendar", name="Google Calendar", description="Schedule and manage your calendar events seamlessly", - icon="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Google_Calendar_icon_%282020%29.svg/640px-Google_Calendar_icon_%282020%29.svg.png", + icons=[ + "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Google_Calendar_icon_%282020%29.svg/640px-Google_Calendar_icon_%282020%29.svg.png" + ], category="productivity", provider="google", scopes=[ @@ -50,12 +152,15 @@ class OAuthIntegration(BaseModel): description="View calendar events", ), ], + short_name="calendar", ), OAuthIntegration( id="google_docs", name="Google Docs", description="Create and edit documents with AI assistance", - icon="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Google_Docs_2020_Logo.svg/640px-Google_Docs_2020_Logo.svg.png", + icons=[ + "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Google_Docs_2020_Logo.svg/640px-Google_Docs_2020_Logo.svg.png" + ], category="productivity", provider="google", scopes=[ @@ -64,12 +169,15 @@ class OAuthIntegration(BaseModel): description="Create and edit documents", ), ], + short_name="docs", ), OAuthIntegration( id="gmail", name="Gmail", description="Manage emails, compose messages, and organize your inbox", - icon="https://upload.wikimedia.org/wikipedia/commons/7/7e/Gmail_icon_%282020%29.svg", + icons=[ + "https://upload.wikimedia.org/wikipedia/commons/7/7e/Gmail_icon_%282020%29.svg" + ], category="communication", provider="google", scopes=[ @@ -78,12 +186,15 @@ class OAuthIntegration(BaseModel): description="Read, compose, and send emails", ), ], + short_name="gmail", ), OAuthIntegration( id="google_drive", name="Google Drive", description="Access and manage your files in the cloud", - icon="https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Google_Drive_icon_%282020%29.svg/640px-Google_Drive_icon_%282020%29.svg.png", + icons=[ + "https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Google_Drive_icon_%282020%29.svg/640px-Google_Drive_icon_%282020%29.svg.png" + ], category="storage", provider="google", scopes=[ @@ -92,48 +203,57 @@ class OAuthIntegration(BaseModel): description="Create and manage files", ), ], + short_name="drive", ), # Coming soon integrations - OAuthIntegration( - id="github", - name="GitHub", - description="Manage repositories, issues, and pull requests", - icon="https://cdn.brandfetch.io/idZAyF9rlg/theme/light/symbol.svg?c=1dxbfHSJFAPEGdCLU4o5B", - category="development", - provider="github", - scopes=[], - available=False, - ), - OAuthIntegration( - id="figma", - name="Figma", - description="Create and collaborate on design projects", - icon="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/figma/figma-original.svg", - category="creative", - provider="figma", - scopes=[], - available=False, - ), - OAuthIntegration( - id="notion", - name="Notion", - description="Manage pages, databases, and workspace content with AI", - icon="https://upload.wikimedia.org/wikipedia/commons/4/45/Notion_app_logo.png", - category="productivity", - provider="notion", - scopes=[], - available=False, - ), - OAuthIntegration( - id="whatsapp", - name="WhatsApp", - description="Send and receive messages", - icon="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/WhatsApp.svg/1024px-WhatsApp.svg.png?20220228223904", - category="communication", - provider="facebook", - scopes=[], - available=False, - ), + # OAuthIntegration( + # id="github", + # name="GitHub", + # description="Manage repositories, issues, and pull requests", + # icons=[ + # "https://cdn.brandfetch.io/idZAyF9rlg/theme/light/symbol.svg?c=1dxbfHSJFAPEGdCLU4o5B" + # ], + # category="development", + # provider="github", + # scopes=[], + # available=False, + # ), + # OAuthIntegration( + # id="figma", + # name="Figma", + # description="Create and collaborate on design projects", + # icons=[ + # "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/figma/figma-original.svg" + # ], + # category="creative", + # provider="figma", + # scopes=[], + # available=False, + # ), + # OAuthIntegration( + # id="notion", + # name="Notion", + # description="Manage pages, databases, and workspace content with AI", + # icons=[ + # "https://upload.wikimedia.org/wikipedia/commons/4/45/Notion_app_logo.png" + # ], + # category="productivity", + # provider="notion", + # scopes=[], + # available=False, + # ), + # OAuthIntegration( + # id="whatsapp", + # name="WhatsApp", + # description="Send and receive messages", + # icons=[ + # "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/WhatsApp.svg/1024px-WhatsApp.svg.png?20220228223904" + # ], + # category="communication", + # provider="facebook", + # scopes=[], + # available=False, + # ), ] @@ -158,3 +278,44 @@ def get_integration_scopes(integration_id: str) -> List[str]: if not integration: return [] return [scope.scope for scope in integration.scopes] + + +def get_unified_integrations() -> List[OAuthIntegration]: + """Get all unified/special integrations.""" + return [i for i in OAUTH_INTEGRATIONS if i.is_special] + + +def get_individual_integrations() -> List[OAuthIntegration]: + """Get all individual (non-unified) integrations.""" + return [i for i in OAUTH_INTEGRATIONS if not i.is_special] + + +def get_integrations_sorted_by_priority() -> List[OAuthIntegration]: + """Get all integrations sorted by display priority (highest first).""" + return sorted(OAUTH_INTEGRATIONS, key=lambda x: x.display_priority, reverse=True) + + +def is_integration_included_in_unified(integration_id: str, unified_id: str) -> bool: + """Check if an integration is included in a unified integration.""" + unified = get_integration_by_id(unified_id) + if not unified or not unified.is_special: + return False + return integration_id in unified.included_integrations + + +def get_included_integration_ids(unified_id: str) -> List[str]: + """Get all integration IDs included in a unified integration.""" + unified = get_integration_by_id(unified_id) + if not unified or not unified.is_special: + return [] + return unified.included_integrations + + +def get_integration_by_short_name(short_name: str) -> Optional[OAuthIntegration]: + """Get an integration by its short name (used in slash commands).""" + return next((i for i in OAUTH_INTEGRATIONS if i.short_name == short_name), None) + + +def get_short_name_mapping() -> Dict[str, str]: + """Get mapping of short names to integration IDs for convenience functions.""" + return {i.short_name: i.id for i in OAUTH_INTEGRATIONS if i.short_name} diff --git a/backend/app/config/rate_limits.py b/backend/app/config/rate_limits.py index e302750b..2b3d69e0 100644 --- a/backend/app/config/rate_limits.py +++ b/backend/app/config/rate_limits.py @@ -20,9 +20,9 @@ async def generate_image(user: dict = Depends(get_current_user)): from datetime import datetime, timedelta, timezone from enum import Enum from typing import Dict -from pydantic import BaseModel from app.models.payment_models import PlanType +from pydantic import BaseModel class RateLimitPeriod(str, Enum): diff --git a/backend/app/config/sentry.py b/backend/app/config/sentry.py new file mode 100644 index 00000000..4513d633 --- /dev/null +++ b/backend/app/config/sentry.py @@ -0,0 +1,33 @@ +""" +Sentry configuration for error tracking and performance monitoring. +""" + +from app.config.loggers import app_logger as logger +import sentry_sdk + +from app.config.settings import settings + + +def init_sentry(): + """Initialize Sentry error tracking if DSN is configured.""" + + if not settings.SENTRY_DSN: + logger.info("SENTRY_DSN is not configured, skipping Sentry initialization.") + return + + logger.info("SENTRY_DSN is configured, initializing Sentry.") + sentry_sdk.init( + dsn=settings.SENTRY_DSN, + # Add data like request headers and IP for users, + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info + send_default_pii=True, + # Set traces_sample_rate to 1.0 to capture 100% + # of transactions for tracing. + traces_sample_rate=0.1 if settings.ENV == "production" else 1.0, + # Set profile_session_sample_rate to 1.0 to profile 100% + # of profile sessions. + profiles_sample_rate=0.1 if settings.ENV == "production" else 1.0, + # Set profile_lifecycle to "trace" to automatically + # run the profiler on when there is an active transaction + profile_lifecycle="trace", + ) diff --git a/backend/app/config/settings.py b/backend/app/config/settings.py index b7ffa2e9..74e4689a 100644 --- a/backend/app/config/settings.py +++ b/backend/app/config/settings.py @@ -78,9 +78,13 @@ class Settings(BaseSettings): # OAuth & Authentication GOOGLE_CLIENT_ID: str GOOGLE_CLIENT_SECRET: str + ENABLE_PUBSUB_JWT_VERIFICATION: bool = True GOOGLE_USERINFO_URL: str = "https://www.googleapis.com/oauth2/v2/userinfo" GOOGLE_TOKEN_URL: str = "https://oauth2.googleapis.com/token" + # Google + GOOGLE_API_KEY: str + # WorkOS Authentication WORKOS_API_KEY: str = "" WORKOS_CLIENT_ID: str = "" @@ -111,13 +115,6 @@ class Settings(BaseSettings): DISABLE_PROFILING: bool = False WORKER_TYPE: str = "unknown" - # Hugging Face Configuration - USE_HUGGINGFACE_API: bool = False - HUGGINGFACE_API_KEY: str - HUGGINGFACE_IMAGE_MODEL: str = "Salesforce/blip-image-captioning-large" - HUGGINGFACE_ZSC_MODEL: str = "MoritzLaurer/deberta-v3-base-zeroshot-v2.0" - HUGGINGFACE_ROUTER_URL: str = "https://router.huggingface.co/hf-inference/models/" - # Miscellaneous LLAMA_INDEX_KEY: str OPENAI_API_KEY: str @@ -134,9 +131,15 @@ class Settings(BaseSettings): # Code Execution E2B_API_KEY: str - # Razorpay Configuration - RAZORPAY_KEY_ID: str - RAZORPAY_KEY_SECRET: str + # Dodo Payments Configuration + DODO_PAYMENTS_API_KEY: str + DODO_WEBHOOK_PAYMENTS_SECRET: str = "" + + # Analytics Configuration + SENTRY_DSN: str = "" + + # Cerebras AI Configuration + CEREBRAS_API_KEY: str @computed_field # type: ignore @property diff --git a/backend/app/config/token_repository.py b/backend/app/config/token_repository.py index 05cddb65..27bfb484 100644 --- a/backend/app/config/token_repository.py +++ b/backend/app/config/token_repository.py @@ -9,7 +9,7 @@ """ import json -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from typing import Any, Dict, List, Optional from app.config.loggers import token_repository_logger as logger @@ -84,7 +84,7 @@ def _get_token_expiration(self, token_data: dict) -> datetime: return datetime.now() + timedelta(seconds=expires_in) except (ValueError, TypeError): logger.warning(f"Invalid expires_in: {expires_in}, using default") - return datetime.utcnow() + timedelta(seconds=3600) + return datetime.now(timezone.utc) + timedelta(seconds=3600) async def store_token( self, user_id: str, provider: str, token_data: Dict[str, Any] @@ -217,11 +217,6 @@ async def get_token( } ) - # Log token status for debugging - logger.debug( - f"Token expiry status - is_expired: {oauth_token.is_expired()}, will_renew: {renew_if_expired}" - ) - # Check if token is expired if renew_if_expired and oauth_token.is_expired(): # Token is expired, attempt to refresh it diff --git a/backend/app/core/lifespan.py b/backend/app/core/lifespan.py index c9d6cdb3..57b38886 100644 --- a/backend/app/core/lifespan.py +++ b/backend/app/core/lifespan.py @@ -7,8 +7,6 @@ from app.db.rabbitmq import publisher from app.langchain.core.graph_builder.build_graph import build_graph from app.langchain.core.graph_manager import GraphManager -from app.utils.nltk_utils import download_nltk_resources -from app.utils.text_utils import get_zero_shot_classifier from app.utils.websocket_consumer import ( start_websocket_consumer, stop_websocket_consumer, @@ -24,9 +22,8 @@ async def lifespan(app: FastAPI): """ try: logger.info("Starting up the API...") + await init_chroma(app) - download_nltk_resources() - get_zero_shot_classifier() init_cloudinary() try: diff --git a/backend/app/core/middleware.py b/backend/app/core/middleware.py index c880beb8..872c6e24 100644 --- a/backend/app/core/middleware.py +++ b/backend/app/core/middleware.py @@ -13,7 +13,7 @@ from fastapi.responses import JSONResponse from slowapi.errors import RateLimitExceeded from slowapi.middleware import SlowAPIMiddleware -from workos import WorkOSClient +from workos import AsyncWorkOSClient async def rate_limit_handler(request: Request, exc: Exception) -> JSONResponse: @@ -61,7 +61,7 @@ def configure_middleware(app: FastAPI) -> None: ) # Add WorkOS authentication middleware - workos_client = WorkOSClient( + workos_client = AsyncWorkOSClient( api_key=settings.WORKOS_API_KEY, client_id=settings.WORKOS_CLIENT_ID ) app.add_middleware(WorkOSAuthMiddleware, workos_client=workos_client) diff --git a/backend/app/db/chromadb.py b/backend/app/db/chromadb.py index 47e67677..0d6510d8 100644 --- a/backend/app/db/chromadb.py +++ b/backend/app/db/chromadb.py @@ -2,26 +2,25 @@ from typing import Dict, Optional import chromadb +from app.config.loggers import chroma_logger as logger +from app.config.settings import settings from chromadb.api import AsyncClientAPI, ClientAPI from chromadb.config import Settings from fastapi import Request from langchain_chroma import Chroma -from langchain_huggingface import HuggingFaceEmbeddings - -from app.config.loggers import chroma_logger as logger -from app.config.settings import settings +from langchain_google_genai import GoogleGenerativeAIEmbeddings @lru_cache(maxsize=1) def get_langchain_embedding_model(): """ - Lazy-load the HuggingFace embedding model and cache it. + Lazy-load the Google Gemini embedding model and cache it. Returns: - HuggingFaceEmbeddings: The embedding model + GoogleGenerativeAIEmbeddings: The embedding model """ - return HuggingFaceEmbeddings( - model_name="all-MiniLM-L6-v2", + return GoogleGenerativeAIEmbeddings( + model="models/gemini-embedding-001", ) diff --git a/backend/app/db/mongodb/collections.py b/backend/app/db/mongodb/collections.py index 2dd46447..9b3aea77 100644 --- a/backend/app/db/mongodb/collections.py +++ b/backend/app/db/mongodb/collections.py @@ -24,10 +24,10 @@ reminders_collection = mongodb_instance.get_collection("reminders") support_collection = mongodb_instance.get_collection("support_requests") -# Payment collections -plans_collection = mongodb_instance.get_collection("subscription_plans") -subscriptions_collection = mongodb_instance.get_collection("subscriptions") +# Payment-related collections payments_collection = mongodb_instance.get_collection("payments") +subscriptions_collection = mongodb_instance.get_collection("subscriptions") +plans_collection = mongodb_instance.get_collection("subscription_plans") # Usage usage_snapshots_collection = mongodb_instance.get_collection("usage_snapshots") diff --git a/backend/app/db/mongodb/indexes.py b/backend/app/db/mongodb/indexes.py index bd5420c3..dd4a9733 100644 --- a/backend/app/db/mongodb/indexes.py +++ b/backend/app/db/mongodb/indexes.py @@ -423,27 +423,28 @@ async def create_payment_indexes(): try: # Create payment collection indexes await asyncio.gather( - # Payment indexes - payments_collection.create_index("user_id"), - payments_collection.create_index("razorpay_payment_id", unique=True), - payments_collection.create_index("subscription_id", sparse=True), - payments_collection.create_index("order_id", sparse=True), + # Payment indexes - for successful payments only + payments_collection.create_index("dodo_payment_id", unique=True), + payments_collection.create_index("dodo_subscription_id", sparse=True), + payments_collection.create_index("customer_email"), payments_collection.create_index("status"), - payments_collection.create_index([("user_id", 1), ("created_at", -1)]), - # Subscription indexes - subscriptions_collection.create_index("user_id"), - subscriptions_collection.create_index( - "razorpay_subscription_id", unique=True + payments_collection.create_index( + [("customer_email", 1), ("created_at", -1)] ), - subscriptions_collection.create_index("plan_id"), + payments_collection.create_index("webhook_processed_at", sparse=True), + # Subscription indexes - for active subscriptions only + subscriptions_collection.create_index("user_id"), + subscriptions_collection.create_index("dodo_subscription_id", unique=True), + subscriptions_collection.create_index("product_id"), subscriptions_collection.create_index("status"), subscriptions_collection.create_index([("user_id", 1), ("status", 1)]), - subscriptions_collection.create_index("current_end", sparse=True), - subscriptions_collection.create_index("charge_at", sparse=True), - # Plan indexes - plans_collection.create_index("razorpay_plan_id", unique=True), + subscriptions_collection.create_index([("user_id", 1), ("created_at", -1)]), + subscriptions_collection.create_index("webhook_processed_at", sparse=True), + # Plans indexes plans_collection.create_index("is_active"), + plans_collection.create_index("dodo_product_id", sparse=True), plans_collection.create_index([("is_active", 1), ("amount", 1)]), + plans_collection.create_index([("name", 1), ("duration", 1)]), ) logger.info("Created payment indexes") diff --git a/backend/app/db/redis.py b/backend/app/db/redis.py index db5906b8..efc595d5 100644 --- a/backend/app/db/redis.py +++ b/backend/app/db/redis.py @@ -3,10 +3,9 @@ from typing import Any import redis.asyncio as redis -from pydantic import BaseModel - from app.config.loggers import redis_logger as logger from app.config.settings import settings +from pydantic import BaseModel ONE_YEAR_TTL = 31_536_000 ONE_HOUR_TTL = 3600 @@ -90,6 +89,17 @@ async def delete(self, key: str): except Exception as e: logger.error(f"Error deleting Redis key {key}: {e}") + @property + def client(self): + """ + Get the Redis client instance. + """ + if not self.redis: + self.redis = redis.from_url(self.redis_url, decode_responses=True) + logger.info("Re-initialized Redis connection.") + + return self.redis + # Initialize the Redis cache redis_cache = RedisCache() diff --git a/backend/app/decorators/rate_limiting.py b/backend/app/decorators/rate_limiting.py index 0b936734..ff60d8af 100644 --- a/backend/app/decorators/rate_limiting.py +++ b/backend/app/decorators/rate_limiting.py @@ -16,7 +16,7 @@ tiered_limiter, RateLimitExceededException, ) -from app.services.payments.subscriptions import get_user_subscription_status +from app.services.payment_service import payment_service from app.models.payment_models import PlanType from app.config.loggers import app_logger from app.db.redis import redis_cache @@ -205,7 +205,7 @@ async def wrapper(*args, **kwargs): raise HTTPException(status_code=401, detail="User ID not found") # Get user subscription - subscription = await get_user_subscription_status(user_id) + subscription = await payment_service.get_user_subscription_status(user_id) user_plan = subscription.plan_type or PlanType.FREE # Check rate limits before executing function @@ -292,7 +292,7 @@ async def _get_cached_subscription(user_id: str): app_logger.debug(f"Cache lookup failed for user {user_id}: {str(e)}") # Fetch and cache - subscription = await get_user_subscription_status(user_id) + subscription = await payment_service.get_user_subscription_status(user_id) # Cache for 5 minutes try: diff --git a/backend/app/docstrings/langchain/tools/calendar_tool_docs.py b/backend/app/docstrings/langchain/tools/calendar_tool_docs.py index 2f1b04b0..332a68c7 100644 --- a/backend/app/docstrings/langchain/tools/calendar_tool_docs.py +++ b/backend/app/docstrings/langchain/tools/calendar_tool_docs.py @@ -1,13 +1,36 @@ """Docstrings for calendar-related tools.""" CALENDAR_EVENT = """ -Create structured calendar events from LLM-generated data. +CALENDAR — CREATE: This tool is used to create calendar events. This tool processes event details and returns a structured JSON response. The frontend will use this response to render event options that the user must manually confirm. +TIMEZONE HANDLING: +• SIMPLIFIED APPROACH: Use only two fields for handling time + - `time_str`: For relative times, use offset format like "+02:30" (2 hours and 30 minutes from now) + - `time_str`: For absolute times, use ISO format like "2025-08-08T16:30:00" + - `duration_minutes`: Specify event duration in minutes (defaults to 30 if not provided) + +• **MANDATORY TIMEZONE RULE**: + - If the user explicitly mentions a timezone (e.g., "EST", "PST", "IST", "GMT+5:30"), you MUST always include the corresponding `timezone_offset` in the output. + - This is **not optional** — never omit `timezone_offset` if a timezone is stated. + - If no timezone is mentioned, do not provide `timezone_offset`. + +EXAMPLES (Current time: 2025-08-08T14:30:00Z): +• User: "Create event in 2 hours" → time_str: "+02:00", duration_minutes: 30 +• User: "Schedule meeting at 4:30 PM today for 1 hour" → time_str: "2025-08-08T16:30:00", duration_minutes: 60 +• User: "Book appointment tomorrow at 9 AM EST for 45 minutes" → time_str: "2025-08-09T09:00:00", timezone_offset: "-05:00", duration_minutes: 45 +• User: "Create event for classes tomorrow at 10 AM PST for 1 hour" → time_str: "2025-08-09T10:00:00", timezone_offset: "-08:00", duration_minutes: 60 + +The backend will handle all timezone calculations automatically. Your only responsibility is to include `timezone_offset` whenever the user states a timezone. + Important: - This tool does NOT directly create calendar events. - The user must review and confirm the events before they are added to their calendar. +- For relative times (like "in 2 hours"), provide time_str as an offset string (e.g., "+02:00") +- For absolute times (like "at 3 PM"), provide time_str in ISO format (e.g., "2025-08-08T16:30:00") +- Specify duration_minutes for how long the event should last (defaults to 30 minutes if not specified) +- Only provide timezone_offset when a specific timezone is explicitly mentioned. --- @@ -17,25 +40,30 @@ - Schedule a single or recurring event - Set up meetings, calls, appointments, or reminders - Define repeating events like "every Monday", "1st of every month", or "every January and June" +- Create multiple events at once (use array input) -You may return: -- A single event object -- An array of event objects +This tool handles both single events and multiple events in one call: +- Single event: Pass one EventCreateRequest object +- Multiple events: Pass an array of EventCreateRequest objects + +IMPORTANT: When creating multiple events, always use a single tool call with an array. +Never make separate tool calls for each event in the same message. --- -EVENT FORMAT: `EventCreateRequest` +EVENT FORMAT: `CalendarEventToolRequest` Each event must include the following fields: - `summary` (str): Required. Title or name of the event. - `description` (str): Optional. Extra information about the event. - `is_all_day` (bool): Required. Set to `true` if the event is an all-day event. -- `start` (str): Required if `is_all_day` is `false`. Must follow ISO 8601 format: `YYYY-MM-DDTHH:MM:SS±HH:MM`. -- `end` (str): Required if `is_all_day` is `false`. Same format as `start`. +- `time_str` (str): Required if `is_all_day` is `false`. Either: + - Relative time offset in format "+HH:MM" (e.g., "+02:30" for 2 hours and 30 minutes from now) + - Absolute time in ISO 8601 format: `YYYY-MM-DDTHH:MM:SS`. +- `duration_minutes` (int): Optional. Duration of the event in minutes. Defaults to 30 if not specified. +- `timezone_offset` (str): Optional. Only provide when user explicitly mentions a timezone (e.g., "-05:00" for EST). - `calendar_id` (str): Optional. ID of the calendar to add the event to. -- `calendar_name` (str): Optional. Display name of the calendar. -- `calendar_color` (str): Optional. Hex color for visual distinction (e.g., `#00bbff`). - `recurrence` (RecurrenceData): Optional. Used for recurring events. --- @@ -113,12 +141,12 @@ User says: *“Set up a team sync every Monday at 10 AM for the next 4 weeks.”* ```json -{ +[{ "summary": "Team Sync", "description": "Weekly standup with dev team", "is_all_day": false, - "start": "2025-08-04T10:00:00+05:30", - "end": "2025-08-04T10:30:00+05:30", + "time_str": "2025-08-04T10:00:00", + "duration_minutes": 30, "recurrence": { "rrule": { "frequency": "WEEKLY", @@ -127,20 +155,21 @@ "by_day": ["MO"] } } -} +}] ```` 2. **Monthly event with skipped and added dates:** -User says: *“Can you please create recurring calendar event for everyday at 10PM about standup meeting on every Mon, Tue, Friday in Aug, Sep, Oct, excluding 8 Aug”* +User says: *“Can you please create recurring calendar event for everyday at 10PM PST about standup meeting on every Mon, Tue, Friday in Aug, Sep, Oct, excluding 8 Aug”* ```json -{ +[{ "summary": "Standup Meeting", "description": "Recurring team standup", "is_all_day": false, - "start": "2025-08-04T22:00:00+05:30", - "end": "2025-08-04T22:30:00+05:30", + "time_str": "2025-08-04T22:00:00", + "duration_minutes": 30, + "timezone_offset": "-08:00", "recurrence": { "rrule": { "frequency": "WEEKLY", @@ -150,13 +179,26 @@ "exclude_dates": ["2025-08-08"] } } -} +}] ``` --- +CRITICAL USAGE RULE: + +This tool takes an ARRAY input and is designed to handle multiple events in a single call. +NEVER call this tool multiple times in the same message, even if creating multiple events. + +✓ CORRECT: Pass all events in one array: [event1, event2, event3] +✗ INCORRECT: Call the tool separately for each event (causes system issues) + +Always batch multiple event creations into a single tool call using the array parameter. +This prevents conflicts and ensures proper event processing. + +--- + Args: - event_data: Single EventCreateRequest object or array of EventCreateRequest objects + events_data: array of CalendarEventToolRequest objects Returns: str: Confirmation message or JSON string containing formatted calendar event options for user confirmation. @@ -164,7 +206,7 @@ FETCH_CALENDAR_LIST = """ -Retrieves the user's available calendars using their access token. +CALENDAR — LIST: This tool is used to fetch the user's calendar list. This tool securely accesses the user's access token from the config metadata and calls the calendar service to fetch all available calendars. @@ -185,7 +227,7 @@ """ FETCH_CALENDAR_EVENTS = """ -Fetch calendar events from the user's selected calendars. +CALENDAR — FETCH EVENTS: This tool is used to fetch calendar events. This tool retrieves events from the user's calendar based on optional filters like time range and specific calendar selection. It uses the user's access token to securely fetch events. @@ -220,7 +262,7 @@ """ SEARCH_CALENDAR_EVENTS = """ -Search for specific calendar events based on a text query. +CALENDAR — SEARCH EVENTS: This tool is used to search calendar events. This tool searches through the user's calendar events to find matches based on event titles, descriptions, or calendar names. It performs case-insensitive text matching. @@ -245,7 +287,7 @@ """ VIEW_CALENDAR_EVENT = """ -Retrieve detailed information about a specific calendar event. +CALENDAR — VIEW EVENT: This tool is used to view a calendar event by ID. This tool fetches complete details for a single calendar event using its event ID and calendar ID. It provides comprehensive information about the event including all metadata. @@ -283,7 +325,7 @@ """ DELETE_CALENDAR_EVENT = """ -Delete a calendar event using either search or known identifiers — never assume anything. +CALENDAR — DELETE: This tool is used to delete or cancel calendar events (confirmation required). Purpose: Use this tool **only when the user wants to cancel or delete an existing calendar event**. @@ -318,7 +360,7 @@ """ EDIT_CALENDAR_EVENT = """ -Edit a calendar event using either search or known identifiers — never assume anything. +CALENDAR — EDIT: This tool is used to modify or update existing calendar events. Purpose: Use this tool **only when the user wants to update, change, or modify details of an existing calendar event**. @@ -336,6 +378,18 @@ Do not assume or guess `event_id` or `calendar_id`. Use only if previously retrieved. Otherwise, use a `query`. +TIMEZONE HANDLING FOR UPDATES: +• RELATIVE TIME (e.g., "move it 2 hours later", "shift by 30 minutes"): For any time described relative to the event's current time, you MUST calculate the new time and ALWAYS set `timezone_offset` to `"+00:00"`. This is a strict requirement. Do not use any other offset. +• ABSOLUTE TIME (e.g., "change to 4:30 PM", "move to tomorrow at 9 AM") → Provide the new time as-is, timezone_offset will be processed internally based on user's timezone +• EXPLICIT TIMEZONE: Use timezone_offset parameter if user explicitly mentions a timezone (e.g., "change to 3 PM EST", "move to 9 AM +05:30") + +EXAMPLES FOR TIME UPDATES: +• User: "Move my meeting 2 hours later" → Calculate new time: original_start + 2 hours → start: "calculated_time", timezone_offset: "+00:00" +• User: "Change meeting to 4:30 PM today" → start: "2025-08-08T16:30:00" (timezone_offset: null - processed internally) +• User: "Reschedule to tomorrow at 9 AM PST" → start: "2025-08-09T09:00:00", timezone_offset: "-08:00" + +The calendar tool will process all updated times internally and send final calculated times to the frontend. + Important: This tool does not immediately apply updates. It sends the updated event to the frontend for user confirmation. Changes are finalized only after user approval. @@ -350,10 +404,10 @@ - OR `query` (from user's event description) summary (str, optional): New event title description (str, optional): New event description - start (str, optional): New start time (ISO 8601) - end (str, optional): New end time (ISO 8601) + start (str, optional): New start time (ISO 8601 format: YYYY-MM-DDTHH:MM:SS) + end (str, optional): New end time (ISO 8601 format: YYYY-MM-DDTHH:MM:SS) is_all_day (bool, optional): Whether it's an all-day event - timezone (str, optional): Timezone for the updated event + timezone_offset (str, optional): Timezone offset in (+|-)HH:MM format. Only use if user explicitly mentions a timezone recurrence (RecurrenceData, optional): New recurrence pattern Returns: diff --git a/backend/app/docstrings/langchain/tools/support_tool_docs.py b/backend/app/docstrings/langchain/tools/support_tool_docs.py new file mode 100644 index 00000000..eb3afbcb --- /dev/null +++ b/backend/app/docstrings/langchain/tools/support_tool_docs.py @@ -0,0 +1,46 @@ +"""Docstrings for support-related LangChain tools.""" + +CREATE_SUPPORT_TICKET = """ +Create a support ticket draft for user review and submission. + +This tool prepares support ticket data and streams it to the frontend for user review. +The user can edit the details and submit the ticket when ready via the UI. + +SUPPORT REQUEST TYPES: +• SUPPORT - Technical issues, bugs, account problems, general help +• FEATURE - Feature requests, enhancement suggestions, new functionality + +USAGE: +When users express need for help, have issues, want to report bugs, request features, +or need to contact support, use this tool to prepare a support ticket draft. + +EXAMPLES: +• "I'm having trouble with my account" → type: "support" +• "Can you add a dark mode feature?" → type: "feature" +• "The app keeps crashing" → type: "support" +• "I'd like to request a new integration" → type: "feature" + +PROCESS: +1. Determines the appropriate type based on user request +2. Prepares support ticket data with user information +3. Streams the data to frontend for user review and editing +4. User can modify details and submit via the UI +5. Final submission generates ticket ID and sends email notifications + +USAGE RULES: +• Make sure to use plain text only, no markdown formatting +• NEVER call this tool multiple times in one request +• Draft your message and title comprehensively to include all necessary information +• One tool call should contain complete details for the entire support request + +The user will see a review card where they can edit the ticket details before +submitting to the support team. + +Args: + type: "support" for technical issues/help, "feature" for enhancement requests + title: Brief, descriptive title of the issue or request (1-200 characters) + description: Detailed explanation of the issue, steps to reproduce, or feature details (10-5000 characters). Use plain text only, no markdown formatting. + +Returns: + String confirmation that the support ticket draft has been prepared for review +""" diff --git a/backend/app/langchain/core/agent.py b/backend/app/langchain/core/agent.py index 64c78455..4a93360e 100644 --- a/backend/app/langchain/core/agent.py +++ b/backend/app/langchain/core/agent.py @@ -137,7 +137,10 @@ async def store_memory(): except Exception as e: logger.error(f"Error when calling agent: {e}") - yield "data: {'error': 'Error when calling agent: {e}'}\n\n" + error_dict = { + "error": f"Error when calling agent: {e}", + } + yield f"data: {json.dumps(error_dict)}\n\n" yield "data: [DONE]\n\n" diff --git a/backend/app/langchain/core/graph_builder/build_graph.py b/backend/app/langchain/core/graph_builder/build_graph.py index a6724679..494a242c 100644 --- a/backend/app/langchain/core/graph_builder/build_graph.py +++ b/backend/app/langchain/core/graph_builder/build_graph.py @@ -1,15 +1,8 @@ from contextlib import asynccontextmanager from typing import List, Optional -from langchain_core.language_models import LanguageModelLike -from langchain_huggingface import HuggingFaceEmbeddings -from langgraph.checkpoint.memory import InMemorySaver -from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver -from langgraph.constants import END -from langgraph.store.memory import InMemoryStore -from langgraph_bigtool import create_agent - from app.config.settings import settings +from app.langchain.core.nodes.follow_up_actions_node import follow_up_actions_node from app.langchain.llm.client import init_llm # from app.langchain.tools.core.injectors import ( @@ -19,8 +12,13 @@ # ) from app.langchain.tools.core.registry import ALWAYS_AVAILABLE_TOOLS, tools from app.langchain.tools.core.retrieval import retrieve_tools -from app.langchain.core.nodes.follow_up_actions_node import follow_up_actions_node - +from langchain_core.language_models import LanguageModelLike +from langchain_google_genai import GoogleGenerativeAIEmbeddings +from langgraph.checkpoint.memory import InMemorySaver +from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver +from langgraph.constants import END +from langgraph.store.memory import InMemoryStore +from langgraph_bigtool import create_agent llm = init_llm() @@ -41,13 +39,13 @@ async def build_graph( tool_registry = {tool.name: tool for tool in all_tools} - embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") + embeddings = GoogleGenerativeAIEmbeddings(model="models/gemini-embedding-001") # Create store for tool discovery store = InMemoryStore( index={ "embed": embeddings, - "dims": 384, + "dims": 768, "fields": ["description"], } ) diff --git a/backend/app/langchain/core/graph_builder/build_mail_processing_graph.py b/backend/app/langchain/core/graph_builder/build_mail_processing_graph.py index a9f46ad6..ce01b541 100644 --- a/backend/app/langchain/core/graph_builder/build_mail_processing_graph.py +++ b/backend/app/langchain/core/graph_builder/build_mail_processing_graph.py @@ -15,7 +15,7 @@ from langchain_core.messages import AIMessageChunk from langchain_core.output_parsers import PydanticOutputParser from langchain_core.prompts import ChatPromptTemplate -from langchain_huggingface import HuggingFaceEmbeddings +from langchain_google_genai import GoogleGenerativeAIEmbeddings from langgraph.checkpoint.memory import InMemorySaver from langgraph.config import get_stream_writer from langgraph.constants import END, START @@ -61,13 +61,15 @@ async def build_mail_processing_graph(): all_tools = tools + ALWAYS_AVAILABLE_TOOLS tool_registry = {tool.name: tool for tool in all_tools} - embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") + embeddings = GoogleGenerativeAIEmbeddings( + model="models/gemini-embedding-001", + ) # Create store for tool discovery store = InMemoryStore( index={ "embed": embeddings, - "dims": 384, + "dims": 768, "fields": ["description"], } ) diff --git a/backend/app/langchain/core/messages.py b/backend/app/langchain/core/messages.py index 8a7e1800..3fd4b8a7 100644 --- a/backend/app/langchain/core/messages.py +++ b/backend/app/langchain/core/messages.py @@ -33,6 +33,7 @@ async def construct_langchain_messages( Returns: List of LangChain message objects (SystemMessage + HumanMessage only) """ + # Format current time for the system prompt formatted_time = datetime.now(timezone.utc).strftime("%A, %B %d, %Y, %H:%M:%S UTC") @@ -98,7 +99,7 @@ async def construct_langchain_messages( human_message_content += f"\n\n**TOOL SELECTION:** The user has specifically selected the '{tool_display_name}' tool and wants you to execute it to handle their request above. You must use the {selected_tool} tool to process their request. Do not suggest alternatives - the user has already chosen this specific tool for their task." else: # No user content, just tool selection - human_message_content = f"**TOOL EXECUTION REQUEST:** The user has selected the '{tool_display_name}' tool and wants you to execute it immediately. Use the {selected_tool} tool now. This is a direct tool execution request with no additional context needed. If you don't have tool context, use retrieve_tools to get tool information. Ignore older tools requests and focus on the current tool selection. You must use the {selected_tool} tool to process their request." + human_message_content = f"**TOOL EXECUTION REQUEST:** The user has selected the '{tool_display_name}' tool and wants you to execute it immediately. Use the {selected_tool} tool now. This is a direct tool execution request with no additional context needed. If you don't have tool context, use retrieve_tools to get tool information. Ignore older tools requests and focus on the current tool selection. You must use the {selected_tool} tool to process their request. If requested tool is not available then use `retrieve_tools` to get the relevant tool information." # If no human message then return error if not human_message_content: diff --git a/backend/app/langchain/llm/client.py b/backend/app/langchain/llm/client.py index 66ba73dd..9dd20456 100644 --- a/backend/app/langchain/llm/client.py +++ b/backend/app/langchain/llm/client.py @@ -1,16 +1,17 @@ +from langchain_cerebras import ChatCerebras from langchain_google_genai import ChatGoogleGenerativeAI -from langchain_openai import ChatOpenAI -MODEL = "gpt-4o-mini" +# MODEL = "gpt-4o-mini" GEMINI_MODEL = "gemini-1.5-flash" +CEREBRAS_MODEL = "gpt-oss-120b" -def init_llm(streaming: bool = True): - return ChatOpenAI( - model=MODEL, - temperature=0.1, - streaming=streaming, - ) +# def init_llm(streaming: bool = True): +# return ChatOpenAI( +# model=MODEL, +# temperature=0.1, +# streaming=streaming, +# ) def init_gemini_llm(): @@ -18,3 +19,12 @@ def init_gemini_llm(): model=GEMINI_MODEL, temperature=0.1, ) + + +def init_llm(streaming: bool = True): + return ChatCerebras( + model=CEREBRAS_MODEL, + temperature=0.1, + streaming=streaming, + reasoning_effort="medium", + ) diff --git a/backend/app/langchain/prompts/agent_prompts.py b/backend/app/langchain/prompts/agent_prompts.py index 448203e7..1a978321 100644 --- a/backend/app/langchain/prompts/agent_prompts.py +++ b/backend/app/langchain/prompts/agent_prompts.py @@ -16,7 +16,7 @@ **Calendar:** • fetch_calendar_list - Get user's available calendars (ALWAYS call this first) -• create_calendar_event - Create calendar events (accepts single object or array) +• create_calendar_event - Create calendar events (accepts array) • edit_calendar_event - Edit/update events by searching with non-exact names • fetch_calendar_events - Get events from specific calendars in a specific time range • search_calendar_events - Search for events across calendars @@ -79,6 +79,10 @@ • search_reminders - Find reminders by name, time, or content • get_reminder - Get full details of a specific reminder +**Support** +• create_support_ticket - Create support tickets for technical issues, bugs, feature requests, or general help, use this tool when user expresses need for help, issues, requests or complaints. Use this when user is frustrated, angry, or complaining about product issues or lack of features. +• get_user_support_tickets - View user's support ticket history and status + **Others:** • create_flowchart - Generate Mermaid.js flowcharts from descriptions • generate_image - Create images from text prompts @@ -95,6 +99,10 @@ • Analyze the user's query to understand their intent and desired outcome • The system uses vector similarity to automatically find the most relevant tools for each request • Think semantically: “What is the user trying to accomplish?” rather than matching keywords + • Do not hesitate to call retrieve_tools multiple times in the same turn for different purposes. + • You can specify multiple intents in one query (e.g., "calendar list, calendar create") to target multiple tools at once. + • Always use natural language for retrieve_tools queries; it's based on semantic similarity, not exact matches. + • If a tool is mentioned in your reasoning or the user's request but doesn't appear after retrieval, call retrieve_tools again with a different query. Keep refining until it appears or you are sure it's unavailable. • Use retrieve_tools(" ") for better accuracy - Example: "todo create", "calendar view", "mail send" @@ -111,6 +119,7 @@ • Subtasks: "subtask update" • Goals: "goal create" • Reminders: "reminder create" + • Support: "support create" • Code/Math: "execute_code run" • Research: • "web search" (quick facts) @@ -129,22 +138,35 @@ Workflow Execution: When executing workflows passed by users: + - **First, retrieve ALL necessary tools** using multiple `retrieve_tools` calls based on the workflow steps - Execute each step as a proper tool execution in the exact order specified - Use the tool_name from each step to call the appropriate tool with proper parameters - - If a tool is not immediately available, try multiple times to find and retrieve the appropriate tools using retrieve_tools + - If a tool is not immediately available after retrieval, try different semantic queries or more specific retrieve_tools calls - Complete each step before moving to the next one - Provide progress updates as you execute each workflow step - Never skip steps or execute them out of order + **Multi-Step Tool Retrieval Example**: + User: "Create a todo, schedule a meeting, and send an email" + 1. `retrieve_tools("todo create task")` + 2. `retrieve_tools("calendar create event")` + 3. `retrieve_tools("mail send compose")` + 4. Execute each tool in sequence + When NOT to Use Search Tools: Don't use web_search_tool/deep_research_tool for: calendar operations, email management, Google Docs, todo/task management, goal tracking, weather, code execution, or image generation. Use specialized tools instead. 3. Tool Selection Principles + - **Proactive Tool Retrieval**: Always retrieve tools BEFORE you need them. Analyze the full user request and get all necessary tools upfront + - **Multiple Retrieval Calls**: Don't hesitate to call `retrieve_tools` multiple times for different tool categories in a single conversation + - **Semantic Queries**: Use descriptive, intent-based queries for `retrieve_tools` rather than exact tool names + - **Comprehensive Analysis**: Look at the user's complete request to identify all needed tool categories, not just the first action - Trust the vector search system to surface the most relevant tools for each query - Only call tools when needed; use your knowledge when it's sufficient - If multiple tools are relevant, use them all and merge outputs into one coherent response - Always invoke tools silently—never mention tool names or internal APIs to the user - Let semantic similarity guide tool discovery rather than rigid keyword matching + - **Fallback Strategy**: If a tool you expect isn't available after retrieval, try different semantic queries or break down your request into smaller, more specific retrieve_tools calls 6. Tone & Style - **Mirror the user's communication style**: Pay attention to how {user_name} speaks and adapt your tone accordingly. If they're casual, be casual. If they're formal, match that energy. If they use specific phrases or expressions, incorporate similar language patterns. @@ -155,6 +177,13 @@ - Use simple, conversational language—avoid jargon unless the user clearly knows it. - Ask friendly clarifying questions if something isn't clear. - **Adapt to their energy level**: If {user_name} seems excited, match their enthusiasm. If they seem stressed or busy, be more direct and efficient while still remaining warm. + - **Handle frustration with empathy**: When {user_name} is frustrated, angry, or complaining about product issues: + • Acknowledge their frustration genuinely ("I completely understand your frustration, {user_name}") + • Apologize sincerely for any inconvenience ("I'm really sorry this isn't working as expected") + • Take immediate action by creating a support ticket to escalate their issue, use the create_support_ticket tool + • Focus on solutions and next steps rather than defending the product + • Use calming, reassuring language ("Let me get this sorted out for you right away") + • Avoid being overly cheerful when they're upset - match their serious tone while remaining supportive - **Pick up on their preferences**: Notice if {user_name} prefers short answers or detailed explanations, and adjust accordingly. - After answering the user's question, suggest a relevant follow-up task they can complete using the available tools or features of the assistant. The suggestion should be actionable, based on the content of the answer."Your primary goal is to help the user by providing clear, concise, and relevant responses in properly formatted markdown, while sounding warm, engaging, and human-like. diff --git a/backend/app/langchain/tools/calendar_tool.py b/backend/app/langchain/tools/calendar_tool.py index e398a52b..26bcc9f9 100644 --- a/backend/app/langchain/tools/calendar_tool.py +++ b/backend/app/langchain/tools/calendar_tool.py @@ -1,5 +1,5 @@ import json -from typing import Any, Dict, List, Optional, Union +from typing import Any, Dict, List, Optional import httpx from app.config.loggers import chat_logger as logger @@ -17,7 +17,11 @@ CALENDAR_LIST_TEMPLATE, CALENDAR_PROMPT_TEMPLATE, ) -from app.models.calendar_models import EventCreateRequest, EventLookupRequest +from app.models.calendar_models import ( + CalendarEventToolRequest, + CalendarEventUpdateToolRequest, + EventLookupRequest, +) from app.services.calendar_service import ( find_event_for_action, get_calendar_events, @@ -34,20 +38,12 @@ @with_doc(CALENDAR_EVENT) @require_integration("calendar") async def create_calendar_event( - event_data: Union[ - List[EventCreateRequest], - EventCreateRequest, - ], + events_data: List[CalendarEventToolRequest], config: RunnableConfig, ) -> str: try: - # Normalize input to always work with a list of EventCreateRequest objects - event_list: List[EventCreateRequest] = ( - event_data if isinstance(event_data, list) else [event_data] - ) - # Validate non-empty - if not event_list: + if not events_data: logger.error("Empty event list provided") return json.dumps( { @@ -57,50 +53,47 @@ async def create_calendar_event( } ) + # Get user time from config for timezone processing + configurable = config.get("configurable", {}) + user_time_str: str = configurable.get("user_time", "") + if not user_time_str: + logger.error("User time is required for calendar event processing") + return json.dumps( + { + "error": "User time is required to process calendar events", + "calendar_options": [], + "prompt": str(CALENDAR_PROMPT_TEMPLATE.invoke({})), + } + ) + calendar_options = [] validation_errors = [] - logger.info(f"Processing {len(event_list)} calendar events") + logger.info(f"Processing {len(events_data)} calendar events") # Process each event with validation - for event in event_list: + for event in events_data: try: - # Validate event fields based on whether it's an all-day event - if event.is_all_day: - # For all-day events, start and end are optional - # They'll be handled in the service with defaults if missing - pass - else: - # For time-specific events, both start and end are required - if not event.start or not event.end: - raise ValueError( - "Start and end times are required for time-specific events" - ) - - # Add the validated event as a proper dict with all required fields + # Process the event times with timezone handling to convert to service format + processed_event = event.process_times(user_time_str) + + # Add the validated and processed event as a proper dict with all required fields event_dict = { - "summary": event.summary, - "description": event.description or "", - "is_all_day": event.is_all_day, - "timezone": event.timezone or "UTC", + "summary": processed_event.summary, + "description": processed_event.description or "", + "is_all_day": processed_event.is_all_day, + "start": processed_event.start, + "end": processed_event.end, } # Add optional fields only if they exist - if event.start: - event_dict["start"] = event.start - if event.end: - event_dict["end"] = event.end - if event.calendar_id: - event_dict["calendar_id"] = event.calendar_id - if event.calendar_name: - event_dict["calendar_name"] = event.calendar_name - if event.calendar_color: - event_dict["calendar_color"] = event.calendar_color - if event.recurrence: - event_dict["recurrence"] = event.recurrence.model_dump() + if processed_event.calendar_id: + event_dict["calendar_id"] = processed_event.calendar_id + if processed_event.recurrence: + event_dict["recurrence"] = processed_event.recurrence.model_dump() calendar_options.append(event_dict) - logger.info(f"Added calendar event: {event.summary}") + logger.info(f"Added calendar event: {processed_event.summary}") except Exception as e: error_msg = f"Error processing calendar event: {e}" @@ -119,7 +112,7 @@ async def create_calendar_event( } ) - configurable = config.get("configurable", {}) + # Validate configurable section exists if not configurable: logger.error("Missing 'configurable' section in config") return json.dumps( @@ -273,7 +266,7 @@ async def fetch_calendar_events( events = events_data.get("events", []) logger.info(f"Fetched {len(events)} events") - # Build array of {summary, start_time, calendar_name} for all events + # Build array of {summary, start_time} for all events calendar_fetch_data = [] for event in events: start_time = "" @@ -288,7 +281,6 @@ async def fetch_calendar_events( { "summary": event.get("summary", "No Title"), "start_time": start_time, - "calendar_name": event.get("calendarTitle", ""), } ) @@ -354,7 +346,7 @@ async def search_calendar_events( f"Found {len(search_results.get('matching_events', []))} matching events for query: {query}" ) - # Build array of {summary, start_time, calendar_name} for search results + # Build array of {summary, start_time} for search results calendar_search_data = [] for event in search_results.get("matching_events", []): start_time = "" @@ -369,7 +361,6 @@ async def search_calendar_events( { "summary": event.get("summary", "No Title"), "start_time": start_time, - "calendar_name": event.get("calendarTitle", ""), } ) @@ -517,7 +508,7 @@ async def edit_calendar_event( start: Optional[str] = None, end: Optional[str] = None, is_all_day: Optional[bool] = None, - timezone: Optional[str] = None, + timezone_offset: Optional[str] = None, recurrence: Optional[dict] = None, location: Optional[str] = None, attendees: Optional[list] = None, @@ -532,14 +523,55 @@ async def edit_calendar_event( access_token = config.get("configurable", {}).get("access_token") user_id = config.get("configurable", {}).get("user_id") + user_time_str = config.get("configurable", {}).get("user_time", "") - # Ensure access_token and user_id are available + # Ensure access_token, user_id and user_time are available if not user_id: logger.error("Missing user_id in config") return "Unable to access your calendar. Please ensure you're logged in with calendar permissions." if not access_token: logger.error("Missing access token in config") return "Unable to access your calendar. Please ensure you're logged in with calendar permissions." + if not user_time_str: + logger.error("Missing user_time in config") + return "User time is required for calendar event processing." + + # Process timezone for start/end times if provided + processed_start = start + processed_end = end + + if start is not None or end is not None: + try: + # Convert recurrence dict to RecurrenceData if provided + recurrence_data = None + if recurrence is not None: + from app.models.calendar_models import RecurrenceData + + recurrence_data = ( + RecurrenceData(**recurrence) + if isinstance(recurrence, dict) + else recurrence + ) + + tool_request = CalendarEventUpdateToolRequest( + event_lookup=event_lookup_data, + user_time=user_time_str, + start=start, + end=end, + timezone_offset=timezone_offset, + summary=summary, + description=description, + is_all_day=is_all_day, + recurrence=recurrence_data, + ) + + update_request = tool_request.to_update_request() + processed_start = update_request.start + processed_end = update_request.end + + except Exception as e: + logger.error(f"Error processing timezone for calendar update: {e}") + return f"Error processing timezone: {e}" writer = get_stream_writer() # Use service method to find the event for action (edit) @@ -573,13 +605,11 @@ async def edit_calendar_event( if description is not None: edit_option["description"] = description if start is not None: - edit_option["start"] = start + edit_option["start"] = processed_start if end is not None: - edit_option["end"] = end + edit_option["end"] = processed_end if is_all_day is not None: edit_option["is_all_day"] = is_all_day - if timezone is not None: - edit_option["timezone"] = timezone if recurrence is not None: # Pass recurrence data as is - it will be validated and converted by the service layer edit_option["recurrence"] = recurrence diff --git a/backend/app/langchain/tools/core/registry.py b/backend/app/langchain/tools/core/registry.py index 44bc1a5c..952145fc 100644 --- a/backend/app/langchain/tools/core/registry.py +++ b/backend/app/langchain/tools/core/registry.py @@ -11,6 +11,7 @@ memory_tools, reminder_tool, search_tool, + support_tool, todo_tool, weather_tool, webpage_tool, @@ -56,6 +57,9 @@ "weather": [ weather_tool.get_weather, ], + "support": [ + *support_tool.tools, + ], } # Map categories to their required integrations diff --git a/backend/app/langchain/tools/core/retrieval.py b/backend/app/langchain/tools/core/retrieval.py index af59a8af..b27e0fd7 100644 --- a/backend/app/langchain/tools/core/retrieval.py +++ b/backend/app/langchain/tools/core/retrieval.py @@ -1,8 +1,8 @@ -from langgraph.prebuilt import InjectedStore -from langgraph.store.base import BaseStore from typing import Annotated from app.langchain.tools.core.registry import ALWAYS_AVAILABLE_TOOLS +from langgraph.prebuilt import InjectedStore +from langgraph.store.base import BaseStore def retrieve_tools( diff --git a/backend/app/langchain/tools/support_tool.py b/backend/app/langchain/tools/support_tool.py new file mode 100644 index 00000000..9f2fba30 --- /dev/null +++ b/backend/app/langchain/tools/support_tool.py @@ -0,0 +1,106 @@ +"""Support LangChain tools for creating and managing support tickets.""" + +from typing import Annotated + +from app.config.loggers import app_logger as logger +from app.decorators import with_doc +from app.docstrings.langchain.tools.support_tool_docs import ( + CREATE_SUPPORT_TICKET, +) +from app.models.support_models import ( + SupportRequestType, +) +from app.services import user_service +from langchain_core.runnables import RunnableConfig +from langchain_core.tools import tool +from langgraph.config import get_stream_writer + + +@tool +@with_doc(CREATE_SUPPORT_TICKET) +async def create_support_ticket( + config: RunnableConfig, + type: Annotated[ + SupportRequestType, + "Type of support request: 'support' for technical issues/help, 'feature' for enhancement requests", + ], + title: Annotated[ + str, "Brief, descriptive title of the issue or request (1-200 characters)" + ], + description: Annotated[ + str, + "Detailed explanation of the issue, steps to reproduce, or feature details (10-5000 characters)", + ], +) -> str: + """ + Create a support ticket draft for the user to review and submit. + + This tool prepares support ticket data and streams it to the frontend for user review. + The user can edit the details and submit when ready. + + Args: + config: Runtime configuration containing user metadata + type: Type of support request ("support" or "feature") + title: Brief title of the issue or request + description: Detailed description of the issue or request + + Returns: + String confirmation that the support ticket draft has been prepared + """ + try: + logger.info( + f"Support Tool: Preparing support ticket draft with title '{title}'" + ) + + metadata = config.get("metadata", {}) + user_id = metadata.get("user_id") + + if not user_id: + return "User authentication required to create support ticket." + + user = await user_service.get_user_by_id(user_id) + + if not user: + return "User not found. Please ensure you are logged in." + + user_email = user.get("email") + user_name = user.get("name", "User") + + if not user_email: + return "User email is required to create a support ticket." + + request_type = SupportRequestType(type.lower()) + + # Prepare support ticket data for streaming + support_ticket_data = { + "type": request_type.value, + "title": title.strip(), + "description": description.strip(), + "user_name": user_name, + "user_email": user_email, + } + + # Stream the support ticket data to frontend + writer = get_stream_writer() + writer({"progress": "Creating support ticket..."}) + writer({"support_ticket_data": [support_ticket_data]}) + + logger.info(f"Support ticket draft prepared for user {user_id}") + + # Return confirmation message + ticket_type_display = ( + "feature request" + if request_type == SupportRequestType.FEATURE + else "support ticket" + ) + return f"I've prepared a {ticket_type_display} draft for you to review. Please check the details and click 'Submit Ticket' when you're ready to send it to our support team." + + except Exception as e: + logger.error(f"Error preparing support ticket: {str(e)}") + return f"Sorry, I encountered an error while preparing your support ticket: {str(e)}" + + +# Export tools list for registry +tools = [ + create_support_ticket, +] diff --git a/backend/app/main.py b/backend/app/main.py index af1d9cf1..17cbf2aa 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -5,6 +5,8 @@ """ from app.core.app_factory import create_app +from app.config.sentry import init_sentry # Create the FastAPI application app = create_app() +init_sentry() diff --git a/backend/app/memory/client.py b/backend/app/memory/client.py index 4f4a5f01..f3143ebb 100644 --- a/backend/app/memory/client.py +++ b/backend/app/memory/client.py @@ -1,48 +1,35 @@ """Centralized memory client management.""" -from functools import lru_cache from typing import Optional -from mem0 import MemoryClient +from mem0 import AsyncMemoryClient from app.config.settings import settings -@lru_cache(maxsize=1) -def get_memory_client() -> MemoryClient: - """ - Get or create a singleton Mem0 client instance. - - Returns: - MemoryClient: Configured Mem0 client - """ - client = MemoryClient( - api_key=settings.MEM0_API_KEY, - org_id=settings.MEM0_ORG_ID, - project_id=settings.MEM0_PROJECT_ID, - ) - client.update_project(enable_graph=True, version="v1") - - return client - - class MemoryClientManager: """Manages memory client lifecycle and configuration.""" def __init__(self): - self._client: Optional[MemoryClient] = None + self._client: Optional[AsyncMemoryClient] = None - @property - def client(self) -> MemoryClient: - """Get the memory client instance.""" + async def get_client(self) -> AsyncMemoryClient: + """Get the properly configured memory client instance.""" if self._client is None: - self._client = get_memory_client() + client = AsyncMemoryClient( + api_key=settings.MEM0_API_KEY, + org_id=settings.MEM0_ORG_ID, + project_id=settings.MEM0_PROJECT_ID, + ) + # Configure the project with graph enabled + await client.project.update(enable_graph=True) + self._client = client + return self._client def reset(self): """Reset the client instance (useful for testing).""" self._client = None - get_memory_client.cache_clear() # Global instance diff --git a/backend/app/middleware/auth_middleware.py b/backend/app/middleware/auth_middleware.py index cb193f7c..64c16e2c 100644 --- a/backend/app/middleware/auth_middleware.py +++ b/backend/app/middleware/auth_middleware.py @@ -14,7 +14,7 @@ from fastapi import Request, Response from starlette.middleware.base import BaseHTTPMiddleware from starlette.types import ASGIApp -from workos import WorkOSClient +from workos import AsyncWorkOSClient class WorkOSAuthMiddleware(BaseHTTPMiddleware): @@ -28,12 +28,12 @@ class WorkOSAuthMiddleware(BaseHTTPMiddleware): def __init__( self, app: ASGIApp, - workos_client: Optional[WorkOSClient] = None, + workos_client: Optional[AsyncWorkOSClient] = None, exclude_paths: Optional[list[str]] = None, ): super().__init__(app) # Initialize WorkOS client or use provided one - self.workos = workos_client or WorkOSClient( + self.workos = workos_client or AsyncWorkOSClient( api_key=settings.WORKOS_API_KEY, client_id=settings.WORKOS_CLIENT_ID, ) diff --git a/backend/app/middleware/tiered_rate_limiter.py b/backend/app/middleware/tiered_rate_limiter.py index 436394db..c590ddbf 100644 --- a/backend/app/middleware/tiered_rate_limiter.py +++ b/backend/app/middleware/tiered_rate_limiter.py @@ -22,7 +22,7 @@ async def analyze_file(user: dict = Depends(get_current_user)): from app.db.redis import redis_cache from app.models.payment_models import PlanType -from app.services.payments.subscriptions import get_user_subscription_status +from app.services.payment_service import payment_service from app.config.rate_limits import ( RateLimitPeriod, get_limits_for_plan, @@ -278,7 +278,7 @@ async def wrapper(*args, **kwargs): raise HTTPException(status_code=401, detail="User ID not found") # Get user subscription - subscription = await get_user_subscription_status(user_id) + subscription = await payment_service.get_user_subscription_status(user_id) user_plan = subscription.plan_type or PlanType.FREE # Check rate limits before executing function diff --git a/backend/app/models/calendar_models.py b/backend/app/models/calendar_models.py index 4a4102b4..5901f8d9 100644 --- a/backend/app/models/calendar_models.py +++ b/backend/app/models/calendar_models.py @@ -1,5 +1,5 @@ import re -from datetime import datetime +from datetime import datetime, timedelta, timezone from typing import List, Literal, Optional from pydantic import BaseModel, Field, field_validator, model_validator @@ -266,7 +266,9 @@ class EventUpdateRequest(BaseModel): start: Optional[str] = Field(None, title="Updated start time in ISO 8601 format") end: Optional[str] = Field(None, title="Updated end time in ISO 8601 format") is_all_day: Optional[bool] = Field(None, title="Updated all-day status") - timezone: Optional[str] = Field(None, title="Updated timezone") + timezone_offset: Optional[str] = Field( + None, title="Updated timezone offset in (+|-)HH:MM format" + ) original_summary: Optional[str] = Field( None, title="Original event summary for confirmation" ) @@ -275,45 +277,80 @@ class EventUpdateRequest(BaseModel): ) -class EventCreateRequest(BaseModel): +class BaseCalendarEvent(BaseModel): + """Base model for calendar events with common fields shared across models.""" + summary: str = Field(..., title="Event Summary") description: str = Field("", title="Event Description") - start: Optional[str] = Field( - None, title="Start Time in ISO 8601 format or date for all-day events" - ) - end: Optional[str] = Field( - None, title="End Time in ISO 8601 format or date for all-day events" - ) is_all_day: bool = Field(False, title="Is All Day Event") - timezone: str = Field( - "UTC", title="Event Timezone that comes from the client ex- Asia/Calcutta" - ) calendar_id: Optional[str] = Field(None, title="Calendar ID") - calendar_name: Optional[str] = None # Name of the calendar for display purposes - calendar_color: Optional[str] = "#00bbff" recurrence: Optional[RecurrenceData] = Field( None, title="Recurrence rules for creating a recurring event" ) + model_config = {"extra": "ignore"} + + +class CalendarEventToolRequest(BaseCalendarEvent): + """Model for LLM tool input with time string and duration approach.""" + + # Input fields for time specification + time_str: Optional[str] = Field( + None, + title="Time string: either a relative offset like '+02:30' or an ISO 8601 time", + ) + duration_minutes: Optional[int] = Field( + 30, title="Duration of the event in minutes, defaults to 30 minutes", ge=1 + ) + timezone_offset: Optional[str] = Field( + None, + title="Timezone offset in `(+|-)HH:MM` format. Only provide when user explicitly mentions a timezone.", + ) + + @field_validator("timezone_offset") + @classmethod + def validate_timezone_offset(cls, v): + """Validate timezone offset format (+|-)HH:MM""" + if v is not None: + if not re.match(r"^[+-]\d{2}:\d{2}$", v): + raise ValueError("Timezone offset must be in (+|-)HH:MM format") + return v + @model_validator(mode="after") - def validate_event_times(self) -> "EventCreateRequest": + def validate_event_times(self) -> "CalendarEventToolRequest": """ Validate event data based on event type after model initialization. """ if not self.is_all_day: - # For timed events, both start and end are required - if not self.start or not self.end: - raise ValueError("Start and end times are required for timed events") - - # For all-day events, start and end are optional (will default to today if not provided) + # For timed events, time_str is required + if not self.time_str: + raise ValueError("time_str is required for timed events") + + # Validate the format of time_str + if self.time_str.startswith("+"): + # This is a relative time offset, validate the format + if not re.match(r"^\+\d{2}:\d{2}$", self.time_str): + raise ValueError( + "Relative time offset must be in the format '+HH:MM'" + ) + else: + # This is an absolute time, try to parse it + try: + # Replace space with T if needed + time_str = ( + self.time_str.replace(" ", "T") + if " " in self.time_str + else self.time_str + ) + datetime.fromisoformat(time_str) + except ValueError: + raise ValueError( + f"Invalid time format: {self.time_str}. Use ISO format (YYYY-MM-DDTHH:MM:SS) for absolute times." + ) - # For recurring events, ensure timezone is specified for non-all-day events - if self.recurrence and not self.is_all_day: - # Recurring events with time must have a timezone specified - if not self.start or not self.end: - raise ValueError( - "Recurring events must have start and end times specified" - ) + # For recurring events, ensure time_str is provided for non-all-day events + if self.recurrence and not self.is_all_day and not self.time_str: + raise ValueError("Recurring events must have time_str specified") return self @@ -321,16 +358,256 @@ def validate_event_times(self) -> "EventCreateRequest": def event_date(self) -> str: """ Returns the date part for all-day events. - For all-day events without start time, returns today's date in YYYY-MM-DD format. + For all-day events without time_str, returns today's date in YYYY-MM-DD format. """ - if self.is_all_day and not self.start: - from datetime import datetime - + if self.is_all_day and not self.time_str: return datetime.now().strftime("%Y-%m-%d") - elif self.start: + elif self.time_str and not self.time_str.startswith("+"): # Extract date part from ISO datetime string - return self.start.split("T")[0] if "T" in self.start else self.start - # Fallback to today's date - from datetime import datetime + return ( + self.time_str.split("T")[0] if "T" in self.time_str else self.time_str + ) return datetime.now().strftime("%Y-%m-%d") + + def _apply_timezone_offset(self, dt: datetime, offset_str: str) -> datetime: + """Apply timezone offset to datetime object.""" + # Parse offset string (+|-)HH:MM + sign = 1 if offset_str.startswith("+") else -1 + hours, minutes = map(int, offset_str[1:].split(":")) + offset_seconds = sign * (hours * 3600 + minutes * 60) + tz = timezone(timedelta(seconds=offset_seconds)) + return dt.replace(tzinfo=tz) + + def process_times(self, user_time: str) -> "EventCreateRequest": + """ + Process time strings and calculate start/end times, converting to EventCreateRequest. + + Args: + user_time: Current user time in ISO format for timezone reference + + Returns: + EventCreateRequest with processed start/end times + """ + # Extract user's timezone from user_time + user_datetime = datetime.fromisoformat(user_time) + user_timezone = user_datetime.tzinfo if user_datetime.tzinfo else timezone.utc + + # Skip processing for all-day events + if self.is_all_day: + # For all-day events, use the date without time component + event_date = self.event_date + + # Return a new EventCreateRequest with start/end set to event_date + return EventCreateRequest( + summary=self.summary, + description=self.description, + is_all_day=True, + start=event_date, + end=event_date, + calendar_id=self.calendar_id, + recurrence=self.recurrence, + ) + + # Check if time_str is provided + if not self.time_str: + raise ValueError("time_str is required for timed events") + + # Process time based on format + try: + if self.time_str.startswith("+"): + # Relative time offset (e.g., "+02:30") + offset_hours, offset_minutes = map(int, self.time_str[1:].split(":")) + offset_seconds = offset_hours * 3600 + offset_minutes * 60 + + # Calculate the future time (from user's current time) + start_time = user_datetime + timedelta(seconds=offset_seconds) + + # Calculate end time based on duration + end_time = start_time + timedelta(minutes=self.duration_minutes or 30) + + # Return new EventCreateRequest with calculated times + return EventCreateRequest( + summary=self.summary, + description=self.description, + is_all_day=False, + start=start_time.isoformat(), + end=end_time.isoformat(), + calendar_id=self.calendar_id, + recurrence=self.recurrence, + ) + + else: + # Absolute time (ISO format) + time_str = ( + self.time_str.replace(" ", "T") + if " " in self.time_str + else self.time_str + ) + dt = datetime.fromisoformat(time_str) + + # Apply timezone if specified + if self.timezone_offset: + # User explicitly provided timezone + start_time = self._apply_timezone_offset(dt, self.timezone_offset) + else: + # Use user's timezone + start_time = dt.replace(tzinfo=user_timezone) + + # Calculate end time based on duration + end_time = start_time + timedelta(minutes=self.duration_minutes or 30) + + # Return new EventCreateRequest with calculated times + return EventCreateRequest( + summary=self.summary, + description=self.description, + is_all_day=False, + start=start_time.isoformat(), + end=end_time.isoformat(), + calendar_id=self.calendar_id, + recurrence=self.recurrence, + ) + + except ValueError as e: + raise ValueError(f"Invalid time format: {self.time_str}. Error: {e}") + + +class EventCreateRequest(BaseCalendarEvent): + """Model for calendar event creation for service layer.""" + + # Direct time fields for service operations + start: str = Field(..., title="Start time in ISO format or date for all-day events") + end: str = Field(..., title="End time in ISO format or date for all-day events") + + # Validate that start and end times are in ISO format or date format + @field_validator("start", "end") + @classmethod + def validate_time_format(cls, v, info): + field_name = info.field_name + + try: + # Try to parse as ISO datetime + datetime.fromisoformat(v) + except ValueError: + # If not ISO datetime, check if it's a valid date (YYYY-MM-DD) + try: + datetime.strptime(v, "%Y-%m-%d") + except ValueError: + raise ValueError( + f"{field_name} must be in ISO format (YYYY-MM-DDTHH:MM:SS) or date format (YYYY-MM-DD)" + ) + + return v + + @model_validator(mode="after") + def validate_times(self) -> "EventCreateRequest": + """Validate that start time is before end time for timed events.""" + if not self.is_all_day: + try: + start_time = datetime.fromisoformat(self.start) + end_time = datetime.fromisoformat(self.end) + + if start_time >= end_time: + raise ValueError("Start time must be before end time") + except ValueError as e: + if "fromisoformat" not in str(e): + raise e + # This means the format validation failed, which is handled by the field validator + pass + + return self + + +class CalendarEventUpdateToolRequest(BaseModel): + """Request model for calendar event updates with timezone handling.""" + + event_lookup: EventLookupRequest = Field( + ..., description="Event lookup information" + ) + user_time: str = Field(..., description="User's current time for timezone handling") + + # Update fields + summary: Optional[str] = Field(None, description="Updated event summary") + description: Optional[str] = Field(None, description="Updated event description") + start: Optional[str] = Field(None, description="Updated start time") + end: Optional[str] = Field(None, description="Updated end time") + is_all_day: Optional[bool] = Field(None, description="Updated all-day status") + timezone_offset: Optional[str] = Field( + None, description="Timezone offset in (+|-)HH:MM format" + ) + recurrence: Optional[RecurrenceData] = Field( + None, description="Updated recurrence pattern" + ) + + @field_validator("timezone_offset") + @classmethod + def validate_timezone_offset(cls, v): + """Validate timezone offset format (+|-)HH:MM""" + if v is not None: + if not re.match(r"^[+-]\d{2}:\d{2}$", v): + raise ValueError("Timezone offset must be in (+|-)HH:MM format") + return v + + def _apply_timezone_offset(self, dt: datetime, offset_str: str) -> datetime: + """Apply timezone offset to datetime object.""" + # Parse offset string (+|-)HH:MM + sign = 1 if offset_str.startswith("+") else -1 + hours, minutes = map(int, offset_str[1:].split(":")) + offset_seconds = sign * (hours * 3600 + minutes * 60) + tz = timezone(timedelta(seconds=offset_seconds)) + return dt.replace(tzinfo=tz) + + def to_update_request(self) -> EventUpdateRequest: + """Convert to EventUpdateRequest with processed times.""" + # Extract user's timezone from user_time + user_datetime = datetime.fromisoformat(self.user_time) + user_timezone = user_datetime.tzinfo if user_datetime.tzinfo else timezone.utc + + # Process start time if provided + processed_start = None + if self.start is not None: + try: + dt = datetime.fromisoformat(self.start.replace(" ", "T")) + + if self.timezone_offset: + processed_start_dt = self._apply_timezone_offset( + dt, self.timezone_offset + ) + else: + processed_start_dt = dt.replace(tzinfo=user_timezone) + + processed_start = processed_start_dt.isoformat() + + except ValueError as e: + raise ValueError(f"Invalid start time format: {self.start}. Error: {e}") + + # Process end time if provided + processed_end = None + if self.end is not None: + try: + dt = datetime.fromisoformat(self.end.replace(" ", "T")) + + if self.timezone_offset: + processed_end_dt = self._apply_timezone_offset( + dt, self.timezone_offset + ) + else: + processed_end_dt = dt.replace(tzinfo=user_timezone) + + processed_end = processed_end_dt.isoformat() + + except ValueError as e: + raise ValueError(f"Invalid end time format: {self.end}. Error: {e}") + + return EventUpdateRequest( + event_id=self.event_lookup.event_id or "", + calendar_id=self.event_lookup.calendar_id or "primary", + summary=self.summary, + description=self.description, + start=processed_start, + end=processed_end, + is_all_day=self.is_all_day, + timezone_offset=None, # Processed times no longer need timezone_offset + original_summary=None, + recurrence=self.recurrence, + ) diff --git a/backend/app/models/chat_models.py b/backend/app/models/chat_models.py index 03547f57..12c84ec7 100644 --- a/backend/app/models/chat_models.py +++ b/backend/app/models/chat_models.py @@ -1,13 +1,12 @@ from enum import Enum from typing import List, Optional -from pydantic import BaseModel, Field - from app.models.calendar_models import EventCreateRequest from app.models.mail_models import EmailComposeRequest from app.models.message_models import FileData from app.models.search_models import DeepResearchResults, SearchResults from app.models.weather_models import WeatherData +from pydantic import BaseModel, Field class ImageData(BaseModel): @@ -67,6 +66,28 @@ class IntegrationConnectionData(BaseModel): settings_url: Optional[str] = None +class SupportTicketData(BaseModel): + """Data structure for support ticket creation.""" + + type: str = Field( + ..., description="Type of support request: 'support' or 'feature'" + ) + title: str = Field( + ..., + min_length=1, + max_length=200, + description="Brief title of the issue or request", + ) + description: str = Field( + ..., + min_length=10, + max_length=5000, + description="Detailed description of the issue or request", + ) + user_name: Optional[str] = Field(None, description="Name of the user") + user_email: Optional[str] = Field(None, description="Email of the user") + + class MessageModel(BaseModel): type: str response: str @@ -89,6 +110,7 @@ class MessageModel(BaseModel): email_compose_data: Optional[List[EmailComposeRequest]] = None email_fetch_data: Optional[List[EmailFetchData]] = None email_thread_data: Optional[EmailThreadData] = None + support_ticket_data: Optional[List[SupportTicketData]] = None calendar_fetch_data: Optional[List[CalendarFetchData]] = None calendar_list_fetch_data: Optional[List[CalendarListFetchData]] = None memory_data: Optional[dict] = None diff --git a/backend/app/models/memory_models.py b/backend/app/models/memory_models.py index ef73d375..ce6bb517 100644 --- a/backend/app/models/memory_models.py +++ b/backend/app/models/memory_models.py @@ -47,7 +47,9 @@ class MemoryEntry(BaseModel): default=None, description="Unique identifier for the memory" ) content: str = Field(description="The memory content") - user_id: str = Field(description="User ID associated with this memory") + user_id: Optional[str] = Field( + default="", description="User ID associated with this memory" + ) metadata: Dict[str, Any] = Field( default_factory=dict, description="Additional metadata" ) @@ -63,12 +65,15 @@ class MemoryEntry(BaseModel): expiration_date: Optional[datetime] = Field( default=None, description="When this memory expires" ) - internal_metadata: Optional[Dict[str, Any]] = Field( - default=None, description="Internal metadata not exposed to users" + # Mem0 API specific fields + immutable: Optional[bool] = Field( + default=False, description="Whether this memory is immutable" ) - deleted_at: Optional[datetime] = Field( - default=None, description="When this memory was deleted" + organization: Optional[str] = Field( + default=None, description="Organization associated with this memory" ) + owner: Optional[str] = Field(default=None, description="Owner of this memory") + # Search-specific fields relevance_score: Optional[float] = Field( default=None, description="Relevance score from search" ) diff --git a/backend/app/models/message_models.py b/backend/app/models/message_models.py index 422e1231..f39a4b72 100644 --- a/backend/app/models/message_models.py +++ b/backend/app/models/message_models.py @@ -27,6 +27,16 @@ class MessageRequestWithHistory(BaseModel): toolCategory: Optional[str] = None # Category of the selected tool +class SaveIncompleteConversationRequest(BaseModel): + message: str + conversation_id: Optional[str] = None + fileIds: Optional[List[str]] = [] + fileData: Optional[List[FileData]] = [] + selectedTool: Optional[str] = None + toolCategory: Optional[str] = None + incomplete_response: str = "" # The partial response from the bot + + class MessageRequest(BaseModel): message: str diff --git a/backend/app/models/payment_models.py b/backend/app/models/payment_models.py index ff3c08d3..331b26f0 100644 --- a/backend/app/models/payment_models.py +++ b/backend/app/models/payment_models.py @@ -1,5 +1,5 @@ """ -Payment and subscription related models for Razorpay integration. +Payment and subscription related models for Dodo Payments integration. """ from datetime import datetime @@ -27,35 +27,22 @@ class PaymentStatus(str, Enum): """Payment status.""" PENDING = "pending" - AUTHORIZED = "authorized" - PAID = "paid" - CAPTURED = "captured" - FAILED = "failed" - REFUNDED = "refunded" - CANCELLED = "cancelled" - - -class SubscriptionStatus(str, Enum): - """Subscription status.""" - - CREATED = "created" - AUTHENTICATED = "authenticated" ACTIVE = "active" - PAUSED = "paused" - HALTED = "halted" + ON_HOLD = "on_hold" CANCELLED = "cancelled" - COMPLETED = "completed" + FAILED = "failed" EXPIRED = "expired" -class PaymentMethod(str, Enum): - """Payment methods.""" +class SubscriptionStatus(str, Enum): + """Subscription status with clear definitions.""" - CARD = "card" - NETBANKING = "netbanking" - WALLET = "wallet" - UPI = "upi" - EMI = "emi" + PENDING = "pending" # Payment link created, waiting for payment + ACTIVE = "active" # Active with successful payment + ON_HOLD = "on_hold" # Temporarily paused + CANCELLED = "cancelled" # Cancelled by user or system + FAILED = "failed" # Payment failed + EXPIRED = "expired" # Expired subscription class Currency(str, Enum): @@ -80,47 +67,10 @@ class CreatePlanRequest(BaseModel): class CreateSubscriptionRequest(BaseModel): - """Request model for creating a subscription.""" + """Simplified request model for creating a subscription - backend handles security.""" - plan_id: str = Field(..., description="Plan ID to subscribe to") + product_id: str = Field(..., description="Product ID to subscribe to") quantity: int = Field(1, description="Quantity of subscriptions") - customer_notify: bool = Field(True, description="Whether to notify customer") - addons: Optional[List[Dict[str, Any]]] = Field( - default_factory=list, description="Add-ons" - ) - notes: Optional[Dict[str, str]] = Field(default_factory=dict, description="Notes") - - -class CreatePaymentRequest(BaseModel): - """Request model for creating a payment.""" - - amount: int = Field(..., description="Amount in smallest currency unit") - currency: Currency = Field(Currency.USD, description="Currency") - description: Optional[str] = Field(None, description="Payment description") - notes: Optional[Dict[str, str]] = Field(default_factory=dict, description="Notes") - - -class PaymentCallbackRequest(BaseModel): - """Request model for payment callback/webhook.""" - - razorpay_payment_id: str = Field(..., description="Razorpay payment ID") - razorpay_order_id: Optional[str] = Field(None, description="Razorpay order ID") - razorpay_subscription_id: Optional[str] = Field( - None, description="Razorpay subscription ID" - ) - razorpay_signature: str = Field( - ..., description="Razorpay signature for verification" - ) - - -class UpdateSubscriptionRequest(BaseModel): - """Request model for updating subscription.""" - - plan_id: Optional[str] = Field(None, description="New plan ID") - quantity: Optional[int] = Field(None, description="New quantity") - remaining_count: Optional[int] = Field(None, description="Remaining billing cycles") - replace_items: Optional[bool] = Field(False, description="Replace all items") - prorate: Optional[bool] = Field(True, description="Prorate the subscription") # Response Models @@ -128,6 +78,7 @@ class PlanResponse(BaseModel): """Response model for subscription plan.""" id: str = Field(..., description="Plan ID") + dodo_product_id: str = Field(..., description="Dodo product ID") name: str = Field(..., description="Plan name") description: Optional[str] = Field(None, description="Plan description") amount: int = Field(..., description="Plan amount") @@ -143,25 +94,15 @@ class PlanResponse(BaseModel): class SubscriptionResponse(BaseModel): """Response model for subscription.""" - id: str = Field(..., description="Subscription ID") - razorpay_subscription_id: str = Field(..., description="Razorpay subscription ID") + id: str = Field(..., description="Internal subscription ID") + dodo_subscription_id: str = Field(..., description="Dodo subscription ID") user_id: str = Field(..., description="User ID") - plan_id: str = Field(..., description="Plan ID") + product_id: str = Field(..., description="Product ID") status: SubscriptionStatus = Field(..., description="Subscription status") quantity: int = Field(..., description="Quantity") - current_start: Optional[datetime] = Field(None, description="Current period start") - current_end: Optional[datetime] = Field(None, description="Current period end") - ended_at: Optional[datetime] = Field(None, description="Subscription end time") - charge_at: Optional[datetime] = Field(None, description="Next charge time") - start_at: Optional[datetime] = Field(None, description="Subscription start time") - end_at: Optional[datetime] = Field(None, description="Subscription end time") - auth_attempts: int = Field(0, description="Authentication attempts") - total_count: int = Field(..., description="Total billing cycles") - paid_count: int = Field(0, description="Paid billing cycles") - customer_notify: bool = Field(True, description="Customer notification enabled") + payment_link: Optional[str] = Field(None, description="Payment link URL") created_at: datetime = Field(..., description="Creation timestamp") updated_at: datetime = Field(..., description="Update timestamp") - notes: Optional[Dict[str, str]] = Field(default_factory=dict, description="Notes") class PaymentResponse(BaseModel): @@ -170,24 +111,11 @@ class PaymentResponse(BaseModel): id: str = Field(..., description="Payment ID") user_id: str = Field(..., description="User ID") subscription_id: Optional[str] = Field(None, description="Subscription ID") - order_id: Optional[str] = Field(None, description="Order ID") amount: int = Field(..., description="Payment amount") currency: str = Field(..., description="Currency") status: PaymentStatus = Field(..., description="Payment status") - method: Optional[PaymentMethod] = Field(None, description="Payment method") description: Optional[str] = Field(None, description="Payment description") - international: bool = Field(False, description="International payment") - refund_status: Optional[str] = Field(None, description="Refund status") - amount_refunded: int = Field(0, description="Refunded amount") - captured: bool = Field(False, description="Payment captured") - email: Optional[str] = Field(None, description="Customer email") - contact: Optional[str] = Field(None, description="Customer contact") - fee: Optional[int] = Field(None, description="Processing fee") - tax: Optional[int] = Field(None, description="Tax") - error_code: Optional[str] = Field(None, description="Error code") - error_description: Optional[str] = Field(None, description="Error description") created_at: datetime = Field(..., description="Creation timestamp") - notes: Optional[Dict[str, str]] = Field(default_factory=dict, description="Notes") class UserSubscriptionStatus(BaseModel): @@ -219,12 +147,6 @@ class UserSubscriptionStatus(BaseModel): status: Optional[SubscriptionStatus] = Field( None, description="Legacy field - check subscription" ) - current_period_start: Optional[datetime] = Field(None, description="Legacy field") - current_period_end: Optional[datetime] = Field(None, description="Legacy field") - cancel_at_period_end: Optional[bool] = Field(None, description="Legacy field") - trial_end: Optional[datetime] = Field(None, description="Legacy field") - subscription_id: Optional[str] = Field(None, description="Legacy field") - plan_id: Optional[str] = Field(None, description="Legacy field") class PaymentHistoryResponse(BaseModel): @@ -238,13 +160,35 @@ class PaymentHistoryResponse(BaseModel): class WebhookEvent(BaseModel): - """Webhook event model.""" + """Webhook event model for Dodo Payments.""" - entity: str = Field(..., description="Entity type") - account_id: str = Field(..., description="Account ID") - event: str = Field(..., description="Event type") - created_at: int = Field(..., description="Creation timestamp") - payload: Dict[str, Any] = Field(..., description="Event payload") + addons: List[Dict[str, Any]] = Field(default_factory=list, description="Addons") + billing: Dict[str, Any] = Field(..., description="Billing address") + cancel_at_next_billing_date: bool = Field(..., description="Cancel at next billing") + created_at: str = Field(..., description="Creation timestamp") + currency: str = Field(..., description="Currency") + customer: Dict[str, Any] = Field(..., description="Customer details") + metadata: Dict[str, Any] = Field(..., description="Metadata") + next_billing_date: str = Field(..., description="Next billing date") + on_demand: bool = Field(..., description="On demand subscription") + payment_frequency_count: int = Field(..., description="Payment frequency count") + payment_frequency_interval: str = Field( + ..., description="Payment frequency interval" + ) + previous_billing_date: str = Field(..., description="Previous billing date") + product_id: str = Field(..., description="Product ID") + quantity: int = Field(..., description="Quantity") + recurring_pre_tax_amount: int = Field(..., description="Recurring pre-tax amount") + status: str = Field(..., description="Subscription status") + subscription_id: str = Field(..., description="Subscription ID") + subscription_period_count: int = Field(..., description="Subscription period count") + subscription_period_interval: str = Field( + ..., description="Subscription period interval" + ) + tax_inclusive: bool = Field(..., description="Tax inclusive") + trial_period_days: int = Field(..., description="Trial period days") + cancelled_at: Optional[str] = Field(None, description="Cancelled at") + discount_id: Optional[str] = Field(None, description="Discount ID") # Database Models (Internal) @@ -252,7 +196,7 @@ class PlanDB(BaseModel): """Database model for subscription plan.""" id: Optional[str] = Field(None, alias="_id") - razorpay_plan_id: str = Field(..., description="Razorpay plan ID") + dodo_product_id: str = Field(..., description="Dodo product ID") name: str = Field(..., description="Plan name") description: Optional[str] = Field(None, description="Plan description") amount: int = Field(..., description="Plan amount") @@ -268,60 +212,62 @@ class PlanDB(BaseModel): default_factory=datetime.utcnow, description="Update timestamp" ) + class Config: + populate_by_name = True + allow_population_by_field_name = True + class SubscriptionDB(BaseModel): """Database model for subscription.""" id: Optional[str] = Field(None, alias="_id") - razorpay_subscription_id: str = Field(..., description="Razorpay subscription ID") + dodo_subscription_id: str = Field(..., description="Dodo subscription ID") user_id: str = Field(..., description="User ID") - plan_id: str = Field(..., description="Plan ID") + product_id: str = Field(..., description="Product ID") status: str = Field(..., description="Subscription status") quantity: int = Field(1, description="Quantity") - current_start: Optional[datetime] = Field(None, description="Current period start") - current_end: Optional[datetime] = Field(None, description="Current period end") - ended_at: Optional[datetime] = Field(None, description="Subscription end time") - charge_at: Optional[datetime] = Field(None, description="Next charge time") - start_at: Optional[datetime] = Field(None, description="Subscription start time") - end_at: Optional[datetime] = Field(None, description="Subscription end time") - auth_attempts: int = Field(0, description="Authentication attempts") - total_count: int = Field(..., description="Total billing cycles") - paid_count: int = Field(0, description="Paid billing cycles") - customer_notify: bool = Field(True, description="Customer notification") + payment_link: Optional[str] = Field(None, description="Payment link URL") + webhook_processed_at: Optional[datetime] = Field( + None, description="Webhook processing timestamp" + ) created_at: datetime = Field( default_factory=datetime.utcnow, description="Creation timestamp" ) updated_at: datetime = Field( default_factory=datetime.utcnow, description="Update timestamp" ) - notes: Dict[str, str] = Field(default_factory=dict, description="Notes") + metadata: Dict[str, Any] = Field( + default_factory=dict, description="Additional data" + ) + + class Config: + populate_by_name = True + allow_population_by_field_name = True class PaymentDB(BaseModel): """Database model for payment.""" id: Optional[str] = Field(None, alias="_id") - razorpay_payment_id: str = Field(..., description="Razorpay payment ID") + dodo_subscription_id: str = Field(..., description="Dodo subscription ID") user_id: str = Field(..., description="User ID") - subscription_id: Optional[str] = Field(None, description="Subscription ID") - order_id: Optional[str] = Field(None, description="Order ID") + subscription_id: Optional[str] = Field(None, description="Internal subscription ID") amount: int = Field(..., description="Payment amount") currency: str = Field(..., description="Currency") status: str = Field(..., description="Payment status") - method: Optional[str] = Field(None, description="Payment method") description: Optional[str] = Field(None, description="Payment description") - international: bool = Field(False, description="International payment") - refund_status: Optional[str] = Field(None, description="Refund status") - amount_refunded: int = Field(0, description="Refunded amount") - captured: bool = Field(False, description="Payment captured") - email: Optional[str] = Field(None, description="Customer email") - contact: Optional[str] = Field(None, description="Customer contact") - fee: Optional[int] = Field(None, description="Processing fee") - tax: Optional[int] = Field(None, description="Tax") - error_code: Optional[str] = Field(None, description="Error code") - error_description: Optional[str] = Field(None, description="Error description") - webhook_verified: bool = Field(False, description="Webhook verification status") + webhook_processed_at: Optional[datetime] = Field( + None, description="Webhook processing timestamp" + ) created_at: datetime = Field( default_factory=datetime.utcnow, description="Creation timestamp" ) - notes: Dict[str, str] = Field(default_factory=dict, description="Notes") + metadata: Dict[str, Any] = Field( + default_factory=dict, description="Additional data" + ) + + +class PaymentVerificationResponse(BaseModel): + payment_completed: bool + subscription_id: Optional[str] = None + message: str diff --git a/backend/app/models/support_models.py b/backend/app/models/support_models.py index c31c49a6..2af243ad 100644 --- a/backend/app/models/support_models.py +++ b/backend/app/models/support_models.py @@ -1,10 +1,10 @@ """Support request models for the GAIA API.""" -from datetime import datetime +from datetime import datetime, timezone from enum import Enum from typing import Any, Dict, List, Optional -from pydantic import BaseModel, Field, EmailStr +from pydantic import BaseModel, EmailStr, Field class SupportRequestType(str, Enum): @@ -40,7 +40,8 @@ class SupportAttachment(BaseModel): content_type: str = Field(..., description="MIME type of the file") file_url: Optional[str] = Field(None, description="URL to access the file") uploaded_at: datetime = Field( - default_factory=datetime.utcnow, description="Upload timestamp" + default_factory=lambda: datetime.now(timezone.utc), + description="Upload timestamp", ) diff --git a/backend/app/models/user_models.py b/backend/app/models/user_models.py index 9ba2b6ac..eb082798 100644 --- a/backend/app/models/user_models.py +++ b/backend/app/models/user_models.py @@ -36,13 +36,9 @@ class UserUpdateResponse(BaseModel): class OnboardingPreferences(BaseModel): - country: Optional[str] = Field( - None, min_length=2, max_length=2, description="ISO 3166-1 alpha-2 country code" - ) + country: Optional[str] = Field(None, description="ISO 3166-1 alpha-2 country code") profession: Optional[str] = Field( None, - min_length=1, - max_length=50, description="User's profession or main area of focus", ) response_style: Optional[str] = Field( @@ -56,44 +52,53 @@ class OnboardingPreferences(BaseModel): @field_validator("country") @classmethod def validate_country(cls, v): - if v is not None: + if v is not None and v != "": # Ensure country code is uppercase and valid format v = v.upper().strip() - if not re.match(r"^[A-Z]{2}$", v): + if len(v) != 2 or not v.isalpha(): raise ValueError( "Country must be a valid ISO 3166-1 alpha-2 code (e.g., US, GB, DE)" ) - return v + return v + # Return None for empty strings to normalize the data + return None if v == "" else v @field_validator("profession") @classmethod def validate_profession(cls, v): - if v is not None: + if v is not None and v != "": v = v.strip() if not v: raise ValueError("Profession cannot be empty") if len(v) > 50: raise ValueError("Profession must be 50 characters or less") - return v + return v + # Return None for empty strings to normalize the data + return None if v == "" else v @field_validator("response_style") @classmethod def validate_response_style(cls, v): - if v is not None: + if v is not None and v != "": valid_styles = {"brief", "detailed", "casual", "professional"} + v = v.strip() # Allow custom response styles (anything that's not in the predefined list) - if v not in valid_styles and len(v.strip()) == 0: + if v not in valid_styles and len(v) == 0: raise ValueError("Response style cannot be empty") - return v + return v + # Return None for empty strings to normalize the data + return None if v == "" else v @field_validator("custom_instructions") @classmethod def validate_custom_instructions(cls, v): - if v is not None: + if v is not None and v != "": v = v.strip() if len(v) > 500: raise ValueError("Custom instructions must be 500 characters or less") - return v + return v + # Return None for empty strings to normalize the data + return None if v == "" else v class OnboardingData(BaseModel): @@ -112,16 +117,9 @@ class OnboardingRequest(BaseModel): name: str = Field( ..., min_length=1, max_length=100, description="User's preferred name" ) - country: str = Field( - ..., min_length=2, max_length=2, description="ISO 3166-1 alpha-2 country code" - ) profession: str = Field( ..., min_length=1, max_length=50, description="User's profession" ) - response_style: str = Field(..., description="Preferred response style") - instructions: Optional[str] = Field( - None, max_length=500, description="Custom instructions" - ) @field_validator("name") @classmethod @@ -135,41 +133,16 @@ def validate_name(cls, v): ) return v - @field_validator("country") - @classmethod - def validate_country(cls, v): - # Ensure country code is uppercase and valid format - v = v.upper().strip() - if not re.match(r"^[A-Z]{2}$", v): - raise ValueError( - "Country must be a valid ISO 3166-1 alpha-2 code (e.g., US, GB, DE)" - ) - return v - @field_validator("profession") @classmethod def validate_profession(cls, v): v = v.strip() if not v: raise ValueError("Profession cannot be empty") - return v - - @field_validator("response_style") - @classmethod - def validate_response_style(cls, v): - valid_styles = {"brief", "detailed", "casual", "professional"} - # Allow custom response styles (anything that's not in the predefined list) - if v not in valid_styles and len(v.strip()) == 0: - raise ValueError("Response style cannot be empty") - return v - - @field_validator("instructions") - @classmethod - def validate_instructions(cls, v): - if v is not None: - v = v.strip() - if len(v) > 500: - raise ValueError("Custom instructions must be 500 characters or less") + if not re.match(r"^[a-zA-Z\s\-\.]+$", v): + raise ValueError( + "Profession can only contain letters, spaces, hyphens, and periods" + ) return v diff --git a/backend/app/models/webhook_models.py b/backend/app/models/webhook_models.py new file mode 100644 index 00000000..87651f63 --- /dev/null +++ b/backend/app/models/webhook_models.py @@ -0,0 +1,138 @@ +""" +Clean webhook models for Dodo Payments based on actual webhook format. +""" + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field + + +class WebhookEventType(str, Enum): + """Dodo Payments webhook event types.""" + + # Payment events + PAYMENT_SUCCEEDED = "payment.succeeded" + PAYMENT_FAILED = "payment.failed" + PAYMENT_PROCESSING = "payment.processing" + PAYMENT_CANCELLED = "payment.cancelled" + + # Subscription events + SUBSCRIPTION_ACTIVE = "subscription.active" + SUBSCRIPTION_RENEWED = "subscription.renewed" + SUBSCRIPTION_CANCELLED = "subscription.cancelled" + SUBSCRIPTION_EXPIRED = "subscription.expired" + SUBSCRIPTION_FAILED = "subscription.failed" + SUBSCRIPTION_ON_HOLD = "subscription.on_hold" + SUBSCRIPTION_PLAN_CHANGED = "subscription.plan_changed" + + +class CustomerData(BaseModel): + """Customer info from webhook.""" + + customer_id: str + email: str + name: str + + +class BillingData(BaseModel): + """Billing address from webhook.""" + + city: str + country: str + state: str + street: str + zipcode: str + + +class PaymentData(BaseModel): + """Payment data from payment webhook.""" + + payment_id: str + subscription_id: Optional[str] = None + business_id: str + brand_id: str + customer: CustomerData + billing: BillingData + currency: str + total_amount: int + settlement_amount: int + settlement_currency: str + tax: int + settlement_tax: int + status: str + payment_method: str + card_network: Optional[str] = None + card_type: Optional[str] = None + card_last_four: Optional[str] = None + card_issuing_country: Optional[str] = None + created_at: str + updated_at: Optional[str] = None + metadata: Dict[str, Any] = Field(default_factory=dict) + error_code: Optional[str] = None + error_message: Optional[str] = None + + +class SubscriptionData(BaseModel): + """Subscription data from subscription webhook.""" + + subscription_id: str + product_id: str + customer: CustomerData + billing: BillingData + status: str + currency: str + quantity: int + recurring_pre_tax_amount: int + payment_frequency_count: int + payment_frequency_interval: str + subscription_period_count: int + subscription_period_interval: str + next_billing_date: Optional[str] = None + previous_billing_date: Optional[str] = None + created_at: str + cancelled_at: Optional[str] = None + cancel_at_next_billing_date: bool = False + tax_inclusive: bool = False + trial_period_days: int = 0 + on_demand: bool = False + metadata: Dict[str, Any] = Field(default_factory=dict) + addons: List[Any] = Field(default_factory=list) + discount_id: Optional[str] = None + + +class DodoWebhookEvent(BaseModel): + """Dodo webhook event structure.""" + + business_id: str + type: WebhookEventType + timestamp: str + data: Dict[str, Any] + + def get_payment_data(self) -> Optional[PaymentData]: + """Extract payment data if payment event.""" + if self.type.value.startswith("payment."): + try: + return PaymentData(**self.data) + except Exception: + return None + return None + + def get_subscription_data(self) -> Optional[SubscriptionData]: + """Extract subscription data if subscription event.""" + if self.type.value.startswith("subscription."): + try: + return SubscriptionData(**self.data) + except Exception: + return None + return None + + +class WebhookProcessingResult(BaseModel): + """Result of webhook processing.""" + + event_type: str + status: str # "processed", "ignored", "failed" + message: str + payment_id: Optional[str] = None + subscription_id: Optional[str] = None diff --git a/backend/app/services/calendar_service.py b/backend/app/services/calendar_service.py index d90b35c5..0c959f2b 100644 --- a/backend/app/services/calendar_service.py +++ b/backend/app/services/calendar_service.py @@ -1,7 +1,6 @@ import asyncio from datetime import datetime, timedelta, timezone from typing import Any, Dict, List, Optional, Union, cast -from zoneinfo import ZoneInfo import httpx from app.config.loggers import calendar_logger as logger @@ -13,7 +12,6 @@ EventLookupRequest, EventUpdateRequest, ) -from app.utils.calendar_utils import resolve_timezone from fastapi import HTTPException http_async_client = httpx.AsyncClient() @@ -456,24 +454,18 @@ async def create_calendar_event( detail="Start and end times are required for time-specific events", ) - canonical_timezone = resolve_timezone(event.timezone or "UTC") - user_tz = ZoneInfo(canonical_timezone) - - # Parse the ISO string into a datetime - start_dt = datetime.fromisoformat(event.start).replace(tzinfo=user_tz) - end_dt = datetime.fromisoformat(event.end).replace(tzinfo=user_tz) - + # The calendar tool has already processed times - use them directly event_payload["start"] = { - "dateTime": start_dt.isoformat(), - "timeZone": canonical_timezone, + "dateTime": event.start, + "timeZone": "UTC", # Default timezone since times are already processed } event_payload["end"] = { - "dateTime": end_dt.isoformat(), - "timeZone": canonical_timezone, + "dateTime": event.end, + "timeZone": "UTC", # Default timezone since times are already processed } except Exception as e: raise HTTPException( - status_code=400, detail=f"Invalid timezone or datetime format: {str(e)}" + status_code=400, detail=f"Invalid datetime format: {str(e)}" ) # Handle recurrence rules if provided @@ -483,22 +475,18 @@ async def create_calendar_event( recurrence_rules = event.recurrence.to_google_calendar_format() event_payload["recurrence"] = recurrence_rules - # For recurring events, Google Calendar requires that a single timezone is specified - # If this is a timed event (not all-day), ensure a timezone is set + # For recurring events, times are already processed by calendar tool + # Just ensure timezone is consistent if not event.is_all_day: - canonical_timezone = resolve_timezone(event.timezone or "UTC") - # Make sure both start and end have the same timezone - if "timeZone" in event_payload["start"]: - event_payload["start"]["timeZone"] = canonical_timezone - if "timeZone" in event_payload["end"]: - event_payload["end"]["timeZone"] = canonical_timezone + if "timeZone" in event_payload.get("start", {}): + event_payload["start"]["timeZone"] = "UTC" + if "timeZone" in event_payload.get("end", {}): + event_payload["end"]["timeZone"] = "UTC" except Exception as e: raise HTTPException( status_code=400, detail=f"Invalid recurrence rule format: {str(e)}" - ) - - # Send request to create the event + ) # Send request to create the event try: async with httpx.AsyncClient() as client: response = await client.post(url, headers=headers, json=event_payload) @@ -947,42 +935,31 @@ async def update_calendar_event( else: # Handle time-specific event updates try: - timezone = event.timezone or existing_event.get("start", {}).get( - "timeZone", "UTC" - ) - canonical_timezone = resolve_timezone(timezone) - user_tz = ZoneInfo(canonical_timezone) - + # Use processed times directly from calendar tool if event.start is not None: - start_dt = datetime.fromisoformat(event.start).replace( - tzinfo=user_tz - ) + start_time = event.start else: - # Parse existing start time - existing_start = existing_event.get("start", {}).get("dateTime", "") - start_dt = datetime.fromisoformat( - existing_start.replace("Z", "+00:00") - ) + # Keep existing start time + start_time = existing_event.get("start", {}).get("dateTime", "") if event.end is not None: - end_dt = datetime.fromisoformat(event.end).replace(tzinfo=user_tz) + end_time = event.end else: - # Parse existing end time - existing_end = existing_event.get("end", {}).get("dateTime", "") - end_dt = datetime.fromisoformat(existing_end.replace("Z", "+00:00")) + # Keep existing end time + end_time = existing_event.get("end", {}).get("dateTime", "") event_payload["start"] = { - "dateTime": start_dt.isoformat(), - "timeZone": canonical_timezone, + "dateTime": start_time, + "timeZone": "UTC", } event_payload["end"] = { - "dateTime": end_dt.isoformat(), - "timeZone": canonical_timezone, + "dateTime": end_time, + "timeZone": "UTC", } except Exception as e: raise HTTPException( status_code=400, - detail=f"Invalid timezone or datetime format: {str(e)}", + detail=f"Invalid datetime format: {str(e)}", ) else: # Preserve existing start/end times diff --git a/backend/app/services/file_service.py b/backend/app/services/file_service.py index 64f442a5..12497426 100644 --- a/backend/app/services/file_service.py +++ b/backend/app/services/file_service.py @@ -36,25 +36,20 @@ async def upload_file_service( ) -> dict: """ Upload a file to Cloudinary, generate embeddings, and store metadata in MongoDB and ChromaDB. - Args: file (UploadFile): The file to upload user_id (str): The ID of the user uploading the file conversation_id (str, optional): The conversation ID to associate with the file - Returns: dict: File metadata including file_id and url - Raises: HTTPException: If file upload fails """ - # Validate inputs early if not file.filename: logger.error("Missing filename in file upload") raise HTTPException( status_code=400, detail="Invalid file name. Filename is required." ) - if not file.content_type: logger.error("Missing content_type in file upload") raise HTTPException( @@ -65,33 +60,34 @@ async def upload_file_service( public_id = f"file_{file_id}_{file.filename.replace(' ', '_')}" try: - # Read file content once content = await file.read() - file_size = len(content) - if file.size and file.size > 10 * 1024 * 1024: # 10 MB limit + file_size = len(content) + if file_size > 10 * 1024 * 1024: logger.error("File size exceeds the 10 MB limit") raise HTTPException( status_code=400, detail="File size exceeds the 10 MB limit" ) - # Start file description generation and upload in parallel - summary_task = asyncio.create_task( - generate_file_summary( - file_content=content, - content_type=file.content_type, - filename=file.filename, - ) - ) - - # Upload to Cloudinary - upload_result = cloudinary.uploader.upload( + cloudinary_task = asyncio.to_thread( + cloudinary.uploader.upload, io.BytesIO(content), resource_type="auto", public_id=public_id, overwrite=True, ) + summary_task = generate_file_summary( + file_content=content, + content_type=file.content_type, + filename=file.filename, + ) + + upload_result, summary_result = await asyncio.gather( + cloudinary_task, + summary_task, + ) + file_url = upload_result.get("secure_url") if not file_url: logger.error("Missing secure_url in Cloudinary upload response") @@ -99,15 +95,8 @@ async def upload_file_service( status_code=500, detail="Invalid response from file upload service" ) - logger.info(f"File uploaded to Cloudinary: {file_url}") - - # Wait for description generation to complete - file_summary = await summary_task - - # Process file description - summary, formatted_file_content = _process_file_summary(file_summary) + summary, formatted_file_content = _process_file_summary(summary_result) - # Create metadata object current_time = datetime.now(timezone.utc) file_metadata = { "file_id": file_id, @@ -122,11 +111,10 @@ async def upload_file_service( "created_at": current_time, "updated_at": current_time, } - if conversation_id: - file_metadata["conversation_id"] = ( - conversation_id # Store in MongoDB and ChromaDB concurrently - ) + file_metadata["conversation_id"] = conversation_id + + # Store in DB (Mongo + Chroma) await asyncio.gather( _store_in_mongodb(file_metadata), _store_in_chromadb( @@ -135,11 +123,9 @@ async def upload_file_service( filename=file.filename, content_type=file.content_type, conversation_id=conversation_id, - file_description=file_summary, + file_description=summary_result, ), - ) # Cache invalidation handled by the CacheInvalidator decorator - - logger.info(f"File uploaded successfully. ID: {file_id}, URL: {file_url}") + ) return { "file_id": file_id, @@ -150,7 +136,6 @@ async def upload_file_service( } except HTTPException: - # Re-raise HTTP exceptions without wrapping raise except Exception as e: logger.error(f"Failed to upload file: {str(e)}", exc_info=True) diff --git a/backend/app/services/google_docs_service.py b/backend/app/services/google_docs_service.py index 1476d88f..8665d679 100644 --- a/backend/app/services/google_docs_service.py +++ b/backend/app/services/google_docs_service.py @@ -1,6 +1,7 @@ from typing import Any, Dict, List, Optional from app.config.loggers import general_logger as logger +from app.config.oauth_config import get_integration_scopes from app.config.settings import settings from app.utils.document_utils import create_temp_docx_file from google.oauth2.credentials import Credentials @@ -11,36 +12,36 @@ def get_docs_service(refresh_token: str, access_token: str): """Create and return Google Docs API service instance.""" + # Get combined scopes for both docs and drive access + docs_scopes = get_integration_scopes("google_docs") + drive_scopes = get_integration_scopes("google_drive") + combined_scopes = list(set(docs_scopes + drive_scopes)) + creds = Credentials( token=access_token, refresh_token=refresh_token, token_uri=settings.GOOGLE_TOKEN_URL, client_id=settings.GOOGLE_CLIENT_ID, client_secret=settings.GOOGLE_CLIENT_SECRET, - scopes=[ - "https://www.googleapis.com/auth/documents", - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/drive.readonly", - ], + scopes=combined_scopes, ) return build("docs", "v1", credentials=creds) def get_drive_service(refresh_token: str, access_token: str): """Create and return Google Drive API service instance for file management.""" + # Get combined scopes for both docs and drive access + docs_scopes = get_integration_scopes("google_docs") + drive_scopes = get_integration_scopes("google_drive") + combined_scopes = list(set(docs_scopes + drive_scopes)) + creds = Credentials( token=access_token, refresh_token=refresh_token, token_uri=settings.GOOGLE_TOKEN_URL, client_id=settings.GOOGLE_CLIENT_ID, client_secret=settings.GOOGLE_CLIENT_SECRET, - scopes=[ - "https://www.googleapis.com/auth/documents", - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/drive.readonly", - ], + scopes=combined_scopes, ) return build("drive", "v3", credentials=creds) diff --git a/backend/app/services/mail_service.py b/backend/app/services/mail_service.py index 8bc26ad6..75aa5324 100644 --- a/backend/app/services/mail_service.py +++ b/backend/app/services/mail_service.py @@ -7,6 +7,7 @@ from typing import Any, Dict, List, Optional from app.config.loggers import general_logger as logger +from app.config.oauth_config import get_integration_scopes from app.config.settings import settings from app.utils.general_utils import transform_gmail_message from fastapi import UploadFile @@ -58,10 +59,7 @@ def get_gmail_service( token_uri=settings.GOOGLE_TOKEN_URL, client_id=settings.GOOGLE_CLIENT_ID, client_secret=settings.GOOGLE_CLIENT_SECRET, - scopes=[ - "https://www.googleapis.com/auth/gmail.modify", - "https://www.googleapis.com/auth/gmail.send", - ], + scopes=get_integration_scopes("gmail"), ) return build("gmail", "v1", credentials=creds) diff --git a/backend/app/services/memory_service.py b/backend/app/services/memory_service.py index c1d857d9..bd32bd83 100644 --- a/backend/app/services/memory_service.py +++ b/backend/app/services/memory_service.py @@ -1,10 +1,9 @@ """Memory service layer for handling all memory operations.""" -import asyncio from typing import Any, Dict, List, Optional from app.config.loggers import llm_logger as logger -from app.memory.client import get_memory_client +from app.memory.client import memory_client_manager from app.models.memory_models import ( MemoryEntry, MemorySearchResult, @@ -17,9 +16,12 @@ class MemoryService: def __init__(self): """Initialize the memory service.""" - self.client = get_memory_client() self.logger = logger + async def _get_client(self): + """Get the configured async memory client.""" + return await memory_client_manager.get_client() + def _validate_user_id(self, user_id: Optional[str]) -> Optional[str]: """ Validate and return user_id. @@ -55,29 +57,26 @@ def _parse_memory_result(self, result: Dict[str, Any]) -> Optional[MemoryEntry]: self.logger.warning(f"Expected dict, got {type(result)}: {result}") return None - # Handle both memory structure formats - content = ( - result.get("memory") or result.get("text") or result.get("content", "") - ) + # Extract memory content - all API responses use "memory" field + content = result.get("memory", "") if not content: - self.logger.warning(f"No content found in memory result: {result}") + self.logger.warning(f"No memory content found in result: {result}") return None try: - # Extract all the fields that match the output structure memory_entry = MemoryEntry( id=result.get("id"), content=content, user_id=result.get("user_id", ""), - metadata=result.get("metadata") or {}, - categories=result.get("categories", []), + metadata=result.get("metadata") or {}, # Handle None values + categories=result.get("categories") or [], # Handle None values created_at=result.get("created_at"), updated_at=result.get("updated_at"), expiration_date=result.get("expiration_date"), - internal_metadata=result.get("internal_metadata"), - deleted_at=result.get("deleted_at"), - relevance_score=result.get("score") or result.get("relevance_score"), + immutable=result.get("immutable", False), + organization=result.get("organization"), + owner=result.get("owner"), ) self.logger.debug(f"Successfully parsed memory: {memory_entry.id}") @@ -117,34 +116,44 @@ def _parse_memory_list( ) return parsed_memories - def _extract_memories_from_response(self, response: Any) -> List[Dict[str, Any]]: + def _parse_add_result(self, result: Dict[str, Any]) -> Optional[MemoryEntry]: """ - Extract memories list from various response formats. + Parse add operation result from Mem0 API. Args: - response: API response in various formats + result: Add result dictionary with format: + {"id": "...", "memory": "...", "event": "ADD", "structured_attributes": {...}} Returns: - List of memory dictionaries + MemoryEntry or None if parsing fails """ - if isinstance(response, list): - return response + if not isinstance(result, dict): + self.logger.warning(f"Expected dict, got {type(result)}: {result}") + return None - if isinstance(response, dict): - # Check for 'memories' key (v1.1 format with graph data) - if "memories" in response: - return response["memories"] + # Extract memory content directly from result + content = result.get("memory", "") - # Check for 'results' key (standard format) - if "results" in response: - return response["results"] + if not content: + self.logger.warning(f"No memory content found in add result: {result}") + return None - # Check if response itself is a single memory - if "id" in response and ("memory" in response or "content" in response): - return [response] + try: + memory_entry = MemoryEntry( + id=result.get("id"), + content=content, + metadata=result.get("structured_attributes", {}), + # Model now has defaults for all optional fields + ) - self.logger.warning(f"Unexpected response format: {type(response)}") - return [] + self.logger.debug(f"Successfully parsed add result: {memory_entry.id}") + return memory_entry + + except Exception as e: + self.logger.error( + f"Error creating MemoryEntry from add result: {e}, raw data: {result}" + ) + return None def _extract_relationships_from_response( self, response: Any @@ -153,23 +162,35 @@ def _extract_relationships_from_response( Extract relationships list from API response. Args: - response: API response in various formats + response: API response which might contain relationships Returns: List of relationship dictionaries """ - if isinstance(response, dict) and "relations" in response: - return response.get("relations", []) + # For Mem0 API v2, relationships are in the 'entities' format + if isinstance(response, dict): + # v2 API returns relationships as 'entities' + entities = response.get("entities", []) + if entities: + return entities + + # Fallback to older formats if needed + return ( + response.get("relations", []) + or response.get("relationships", []) + or response.get("graph", {}).get("relationships", []) + ) return [] def _parse_relationships( self, relations: List[Dict[str, Any]] ) -> List[MemoryRelation]: """ - Parse relationships from Mem0 API response. + Parse relationships from Mem0 API v2 response. Args: - relations: List of relationship dictionaries + relations: List of relationship dictionaries in v2 'entities' format: + [{"source": "alice123", "relation": "likes", "destination": "hiking"}] Returns: List of MemoryRelation objects @@ -177,14 +198,37 @@ def _parse_relationships( parsed_relations = [] for relation_data in relations: try: - relation = MemoryRelation( - source=relation_data.get("source", ""), - source_type=relation_data.get("source_type", ""), - relationship=relation_data.get("relationship", ""), - target=relation_data.get("target", ""), - target_type=relation_data.get("target_type", ""), - ) - parsed_relations.append(relation) + # Handle v2 API format with 'entities' + if ( + "source" in relation_data + and "relation" in relation_data + and "destination" in relation_data + ): + relation = MemoryRelation( + source=relation_data.get("source", ""), + source_type="entity", # v2 API doesn't specify types, default to 'entity' + relationship=relation_data.get("relation", ""), + target=relation_data.get("destination", ""), + target_type="entity", # v2 API doesn't specify types, default to 'entity' + ) + parsed_relations.append(relation) + # Fallback to old format if available + elif ( + "source" in relation_data + and "relationship" in relation_data + and "target" in relation_data + ): + relation = MemoryRelation( + source=relation_data.get("source", ""), + source_type=relation_data.get("source_type", "entity"), + relationship=relation_data.get("relationship", ""), + target=relation_data.get("target", ""), + target_type=relation_data.get("target_type", "entity"), + ) + parsed_relations.append(relation) + else: + self.logger.warning(f"Unknown relationship format: {relation_data}") + except Exception as e: self.logger.warning(f"Failed to parse relationship: {e}") continue @@ -198,6 +242,7 @@ async def store_memory( self, content: str, user_id: Optional[str], + conversation_id: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, ) -> Optional[MemoryEntry]: """ @@ -217,40 +262,42 @@ async def store_memory( try: # Store as a simple user message for mem0 to infer memory from - # Use asyncio.to_thread to run synchronous Mem0 client in thread pool - result = await asyncio.to_thread( - self.client.add, + client = await self._get_client() + result = await client.add( messages=[{"role": "user", "content": content}], user_id=user_id, metadata=metadata or {}, infer=True, + version="v2", + run_id=conversation_id, ) self.logger.info(f"Memory stored for user {user_id}") - - # Mem0 cloud API returns a dict with 'results' array - if not isinstance(result, dict) or "results" not in result: - self.logger.warning(f"Unexpected response format from mem0: {result}") + # Mem0 add API returns a dict with 'results' key containing list of result objects + if isinstance(result, dict) and "results" in result: + results_list = result["results"] + elif isinstance(result, list): + results_list = result + else: + self.logger.warning( + f"Unexpected response format from mem0 add: {result}" + ) return None - results = result.get("results", []) - if not results: + if not results_list: + self.logger.warning("No results returned from mem0 add") return None - # Get the first result (usually only one when inferring) - first_result = results[0] + # Get the first result (usually only one when adding) + first_result = results_list[0] - # Use the standardized parsing method for consistency - memory_entry = self._parse_memory_result(first_result) + # Parse the add result + memory_entry = self._parse_add_result(first_result) - # Ensure the user_id is set correctly + # Set the user_id and metadata if memory_entry: memory_entry.user_id = user_id - # If the memory doesn't have content, use the original content - if not memory_entry.content: - memory_entry.content = content - # Ensure metadata is preserved - if not memory_entry.metadata and metadata: + if metadata: memory_entry.metadata = metadata return memory_entry @@ -281,14 +328,24 @@ async def search_memories( return MemorySearchResult() try: - results = await asyncio.to_thread( - self.client.search, + client = await self._get_client() + results = await client.search( query=query, - user_id=user_id, + filters={"AND": [{"user_id": user_id}, {"run_id": "*"}]}, limit=limit, + keyword_search=True, + rerank=True, + version="v2", ) - memories = self._parse_memory_list(memories=results, user_id=user_id) + # Response is a list of memory objects + if not isinstance(results, list): + self.logger.warning( + f"Unexpected response format from mem0 search: {type(results)}" + ) + return MemorySearchResult() + + memories = self._parse_memory_list(results, user_id) return MemorySearchResult( memories=memories, @@ -323,23 +380,34 @@ async def get_all_memories( return MemorySearchResult() try: - response = await asyncio.to_thread( - self.client.get_all, - enable_graph=True, - user_id=user_id, - output_format="v1.1", + client = await self._get_client() + # Request with graph enabled to get relationships + response = await client.get_all( + filters={"AND": [{"user_id": user_id}, {"run_id": "*"}]}, + version="v2", + output_format="v1.1", # Use format that includes graph data ) - memories_list = self._extract_memories_from_response(response) - - # Extract relationships from response (if available) - relations_list = self._extract_relationships_from_response(response) - - logger.info(relations_list) + # Check if response has graph data + memories_list = [] + relationships_list = [] + + if isinstance(response, dict): + # v1.1 format with potential graph data + memories_list = response.get("memories", response.get("results", [])) + relationships_list = self._extract_relationships_from_response(response) + elif isinstance(response, list): + # Simple list format + memories_list = response + else: + self.logger.warning( + f"Unexpected response format from mem0 get_all: {type(response)}" + ) + return MemorySearchResult() # Parse memories and relationships memory_entries = self._parse_memory_list(memories_list, user_id) - relationships = self._parse_relationships(relations_list) + relationships = self._parse_relationships(relationships_list) # Calculate pagination start_index = (page - 1) * page_size @@ -381,7 +449,8 @@ async def delete_memory(self, memory_id: str, user_id: Optional[str]) -> bool: try: # Mem0 cloud API doesn't require user_id for delete - await asyncio.to_thread(self.client.delete, memory_id=memory_id) + client = await self._get_client() + await client.delete(memory_id=memory_id) self.logger.info(f"Memory {memory_id} deleted for user {user_id}") return True diff --git a/backend/app/services/onboarding_service.py b/backend/app/services/onboarding_service.py index f88b511f..68033f27 100644 --- a/backend/app/services/onboarding_service.py +++ b/backend/app/services/onboarding_service.py @@ -39,20 +39,12 @@ async def complete_onboarding( # Convert string ID to ObjectId user_object_id = ObjectId(user_id) - # Prepare onboarding preferences - custom_instructions = ( - onboarding_data.instructions.strip() - if onboarding_data.instructions - else None - ) - if custom_instructions == "": - custom_instructions = None - + # Prepare onboarding preferences with default values for settings page preferences = OnboardingPreferences( - country=onboarding_data.country, + country=None, # Will be set later from timezone detection or settings profession=onboarding_data.profession, - response_style=onboarding_data.response_style, - custom_instructions=custom_instructions, + response_style="casual", # Default response style + custom_instructions=None, ) # Prepare onboarding data @@ -178,7 +170,10 @@ async def update_onboarding_preferences( user_object_id = ObjectId(user_id) # Sanitize and prepare preferences - sanitized_preferences = preferences.model_dump(exclude_none=True) + # First, validate using the Pydantic model which will handle empty string normalization + validated_preferences = OnboardingPreferences(**preferences.model_dump()) + sanitized_preferences = validated_preferences.model_dump(exclude_none=True) + if "custom_instructions" in sanitized_preferences: # Basic sanitization - remove potentially harmful content sanitized_preferences["custom_instructions"] = sanitized_preferences[ diff --git a/backend/app/services/payment_service.py b/backend/app/services/payment_service.py new file mode 100644 index 00000000..114b1d65 --- /dev/null +++ b/backend/app/services/payment_service.py @@ -0,0 +1,215 @@ +""" +Streamlined Dodo Payments integration service. +Clean, simple, and maintainable. +""" + +from typing import Any, Dict, List + +from bson import ObjectId +from dodopayments import DodoPayments +from fastapi import HTTPException + +from app.config.settings import settings +from app.db.mongodb.collections import ( + plans_collection, + subscriptions_collection, + users_collection, +) +from app.db.redis import redis_cache +from app.db.utils import serialize_document +from app.models.payment_models import ( + PlanResponse, + PlanType, + SubscriptionStatus, + UserSubscriptionStatus, +) +from app.utils.email_utils import send_pro_subscription_email + + +class DodoPaymentService: + """Streamlined Dodo Payments service.""" + + def __init__(self): + try: + environment = "live_mode" if settings.ENV == "production" else "test_mode" + + self.client = DodoPayments( + bearer_token=settings.DODO_PAYMENTS_API_KEY, + environment=environment, + ) + except Exception as e: + print(f"Failed to instantiate dodo payments: {e}") + + async def get_plans(self, active_only: bool = True) -> List[PlanResponse]: + """Get subscription plans with caching.""" + cache_key = f"plans:{'active' if active_only else 'all'}" + + # Try cache first + cached = await redis_cache.get(cache_key) + if cached: + try: + # Try to create PlanResponse objects from cached data + plan_responses = [] + for plan_data in cached: + # Ensure dodo_product_id exists in cached data + if "dodo_product_id" not in plan_data: + plan_data["dodo_product_id"] = "" + plan_responses.append(PlanResponse(**plan_data)) + return plan_responses + except Exception: + # If cached data is incompatible, clear cache and fetch fresh + await redis_cache.delete(cache_key) + + # Fetch from database + query = {"is_active": True} if active_only else {} + plans = await plans_collection.find(query).sort("amount", 1).to_list(None) + + plan_responses = [ + PlanResponse( + id=str(plan["_id"]), + dodo_product_id=plan.get("dodo_product_id", ""), + name=plan["name"], + description=plan.get("description"), + amount=plan["amount"], + currency=plan["currency"], + duration=plan["duration"], + max_users=plan.get("max_users"), + features=plan.get("features", []), + is_active=plan["is_active"], + created_at=plan["created_at"], + updated_at=plan["updated_at"], + ) + for plan in plans + ] + + # Cache result + await redis_cache.set(cache_key, [plan.model_dump() for plan in plan_responses]) + return plan_responses + + async def create_subscription( + self, user_id: str, product_id: str, quantity: int = 1 + ) -> Dict[str, Any]: + """Create subscription - only get payment link, store data after webhook.""" + # Get user + user = await users_collection.find_one({"_id": ObjectId(user_id)}) + if not user: + raise HTTPException(404, "User not found") + + # Check for existing active subscription + existing = await subscriptions_collection.find_one( + {"user_id": user_id, "status": "active"} + ) + if existing: + raise HTTPException(409, "Active subscription exists") + + # Create with Dodo - get payment link only + try: + subscription = self.client.subscriptions.create( + billing={ + "city": "N/A", + "country": "IN", + "state": "N/A", + "street": "N/A", + "zipcode": "000000", + }, + customer={ + "email": user.get("email"), + "name": user.get("first_name") or user.get("name", "User"), + "create_new_customer": True, + }, + product_id=product_id, + quantity=quantity, + payment_link=True, + return_url=f"{settings.FRONTEND_URL}/payment/success", + metadata={"user_id": user_id, "product_id": product_id}, + ) + except Exception as e: + raise HTTPException(502, f"Payment service error: {str(e)}") + + # Return payment link without storing in database + return { + "subscription_id": subscription.subscription_id, + "payment_link": getattr(subscription, "payment_link", None), + "status": "payment_link_created", + } + + async def verify_payment_completion(self, user_id: str) -> Dict[str, Any]: + """Check payment completion status from webhook data.""" + subscription = await subscriptions_collection.find_one( + {"user_id": user_id, "status": "active"}, sort=[("created_at", -1)] + ) + + if not subscription: + return { + "payment_completed": False, + "message": "No active subscription found", + } + + # Send welcome email (don't fail if email fails) + try: + user = await users_collection.find_one({"_id": ObjectId(user_id)}) + if user and user.get("email"): + await send_pro_subscription_email( + user_name=user.get("first_name", "User"), + user_email=user["email"], + ) + except Exception: + pass # Email failure shouldn't break payment verification + + return { + "payment_completed": True, + "subscription_id": subscription["dodo_subscription_id"], + "message": "Payment completed", + } + + async def get_user_subscription_status( + self, user_id: str + ) -> UserSubscriptionStatus: + """Get user subscription status.""" + subscription = await subscriptions_collection.find_one( + {"user_id": user_id, "status": "active"} + ) + + if not subscription: + return UserSubscriptionStatus( + user_id=user_id, + current_plan=None, + subscription=None, + is_subscribed=False, + days_remaining=None, + can_upgrade=True, + can_downgrade=False, + has_subscription=False, + plan_type=PlanType.FREE, + status=SubscriptionStatus.PENDING, + ) + + # Get plan details + try: + plans = await self.get_plans(active_only=False) + plan = next( + ( + p + for p in plans + if p.dodo_product_id == subscription.get("product_id") + ), + None, + ) + except Exception: + plan = None + + return UserSubscriptionStatus( + user_id=user_id, + current_plan=plan.model_dump() if plan else None, + subscription=serialize_document(subscription), + is_subscribed=True, + days_remaining=None, + can_upgrade=True, + can_downgrade=True, + has_subscription=True, + plan_type=PlanType.PRO, + status=SubscriptionStatus(subscription["status"]), + ) + + +payment_service = DodoPaymentService() diff --git a/backend/app/services/payment_webhook_service.py b/backend/app/services/payment_webhook_service.py new file mode 100644 index 00000000..2ecfdf4d --- /dev/null +++ b/backend/app/services/payment_webhook_service.py @@ -0,0 +1,448 @@ +""" +Clean payment webhook service for Dodo Payments integration. +Handles webhook events and updates database state accordingly. +""" + +from datetime import datetime, timezone +from typing import Any, Dict + +from bson import ObjectId +from standardwebhooks.webhooks import Webhook + +from app.config.loggers import general_logger as logger +from app.config.settings import settings +from app.db.mongodb.collections import ( + subscriptions_collection, + users_collection, +) +from app.models.webhook_models import ( + DodoWebhookEvent, + WebhookEventType, + WebhookProcessingResult, +) +from app.utils.email_utils import send_pro_subscription_email + + +class PaymentWebhookService: + """Clean service for handling Dodo payment webhooks.""" + + def __init__(self): + self.webhook_secret = settings.DODO_WEBHOOK_PAYMENTS_SECRET + # Initialize Standard Webhooks verifier + if self.webhook_secret: + try: + # The secret should be base64 encoded for Standard Webhooks + self.webhook_verifier = Webhook(self.webhook_secret) + except Exception as e: + logger.error(f"Failed to initialize webhook verifier: {e}") + self.webhook_verifier = None + else: + self.webhook_verifier = None + + self.handlers = { + WebhookEventType.PAYMENT_SUCCEEDED: self._handle_payment_succeeded, + WebhookEventType.PAYMENT_FAILED: self._handle_payment_failed, + WebhookEventType.PAYMENT_PROCESSING: self._handle_payment_processing, + WebhookEventType.PAYMENT_CANCELLED: self._handle_payment_cancelled, + WebhookEventType.SUBSCRIPTION_ACTIVE: self._handle_subscription_active, + WebhookEventType.SUBSCRIPTION_RENEWED: self._handle_subscription_renewed, + WebhookEventType.SUBSCRIPTION_CANCELLED: self._handle_subscription_cancelled, + WebhookEventType.SUBSCRIPTION_EXPIRED: self._handle_subscription_expired, + WebhookEventType.SUBSCRIPTION_FAILED: self._handle_subscription_failed, + WebhookEventType.SUBSCRIPTION_ON_HOLD: self._handle_subscription_on_hold, + WebhookEventType.SUBSCRIPTION_PLAN_CHANGED: self._handle_subscription_plan_changed, + } + + def verify_webhook_signature(self, payload: str, headers: Dict[str, str]) -> bool: + """ + Verify webhook signature using Standard Webhooks library. + + Args: + payload: The raw JSON payload as string + headers: Dictionary of headers from the webhook request + """ + if not self.webhook_verifier: + logger.warning( + "No webhook verifier configured - skipping signature verification" + ) + return True + + # Skip verification in development + if settings.ENV != "production": + logger.info("Development mode - skipping webhook signature verification") + return True + + try: + logger.info("Verifying webhook signature using Standard Webhooks library") + + # The Standard Webhooks library expects headers in the correct format + # Convert headers to the expected format (lowercase with dashes) + webhook_headers = {} + for key, value in headers.items(): + # Convert header names to the expected format + if key.lower() == "webhook-id": + webhook_headers["webhook-id"] = value + elif key.lower() == "webhook-timestamp": + webhook_headers["webhook-timestamp"] = value + elif key.lower() == "webhook-signature": + webhook_headers["webhook-signature"] = value + + # Verify using Standard Webhooks library + self.webhook_verifier.verify(payload.encode("utf-8"), webhook_headers) + + logger.info("Webhook signature verification successful!") + return True + + except Exception as e: + logger.warning(f"Webhook signature verification failed: {e}") + return False + + async def process_webhook( + self, webhook_data: Dict[str, Any] + ) -> WebhookProcessingResult: + """Process Dodo payment webhook.""" + try: + event = DodoWebhookEvent(**webhook_data) + + handler = self.handlers.get(event.type) + if not handler: + return WebhookProcessingResult( + event_type=event.type.value, + status="ignored", + message=f"No handler for {event.type}", + ) + + result = await handler(event) + logger.info(f"Webhook processed: {event.type} - {result.status}") + return result + + except Exception as e: + logger.error(f"Webhook processing failed: {e}") + return WebhookProcessingResult( + event_type=webhook_data.get("type", "unknown"), + status="failed", + message=f"Processing error: {str(e)}", + ) + + # Payment event handlers + async def _handle_payment_succeeded( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle successful payment - just log, subscription activation handles the rest.""" + payment_data = event.get_payment_data() + if not payment_data: + raise ValueError("Invalid payment data") + + logger.info(f"Payment succeeded: {payment_data.payment_id}") + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Payment success logged", + payment_id=payment_data.payment_id, + subscription_id=payment_data.subscription_id, + ) + + async def _handle_payment_failed( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle failed payment.""" + payment_data = event.get_payment_data() + if not payment_data: + raise ValueError("Invalid payment data") + + logger.warning(f"Payment failed: {payment_data.payment_id}") + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Payment failure logged", + payment_id=payment_data.payment_id, + subscription_id=payment_data.subscription_id, + ) + + async def _handle_payment_processing( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle payment processing status.""" + payment_data = event.get_payment_data() + if not payment_data: + raise ValueError("Invalid payment data") + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Payment processing noted", + payment_id=payment_data.payment_id, + subscription_id=payment_data.subscription_id, + ) + + async def _handle_payment_cancelled( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle cancelled payment.""" + payment_data = event.get_payment_data() + if not payment_data: + raise ValueError("Invalid payment data") + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Payment cancellation noted", + payment_id=payment_data.payment_id, + subscription_id=payment_data.subscription_id, + ) + + # Subscription event handlers + async def _handle_subscription_active( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle subscription activation - CREATE subscription record here.""" + sub_data = event.get_subscription_data() + if not sub_data: + raise ValueError("Invalid subscription data") + + # Check if subscription already exists + existing = await subscriptions_collection.find_one( + {"dodo_subscription_id": sub_data.subscription_id} + ) + + if existing: + logger.info(f"Subscription already exists: {sub_data.subscription_id}") + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription already active", + subscription_id=sub_data.subscription_id, + ) + + # Find user by email or metadata + user_id = sub_data.metadata.get("user_id") + if not user_id: + user = await users_collection.find_one({"email": sub_data.customer.email}) + if not user: + logger.error( + f"User not found for subscription: {sub_data.subscription_id}" + ) + return WebhookProcessingResult( + event_type=event.type.value, + status="failed", + message="User not found", + subscription_id=sub_data.subscription_id, + ) + user_id = str(user["_id"]) + + # Create subscription record + subscription_doc = { + "dodo_subscription_id": sub_data.subscription_id, + "user_id": user_id, + "product_id": sub_data.product_id, + "status": "active", + "quantity": sub_data.quantity, + "currency": sub_data.currency, + "recurring_pre_tax_amount": sub_data.recurring_pre_tax_amount, + "payment_frequency_count": sub_data.payment_frequency_count, + "payment_frequency_interval": sub_data.payment_frequency_interval, + "subscription_period_count": sub_data.subscription_period_count, + "subscription_period_interval": sub_data.subscription_period_interval, + "next_billing_date": sub_data.next_billing_date, + "previous_billing_date": sub_data.previous_billing_date, + "created_at": datetime.now(timezone.utc), + "updated_at": datetime.now(timezone.utc), + "metadata": sub_data.metadata, + } + + result = await subscriptions_collection.insert_one(subscription_doc) + if not result.inserted_id: + raise Exception("Failed to create subscription record") + + # Send welcome email + await self._send_welcome_email(user_id) + + logger.info(f"Subscription activated: {sub_data.subscription_id}") + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription activated", + subscription_id=sub_data.subscription_id, + ) + + async def _handle_subscription_renewed( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle subscription renewal.""" + sub_data = event.get_subscription_data() + if not sub_data: + raise ValueError("Invalid subscription data") + + # Update subscription billing dates + result = await subscriptions_collection.update_one( + {"dodo_subscription_id": sub_data.subscription_id}, + { + "$set": { + "status": "active", + "next_billing_date": sub_data.next_billing_date, + "previous_billing_date": sub_data.previous_billing_date, + "updated_at": datetime.now(timezone.utc), + } + }, + ) + + if result.matched_count == 0: + logger.warning( + f"Subscription not found for renewal: {sub_data.subscription_id}" + ) + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription renewed", + subscription_id=sub_data.subscription_id, + ) + + async def _handle_subscription_cancelled( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle subscription cancellation.""" + sub_data = event.get_subscription_data() + if not sub_data: + raise ValueError("Invalid subscription data") + + update_data = { + "status": "cancelled", + "updated_at": datetime.now(timezone.utc), + } + + if sub_data.cancelled_at: + update_data["cancelled_at"] = sub_data.cancelled_at + + await subscriptions_collection.update_one( + {"dodo_subscription_id": sub_data.subscription_id}, + {"$set": update_data}, + ) + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription cancelled", + subscription_id=sub_data.subscription_id, + ) + + async def _handle_subscription_expired( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle subscription expiration.""" + sub_data = event.get_subscription_data() + if not sub_data: + raise ValueError("Invalid subscription data") + + await subscriptions_collection.update_one( + {"dodo_subscription_id": sub_data.subscription_id}, + { + "$set": { + "status": "expired", + "updated_at": datetime.now(timezone.utc), + } + }, + ) + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription expired", + subscription_id=sub_data.subscription_id, + ) + + async def _handle_subscription_failed( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle subscription failure.""" + sub_data = event.get_subscription_data() + if not sub_data: + raise ValueError("Invalid subscription data") + + await subscriptions_collection.update_one( + {"dodo_subscription_id": sub_data.subscription_id}, + { + "$set": { + "status": "failed", + "updated_at": datetime.now(timezone.utc), + } + }, + ) + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription failed", + subscription_id=sub_data.subscription_id, + ) + + async def _handle_subscription_on_hold( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle subscription on hold.""" + sub_data = event.get_subscription_data() + if not sub_data: + raise ValueError("Invalid subscription data") + + await subscriptions_collection.update_one( + {"dodo_subscription_id": sub_data.subscription_id}, + { + "$set": { + "status": "on_hold", + "updated_at": datetime.now(timezone.utc), + } + }, + ) + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription on hold", + subscription_id=sub_data.subscription_id, + ) + + async def _handle_subscription_plan_changed( + self, event: DodoWebhookEvent + ) -> WebhookProcessingResult: + """Handle subscription plan change.""" + sub_data = event.get_subscription_data() + if not sub_data: + raise ValueError("Invalid subscription data") + + await subscriptions_collection.update_one( + {"dodo_subscription_id": sub_data.subscription_id}, + { + "$set": { + "product_id": sub_data.product_id, + "quantity": sub_data.quantity, + "recurring_pre_tax_amount": sub_data.recurring_pre_tax_amount, + "updated_at": datetime.now(timezone.utc), + } + }, + ) + + return WebhookProcessingResult( + event_type=event.type.value, + status="processed", + message="Subscription plan changed", + subscription_id=sub_data.subscription_id, + ) + + async def _send_welcome_email(self, user_id: str) -> None: + """Send welcome email for new subscription.""" + try: + user = await users_collection.find_one({"_id": ObjectId(user_id)}) + if user and user.get("email"): + await send_pro_subscription_email( + user_name=user.get("first_name", "User"), + user_email=user["email"], + ) + logger.info(f"Welcome email sent to {user['email']}") + except Exception as e: + logger.error(f"Failed to send welcome email: {e}") + + +# Single instance +payment_webhook_service = PaymentWebhookService() diff --git a/backend/app/services/payments/__init__.py b/backend/app/services/payments/__init__.py deleted file mode 100644 index 63c03b0f..00000000 --- a/backend/app/services/payments/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -""" -Payment services module. -""" - -from .core import ( - get_plans, - create_subscription, - verify_payment, - get_user_subscription_status, - update_subscription, - cancel_subscription, - sync_subscription_from_razorpay, - process_webhook, - razorpay_service, -) - -__all__ = [ - "get_plans", - "create_subscription", - "verify_payment", - "get_user_subscription_status", - "update_subscription", - "cancel_subscription", - "sync_subscription_from_razorpay", - "process_webhook", - "razorpay_service", -] diff --git a/backend/app/services/payments/client.py b/backend/app/services/payments/client.py deleted file mode 100644 index 7d30af52..00000000 --- a/backend/app/services/payments/client.py +++ /dev/null @@ -1,97 +0,0 @@ -""" -Razorpay client and signature verification utilities. -""" - -import hashlib -import hmac -from typing import Optional, Dict, Any - -import razorpay - -from app.config.loggers import general_logger as logger -from app.config.settings import settings - - -class PaymentServiceError(Exception): - """Base exception for payment service errors.""" - - def __init__( - self, - message: str, - status_code: int = 500, - details: Optional[Dict[str, Any]] = None, - ): - self.message = message - self.status_code = status_code - self.details = details or {} - super().__init__(self.message) - - -class RazorpayService: - """Service class for Razorpay payment integration.""" - - def __init__(self): - """Initialize Razorpay client.""" - try: - # Use Razorpay credentials from settings (via Infisical) - key_id = settings.RAZORPAY_KEY_ID - key_secret = settings.RAZORPAY_KEY_SECRET - - # Initialize client - self.client = razorpay.Client(auth=(key_id, key_secret)) - - # Auto-detect test mode based on key prefix - self.is_test_mode = key_id.startswith("rzp_test_") - mode = "test" if self.is_test_mode else "live" - logger.info(f"Razorpay client initialized in {mode} mode") - except Exception as e: - logger.error(f"Failed to initialize Razorpay client: {e}") - raise PaymentServiceError("Failed to initialize payment service", 502) - - def verify_webhook_signature(self, payload: bytes, signature: str) -> bool: - """Verify Razorpay webhook signature.""" - try: - # Use webhook secret from settings - key_secret = settings.RAZORPAY_KEY_SECRET - expected_signature = hmac.new( - key_secret.encode(), payload, hashlib.sha256 - ).hexdigest() - return hmac.compare_digest(expected_signature, signature) - except Exception as e: - logger.error(f"Error verifying webhook signature: {e}") - return False - - def verify_payment_signature( - self, razorpay_order_id: str, razorpay_payment_id: str, razorpay_signature: str - ) -> bool: - """Verify payment signature for security.""" - try: - body = f"{razorpay_order_id}|{razorpay_payment_id}" - expected_signature = hmac.new( - settings.RAZORPAY_KEY_SECRET.encode(), body.encode(), hashlib.sha256 - ).hexdigest() - return hmac.compare_digest(expected_signature, razorpay_signature) - except Exception as e: - logger.error(f"Error verifying payment signature: {e}") - return False - - def verify_subscription_signature( - self, - razorpay_payment_id: str, - razorpay_subscription_id: str, - razorpay_signature: str, - ) -> bool: - """Verify subscription payment signature for security.""" - try: - body = f"{razorpay_payment_id}|{razorpay_subscription_id}" - expected_signature = hmac.new( - settings.RAZORPAY_KEY_SECRET.encode(), body.encode(), hashlib.sha256 - ).hexdigest() - return hmac.compare_digest(expected_signature, razorpay_signature) - except Exception as e: - logger.error(f"Error verifying subscription signature: {e}") - return False - - -# Initialize Razorpay service -razorpay_service = RazorpayService() diff --git a/backend/app/services/payments/core.py b/backend/app/services/payments/core.py deleted file mode 100644 index 3c80ef70..00000000 --- a/backend/app/services/payments/core.py +++ /dev/null @@ -1,29 +0,0 @@ -""" -Core payment service functions. -""" - -# Import all the functions to re-export them -from .client import razorpay_service -from .plans import get_plans -from .subscriptions import ( - create_subscription, - get_user_subscription_status, - update_subscription, - cancel_subscription, - sync_subscription_from_razorpay, -) -from .verification import verify_payment -from .webhooks import process_webhook - -# Re-export everything -__all__ = [ - "razorpay_service", - "get_plans", - "create_subscription", - "verify_payment", - "get_user_subscription_status", - "update_subscription", - "cancel_subscription", - "sync_subscription_from_razorpay", - "process_webhook", -] diff --git a/backend/app/services/payments/plans.py b/backend/app/services/payments/plans.py deleted file mode 100644 index 031a17d4..00000000 --- a/backend/app/services/payments/plans.py +++ /dev/null @@ -1,87 +0,0 @@ -""" -Plans management service. -""" - -from typing import List, Optional - -from bson import ObjectId -from fastapi import HTTPException - -from app.config.loggers import general_logger as logger -from app.db.mongodb.collections import plans_collection -from app.models.payment_models import PlanResponse - - -async def get_plans(active_only: bool = True) -> List[PlanResponse]: - """Get all subscription plans.""" - try: - query = {"is_active": True} if active_only else {} - plans_cursor = plans_collection.find(query).sort("amount", 1) - plans = await plans_cursor.to_list(length=None) - - return [ - PlanResponse( - id=str(plan["_id"]), - name=plan["name"], - description=plan.get("description"), - amount=plan["amount"], - currency=plan["currency"], - duration=plan["duration"], - max_users=plan.get("max_users"), - features=plan.get("features", []), - is_active=plan["is_active"], - created_at=plan["created_at"], - updated_at=plan["updated_at"], - ) - for plan in plans - ] - except Exception as e: - logger.error(f"Failed to fetch plans: {e}") - raise HTTPException(status_code=500, detail="Failed to retrieve plans") - - -async def get_plan_by_id(plan_id: str) -> Optional[PlanResponse]: - """Get a specific plan by ID.""" - try: - if not ObjectId.is_valid(plan_id): - raise HTTPException(status_code=400, detail="Invalid plan ID format") - - plan = await plans_collection.find_one({"_id": ObjectId(plan_id)}) - - if not plan: - return None - - return PlanResponse( - id=str(plan["_id"]), - name=plan["name"], - description=plan.get("description"), - amount=plan["amount"], - currency=plan["currency"], - duration=plan["duration"], - max_users=plan.get("max_users"), - features=plan.get("features", []), - is_active=plan["is_active"], - created_at=plan["created_at"], - updated_at=plan["updated_at"], - ) - except HTTPException: - raise - except Exception as e: - logger.error(f"Failed to fetch plan {plan_id}: {e}") - raise HTTPException(status_code=500, detail="Failed to retrieve plan") - - -async def get_razorpay_plan_id(plan_id: str) -> str: - """Get Razorpay plan ID from our plan ID.""" - try: - plan = await plans_collection.find_one({"_id": ObjectId(plan_id)}) - if not plan: - raise HTTPException(status_code=404, detail="Plan not found") - - logger.info(f'plan["razorpay_plan_id"]={plan["razorpay_plan_id"]}') - return plan["razorpay_plan_id"] - except HTTPException: - raise - except Exception as e: - logger.error(f"Failed to get Razorpay plan ID for {plan_id}: {e}") - raise HTTPException(status_code=500, detail="Failed to retrieve plan details") diff --git a/backend/app/services/payments/subscriptions.py b/backend/app/services/payments/subscriptions.py deleted file mode 100644 index 363f93d3..00000000 --- a/backend/app/services/payments/subscriptions.py +++ /dev/null @@ -1,613 +0,0 @@ -""" -Subscription management service. -""" - -from datetime import datetime, timedelta, timezone -from typing import Any, Dict - -from bson import ObjectId -from fastapi import HTTPException - -from app.config.loggers import general_logger as logger -from app.db.mongodb.collections import plans_collection, subscriptions_collection -from app.models.payment_models import ( - CreateSubscriptionRequest, - PlanType, - SubscriptionDB, - SubscriptionResponse, - SubscriptionStatus, - UpdateSubscriptionRequest, - UserSubscriptionStatus, -) -from app.services.user_service import get_user_by_id -from app.utils.payments_utils import calculate_subscription_dates, timestamp_to_datetime -from app.utils.timezone import add_timezone_info - -from .client import razorpay_service -from .plans import get_plan_by_id, get_razorpay_plan_id - - -async def create_subscription( - user_id: str, subscription_data: CreateSubscriptionRequest -) -> SubscriptionResponse: - """Create a new subscription for a user.""" - try: - # Validate user exists - user = await get_user_by_id(user_id) - if not user: - raise HTTPException(status_code=404, detail="User not found") - - # Validate plan exists - plan = await get_plan_by_id(subscription_data.plan_id) - if not plan: - raise HTTPException(status_code=404, detail="Plan not found") - - # Check for existing active subscriptions - existing_sub = await subscriptions_collection.find_one( - { - "user_id": user_id, - "status": {"$in": ["active", "authenticated"]}, - } - ) - - if existing_sub: - raise HTTPException( - status_code=409, detail="User already has an active subscription" - ) - - # Clean up old failed/abandoned subscriptions - await _cleanup_old_subscriptions(user_id) - - # Get Razorpay plan ID - razorpay_plan_id = await get_razorpay_plan_id(subscription_data.plan_id) - - # Create subscription in Razorpay - razorpay_subscription = await _create_razorpay_subscription( - user_id, subscription_data, razorpay_plan_id, user - ) - - # Store subscription in database - try: - current_time = datetime.now(timezone.utc) - - # Calculate all date fields with sensible defaults - dates = calculate_subscription_dates( - plan, current_time, razorpay_subscription - ) - - # Create subscription document - subscription_doc = _create_subscription_doc( - razorpay_subscription, user_id, subscription_data, dates, current_time - ) - - result = await subscriptions_collection.insert_one( - subscription_doc.dict(by_alias=True, exclude={"id"}) - ) - subscription_doc.id = str(result.inserted_id) - - if not result.inserted_id: - raise HTTPException( - status_code=500, detail="Failed to store subscription in database" - ) - except HTTPException: - raise - except Exception as e: - logger.error(f"Failed to store subscription in database: {e}") - raise HTTPException(status_code=500, detail="Failed to save subscription") - - logger.info( - f"Successfully created subscription for user {user_id}: {subscription_doc.id}" - ) - - return SubscriptionResponse( - id=subscription_doc.id, - razorpay_subscription_id=subscription_doc.razorpay_subscription_id, - user_id=subscription_doc.user_id, - plan_id=subscription_doc.plan_id, - status=SubscriptionStatus(subscription_doc.status), - quantity=subscription_doc.quantity, - current_start=subscription_doc.current_start, - current_end=subscription_doc.current_end, - ended_at=subscription_doc.ended_at, - charge_at=subscription_doc.charge_at, - start_at=subscription_doc.start_at, - end_at=subscription_doc.end_at, - auth_attempts=subscription_doc.auth_attempts, - total_count=subscription_doc.total_count, - paid_count=subscription_doc.paid_count, - customer_notify=subscription_doc.customer_notify, - created_at=subscription_doc.created_at, - updated_at=subscription_doc.updated_at, - notes=subscription_doc.notes, - ) - - except HTTPException: - raise - except Exception as e: - logger.error(f"Unexpected error creating subscription: {e}") - raise HTTPException(status_code=500, detail="Failed to create subscription") - - -async def get_user_subscription_status(user_id: str) -> UserSubscriptionStatus: - """Get user's current subscription status.""" - try: - # Get user's active subscription - subscription = await subscriptions_collection.find_one( - {"user_id": user_id, "status": {"$in": ["active", "paused", "created"]}} - ) - - if not subscription: - return UserSubscriptionStatus( - user_id=user_id, - current_plan=None, - subscription=None, - is_subscribed=False, - days_remaining=None, - can_upgrade=True, - can_downgrade=False, - # Legacy fields - has_subscription=False, - plan_type=PlanType.FREE, - status=SubscriptionStatus.CANCELLED, - cancel_at_period_end=False, - current_period_end=None, - current_period_start=None, - plan_id=None, - subscription_id=None, - trial_end=None, - ) - - # Get plan details - plan = await plans_collection.find_one( - {"_id": ObjectId(subscription["plan_id"])} - ) - - plan_type = PlanType.FREE # Default to free plan - if plan: - plan_name = plan.get("name", "").lower() - if "pro" in plan_name: - plan_type = PlanType.PRO - - logger.info(f"current_end: {subscription.get('current_end')}") - logger.info(f"current_start: {datetime.now(timezone.utc)}") - - # Calculate days remaining - days_remaining = None - if subscription.get("current_end"): - remaining_delta = add_timezone_info( - target_datetime=subscription["current_end"], timezone_name="UTC" - ) - datetime.now(timezone.utc) - days_remaining = max(0, remaining_delta.days) - - # Format plan and subscription data - current_plan = None - if plan: - current_plan = { - "id": str(plan["_id"]), - "name": plan["name"], - "description": plan.get("description"), - "amount": plan["amount"], - "currency": plan["currency"], - "duration": plan["duration"], - "features": plan.get("features", []), - "is_active": plan.get("is_active", True), - } - - subscription_data = { - "id": str(subscription["_id"]), - "razorpay_subscription_id": subscription.get("razorpay_subscription_id"), - "user_id": subscription["user_id"], - "plan_id": subscription["plan_id"], - "status": subscription["status"], - "quantity": subscription.get("quantity", 1), - "current_start": subscription.get("current_start"), - "current_end": subscription.get("current_end"), - "auth_attempts": subscription.get("auth_attempts", 0), - "total_count": subscription.get("total_count", 0), - "paid_count": subscription.get("paid_count", 0), - "customer_notify": subscription.get("customer_notify", True), - "created_at": subscription.get("created_at"), - "updated_at": subscription.get("updated_at"), - } - - return UserSubscriptionStatus( - user_id=user_id, - current_plan=current_plan, - subscription=subscription_data, - is_subscribed=True, - days_remaining=days_remaining, - can_upgrade=plan_type != PlanType.PRO, - can_downgrade=plan_type not in [PlanType.FREE], - # Legacy fields for backward compatibility - has_subscription=True, - plan_type=plan_type, - status=SubscriptionStatus(subscription["status"]), - current_period_start=subscription.get("current_start"), - current_period_end=subscription.get("current_end"), - cancel_at_period_end=subscription.get("cancel_at_cycle_end", False), - trial_end=subscription.get("trial_end"), - subscription_id=subscription.get("razorpay_subscription_id"), - plan_id=subscription["plan_id"], - ) - - except Exception as e: - logger.error(f"Error getting subscription status for user {user_id}: {e}") - raise HTTPException(status_code=500, detail="Failed to get subscription status") - - -async def update_subscription( - user_id: str, subscription_data: UpdateSubscriptionRequest -) -> SubscriptionResponse | None: - """Update user's subscription with proper error handling and rollback.""" - try: - # Get current subscription - current_subscription = await subscriptions_collection.find_one( - {"user_id": user_id, "status": {"$in": ["active", "created"]}} - ) - - if not current_subscription: - raise HTTPException(status_code=404, detail="No active subscription found") - - razorpay_subscription_id = current_subscription["razorpay_subscription_id"] - - # Prepare update data for Razorpay - update_data: Dict[str, Any] = {} - if subscription_data.plan_id: - razorpay_plan_id = await get_razorpay_plan_id(subscription_data.plan_id) - update_data["plan_id"] = razorpay_plan_id - - if subscription_data.quantity is not None: - update_data["quantity"] = subscription_data.quantity - - if subscription_data.remaining_count is not None: - update_data["remaining_count"] = subscription_data.remaining_count - - if subscription_data.replace_items is not None: - update_data["replace_items"] = subscription_data.replace_items - - if subscription_data.prorate is not None: - update_data["prorate"] = subscription_data.prorate - - # Update subscription in Razorpay - try: - razorpay_service.client.subscription.update( - razorpay_subscription_id, update_data - ) - logger.info(f"Updated Razorpay subscription: {razorpay_subscription_id}") - except Exception as e: - logger.error(f"Failed to update Razorpay subscription: {e}") - raise HTTPException( - status_code=502, - detail="Failed to update subscription in payment gateway", - ) - - # Update subscription in database - db_update_data: Dict[str, Any] = { - "updated_at": datetime.now(timezone.utc), - } - - if subscription_data.plan_id: - db_update_data["plan_id"] = subscription_data.plan_id - - if subscription_data.quantity is not None: - db_update_data["quantity"] = subscription_data.quantity - - result = await subscriptions_collection.update_one( - {"_id": ObjectId(current_subscription["_id"])}, {"$set": db_update_data} - ) - - if result.modified_count == 0: - logger.warning(f"No subscription updated in database for user {user_id}") - - # Fetch updated subscription - updated_subscription_doc = await subscriptions_collection.find_one( - {"_id": ObjectId(current_subscription["_id"])} - ) - - if updated_subscription_doc: - return SubscriptionResponse( - id=str(updated_subscription_doc["_id"]), - razorpay_subscription_id=updated_subscription_doc[ - "razorpay_subscription_id" - ], - user_id=updated_subscription_doc["user_id"], - plan_id=updated_subscription_doc["plan_id"], - status=SubscriptionStatus(updated_subscription_doc["status"]), - quantity=updated_subscription_doc["quantity"], - current_start=updated_subscription_doc.get("current_start"), - current_end=updated_subscription_doc.get("current_end"), - ended_at=updated_subscription_doc.get("ended_at"), - charge_at=updated_subscription_doc.get("charge_at"), - start_at=updated_subscription_doc.get("start_at"), - end_at=updated_subscription_doc.get("end_at"), - auth_attempts=updated_subscription_doc.get("auth_attempts", 0), - total_count=updated_subscription_doc["total_count"], - paid_count=updated_subscription_doc["paid_count"], - customer_notify=updated_subscription_doc["customer_notify"], - created_at=updated_subscription_doc["created_at"], - updated_at=updated_subscription_doc["updated_at"], - notes=updated_subscription_doc.get("notes", {}), - ) - - else: - return None - - except HTTPException: - raise - except Exception as e: - logger.error(f"Unexpected error updating subscription for user {user_id}: {e}") - raise HTTPException(status_code=500, detail="Failed to update subscription") - - -async def cancel_subscription( - user_id: str, cancel_at_cycle_end: bool = True -) -> Dict[str, str]: - """Cancel user's subscription with proper cleanup.""" - try: - # Get current subscription - subscription = await subscriptions_collection.find_one( - {"user_id": user_id, "status": {"$in": ["active", "created"]}} - ) - - if not subscription: - raise HTTPException(status_code=404, detail="No active subscription found") - - razorpay_subscription_id = subscription["razorpay_subscription_id"] - - # Cancel subscription in Razorpay - try: - if cancel_at_cycle_end: - # Cancel at cycle end - razorpay_service.client.subscription.update( - razorpay_subscription_id, {"cancel_at_cycle_end": True} - ) - new_status = "active" # Remains active until cycle end - else: - # Cancel immediately - razorpay_service.client.subscription.cancel(razorpay_subscription_id) - new_status = "cancelled" - - logger.info(f"Cancelled Razorpay subscription: {razorpay_subscription_id}") - except Exception as e: - logger.error(f"Failed to cancel Razorpay subscription: {e}") - raise HTTPException( - status_code=502, - detail="Failed to cancel subscription in payment gateway", - ) - - # Update subscription in database - update_data = { - "status": new_status, - "cancel_at_cycle_end": cancel_at_cycle_end, - "updated_at": datetime.now(timezone.utc), - } - - if not cancel_at_cycle_end: - update_data["ended_at"] = datetime.now(timezone.utc) - - result = await subscriptions_collection.update_one( - {"_id": ObjectId(subscription["_id"])}, {"$set": update_data} - ) - - if result.modified_count == 0: - logger.warning(f"No subscription updated in database for user {user_id}") - - return { - "message": "Subscription cancelled successfully", - "cancel_at_cycle_end": str(cancel_at_cycle_end), - "status": new_status, - } - - except HTTPException: - raise - except Exception as e: - logger.error( - f"Unexpected error cancelling subscription for user {user_id}: {e}" - ) - raise HTTPException(status_code=500, detail="Failed to cancel subscription") - - -async def sync_subscription_from_razorpay(razorpay_subscription_id: str) -> bool: - """Sync subscription data from Razorpay to fix missing fields.""" - try: - # Fetch subscription details from Razorpay - razorpay_subscription = razorpay_service.client.subscription.fetch( - razorpay_subscription_id - ) - - # Get our plan details for calculating defaults - subscription_doc = await subscriptions_collection.find_one( - {"razorpay_subscription_id": razorpay_subscription_id} - ) - - if not subscription_doc: - logger.error( - f"Subscription not found in database: {razorpay_subscription_id}" - ) - return False - - plan = await plans_collection.find_one( - {"_id": ObjectId(subscription_doc["plan_id"])} - ) - - # Calculate updated fields - current_start = timestamp_to_datetime( - razorpay_subscription.get("current_start") - ) - current_end = timestamp_to_datetime(razorpay_subscription.get("current_end")) - charge_at = timestamp_to_datetime(razorpay_subscription.get("charge_at")) - start_at = timestamp_to_datetime(razorpay_subscription.get("start_at")) - end_at = timestamp_to_datetime(razorpay_subscription.get("end_at")) - - # Set defaults if fields are still null - created_at = subscription_doc.get("created_at", datetime.now(timezone.utc)) - - if not start_at: - start_at = created_at - - if not current_start: - current_start = start_at - - if not current_end and plan and current_start is not None: - # Calculate end based on plan duration - if plan.get("duration") == "monthly": - current_end = current_start + timedelta(days=30) - elif plan.get("duration") == "yearly": - current_end = current_start + timedelta(days=365) - - if not charge_at: - charge_at = current_start - - if not end_at and plan and start_at is not None: - # Set to total billing cycles from start - total_count = razorpay_subscription.get("total_count", 10) - if plan.get("duration") == "monthly": - end_at = start_at + timedelta(days=30 * total_count) - elif plan.get("duration") == "yearly": - end_at = start_at + timedelta(days=365 * total_count) - - # Update subscription in database - update_data = { - "status": razorpay_subscription["status"], - "current_start": current_start, - "current_end": current_end, - "charge_at": charge_at, - "start_at": start_at, - "end_at": end_at, - "auth_attempts": razorpay_subscription.get("auth_attempts", 0), - "total_count": razorpay_subscription.get("total_count", 10), - "paid_count": razorpay_subscription.get("paid_count", 0), - "updated_at": datetime.now(timezone.utc), - } - - # Remove None values - update_data = {k: v for k, v in update_data.items() if v is not None} - - result = await subscriptions_collection.update_one( - {"razorpay_subscription_id": razorpay_subscription_id}, - {"$set": update_data}, - ) - - if result.modified_count > 0: - logger.info( - f"Successfully synced subscription from Razorpay: {razorpay_subscription_id}" - ) - return True - else: - logger.warning( - f"No changes made to subscription: {razorpay_subscription_id}" - ) - return False - - except Exception as e: - logger.error( - f"Failed to sync subscription from Razorpay {razorpay_subscription_id}: {e}" - ) - return False - - -# Helper functions -async def _cleanup_old_subscriptions(user_id: str) -> None: - """Clean up old failed/abandoned subscriptions for a user.""" - try: - cleanup_result = await subscriptions_collection.delete_many( - { - "user_id": user_id, - "$or": [ - { - "status": "created", - "created_at": { - "$lt": datetime.now(timezone.utc) - timedelta(hours=1) - }, - }, - {"status": "failed"}, - ], - } - ) - - if cleanup_result.deleted_count > 0: - logger.info( - f"Cleaned up {cleanup_result.deleted_count} failed subscriptions for user {user_id}" - ) - except Exception as e: - logger.warning(f"Failed to cleanup subscriptions for user {user_id}: {e}") - - -async def _create_razorpay_subscription( - user_id: str, - subscription_data: CreateSubscriptionRequest, - razorpay_plan_id: str, - user: Dict[str, Any], -) -> Dict[str, Any]: - """Create subscription in Razorpay and return the subscription data.""" - razorpay_sub_data = { - "plan_id": razorpay_plan_id, - "quantity": subscription_data.quantity, - "customer_notify": subscription_data.customer_notify, - "total_count": 10, # Razorpay's maximum allowed - "addons": subscription_data.addons, - "notes": { - "user_id": user_id, - "user_email": user["email"], - **(subscription_data.notes or {}), - }, - } - - try: - razorpay_subscription = razorpay_service.client.subscription.create( - razorpay_sub_data - ) - mode = "test" if razorpay_service.is_test_mode else "live" - logger.info( - f"Created Razorpay subscription in {mode} mode: {razorpay_subscription['id']}" - ) - except Exception as e: - logger.error(f"Failed to create Razorpay subscription: {e}") - raise HTTPException( - status_code=502, detail="Failed to create subscription in payment gateway" - ) - - # Fetch latest subscription details to get any updated timestamps - try: - razorpay_subscription = razorpay_service.client.subscription.fetch( - razorpay_subscription["id"] - ) - logger.info( - f"Fetched updated subscription details for: {razorpay_subscription['id']}" - ) - except Exception as e: - logger.warning(f"Failed to fetch updated subscription details: {e}") - # Continue with original response - - return razorpay_subscription - - -def _create_subscription_doc( - razorpay_subscription: Dict[str, Any], - user_id: str, - subscription_data: CreateSubscriptionRequest, - dates: Dict[str, datetime], - current_time: datetime, -) -> SubscriptionDB: - """Create a SubscriptionDB document with all the necessary fields.""" - return SubscriptionDB( - _id=None, # Will be set by MongoDB - razorpay_subscription_id=razorpay_subscription["id"], - user_id=user_id, - plan_id=subscription_data.plan_id, - status=razorpay_subscription["status"], - quantity=subscription_data.quantity, - current_start=dates["current_start"], - current_end=dates["current_end"], - ended_at=None, - charge_at=dates["charge_at"], - start_at=dates["start_at"], - end_at=dates["end_at"], - auth_attempts=razorpay_subscription.get("auth_attempts", 0), - total_count=razorpay_subscription.get("total_count", 10), - paid_count=razorpay_subscription.get("paid_count", 0), - customer_notify=subscription_data.customer_notify, - notes=subscription_data.notes or {}, - created_at=current_time, - updated_at=current_time, - ) diff --git a/backend/app/services/payments/verification.py b/backend/app/services/payments/verification.py deleted file mode 100644 index fc588bd5..00000000 --- a/backend/app/services/payments/verification.py +++ /dev/null @@ -1,213 +0,0 @@ -""" -Payment verification and processing. -""" - -from datetime import datetime, timezone - -from bson import ObjectId -from fastapi import HTTPException - -from app.config.loggers import general_logger as logger -from app.db.mongodb.collections import ( - payments_collection, - subscriptions_collection, - users_collection, -) -from app.models.payment_models import ( - PaymentCallbackRequest, - PaymentDB, - PaymentMethod, - PaymentResponse, - PaymentStatus, -) -from app.utils.email_utils import send_pro_subscription_email -from app.utils.payments_utils import safe_get_notes - -from .client import razorpay_service - - -async def verify_payment( - user_id: str, callback_data: PaymentCallbackRequest -) -> PaymentResponse: - """Verify and process payment callback.""" - try: - # Verify payment signature - if callback_data.razorpay_order_id: - # Regular payment verification - is_valid = razorpay_service.verify_payment_signature( - callback_data.razorpay_order_id, - callback_data.razorpay_payment_id, - callback_data.razorpay_signature, - ) - logger.info(f"Regular payment signature verification: {is_valid}") - elif callback_data.razorpay_subscription_id: - # Subscription payment verification - is_valid = razorpay_service.verify_subscription_signature( - callback_data.razorpay_payment_id, - callback_data.razorpay_subscription_id, - callback_data.razorpay_signature, - ) - logger.info(f"Subscription payment signature verification: {is_valid}") - else: - logger.error( - "No order_id or subscription_id provided for signature verification" - ) - raise HTTPException( - status_code=400, - detail="Missing order_id or subscription_id for verification", - ) - - if not is_valid: - logger.error( - f"Invalid payment signature for payment_id: {callback_data.razorpay_payment_id}" - ) - raise HTTPException(status_code=400, detail="Invalid payment signature") - - mode = "test" if razorpay_service.is_test_mode else "live" - logger.info(f"Payment signature verified successfully in {mode} mode") - - # Fetch payment details from Razorpay - try: - razorpay_payment = razorpay_service.client.payment.fetch( - callback_data.razorpay_payment_id - ) - logger.info( - f"Fetched payment data in {mode} mode: {callback_data.razorpay_payment_id}" - ) - except Exception as e: - logger.error(f"Failed to fetch payment details: {e}") - raise HTTPException( - status_code=502, detail="Failed to fetch payment details" - ) - - # Store payment in database - try: - # Determine payment method - payment_method = None - if razorpay_payment.get("method"): - try: - payment_method = PaymentMethod(razorpay_payment["method"]) - except ValueError: - payment_method = None - - current_time = datetime.now(timezone.utc) - payment_doc = PaymentDB( - _id=None, # Will be set by MongoDB - razorpay_payment_id=razorpay_payment["id"], - user_id=user_id, - subscription_id=callback_data.razorpay_subscription_id, - order_id=callback_data.razorpay_order_id, - amount=razorpay_payment["amount"], - currency=razorpay_payment["currency"], - status=razorpay_payment["status"], - method=payment_method, - description=razorpay_payment.get("description"), - international=razorpay_payment.get("international", False), - refund_status=razorpay_payment.get("refund_status"), - amount_refunded=razorpay_payment.get("amount_refunded", 0), - captured=razorpay_payment.get("captured", False), - email=razorpay_payment.get("email"), - contact=razorpay_payment.get("contact"), - fee=razorpay_payment.get("fee"), - tax=razorpay_payment.get("tax"), - error_code=razorpay_payment.get("error_code"), - error_description=razorpay_payment.get("error_description"), - webhook_verified=True, - notes=safe_get_notes(razorpay_payment.get("notes")), - created_at=current_time, - ) - - result = await payments_collection.insert_one( - payment_doc.dict(by_alias=True, exclude={"id"}) - ) - payment_doc.id = str(result.inserted_id) - - if not result.inserted_id: - raise HTTPException( - status_code=500, detail="Failed to store payment in database" - ) - except HTTPException: - raise - except Exception as e: - logger.error(f"Failed to store payment in database: {e}") - raise HTTPException(status_code=500, detail="Failed to save payment") - - # If this payment is for a subscription, activate the subscription - if callback_data.razorpay_subscription_id: - try: - result = await subscriptions_collection.update_one( - { - "razorpay_subscription_id": callback_data.razorpay_subscription_id - }, - { - "$set": { - "status": "active", - "paid_count": 1, - "updated_at": datetime.now(timezone.utc), - } - }, - ) - subscription_activated = result.modified_count > 0 - if subscription_activated: - logger.info( - f"Activated subscription: {callback_data.razorpay_subscription_id}" - ) - else: - logger.warning( - f"No subscription found to activate: {callback_data.razorpay_subscription_id}" - ) - except Exception as e: - logger.error( - f"Failed to activate subscription {callback_data.razorpay_subscription_id}: {e}" - ) - subscription_activated = False - - # Send pro activation email to the user if subscription was activated - if subscription_activated: - try: - user = await users_collection.find_one({"_id": ObjectId(user_id)}) - logger.info(user) - if user: - await send_pro_subscription_email( - user_name=user.get("first_name", user.get("name", "there")), - user_email=user["email"], - ) - logger.info( - f"Pro subscription welcome email sent to {user['email']}" - ) - except Exception as e: - logger.error( - f"Failed to send pro subscription email to user {user_id}: {e}" - ) - - logger.info(f"Successfully verified and stored payment: {payment_doc.id}") - - return PaymentResponse( - id=payment_doc.id, - user_id=payment_doc.user_id, - subscription_id=payment_doc.subscription_id, - order_id=payment_doc.order_id, - amount=payment_doc.amount, - currency=payment_doc.currency, - status=PaymentStatus(payment_doc.status), - method=payment_method, - description=payment_doc.description, - international=payment_doc.international, - refund_status=payment_doc.refund_status, - amount_refunded=payment_doc.amount_refunded, - captured=payment_doc.captured, - email=payment_doc.email, - contact=payment_doc.contact, - fee=payment_doc.fee, - tax=payment_doc.tax, - error_code=payment_doc.error_code, - error_description=payment_doc.error_description, - created_at=payment_doc.created_at, - notes=payment_doc.notes, - ) - - except HTTPException: - raise - except Exception as e: - logger.error(f"Unexpected error verifying payment: {e}") - raise HTTPException(status_code=500, detail="Failed to verify payment") diff --git a/backend/app/services/payments/webhooks.py b/backend/app/services/payments/webhooks.py deleted file mode 100644 index 7b530e10..00000000 --- a/backend/app/services/payments/webhooks.py +++ /dev/null @@ -1,229 +0,0 @@ -""" -Webhook event processing for Razorpay. -""" - -from datetime import datetime, timezone -from typing import Any, Dict - -from fastapi import HTTPException - -from app.config.loggers import general_logger as logger -from app.db.mongodb.collections import payments_collection, subscriptions_collection -from app.models.payment_models import WebhookEvent -from app.utils.payments_utils import timestamp_to_datetime - -from .client import razorpay_service - - -async def process_webhook(event: WebhookEvent) -> Dict[str, str]: - """Process Razorpay webhook events with proper error handling.""" - try: - event_type = event.event - entity = event.payload.get("payment", event.payload.get("subscription", {})) - entity_id = entity.get("id") - - logger.info(f"Processing webhook event: {event_type} for entity: {entity_id}") - - if event_type.startswith("payment."): - return await _process_payment_webhook(event_type, entity) - elif event_type.startswith("subscription."): - return await _process_subscription_webhook(event_type, entity) - else: - logger.warning(f"Unhandled webhook event type: {event_type}") - return {"status": "ignored", "message": "Event type not handled"} - - except Exception as e: - logger.error(f"Error processing webhook event {event.event}: {e}") - raise HTTPException(status_code=500, detail="Webhook processing failed") - - -async def _process_payment_webhook( - event_type: str, payment_entity: Dict[str, Any] -) -> Dict[str, str]: - """Process payment-related webhook events.""" - payment_id = payment_entity.get("id") - - if event_type == "payment.captured": - # Update payment status to captured - await payments_collection.update_one( - {"razorpay_payment_id": payment_id}, - { - "$set": { - "status": "captured", - "captured": True, - "updated_at": datetime.now(timezone.utc), - } - }, - ) - logger.info(f"Payment captured: {payment_id}") - - elif event_type == "payment.failed": - # Update payment status to failed - await payments_collection.update_one( - {"razorpay_payment_id": payment_id}, - { - "$set": { - "status": "failed", - "error_code": payment_entity.get("error_code"), - "error_description": payment_entity.get("error_description"), - "updated_at": datetime.now(timezone.utc), - } - }, - ) - logger.info(f"Payment failed: {payment_id}") - - return { - "status": "processed", - "event": event_type, - "payment_id": str(payment_id) if payment_id else "", - } - - -async def _process_subscription_webhook( - event_type: str, subscription_entity: Dict[str, Any] -) -> Dict[str, str]: - """Process subscription-related webhook events.""" - subscription_id = subscription_entity.get("id") - - if event_type == "subscription.activated": - # Activate subscription and fetch latest details from Razorpay - try: - # Fetch complete subscription details from Razorpay - complete_subscription = razorpay_service.client.subscription.fetch( - subscription_id - ) - - update_data = { - "status": "active", - "current_start": timestamp_to_datetime( - complete_subscription.get("current_start") - ), - "current_end": timestamp_to_datetime( - complete_subscription.get("current_end") - ), - "charge_at": timestamp_to_datetime( - complete_subscription.get("charge_at") - ), - "start_at": timestamp_to_datetime( - complete_subscription.get("start_at") - ), - "end_at": timestamp_to_datetime(complete_subscription.get("end_at")), - "auth_attempts": complete_subscription.get("auth_attempts", 0), - "total_count": complete_subscription.get("total_count", 10), - "paid_count": complete_subscription.get("paid_count", 0), - "updated_at": datetime.now(timezone.utc), - } - - # Remove None values to avoid overwriting existing data - update_data = {k: v for k, v in update_data.items() if v is not None} - - await subscriptions_collection.update_one( - {"razorpay_subscription_id": subscription_id}, {"$set": update_data} - ) - except Exception as e: - logger.error(f"Failed to fetch complete subscription details: {e}") - # Fallback to webhook data - await subscriptions_collection.update_one( - {"razorpay_subscription_id": subscription_id}, - { - "$set": { - "status": "active", - "current_start": timestamp_to_datetime( - subscription_entity.get("current_start") - ), - "current_end": timestamp_to_datetime( - subscription_entity.get("current_end") - ), - "updated_at": datetime.now(timezone.utc), - } - }, - ) - logger.info(f"Subscription activated: {subscription_id}") - - elif event_type == "subscription.charged": - # Update subscription payment count and billing period - try: - # Fetch complete subscription details from Razorpay - complete_subscription = razorpay_service.client.subscription.fetch( - subscription_id - ) - - update_data = { - "current_start": timestamp_to_datetime( - complete_subscription.get("current_start") - ), - "current_end": timestamp_to_datetime( - complete_subscription.get("current_end") - ), - "charge_at": timestamp_to_datetime( - complete_subscription.get("charge_at") - ), - "paid_count": complete_subscription.get("paid_count", 0), - "updated_at": datetime.now(timezone.utc), - } - - # Remove None values - update_data = {k: v for k, v in update_data.items() if v is not None} - - await subscriptions_collection.update_one( - {"razorpay_subscription_id": subscription_id}, - { - "$set": update_data, - "$inc": ( - {"paid_count": 1} if "paid_count" not in update_data else {} - ), - }, - ) - except Exception as e: - logger.error(f"Failed to fetch complete subscription details: {e}") - # Fallback to webhook data - await subscriptions_collection.update_one( - {"razorpay_subscription_id": subscription_id}, - { - "$inc": {"paid_count": 1}, - "$set": { - "current_start": timestamp_to_datetime( - subscription_entity.get("current_start") - ), - "current_end": timestamp_to_datetime( - subscription_entity.get("current_end") - ), - "updated_at": datetime.now(timezone.utc), - }, - }, - ) - logger.info(f"Subscription charged: {subscription_id}") - - elif event_type == "subscription.cancelled": - # Cancel subscription - await subscriptions_collection.update_one( - {"razorpay_subscription_id": subscription_id}, - { - "$set": { - "status": "cancelled", - "ended_at": datetime.now(timezone.utc), - "updated_at": datetime.now(timezone.utc), - } - }, - ) - logger.info(f"Subscription cancelled: {subscription_id}") - - elif event_type == "subscription.completed": - # Complete subscription - await subscriptions_collection.update_one( - {"razorpay_subscription_id": subscription_id}, - { - "$set": { - "status": "completed", - "ended_at": datetime.now(timezone.utc), - "updated_at": datetime.now(timezone.utc), - } - }, - ) - logger.info(f"Subscription completed: {subscription_id}") - - return { - "status": "processed", - "event": event_type, - "subscription_id": str(subscription_id) if subscription_id else "", - } diff --git a/backend/app/services/support_service.py b/backend/app/services/support_service.py index 24885105..0c8432f1 100644 --- a/backend/app/services/support_service.py +++ b/backend/app/services/support_service.py @@ -7,8 +7,6 @@ import cloudinary import cloudinary.uploader -from fastapi import HTTPException, UploadFile - from app.config.loggers import app_logger as logger from app.db.mongodb.collections import support_collection from app.models.support_models import ( @@ -26,6 +24,7 @@ send_support_team_notification, send_support_to_user_email, ) +from fastapi import HTTPException, UploadFile # Support team emails SUPPORT_EMAILS = [ diff --git a/backend/app/utils/auth_utils.py b/backend/app/utils/auth_utils.py index 7fd621b5..45d6a2e4 100644 --- a/backend/app/utils/auth_utils.py +++ b/backend/app/utils/auth_utils.py @@ -1,118 +1,16 @@ -from typing import Any, Awaitable, Callable, Dict, Optional, Tuple, TypeVar +from typing import Any, Dict, Optional, Tuple -import httpx -from fastapi import HTTPException -from workos import WorkOSClient +from workos import AsyncWorkOSClient from app.config.loggers import auth_logger -from app.config.loggers import calendar_logger as logger from app.config.settings import settings -from app.config.token_repository import token_repository from app.db.mongodb.collections import users_collection # T is the return type of the wrapped function -T = TypeVar("T") - - -async def _refresh_token(user_id: str, provider: str) -> str: - """ - Helper function to refresh an OAuth token. - - Args: - user_id: The user ID for token refresh - provider: The provider name (e.g., "google") - - Returns: - str: The refreshed access token - - Raises: - HTTPException: If token refresh fails - """ - logger.info(f"Access token expired for user {user_id}, attempting refresh") - token = await token_repository.refresh_token(user_id, provider) - if not token: - raise HTTPException(status_code=401, detail="Failed to refresh authentication") - - new_access_token = str(token.get("access_token", "")) - if not new_access_token: - raise HTTPException( - status_code=401, detail="Failed to get access token after refresh" - ) - - return new_access_token - - -async def with_token_refresh( - user_id: str, - provider: str, - func: Callable[..., Awaitable[T]], - *args: Any, - **kwargs: Any, -) -> T: - """ - Execute a function with token refresh capability. - If the function raises a 401 HTTPException, try to refresh the token and retry. - - Args: - user_id: The user ID for token refresh - provider: The provider name (e.g., "google") - func: The function to execute - args: Positional arguments to pass to the function - kwargs: Keyword arguments to pass to the function - - Returns: - The result of the function - """ - try: - # Try to execute the function with current credentials - return await func(*args, **kwargs) - except HTTPException as e: - if e.status_code == 401: - # Refresh token - new_access_token = await _refresh_token(user_id, provider) - - # Update the access_token in kwargs if it exists - if "access_token" in kwargs: - kwargs["access_token"] = new_access_token - - # Try again with the new token - logger.info(f"Retrying API call with refreshed token for user {user_id}") - return await func(*args, **kwargs) - else: - # If it's not a 401, re-raise the exception - raise - except httpx.HTTPStatusError as e: - if e.response.status_code == 401 and user_id: - # Refresh token - new_access_token = await _refresh_token(user_id, provider) - - # Update the access_token in kwargs if it exists - if "access_token" in kwargs: - kwargs["access_token"] = new_access_token - - # Try again with the new token - logger.info(f"Retrying API call with refreshed token for user {user_id}") - return await func(*args, **kwargs) - else: - # Convert HTTPStatusError to HTTPException with details - error_detail = "Unknown error" - try: - error_json = e.response.json() - if isinstance(error_json, dict): - error_message = error_json.get("error", {}) - if isinstance(error_message, dict): - error_detail = error_message.get("message", "Unknown error") - except Exception: - error_detail = str(e) - - raise HTTPException( - status_code=e.response.status_code, - detail=f"API request failed: {error_detail}", - ) async def authenticate_workos_session( - session_token: str, workos_client: Optional[WorkOSClient] = None + session_token: str, workos_client: Optional[AsyncWorkOSClient] = None ) -> Tuple[Dict[str, Any], Optional[str]]: """ Authenticate a WorkOS session and refresh if needed. @@ -130,14 +28,14 @@ async def authenticate_workos_session( along with None for the session token. """ # Initialize WorkOS client if not provided - workos = workos_client or WorkOSClient( + workos = workos_client or AsyncWorkOSClient( api_key=settings.WORKOS_API_KEY, client_id=settings.WORKOS_CLIENT_ID, ) try: # Load and authenticate the WorkOS session - session = workos.user_management.load_sealed_session( + session = await workos.user_management.load_sealed_session( sealed_session=session_token, cookie_password=settings.WORKOS_COOKIE_PASSWORD, ) @@ -153,11 +51,15 @@ async def authenticate_workos_session( else: # Try to refresh the session try: - refresh_result = session.refresh() + refresh_result = await session.refresh( + cookie_password=settings.WORKOS_COOKIE_PASSWORD + ) if not refresh_result.authenticated: # Authentication failed, even after refresh - auth_logger.warning("Authentication failed even after refresh") + auth_logger.warning( + f"Authentication failed even after refresh with reason: {refresh_result.reason}" # type: ignore[reportOptionalMemberAccess] + ) return {}, None # Get user information via dictionary access for flexibility diff --git a/backend/app/utils/embedding_utils.py b/backend/app/utils/embedding_utils.py index 29820d93..4c67cf76 100644 --- a/backend/app/utils/embedding_utils.py +++ b/backend/app/utils/embedding_utils.py @@ -1,21 +1,13 @@ -from functools import lru_cache from typing import Any, List, Optional, Tuple from bson import ObjectId from langchain_core.documents import Document -from sentence_transformers import SentenceTransformer from app.config.loggers import chat_logger as logger from app.db.chromadb import ChromaClient from app.db.mongodb.collections import files_collection, notes_collection -@lru_cache(maxsize=1) -def get_embedding_model(): - """Lazy-load the SentenceTransformer model and cache it.""" - return SentenceTransformer("all-MiniLM-L6-v2") - - async def search_by_similarity( input_text: str, user_id: str, @@ -162,8 +154,3 @@ async def search_documents_by_similarity( additional_filters=additional_filters, fetch_mongo_details=True, ) - - -def generate_embedding(text): - model = get_embedding_model() - return model.encode(text).tolist() diff --git a/backend/app/utils/integration_checker.py b/backend/app/utils/integration_checker.py index ffc20bb4..6cf6d133 100644 --- a/backend/app/utils/integration_checker.py +++ b/backend/app/utils/integration_checker.py @@ -11,7 +11,7 @@ from langgraph.config import get_stream_writer from app.config.loggers import auth_logger as logger -from app.config.oauth_config import get_integration_by_id +from app.config.oauth_config import get_integration_by_id, get_integration_scopes from app.config.token_repository import token_repository http_async_client = httpx.AsyncClient(timeout=10.0) @@ -25,17 +25,6 @@ # Add more mappings as needed } -# Mapping of integration IDs to their required scopes -INTEGRATION_SCOPE_MAPPING = { - "gmail": ["https://www.googleapis.com/auth/gmail.modify"], - "google_calendar": [ - "https://www.googleapis.com/auth/calendar.events", - "https://www.googleapis.com/auth/calendar.readonly", - ], - "google_docs": ["https://www.googleapis.com/auth/documents"], - "google_drive": ["https://www.googleapis.com/auth/drive.file"], -} - async def check_user_has_integration(access_token: str, integration_id: str) -> bool: """ @@ -52,8 +41,8 @@ async def check_user_has_integration(access_token: str, integration_id: str) -> return False try: - # Get required scopes for this integration - required_scopes = INTEGRATION_SCOPE_MAPPING.get(integration_id, []) + # Get required scopes for this integration from oauth_config + required_scopes = get_integration_scopes(integration_id) if not required_scopes: logger.warning(f"No scopes defined for integration: {integration_id}") return False diff --git a/backend/app/utils/integration_decorator.py b/backend/app/utils/integration_decorator.py deleted file mode 100644 index bc3eb80f..00000000 --- a/backend/app/utils/integration_decorator.py +++ /dev/null @@ -1,77 +0,0 @@ -""" -Integration Connection Decorator - -This module provides a decorator to check integration requirements before tool execution. -""" - -from functools import wraps -from typing import Any, Callable, Optional - -from app.utils.integration_checker import check_and_prompt_integration -from app.config.loggers import auth_logger as logger - - -def require_integration(tool_category: str, tool_name: Optional[str] = None): - """ - Decorator to check if user has required integration before executing a tool. - - Args: - tool_category: The tool category (e.g., 'mail', 'calendar', 'google_docs') - tool_name: Optional tool name for better error messaging - - Usage: - @tool # ENSURE TOOL IS BEFORE REQUIRE_INTEGRATION OTHERWISE IT WON'T PARSE!! - @require_integration("mail", "send_email_tool") - async def send_email_tool(config: RunnableConfig, ...): - # Tool implementation - """ - - def decorator(func: Callable) -> Callable: - @wraps(func) - async def wrapper(*args, **kwargs) -> Any: - # Extract config from args or kwargs - config = None - - # Look for RunnableConfig in args - for arg in args: - if hasattr(arg, "get") and hasattr(arg, "keys"): - config = arg - break - - # Look for RunnableConfig in kwargs - if not config: - config = kwargs.get("config") - - if not config: - logger.warning( - f"No RunnableConfig found for tool: {tool_name or func.__name__}" - ) - return "Configuration error: Unable to verify integration permissions." - - # Extract access token from config - configurable = config.get("configurable", {}) - access_token = configurable.get("access_token", "") - - if not access_token: - logger.warning( - f"No access token found for tool: {tool_name or func.__name__}" - ) - return "Authentication required: Please ensure you're logged in." - - # Check if user has required integration - has_permission = await check_and_prompt_integration( - access_token=access_token, - tool_category=tool_category, - tool_name=tool_name or func.__name__, - ) - - if not has_permission: - # Integration connection prompt was sent to frontend - return "Please connect your account to use this feature." - - # User has required permissions, execute the tool - return await func(*args, **kwargs) - - return wrapper - - return decorator diff --git a/backend/app/utils/memory_utils.py b/backend/app/utils/memory_utils.py index a42a5ba3..46f2f81f 100644 --- a/backend/app/utils/memory_utils.py +++ b/backend/app/utils/memory_utils.py @@ -13,6 +13,7 @@ async def store_user_message_memory(user_id: str, message: str, conversation_id: result = await memory_service.store_memory( content=message, user_id=user_id, + conversation_id=conversation_id, metadata={ "timestamp": datetime.now(timezone.utc).isoformat(), "conversation_id": conversation_id, diff --git a/backend/app/utils/nltk_utils.py b/backend/app/utils/nltk_utils.py deleted file mode 100644 index 682a6fb4..00000000 --- a/backend/app/utils/nltk_utils.py +++ /dev/null @@ -1,29 +0,0 @@ -import nltk -from nltk.data import find -from app.config.loggers import nltk_logger as logger - - -def download_nltk_resources(): - """ - Ensure necessary NLTK resources are downloaded. - This function checks for required resources and downloads them if missing. - """ - logger.info("Initializing NLTK for Natural Language Processing...") - - nltk.data.path.append("/home/appuser/nltk_data") - - resources = [ - ("tokenizers/punkt", "punkt"), - ("corpora/stopwords", "stopwords"), - ("tokenizers/punkt_tab", "punkt_tab"), - ] - - for resource_path, resource_name in resources: - try: - find(resource_path) - logger.info(f"{resource_name.capitalize()} resource already available.") - except LookupError: - logger.info( - f"{resource_name.capitalize()} resource not found. Downloading..." - ) - nltk.download(resource_name) diff --git a/backend/app/utils/payments_utils.py b/backend/app/utils/payments_utils.py deleted file mode 100644 index ac274e44..00000000 --- a/backend/app/utils/payments_utils.py +++ /dev/null @@ -1,88 +0,0 @@ -""" -Utility functions for payment processing. -""" - -from datetime import datetime, timedelta -from typing import Any, Dict, Optional - -from app.config.loggers import general_logger as logger -from app.models.payment_models import PlanResponse - - -def safe_get_notes(notes_value: Any) -> Dict[str, str]: - """ - Safely extract notes from Razorpay response. - Razorpay sometimes returns notes as a list instead of dict. - """ - if isinstance(notes_value, dict): - return {str(k): str(v) for k, v in notes_value.items()} - elif isinstance(notes_value, list) and len(notes_value) == 0: - return {} - elif notes_value is None: - return {} - else: - logger.warning( - f"Unexpected notes format from Razorpay: {type(notes_value)} - {notes_value}" - ) - return {} - - -def timestamp_to_datetime(timestamp: Optional[int]) -> Optional[datetime]: - """Convert Unix timestamp to datetime.""" - return datetime.fromtimestamp(timestamp) if timestamp else None - - -def calculate_subscription_dates( - plan: PlanResponse, current_time: datetime, razorpay_subscription: Dict[str, Any] -) -> Dict[str, datetime]: - """Calculate subscription date fields with sensible defaults.""" - # Get timestamps from Razorpay (may be null for new subscriptions) - razorpay_current_start = timestamp_to_datetime( - razorpay_subscription.get("current_start") - ) - razorpay_current_end = timestamp_to_datetime( - razorpay_subscription.get("current_end") - ) - razorpay_charge_at = timestamp_to_datetime(razorpay_subscription.get("charge_at")) - razorpay_start_at = timestamp_to_datetime(razorpay_subscription.get("start_at")) - razorpay_end_at = timestamp_to_datetime(razorpay_subscription.get("end_at")) - - # Always set meaningful defaults for a new subscription - start_at = razorpay_start_at or current_time - current_start = razorpay_current_start or start_at - charge_at = razorpay_charge_at or current_start - - # Calculate current_end based on plan duration - if razorpay_current_end: - current_end = razorpay_current_end - elif plan: - if plan.duration == "monthly": - current_end = current_start + timedelta(days=30) - elif plan.duration == "yearly": - current_end = current_start + timedelta(days=365) - else: - current_end = current_start + timedelta(days=30) # Default to monthly - else: - current_end = current_start + timedelta(days=30) # Fallback default - - # Calculate subscription end date based on total cycles - if razorpay_end_at: - end_at = razorpay_end_at - elif plan: - total_count = razorpay_subscription.get("total_count", 10) - if plan.duration == "monthly": - end_at = start_at + timedelta(days=30 * total_count) - elif plan.duration == "yearly": - end_at = start_at + timedelta(days=365 * total_count) - else: - end_at = start_at + timedelta(days=30 * total_count) # Default to monthly - else: - end_at = start_at + timedelta(days=300) # Fallback: 10 months - - return { - "start_at": start_at, - "current_start": current_start, - "current_end": current_end, - "charge_at": charge_at, - "end_at": end_at, - } diff --git a/backend/app/utils/pubsub_auth.py b/backend/app/utils/pubsub_auth.py new file mode 100644 index 00000000..c7bb6aa3 --- /dev/null +++ b/backend/app/utils/pubsub_auth.py @@ -0,0 +1,198 @@ +import json +from typing import Dict, Optional + +import httpx +import jwt +from fastapi import HTTPException, Request +from jwt import PyJWK + +from app.config.loggers import mail_webhook_logger as logger +from app.config.settings import settings +from app.db.redis import get_cache, set_cache + + +class PubSubAuthenticationError(Exception): + """Exception raised when Pub/Sub authentication fails.""" + + pass + + +class GoogleJWTVerifier: + """Verifies JWT tokens from Google Cloud Pub/Sub push subscriptions.""" + + def __init__(self): + self._cache_ttl = 3600 # Cache keys for 1 hour + self._token_cache_ttl = 300 # Cache tokens for 5 minutes + self._keys_cache_key = "google_jwt_keys" + self._token_cache_prefix = "jwt_token:" + + async def _get_google_public_keys(self) -> Dict[str, Dict]: + """Fetch Google's public keys and return as dictionary indexed by kid.""" + # Try to get from Redis cache first + cached_keys = await get_cache(self._keys_cache_key) + if cached_keys: + logger.debug("Using cached Google public keys from Redis") + return json.loads(cached_keys) + + try: + async with httpx.AsyncClient() as client: + response = await client.get( + "https://www.googleapis.com/oauth2/v3/certs", timeout=10.0 + ) + response.raise_for_status() + keys_response = response.json() + + # Convert keys list to dictionary indexed by kid + keys_dict = {} + for key in keys_response.get("keys", []): + kid = key.get("kid") + if kid: + keys_dict[kid] = key + + # Cache in Redis + await set_cache( + self._keys_cache_key, json.dumps(keys_dict), ttl=self._cache_ttl + ) + + logger.info(f"Cached {len(keys_dict)} Google public keys in Redis") + return keys_dict + + except Exception as e: + logger.error(f"Failed to fetch Google public keys: {e}") + raise PubSubAuthenticationError("Cannot fetch verification keys") + + def _get_project_number_from_topic(self, topic_name: str) -> str: + """Extract project number from topic name.""" + # Topic format: projects/{project-number}/topics/{topic-name} + try: + parts = topic_name.split("/") + if len(parts) >= 2 and parts[0] == "projects": + return parts[1] + raise ValueError("Invalid topic format") + except Exception: + raise PubSubAuthenticationError("Cannot extract project number from topic") + + async def _get_cached_token(self, token: str) -> Optional[Dict]: + """Get cached token payload if valid.""" + cache_key = f"{self._token_cache_prefix}{hash(token)}" + cached_payload = await get_cache(cache_key) + if cached_payload: + logger.debug("Using cached JWT token verification from Redis") + return json.loads(cached_payload) + return None + + async def _cache_token(self, token: str, payload: Dict) -> None: + """Cache token payload in Redis.""" + cache_key = f"{self._token_cache_prefix}{hash(token)}" + await set_cache(cache_key, json.dumps(payload), ttl=self._token_cache_ttl) + + async def verify_jwt_token(self, token: str) -> Dict: + """ + Verify a JWT token from Pub/Sub push subscription. + + Args: + token: The JWT token from Authorization header + + Returns: + Dict: Decoded JWT payload if valid + + Raises: + PubSubAuthenticationError: If token is invalid + """ + # Check cache first + cached_payload = await self._get_cached_token(token) + if cached_payload: + return cached_payload + + try: + # Get Google's public keys as dictionary + keys_dict = await self._get_google_public_keys() + + # Decode header to get key ID + unverified_header = jwt.get_unverified_header(token) + key_id = unverified_header.get("kid") + + if not key_id: + raise PubSubAuthenticationError("No key ID in JWT header") + + # Get key data directly from dictionary + key_data = keys_dict.get(key_id) + if not key_data: + raise PubSubAuthenticationError("Public key not found") + + # Convert JWK to public key + jwk = PyJWK(key_data) + public_key = jwk.key + + # Verify and decode the token + payload = jwt.decode( + token, + public_key, + algorithms=["RS256"], + audience=settings.HOST + "/api/v1/mail-webhook/receive", + issuer="https://accounts.google.com", + options={ + "verify_signature": True, + "verify_aud": True, + "verify_iss": True, + "verify_exp": True, + "verify_iat": True, + }, + ) + + # Cache the verified token + await self._cache_token(token, payload) + + return payload + + except jwt.ExpiredSignatureError: + raise PubSubAuthenticationError("JWT token has expired") + except jwt.InvalidAudienceError: + raise PubSubAuthenticationError("Invalid audience in JWT token") + except jwt.InvalidIssuerError: + raise PubSubAuthenticationError("Invalid issuer in JWT token") + except jwt.InvalidSignatureError: + raise PubSubAuthenticationError("Invalid JWT signature") + except jwt.InvalidTokenError as e: + raise PubSubAuthenticationError(f"Invalid JWT token: {str(e)}") + except Exception as e: + logger.error(f"JWT verification error: {e}") + raise PubSubAuthenticationError("JWT verification failed") + + +# Global verifier instance for caching +_jwt_verifier = GoogleJWTVerifier() + + +# Dependency function for FastAPI +async def get_verified_pubsub_request(request: Request) -> Dict: + """ + FastAPI dependency to verify Pub/Sub requests. + + Args: + request: FastAPI request object (injected by Depends) + + Returns: + Dict: Decoded JWT payload if verification succeeds, empty dict if verification is disabled + + Raises: + HTTPException: If verification fails when enabled + """ + if not settings.ENABLE_PUBSUB_JWT_VERIFICATION: + return {} + + auth_header = request.headers.get("authorization", "") + jwt_token = auth_header.split("Bearer ")[-1].strip() if auth_header else "" + + if not jwt_token: + logger.warning("No JWT token found in Authorization header") + raise HTTPException( + status_code=401, detail="Missing or invalid Authorization header" + ) + + # Verify the JWT token using global verifier instance + try: + return await _jwt_verifier.verify_jwt_token(jwt_token) + except PubSubAuthenticationError as e: + logger.error(f"Pub/Sub authentication failed: {e}") + raise HTTPException(status_code=401, detail=f"Authentication failed: {str(e)}") diff --git a/backend/app/utils/search_utils.py b/backend/app/utils/search_utils.py index 841dec84..dd3f60b0 100644 --- a/backend/app/utils/search_utils.py +++ b/backend/app/utils/search_utils.py @@ -1,5 +1,5 @@ import asyncio -from typing import Dict, Optional, Union, TypedDict +from typing import Dict, Optional, TypedDict, Union import httpx from bs4 import BeautifulSoup diff --git a/backend/app/utils/text_utils.py b/backend/app/utils/text_utils.py deleted file mode 100644 index f5aafb33..00000000 --- a/backend/app/utils/text_utils.py +++ /dev/null @@ -1,174 +0,0 @@ -import asyncio -from typing import Any, Dict, List - -import httpx -from app.config.loggers import general_logger as logger -from app.config.settings import settings -from transformers import pipeline - - -http_async_client = httpx.AsyncClient() - - -_zero_shot_classifier = None - - -def get_zero_shot_classifier(): - """ - Get or initialize the zero-shot classifier. - If USE_HUGGINGFACE_API is True, this will return None as the API is used instead. - Otherwise, it loads the model locally. - - Returns: - The classifier object if using local model, None if using API. - """ - global _zero_shot_classifier - logger.info("ZSC: Initializing zero-shot classification model...") - - if settings.USE_HUGGINGFACE_API: - logger.info("ZSC: Using Hugging Face API for zero-shot classification") - return None - - if _zero_shot_classifier is None: - try: - logger.info( - f"ZSC: Loading zero-shot classification model: {settings.HUGGINGFACE_ZSC_MODEL}" - ) - _zero_shot_classifier = pipeline( - "zero-shot-classification", - model=settings.HUGGINGFACE_ZSC_MODEL, - device=-1, - ) - logger.info("ZSC: Zero-shot classification model loaded successfully") - except Exception as e: - logger.error(f"ZSC: Error loading zero-shot classification model: {str(e)}") - raise RuntimeError(f"ZSC: Failed to load model: {str(e)}") - - logger.info("ZSC: Model initialization completed.") - - return _zero_shot_classifier - - -async def _classify_text_core( - user_input: str, candidate_labels: List[str] -) -> Dict[str, Any]: - """ - Core logic for classifying text asynchronously. - Uses either Hugging Face API or local model based on settings. - Falls back to local model if the API returns a server error. - """ - if not user_input or not candidate_labels: - return {"error": "Invalid input or candidate labels."} - - try: - if settings.USE_HUGGINGFACE_API: - try: - api_url = ( - f"{settings.HUGGINGFACE_ROUTER_URL}{settings.HUGGINGFACE_ZSC_MODEL}" - ) - - response = await http_async_client.post( - api_url, - headers={"Authorization": f"Bearer {settings.HUGGINGFACE_API_KEY}"}, - json={ - "inputs": user_input, - "parameters": {"candidate_labels": candidate_labels}, - }, - timeout=30.0, - ) - response.raise_for_status() - result = response.json() - label_scores = dict(zip(result["labels"], result["scores"])) - except httpx.HTTPStatusError as e: - # Check for server errors (5xx) - if e.response.status_code >= 500: - logger.warning( - f"Hugging Face API server error: {str(e)}. Falling back to local model." - ) - classifier = get_zero_shot_classifier() - - # classifier = pipeline( - # "zero-shot-classification", - # model=settings.HUGGINGFACE_ZSC_MODEL, - # device=-1, - # ) - result = classifier(user_input, candidate_labels, multi_label=False) - label_scores = dict(zip(result["labels"], result["scores"])) - else: - # Re-raise if it's not a server error - raise - else: - classifier = get_zero_shot_classifier() - if classifier is None: - raise RuntimeError("Failed to get zero-shot classifier") - - result = classifier(user_input, candidate_labels, multi_label=False) - label_scores = dict(zip(result["labels"], result["scores"])) - - highest_label = max(label_scores, key=lambda k: label_scores[k]) - return { - "label_scores": label_scores, - "highest_label": highest_label, - "highest_score": label_scores[highest_label], - } - except Exception as e: - logger.error(f"Error during text classification: {str(e)}") - return {"error": str(e)} - - -async def _classify_email_core(email_text: str) -> Dict[str, Any]: - """ - Core logic for classifying email asynchronously using Hugging Face API. - - Returns a dictionary containing classification results and importance flag. - Email is considered important if it matches a notify label AND has a score > 0.6. - """ - notify_labels = [ - "urgent", - "action_required", - "priority", - "personal", - "professional", - "important", - "time_sensitive", - ] - - email_labels = notify_labels + [ - "updates", - "promotional", - "social", - "automated", - "feedback", - "subscription", - "spam", - "transactional", - "not important", - ] - - results = await _classify_text_core(email_text, email_labels) - if "error" in results: - return {"error": results["error"], "is_important": False} - - results["is_important"] = ( - results["highest_label"] in notify_labels and results["highest_score"] > 0.6 - ) - return results - - -def classify_email( - email_text: str, *, async_mode: bool = True -) -> Dict[str, Any] | asyncio.Future: - """ - Classify an email and determine if it requires notification. - - Args: - email_text: The content of the email to classify. - async_mode: If True (default), runs classification asynchronously. - - Returns: - If async_mode is True, returns a coroutine; otherwise, returns the classification dictionary. - """ - if async_mode: - return asyncio.ensure_future(_classify_email_core(email_text)) - else: - return asyncio.run(_classify_email_core(email_text)) diff --git a/backend/pyproject.toml b/backend/pyproject.toml index db3f4dd3..e031936a 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -27,7 +27,6 @@ dependencies = [ "groq==0.15.0", "html2text>=2024.2.26", "httpx==0.28.1", - "huggingface-hub", "langchain-groq>=0.3.2", "hyperframe==6.1.0", "idna==3.10", @@ -55,6 +54,7 @@ dependencies = [ "protobuf==5.29.5", "pydantic==2.10.4", "pydantic-settings>=2.8.1", + "PyJWT>=2.10.0", "pymongo==4.9.2", "pymupdf>=1.25.5", "pypdf2==3.0.1", @@ -71,7 +71,6 @@ dependencies = [ "ipython>=9.1.0", "uvicorn>=0.34.1", "hf-xet>=1.0.3", - "langchain-huggingface>=0.1.2", "llama-parse>=0.6.12", "llama-cloud-services>=0.6.15", "psycopg2-binary>=2.9.10", @@ -91,7 +90,6 @@ dependencies = [ "markdown2>=2.5.3", "pandas>=2.3.0", "resend>=2.10.0", - "razorpay>=1.4.2", "tomli>=2.2.1", "cfgv>=3.4.0", "pre-commit>=4.2.0", @@ -103,6 +101,10 @@ dependencies = [ "workos>=5.24.0", "asyncpg>=0.30.0", "authlib>=1.6.1", + "langchain-cerebras>=0.5.0", + "dodopayments>=1.44.0", + "standardwebhooks>=1.0.0", + "sentry-sdk[fastapi]>=2.32.0", ] [dependency-groups] @@ -140,11 +142,9 @@ dev = [ ] heavy = [ - "sentence-transformers", "langchain", "langchain-community", "playwright", - "nltk", ] [[tool.uv.index]] diff --git a/backend/scripts/dodo_setup.py b/backend/scripts/dodo_setup.py new file mode 100644 index 00000000..b456f199 --- /dev/null +++ b/backend/scripts/dodo_setup.py @@ -0,0 +1,313 @@ +#!/usr/bin/env python3 +""" +Complete Dodo Payments setup script for GAIA. +This script sets up subscription plans in the database using Dodo product IDs. + +IMPORTANT: Run this script from the correct directory! + +1. If running locally: + cd /path/to/your/gaia/backend + python scripts/dodo_setup.py --monthly-product-id --yearly-product-id + +2. If running inside Docker container: + cd /app + python scripts/dodo_setup.py --monthly-product-id --yearly-product-id + +3. Alternative Docker approach (set PYTHONPATH): + PYTHONPATH=/app python scripts/dodo_setup.py --monthly-product-id --yearly-product-id + +4. Run as module (from app directory): + python -m scripts.dodo_setup --monthly-product-id --yearly-product-id + +Prerequisites: +- DODO_PAYMENTS_API_KEY environment variable must be set +- MongoDB connection string (MONGO_DB) must be configured +- Have your Dodo product IDs ready from your Dodo Payments dashboard + +Usage: + python dodo_setup.py --monthly-product-id --yearly-product-id + +Example: + python dodo_setup.py --monthly-product-id "xyz" --yearly-product-id "xyz" +""" + +import argparse +import asyncio +from datetime import datetime, timezone + +from motor.motor_asyncio import AsyncIOMotorClient + +from app.config.settings import settings +from app.models.payment_models import PlanDB + + +async def cleanup_old_indexes(collection): + """Remove old payment gateway indexes that might conflict.""" + try: + # List all indexes + indexes = await collection.list_indexes().to_list(length=None) + + # Find and drop old payment gateway indexes + old_indexes = ["razorpay_plan_id_1", "stripe_plan_id_1", "paypal_plan_id_1"] + + for index in indexes: + index_name = index.get("name") + if index_name in old_indexes: + print(f"🗑️ Dropping old index: {index_name}") + await collection.drop_index(index_name) + + except Exception as e: + print(f"⚠️ Warning: Could not clean up old indexes: {e}") + + +async def setup_dodo_plans(monthly_product_id: str, yearly_product_id: str): + """Set up GAIA subscription plans in the database using Dodo product IDs.""" + print("🚀 GAIA Dodo Payments Setup") + print("=" * 50) + + if not settings.DODO_PAYMENTS_API_KEY: + print("❌ DODO_PAYMENTS_API_KEY not found in environment variables") + return False + + print(f"🔗 Using Dodo Payments API Key: {settings.DODO_PAYMENTS_API_KEY[:10]}...") + print(f"📦 Monthly Product ID: {monthly_product_id}") + print(f"📦 Yearly Product ID: {yearly_product_id}") + print() + + # Define plans with their corresponding Dodo product IDs + plans_data = [ + { + "dodo_product_id": "", # Free plan doesn't need Dodo product ID + "name": "Free", + "description": "Get started with GAIA for free", + "amount": 0, + "currency": "USD", + "duration": "monthly", + "max_users": 1, + "features": [ + "Limited file uploads", + "Limited calendar management", + "Limited email actions", + "Limited AI image generation", + "Limited goal tracking", + "Limited web search", + "Limited deep research", + "Limited todo operations", + "Limited reminders", + "Limited weather checks", + "Limited webpage fetch", + "Limited document generation", + "Limited flowchart creation", + "Limited code execution", + "Limited Google Docs operations", + "Basic memory features", + "Standard support", + ], + "is_active": True, + }, + { + "dodo_product_id": monthly_product_id, # Monthly plan + "name": "GAIA Pro", + "description": "For productivity nerds - billed monthly", + "amount": 1500, # $15.00 in cents + "currency": "USD", + "duration": "monthly", + "max_users": 1, + "features": [ + "Extended file uploads", + "Extended calendar management", + "Extended email actions", + "Extended AI image generation", + "Extended goal tracking", + "Extended web search", + "Extended deep research", + "Extended todo operations", + "Extended reminders", + "Extended weather checks", + "Extended webpage fetch", + "Extended document generation", + "Extended flowchart creation", + "Extended code execution", + "Extended Google Docs operations", + "Advanced memory features", + "Private Discord channels", + "Priority support", + ], + "is_active": True, + }, + { + "dodo_product_id": yearly_product_id, # Yearly plan + "name": "GAIA Pro", + "description": "For productivity nerds - billed annually (save 3 months - $45 off!)", + "amount": 13500, # $135.00 in cents (3 months free) + "currency": "USD", + "duration": "yearly", + "max_users": 1, + "features": [ + "Extended file uploads", + "Extended calendar management", + "Extended email actions", + "Extended AI image generation", + "Extended goal tracking", + "Extended web search", + "Extended deep research", + "Extended todo operations", + "Extended reminders", + "Extended weather checks", + "Extended webpage fetch", + "Extended document generation", + "Extended flowchart creation", + "Extended code execution", + "Extended Google Docs operations", + "Advanced memory features", + "Private Discord channels", + "Priority support", + "🎉 3 months FREE - Save $45", + ], + "is_active": True, + }, + ] + + # Connect to database + client = None + try: + client = AsyncIOMotorClient(settings.MONGO_DB) + db = client["GAIA"] + collection = db["subscription_plans"] + + # Clean up old payment gateway indexes first + await cleanup_old_indexes(collection) + + print("📊 Setting up subscription plans...") + print() + + created_count = 0 + updated_count = 0 + + for plan_item in plans_data: + try: + plan_name = plan_item["name"] + plan_duration = plan_item["duration"] + dodo_product_id = plan_item["dodo_product_id"] + + print(f"⚙️ Processing: {plan_name} ({plan_duration.capitalize()})") + + # Check if plan already exists + existing_plan = await collection.find_one( + { + "name": plan_name, + "duration": plan_duration, + } + ) + + plan_doc = PlanDB.model_validate( + { + "dodo_product_id": dodo_product_id, + "name": plan_item["name"], + "description": plan_item["description"], + "amount": plan_item["amount"], + "currency": plan_item["currency"], + "duration": plan_item["duration"], + "max_users": plan_item["max_users"], + "features": plan_item["features"], + "is_active": plan_item["is_active"], + "created_at": datetime.now(timezone.utc), + "updated_at": datetime.now(timezone.utc), + } + ) + + if existing_plan: + # Update existing plan + await collection.update_one( + {"_id": existing_plan["_id"]}, + { + "$set": plan_doc.model_dump( + by_alias=True, exclude={"id", "created_at"} + ) + }, + ) + updated_count += 1 + print(" ✅ Updated existing plan") + else: + # Insert new plan + await collection.insert_one( + plan_doc.model_dump(by_alias=True, exclude={"id"}) + ) + created_count += 1 + print(" ✅ Created new plan") + + print( + f" 💰 Amount: ${plan_item['amount'] / 100:.2f} {plan_item['currency']}" + ) + print(f" 📅 Duration: {plan_duration.capitalize()}") + print(f" 👥 Max Users: {plan_item['max_users']}") + print( + f" 🏷️ Dodo Product ID: {dodo_product_id or 'Free Plan (No Product ID)'}" + ) + print(f" 🎯 Features: {len(plan_item['features'])} features") + print() + + except Exception as e: + print(f" ❌ Error processing {plan_item['name']}: {e}") + + print("=" * 50) + print("📈 Setup Summary:") + print(f" • Created: {created_count} plans") + print(f" • Updated: {updated_count} plans") + print(f" • Total: {created_count + updated_count} plans processed") + print() + + # Display final plan list + plans_cursor = collection.find({"is_active": True}).sort("amount", 1) + plans = await plans_cursor.to_list(length=None) + + print("📋 Active Plans:") + for plan in plans: + print( + f" • {plan['name']} ({plan['duration']}) - ${plan['amount'] / 100:.2f}" + ) + print(f" Dodo Product ID: {plan.get('dodo_product_id') or 'N/A'}") + + print() + print("✅ Payment system setup complete!") + print("🔗 Frontend can now fetch plans via GET /api/v1/payments/plans") + print( + "🎯 Users can create subscriptions via POST /api/v1/payments/subscriptions" + ) + + return True + + except Exception as e: + print(f"❌ Setup failed: {e}") + return False + finally: + if client: + client.close() + print("🔌 Database connection closed") + + +async def main(): + """Main entry point.""" + parser = argparse.ArgumentParser(description="Setup Dodo Payments plans for GAIA") + parser.add_argument( + "--monthly-product-id", + required=True, + help="Dodo product ID for monthly Pro plan", + ) + parser.add_argument( + "--yearly-product-id", + required=True, + help="Dodo product ID for yearly Pro plan", + ) + + args = parser.parse_args() + + try: + await setup_dodo_plans(args.monthly_product_id, args.yearly_product_id) + print("\n🎉 Dodo Payments setup completed successfully!") + except Exception as e: + print(f"\n💥 Setup failed with error: {e}") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/backend/scripts/razorpay_setup.py b/backend/scripts/razorpay_setup.py deleted file mode 100644 index 9044a717..00000000 --- a/backend/scripts/razorpay_setup.py +++ /dev/null @@ -1,297 +0,0 @@ -#!/usr/bin/env python3 -""" -Complete Razorpay setup script for GAIA. -This script sets up subscription plans in the database using existing Razorpay plan IDs. - -Usage: - # Development environment (default) - python razorpay_setup.py - - # Production environment - python razorpay_setup.py --prod -""" - -import sys -import os -import asyncio -from datetime import datetime - -# Add the parent directory to the path so we can import from app -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -from app.db.mongodb.collections import plans_collection -from app.models.payment_models import PlanDB, CreatePlanRequest, Currency, PlanDuration -from app.config.settings import settings - - -async def setup_razorpay_plans(is_prod: bool = False): - """Set up GAIA subscription plans in the database using existing Razorpay plan IDs.""" - - env_type = "PRODUCTION" if is_prod else "DEVELOPMENT" - print(f"🚀 GAIA Razorpay Setup ({env_type})") - print("=" * 40) - - if not settings.RAZORPAY_KEY_ID or not settings.RAZORPAY_KEY_SECRET: - print("❌ Razorpay credentials not found in settings") - print("Please check your Infisical configuration") - return - - print(f"🔗 Using Razorpay Key: {settings.RAZORPAY_KEY_ID}") - print(f"🌍 Environment: {env_type}") - - # Define plan IDs based on environment - if is_prod: - # Production Razorpay plan IDs - monthly_plan_id = "plan_QzntOT0NuTyA4t" - yearly_plan_id = "plan_Qznu3PaP1ZmY1X" - else: - # Development/Testing Razorpay plan IDs - monthly_plan_id = "plan_QmJ1F2fJOIzSea" - yearly_plan_id = "plan_QmJ1bew3wsABYv" - - # Define plans with their corresponding Razorpay plan IDs - plans_to_create = [ - { - "razorpay_plan_id": None, # Free plan doesn't need Razorpay plan ID - "plan": CreatePlanRequest( - name="Free", - description="Get started with GAIA for free", - amount=0, # Free plan - currency=Currency.USD, - duration=PlanDuration.MONTHLY, - max_users=1, - features=[ - "Limited file uploads", - "Limited calendar management", - "Limited email actions", - "Limited AI image generation", - "Limited goal tracking", - "Limited web search", - "Limited deep research", - "Limited todo operations", - "Limited reminders", - "Limited weather checks", - "Limited webpage fetch", - "Limited document generation", - "Limited flowchart creation", - "Limited code execution", - "Limited Google Docs operations", - "Basic memory features", - "Standard support", - ], - is_active=True, - ), - }, - { - "razorpay_plan_id": None, # Free yearly plan - "plan": CreatePlanRequest( - name="Free", - description="Get started with GAIA for free - annual commitment", - amount=0, # Free plan - currency=Currency.USD, - duration=PlanDuration.YEARLY, - max_users=1, - features=[ - "Limited file uploads", - "Limited calendar management", - "Limited email actions", - "Limited AI image generation", - "Limited goal tracking", - "Limited web search", - "Limited deep research", - "Limited todo operations", - "Limited reminders", - "Limited weather checks", - "Limited webpage fetch", - "Limited document generation", - "Limited flowchart creation", - "Limited code execution", - "Limited Google Docs operations", - "Basic memory features", - "Standard support", - ], - is_active=True, - ), - }, - { - "razorpay_plan_id": monthly_plan_id, # Monthly plan - "plan": CreatePlanRequest( - name="GAIA Pro", - description="For productivity nerds - billed monthly", - amount=1000, # $10.00 in cents - currency=Currency.USD, - duration=PlanDuration.MONTHLY, - max_users=1, - features=[ - "Extended file uploads", - "Extended calendar management", - "Extended email actions", - "Extended AI image generation", - "Extended goal tracking", - "Extended web search", - "Extended deep research", - "Extended todo operations", - "Extended reminders", - "Extended weather checks", - "Extended webpage fetch", - "Extended document generation", - "Extended flowchart creation", - "Extended code execution", - "Extended Google Docs operations", - "Advanced memory features", - "Private Discord channels", - "Priority support", - ], - is_active=True, - ), - }, - { - "razorpay_plan_id": yearly_plan_id, # Yearly plan - "plan": CreatePlanRequest( - name="GAIA Pro", - description="For productivity nerds - billed annually (save $60/year)", - amount=10000, # $100.00 in cents (save $20) - currency=Currency.USD, - duration=PlanDuration.YEARLY, - max_users=1, - features=[ - "Extended file uploads", - "Extended calendar management", - "Extended email actions", - "Extended AI image generation", - "Extended goal tracking", - "Extended web search", - "Extended deep research", - "Extended todo operations", - "Extended reminders", - "Extended weather checks", - "Extended webpage fetch", - "Extended document generation", - "Extended flowchart creation", - "Extended code execution", - "Extended Google Docs operations", - "Advanced memory features", - "Private Discord channels", - "Priority support", - "Annual discount - Save $60", - ], - is_active=True, - ), - }, - ] - - created_plans = [] - - print("\n🔄 Setting up plans in database...") - - # Check if plans already exist - try: - existing_count = await plans_collection.count_documents({}) - if existing_count > 0: - print(f"⚠️ Found {existing_count} existing plans in database") - choice = ( - input("Do you want to clear existing plans and recreate? (y/N): ") - .strip() - .lower() - ) - if choice == "y": - result = await plans_collection.delete_many({}) - print(f"🗑️ Deleted {result.deleted_count} existing plans") - else: - print("✅ Keeping existing plans. Exiting...") - return - except Exception as e: - print(f"⚠️ Error checking existing plans: {e}") - - # Create plans in database - for plan_item in plans_to_create: - try: - plan_data = plan_item["plan"] - razorpay_plan_id = plan_item["razorpay_plan_id"] - - print(f"\n🔄 Creating: {plan_data.name}...") - - current_time = datetime.utcnow() - plan_doc = PlanDB( - razorpay_plan_id=razorpay_plan_id - or f"free_plan_{int(current_time.timestamp())}", # Use a dummy ID for free plans - name=plan_data.name, - description=plan_data.description, - amount=plan_data.amount, - currency=plan_data.currency.value, # Get string value from enum - duration=plan_data.duration.value, # Get string value from enum - max_users=plan_data.max_users, - features=plan_data.features, - is_active=plan_data.is_active, - created_at=current_time, - updated_at=current_time, - ) - - result = await plans_collection.insert_one( - plan_doc.model_dump(exclude={"id"}) - ) - plan_doc.id = str(result.inserted_id) - created_plans.append(plan_doc) - - print(f"✅ Created plan: {plan_data.name}") - print(f" 📋 Database ID: {plan_doc.id}") - print( - f" 🏷️ Razorpay Plan ID: {razorpay_plan_id or 'Free Plan (No Razorpay ID)'}" - ) - amount_display = ( - f"${plan_data.amount / 100:.2f}" if plan_data.amount > 0 else "Free" - ) - print(f" 💰 Amount: {amount_display}") - print(f" 📅 Duration: {plan_data.duration.value}") - - except Exception as e: - print(f"❌ Failed to create {plan_data.name}: {e}") - continue - - print(f"\n🎉 Successfully created {len(created_plans)} plans in database!") - - if created_plans: - print("\n📋 Summary:") - print("-" * 60) - for plan in created_plans: - amount_display = f"${plan.amount / 100:.2f}" if plan.amount > 0 else "Free" - print(f"Plan: {plan.name}") - print(f"Database ID: {plan.id}") - print(f"Razorpay Plan ID: {plan.razorpay_plan_id}") - print(f"Amount: {amount_display}") - print(f"Duration: {plan.duration}") - print("-" * 30) - - print("\n✅ Your payment system is now ready!") - print("🔗 Frontend can now fetch plans via GET /api/v1/payments/plans") - print("💳 Users can subscribe using the plan IDs from the database") - - return created_plans - - -async def main(): - """Main function.""" - import argparse - - parser = argparse.ArgumentParser(description="Setup Razorpay plans for GAIA") - parser.add_argument( - "--prod", - action="store_true", - help="Use production Razorpay plan IDs (default: development IDs)", - ) - args = parser.parse_args() - - try: - await setup_razorpay_plans(is_prod=args.prod) - env_type = "PRODUCTION" if args.prod else "DEVELOPMENT" - print(f"\n🎉 Razorpay setup completed successfully for {env_type}!") - - except Exception as e: - print(f"❌ Error during setup: {e}") - import traceback - - traceback.print_exc() - - -if __name__ == "__main__": - asyncio.run(main()) diff --git a/backend/scripts/run_dodo_setup.sh b/backend/scripts/run_dodo_setup.sh new file mode 100755 index 00000000..c71bcb82 --- /dev/null +++ b/backend/scripts/run_dodo_setup.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# GAIA Dodo Payments Setup Script +# This script sets up the subscription plans in the database + +echo "🚀 Running GAIA Dodo Payments Setup..." +echo "===============================================" + +# Set PYTHONPATH to include the current directory so Python can find 'app' module +export PYTHONPATH=/app:$PYTHONPATH + +# Run the setup script with the Dodo product IDs +python dodo_setup.py \ + --monthly-product-id "abc" \ + --yearly-product-id "xyz" + +echo "===============================================" +echo "✅ Setup completed!" diff --git a/PUBSUB_DETAILED.md b/devdocs/PUBSUB_DETAILED.md similarity index 75% rename from PUBSUB_DETAILED.md rename to devdocs/PUBSUB_DETAILED.md index 5e8f48af..73fcb721 100644 --- a/PUBSUB_DETAILED.md +++ b/devdocs/PUBSUB_DETAILED.md @@ -117,19 +117,36 @@ To test push subscriptions locally: ## 4. Configuration in Gaia -Gaia uses [Infisical](https://infisical.io/) to manage secret environment variables. You only need to set the following secret: +Gaia uses [Infisical](https://infisical.io/) to manage secret environment variables. You need to set the following secrets: - `GCP_TOPIC_NAME`: The full Pub/Sub topic resource name, e.g., `projects/your-gcp-project-id/topics/gmail-notifications` +- `GCP_SUBSCRIPTION_NAME`: The Pub/Sub subscription name, e.g., `gmail-notifications-sub` +- `ENABLE_PUBSUB_JWT_VERIFICATION`: Boolean flag to enable/disable JWT authentication for Pub/Sub webhooks (default: `true`) All other application settings, such as OAuth credentials and webhook URLs, are managed securely in Infisical and do not require manual `.env` configuration. +### Authentication Security + +Gaia now implements JWT token verification for Pub/Sub push subscriptions to ensure that webhook requests come from Google Cloud and not unauthorized entities. This follows Google's recommended security practices: + +- **JWT Verification**: Each push request must include a valid JWT token in the Authorization header +- **Signature Validation**: Tokens are verified using Google's public keys +- **Claims Validation**: Audience, issuer, and expiration claims are validated +- **Configurable**: Can be disabled in development environments by setting `ENABLE_PUBSUB_JWT_VERIFICATION=false` + +To enable JWT authentication for your Pub/Sub subscription: +1. In GCP Console → Pub/Sub → Subscriptions → select your subscription +2. Edit subscription settings and enable "Authentication" with proper service account +3. Ensure your subscription is configured to send JWT tokens + --- ## 5. Code References - **watch_mail.py**: Calls `service.users().watch(userId="me", body=...)` -- **router/mail.py**: Defines `/api/v1/notifications/gmail` endpoint to parse Pub/Sub push messages -- **tasks/mail_tasks.py**: Enqueues jobs to RabbitMQ for further processing +- **router/mail_webhook.py**: Defines `/api/v1/mail-webhook/receive` endpoint to parse Pub/Sub push messages with JWT authentication +- **utils/pubsub_auth.py**: Implements JWT token verification for Pub/Sub push subscriptions +- **services/mail_webhook_service.py**: Enqueues jobs to RabbitMQ for further processing - **worker.py**: Consumes RabbitMQ tasks and fetches email data from Gmail --- @@ -137,10 +154,13 @@ All other application settings, such as OAuth credentials and webhook URLs, are ## 6. Best Practices and Troubleshooting - **Message Retry**: Use idempotent processing; Pub/Sub may redeliver on failure. -- **Authentication**: Validate Pub/Sub push messages using tokens or JWT if configured. +- **Authentication**: JWT token validation is now implemented by default to verify Pub/Sub push messages come from Google Cloud. +- **Security**: Never disable JWT verification in production environments unless absolutely necessary. +- **Development**: For local development, you may need to disable JWT verification temporarily with `ENABLE_PUBSUB_JWT_VERIFICATION=false`. - **Scaling**: Adjust `max_concurrent` for `renew_gmail_watch_subscriptions` based on resource limits. - **Monitoring**: Use Stackdriver (Cloud Monitoring) for Pub/Sub metrics and logs. - **Error Handling**: Log and surface errors in `renew_gmail_watch_for_user` and webhook failures. +- **Token Issues**: If JWT verification fails, check subscription configuration and ensure tokens are being sent. ## 7. Additional Resources diff --git a/SYSTEM_OVERVIEW.md b/devdocs/SYSTEM_OVERVIEW.md similarity index 100% rename from SYSTEM_OVERVIEW.md rename to devdocs/SYSTEM_OVERVIEW.md diff --git a/docs/configuration/environment-variables.mdx b/docs/configuration/environment-variables.mdx index 7df13d06..5c400d90 100644 --- a/docs/configuration/environment-variables.mdx +++ b/docs/configuration/environment-variables.mdx @@ -154,10 +154,6 @@ OPENWEATHERMAP_API_KEY=your-openweathermap-api-key # Email (Resend) RESEND_API_KEY=your-resend-api-key -# Razorpay (payments) -RAZORPAY_KEY_ID=your-razorpay-key-id -RAZORPAY_KEY_SECRET=your-razorpay-key-secret - # Blog/Content BLOG_BEARER_TOKEN=your-blog-bearer-token ``` diff --git a/docs/developers/contributing.mdx b/docs/developers/contributing.mdx index 5258587c..9fb77038 100644 --- a/docs/developers/contributing.mdx +++ b/docs/developers/contributing.mdx @@ -12,7 +12,7 @@ Thank you for your interest in contributing to GAIA! We're excited to have you j Before making your first contribution, please: -1. **Read our [Code of Conduct](https://github.com/heygaia/gaia/blob/main/CODE_OF_CONDUCT.md)** +1. **Read our [Code of Conduct](https://github.com/heygaia/gaia/blob/master/CODE_OF_CONDUCT.md)** 2. **Set up your development environment** using our [Development Setup Guide](/developers/development-setup) 3. **Explore the codebase** to understand the architecture and patterns we use diff --git a/frontend/.env.example b/frontend/.env.example index d672af1e..a4412c34 100644 --- a/frontend/.env.example +++ b/frontend/.env.example @@ -8,7 +8,6 @@ # Learn about Infisical setup: https://docs.heygaia.io/self-hosting/infisical-setup NEXT_PUBLIC_API_BASE_URL=http://localhost:8000/api/v1/ -# NEXT_PUBLIC_API_BASE_URL=https://api.heygaia.io/api/v1/ # Blog management bearer token (for creating/editing/deleting blog posts) NEXT_PUBLIC_BLOG_BEARER_TOKEN=your-blog-token-here diff --git a/frontend/.prettierignore b/frontend/.prettierignore index 911c6a8d..d1c85a7e 100644 --- a/frontend/.prettierignore +++ b/frontend/.prettierignore @@ -2,4 +2,5 @@ node_modules .next public .husky -../docs \ No newline at end of file +../docs +pnpm-lock.yaml diff --git a/frontend/instrumentation-client.ts b/frontend/instrumentation-client.ts new file mode 100644 index 00000000..e56e74eb --- /dev/null +++ b/frontend/instrumentation-client.ts @@ -0,0 +1,9 @@ +import posthog from "posthog-js" + +posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, { + api_host: "/ingest", + ui_host: "https://us.posthog.com", + defaults: '2025-05-24', + capture_exceptions: true, // This enables capturing exceptions using Error Tracking, set to false if you don't want this + debug: process.env.NODE_ENV === "development", +}); diff --git a/frontend/next.config.mjs b/frontend/next.config.mjs index ebdc8321..6a0868c3 100644 --- a/frontend/next.config.mjs +++ b/frontend/next.config.mjs @@ -1,3 +1,4 @@ +import {withSentryConfig} from "@sentry/nextjs"; import bundleAnalyzer from "@next/bundle-analyzer"; import createMDX from "@next/mdx"; @@ -50,6 +51,24 @@ const nextConfig = { NEXT_PUBLIC_API_BASE_URL: process.env.NEXT_PUBLIC_API_BASE_URL, }, pageExtensions: ["js", "jsx", "mdx", "ts", "tsx"], + async rewrites() { + return [ + { + source: "/ingest/static/:path*", + destination: "https://us-assets.i.posthog.com/static/:path*", + }, + { + source: "/ingest/:path*", + destination: "https://us.i.posthog.com/:path*", + }, + { + source: "/ingest/flags", + destination: "https://us.i.posthog.com/flags", + }, + ]; + }, + // This is required to support PostHog trailing slash API requests + skipTrailingSlashRedirect: true, // modularizeImports: { // "@radix-ui/react-icons": { // transform: "@radix-ui/react-icons/dist/{{member}}", @@ -61,4 +80,34 @@ const withMDX = createMDX({ // Add markdown plugins here, as desired }); -export default withBundleAnalyzer(withMDX(nextConfig)); +export default withSentryConfig(withBundleAnalyzer(withMDX(nextConfig)), { +// For all available options, see: +// https://www.npmjs.com/package/@sentry/webpack-plugin#options + +org: "gaia-la", +project: "gaia-frontend", + +// Only print logs for uploading source maps in CI +silent: !process.env.CI, + +// For all available options, see: +// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + +// Upload a larger set of source maps for prettier stack traces (increases build time) +widenClientFileUpload: true, + +// Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. +// This can increase your server load as well as your hosting bill. +// Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- +// side errors will fail. +// tunnelRoute: "/monitoring", + +// Automatically tree-shake Sentry logger statements to reduce bundle size +disableLogger: true, + +// Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) +// See the following for more information: +// https://docs.sentry.io/product/crons/ +// https://vercel.com/docs/cron-jobs +automaticVercelMonitors: true, +}); \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index b63b6b55..ee6de83b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -97,6 +97,7 @@ "@radix-ui/react-visually-hidden": "^1.2.0", "@react-types/shared": "^3.29.0", "@reduxjs/toolkit": "^2.7.0", + "@sentry/nextjs": "^10.3.0", "@tailwindcss/postcss": "^4.1.5", "@tailwindcss/typography": "^0.5.16", "@tanstack/react-query": "^5.74.11", @@ -133,6 +134,7 @@ "dagre": "^0.8.5", "date-fns": "^4.1.0", "date-fns-tz": "^3.2.0", + "dodopayments": "^1.44.0", "dompurify": "^3.2.5", "embla-carousel-react": "^8.6.0", "emblor": "^1.4.8", @@ -144,6 +146,7 @@ "html-react-parser": "^5.2.6", "html-to-text": "^9.0.5", "idb-keyval": "^6.2.2", + "import-in-the-middle": "^1.14.2", "input-otp": "^1.4.2", "lenis": "^1.3.4", "lucide-react": "^0.483.0", @@ -154,6 +157,8 @@ "next-themes": "^0.4.6", "npm": "^11.3.0", "postcss": "^8.5.3", + "posthog-js": "^1.259.0", + "posthog-node": "^5.6.0", "prettier-plugin-tailwindcss": "^0.6.11", "react": "^19.1.0", "react-day-picker": "8.10.1", @@ -175,6 +180,7 @@ "redux": "^5.0.1", "rehype-highlight": "^7.0.2", "remark-gfm": "^4.0.1", + "require-in-the-middle": "^7.5.2", "sharp": "^0.33.5", "sonner": "^2.0.3", "source-map-js": "^1.2.1", @@ -211,6 +217,7 @@ "@heroui/shared-utils", "@parcel/watcher", "canvas", + "core-js", "heapdump", "sharp", "unrs-resolver" diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 0afd0b1c..7da9da22 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -1,838 +1,772 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -onlyBuiltDependencies: - - '@heroui/shared-utils' - - '@parcel/watcher' - - canvas - - heapdump - - sharp - - unrs-resolver - -dependencies: - '@fontsource-variable/inter': - specifier: ^5.2.6 - version: 5.2.6 - '@heroui/accordion': - specifier: 2.2.13 - version: 2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/autocomplete': - specifier: 2.3.17 - version: 2.3.17(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/avatar': - specifier: 2.2.12 - version: 2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': - specifier: 2.2.16 - version: 2.2.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/card': - specifier: 2.2.15 - version: 2.2.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/checkbox': - specifier: 2.3.15 - version: 2.3.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/chip': - specifier: 2.2.12 - version: 2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/code': - specifier: 2.2.12 - version: 2.2.12(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/date-picker': - specifier: ^2.3.22 - version: 2.3.25(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dropdown': - specifier: 2.3.16 - version: 2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/input': - specifier: 2.4.16 - version: 2.4.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@heroui/kbd': - specifier: 2.2.12 - version: 2.2.12(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/link': - specifier: 2.2.13 - version: 2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/menu': - specifier: 2.2.15 - version: 2.2.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/modal': - specifier: 2.2.13 - version: 2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/navbar': - specifier: 2.2.14 - version: 2.2.14(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/pagination': - specifier: 2.2.14 - version: 2.2.14(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/radio': - specifier: 2.3.15 - version: 2.3.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react': - specifier: 2.8.0-beta.1 - version: 2.8.0-beta.1(@types/react@19.1.10)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1)(tailwindcss@4.1.12) - '@heroui/scroll-shadow': - specifier: ^2.3.13 - version: 2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/select': - specifier: 2.4.16 - version: 2.4.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/skeleton': - specifier: 2.2.10 - version: 2.2.10(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/slider': - specifier: 2.4.13 - version: 2.4.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/snippet': - specifier: 2.2.17 - version: 2.2.17(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/spinner': - specifier: 2.2.13 - version: 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/switch': - specifier: 2.2.14 - version: 2.2.14(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': - specifier: 2.4.12 - version: 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/table': - specifier: ^2.2.18 - version: 2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/tabs': - specifier: 2.2.13 - version: 2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': - specifier: 2.4.14-beta.1 - version: 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/tooltip': - specifier: 2.2.13 - version: 2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/user': - specifier: 2.2.12 - version: 2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@hookform/resolvers': - specifier: ^5.0.1 - version: 5.2.1(react-hook-form@7.62.0) - '@iconify/react': - specifier: ^6.0.0 - version: 6.0.0(react@19.1.1) - '@internationalized/date': - specifier: ^3.8.1 - version: 3.8.2 - '@mdx-js/loader': - specifier: ^3.1.0 - version: 3.1.0(acorn@8.15.0) - '@mdx-js/react': - specifier: ^3.1.0 - version: 3.1.0(@types/react@19.1.10)(react@19.1.1) - '@microsoft/fetch-event-source': - specifier: ^2.0.1 - version: 2.0.1 - '@next/bundle-analyzer': - specifier: ^15.3.1 - version: 15.5.0 - '@next/eslint-plugin-next': - specifier: ^15.3.4 - version: 15.5.0 - '@next/mdx': - specifier: ^15.3.3 - version: 15.5.0(@mdx-js/loader@3.1.0)(@mdx-js/react@3.1.0) - '@next/third-parties': - specifier: ^15.4.4 - version: 15.5.0(next@15.3.3)(react@19.1.1) - '@radix-ui/react-accordion': - specifier: ^1.2.8 - version: 1.2.12(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-alert-dialog': - specifier: ^1.1.11 - version: 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-aspect-ratio': - specifier: ^1.1.4 - version: 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-avatar': - specifier: ^1.1.7 - version: 1.1.10(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-checkbox': - specifier: ^1.2.3 - version: 1.3.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-collapsible': - specifier: ^1.1.8 - version: 1.1.12(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-context-menu': - specifier: ^2.2.12 - version: 2.2.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-dialog': - specifier: ^1.1.11 - version: 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-dropdown-menu': - specifier: ^2.1.12 - version: 2.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-hover-card': - specifier: ^1.1.11 - version: 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-icons': - specifier: ^1.3.2 - version: 1.3.2(react@19.1.1) - '@radix-ui/react-label': - specifier: ^2.1.4 - version: 2.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-menubar': - specifier: ^1.1.12 - version: 1.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-navigation-menu': - specifier: ^1.2.10 - version: 1.2.14(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-popover': - specifier: ^1.1.11 - version: 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-progress': - specifier: ^1.1.4 - version: 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-radio-group': - specifier: ^1.3.4 - version: 1.3.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-scroll-area': - specifier: ^1.2.6 - version: 1.2.10(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-select': - specifier: ^2.2.2 - version: 2.2.6(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-separator': - specifier: ^1.1.4 - version: 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slider': - specifier: ^1.3.2 - version: 1.3.6(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': - specifier: ^1.2.0 - version: 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-switch': - specifier: ^1.2.2 - version: 1.2.6(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-tabs': - specifier: ^1.1.9 - version: 1.1.13(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-toggle': - specifier: ^1.1.6 - version: 1.1.10(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-toggle-group': - specifier: ^1.1.7 - version: 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-tooltip': - specifier: ^1.2.4 - version: 1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-visually-hidden': - specifier: ^1.2.0 - version: 1.2.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': - specifier: ^3.29.0 - version: 3.31.0(react@19.1.1) - '@reduxjs/toolkit': - specifier: ^2.7.0 - version: 2.8.2(react-redux@9.2.0)(react@19.1.1) - '@tailwindcss/postcss': - specifier: ^4.1.5 - version: 4.1.12 - '@tailwindcss/typography': - specifier: ^0.5.16 - version: 0.5.16(tailwindcss@4.1.12) - '@tanstack/react-query': - specifier: ^5.74.11 - version: 5.85.5(react@19.1.1) - '@tanstack/react-query-persist-client': - specifier: ^5.81.5 - version: 5.85.5(@tanstack/react-query@5.85.5)(react@19.1.1) - '@tiptap/extension-character-count': - specifier: ^2.11.9 - version: 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-highlight': - specifier: ^2.11.9 - version: 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-link': - specifier: ^2.11.9 - version: 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-placeholder': - specifier: ^2.11.9 - version: 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-typography': - specifier: ^2.11.9 - version: 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-underline': - specifier: ^2.11.9 - version: 2.26.1(@tiptap/core@2.26.1) - '@tiptap/pm': - specifier: ^2.11.9 - version: 2.26.1 - '@tiptap/react': - specifier: ^2.11.9 - version: 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1)(react-dom@19.1.1)(react@19.1.1) - '@tiptap/starter-kit': - specifier: ^2.11.9 - version: 2.26.1 - '@types/canvas-confetti': - specifier: ^1.9.0 - version: 1.9.0 - '@types/d3': - specifier: ^7.4.3 - version: 7.4.3 - '@types/he': - specifier: ^1.2.3 - version: 1.2.3 - '@types/html-to-text': - specifier: ^9.0.4 - version: 9.0.4 - '@types/mdx': - specifier: ^2.0.13 - version: 2.0.13 - '@types/react-syntax-highlighter': - specifier: ^15.5.13 - version: 15.5.13 - '@types/react-twemoji': - specifier: ^0.4.3 - version: 0.4.3 - '@types/react-window': - specifier: ^1.8.8 - version: 1.8.8 - '@types/react-window-infinite-loader': - specifier: ^1.0.9 - version: 1.0.9 - '@types/tinycolor2': - specifier: ^1.4.6 - version: 1.4.6 - '@use-gesture/react': - specifier: ^10.3.1 - version: 10.3.1(react@19.1.1) - '@xyflow/react': - specifier: ^12.6.0 - version: 12.8.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - axios: - specifier: ^1.9.0 - version: 1.11.0 - axios-cache-interceptor: - specifier: ^1.8.0 - version: 1.8.2(axios@1.11.0) - bson-objectid: - specifier: ^2.0.4 - version: 2.0.4 - canvas-confetti: - specifier: ^1.9.3 - version: 1.9.3 - class-variance-authority: - specifier: ^0.7.1 - version: 0.7.1 - clsx: - specifier: ^2.1.1 - version: 2.1.1 - cmdk: - specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - d3: - specifier: ^7.9.0 - version: 7.9.0 - dagre: - specifier: ^0.8.5 - version: 0.8.5 - date-fns: - specifier: ^4.1.0 - version: 4.1.0 - date-fns-tz: - specifier: ^3.2.0 - version: 3.2.0(date-fns@4.1.0) - dompurify: - specifier: ^3.2.5 - version: 3.2.6 - embla-carousel-react: - specifier: ^8.6.0 - version: 8.6.0(react@19.1.1) - emblor: - specifier: ^1.4.8 - version: 1.4.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - eslint-config-next: - specifier: ^15.3.1 - version: 15.5.0(eslint@9.33.0)(typescript@5.9.2) - framer-motion: - specifier: ^12.9.2 - version: 12.23.12(react-dom@19.1.1)(react@19.1.1) - google: - specifier: link:@next/third-parties/google - version: link:@next/third-parties/google - gsap: - specifier: ^3.13.0 - version: 3.13.0 - he: - specifier: ^1.2.0 - version: 1.2.0 - html-react-parser: - specifier: ^5.2.6 - version: 5.2.6(@types/react@19.1.10)(react@19.1.1) - html-to-text: - specifier: ^9.0.5 - version: 9.0.5 - idb-keyval: - specifier: ^6.2.2 - version: 6.2.2 - input-otp: - specifier: ^1.4.2 - version: 1.4.2(react-dom@19.1.1)(react@19.1.1) - lenis: - specifier: ^1.3.4 - version: 1.3.8(react@19.1.1) - lucide-react: - specifier: ^0.483.0 - version: 0.483.0(react@19.1.1) - marked: - specifier: ^15.0.11 - version: 15.0.12 - mermaid: - specifier: ^11.6.0 - version: 11.10.0 - motion: - specifier: ^12.9.2 - version: 12.23.12(react-dom@19.1.1)(react@19.1.1) - next: - specifier: 15.3.3 - version: 15.3.3(react-dom@19.1.1)(react@19.1.1) - next-themes: - specifier: ^0.4.6 - version: 0.4.6(react-dom@19.1.1)(react@19.1.1) - npm: - specifier: ^11.3.0 - version: 11.5.2 - postcss: - specifier: ^8.5.3 - version: 8.5.6 - prettier-plugin-tailwindcss: - specifier: ^0.6.11 - version: 0.6.14(prettier@3.6.2) - react: - specifier: ^19.1.0 - version: 19.1.1 - react-day-picker: - specifier: 8.10.1 - version: 8.10.1(date-fns@4.1.0)(react@19.1.1) - react-dom: - specifier: ^19.1.0 - version: 19.1.1(react@19.1.1) - react-dropzone: - specifier: ^14.3.8 - version: 14.3.8(react@19.1.1) - react-hook-form: - specifier: ^7.56.1 - version: 7.62.0(react@19.1.1) - react-intersection-observer: - specifier: ^9.16.0 - version: 9.16.0(react-dom@19.1.1)(react@19.1.1) - react-markdown: - specifier: ^10.1.0 - version: 10.1.0(@types/react@19.1.10)(react@19.1.1) - react-pdf: - specifier: ^9.2.1 - version: 9.2.1(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - react-redux: - specifier: ^9.2.0 - version: 9.2.0(@types/react@19.1.10)(react@19.1.1)(redux@5.0.1) - react-resizable-panels: - specifier: ^2.1.9 - version: 2.1.9(react-dom@19.1.1)(react@19.1.1) - react-swipeable-list: - specifier: ^1.10.0 - version: 1.10.0 - react-syntax-highlighter: - specifier: ^15.6.1 - version: 15.6.1(react@19.1.1) - react-twemoji: - specifier: ^0.6.0 - version: 0.6.0(react@19.1.1) - react-window: - specifier: ^1.8.11 - version: 1.8.11(react-dom@19.1.1)(react@19.1.1) - react-window-infinite-loader: - specifier: ^1.0.10 - version: 1.0.10(react-dom@19.1.1)(react@19.1.1) - reactflow: - specifier: ^11.11.4 - version: 11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - recharts: - specifier: ^2.15.3 - version: 2.15.4(react-dom@19.1.1)(react@19.1.1) - redux: - specifier: ^5.0.1 - version: 5.0.1 - rehype-highlight: - specifier: ^7.0.2 - version: 7.0.2 - remark-gfm: - specifier: ^4.0.1 - version: 4.0.1 - sharp: - specifier: ^0.33.5 - version: 0.33.5 - sonner: - specifier: ^2.0.3 - version: 2.0.7(react-dom@19.1.1)(react@19.1.1) - source-map-js: - specifier: ^1.2.1 - version: 1.2.1 - tailwind-merge: - specifier: ^3.2.0 - version: 3.3.1 - tailwindcss: - specifier: ^4.1.5 - version: 4.1.12 - tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.12) - tinycolor2: - specifier: ^1.6.0 - version: 1.6.0 - uuid: - specifier: ^11.1.0 - version: 11.1.0 - vaul: - specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - zod: - specifier: ^3.24.3 - version: 3.25.76 - -devDependencies: - '@eslint/eslintrc': - specifier: ^3.3.1 - version: 3.3.1 - '@types/dagre': - specifier: ^0.7.52 - version: 0.7.53 - '@types/node': - specifier: 22.15.21 - version: 22.15.21 - '@types/react': - specifier: ^19.1.2 - version: 19.1.10 - '@types/react-dom': - specifier: ^19.1.3 - version: 19.1.7(@types/react@19.1.10) - '@typescript-eslint/eslint-plugin': - specifier: ^8.31.1 - version: 8.40.0(@typescript-eslint/parser@8.40.0)(eslint@9.33.0)(typescript@5.9.2) - '@typescript-eslint/parser': - specifier: ^8.31.1 - version: 8.40.0(eslint@9.33.0)(typescript@5.9.2) - barrelsby: - specifier: ^2.8.1 - version: 2.8.1 - depcheck: - specifier: ^1.4.7 - version: 1.4.7 - eslint: - specifier: ^9.25.1 - version: 9.33.0 - eslint-plugin-simple-import-sort: - specifier: ^12.1.1 - version: 12.1.1(eslint@9.33.0) - eslint-plugin-unused-imports: - specifier: ^4.1.4 - version: 4.2.0(@typescript-eslint/eslint-plugin@8.40.0)(eslint@9.33.0) - husky: - specifier: ^9.1.7 - version: 9.1.7 - prettier: - specifier: ^3.5.3 - version: 3.6.2 - typescript: - specifier: ^5.8.3 - version: 5.9.2 +importers: + + .: + dependencies: + '@fontsource-variable/inter': + specifier: ^5.2.6 + version: 5.2.6 + '@heroui/accordion': + specifier: 2.2.13 + version: 2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/autocomplete': + specifier: 2.3.17 + version: 2.3.17(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/avatar': + specifier: 2.2.12 + version: 2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': + specifier: 2.2.16 + version: 2.2.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/card': + specifier: 2.2.15 + version: 2.2.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/checkbox': + specifier: 2.3.15 + version: 2.3.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/chip': + specifier: 2.2.12 + version: 2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/code': + specifier: 2.2.12 + version: 2.2.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/date-picker': + specifier: ^2.3.22 + version: 2.3.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dropdown': + specifier: 2.3.16 + version: 2.3.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/input': + specifier: 2.4.16 + version: 2.4.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/kbd': + specifier: 2.2.12 + version: 2.2.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/link': + specifier: 2.2.13 + version: 2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/menu': + specifier: 2.2.15 + version: 2.2.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/modal': + specifier: 2.2.13 + version: 2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/navbar': + specifier: 2.2.14 + version: 2.2.14(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/pagination': + specifier: 2.2.14 + version: 2.2.14(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/radio': + specifier: 2.3.15 + version: 2.3.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react': + specifier: 2.8.0-beta.1 + version: 2.8.0-beta.1(@types/react@19.1.2)(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwindcss@4.1.5) + '@heroui/scroll-shadow': + specifier: ^2.3.13 + version: 2.3.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/select': + specifier: 2.4.16 + version: 2.4.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/skeleton': + specifier: 2.2.10 + version: 2.2.10(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/slider': + specifier: 2.4.13 + version: 2.4.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/snippet': + specifier: 2.2.17 + version: 2.2.17(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/spinner': + specifier: 2.2.13 + version: 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/switch': + specifier: 2.2.14 + version: 2.2.14(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': + specifier: 2.4.12 + version: 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/table': + specifier: ^2.2.18 + version: 2.2.18(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/tabs': + specifier: 2.2.13 + version: 2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': + specifier: 2.4.14-beta.1 + version: 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/tooltip': + specifier: 2.2.13 + version: 2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/user': + specifier: 2.2.12 + version: 2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@hookform/resolvers': + specifier: ^5.0.1 + version: 5.0.1(react-hook-form@7.56.1(react@19.1.0)) + '@iconify/react': + specifier: ^6.0.0 + version: 6.0.0(react@19.1.0) + '@internationalized/date': + specifier: ^3.8.1 + version: 3.8.1 + '@mdx-js/loader': + specifier: ^3.1.0 + version: 3.1.0(acorn@8.15.0)(webpack@5.101.0) + '@mdx-js/react': + specifier: ^3.1.0 + version: 3.1.0(@types/react@19.1.2)(react@19.1.0) + '@microsoft/fetch-event-source': + specifier: ^2.0.1 + version: 2.0.1 + '@next/bundle-analyzer': + specifier: ^15.3.1 + version: 15.3.1 + '@next/eslint-plugin-next': + specifier: ^15.3.4 + version: 15.3.4 + '@next/mdx': + specifier: ^15.3.3 + version: 15.3.3(@mdx-js/loader@3.1.0(acorn@8.15.0)(webpack@5.101.0))(@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0)) + '@next/third-parties': + specifier: ^15.4.4 + version: 15.4.4(next@15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0))(react@19.1.0) + '@radix-ui/react-accordion': + specifier: ^1.2.8 + version: 1.2.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-alert-dialog': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-aspect-ratio': + specifier: ^1.1.4 + version: 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-avatar': + specifier: ^1.1.7 + version: 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-checkbox': + specifier: ^1.2.3 + version: 1.2.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collapsible': + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-context-menu': + specifier: ^2.2.12 + version: 2.2.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.12 + version: 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-hover-card': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-icons': + specifier: ^1.3.2 + version: 1.3.2(react@19.1.0) + '@radix-ui/react-label': + specifier: ^2.1.4 + version: 2.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-menubar': + specifier: ^1.1.12 + version: 1.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-navigation-menu': + specifier: ^1.2.10 + version: 1.2.10(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popover': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-progress': + specifier: ^1.1.4 + version: 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-radio-group': + specifier: ^1.3.4 + version: 1.3.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-scroll-area': + specifier: ^1.2.6 + version: 1.2.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-select': + specifier: ^2.2.2 + version: 2.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-separator': + specifier: ^1.1.4 + version: 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slider': + specifier: ^1.3.2 + version: 1.3.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': + specifier: ^1.2.0 + version: 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-switch': + specifier: ^1.2.2 + version: 1.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-tabs': + specifier: ^1.1.9 + version: 1.1.9(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-toggle': + specifier: ^1.1.6 + version: 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-toggle-group': + specifier: ^1.1.7 + version: 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-tooltip': + specifier: ^1.2.4 + version: 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-visually-hidden': + specifier: ^1.2.0 + version: 1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': + specifier: ^3.29.0 + version: 3.29.0(react@19.1.0) + '@reduxjs/toolkit': + specifier: ^2.7.0 + version: 2.7.0(react-redux@9.2.0(@types/react@19.1.2)(react@19.1.0)(redux@5.0.1))(react@19.1.0) + '@sentry/nextjs': + specifier: ^10.3.0 + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0))(react@19.1.0)(webpack@5.101.0) + '@tailwindcss/postcss': + specifier: ^4.1.5 + version: 4.1.5 + '@tailwindcss/typography': + specifier: ^0.5.16 + version: 0.5.16(tailwindcss@4.1.5) + '@tanstack/react-query': + specifier: ^5.74.11 + version: 5.74.11(react@19.1.0) + '@tanstack/react-query-persist-client': + specifier: ^5.81.5 + version: 5.81.5(@tanstack/react-query@5.74.11(react@19.1.0))(react@19.1.0) + '@tiptap/extension-character-count': + specifier: ^2.11.9 + version: 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-highlight': + specifier: ^2.11.9 + version: 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-link': + specifier: ^2.11.9 + version: 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-placeholder': + specifier: ^2.11.9 + version: 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-typography': + specifier: ^2.11.9 + version: 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-underline': + specifier: ^2.11.9 + version: 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/pm': + specifier: ^2.11.9 + version: 2.11.9 + '@tiptap/react': + specifier: ^2.11.9 + version: 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tiptap/starter-kit': + specifier: ^2.11.9 + version: 2.11.9 + '@types/canvas-confetti': + specifier: ^1.9.0 + version: 1.9.0 + '@types/d3': + specifier: ^7.4.3 + version: 7.4.3 + '@types/he': + specifier: ^1.2.3 + version: 1.2.3 + '@types/html-to-text': + specifier: ^9.0.4 + version: 9.0.4 + '@types/mdx': + specifier: ^2.0.13 + version: 2.0.13 + '@types/react-syntax-highlighter': + specifier: ^15.5.13 + version: 15.5.13 + '@types/react-twemoji': + specifier: ^0.4.3 + version: 0.4.3 + '@types/react-window': + specifier: ^1.8.8 + version: 1.8.8 + '@types/react-window-infinite-loader': + specifier: ^1.0.9 + version: 1.0.9 + '@types/tinycolor2': + specifier: ^1.4.6 + version: 1.4.6 + '@use-gesture/react': + specifier: ^10.3.1 + version: 10.3.1(react@19.1.0) + '@xyflow/react': + specifier: ^12.6.0 + version: 12.6.0(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + axios: + specifier: ^1.9.0 + version: 1.9.0 + axios-cache-interceptor: + specifier: ^1.8.0 + version: 1.8.0(axios@1.9.0) + bson-objectid: + specifier: ^2.0.4 + version: 2.0.4 + canvas-confetti: + specifier: ^1.9.3 + version: 1.9.3 + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + cmdk: + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + d3: + specifier: ^7.9.0 + version: 7.9.0 + dagre: + specifier: ^0.8.5 + version: 0.8.5 + date-fns: + specifier: ^4.1.0 + version: 4.1.0 + date-fns-tz: + specifier: ^3.2.0 + version: 3.2.0(date-fns@4.1.0) + dodopayments: + specifier: ^1.44.0 + version: 1.44.0 + dompurify: + specifier: ^3.2.5 + version: 3.2.5 + embla-carousel-react: + specifier: ^8.6.0 + version: 8.6.0(react@19.1.0) + emblor: + specifier: ^1.4.8 + version: 1.4.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + eslint-config-next: + specifier: ^15.3.1 + version: 15.3.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + framer-motion: + specifier: ^12.9.2 + version: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + google: + specifier: link:@next/third-parties/google + version: link:@next/third-parties/google + gsap: + specifier: ^3.13.0 + version: 3.13.0 + he: + specifier: ^1.2.0 + version: 1.2.0 + html-react-parser: + specifier: ^5.2.6 + version: 5.2.6(@types/react@19.1.2)(react@19.1.0) + html-to-text: + specifier: ^9.0.5 + version: 9.0.5 + idb-keyval: + specifier: ^6.2.2 + version: 6.2.2 + import-in-the-middle: + specifier: ^1.14.2 + version: 1.14.2 + input-otp: + specifier: ^1.4.2 + version: 1.4.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + lenis: + specifier: ^1.3.4 + version: 1.3.4(react@19.1.0) + lucide-react: + specifier: ^0.483.0 + version: 0.483.0(react@19.1.0) + marked: + specifier: ^15.0.11 + version: 15.0.11 + mermaid: + specifier: ^11.6.0 + version: 11.6.0 + motion: + specifier: ^12.9.2 + version: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0) + next-themes: + specifier: ^0.4.6 + version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + npm: + specifier: ^11.3.0 + version: 11.3.0 + postcss: + specifier: ^8.5.3 + version: 8.5.3 + posthog-js: + specifier: ^1.259.0 + version: 1.259.0 + posthog-node: + specifier: ^5.6.0 + version: 5.6.0 + prettier-plugin-tailwindcss: + specifier: ^0.6.11 + version: 0.6.11(prettier@3.5.3) + react: + specifier: ^19.1.0 + version: 19.1.0 + react-day-picker: + specifier: 8.10.1 + version: 8.10.1(date-fns@4.1.0)(react@19.1.0) + react-dom: + specifier: ^19.1.0 + version: 19.1.0(react@19.1.0) + react-dropzone: + specifier: ^14.3.8 + version: 14.3.8(react@19.1.0) + react-hook-form: + specifier: ^7.56.1 + version: 7.56.1(react@19.1.0) + react-intersection-observer: + specifier: ^9.16.0 + version: 9.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-markdown: + specifier: ^10.1.0 + version: 10.1.0(@types/react@19.1.2)(react@19.1.0) + react-pdf: + specifier: ^9.2.1 + version: 9.2.1(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-redux: + specifier: ^9.2.0 + version: 9.2.0(@types/react@19.1.2)(react@19.1.0)(redux@5.0.1) + react-resizable-panels: + specifier: ^2.1.9 + version: 2.1.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-swipeable-list: + specifier: ^1.10.0 + version: 1.10.0 + react-syntax-highlighter: + specifier: ^15.6.1 + version: 15.6.1(react@19.1.0) + react-twemoji: + specifier: ^0.6.0 + version: 0.6.0(react@19.1.0) + react-window: + specifier: ^1.8.11 + version: 1.8.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-window-infinite-loader: + specifier: ^1.0.10 + version: 1.0.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + reactflow: + specifier: ^11.11.4 + version: 11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + recharts: + specifier: ^2.15.3 + version: 2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + redux: + specifier: ^5.0.1 + version: 5.0.1 + rehype-highlight: + specifier: ^7.0.2 + version: 7.0.2 + remark-gfm: + specifier: ^4.0.1 + version: 4.0.1 + require-in-the-middle: + specifier: ^7.5.2 + version: 7.5.2 + sharp: + specifier: ^0.33.5 + version: 0.33.5 + sonner: + specifier: ^2.0.3 + version: 2.0.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + source-map-js: + specifier: ^1.2.1 + version: 1.2.1 + tailwind-merge: + specifier: ^3.2.0 + version: 3.2.0 + tailwindcss: + specifier: ^4.1.5 + version: 4.1.5 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@4.1.5) + tinycolor2: + specifier: ^1.6.0 + version: 1.6.0 + uuid: + specifier: ^11.1.0 + version: 11.1.0 + vaul: + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + zod: + specifier: ^3.24.3 + version: 3.24.3 + devDependencies: + '@eslint/eslintrc': + specifier: ^3.3.1 + version: 3.3.1 + '@types/dagre': + specifier: ^0.7.52 + version: 0.7.52 + '@types/node': + specifier: 22.15.21 + version: 22.15.21 + '@types/react': + specifier: ^19.1.2 + version: 19.1.2 + '@types/react-dom': + specifier: ^19.1.3 + version: 19.1.3(@types/react@19.1.2) + '@typescript-eslint/eslint-plugin': + specifier: ^8.31.1 + version: 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': + specifier: ^8.31.1 + version: 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + barrelsby: + specifier: ^2.8.1 + version: 2.8.1 + depcheck: + specifier: ^1.4.7 + version: 1.4.7 + eslint: + specifier: ^9.25.1 + version: 9.25.1(jiti@2.4.2) + eslint-plugin-simple-import-sort: + specifier: ^12.1.1 + version: 12.1.1(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-unused-imports: + specifier: ^4.1.4 + version: 4.1.4(@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2)) + husky: + specifier: ^9.1.7 + version: 9.1.7 + prettier: + specifier: ^3.5.3 + version: 3.5.3 + typescript: + specifier: ^5.8.3 + version: 5.8.3 packages: - /@alloc/quick-lru@5.2.0: + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - dev: false - /@antfu/install-pkg@1.1.0: - resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - dependencies: - package-manager-detector: 1.3.0 - tinyexec: 1.0.1 - dev: false + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} - /@antfu/utils@8.1.1: + '@antfu/install-pkg@1.0.0': + resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==} + + '@antfu/utils@8.1.1': resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - dev: false - /@babel/code-frame@7.27.1: + '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - dev: true - /@babel/generator@7.28.3: - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + '@babel/compat-data@7.28.0': + resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.0': + resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 - jsesc: 3.1.0 - dev: true - /@babel/helper-globals@7.28.0: + '@babel/generator@7.27.1': + resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.0': + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-string-parser@7.27.1: + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-identifier@7.27.1: + '@babel/helper-validator-identifier@7.27.1': resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - dev: true - /@babel/parser@7.28.3: - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.2': + resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.27.1': + resolution: {integrity: sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.28.2 - dev: true - /@babel/runtime@7.28.3: - resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} + '@babel/runtime@7.27.1': + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} engines: {node: '>=6.9.0'} - dev: false - /@babel/template@7.27.2: + '@babel/template@7.27.1': + resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 - dev: true - /@babel/traverse@7.28.3: - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} + '@babel/traverse@7.27.1': + resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.3 - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/types@7.28.2: + '@babel/traverse@7.28.0': + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.27.1': + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - dev: true - /@braintree/sanitize-url@7.1.1: + '@braintree/sanitize-url@7.1.1': resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} - dev: false - /@chevrotain/cst-dts-gen@11.0.3: + '@chevrotain/cst-dts-gen@11.0.3': resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} - dependencies: - '@chevrotain/gast': 11.0.3 - '@chevrotain/types': 11.0.3 - lodash-es: 4.17.21 - dev: false - /@chevrotain/gast@11.0.3: + '@chevrotain/gast@11.0.3': resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==} - dependencies: - '@chevrotain/types': 11.0.3 - lodash-es: 4.17.21 - dev: false - /@chevrotain/regexp-to-ast@11.0.3: + '@chevrotain/regexp-to-ast@11.0.3': resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==} - dev: false - /@chevrotain/types@11.0.3: + '@chevrotain/types@11.0.3': resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==} - dev: false - /@chevrotain/utils@11.0.3: + '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} - dev: false - /@discoveryjs/json-ext@0.5.7: + '@discoveryjs/json-ext@0.5.7': resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - dev: false - /@emnapi/core@1.4.5: - resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} - dependencies: - '@emnapi/wasi-threads': 1.0.4 - tslib: 2.8.1 - dev: false - optional: true + '@emnapi/core@1.4.3': + resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - /@emnapi/runtime@1.4.5: - resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} - dependencies: - tslib: 2.8.1 - dev: false - optional: true + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - /@emnapi/wasi-threads@1.0.4: - resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} - dependencies: - tslib: 2.8.1 - dev: false - optional: true + '@emnapi/wasi-threads@1.0.2': + resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - /@eslint-community/eslint-utils@4.7.0(eslint@9.33.0): - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.6.1': + resolution: {integrity: sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 9.33.0 - eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.12.1: + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint/config-array@0.21.0: - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.1 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - /@eslint/config-helpers@0.3.1: - resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} + '@eslint/config-helpers@0.2.1': + resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@eslint/core@0.15.2: - resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} + '@eslint/core@0.13.0': + resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@types/json-schema': 7.0.15 - /@eslint/eslintrc@3.3.1: + '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - ajv: 6.12.6 - debug: 4.4.1 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - /@eslint/js@9.33.0: - resolution: {integrity: sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==} + '@eslint/js@9.25.1': + resolution: {integrity: sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@eslint/object-schema@2.1.6: + '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@eslint/plugin-kit@0.3.5: - resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} + '@eslint/plugin-kit@0.2.8': + resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@eslint/core': 0.15.2 - levn: 0.4.1 - /@floating-ui/core@1.7.3: - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} - dependencies: - '@floating-ui/utils': 0.2.10 - dev: false + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} - /@floating-ui/dom@1.7.4: - resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} - dependencies: - '@floating-ui/core': 1.7.3 - '@floating-ui/utils': 0.2.10 - dev: false + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - /@floating-ui/react-dom@2.1.6(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 1.7.4 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@floating-ui/utils@0.2.10: - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - dev: false + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - /@fontsource-variable/inter@5.2.6: + '@fontsource-variable/inter@5.2.6': resolution: {integrity: sha512-jks/bficUPQ9nn7GvXvHtlQIPudW7Wx8CrlZoY8bhxgeobNxlQan8DclUJuYF2loYRrGpfrhCIZZspXYysiVGg==} - dev: false - /@formatjs/ecma402-abstract@2.3.4: + '@formatjs/ecma402-abstract@2.3.4': resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} - dependencies: - '@formatjs/fast-memoize': 2.2.7 - '@formatjs/intl-localematcher': 0.6.1 - decimal.js: 10.6.0 - tslib: 2.8.1 - dev: false - /@formatjs/fast-memoize@2.2.7: + '@formatjs/fast-memoize@2.2.7': resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - dependencies: - tslib: 2.8.1 - dev: false - /@formatjs/icu-messageformat-parser@2.11.2: + '@formatjs/icu-messageformat-parser@2.11.2': resolution: {integrity: sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==} - dependencies: - '@formatjs/ecma402-abstract': 2.3.4 - '@formatjs/icu-skeleton-parser': 1.8.14 - tslib: 2.8.1 - dev: false - /@formatjs/icu-skeleton-parser@1.8.14: + '@formatjs/icu-skeleton-parser@1.8.14': resolution: {integrity: sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==} - dependencies: - '@formatjs/ecma402-abstract': 2.3.4 - tslib: 2.8.1 - dev: false - /@formatjs/intl-localematcher@0.6.1: + '@formatjs/intl-localematcher@0.6.1': resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} - dependencies: - tslib: 2.8.1 - dev: false - /@heroui/accordion@2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/accordion@2.2.13': resolution: {integrity: sha512-0y+eOwc4CV6dGP9LBoXPpPza6ZUxoyUajbzaTA3NTADvqnIV6+TB/G6nbKtYJf4F4omMZwRGoLQ5vr/dKLCGCA==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -840,30 +774,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/divider': 2.2.11(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.6(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-accordion': 2.2.8(react-dom@19.1.1)(react@19.1.1) - '@react-aria/button': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tree': 3.8.8(react@19.1.1) - '@react-types/accordion': 3.0.0-alpha.26(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/accordion@2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/accordion@2.2.15-beta.1': resolution: {integrity: sha512-TSb+JwNHA2pD1vrwvjBWcoJww/5QlAONf1KJedgzLd+ILbB6teD4oeTntgD4uD8kEx9omJc+ZZDrDrcvCL7/AQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -871,112 +783,34 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-accordion': 2.2.10-beta.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/button': 3.12.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tree': 3.8.8(react@19.1.1) - '@react-types/accordion': 3.0.0-alpha.26(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/alert@2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/alert@2.2.18-beta.1': resolution: {integrity: sha512-veArRNSwjJ5ukM7FVjSEFl0+ZM8vkCeTRqNgGZs0jVMytDuHF13p4cqxNdoMMFz/ou1rG1WogQrcgTEb6ycD1Q==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/aria-utils@2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/aria-utils@2.2.13': resolution: {integrity: sha512-JcMaUTrWQqTg2fknO8Cuj5QVifhk9x9SAwoM4pwxPQvwHDj7ghyFmF43yPwxwvhdiakau3uxzC7zg4ZrmdUvYQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-rsc-utils': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.2(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - - framer-motion - dev: false - /@heroui/aria-utils@2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/aria-utils@2.2.15-beta.1': resolution: {integrity: sha512-++MoEW9wXtlT/xTw10ZKXGuS4jrcjDgyDWU0P+uMStJuqOCvyGtERKDmTVIsPOFTC1txYX4Nh1YMttzujJ9PJg==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-rsc-utils': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.2(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - - framer-motion - dev: false - /@heroui/aria-utils@2.2.21(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-6R01UEqgOOlD+MgizCQfsP2yK8e7RAHhWM/MtXHSCjWG7Ud+Ys1HlZPaH8+BB1P6UqtHZScZQevUFq975YJ57Q==} + '@heroui/aria-utils@2.2.19': + resolution: {integrity: sha512-DL4dxS2Nodi6Fy+Ukoqpg+eUlP7eMDxkXQfLk+EdkUx0uq1ACt2x9wWXWu0dqHAUvL3E6pzJ1r7F4rww6/VxOA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/system': 2.4.20(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-types/overlays': 3.9.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - - framer-motion - dev: false - /@heroui/autocomplete@2.3.17(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/autocomplete@2.3.17': resolution: {integrity: sha512-3/+gC2+0sVm0JWPr2/p59Sbiw5wIBVr+kaUYOXULQhKSQwFCRHPUYkO0hPv7UIhD1ZHMexYS3SoKint5Rpp3WA==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -984,39 +818,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/input': 2.4.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@heroui/listbox': 2.3.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/scroll-shadow': 2.3.10(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/spinner': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.10(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - '@react-aria/combobox': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.1)(react@19.1.1) - '@react-stately/combobox': 3.10.3(react@19.1.1) - '@react-types/combobox': 3.13.3(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - dev: false - /@heroui/autocomplete@2.3.19-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/autocomplete@2.3.19-beta.1': resolution: {integrity: sha512-sztjJOmGPKazJs7W/FTzBoxX3jT7MNto8BPJCf+26hduGEVse4WdX3i2LNqFohpV9S1lE94V2SyxP7oE2ZAhYA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -1024,117 +827,40 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/input': 2.4.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@heroui/listbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/scroll-shadow': 2.3.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/combobox': 3.12.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/combobox': 3.10.3(react@19.1.1) - '@react-types/combobox': 3.13.3(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - dev: false - /@heroui/avatar@2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/avatar@2.2.12': resolution: {integrity: sha512-kSgFtEtW0bFLZkvox8/rm6VAZXOnTEPyOXL8OmBdOrIFRHWTe9pEW5rhx6KbgTj5Time+bCgMnU6lUVpB2nFjA==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-image': 2.1.7(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/avatar@2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/avatar@2.2.14-beta.1': resolution: {integrity: sha512-1Jui0ZX5zhVWHbNVQHNTpr5/HtkaNQsydolVDMiKGyGH2nU3n34/K52OvZFh50v80Gf6dPsjf7TNko5a4uazRQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-image': 2.1.9-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/badge@2.2.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/badge@2.2.12-beta.1': resolution: {integrity: sha512-Ly0lG9M6Rfvs4NTRBWK6bCMoiVOjgvZxTD0Kw+F4RcAd2bskbttzCNPbapJ3hyZvXv8cO79uvcdPKSXmaQb/mA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/breadcrumbs@2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/breadcrumbs@2.2.14-beta.1': resolution: {integrity: sha512-QkpjxIjM0Pu5pQrRyUUmRTejZ3SqwATDr/JcgTtKlXHwiVgKYWZZiO1QbHyyYAn3fHKVfgoStkrsbMe609PcsQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/breadcrumbs': 3.5.22(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/breadcrumbs': 3.7.11(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/button@2.2.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/button@2.2.16': resolution: {integrity: sha512-fT+vh8DkjHACeRQQrJK5ZOe2PQXeYBzBFhXpRTkkeRYC+lmjTuQqEhcUp/2JtgUlXN4/PL6ItLmFrARDjRxbvQ==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -1142,26 +868,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/ripple': 2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/spinner': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.10(react-dom@19.1.1)(react@19.1.1) - '@react-aria/button': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/button@2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/button@2.2.18-beta.1': resolution: {integrity: sha512-z3pxdV8ZYcqMJ0a6EFOZkz/8BmjIDmsR37YIEAodiwnSJ8cubqSqJFZY+qeRsOw0d74KuJ7CM65nfE2Apko05w==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -1169,50 +877,17 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/ripple': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/button': 3.12.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/button@2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-PR4CZaDSSAGYPv7uUNRc9FAJkNtMgcNUdnD0qxQoJDQoB/C6LLLgROqc/iHaKX9aEH5JYIISbMxTIcJtY2Zk2A==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/button@2.2.22': + resolution: {integrity: sha512-uOSyUNOe4VpHur/IF/F6wmDplyHqifyNJs6D8umtzs9l5PfrKXGDHgRXBEBFhOKj2e4M9kM1BFPpWYW4f2zLEA==} + peerDependencies: + '@heroui/system': '>=2.4.17' + '@heroui/theme': '>=2.4.6' framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/ripple': 2.2.18(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/spinner': 2.2.21(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.18(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/calendar@2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/calendar@2.2.18-beta.1': resolution: {integrity: sha512-C60IV8rKGTJ6L7XdJBbZvX8Zb/7+fjPEHD6T59rRIeI2ar2vhzgWAcqPzGkKUHgjb5VbbhyuQuNAzNcRx/SDWQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -1220,71 +895,17 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1) - '@internationalized/date': 3.7.0 - '@react-aria/calendar': 3.7.2(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/calendar': 3.7.1(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/calendar': 3.6.1(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@types/lodash.debounce': 4.0.9 - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - scroll-into-view-if-needed: 3.0.10 - dev: false - /@heroui/calendar@2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-zUJ/m8uAVEn53FcKN6B2a+BtjXAsSicu8M667aKyaGgVFwOTWgH5miFvD/xLyFu+gAF/LBrC6ysDQMdHdiKKBQ==} + '@heroui/calendar@2.2.22': + resolution: {integrity: sha512-5/hjKJIqKw+u/GiUcHVVVOXjYFCPp87n7mmFgmMgTd6hnncAnn+/jRmBkhLd4fxj3lBIhdoLX3RFu8Vp/zhQpQ==} peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + '@heroui/system': '>=2.4.17' + '@heroui/theme': '>=2.4.6' framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/button': 2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.10(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.20(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-icons': 2.1.10(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.18(react-dom@19.1.1)(react@19.1.1) - '@internationalized/date': 3.8.2 - '@react-aria/calendar': 3.9.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.26(react-dom@19.1.1)(react@19.1.1) - '@react-stately/calendar': 3.8.3(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/calendar': 3.7.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - scroll-into-view-if-needed: 3.0.10 - dev: false - /@heroui/card@2.2.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/card@2.2.15': resolution: {integrity: sha512-WBW0FaPcjoRpsrLmS7A9i+/LTkC0jY6iEsG1QL7+RtEf/hHkVF9xO8HbsBlPZAEVIotWeZbmP0lbIJUFkYaGsA==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -1292,24 +913,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/ripple': 2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.10(react-dom@19.1.1)(react@19.1.1) - '@react-aria/button': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/card@2.2.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/card@2.2.17-beta.1': resolution: {integrity: sha512-u9AI5rgbEvKhc/ouV9aZO+SUjYRkHYY80V3Vtue+cQt81RGQ1PmsjX9Sc+P/sC0Tjjg1qQ8IvfvsMULqbxLnwg==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -1317,225 +922,78 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/ripple': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/button': 3.12.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/checkbox@2.3.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/checkbox@2.3.15': resolution: {integrity: sha512-oxTfnGKspPBj+bqoMcuN4WjkmMewCG0Gx7URm0Mn2Of7ZzPWckVIJPMV7Tu0Ek8dubYhHMtGRLkBEeegGDdSTw==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.3' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-callback-ref': 2.1.6(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - '@react-aria/checkbox': 3.15.2(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.1)(react@19.1.1) - '@react-stately/checkbox': 3.6.12(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/checkbox@2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/checkbox@2.3.17-beta.1': resolution: {integrity: sha512-QOUKZnbdiYGib2cAgI2qql5DEt2cqor62b5Jr6meLczeB1cAENwisd/Qd8gj6GxmqeUK/Xy60Xm3vVnmG8owGA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-callback-ref': 2.1.8-beta.1(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/checkbox': 3.15.3(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/checkbox': 3.6.12(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/checkbox@2.3.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-H/bcpYGeWB9WFhkkOPojO4ONrz5GIMzfAMYdaKOUFtLVl7B9yVca7HaKdNryAFtNSBd/QQAm/an7gh/OFxIgew==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/checkbox@2.3.18': + resolution: {integrity: sha512-hTVCN2A4+lPt+JmsBzgVS5YNEyEu8NvdUDJ01NA3DNpIjAxV6RmiVl6HnRxECHt7xCzqk5inun/W38NOos756g==} + peerDependencies: + '@heroui/system': '>=2.4.7' + '@heroui/theme': '>=2.4.3' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-callback-ref': 2.1.8(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.8(react@19.1.1) - '@react-aria/checkbox': 3.16.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-stately/checkbox': 3.7.0(react@19.1.1) - '@react-stately/toggle': 3.9.0(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/chip@2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/chip@2.2.12': resolution: {integrity: sha512-4wyIrkr4CtsvCgjdLe5v3kov2uQEPBRlJJdlTyRaBsHQ7hLtQaKXKPPmiK6x+2yrzth5PUAyueJF1YsRBxZL1g==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/chip@2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/chip@2.2.14-beta.1': resolution: {integrity: sha512-+76V+yZeLRNqIxinrW9SzWW7vLesBCQkqo0tg9U0yki2cTTRZsgtulTyS1IRhbpdH9swCaDiJTzJmFaYBOgBNQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/code@2.2.12(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/code@2.2.12': resolution: {integrity: sha512-BYA8zmG2arn7FSCxiPC+ehy+TL7967W6i6iXBUIHpkSNAMPr29AZAC4H0i09b0ibxr0dLJWHC3Y/IPdFK8uI6g==} peerDependencies: '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/code@2.2.14-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/code@2.2.14-beta.1': resolution: {integrity: sha512-5Cym+sbxd8FCp7Lh6aXzscxQcEoHYHirTp4gHbU/bOaQzRJH/MVrmu/gSYap9Goq1cn5iLedarG4NE0pWKpswg==} peerDependencies: '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/date-input@2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/date-input@2.3.17-beta.1': resolution: {integrity: sha512-+rsVOCisWZ2Aq4wzPHgETZg2ft1m3D1p+wSmNPxIjKWaYW9NBeiuDWvA5fhz3j6B4Sg4V9EoDZVFy1B2bnqlVQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@internationalized/date': 3.7.0 - '@react-aria/datepicker': 3.14.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/datepicker': 3.13.0(react@19.1.1) - '@react-types/datepicker': 3.11.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/date-input@2.3.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-K1OFu8vv3oEgQ9GV2ipB+tJOsU/0+DsKWDiKiAISMt4OXilybncm2SrR05M5D36BM0jm5gofnNN7geMYBbhngQ==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/date-input@2.3.21': + resolution: {integrity: sha512-MrUqzAnYJmhFG7t/cuTmw3TOKJGpvQH3rJ7XRvD7KSyg7vRgoA4+s2gyyySpxuTi7LJ8GKH2XUjSkrBFAtx9/w==} + peerDependencies: + '@heroui/system': '>=2.4.17' + '@heroui/theme': '>=2.4.16' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@internationalized/date': 3.8.2 - '@react-aria/datepicker': 3.15.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-stately/datepicker': 3.15.0(react@19.1.1) - '@react-types/datepicker': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/date-picker@2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/date-picker@2.3.18-beta.1': resolution: {integrity: sha512-uEmojKa4E7i77uMdKnBW1WE1+dPkpiwHkOMtgAuhVXlOSw/1faJiPC+TaGynDche2a9dt3ZkcvwicMytwX+GDA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -1543,141 +1001,54 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/calendar': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/date-input': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@internationalized/date': 3.7.0 - '@react-aria/datepicker': 3.14.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/datepicker': 3.13.0(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/datepicker': 3.11.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/date-picker@2.3.25(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-UHnn/RDHF4vVZcJ54U8hArknYcmEGyeNbhRNVtXKcRWQgrA7gi/S5ng9m8Wi/j+SbWK7KiPdVSwlk/1PQr5Vdw==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/date-picker@2.3.22': + resolution: {integrity: sha512-gKhrk3X2koKGupqk0SyVaTBOhB7TFATbvcNO8EO4cspEEm+g235V8lNhwVOb6DxV/d1WuiwazkFfkkdbwMXc/A==} + peerDependencies: + '@heroui/system': '>=2.4.17' + '@heroui/theme': '>=2.4.9' framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.21(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/calendar': 2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/date-input': 2.3.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-icons': 2.1.10(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@internationalized/date': 3.8.2 - '@react-aria/datepicker': 3.15.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-stately/datepicker': 3.15.0(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/datepicker': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/divider@2.2.11(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/divider@2.2.11': resolution: {integrity: sha512-WMGLY+Eus/vp/hpOzTf3vr4DMTmITKoGxzWscqI9Z5eE7CY48DAv0w++e+fOBdXtVmq3AQBMdV+zCoBm+DA40w==} peerDependencies: '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-rsc-utils': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/divider@2.2.13-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/divider@2.2.13-beta.1': resolution: {integrity: sha512-dhhePk0m5x1EVb/rIv6Zy0UJm6SNuNMkHGK7rE0WLsVN8VFYwJ/FUYCOonzeo9Zv2fb+QUxrahHH1WUQxSE+lQ==} peerDependencies: '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-rsc-utils': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/dom-animation@2.1.10(framer-motion@12.23.12): - resolution: {integrity: sha512-dt+0xdVPbORwNvFT5pnqV2ULLlSgOJeqlg/DMo97s9RWeD6rD4VedNY90c8C9meqWqGegQYBQ9ztsfX32mGEPA==} + '@heroui/dom-animation@2.1.6': + resolution: {integrity: sha512-l4xh+y02lmoJVdLR0cjpsa7LjLIvVQCX+w+S2KW6tOoPKmHlyW/8r7h6SqPB4Ua1NZGmRHtlYmw+mw47yqyTjw==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' - dependencies: - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - dev: false - /@heroui/dom-animation@2.1.6(framer-motion@12.23.12): - resolution: {integrity: sha512-l4xh+y02lmoJVdLR0cjpsa7LjLIvVQCX+w+S2KW6tOoPKmHlyW/8r7h6SqPB4Ua1NZGmRHtlYmw+mw47yqyTjw==} + '@heroui/dom-animation@2.1.8-beta.1': + resolution: {integrity: sha512-tnCVAfOUv7Q/SSkKPpMCR2a5yxy0rzgECW5BSelZ2EZIB/91Q1RPkQ0oOAYloIGLwamSXalSeD8fbSO0HcV39Q==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' - dependencies: - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - dev: false - /@heroui/dom-animation@2.1.8-beta.1(framer-motion@12.23.12): - resolution: {integrity: sha512-tnCVAfOUv7Q/SSkKPpMCR2a5yxy0rzgECW5BSelZ2EZIB/91Q1RPkQ0oOAYloIGLwamSXalSeD8fbSO0HcV39Q==} + '@heroui/dom-animation@2.1.9': + resolution: {integrity: sha512-uqYosEn7nDFWQnpZgLkI4AaaGyOpsHv1lQs8ONsaPdPd6FVJ8vfWw3V5/ofQ+nK4Kb66fU7ujlkx1uGoPxLC1Q==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' - dependencies: - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - dev: false - /@heroui/drawer@2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/drawer@2.2.15-beta.1': resolution: {integrity: sha512-l3zLmBZZol/lFPOnSHKxz/y95QF4QYiku/n42AYPRjXE5m4cJDgRnGcnsO0em6FgvEbpHUoueeicSvPFehcuGg==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/modal': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/dropdown@2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/dropdown@2.3.16': resolution: {integrity: sha512-+iVBn9vaw0hh2WpFMDjlglcb3sFxYqgdg7qa8x1l1/DVzNxIilASLJMw8NcsGHF63OOWveOKX82BMDeAVmFmmA==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -1685,25 +1056,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/menu': 2.2.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/menu': 3.18.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/dropdown@2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/dropdown@2.3.18-beta.1': resolution: {integrity: sha512-x+t3+zvId+O9WSURLjq5ONeHeNo4NWYkH5ec+A9xSadVY4bLnMHryQXEmeoeZg5ogm96xa1379wc4pEmCm26sg==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -1711,424 +1065,155 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/menu': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/menu': 3.18.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/form@2.1.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/form@2.1.15': resolution: {integrity: sha512-dzI9goENLrO5nLovI1T5yJiCxewl3vmTxzqLrrVCMh6SvLKSPyOPAYLER6V36VJ2nJ4Hfm/EiwQyYNa4cmNTCA==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18' react-dom: '>=18' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.1.2(react@19.1.1) - '@react-types/form': 3.7.10(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/form@2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/form@2.1.17-beta.1': resolution: {integrity: sha512-xmW2YcR2jFlcAU4yzPuFKjUCNJu5vBxJGiJ5O60GlpG0vnH0gwx3M0WAf2WATu+ULvIdB7hYKPGmOq7/A+Bdvw==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18' react-dom: '>=18' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.1.2(react@19.1.1) - '@react-types/form': 3.7.10(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/form@2.1.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-zA6eeRXz8DS0kb8VMsiuRQOs4mtVmKgalNZ91xJSqD68CmdE4WI5Ig3rxB9jdl/fd1VVkO853GPp5mzizmNjvA==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/form@2.1.18': + resolution: {integrity: sha512-cBlliX6uiIUHDMF/bf5u1JhaA1+ddJHfmDPGfdl25c0mSWbyJqWJ0f1N2KZfrOf8kBkXdWCDXgK5sr3h9n22xg==} + peerDependencies: + '@heroui/system': '>=2.4.7' + '@heroui/theme': '>=2.4.6' react: '>=18' react-dom: '>=18' - dependencies: - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/form': 3.7.14(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/framer-utils@2.1.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/form@2.1.21': + resolution: {integrity: sha512-LS3sNgrSTXUq8KDoiA8DLyMmVuMRBDyzk9TKLTml6rms2yLCXtN/7BaP1QVqzm7QDXD6GUGVVae5yBCJYNZwqg==} + peerDependencies: + '@heroui/system': '>=2.4.17' + '@heroui/theme': '>=2.4.6' + react: '>=18' + react-dom: '>=18' + + '@heroui/framer-utils@2.1.12': resolution: {integrity: sha512-UfHx5NVtXxxEObg1fi4uK+kl+oXoaMkG+zm74pqxLgDan7EuhgICPhCfUTpnZIhmdBlButNRKs1bva4wiG/BCg==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-measure': 2.1.6(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - dev: false - /@heroui/framer-utils@2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/framer-utils@2.1.14-beta.1': resolution: {integrity: sha512-WMX8Tt9e3gHZsIsJAeX75Tx95oEcH7151a8wxP4j2oIZc+oT+h1fGXlrZ1x7QNr19UOUc4Pfw7eNCPfGjkwUgg==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-measure': 2.1.8-beta.1(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - dev: false - /@heroui/framer-utils@2.1.20(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-DigZrwJp3+ay7rnjIW4ZGXen4QmxDgdvg6xvBK5T6H3JLN6NN+F7kknjK+kFh7tOb1NzuanguribvsufGqMe4w==} + '@heroui/framer-utils@2.1.18': + resolution: {integrity: sha512-H28VtN61PE+JkMzyZkseb7jZJQiQXAAF2NBw/jgDv2j7i9qyBAwB7DfiIcc+yrT4y7c+v3FZmDonggJAb6CRnA==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/system': 2.4.20(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-measure': 2.1.8(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - dev: false - /@heroui/image@2.2.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/image@2.2.12-beta.1': resolution: {integrity: sha512-yrWXqCBrEOJBBvI1CTzwIUqJEtwNgnrYOGHFVINwdsYItGd05Zpl1dw/SHStrAld5C8h1w6ftpT4Ipr/wrhUig==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-image': 2.1.9-beta.1(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/input-otp@2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/input-otp@2.1.17-beta.1': resolution: {integrity: sha512-2IimBIA1oqYEn9e+HiIpH/V2RZV6giJUDJyOel7po1Y4oCwA3VTh34PQPopUoepwAmhadoMbtqyEIsqt5nQP7Q==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18' react-dom: '>=18' - dependencies: - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/form': 3.0.14(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.1.2(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/textfield': 3.12.0(react@19.1.1) - input-otp: 1.4.1(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/input@2.4.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/input@2.4.16': resolution: {integrity: sha512-gSEalFg2usD7SjkevRyulvbJksecW/L9vqZWGHgcm6NpOlt5lGb/b6E2AEuhNFWbrN4pgUmfFUqqmZfFbc4M9Q==} peerDependencies: '@heroui/system': '>=2.4.10' '@heroui/theme': '>=2.4.9' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/textfield': 3.17.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@react-types/textfield': 3.12.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-textarea-autosize: 8.5.9(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - dev: false - /@heroui/input@2.4.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@heroui/input@2.4.18-beta.1': resolution: {integrity: sha512-w2UqZgoSxP+JaZbpixkTI/zlitOfJ2x8ik9mVNakN2WH+cQa+XRyk/U+ro8qupMOKda4QVGWqEzmPoR+61iIUg==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/textfield': 3.17.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@react-types/textfield': 3.12.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-textarea-autosize: 8.5.9(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - dev: false - /@heroui/kbd@2.2.12(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/kbd@2.2.12': resolution: {integrity: sha512-SlP1qy3ECidAl0ykXMkp4aevI3xCqf8kUegbOpYZ+qGUq76LJ3y3/mFotzhKJ67fki0crz3MjTAh5a0TSkMUjA==} peerDependencies: '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/kbd@2.2.14-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/kbd@2.2.14-beta.1': resolution: {integrity: sha512-GCW5pJcm14JhcNdWrvbVHqhVfp/14WeGzzto60LEugWaxUoZUIrYIr2SitRzFhCrFJwfz8vsgcESL1Y429rx2g==} peerDependencies: '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/link@2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/link@2.2.13': resolution: {integrity: sha512-muv39Lc0ToPAbhkxPb5YHrOWBu7EzHVsLsBdmmR47ejyczulxmBJFBia3AZx/Lp+n36ceTcuZ5zqdc8hmMO+Vg==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-link': 2.2.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/link': 3.7.9(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/link': 3.5.11(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/link@2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/link@2.2.15-beta.1': resolution: {integrity: sha512-zaWr16iMcMCNdfYrm3hjRrfMY7PXmLuy8ufsqb+wjy+k59bhICu6D+ipz1/eseYDajZ575htJQRfA09ETjMlpA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-link': 2.2.13-beta.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/link': 3.7.10(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/link': 3.5.11(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/listbox@2.3.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/listbox@2.3.15': resolution: {integrity: sha512-BLxvRtu68RWx6wJpJxbM5K7HjuZrRTezkUUQWbLoF1aygOsy1vX1b9gWvZq8+1AHjf7AyyRQ8z6dNqvhun7i8Q==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/divider': 2.2.11(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mobile': 2.2.7(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/listbox': 3.14.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/list': 3.12.0(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@tanstack/react-virtual': 3.11.3(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/listbox@2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/listbox@2.3.17-beta.1': resolution: {integrity: sha512-0xqJWxcZUAoVAEIMU9arpYoOsi2EC9ziPxpNQMveHvTLQj6sxlPFUJzKg7InqDBKwupjH2sB2Pj69a8GNJ6z9w==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mobile': 2.2.9-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/listbox': 3.14.2(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/list': 3.12.0(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@tanstack/react-virtual': 3.11.3(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/menu@2.2.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/menu@2.2.15': resolution: {integrity: sha512-jOnr6CzTSyC4cfoVohstIQoOEIY6to0eR39e2Zzxy7Ry4mmo5O06CcqET4LPHTbbPG9wZpc5IAsLCnEqI8oygQ==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/divider': 2.2.11(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mobile': 2.2.7(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/menu': 3.18.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-stately/tree': 3.8.8(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/menu@2.2.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/menu@2.2.17-beta.1': resolution: {integrity: sha512-hfZ61qkyT5zDx45WsRQWRJb+CGXJZ3M0J++pyfyUfOIMK0er4qd/l/CnacehiYaFMslJyXKDzHxF6H94bZ8N7A==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mobile': 2.2.9-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/menu': 3.18.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-stately/tree': 3.8.8(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/modal@2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/modal@2.2.13': resolution: {integrity: sha512-HdzKe4LyXqtv/xyKbKO4dvDTVZzW3PvN+JE2//diLA3HRjhKhi0nQ34AZqfXBt1MofjrUlztec6fFVTb4k9BKg==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -2136,31 +1221,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/dom-animation': 2.1.6(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.10(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-aria-modal-overlay': 2.2.9(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-disclosure': 2.2.8(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-draggable': 2.1.8(react-dom@19.1.1)(react@19.1.1) - '@react-aria/dialog': 3.5.22(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/modal@2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/modal@2.2.15-beta.1': resolution: {integrity: sha512-UpEHGQHJWX6WDNOwfFFQlVHqM52ft9xJ4xXJqpResb2d1RkvgnGKfTYDP7b+ULiXRU5nqq6MAfj8gk/6Y834dQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -2168,31 +1230,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-aria-modal-overlay': 2.2.11-beta.0(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-disclosure': 2.2.10-beta.1(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-draggable': 2.1.10-beta.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/dialog': 3.5.23(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/navbar@2.2.14(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/navbar@2.2.14': resolution: {integrity: sha512-e18GHX1cgOLWZ1LhCxcM8EFRfwrWDCVS1GS/Y28qQskTDL0EsqMmdGHeEDwSrg0diCoPQrh6vnUh+9UlWd1l1g==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -2200,27 +1239,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/dom-animation': 2.1.6(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-scroll-position': 2.1.6(react@19.1.1) - '@react-aria/button': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/navbar@2.2.16-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/navbar@2.2.16-beta.1': resolution: {integrity: sha512-5xUtgqhjaQOpyBii9pv9f76w3aZ8zfbUaVp04KtX3gxz8s6yYi/L5ZpZXT8OnCYHmvNtZvCjhUrNSaUGPihq2A==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -2228,107 +1248,32 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-scroll-position': 2.1.8-beta.1(react@19.1.1) - '@react-aria/button': 3.12.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/number-input@2.0.8-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/number-input@2.0.8-beta.1': resolution: {integrity: sha512-ajTPFldDGzYB6Paz26mlGiZsbSzTnqZeBc9ytxbscCvOSrGOeEeoKxuOux9P2vxpC0bifIL+MhBdySCgmjzn3w==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/numberfield': 3.11.12(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/numberfield': 3.9.10(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/numberfield': 3.8.9(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/pagination@2.2.14(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/pagination@2.2.14': resolution: {integrity: sha512-QjZwCtMK9l8KjCnjEppbTHVRoUXz6zCBfSMgFLJ8cEuiDTzNQqmKe1H0q6dzzb5wbbWSQlAe8SX+nuNFQ1SJXw==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-intersection-observer': 2.2.8(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-pagination': 2.2.9(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - scroll-into-view-if-needed: 3.0.10 - dev: false - /@heroui/pagination@2.2.16-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/pagination@2.2.16-beta.1': resolution: {integrity: sha512-BDBO9GnHtNFFI2AhXw78TKtQQRWTvgbXc9IrONqPKIDody+JnSV5xtS3ap0pUogJGa0NAVPEDka0c11jOrS4oA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-intersection-observer': 2.2.10-beta.0(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-pagination': 2.2.11-beta.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - scroll-into-view-if-needed: 3.0.10 - dev: false - /@heroui/popover@2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/popover@2.3.16': resolution: {integrity: sha512-cR6x4i9mxfJ9mYQFc73GrUTeDXakQV0KnFT4Wa5494aHjs9tdf4C4A55BgXkYXvY+niCs6C0iJQatJN1yOfrVQ==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -2336,31 +1281,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.6(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.10(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - '@react-aria/dialog': 3.5.22(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/popover@2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/popover@2.3.18-beta.1': resolution: {integrity: sha512-VKSZjRgm/0dlQTIRdT+EV2tj0B6q8Da4tq0kCMgIL+9wNjepk8zev9YlQJOXCsCPP6xeZhGkkeZ7ksCvUtWidQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -2368,251 +1290,88 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/dialog': 3.5.23(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/popover@2.3.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-ZIVGgqg2RAeRisMNhtJEfOk+yvitk0t7RzcQxd6Has/XkNPXStWEmpjW9wI5P9/RPj76ix4fS7ZArQefX+VHUg==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/popover@2.3.22': + resolution: {integrity: sha512-7eMfHlvPh44Fx9fXrigm6Z0HfIlASVv7jkM9LdAX6oB6eRMGObwSDd0Ci83x/F/i99HeFz9V6ijwnh961hAk9Q==} + peerDependencies: + '@heroui/system': '>=2.4.17' + '@heroui/theme': '>=2.4.6' framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.21(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.10(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.20(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.18(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-aria-overlay': 2.0.2(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.8(react@19.1.1) - '@react-aria/dialog': 3.5.28(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-types/overlays': 3.9.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/progress@2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/progress@2.2.14-beta.1': resolution: {integrity: sha512-rXnb3GmwjQZhnnKMC6YbrSvThmmooGpUkDbuZXxoqGKfajYFN9Q5UC8anhNIrD7Ip9L5VQ3ZTmyAOyfTC8SnPw==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mounted': 2.1.8-beta.1(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/progress': 3.4.21(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/progress': 3.5.10(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/radio@2.3.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/radio@2.3.15': resolution: {integrity: sha512-rFUTWwapuB3prIl8z5v9TXlQ5hQYJO3FZMIELYh2H81G5UNghoPDyfUhoDBqWUuX6lHuR/cfzTaB1YwKWGGddw==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.3' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/radio': 3.11.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.1)(react@19.1.1) - '@react-stately/radio': 3.10.11(react@19.1.1) - '@react-types/radio': 3.8.7(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/radio@2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/radio@2.3.17-beta.1': resolution: {integrity: sha512-gjFn8bwbbFQy9GJjeZPEWCSdW8cKe/4YRX0cO2xHpaUF1sGL3utI3hQsuexdq62FBC8sJLAyk/t18Q70+EQxTA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/radio': 3.11.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/radio': 3.10.11(react@19.1.1) - '@react-types/radio': 3.8.7(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/react-rsc-utils@2.1.6(react@19.1.1): + + '@heroui/react-rsc-utils@2.1.6': resolution: {integrity: sha512-slBWi9g3HdnSNRhoedDhXFybaab5MveAeECzQoj4oJrIlmiezyeZWRKbWR8li2tiZtvBoEr0Xpu/A8hdni15dQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/react-rsc-utils@2.1.8-beta.1(react@19.1.1): + '@heroui/react-rsc-utils@2.1.7': + resolution: {integrity: sha512-NYKKOLs+KHA8v0+PxkkhVXxTD0WNvC4QMlMjUVshzpWhjnOHIrtXjAtqO6XezWmiKNKY76FAjnMZP+Be5+j5uw==} + peerDependencies: + react: '>=18 || >=19.0.0-rc.0' + + '@heroui/react-rsc-utils@2.1.8': + resolution: {integrity: sha512-qFJ0EYg2hVrsotAurd09ga8jZv1jTS6VSz919oC9u4E9xfN5/gFtdtF3HMiTUYRyN2yCP9GEZwyE8T2Y16DDiA==} + peerDependencies: + react: '>=18 || >=19.0.0-rc.0' + + '@heroui/react-rsc-utils@2.1.8-beta.1': resolution: {integrity: sha512-i3zmL4j01R6mgOAs5Oa6EOhqZA4aIFWIjVDNAOXNA0zmK0ZbxXh74RFpL17Nm+Smkh05e7ZnQjTogqOoFJwjWw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/react-rsc-utils@2.1.9(react@19.1.1): - resolution: {integrity: sha512-e77OEjNCmQxE9/pnLDDb93qWkX58/CcgIqdNAczT/zUP+a48NxGq2A2WRimvc1uviwaNL2StriE2DmyZPyYW7Q==} + '@heroui/react-utils@2.1.10': + resolution: {integrity: sha512-Wj3BSQnNFrDzDnN44vYEwTScMpdbylbZwO8UxIY02AoQCBD5QW7Wf0r2FVlrsrjPjMOVeogwlVvCBYvZz5hHnQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/react-utils@2.1.10-beta.1(react@19.1.1): + '@heroui/react-utils@2.1.10-beta.1': resolution: {integrity: sha512-scCYuBIxjOPW75/fGNOQn1EwfTZlL8hZ9m5F1pNEYfhCQf4C52rBjkZhmyd3IqLxMAkgy2fyZqSTn0oR1uF9Ig==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-rsc-utils': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - react: 19.1.1 - dev: false - /@heroui/react-utils@2.1.12(react@19.1.1): - resolution: {integrity: sha512-D+EYFMtBuWGrtsw+CklgAHtQfT17wZcjmKIvUMGOjAFFSLHG9NJd7yOrsZGk90OuJVQ3O1Gj3MfchEmUXidxyw==} + '@heroui/react-utils@2.1.11': + resolution: {integrity: sha512-UZnZBlmmJKBo1YmGnlih5WbzR0m/Qr8GNFiY73C8NMcIuSjr3VQOjTDwRu1lerzCEDV/EEqvyu+MYySdkBUPXQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-rsc-utils': 2.1.9(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - react: 19.1.1 - dev: false - /@heroui/react-utils@2.1.8(react@19.1.1): + '@heroui/react-utils@2.1.8': resolution: {integrity: sha512-ET8sQaqfAWEviuZfatSYXBzyD0PpzuIK2YQkijla0TmF0sHJ3Yl4YQ6DYleWAaIJEWW1u0HgUPrdIjVGjWyKVg==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-rsc-utils': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - react: 19.1.1 - dev: false - /@heroui/react@2.8.0-beta.1(@types/react@19.1.10)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1)(tailwindcss@4.1.12): + '@heroui/react@2.8.0-beta.1': resolution: {integrity: sha512-BTsJgOQHWBcVerNa7O3ep4GB/K+ORvrTWjGcwsht8otRfGiM8O66tX6PlLJEeUT9Veuzr1u2rP7inUQ3uS7qxQ==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/accordion': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/alert': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/autocomplete': 2.3.19-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/avatar': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/badge': 2.2.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/breadcrumbs': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/calendar': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/card': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/checkbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/chip': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/code': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/date-input': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/date-picker': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/drawer': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dropdown': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/image': 2.2.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/input': 2.4.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@heroui/input-otp': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/kbd': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/link': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/listbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/menu': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/modal': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/navbar': 2.2.16-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/number-input': 2.0.8-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/pagination': 2.2.16-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/progress': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/radio': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/ripple': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/scroll-shadow': 2.3.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/select': 2.4.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/skeleton': 2.2.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/slider': 2.4.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/snippet': 2.2.19-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/spacer': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/switch': 2.2.16-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/table': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/tabs': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/toast': 2.0.8-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/tooltip': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/user': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - - tailwindcss - dev: false - /@heroui/ripple@2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/ripple@2.2.12': resolution: {integrity: sha512-5hKlJfl05rtp/ABhmsJ/qqQjh9TgzyvBdeuvWf0K3PJVIMSp+LJly86mwlEzHEbbBwAJvdq9jxd3+R54ZMaQRw==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -2620,18 +1379,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/dom-animation': 2.1.6(framer-motion@12.23.12) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/ripple@2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/ripple@2.2.14-beta.1': resolution: {integrity: sha512-CDeqdILjFGeY4cy9xYOMQfvfEkyLxco/xBO0MT0YMKe7y9V/8DSohzi92AYeRcK7zlPN0n6I6AJnMNTY5xpL3Q==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -2639,87 +1388,41 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.23.12) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/ripple@2.2.18(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-EAZrF6hLJTBiv1sF6R3Wfj/pAIO2yIdVNT2vzaNEXEInrB/fFJlnxfka4p89JjuPl3tiC9jAfavv+zK9YhyBag==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/ripple@2.2.17': + resolution: {integrity: sha512-CGOfFtCLxR8NDoFWzOnmVSAtxSUaF/+7MJHNZdaqkWeoXJAVNGXGNohB9h1ZRnJYk0uVYR8dfQF2PtTqg4KUbQ==} + peerDependencies: + '@heroui/system': '>=2.4.17' + '@heroui/theme': '>=2.4.6' framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/dom-animation': 2.1.10(framer-motion@12.23.12) - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/scroll-shadow@2.3.10(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/scroll-shadow@2.3.10': resolution: {integrity: sha512-l10qKwQLWxW0l94SNxh+z8UnzgWlhTmvNRezrjXZZFhv4EKgv8u1f/E0HsLTy/g8KgPU0ebGWQmbhdqfMyiqOg==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-data-scroll-overflow': 2.2.7(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/scroll-shadow@2.3.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/scroll-shadow@2.3.12-beta.1': resolution: {integrity: sha512-JkZ9rNxhWmNbuaBASNCfur3Bj2Ksi35LdG6ScbZx3KnMX8qjjAep8eIf/zKtKBrNtE63DwtvDgvhcRDyC42QeA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-data-scroll-overflow': 2.2.9-beta.1(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/scroll-shadow@2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-T1zTUjSOpmefMTacFQJFrgssY2BBUO+ZoGQnCiybY+XSZDiuMDmOEjNxC71VUuaHXOzYvhLwmzJY4ZnaUOTlXw==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/scroll-shadow@2.3.13': + resolution: {integrity: sha512-RfYfVewf6UR4vr4sIPI2NaNoyK5lLgJwdWNGufE1Km7INelXf3BVdVKLW/Qlq/cES+B4TV3gq5Nto8aen3R1Sg==} + peerDependencies: + '@heroui/system': '>=2.4.7' + '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-data-scroll-overflow': 2.2.11(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/select@2.4.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/select@2.4.16': resolution: {integrity: sha512-CoCCNX6p4h3BrMp8RDD6pwYLpdXwm1wWdM7QCmocWpzSZqMVJwNdM4AGXqcsT4sAdeA27XyoZsiipiMUUkE+Hw==} peerDependencies: '@heroui/system': '>=2.4.10' @@ -2727,35 +1430,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/listbox': 2.3.15(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/scroll-shadow': 2.3.10(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/spinner': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.10(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-aria-multiselect': 2.4.9(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/form': 3.0.13(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@tanstack/react-virtual': 3.11.3(react-dom@19.1.1)(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/select@2.4.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/select@2.4.18-beta.1': resolution: {integrity: sha512-ONF6rtyG5kaJivF8B1sODHflFqxUV4g3rCnZBn8JqGxvE5iY6BytMPR1/BBapUsqshdCVw8OHdnETIc1Gbeg7g==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -2763,158 +1439,69 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/listbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/scroll-shadow': 2.3.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-aria-multiselect': 2.4.11-beta.0(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/form': 3.0.14(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@tanstack/react-virtual': 3.11.3(react-dom@19.1.1)(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/shared-icons@2.1.10(react@19.1.1): - resolution: {integrity: sha512-ePo60GjEpM0SEyZBGOeySsLueNDCqLsVL79Fq+5BphzlrBAcaKY7kUp74964ImtkXvknTxAWzuuTr3kCRqj6jg==} + + '@heroui/shared-icons@2.1.6': + resolution: {integrity: sha512-4Gey+FJF4XBlMw5p9D2geOEAED8xCxuksurWKUz7eAoAivRRsZJf9wwUsKvNfrmboBUoytdxpUDbVgnckx/G8A==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/shared-icons@2.1.6(react@19.1.1): - resolution: {integrity: sha512-4Gey+FJF4XBlMw5p9D2geOEAED8xCxuksurWKUz7eAoAivRRsZJf9wwUsKvNfrmboBUoytdxpUDbVgnckx/G8A==} + '@heroui/shared-icons@2.1.7': + resolution: {integrity: sha512-uJ8MKVR6tWWhFqTjyzeuJabLVMvwENX2aCWLAAPcJedKcPEEmxgE8y3CbY7vRRPEJENXOoeAgmcVWdVgPYeRIw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/shared-icons@2.1.8-beta.1(react@19.1.1): + '@heroui/shared-icons@2.1.8-beta.1': resolution: {integrity: sha512-6UwfB/BRkKR5MXAcSuSATO0d2zD+xOfwmy5DJ9j/mzA+3Ca4k7gjrf+Of5gU/mUH2IIhvGK6/+7f79DXSa1YFw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/shared-utils@2.1.10: - resolution: {integrity: sha512-w6pSRZZBNDG5/aFueSDUWqOIzqUjKojukg7FxTnVeUX+vIlnYV2Wfv+W+C4l+OV7o0t8emeoe5tXZh8QcLEZEQ==} - requiresBuild: true - dev: false + '@heroui/shared-icons@2.1.9': + resolution: {integrity: sha512-CuKB8bKtRrZzxhU0dpaM9ecJWbs3ZfgWIQG0neYcbEQse0rS83VsKLokh+nmL8fNl69gq1ykT+HYsURnDGyrMw==} + peerDependencies: + react: '>=18 || >=19.0.0-rc.0' - /@heroui/shared-utils@2.1.7: + '@heroui/shared-utils@2.1.7': resolution: {integrity: sha512-1nx7y41P+Bsca7nDC+QFajAoFhSRGvjKhdFeopMQNTvU95L42PD7B0ThjcOretvQD0Ye2TsAEQInwsSgZ6kK/g==} - requiresBuild: true - dev: false - /@heroui/shared-utils@2.1.9-beta.1: + '@heroui/shared-utils@2.1.9': + resolution: {integrity: sha512-mM/Ep914cYMbw3T/b6+6loYhuNfzDaph76mzw/oIS05gw1Dhp9luCziSiIhqDGgzYck2d74oWTZlahyCsxf47w==} + + '@heroui/shared-utils@2.1.9-beta.1': resolution: {integrity: sha512-+cZbbrOgZNqZhyn8xi8e1tQxY+K69GiMMUQK/TM/KnBL5vjIQfjKGslcudKyZr0+6XzZR4ugdYSPtGK+gXng9w==} - requiresBuild: true - dev: false - /@heroui/skeleton@2.2.10(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/skeleton@2.2.10': resolution: {integrity: sha512-6nv+Efzi3DBrVCVTY1CC8InaiYdmztPjmw/ytjGEm1rJNpJCK9HOgKSUVuz6dncLsIsB77toMfE+2s53Yrq9Yg==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/skeleton@2.2.12-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/skeleton@2.2.12-beta.1': resolution: {integrity: sha512-cPrsWqZ2voRxmzytdRpg8LsTuBOR9xyBFDkiy/0yc2ESkKiP5+e0cwXq/bHJt9lMAcj+zWpakkFBqJ+cP9sucQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/slider@2.4.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/slider@2.4.13': resolution: {integrity: sha512-RriCm/mgbRPLFNBykxJB8BNBRfJJrajSB434rA/jgc5VY388MgvpK3XbIim7NZG9Q2wIj4NH/iQwJmypa+6anw==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/tooltip': 2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/slider': 3.7.16(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.1)(react@19.1.1) - '@react-stately/slider': 3.6.2(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/slider@2.4.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/slider@2.4.15-beta.1': resolution: {integrity: sha512-GCWvfXFO/cESixhGPt3GlPouzh55POsumbXcQg+kkITJrqG4G4rjA2y6IfCTGLLrBfW8MpnMoafGwka26OZ2Kg==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/tooltip': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/slider': 3.7.17(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/slider': 3.6.2(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/snippet@2.2.17(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/snippet@2.2.17': resolution: {integrity: sha512-6wB9VuGOv1BG7NE1qTnhWgfNK85NiIC5Kr+x3HlZTCleCrRn8AK8OGLztYvzNWcW2K3Y0tAtwo1RoDCWjjFiuw==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -2922,23 +1509,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/button': 2.2.16(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-icons': 2.1.6(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/tooltip': 2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-clipboard': 2.1.7(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/snippet@2.2.19-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/snippet@2.2.19-beta.1': resolution: {integrity: sha512-tmQJhNJnBZ87vtxEB26FZTY1GRVK/lq6jjfsT4p0US5wJ67KtQY5MJaK6Zi7mT5p27QdBo4C8VPu5gPfagcQSA==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -2946,310 +1518,120 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/tooltip': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/use-clipboard': 2.1.9-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/spacer@2.2.14-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-JQ0vcPwqqJX0WjmIQ2vhkNACqJbWIhl2Y5YAHggkN1Qy3pfoJvXMd/HdgvzDyGYoKk76v4ur6mxZPK1h+YywDw==} + + '@heroui/spacer@2.2.14': + resolution: {integrity: sha512-wiksYhtYH+RIhoMJPdQtWFltw9TF5QKqOujecNmRUORlOsPGAPEHUnzVTV8D7qpk4nJaDB/BNdlN40NaPvWEjg==} peerDependencies: - '@heroui/theme': '>=2.4.14-beta.0' + '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/spacer@2.2.18(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-EHUIyWt2w0viR7oSqhbZPP4fHuILOdcq7ejAhid7rqhsJSjfixQQ/V4OY7D8vpzi7KmlyrkfpkjAZqAApiEbuA==} + '@heroui/spacer@2.2.14-beta.1': + resolution: {integrity: sha512-JQ0vcPwqqJX0WjmIQ2vhkNACqJbWIhl2Y5YAHggkN1Qy3pfoJvXMd/HdgvzDyGYoKk76v4ur6mxZPK1h+YywDw==} peerDependencies: - '@heroui/theme': '>=2.4.17' + '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/system-rsc': 2.3.17(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/spinner@2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/spinner@2.2.13': resolution: {integrity: sha512-tTnbyxtee7wRs61l7uCM2qjNcLHkUoyToRa+a8LLEak3w6mnbMk59pQOETgXZ4aoozpzJF+uzdhqrK82EKcqCQ==} peerDependencies: '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/spinner@2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/spinner@2.2.15-beta.1': resolution: {integrity: sha512-7JVSOn7+1/WqVs6TG8f6YziyZNf/4X2vdnYRprruya068UDeTLRghR/6YBThJgirA0rkvRX/wSBp6YXojNWauw==} peerDependencies: '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/spinner@2.2.21(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-8rBUwVcVESlHfguRXkgC4p7UEymAAUL/E+nOCfqOHqr308bKhVrS2lSjfeRMBGEJqWLf3m5AMhRfwpRbcSVHWg==} + '@heroui/spinner@2.2.19': + resolution: {integrity: sha512-qELUY0RlnBJeVXYwN6Ve4I92BkmNn375EftoXAg4rheM0DwGGxRMAVfiuLZJPGQe45HK8V5/GuyqkYagpvfVdQ==} peerDependencies: - '@heroui/theme': '>=2.4.17' + '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.10 - '@heroui/system': 2.4.20(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system-rsc': 2.3.17(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - framer-motion - dev: false - /@heroui/switch@2.2.14(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/switch@2.2.14': resolution: {integrity: sha512-vts3zWA+sWUETeXZ+8kKt9XGXYXjYA0WK5KamaSsBol5yK3UFe0taj+wgZEgH7qlc3O95uOZdLj5vHDFREWqfQ==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.3' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/switch': 3.7.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/switch@2.2.16-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/switch@2.2.16-beta.1': resolution: {integrity: sha512-3kvVB2W7zuVHJt33+wei3QOWBMCwZowr357O+2U+tu011IS8Ox/m1akpnaWHTmuAhoivKi5NPjVcvMg8/XecuQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/switch': 3.7.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/system-rsc@2.3.11(@heroui/theme@2.4.14-beta.1)(react@19.1.1): + + '@heroui/system-rsc@2.3.11': resolution: {integrity: sha512-727eu4FtQWtg6tJ1ZM0JKQayZNoU/4wkLhtncnKQEWr5XDgbBkNfzeXMc7wkREAMoSbCV5+7zEs/qqW5sIH/fw==} peerDependencies: '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-types/shared': 3.28.0(react@19.1.1) - clsx: 1.2.1 - react: 19.1.1 - dev: false - /@heroui/system-rsc@2.3.13-beta.1(@heroui/theme@2.4.14-beta.1)(react@19.1.1): + '@heroui/system-rsc@2.3.13': + resolution: {integrity: sha512-zLBrDKCoM4o039t3JdfYZAOlHmn4RzI6gxU+Tw8XJIfvUzpGSvR2seY2XJBbKOonmTpILlnw16ZvHF+KG+nN0w==} + peerDependencies: + '@heroui/theme': '>=2.4.6' + react: '>=18 || >=19.0.0-rc.0' + + '@heroui/system-rsc@2.3.13-beta.1': resolution: {integrity: sha512-yC3pGEaKkxQzrHb0lHBakAXhMlXmxY8GAuNQeMcezkRs8p73y3hKw5O90BPvu7xzwpoJvRBoq9EfykDpwWToAw==} peerDependencies: '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-types/shared': 3.28.0(react@19.1.1) - clsx: 1.2.1 - react: 19.1.1 - dev: false - /@heroui/system-rsc@2.3.17(@heroui/theme@2.4.14-beta.1)(react@19.1.1): - resolution: {integrity: sha512-XtQJpLN8HkLYJsvfyBWA/RE8w3PJzEjItwGZ0NACCKRiwkQL205WXJNlkzXsO2/+Y7fEKXkqTMNpQYEhnUlEpw==} + '@heroui/system-rsc@2.3.15': + resolution: {integrity: sha512-IGMgGTv9AEtjnA3ao8b3moxTHOiyH88hEH2tKd9lA9qkrXzuN0F81L34QxQMX0Zw7FwuxBdPXRSqcAvYx7ElNA==} peerDependencies: - '@heroui/theme': '>=2.4.17' + '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-types/shared': 3.31.0(react@19.1.1) - clsx: 1.2.1 - react: 19.1.1 - dev: false - /@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/system@2.4.12': resolution: {integrity: sha512-MjLGJoPIa3co02PA8XEkqWgoxg3jjcyQV2OCINpMREysO0DOweX7voTE/UmSWOuXsPQULwE1pXdP9RLjtersyQ==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@internationalized/date': 3.7.0 - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/datepicker': 3.11.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - dev: false - /@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/system@2.4.14-beta.1': resolution: {integrity: sha512-W/5WtwLF1OVLox1yxah/jYBlBxBriLVoFTXRm17PfmW9C7yA0vRFKytWjnhX/qbuGhNeGXVNqa7h1YxLEqkGYg==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@internationalized/date': 3.7.0 - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/datepicker': 3.11.0(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - dev: false - /@heroui/system@2.4.20(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-bLl86ghOjsk8JLarLfL8wkuiNySJS1PHtd0mpGbAjVRQZYp4wH27R7hYBV55dre8Zw+nIRq58PgILdos7F+e0w==} + '@heroui/system@2.4.18': + resolution: {integrity: sha512-KYRCeA5JJXiGQZ1VJ1aHPOVy23U48Sf3z1ezVBZHnm6/7pn3c1lyqFapyL5qNkpzZ7c2s99b1Klik67KN8mLiQ==} peerDependencies: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/system-rsc': 2.3.17(@heroui/theme@2.4.14-beta.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - '@heroui/theme' - dev: false - /@heroui/table@2.2.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/table@2.2.17-beta.1': resolution: {integrity: sha512-Lk55oQnHzJeysV0kF3O2yDrYPJBxQaKiSsuQ8Np11O8g6g0u4KM/a98QIZfq8TLcbGC8s8lCJ42ag2bIFQ1NFQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/checkbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/spacer': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/table': 3.17.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/table': 3.14.0(react@19.1.1) - '@react-stately/virtualizer': 4.3.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/grid': 3.3.0(react@19.1.1) - '@react-types/table': 3.11.0(react@19.1.1) - '@tanstack/react-virtual': 3.11.3(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/table@2.2.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-R3jsgmqGqVAI5rxy0MbcL2lOZwJSbaHSDBEPtDj1UCrPlQC7O+VhKMC9D3I0MaX+bCVDfm0wMYmu5mNjmXGXnQ==} - peerDependencies: - '@heroui/system': '>=2.4.18' - '@heroui/theme': '>=2.4.17' + + '@heroui/table@2.2.18': + resolution: {integrity: sha512-4KmYMUq77bc6kY4zr5AZoFm4xzML8zAA505q3kUwlKcpiSbbYxebRUJtbf/UE3FY2NlXAiIuUiL7cvKPmOuVnw==} + peerDependencies: + '@heroui/system': '>=2.4.7' + '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/checkbox': 2.3.24(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.12(react@19.1.1) - '@heroui/shared-icons': 2.1.10(react@19.1.1) - '@heroui/shared-utils': 2.1.10 - '@heroui/spacer': 2.2.18(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/table': 3.17.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.26(react-dom@19.1.1)(react@19.1.1) - '@react-stately/table': 3.14.4(react@19.1.1) - '@react-stately/virtualizer': 4.4.2(react-dom@19.1.1)(react@19.1.1) - '@react-types/grid': 3.3.4(react@19.1.1) - '@react-types/table': 3.13.2(react@19.1.1) - '@tanstack/react-virtual': 3.11.3(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/tabs@2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/tabs@2.2.13': resolution: {integrity: sha512-HIAAgkInrC23aD4XWY1TvIhy6FhO4LRLp3Q4zOVp4Nxs4G0p20Nv3gndl7NYRr7TB2fLAbQPgDblsXiG/v6Png==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -3257,29 +1639,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mounted': 2.1.6(react@19.1.1) - '@heroui/use-update-effect': 2.1.6(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/tabs': 3.10.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tabs': 3.8.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@react-types/tabs': 3.3.13(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - scroll-into-view-if-needed: 3.0.10 - dev: false - /@heroui/tabs@2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/tabs@2.2.15-beta.1': resolution: {integrity: sha512-C/SfO5/hpforEyLH4RHrdA/SGbct7xogBm6p81eIvPK/SQotleatwxE9Ca9m61ws7avsgH0qXh9W3qPfWKmp0g==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -3287,45 +1648,13 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mounted': 2.1.8-beta.1(react@19.1.1) - '@heroui/use-update-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/tabs': 3.10.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tabs': 3.8.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - '@react-types/tabs': 3.3.13(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - scroll-into-view-if-needed: 3.0.10 - dev: false - /@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.12): + '@heroui/theme@2.4.14-beta.1': resolution: {integrity: sha512-JgCjBcq0xPCOn7nlB8jA1eWpM0pvpBsLQNF81aXcYXx5Ld42HviD+YrVymmUqUptbP9eod2u0PstNDEe6cWUNQ==} peerDependencies: tailwindcss: '>=4.0.0' - dependencies: - '@heroui/shared-utils': 2.1.9-beta.1 - clsx: 1.2.1 - color: 4.2.3 - color2k: 2.0.3 - deepmerge: 4.3.1 - flat: 5.0.2 - tailwind-merge: 3.0.2 - tailwind-variants: 1.0.0(tailwindcss@4.1.12) - tailwindcss: 4.1.12 - dev: false - /@heroui/toast@2.0.8-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + '@heroui/toast@2.0.8-beta.1': resolution: {integrity: sha512-3CtZJg68hHKvw52sY8SFWAmoYR58nIq0bK0oKbY1ME7OJ7IXY4PcWt0/1VGbtLVVO78bat52nZwHoKgGEgpGUw==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -3333,25 +1662,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-is-mobile': 2.2.9-beta.1(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/toast': 3.0.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toast': 3.0.0(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/tooltip@2.2.13(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/tooltip@2.2.13': resolution: {integrity: sha512-pYfWuhFbOLevr/YnwtT8rLlNbsiOb3WwYo9378ZByHQFCNS0Fd+qPVU+9i7Z/+am3XLoQxgQ5r7OTlMnmCjVmg==} peerDependencies: '@heroui/system': '>=2.4.7' @@ -3359,28 +1671,8 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.6(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/tooltip': 3.8.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tooltip': 3.5.2(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/tooltip': 3.4.15(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/tooltip@2.2.15-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/tooltip@2.2.15-beta.1': resolution: {integrity: sha512-sNAt5JgdANXt7SyXQWjgj1+YM9VHnpK9Snf4AZ5Lri/xdLikqdfN/cBbkgbgdpLRBPEbC3i+PW8+rTpT5n91aQ==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' @@ -3388,1141 +1680,593 @@ packages: framer-motion: '>=11.5.6 || >=12.0.0-alpha.1' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.23.12) - '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/tooltip': 3.8.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tooltip': 3.5.2(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/tooltip': 3.4.15(react@19.1.1) - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/use-aria-accordion@2.2.10-beta.0(react-dom@19.1.1)(react@19.1.1): + + '@heroui/use-aria-accordion@2.2.10-beta.0': resolution: {integrity: sha512-nRYLxJ+8brcE5o0Iq7z4IJ91lY1wg7kKkYKGiqY2Fzn3udfryGpAdEYl7voyzI1Wbz98gc8bJekP4NXZMkVkOw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/button': 3.12.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.23.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tree': 3.8.8(react@19.1.1) - '@react-types/accordion': 3.0.0-alpha.26(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-aria-accordion@2.2.8(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-accordion@2.2.8': resolution: {integrity: sha512-MM1waESUcCjaTWUvBxUdw3KHM75q9n5QfCGoDZpekIisMqytZnMsrRQd+OCJLZ3zKrmQQRFlPswpE77WAJvrsQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/button': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.23.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tree': 3.8.8(react@19.1.1) - '@react-types/accordion': 3.0.0-alpha.26(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-aria-button@2.2.10(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-button@2.2.10': resolution: {integrity: sha512-HnE2ldvKruhzHgI4rR3blUGV8a4kEyGh2OUI7dPg7/QqIfze1tg/o7FMsPnBL6td2qMbEsb53AVv4jcRVa7Z/g==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.7 - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-aria-button@2.2.12-beta.1(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-button@2.2.12-beta.1': resolution: {integrity: sha512-YMGRtw5uFwJPXuCMzP40GOZV8JYQdjw/htQ/fgc3le+vOOKWWDQN3hJ0hVndotAT93o7qiuhhAOgkcrNjXmAyg==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.9-beta.1 - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-aria-button@2.2.18(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-z2Z2WQSRYG8k23tEzD/+4PueY3Tuk14Ovt74pqW9+zRKffloPEqmj3txGq9Ja5lUQpz22TWR0dtvbxwITJHf6Q==} + '@heroui/use-aria-button@2.2.16': + resolution: {integrity: sha512-VR256E9OhUBnAP+vwfaL1HmJr7AzgSL5qP+OpvmjTnt6Ta1YcKEYkVf1unsfeOrR5Lj1KuQ0eA8McTdn/JwgsA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-aria-link@2.2.11(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-link@2.2.11': resolution: {integrity: sha512-fxALFX1rI1BrcVUsTpZpc7kwy678K+rM5u+TXUyNSxdA1NvGjNG9scBIVJkVDttxxFZhdvaWRSsHJE8u/R3p5Q==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.7 - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/link': 3.5.11(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-aria-link@2.2.13-beta.1(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-link@2.2.13-beta.1': resolution: {integrity: sha512-DTQ8xjoT8Nlscv/xMDr6MWOziQX4tQzenhmF3l+FrhtWk/oBOtvNM4zdetdVlqXKpLREjdSFw+Vj3DWZYYBA6w==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.9-beta.1 - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/link': 3.5.11(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-aria-modal-overlay@2.2.11-beta.0(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-modal-overlay@2.2.11-beta.0': resolution: {integrity: sha512-c8NnGcDHF57/3VScgDGFb8tELHznQLoDz3SAYlv39eH6swDTSWN2rfvNkGlxLEHSW+dWyPsYvRdepBgrlu20Og==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/use-aria-modal-overlay@2.2.9(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-modal-overlay@2.2.9': resolution: {integrity: sha512-NwyvmPaIGqKM83u5W/5U6+27sHHaZczzIydG0zSN74FeiHENUG2DMBx/uzZN47uedVaGGXhPsB4r3L+QF4fI5A==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/use-aria-multiselect@2.4.11-beta.0(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-aria-multiselect@2.4.11-beta.0': resolution: {integrity: sha512-XP3GN2oeYTOMAgTza6Ztc4PKSjaiCVkvrILw1cp4rXGXXFATERWQE5JFs6CGXEoPXK2dyUolIl6QUMrXmEmcrQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.16(react-dom@19.1.1)(react@19.1.1) - '@react-aria/listbox': 3.14.2(react-dom@19.1.1)(react@19.1.1) - '@react-aria/menu': 3.18.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.23.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.1.2(react@19.1.1) - '@react-stately/list': 3.12.0(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/select': 3.9.10(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/use-aria-multiselect@2.4.9(react-dom@19.1.1)(react@19.1.1): + + '@heroui/use-aria-multiselect@2.4.9': resolution: {integrity: sha512-bYNeB+63kWEI49hpEbfzUxpO0Zsg5tBRz13zFwkMR1SstRyHVCU8vCtdmPeRCpeUbQiyXTVkxaL/nAdRuq7HOw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.15(react-dom@19.1.1)(react@19.1.1) - '@react-aria/listbox': 3.14.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/menu': 3.18.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.23.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.1.2(react@19.1.1) - '@react-stately/list': 3.12.0(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/select': 3.9.10(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/use-aria-overlay@2.0.2(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-pujpue203ii/FukApYGfkeTrT1i80t77SUPR7u1er3dkRCUruksvr1AiPQlsUec1UkIpe/jkXpG3Yb+DldsjRg==} - peerDependencies: - react: '>=18' - react-dom: '>=18' - dependencies: - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@heroui/use-callback-ref@2.1.6(react@19.1.1): + '@heroui/use-callback-ref@2.1.6': resolution: {integrity: sha512-icFp4WBWTZhypBcyu+5kir7nZLtvtQq7DDvGwkTtxsGnFHgGDc6sXXcOU6AcCdoGefmsiVp5c3D3lZ2pMlGHmA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - react: 19.1.1 - dev: false - /@heroui/use-callback-ref@2.1.8(react@19.1.1): - resolution: {integrity: sha512-D1JDo9YyFAprYpLID97xxQvf86NvyWLay30BeVVZT9kWmar6O9MbCRc7ACi7Ngko60beonj6+amTWkTm7QuY/Q==} + '@heroui/use-callback-ref@2.1.7': + resolution: {integrity: sha512-AKMb+zV8um9y7gnsPgmVPm5WRx0oJc/3XU+banr8qla27+3HhnQZVqk3nlSHIplkseQzMRt3xHj5RPnwKbs71w==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/use-safe-layout-effect': 2.1.8(react@19.1.1) - react: 19.1.1 - dev: false - /@heroui/use-callback-ref@2.1.8-beta.1(react@19.1.1): + '@heroui/use-callback-ref@2.1.8-beta.1': resolution: {integrity: sha512-gWQIlIY14TlRlW08GieIIP0Fk7CpMERmDL6hLn7ZuIqHYq+Gke2vYZ7/lvd4MIfk8k2MRaDTY7hSQdCR6kuIVA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - react: 19.1.1 - dev: false - /@heroui/use-clipboard@2.1.7(react@19.1.1): + '@heroui/use-clipboard@2.1.7': resolution: {integrity: sha512-Nt/ILhHovvYpoRjhqbbyz9sPI5xquvsSU/UuZ4qE8xFrsI8ukJo9znI1mW5eeNUlY9EOjz6HWdYU1B6QyLR3hg==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-clipboard@2.1.9-beta.1(react@19.1.1): + '@heroui/use-clipboard@2.1.9-beta.1': resolution: {integrity: sha512-lPFz3EZfwof2DFvNhyjJWAn1OjEEQxhIncKPRM6GzV8sh051l4x8DpF3RrSheMKUzoluTZlpFdy0SMAMJZSktA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-data-scroll-overflow@2.2.11(react@19.1.1): - resolution: {integrity: sha512-5H7Q31Ub+O7GygbuaNFrItB4VVLGg2wjr4lXD2o414TgfnaSNPNc0Fb6E6A6m0/f6u7fpf98YURoDx+LFkkroA==} + '@heroui/use-data-scroll-overflow@2.2.10': + resolution: {integrity: sha512-Lza9S7ZWhY3PliahSgDRubrpeT7gnySH67GSTrGQMzYggTDMo2I1Pky7ZaHUnHHYB9Y7WHryB26ayWBOgRtZUQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.10 - react: 19.1.1 - dev: false - /@heroui/use-data-scroll-overflow@2.2.7(react@19.1.1): + '@heroui/use-data-scroll-overflow@2.2.7': resolution: {integrity: sha512-+XPWShncxvPt+wSz5wXIP1GRws6mZs5QoHHG9n0agPL3eYiE0dHeEVYmfLQCopYhnnTA3HRcTkRKQ6pNR4oVQQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.7 - react: 19.1.1 - dev: false - /@heroui/use-data-scroll-overflow@2.2.9-beta.1(react@19.1.1): + '@heroui/use-data-scroll-overflow@2.2.9-beta.1': resolution: {integrity: sha512-hzEz3t9F5fxzuKuFc9fKyfrbaz/4HLRYwKPrwxPeZ1X9GM9BuARkbYEjPk5dd06V6h2gUNTTOAz15+aKErpuOQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.9-beta.1 - react: 19.1.1 - dev: false - /@heroui/use-disclosure@2.2.10-beta.1(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-disclosure@2.2.10-beta.1': resolution: {integrity: sha512-6KVZdRySISohIBDWMBqlb0yu0WPJa2FJU1TJd8LP7K/S+60IMgEK2Q5jtuV9Xq5KESsLekdrIiV33iPz+6mvyA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/use-callback-ref': 2.1.8-beta.1(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-disclosure@2.2.8(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-disclosure@2.2.8': resolution: {integrity: sha512-GU/cH3si0na6QkWavvR/2LAqsmHQMKZ9Ed/5QsvMBxv5YPXb2fkxaU6KfIR2Jrr4UmQqi9Bi4aFy20eVyYfQUA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/use-callback-ref': 2.1.6(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-draggable@2.1.10-beta.0(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-draggable@2.1.10-beta.0': resolution: {integrity: sha512-84VSocQ0yU0SLa3CFPllYZImvm4SCoyR1beQ5vJp37R9NZJpyO6Iq58lGi/86dRAckJemJqKLGTtFEJMwHCVOw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-draggable@2.1.8(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-draggable@2.1.8': resolution: {integrity: sha512-lYh0kEPkWSZm0EIIS44eV2THTsGTfPHuZ+Pv+HsHVBnHK+loVUoMAd1lTh4ysRxzZ7mU/jgx88LlxxbKrDD7SQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-image@2.1.7(react@19.1.1): + '@heroui/use-image@2.1.7': resolution: {integrity: sha512-Cno8oXNo/3YDCRnCwSuJYgdsZ7mujjVWSwlYaoYbi+rM5o9TjZYRPYHZacHMABlbY+Hew31ddYpOmyw4SrkIwA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.1) - react: 19.1.1 - dev: false - /@heroui/use-image@2.1.9-beta.1(react@19.1.1): + '@heroui/use-image@2.1.9-beta.1': resolution: {integrity: sha512-oaPkmJMAnNhuIRGmtXCRyQ5n5HsyhZoXuj/9UpTtHecYcEEjwHAhlop3AmjQXyULs2xpqt4VrE6kq8LnEbJ5kw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.1) - react: 19.1.1 - dev: false - /@heroui/use-intersection-observer@2.2.10-beta.0(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-intersection-observer@2.2.10-beta.0': resolution: {integrity: sha512-WSK/+y4vajEhSO63xsZ/TW9ha9y5IVM6iuADU7tB0T5D/ZIVsSKx388+k+77HeuNtd7DhnHfMtCzuTPIoOcO/w==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/ssr': 3.9.7(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-intersection-observer@2.2.8(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-intersection-observer@2.2.8': resolution: {integrity: sha512-A9YQCS5UecgkdfGhxevHJRfdH9zZg4YpRlaOB3qrJIfjBupW+89IUSUsuS1UQEsoi14fK7f7QRGJDov+XBmgBA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/ssr': 3.9.7(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.28.0(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-is-mobile@2.2.7(react@19.1.1): + '@heroui/use-is-mobile@2.2.7': resolution: {integrity: sha512-aaQjvATBb09c4UzkcCaeZLqv5Sz0gtA1n07LxW+LJd2ENEYEuxNOWyO7dIAHaaYb3znX1ZxGC1h4cYLcN59nPA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/ssr': 3.9.7(react@19.1.1) - react: 19.1.1 - dev: false - /@heroui/use-is-mobile@2.2.9-beta.1(react@19.1.1): + '@heroui/use-is-mobile@2.2.9-beta.1': resolution: {integrity: sha512-ao1zIPKzzBKqSZ3bKtwg1v53vFrononSq/y4SY1VGtpxkwlgOzlQwGVMcxaxNfRGN8m4EuxoF5pJvOgSOYOJXw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@react-aria/ssr': 3.9.7(react@19.1.1) - react: 19.1.1 - dev: false - /@heroui/use-is-mounted@2.1.6(react@19.1.1): + '@heroui/use-is-mounted@2.1.6': resolution: {integrity: sha512-dnTX1PUWGhIQJxszTScHgM9XxvYIx9j8vnSJuVGaptJonZWlt50yI/WAi+oWXJ289rw7XBDJ8o38qmU5Pmq+WA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-is-mounted@2.1.8-beta.1(react@19.1.1): + '@heroui/use-is-mounted@2.1.8-beta.1': resolution: {integrity: sha512-JP4OW+JAbTlqGNQ9E5docQlo0LL9gaEx9K3+SNvGGMK+IFwANY9GIK1ZE3mWh5Rrwj84cze6u4WQdFptDQAwZw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-measure@2.1.6(react@19.1.1): + '@heroui/use-measure@2.1.6': resolution: {integrity: sha512-FiN3Za6hExqU1B0d2drCm9JUFneQ1W5gyNoX0owf3aIWG98QR+LR1MOL3WBAGWtDsp4K6q8rqUKXatNxGJd/sA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-measure@2.1.8(react@19.1.1): - resolution: {integrity: sha512-GjT9tIgluqYMZWfAX6+FFdRQBqyHeuqUMGzAXMTH9kBXHU0U5C5XU2c8WFORkNDoZIg1h13h1QdV+Vy4LE1dEA==} + '@heroui/use-measure@2.1.7': + resolution: {integrity: sha512-H586tr/bOH08MAufeiT35E1QmF8SPQy5Ghmat1Bb+vh/6KZ5S0K0o95BE2to7sXE9UCJWa7nDFuizXAGbveSiA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-measure@2.1.8-beta.1(react@19.1.1): + '@heroui/use-measure@2.1.8-beta.1': resolution: {integrity: sha512-wUl7kq+EiBQiC2k/xaRpXPaUp633Kffy5/VWuLn0nAhonJhAf14yyEWKgVXWpe31AU1fveO06kcZyixgmXRDHw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-pagination@2.2.11-beta.1(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-pagination@2.2.11-beta.1': resolution: {integrity: sha512-T7iyeU7KksrfQwZLBP3bOkVCDUciZSm81GuSVg3ae1LY4FenBmibQfIy6X9iLNZNUou26kO0Pb3sqL5C+n+L7w==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.9-beta.1 - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-pagination@2.2.9(react-dom@19.1.1)(react@19.1.1): + '@heroui/use-pagination@2.2.9': resolution: {integrity: sha512-5walu5+b9i/8Nsv5xNFIRh9Cdqk+8ZJIBTNqAtXeJnRjvdPJ+kZteiIJkDOHbsMdWJXBlekNOjuoDlcvLKNeHg==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/shared-utils': 2.1.7 - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - transitivePeerDependencies: - - react-dom - dev: false - /@heroui/use-safe-layout-effect@2.1.6(react@19.1.1): + '@heroui/use-safe-layout-effect@2.1.6': resolution: {integrity: sha512-yLT6zrlcZGJX4KKenzvR6lPS42Lf/Q0Q8ErpufLSkTdX4uk/ThGB/CRwdXfP+TPFLIfjXdsgCHgZr2ZAQJaG5Q==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-safe-layout-effect@2.1.8(react@19.1.1): - resolution: {integrity: sha512-wbnZxVWCYqk10XRMu0veSOiVsEnLcmGUmJiapqgaz0fF8XcpSScmqjTSoWjHIEWaHjQZ6xr+oscD761D6QJN+Q==} + '@heroui/use-safe-layout-effect@2.1.7': + resolution: {integrity: sha512-ZiMc+nVjcE5aArC4PEmnLHSJj0WgAXq3udr7FZaosP/jrRdn5VPcfF9z9cIGNJD6MkZp+YP0XGslrIFKZww0Hw==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-safe-layout-effect@2.1.8-beta.1(react@19.1.1): + '@heroui/use-safe-layout-effect@2.1.8-beta.1': resolution: {integrity: sha512-GcJi4L3PSNgsRwvo9Qjpw4OXVoI1e2QNLKc9b0W11zf1A0UVi6hMwZ4vM+84tFUNPumEbpmd8PQZbdY9e1GtaA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-scroll-position@2.1.6(react@19.1.1): + '@heroui/use-scroll-position@2.1.6': resolution: {integrity: sha512-9ap2AIuPjJCGLt7ZZAQqSE7s9Md1lUqnmxXf6UhKH0CJowhVHIl76gtV2rMeQZ+vsjbG3d4tsX2Vw13h+HLpuA==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-scroll-position@2.1.8-beta.1(react@19.1.1): + '@heroui/use-scroll-position@2.1.8-beta.1': resolution: {integrity: sha512-QYuphi00YNZcPod+biYO0SndFH0dUynkot7xz6+MEb2APd1xXmYlL+hMLsq0DwuWLu+ap0Qdp/PwJTAGIV5/Pg==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-update-effect@2.1.6(react@19.1.1): + '@heroui/use-update-effect@2.1.6': resolution: {integrity: sha512-nGSaIngKPuutmQcfZgnMHGYXJDqo6sPjdIIFjb5vutEnc827Xyh5f4q8hXfo7huYYYzA1CqLaThNVFCf3qIwHg==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/use-update-effect@2.1.8-beta.1(react@19.1.1): + '@heroui/use-update-effect@2.1.8-beta.1': resolution: {integrity: sha512-9nbdjuQxaVD53jgW4z4QeabeZJGgVdcqnIE0FIpybBWmYj6FRm7caJdqxCz6OxeG5k84OHVpl0XT07bm3SVZsQ==} peerDependencies: react: '>=18 || >=19.0.0-rc.0' - dependencies: - react: 19.1.1 - dev: false - /@heroui/user@2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + '@heroui/user@2.2.12': resolution: {integrity: sha512-64E9tAI5Nm4L+Em953fYD5u5OXfLh8U2/ZlT48iKgWe8PMQ2X1qAu/1WmWXSPDDC8RyW0O1nWr44JbtX75v/5g==} peerDependencies: '@heroui/system': '>=2.4.7' '@heroui/theme': '>=2.4.6' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/avatar': 2.2.12(@heroui/system@2.4.12)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.8(react@19.1.1) - '@heroui/shared-utils': 2.1.7 - '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@heroui/user@2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1): + + '@heroui/user@2.2.14-beta.1': resolution: {integrity: sha512-MNuqdtAVUnGM3RoJt4NDRp1g3RZkREhxPqzxs0eocBezRig0B++ac2mfad6B+ty6/Gkg/Kt73yuvS2X8r/fp6A==} peerDependencies: '@heroui/system': '>=2.4.14-beta.0' '@heroui/theme': '>=2.4.14-beta.0' react: '>=18 || >=19.0.0-rc.0' react-dom: '>=18 || >=19.0.0-rc.0' - dependencies: - '@heroui/avatar': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1)(@heroui/theme@2.4.14-beta.1)(react-dom@19.1.1)(react@19.1.1) - '@heroui/react-utils': 2.1.10-beta.1(react@19.1.1) - '@heroui/shared-utils': 2.1.9-beta.1 - '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1)(framer-motion@12.23.12)(react-dom@19.1.1)(react@19.1.1) - '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.12) - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@hookform/resolvers@5.2.1(react-hook-form@7.62.0): - resolution: {integrity: sha512-u0+6X58gkjMcxur1wRWokA7XsiiBJ6aK17aPZxhkoYiK5J+HcTx0Vhu9ovXe6H+dVpO6cjrn2FkJTryXEMlryQ==} + '@hookform/resolvers@5.0.1': + resolution: {integrity: sha512-u/+Jp83luQNx9AdyW2fIPGY6Y7NG68eN2ZW8FOJYL+M0i4s49+refdJdOp/A9n9HFQtQs3HIDHQvX3ZET2o7YA==} peerDependencies: react-hook-form: ^7.55.0 - dependencies: - '@standard-schema/utils': 0.3.0 - react-hook-form: 7.62.0(react@19.1.1) - dev: false - /@humanfs/core@0.19.1: + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - /@humanfs/node@0.16.6: + '@humanfs/node@0.16.6': resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - /@humanwhocodes/module-importer@1.0.1: + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - /@humanwhocodes/retry@0.3.1: + '@humanwhocodes/retry@0.3.1': resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - /@humanwhocodes/retry@0.4.3: - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} - /@iconify/react@6.0.0(react@19.1.1): + '@iconify/react@6.0.0': resolution: {integrity: sha512-eqNscABVZS8eCpZLU/L5F5UokMS9mnCf56iS1nM9YYHdH8ZxqZL9zyjSwW60IOQFsXZkilbBiv+1paMXBhSQnw==} peerDependencies: react: '>=16' - dependencies: - '@iconify/types': 2.0.0 - react: 19.1.1 - dev: false - /@iconify/types@2.0.0: + '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - dev: false - /@iconify/utils@2.3.0: + '@iconify/utils@2.3.0': resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - dependencies: - '@antfu/install-pkg': 1.1.0 - '@antfu/utils': 8.1.1 - '@iconify/types': 2.0.0 - debug: 4.4.1 - globals: 15.15.0 - kolorist: 1.8.0 - local-pkg: 1.1.2 - mlly: 1.7.4 - transitivePeerDependencies: - - supports-color - dev: false - /@img/sharp-darwin-arm64@0.33.5: + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 - dev: false - optional: true - /@img/sharp-darwin-arm64@0.34.3: - resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} + '@img/sharp-darwin-arm64@0.34.2': + resolution: {integrity: sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.0 - dev: false - optional: true - /@img/sharp-darwin-x64@0.33.5: + '@img/sharp-darwin-x64@0.33.5': resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 - dev: false - optional: true - /@img/sharp-darwin-x64@0.34.3: - resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} + '@img/sharp-darwin-x64@0.34.2': + resolution: {integrity: sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.0 - dev: false - optional: true - /@img/sharp-libvips-darwin-arm64@1.0.4: + '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - dev: false - optional: true - /@img/sharp-libvips-darwin-arm64@1.2.0: - resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} + '@img/sharp-libvips-darwin-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} cpu: [arm64] os: [darwin] - dev: false - optional: true - /@img/sharp-libvips-darwin-x64@1.0.4: + '@img/sharp-libvips-darwin-x64@1.0.4': resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - dev: false - optional: true - /@img/sharp-libvips-darwin-x64@1.2.0: - resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} + '@img/sharp-libvips-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} cpu: [x64] os: [darwin] - dev: false - optional: true - /@img/sharp-libvips-linux-arm64@1.0.4: + '@img/sharp-libvips-linux-arm64@1.0.4': resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-arm64@1.2.0: - resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} + '@img/sharp-libvips-linux-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} cpu: [arm64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-arm@1.0.5: + '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-arm@1.2.0: - resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} + '@img/sharp-libvips-linux-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} cpu: [arm] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-ppc64@1.2.0: - resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} cpu: [ppc64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-s390x@1.0.4: + '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-s390x@1.2.0: - resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} cpu: [s390x] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-x64@1.0.4: + '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linux-x64@1.2.0: - resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} + '@img/sharp-libvips-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} cpu: [x64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linuxmusl-arm64@1.0.4: + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linuxmusl-arm64@1.2.0: - resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} cpu: [arm64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linuxmusl-x64@1.0.4: + '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - dev: false - optional: true - /@img/sharp-libvips-linuxmusl-x64@1.2.0: - resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} cpu: [x64] os: [linux] - dev: false - optional: true - /@img/sharp-linux-arm64@0.33.5: + '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 - dev: false - optional: true - /@img/sharp-linux-arm64@0.34.3: - resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} + '@img/sharp-linux-arm64@0.34.2': + resolution: {integrity: sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.0 - dev: false - optional: true - /@img/sharp-linux-arm@0.33.5: + '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 - dev: false - optional: true - /@img/sharp-linux-arm@0.34.3: - resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} + '@img/sharp-linux-arm@0.34.2': + resolution: {integrity: sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.0 - dev: false - optional: true - - /@img/sharp-linux-ppc64@0.34.3: - resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.0 - dev: false - optional: true - /@img/sharp-linux-s390x@0.33.5: + '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 - dev: false - optional: true - /@img/sharp-linux-s390x@0.34.3: - resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} + '@img/sharp-linux-s390x@0.34.2': + resolution: {integrity: sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.0 - dev: false - optional: true - /@img/sharp-linux-x64@0.33.5: + '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 - dev: false - optional: true - /@img/sharp-linux-x64@0.34.3: - resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} + '@img/sharp-linux-x64@0.34.2': + resolution: {integrity: sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.0 - dev: false - optional: true - /@img/sharp-linuxmusl-arm64@0.33.5: + '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - dev: false - optional: true - /@img/sharp-linuxmusl-arm64@0.34.3: - resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} + '@img/sharp-linuxmusl-arm64@0.34.2': + resolution: {integrity: sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 - dev: false - optional: true - /@img/sharp-linuxmusl-x64@0.33.5: + '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - dev: false - optional: true - /@img/sharp-linuxmusl-x64@0.34.3: - resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} + '@img/sharp-linuxmusl-x64@0.34.2': + resolution: {integrity: sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 - dev: false - optional: true - /@img/sharp-wasm32@0.33.5: + '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - dependencies: - '@emnapi/runtime': 1.4.5 - dev: false - optional: true - /@img/sharp-wasm32@0.34.3: - resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} + '@img/sharp-wasm32@0.34.2': + resolution: {integrity: sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - dependencies: - '@emnapi/runtime': 1.4.5 - dev: false - optional: true - /@img/sharp-win32-arm64@0.34.3: - resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} + '@img/sharp-win32-arm64@0.34.2': + resolution: {integrity: sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] - dev: false - optional: true - /@img/sharp-win32-ia32@0.33.5: + '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - dev: false - optional: true - /@img/sharp-win32-ia32@0.34.3: - resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} + '@img/sharp-win32-ia32@0.34.2': + resolution: {integrity: sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - dev: false - optional: true - /@img/sharp-win32-x64@0.33.5: + '@img/sharp-win32-x64@0.33.5': resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] - dev: false - optional: true - /@img/sharp-win32-x64@0.34.3: - resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} + '@img/sharp-win32-x64@0.34.2': + resolution: {integrity: sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] - dev: false - optional: true - /@internationalized/date@3.7.0: + '@internationalized/date@3.7.0': resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} - dependencies: - '@swc/helpers': 0.5.17 - dev: false - /@internationalized/date@3.8.2: + '@internationalized/date@3.8.1': + resolution: {integrity: sha512-PgVE6B6eIZtzf9Gu5HvJxRK3ufUFz9DhspELuhW/N0GuMGMTLvPQNRkHP2hTuP9lblOk+f+1xi96sPiPXANXAA==} + + '@internationalized/date@3.8.2': resolution: {integrity: sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==} - dependencies: - '@swc/helpers': 0.5.17 - dev: false - /@internationalized/message@3.1.8: + '@internationalized/message@3.1.7': + resolution: {integrity: sha512-gLQlhEW4iO7DEFPf/U7IrIdA3UyLGS0opeqouaFwlMObLUzwexRjbygONHDVbC9G9oFLXsLyGKYkJwqXw/QADg==} + + '@internationalized/message@3.1.8': resolution: {integrity: sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==} - dependencies: - '@swc/helpers': 0.5.17 - intl-messageformat: 10.7.16 - dev: false - /@internationalized/number@3.6.4: - resolution: {integrity: sha512-P+/h+RDaiX8EGt3shB9AYM1+QgkvHmJ5rKi4/59k4sg9g58k9rqsRW0WxRO7jCoHyvVbFRRFKmVTdFYdehrxHg==} - dependencies: - '@swc/helpers': 0.5.17 - dev: false + '@internationalized/number@3.6.1': + resolution: {integrity: sha512-UVsb4bCwbL944E0SX50CHFtWEeZ2uB5VozZ5yDXJdq6iPZsZO5p+bjVMZh2GxHf4Bs/7xtDCcPwEa2NU9DaG/g==} - /@internationalized/string@3.2.7: - resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} - dependencies: - '@swc/helpers': 0.5.17 - dev: false + '@internationalized/number@3.6.3': + resolution: {integrity: sha512-p+Zh1sb6EfrfVaS86jlHGQ9HA66fJhV9x5LiE5vCbZtXEHAuhcmUZUdZ4WrFpUBfNalr2OkAJI5AcKEQF+Lebw==} - /@isaacs/fs-minipass@4.0.1: - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - dependencies: - minipass: 7.1.2 - dev: false + '@internationalized/string@3.2.6': + resolution: {integrity: sha512-LR2lnM4urJta5/wYJVV7m8qk5DrMZmLRTuFhbQO5b9/sKLHgty6unQy1Li4+Su2DWydmB4aZdS5uxBRXIq2aAw==} - /@jridgewell/gen-mapping@0.3.13: - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@internationalized/string@3.2.7': + resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} - /@jridgewell/remapping@2.3.5: - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 - dev: false + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} - /@jridgewell/resolve-uri@3.1.2: + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - /@jridgewell/sourcemap-codec@1.5.5: - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} - /@jridgewell/trace-mapping@0.3.30: - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/source-map@0.3.10': + resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - /@mdx-js/loader@3.1.0(acorn@8.15.0): + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + + '@mdx-js/loader@3.1.0': resolution: {integrity: sha512-xU/lwKdOyfXtQGqn3VnJjlDrmKXEvMi1mgYxVmukEUtVycIz1nh7oQ40bKTd4cA7rLStqu0740pnhGYxGoqsCg==} peerDependencies: webpack: '>=5' peerDependenciesMeta: webpack: optional: true - dependencies: - '@mdx-js/mdx': 3.1.0(acorn@8.15.0) - source-map: 0.7.6 - transitivePeerDependencies: - - acorn - - supports-color - dev: false - /@mdx-js/mdx@3.1.0(acorn@8.15.0): + '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} - dependencies: - '@types/estree': 1.0.8 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdx': 2.0.13 - collapse-white-space: 2.1.0 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - estree-util-scope: 1.0.0 - estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 - markdown-extensions: 2.0.0 - recma-build-jsx: 1.0.0 - recma-jsx: 1.0.1(acorn@8.15.0) - recma-stringify: 1.0.0 - rehype-recma: 1.0.0 - remark-mdx: 3.1.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - source-map: 0.7.6 - unified: 11.0.5 - unist-util-position-from-estree: 2.0.0 - unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - acorn - - supports-color - dev: false - /@mdx-js/react@3.1.0(@types/react@19.1.10)(react@19.1.1): + '@mdx-js/react@3.1.0': resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} peerDependencies: '@types/react': '>=16' react: '>=16' - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@mermaid-js/parser@0.6.2: - resolution: {integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==} - dependencies: - langium: 3.3.1 - dev: false + '@mermaid-js/parser@0.4.0': + resolution: {integrity: sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==} - /@microsoft/fetch-event-source@2.0.1: + '@microsoft/fetch-event-source@2.0.1': resolution: {integrity: sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==} - dev: false - /@napi-rs/wasm-runtime@0.2.12: - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@tybys/wasm-util': 0.10.0 - dev: false - optional: true + '@napi-rs/wasm-runtime@0.2.9': + resolution: {integrity: sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==} - /@next/bundle-analyzer@15.5.0: - resolution: {integrity: sha512-6pSHKzl4lcxqgmdNGXeVShYBBJuJkgXIx8cP15XtdzPtFn/ZllDI8b/2OqtU0HDPcsq53yMq1hjUBze1GoSKXQ==} - dependencies: - webpack-bundle-analyzer: 4.10.1 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false + '@next/bundle-analyzer@15.3.1': + resolution: {integrity: sha512-NqUZrjVruGbdQaPE3OSEXP+ZuULqumeHVTuU9pOX1V0/9BWY9FOck3jgQGFdBtG41nOYuO8+CoHKDQAVIPQJrw==} - /@next/env@15.3.3: + '@next/env@15.3.3': resolution: {integrity: sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==} - dev: false - /@next/eslint-plugin-next@15.5.0: - resolution: {integrity: sha512-+k83U/fST66eQBjTltX2T9qUYd43ntAe+NZ5qeZVTQyTiFiHvTLtkpLKug4AnZAtuI/lwz5tl/4QDJymjVkybg==} - dependencies: - fast-glob: 3.3.1 - dev: false + '@next/eslint-plugin-next@15.3.1': + resolution: {integrity: sha512-oEs4dsfM6iyER3jTzMm4kDSbrQJq8wZw5fmT6fg2V3SMo+kgG+cShzLfEV20senZzv8VF+puNLheiGPlBGsv2A==} - /@next/mdx@15.5.0(@mdx-js/loader@3.1.0)(@mdx-js/react@3.1.0): - resolution: {integrity: sha512-TxfWpIDHx9Xy/GgZwegrl+HxjzeQml0bTclxX72SqJLi83IhJaFiglQbfMTotB2hDRbxCGKpPYh0X20+r1Trtw==} + '@next/eslint-plugin-next@15.3.4': + resolution: {integrity: sha512-lBxYdj7TI8phbJcLSAqDt57nIcobEign5NYIKCiy0hXQhrUbTqLqOaSDi568U6vFg4hJfBdZYsG4iP/uKhCqgg==} + + '@next/mdx@15.3.3': + resolution: {integrity: sha512-kJI7E/353vsoGa2usU/P36gDSA0iVc9xqJFFiPgLrSgWlivkANTRXjrnNVmVpHZ6ETmiZP52fMuKwmT9/FSmNQ==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -4531,140 +2275,378 @@ packages: optional: true '@mdx-js/react': optional: true - dependencies: - '@mdx-js/loader': 3.1.0(acorn@8.15.0) - '@mdx-js/react': 3.1.0(@types/react@19.1.10)(react@19.1.1) - source-map: 0.7.6 - dev: false - /@next/swc-darwin-arm64@15.3.3: + '@next/swc-darwin-arm64@15.3.3': resolution: {integrity: sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - dev: false - optional: true - /@next/swc-darwin-x64@15.3.3: + '@next/swc-darwin-x64@15.3.3': resolution: {integrity: sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - dev: false - optional: true - /@next/swc-linux-arm64-gnu@15.3.3: + '@next/swc-linux-arm64-gnu@15.3.3': resolution: {integrity: sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - dev: false - optional: true - /@next/swc-linux-arm64-musl@15.3.3: + '@next/swc-linux-arm64-musl@15.3.3': resolution: {integrity: sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - dev: false - optional: true - /@next/swc-linux-x64-gnu@15.3.3: + '@next/swc-linux-x64-gnu@15.3.3': resolution: {integrity: sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - dev: false - optional: true - /@next/swc-linux-x64-musl@15.3.3: + '@next/swc-linux-x64-musl@15.3.3': resolution: {integrity: sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - dev: false - optional: true - /@next/swc-win32-arm64-msvc@15.3.3: + '@next/swc-win32-arm64-msvc@15.3.3': resolution: {integrity: sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - dev: false - optional: true - /@next/swc-win32-x64-msvc@15.3.3: + '@next/swc-win32-x64-msvc@15.3.3': resolution: {integrity: sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - dev: false - optional: true - /@next/third-parties@15.5.0(next@15.3.3)(react@19.1.1): - resolution: {integrity: sha512-ipIPqATdgJYLIpxHms5xhA4J5xKaL5N9VZlRBsAh8VUGec+X6qoMLtNtuGgC7llQ/I5gjvT9IoguP/BUfE27jg==} + '@next/third-parties@15.4.4': + resolution: {integrity: sha512-0GIEDSxfl9hTU4Ne1TVr/lZUS1wGhDPB4gt6TNvLBA3Fioum+qZRoPt3fiOW9hHQynyLsojglRDaB97T92h0Og==} peerDependencies: next: ^13.0.0 || ^14.0.0 || ^15.0.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - dependencies: - next: 15.3.3(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - third-party-capital: 1.0.20 - dev: false - /@nodelib/fs.scandir@2.1.5: + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - /@nolyfill/is-core-module@1.0.39: + '@nolyfill/is-core-module@1.0.39': resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - dev: false - /@polka/url@1.0.0-next.29: + '@opentelemetry/api-logs@0.203.0': + resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api-logs@0.57.2': + resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} + engines: {node: '>=14'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/instrumentation-amqplib@0.50.0': + resolution: {integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-connect@0.47.0': + resolution: {integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-dataloader@0.21.0': + resolution: {integrity: sha512-Xu4CZ1bfhdkV3G6iVHFgKTgHx8GbKSqrTU01kcIJRGHpowVnyOPEv1CW5ow+9GU2X4Eki8zoNuVUenFc3RluxQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-express@0.52.0': + resolution: {integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-fs@0.23.0': + resolution: {integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-generic-pool@0.47.0': + resolution: {integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-graphql@0.51.0': + resolution: {integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-hapi@0.50.0': + resolution: {integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-http@0.203.0': + resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-ioredis@0.51.0': + resolution: {integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-kafkajs@0.12.0': + resolution: {integrity: sha512-bIe4aSAAxytp88nzBstgr6M7ZiEpW6/D1/SuKXdxxuprf18taVvFL2H5BDNGZ7A14K27haHqzYqtCTqFXHZOYg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-knex@0.48.0': + resolution: {integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-koa@0.51.0': + resolution: {integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-lru-memoizer@0.48.0': + resolution: {integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongodb@0.56.0': + resolution: {integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongoose@0.50.0': + resolution: {integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql2@0.49.0': + resolution: {integrity: sha512-dCub9wc02mkJWNyHdVEZ7dvRzy295SmNJa+LrAJY2a/+tIiVBQqEAajFzKwp9zegVVnel9L+WORu34rGLQDzxA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql@0.49.0': + resolution: {integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pg@0.55.0': + resolution: {integrity: sha512-yfJ5bYE7CnkW/uNsnrwouG/FR7nmg09zdk2MSs7k0ZOMkDDAE3WBGpVFFApGgNu2U+gtzLgEzOQG4I/X+60hXw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-redis@0.51.0': + resolution: {integrity: sha512-uL/GtBA0u72YPPehwOvthAe+Wf8k3T+XQPBssJmTYl6fzuZjNq8zTfxVFhl9nRFjFVEe+CtiYNT0Q3AyqW1Z0A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-tedious@0.22.0': + resolution: {integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-undici@0.14.0': + resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.7.0 + + '@opentelemetry/instrumentation@0.203.0': + resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.57.2': + resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/redis-common@0.38.0': + resolution: {integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==} + engines: {node: ^18.19.0 || >=20.6.0} + + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.36.0': + resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} + engines: {node: '>=14'} + + '@opentelemetry/sql-common@0.41.0': + resolution: {integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.1.0 + + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + + '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - dev: false - /@popperjs/core@2.11.8: + '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - dev: false - /@radix-ui/number@1.1.1: + '@prisma/instrumentation@6.13.0': + resolution: {integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==} + peerDependencies: + '@opentelemetry/api': ^1.8 + + '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} - dev: false - /@radix-ui/primitive@1.0.0: + '@radix-ui/primitive@1.0.0': resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} - dependencies: - '@babel/runtime': 7.28.3 - dev: false - /@radix-ui/primitive@1.0.1: + '@radix-ui/primitive@1.0.1': resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} - dependencies: - '@babel/runtime': 7.28.3 - dev: false - /@radix-ui/primitive@1.1.3: - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - dev: false + '@radix-ui/primitive@1.1.2': + resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - /@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + '@radix-ui/react-accordion@1.2.8': + resolution: {integrity: sha512-c7OKBvO36PfQIUGIjj1Wko0hH937pYFU2tR5zbIJDUsmTzHoZVHHt4bmb7OOJbzTaWJtVELKWojBHa7OcnUHmQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4675,24 +2657,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} + + '@radix-ui/react-alert-dialog@1.1.11': + resolution: {integrity: sha512-4KfkwrFnAw3Y5Jeoq6G+JYSKW0JfIS3uDdFC/79Jw9AsMayZMizSSMxk1gkrolYXsa/WzbbDfOA7/D8N5D+l1g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4703,21 +2670,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + + '@radix-ui/react-arrow@1.1.4': + resolution: {integrity: sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4728,16 +2683,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==} + '@radix-ui/react-aspect-ratio@1.1.4': + resolution: {integrity: sha512-ie2mUDtM38LBqVU+Xn+GIY44tWM5yVbT5uXO+th85WZxUUsgEdWNNZWecqqGzkQ4Af+Fq1mYT6TyQ/uUf5gfcw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4748,16 +2696,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} + '@radix-ui/react-avatar@1.1.7': + resolution: {integrity: sha512-V7ODUt4mUoJTe3VUxZw6nfURxaPALVqmDQh501YmaQsk3D8AZQrOPRnfKn4H7JGDLBc0KqLhT94H79nV88ppNg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4768,20 +2709,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + '@radix-ui/react-checkbox@1.2.3': + resolution: {integrity: sha512-pHVzDYsnaDmBlAuwim45y3soIN8H4R7KbkSVirGhXO+R/kO2OLCe0eucUEbddaTcdMHHdzcIGHtZSMSQlA+apw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4792,23 +2722,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + + '@radix-ui/react-collapsible@1.1.8': + resolution: {integrity: sha512-hxEsLvK9WxIAPyxdDRULL4hcaSjMZCfP7fHB0Z1uUnDoDBat1Zh46hwYfa69DeZAbJrPckjf0AGAtEZyvDyJbw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4819,23 +2735,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + + '@radix-ui/react-collection@1.1.4': + resolution: {integrity: sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4846,27 +2748,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-compose-refs@1.0.0(react@19.1.1): + + '@radix-ui/react-compose-refs@1.0.0': resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - react: 19.1.1 - dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-compose-refs@1.0.1': resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -4874,13 +2762,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-compose-refs@1.1.2': resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': '*' @@ -4888,13 +2771,9 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==} + '@radix-ui/react-context-menu@2.2.12': + resolution: {integrity: sha512-5UFKuTMX8F2/KjHvyqu9IYT8bEtDSCJwwIx1PghBo4jh9S6jJVsceq9xIjqsOVcxsynGwV5eaqPE3n/Cu+DrSA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4905,29 +2784,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-context@1.0.0(react@19.1.1): + + '@radix-ui/react-context@1.0.0': resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - react: 19.1.1 - dev: false - /@radix-ui/react-context@1.0.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-context@1.0.1': resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -4935,13 +2798,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-context@1.1.2(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-context@1.1.2': resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': '*' @@ -4949,39 +2807,14 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-dialog@1.0.0(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-dialog@1.0.0': resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.1) - '@radix-ui/react-context': 1.0.0(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-focus-guards': 1.0.0(react@19.1.1) - '@radix-ui/react-focus-scope': 1.0.0(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.0.0(react@19.1.1) - '@radix-ui/react-portal': 1.0.0(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-presence': 1.0.0(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.0.0(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.0.0(react@19.1.1) - aria-hidden: 1.2.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.5.4(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - dev: false - /@radix-ui/react-dialog@1.0.4(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-dialog@1.0.4': resolution: {integrity: sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg==} peerDependencies: '@types/react': '*' @@ -4993,30 +2826,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.0.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - aria-hidden: 1.2.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.5.5(@types/react@19.1.10)(react@19.1.1) - dev: false - - /@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + + '@radix-ui/react-dialog@1.1.11': + resolution: {integrity: sha512-yI7S1ipkP5/+99qhSI6nthfo/tR6bL6Zgxi/+1UO6qPa6UeM6nlafWcQ65vB4rU2XjgjMfMhI3k9Y5MztA62VQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5027,28 +2839,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - aria-hidden: 1.2.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.10)(react@19.1.1) - dev: false - - /@radix-ui/react-direction@1.1.1(@types/react@19.1.10)(react@19.1.1): + + '@radix-ui/react-direction@1.1.1': resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' @@ -5056,28 +2848,14 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-dismissable-layer@1.0.0(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-dismissable-layer@1.0.0': resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.1) - '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.1) - '@radix-ui/react-use-escape-keydown': 1.0.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + + '@radix-ui/react-dismissable-layer@1.0.4': resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -5089,21 +2867,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + + '@radix-ui/react-dismissable-layer@1.1.7': + resolution: {integrity: sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5114,20 +2880,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + '@radix-ui/react-dropdown-menu@2.1.12': + resolution: {integrity: sha512-VJoMs+BWWE7YhzEQyVwvF9n22Eiyr83HotCVrMQzla/OwRovXCgah7AcaEr4hMNj4gJxSdtIbcHGvmJXOoJVHA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5138,30 +2893,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-focus-guards@1.0.0(react@19.1.1): + + '@radix-ui/react-focus-guards@1.0.0': resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - react: 19.1.1 - dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-focus-guards@1.0.1': resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -5169,40 +2907,23 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + '@radix-ui/react-focus-guards@1.1.2': + resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-focus-scope@1.0.0(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-focus-scope@1.0.0': resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.1) - '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-focus-scope@1.0.3': resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -5214,19 +2935,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + '@radix-ui/react-focus-scope@1.1.4': + resolution: {integrity: sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5237,18 +2948,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==} + '@radix-ui/react-hover-card@1.1.11': + resolution: {integrity: sha512-q9h9grUpGZKR3MNhtVCLVnPGmx1YnzBgGR+O40mhSNGsUnkR+LChVH8c7FB0mkS+oudhd8KAkZGTJPJCjdAPIg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5259,41 +2961,18 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-icons@1.3.2(react@19.1.1): + + '@radix-ui/react-icons@1.3.2': resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==} peerDependencies: react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc - dependencies: - react: 19.1.1 - dev: false - /@radix-ui/react-id@1.0.0(react@19.1.1): + '@radix-ui/react-id@1.0.0': resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.1) - react: 19.1.1 - dev: false - /@radix-ui/react-id@1.0.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-id@1.0.1': resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -5301,14 +2980,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-id@1.1.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-id@1.1.1': resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: '@types/react': '*' @@ -5316,14 +2989,9 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-label@2.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} + '@radix-ui/react-label@2.1.4': + resolution: {integrity: sha512-wy3dqizZnZVV4ja0FNnUhIWNwWdoldXrneEyUcVtLYDAt8ovGS4ridtMAOGgXBBIfggL4BOveVWsjXDORdGEQg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5334,16 +3002,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + '@radix-ui/react-menu@2.1.12': + resolution: {integrity: sha512-+qYq6LfbiGo97Zz9fioX83HCiIYYFNs8zAsVCMQrIakoNYylIzWuoD/anAD3UzvvR6cnswmfRFJFq/zYYq/k7Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5354,33 +3015,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - aria-hidden: 1.2.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.10)(react@19.1.1) - dev: false - - /@radix-ui/react-menubar@1.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==} + + '@radix-ui/react-menubar@1.1.12': + resolution: {integrity: sha512-bM2vT5nxRqJH/d1vFQ9jLsW4qR70yFQw2ZD1TUPWUNskDsV0eYeMbbNJqxNjGMOVogEkOJaHtu11kzYdTJvVJg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5391,25 +3028,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} + + '@radix-ui/react-navigation-menu@1.2.10': + resolution: {integrity: sha512-kGDqMVPj2SRB1vJmXN/jnhC66REAXNyDmDRubbbmJ+360zSIJUDmWGMKIJOf72PHMwPENrbtJVb3CMAUJDjEIA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5420,29 +3041,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + + '@radix-ui/react-popover@1.1.11': + resolution: {integrity: sha512-yFMfZkVA5G3GJnBgb2PxrrcLKm1ZLWXrbYVgdyTl//0TYEIHS9LJbnyz7WWcZ0qCq7hIlJZpRtxeSeIG5T5oJw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5453,30 +3054,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - aria-hidden: 1.2.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.10)(react@19.1.1) - dev: false - - /@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + + '@radix-ui/react-popper@1.2.4': + resolution: {integrity: sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5487,36 +3067,14 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/rect': 1.1.1 - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-portal@1.0.0(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-portal@1.0.0': resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-portal@1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-portal@1.0.3': resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -5528,17 +3086,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + '@radix-ui/react-portal@1.1.6': + resolution: {integrity: sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5549,29 +3099,14 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-presence@1.0.0(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-presence@1.0.0': resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-presence@1.0.1': resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -5583,18 +3118,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + '@radix-ui/react-presence@1.1.4': + resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5605,28 +3131,14 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-primitive@1.0.0(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-primitive@1.0.0': resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-slot': 1.0.0(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-primitive@1.0.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@radix-ui/react-primitive@1.0.3': resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -5638,17 +3150,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-slot': 1.0.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + '@radix-ui/react-primitive@2.1.0': + resolution: {integrity: sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5659,16 +3163,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==} + '@radix-ui/react-progress@1.1.4': + resolution: {integrity: sha512-8rl9w7lJdcVPor47Dhws9mUHRHLE+8JEgyJRdNWCpGPa6HIlr3eh+Yn9gyx1CnCLbw5naHsI2gaO9dBWO50vzw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5679,17 +3176,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} + '@radix-ui/react-radio-group@1.3.4': + resolution: {integrity: sha512-N4J9QFdW5zcJNxxY/zwTXBN4Uc5VEuRM7ZLjNfnWoKmNvgrPtNNw4P8zY532O3qL6aPkaNO+gY9y6bfzmH4U1g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5700,25 +3189,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + + '@radix-ui/react-roving-focus@1.1.7': + resolution: {integrity: sha512-C6oAg451/fQT3EGbWHbCQjYTtbyjNO1uzQgMzwyivcHT3GKNEmu1q3UuREhN+HzHAVtv3ivMVK08QlC+PkYw9Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5729,24 +3202,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + + '@radix-ui/react-scroll-area@1.2.6': + resolution: {integrity: sha512-lj8OMlpPERXrQIHlEQdlXHJoRT52AMpBrgyPYylOhXYq5e/glsEdtOc/kCQlsTdtgN5U0iDbrrolDadvektJGQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5757,24 +3215,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-select@2.2.6(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + + '@radix-ui/react-select@2.2.2': + resolution: {integrity: sha512-HjkVHtBkuq+r3zUAZ/CvNWUGKPfuicGDbgtZgiQuFmNcV5F+Tgy24ep2nsAW2nFgvhGPJVqeBZa6KyVN0EyrBA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5785,36 +3228,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - aria-hidden: 1.2.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.10)(react@19.1.1) - dev: false - - /@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} + + '@radix-ui/react-separator@1.1.4': + resolution: {integrity: sha512-2fTm6PSiUm8YPq9W0E4reYuv01EE3aFSzt8edBiXqPHshF8N9+Kymt/k0/R+F3dkY5lQyB/zPtrP82phskLi7w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5825,16 +3241,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-slider@1.3.6(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} + '@radix-ui/react-slider@1.3.2': + resolution: {integrity: sha512-oQnqfgSiYkxZ1MrF6672jw2/zZvpB+PJsrIc3Zm1zof1JHf/kj7WhmROw7JahLfOwYQ5/+Ip0rFORgF1tjSiaQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5845,35 +3254,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-slot@1.0.0(react@19.1.1): + + '@radix-ui/react-slot@1.0.0': resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.1) - react: 19.1.1 - dev: false - /@radix-ui/react-slot@1.0.2(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-slot@1.0.2': resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -5881,29 +3268,18 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-slot@1.2.3(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + '@radix-ui/react-slot@1.2.0': + resolution: {integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-switch@1.2.6(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} + '@radix-ui/react-switch@1.2.2': + resolution: {integrity: sha512-7Z8n6L+ifMIIYZ83f28qWSceUpkXuslI2FJ34+kDMTiyj91ENdpdQ7VCidrzj5JfwfZTeano/BnGBbu/jqa5rQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5914,22 +3290,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + + '@radix-ui/react-tabs@1.1.9': + resolution: {integrity: sha512-KIjtwciYvquiW/wAFkELZCVnaNLBsYNhTNcvl+zfMAbMhRkcvNuCLXDDd22L0j7tagpzVh/QwbFpwAATg7ILPw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5940,23 +3303,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==} + + '@radix-ui/react-toggle-group@1.1.7': + resolution: {integrity: sha512-GRaPJhxrRSOqAcmcX3MwRL/SZACkoYdmoY9/sg7Bd5DhBYsB2t4co0NxTvVW8H7jUmieQDQwRtUlZ5Ta8UbgJA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5967,22 +3316,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-toggle@1.1.10(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} + + '@radix-ui/react-toggle@1.1.6': + resolution: {integrity: sha512-3SeJxKeO3TO1zVw1Nl++Cp0krYk6zHDHMCUXXVkosIzl6Nxcvb07EerQpyD2wXQSJ5RZajrYAmPaydU8Hk1IyQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5993,18 +3329,9 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + '@radix-ui/react-tooltip@1.2.4': + resolution: {integrity: sha512-DyW8VVeeMSSLFvAmnVnCwvI3H+1tpJFHT50r+tdOoMse9XqYDBCcyux8u3G2y+LOpt7fPQ6KKH0mhs+ce1+Z5w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6015,35 +3342,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - - /@radix-ui/react-use-callback-ref@1.0.0(react@19.1.1): + + '@radix-ui/react-use-callback-ref@1.0.0': resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - react: 19.1.1 - dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-callback-ref@1.0.1': resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -6051,13 +3356,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-callback-ref@1.1.1': resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: '@types/react': '*' @@ -6065,22 +3365,13 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-controllable-state@1.0.0(react@19.1.1): + '@radix-ui/react-use-controllable-state@1.0.0': resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.1) - react: 19.1.1 - dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-controllable-state@1.0.1': resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -6088,14 +3379,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-controllable-state@1.2.2': resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: '@types/react': '*' @@ -6103,14 +3388,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-effect-event@0.0.2': resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: '@types/react': '*' @@ -6118,23 +3397,13 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-escape-keydown@1.0.0(react@19.1.1): + '@radix-ui/react-use-escape-keydown@1.0.0': resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.1) - react: 19.1.1 - dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-escape-keydown@1.0.3': resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -6142,14 +3411,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-escape-keydown@1.1.1': resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: '@types/react': '*' @@ -6157,13 +3420,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-is-hydrated@0.1.0': resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} peerDependencies: '@types/react': '*' @@ -6171,22 +3429,13 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - use-sync-external-store: 1.5.0(react@19.1.1) - dev: false - /@radix-ui/react-use-layout-effect@1.0.0(react@19.1.1): + '@radix-ui/react-use-layout-effect@1.0.0': resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.28.3 - react: 19.1.1 - dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-layout-effect@1.0.1': resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -6194,13 +3443,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.28.3 - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-layout-effect@1.1.1': resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: '@types/react': '*' @@ -6208,12 +3452,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-previous@1.1.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-previous@1.1.1': resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: '@types/react': '*' @@ -6221,12 +3461,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-rect@1.1.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-rect@1.1.1': resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: '@types/react': '*' @@ -6234,13 +3470,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@radix-ui/rect': 1.1.1 - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-use-size@1.1.1(@types/react@19.1.10)(react@19.1.1): + '@radix-ui/react-use-size@1.1.1': resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: '@types/react': '*' @@ -6248,14 +3479,9 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - react: 19.1.1 - dev: false - /@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + '@radix-ui/react-visually-hidden@1.2.0': + resolution: {integrity: sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6266,2316 +3492,1004 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@radix-ui/rect@1.1.1: + '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - dev: false - /@react-aria/breadcrumbs@3.5.22(react-dom@19.1.1)(react@19.1.1): + '@react-aria/breadcrumbs@3.5.22': resolution: {integrity: sha512-Jhx3eJqvuSUFL5/TzJ7EteluySdgKVkYGJ72Jz6AdEkiuoQAFbRZg4ferRIXQlmFL2cj7Z3jo8m8xGitebMtgw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/link': 3.8.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/breadcrumbs': 3.7.11(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/button@3.12.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/button@3.12.0': resolution: {integrity: sha512-obnK2vjQQdoOXMIPFy8PZSI8vET+LIeQeh3gjQfRcbtcVE6xT1drDARm6e36cunI2Up99e0yVBBWqqegNqKGQw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/toolbar': 3.0.0-beta.13(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.9.0(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/button@3.12.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/button@3.12.1': resolution: {integrity: sha512-IgCENCVUzjfI4nVgJ8T1z2oD81v3IO2Ku96jVljqZ/PWnFACsRikfLeo8xAob3F0LkRW4CTK4Tjy6BRDsy2l6A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/toolbar': 3.0.0-beta.14(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.9.0(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/calendar@3.7.2(react-dom@19.1.1)(react@19.1.1): + '@react-aria/calendar@3.7.2': resolution: {integrity: sha512-q16jWzBCoMoohOF75rJbqh+4xlKOhagPC96jsARZmaqWOEHpFYGK/1rH9steC5+Dqe7y1nipAoLRynm18rrt3w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/calendar': 3.7.1(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/calendar': 3.6.1(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/calendar@3.9.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-YxHLqL/LZrgwYGKzlQ96Fgt6gC+Q1L8k56sD51jJAtiD+YtT/pKJfK1zjZ3rtHtPTDYzosJ8vFgOmZNpnKQpXQ==} + '@react-aria/calendar@3.8.3': + resolution: {integrity: sha512-1TAZADcWbfznXzo4oJEqFgX4IE1chZjWsTSJDWr03UEx3XqIJI8GXm+ylOQUiN4j8xqZ7tl4yNuuslKkzoSjMQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/calendar': 3.8.3(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/calendar': 3.7.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/checkbox@3.15.2(react-dom@19.1.1)(react@19.1.1): + '@react-aria/checkbox@3.15.2': resolution: {integrity: sha512-vJf91ToLN+BHfJUbulKBxN2POB7XzIb/3whF+fSk6wSld2vtFjQ80SQfz5HktYG/Af5VccxyCg70dp4moLvsTw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/toggle': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/checkbox': 3.6.12(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/checkbox@3.15.3(react-dom@19.1.1)(react@19.1.1): + '@react-aria/checkbox@3.15.3': resolution: {integrity: sha512-/m5JYoGsi5L0NZnacgqEcMqBo6CcTmsJ9nAY/07MDCUJBcL/Xokd8cL/1K21n6K69MiCPcxORbSBdxJDm9dR0A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/toggle': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/checkbox': 3.6.12(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/checkbox@3.16.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-XPaMz1/iVBG6EbJOPYlNtvr+q4f0axJeoIvyzWW3ciIdDSX/3jYuFg/sv/b3OQQl389cbQ/WUBQyWre/uXWVEg==} + '@react-aria/checkbox@3.15.4': + resolution: {integrity: sha512-ZkDJFs2EfMBXVIpBSo4ouB+NXyr2LRgZNp2x8/v+7n3aTmMU8j2PzT+Ra2geTQbC0glMP7UrSg4qZblqrxEBcQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/toggle': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/checkbox': 3.7.0(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/toggle': 3.9.0(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/combobox@3.12.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/combobox@3.12.0': resolution: {integrity: sha512-p4WBfmtigEL+MwAKa4wdTnLl4kTnGvek/WjhUDdSF2vcRJi7NmvN4HwzgE4L4TcGISfbOc+OUh6jGemu1uV4lA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/listbox': 3.14.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/menu': 3.19.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/textfield': 3.18.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/combobox': 3.10.3(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/combobox': 3.13.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/combobox@3.12.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/combobox@3.12.1': resolution: {integrity: sha512-Al43cVQ2XiuPTCZ8jhz5Vmoj5Vqm6GADBtrL+XHZd7lM1gkD3q27GhKYiEt0jrcoBjjdqIiYWEaFLYg5LSQPzA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/listbox': 3.14.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/menu': 3.19.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/textfield': 3.18.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/combobox': 3.10.3(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/combobox': 3.13.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/datepicker@3.14.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/datepicker@3.14.1': resolution: {integrity: sha512-77HaB+dFaMu7OpDQqjDiyZdaJlkwMgQHjTRvplBVc3Pau1sfQ1LdFC4+ZAXSbQTVSYt6GaN9S2tL4qoc+bO05w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/number': 3.6.4 - '@internationalized/string': 3.2.7 - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/spinbutton': 3.6.17(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/datepicker': 3.13.0(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/calendar': 3.7.3(react@19.1.1) - '@react-types/datepicker': 3.11.0(react@19.1.1) - '@react-types/dialog': 3.5.20(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/datepicker@3.15.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-AONeLj7sMKz4JmzCu4bhsqwcNFXCSWoaBhi4wOJO9+WYmxudn5mSI9ez8NMCVn+s5kcYpyvzrrAFf/DvQ4UDgw==} + '@react-aria/datepicker@3.14.5': + resolution: {integrity: sha512-TeV/yXEOQ2QOYMxvetWcWUcZN83evmnmG/uSruTdk93e2nZzs227Gg/M95tzgCYRRACCzSzrGujJhNs12Nh7mg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/number': 3.6.4 - '@internationalized/string': 3.2.7 - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/spinbutton': 3.6.17(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/datepicker': 3.15.0(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/calendar': 3.7.3(react@19.1.1) - '@react-types/datepicker': 3.13.0(react@19.1.1) - '@react-types/dialog': 3.5.20(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/dialog@3.5.22(react-dom@19.1.1)(react@19.1.1): + '@react-aria/dialog@3.5.22': resolution: {integrity: sha512-mW1cnfy+mQUKXmyXD27z4S8Yvs1HCmum15yy76UNQv6KVFO26zVZ12jkT7pDeDl3YpR6hCeT+kD47j1lDDX/qg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/dialog': 3.5.20(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/dialog@3.5.23(react-dom@19.1.1)(react@19.1.1): + '@react-aria/dialog@3.5.23': resolution: {integrity: sha512-ud8b4G5vcFEZPEjzdXrjOadwRMBKBDLiok6lIl1rsPkd1qnLMFxsl3787kct1Ex0PVVKOPlcH7feFw+1T7NsLw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.26.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/dialog': 3.5.20(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/dialog@3.5.28(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-S9dgdFBQc9LbhyBiHwGPSATwtvsIl6h+UnxDJ4oKBSse+wxdAyshbZv2tyO5RFbe3k73SAgU7yKocfg7YyRM0A==} + '@react-aria/dialog@3.5.27': + resolution: {integrity: sha512-Sp8LWQQYNxkLk2+L0bdWmAd9fz1YIrzvxbHXmAn9Tn6+/4SPnQhkOo+qQwtHFbjqe9fyS7cJZxegXd1RegIFew==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/dialog': 3.5.20(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/focus@3.20.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/focus@3.20.0': resolution: {integrity: sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/focus@3.20.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/focus@3.20.1': resolution: {integrity: sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/focus@3.21.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==} + '@react-aria/focus@3.20.2': + resolution: {integrity: sha512-Q3rouk/rzoF/3TuH6FzoAIKrl+kzZi9LHmr8S5EqLAOyP9TXIKG34x2j42dZsAhrw7TbF9gA8tBKwnCNH4ZV+Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/focus@3.20.5': + resolution: {integrity: sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/form@3.0.13(react-dom@19.1.1)(react@19.1.1): + '@react-aria/form@3.0.13': resolution: {integrity: sha512-f7zoFMQYBRWhKFX14rlFjSUDbNAvNMLpWRKVP3O0rUYTxh95iF5tcfUk5+lxWkVfmVj8S4O8du0ccv/ZQjPsYg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/form@3.0.14(react-dom@19.1.1)(react@19.1.1): + '@react-aria/form@3.0.14': resolution: {integrity: sha512-UYoqdGetKV+4lwGnJ22sWKywobOWYBcOetiBYTlrrnCI6e5j1Jk5iLkLvesCOoI7yfWIW9Ban5Qpze5MUrXUhQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/form@3.1.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-aDAOZafrn0V8e09mDAtCvc+JnpnkFM9X8cbI5+fdXsXAA+JxO+3uRRfnJHBlIL0iLc4C4OVWxBxWToV95pg1KA==} + '@react-aria/form@3.0.15': + resolution: {integrity: sha512-kk8AnLz+EOgnn3sTaXYmtw+YzVDc1of/+xAkuOupQi6zQFnNRjc99JlDbKHoUZ39urMl+8lsp/1b9VPPhNrBNw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/grid@3.14.3(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-O4Ius5tJqKcMGfQT6IXD4MnEOeq6f/59nKmfCLTXMREFac/oxafqanUx3zrEVYbaqLOjEmONcd8S61ptQM6aPg==} + '@react-aria/form@3.0.18': + resolution: {integrity: sha512-e4Ktc3NiNwV5dz82zVE7lspYmKwAnGoJfOHgc9MApS7Fy/BEAuVUuLgTjMo1x5me7dY+ADxqrIhbOpifscGGoQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/grid': 3.11.4(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/grid': 3.3.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/i18n@3.12.11(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-1mxUinHbGJ6nJ/uSl62dl48vdZfWTBZePNF/wWQy98gR0qNFXLeusd7CsEmJT1971CR5i/WNYUo1ezNlIJnu6A==} + '@react-aria/grid@3.13.0': + resolution: {integrity: sha512-RcuJYA4fyJ83MH3SunU+P5BGkx3LJdQ6kxwqwWGIuI9eUKc7uVbqvN9WN3fI+L0QfxqBFmh7ffRxIdQn7puuzw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/i18n@3.12.10': + resolution: {integrity: sha512-1j00soQ2W0nTgzaaIsGFdMF/5aN60AEdCJPhmXGZiuWdWzMxObN9LQ9vdzYPTjTqyqMdSaSp9DZKs5I26Xovpw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/message': 3.1.8 - '@internationalized/number': 3.6.4 - '@internationalized/string': 3.2.7 - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/i18n@3.12.6(react-dom@19.1.1)(react@19.1.1): + '@react-aria/i18n@3.12.6': resolution: {integrity: sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/message': 3.1.8 - '@internationalized/number': 3.6.4 - '@internationalized/string': 3.2.7 - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/i18n@3.12.7(react-dom@19.1.1)(react@19.1.1): + '@react-aria/i18n@3.12.7': resolution: {integrity: sha512-eLbYO2xrpeOKIEmLv2KD5LFcB0wltFqS+pUjsOzkKZg6H3b6AFDmJPxr/a0x2KGHtpGJvuHwCSbpPi9PzSSQLg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/message': 3.1.8 - '@internationalized/number': 3.6.4 - '@internationalized/string': 3.2.7 - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/interactions@3.24.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/i18n@3.12.8': + resolution: {integrity: sha512-V/Nau9WuwTwxfFffQL4URyKyY2HhRlu9zmzkF2Hw/j5KmEQemD+9jfaLueG2CJu85lYL06JrZXUdnhZgKnqMkA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/interactions@3.24.0': resolution: {integrity: sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/interactions@3.24.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/interactions@3.24.1': resolution: {integrity: sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/interactions@3.25.4(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-HBQMxgUPHrW8V63u9uGgBymkMfj6vdWbB0GgUJY49K9mBKMsypcHeWkWM6+bF7kxRO728/IK8bWDV6whDbqjHg==} + '@react-aria/interactions@3.25.0': + resolution: {integrity: sha512-GgIsDLlO8rDU/nFn6DfsbP9rfnzhm8QFjZkB9K9+r+MTSCn7bMntiWQgMM+5O6BiA8d7C7x4zuN4bZtc0RBdXQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/interactions@3.25.3': + resolution: {integrity: sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/label@3.7.15(react-dom@19.1.1)(react@19.1.1): + '@react-aria/label@3.7.15': resolution: {integrity: sha512-jbSxijCLHdQ/HX0yyhrsY0ypZled5omAK7Eh+Z6vW0qpoqvM1rR/ChaoUje9tW5FmMDjafbt905RUxy0xnMQ1A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/label@3.7.16(react-dom@19.1.1)(react@19.1.1): + '@react-aria/label@3.7.16': resolution: {integrity: sha512-tPog3rc5pQ9s2/5bIBtmHtbj+Ebqs2yyJgJdFjZ1/HxrjF8HMrgtBPHCn/70YD5XvmuC3OSkua84kLjNX5rBbA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/label@3.7.20(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Hw7OsC2GBnjptyW1lC1+SNoSIZA0eIh02QnNDr1XX2S+BPfn958NxoI7sJIstO/TUpQVNqdjEN/NI6+cyuJE6g==} + '@react-aria/label@3.7.17': + resolution: {integrity: sha512-Fz7IC2LQT2Y/sAoV+gFEXoULtkznzmK2MmeTv5shTNjeTxzB1BhQbD4wyCypi7eGsnD/9Zy+8viULCsIUbvjWw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/landmark@3.0.5(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-klUgRGQyTv5qWFQ0EMMLBOLa87qSTGjWoiMvytL9EgJCACkn/OzNMPbqVSkMADvadDyWCMWFYWvfweLxl3T5yw==} + '@react-aria/label@3.7.19': + resolution: {integrity: sha512-ZJIj/BKf66q52idy24ErzX77vDGuyQn4neWtu51RRSk4npI3pJqEPsdkPCdo2dlBCo/Uc1pfuLGg2hY3N/ni9Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/landmark@3.0.2': + resolution: {integrity: sha512-KVXa9s3fSgo/PiUjdbnPh3a1yS4t2bMZeVBPPzYAgQ4wcU2WjuLkhviw+5GWSWRfT+jpIMV7R/cmyvr0UHvRfg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - use-sync-external-store: 1.5.0(react@19.1.1) - dev: false - /@react-aria/link@3.7.10(react-dom@19.1.1)(react@19.1.1): + '@react-aria/link@3.7.10': resolution: {integrity: sha512-prf7s7O1PHAtA+H2przeGr8Ig4cBjk1f0kO0bQQAC3QvVOOUO7WLNU/N+xgOMNkCKEazDl21QM1o0bDRQCcXZg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/link': 3.5.11(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/link@3.7.9(react-dom@19.1.1)(react@19.1.1): + '@react-aria/link@3.7.9': resolution: {integrity: sha512-2LE3p5Gqp1Tl/3JF4CmeJT3RsdDBawBaIMlqiOT7t505z1TZI8ygHHq5FFok8FMwpy2yxpqRNW9jDa3gZj575w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/link': 3.5.11(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/link@3.8.4(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-7cPRGIo7x6ZZv1dhp2xGjqLR1snazSQgl7tThrBDL5E8f6Yr7SVpxOOK5/EBmfpFkhkmmXEO/Fgo/GPJdc6Vmw==} + '@react-aria/link@3.8.0': + resolution: {integrity: sha512-gpDD6t3FqtFR9QjSIKNpmSR3tS4JG2anVKx2wixuRDHO6Ddexxv4SBzsE1+230p+FlFGjftFa2lEgQ7RNjZrmA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/link': 3.6.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/listbox@3.14.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/listbox@3.14.1': resolution: {integrity: sha512-4uiY7HG4ekF37wNX5hHEMhshkXrU1U4593LVNYjUZHizcB1ZahXzo/F0T3qpeNo+/j89ls8qhDHx/bGIWNj1aQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/list': 3.12.0(react@19.1.1) - '@react-types/listbox': 3.7.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/listbox@3.14.2(react-dom@19.1.1)(react@19.1.1): + '@react-aria/listbox@3.14.2': resolution: {integrity: sha512-pIwMNZs2WaH+XIax2yemI2CNs5LVV5ooVgEh7gTYoAVWj2eFa3Votmi54VlvkN937bhD5+blH32JRIu9U8XqVw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/list': 3.12.0(react@19.1.1) - '@react-types/listbox': 3.7.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/listbox@3.14.7(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-U5a+AIDblaeQTIA1MDFUaYIKoPwPNAuY7SwkuA5Z7ClDOeQJkiyExmAoKcUXwUkrLULQcbOPKr401q38IL3T7Q==} + '@react-aria/listbox@3.14.3': + resolution: {integrity: sha512-wzelam1KENUvKjsTq8gfrOW2/iab8SyIaSXfFvGmWW82XlDTlW+oQeA39tvOZktMVGspr+xp8FySY09rtz6UXw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/list': 3.12.4(react@19.1.1) - '@react-types/listbox': 3.7.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/live-announcer@3.4.4: - resolution: {integrity: sha512-PTTBIjNRnrdJOIRTDGNifY2d//kA7GUAwRFJNOEwSNG4FW+Bq9awqLiflw0JkpyB0VNIwou6lqKPHZVLsGWOXA==} - dependencies: - '@swc/helpers': 0.5.17 - dev: false + '@react-aria/live-announcer@3.4.2': + resolution: {integrity: sha512-6+yNF9ZrZ4YJ60Oxy2gKI4/xy6WUv1iePDCFJkgpNVuOEYi8W8czff8ctXu/RPB25OJx5v2sCw9VirRogTo2zA==} - /@react-aria/menu@3.18.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/live-announcer@3.4.3': + resolution: {integrity: sha512-nbBmx30tW53Vlbq3BbMxHGbHa7vGE9ItacI+1XAdH2UZDLtdZA5J6U9YC6lokKQCv+aEVO6Zl9YG4yp57YwnGw==} + + '@react-aria/menu@3.18.0': resolution: {integrity: sha512-UvcGwx5mGWpZF/d1cQsvCzt0gG5NKbrgAe9B5pumzMfWyXpbkRB0v90GnUlPShbemLhYmWCnTXlN9ogEdAV1dw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/tree': 3.9.1(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/menu@3.18.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/menu@3.18.1': resolution: {integrity: sha512-czdJFNBW/B7QodyLDyQ+TvT8tZjCru7PrhUDkJS36ie/pTeQDFpIczgYjmKfJs5pP6olqLKXbwJy1iNTh01WTQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/menu': 3.9.2(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/tree': 3.8.8(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/menu@3.19.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-VLUGbZedKJvK2OFWEpa86GPIaj9QcWox/R9JXmNk6nyrAz/V46OBQENdliV26PEdBZgzrVxGvmkjaH7ZsN/32Q==} + '@react-aria/menu@3.18.2': + resolution: {integrity: sha512-90k+Ke1bhFWhR2zuRI6OwKWQrCpOD99n+9jhG96JZJZlNo5lB+5kS+ufG1LRv5GBnCug0ciLQmPMAfguVsCjEQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/overlays': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/menu': 3.9.6(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/tree': 3.9.1(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/menu': 3.10.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/numberfield@3.11.12(react-dom@19.1.1)(react@19.1.1): + '@react-aria/numberfield@3.11.12': resolution: {integrity: sha512-VQ4dfaf+k7n2tbP8iB1OLFYTLCh9ReyV7dNLrDvH24V7ByaHakobZjwP8tF6CpvafNYaXPUflxnHpIgXvN3QYA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/spinbutton': 3.6.17(react-dom@19.1.1)(react@19.1.1) - '@react-aria/textfield': 3.18.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/numberfield': 3.9.10(react@19.1.1) - '@react-types/button': 3.11.0(react@19.1.1) - '@react-types/numberfield': 3.8.9(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/overlays@3.26.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/overlays@3.26.0': resolution: {integrity: sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.26(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/overlays@3.26.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/overlays@3.26.1': resolution: {integrity: sha512-AtQ0mp+H0alFFkojKBADEUIc1AKFsSobH4QNoxQa3V4bZKQoXxga7cRhD5RRYanu3XCQOkIxZJ3vdVK/LVVBXA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.14(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/overlays@3.28.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-qaHahAXTmxXULgg2/UfWEIwfgdKsn27XYryXAWWDu2CAZTcbI+5mGwYrQZSDWraM6v5PUUepzOVvm7hjTqiMFw==} + '@react-aria/overlays@3.27.0': + resolution: {integrity: sha512-2vZVgL7FrloN5Rh8sAhadGADJbuWg69DdSJB3fd2/h5VvcEhnIfNPu9Ma5XmdkApDoTboIEsKZ4QLYwRl98w6w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/overlays@3.27.3': + resolution: {integrity: sha512-1hawsRI+QiM0TkPNwApNJ2+N49NQTP+48xq0JG8hdEUPChQLDoJ39cvT1sxdg0mnLDzLaAYkZrgfokq9sX6FLA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.26(react-dom@19.1.1)(react@19.1.1) - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/overlays': 3.9.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/progress@3.4.21(react-dom@19.1.1)(react@19.1.1): + '@react-aria/progress@3.4.21': resolution: {integrity: sha512-KNjoJTY2AU3L+3rozwC81lwDWn6Yk2XQbcQaxEs5frRBbuiCD7hEdrerLIgKa/J85e61MDuEel0Onc0kV9kpyw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/progress': 3.5.10(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/radio@3.11.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/radio@3.11.0': resolution: {integrity: sha512-twaJlT4prn1jSK9Wq5JDX+ywQ6hVnt8eea5cwe33bU87aQxCoz1PZAp5/cqEA8CT7jJUCM3wPQ8eBRtpHnjYNQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/radio': 3.10.11(react@19.1.1) - '@react-types/radio': 3.8.7(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/radio@3.11.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/radio@3.11.1': resolution: {integrity: sha512-plAO5MW+QD9/kMe5NNKBzKf/+b6CywdoZ5a1T/VbvkBQYYcHaYQeBuKQ4l+hF+OY2tKAWP0rrjv7tEtacPc9TA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/radio': 3.10.11(react@19.1.1) - '@react-types/radio': 3.8.7(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/selection@3.23.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/selection@3.23.0': resolution: {integrity: sha512-m/sq3UuaTFRiEU9S6K+nkn9ONcpCtFskeJH/IZ9l/583X08KEoW/A3Vehrf3dlL8CNbkKKPfkUdKh1X6gTmHzA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/selection@3.23.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/selection@3.23.1': resolution: {integrity: sha512-z4vVw7Fw0+nK46PPlCV8TyieCS+EOUp3eguX8833fFJ/QDlFp3Ewgw2T5qCIix5U3siXPYU0ZmAMOdrjibdGpQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/selection@3.25.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Q3U0Ya0PTP/TR0a2g+7YEbFVLphiWthmEkHyvOx9HsKSjE8w9wXY3C14DZWKskB/BBrXKJuOWxBDa0xhC83S+A==} + '@react-aria/selection@3.24.0': + resolution: {integrity: sha512-RfGXVc04zz41NVIW89/a3quURZ4LT/GJLkiajQK2VjhisidPdrAWkcfjjWJj0n+tm5gPWbi9Rs5R/Rc8mrvq8Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/slider@3.7.16(react-dom@19.1.1)(react@19.1.1): + '@react-aria/slider@3.7.16': resolution: {integrity: sha512-SBcEbQWv1gDxx6TsNPVMOA4hNAsvPgMC9MuQQrXR1azIDlraU7A8tIMfs7BfEomiSaaZjxBso/xiZMuEJc7trQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/i18n': 3.12.6(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/slider': 3.6.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/slider': 3.8.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/slider@3.7.17(react-dom@19.1.1)(react@19.1.1): + '@react-aria/slider@3.7.17': resolution: {integrity: sha512-B+pdHiuM9G6zLYqvkMWAEiP2AppyC3IU032yUxBUrzh3DDoHPgU8HyFurFKS0diwigzcCBcq0yQ1YTalPzWV5A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/slider': 3.6.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/slider': 3.8.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/spinbutton@3.6.17(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-gdGc3kkqpvFUd9XsrhPwQHMrG2TY0LVuGGgjvaZwF/ONm9FMz393ogCM0P484HsjU50hClO+yiRRgNjdwDIzPQ==} + '@react-aria/spinbutton@3.6.14': + resolution: {integrity: sha512-oSKe9p0Q/7W39eXRnLxlwJG5dQo4ffosRT3u2AtOcFkk2Zzj+tSQFzHQ4202nrWdzRnQ2KLTgUUNnUvXf0BJcg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/ssr@3.9.10(react@19.1.1): - resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} - engines: {node: '>= 12'} + '@react-aria/spinbutton@3.6.16': + resolution: {integrity: sha512-Ko1e9GeQiiEXeR3IyPT8STS1Pw4k/1OBs9LqI3WKlHFwH5M8q3DbbaMOgekD41/CPVBKmCcqFM7K7Wu9kFrT2A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - /@react-aria/ssr@3.9.7(react@19.1.1): + '@react-aria/ssr@3.9.7': resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} engines: {node: '>= 12'} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-aria/switch@3.7.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/ssr@3.9.8': + resolution: {integrity: sha512-lQDE/c9uTfBSDOjaZUJS8xP2jCKVk4zjQeIlCH90xaLhHDgbpCdns3xvFpJJujfj3nI4Ll9K7A+ONUBDCASOuw==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/ssr@3.9.9': + resolution: {integrity: sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/switch@3.7.0': resolution: {integrity: sha512-TwTKz9qO6FUg/szH/uqODvlXM8BKSXuFQMct3Tp/FsILFqfX9FQcD5jwbclmN5tywCVdeJU/OkICldxMx4gFeA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/toggle': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/switch': 3.5.13(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/switch@3.7.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/switch@3.7.1': resolution: {integrity: sha512-CE7G9pPeltbE5wEVIPlrbjarYoMNS8gsb3+RD4Be/ghKSpwppmQyn12WIs6oQl3YQSBD/GZhfA6OTyOBo0Ro9A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/toggle': 3.12.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.8.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/switch': 3.5.13(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/table@3.17.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/table@3.17.1': resolution: {integrity: sha512-yRZoeNwg+7ZNdq7kP9x+u9yMBL4spIdWvY9XTrYGq2XzNzl1aUUBNVszOV3hOwiU0DEF2zzUuuc8gc8Wys40zw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/grid': 3.14.3(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-stately/table': 3.14.0(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/grid': 3.3.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/table': 3.11.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/table@3.17.6(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-PSEaeKOIazVEaykeTLudPbDLytJgOPLZJalS/xXY0/KL+Gi0Olchmz4tvS0WBe87ChmlVi6GQqU+stk23aZVWg==} + '@react-aria/table@3.17.2': + resolution: {integrity: sha512-wsF3JqiAKcol1sfeNqTxyzH6+nxu0sAfyuh+XQfp1tvSGx15NifYeNKovNX4EPpUVkAI7jL5Le+eYeYYGELfnw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.21.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/grid': 3.14.3(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/live-announcer': 3.4.4 - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/visually-hidden': 3.8.26(react-dom@19.1.1)(react@19.1.1) - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-stately/table': 3.14.4(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/grid': 3.3.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/table': 3.13.2(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/tabs@3.10.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/tabs@3.10.0': resolution: {integrity: sha512-1wGB4CtkP/F0/4YTDoB7XoPr4Ea6dbLTpLHQiS0cxf0kA3NZCxRguIffRbigE/D6fHArzWyKedSo6FzJR/WPZw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tabs': 3.8.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/tabs': 3.3.13(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/tabs@3.10.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/tabs@3.10.1': resolution: {integrity: sha512-9tcmp4L0cCTSkJAVvsw5XkjTs4MP4ajJsWPc9IUXYoutZWSDs2igqx3/7KKjRM4OrjSolNXFf8uWyr9Oqg+vCg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/selection': 3.25.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tabs': 3.8.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/tabs': 3.3.13(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/textfield@3.17.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/textfield@3.17.0': resolution: {integrity: sha512-asvbf0xC17qSQ51OojRELUtbTfVe42YE26KUZ/dtxkj+Ln20nj1F3UWXU3hDCn36hbj3vnJ2Zp8X6aGOfJP0qQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/textfield': 3.12.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/textfield@3.17.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/textfield@3.17.1': resolution: {integrity: sha512-W/4nBdyXTOFPQXJ8eRK+74QFIpGR+x24SRjdl+y3WO6gFJNiiopWj8+slSK/T8LoD3g3QlzrtX/ooVQHCG3uQw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/textfield': 3.12.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/textfield@3.18.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-kCwbyDHi2tRaD/OjagA3m3q2mMZUPeXY7hRqhDxpl2MwyIdd+/PQOJLM8tZr5+m2zvBx+ffOcjZMGTMwMtoV5w==} + '@react-aria/textfield@3.17.2': + resolution: {integrity: sha512-4KINB0HueYUHUgvi/ThTP27hu4Mv5ujG55pH3dmSRD4Olu/MRy1m/Psq72o8LTf4bTOM9ZP1rKccUg6xfaMidA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/label': 3.7.20(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/textfield': 3.12.4(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/toast@3.0.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/toast@3.0.1': resolution: {integrity: sha512-WDzKvQsroIowe4y/5dsZDakG4g0mDju4ZhcEPY3SFVnEBbAH1k0fwSgfygDWZdwg9FS3+oA1IYcbVt4ClK3Vfg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/landmark': 3.0.5(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toast': 3.0.0(react@19.1.1) - '@react-types/button': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/toggle@3.12.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-JfcrF8xUEa2CbbUXp+WQiTBVwSM/dm21v5kueQlksvLfXG6DGE8/zjM6tJFErrFypAasc1JXyrI4dspLOWCfRA==} + '@react-aria/toggle@3.11.2': + resolution: {integrity: sha512-JOg8yYYCjLDnEpuggPo9GyXFaT/B238d3R8i/xQ6KLelpi3fXdJuZlFD6n9NQp3DJbE8Wj+wM5/VFFAi3cISpw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/toggle': 3.9.0(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/toolbar@3.0.0-beta.13(react-dom@19.1.1)(react@19.1.1): + '@react-aria/toolbar@3.0.0-beta.13': resolution: {integrity: sha512-aj5lWdk/yp2Tmuuofu1rdkvhiYPCXihuPFbs+9HHz88kyezM7bkhmQRIf0w47tiPIKUA0UuwJucBjDZfl9EQFw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/toolbar@3.0.0-beta.14(react-dom@19.1.1)(react@19.1.1): + '@react-aria/toolbar@3.0.0-beta.14': resolution: {integrity: sha512-F9wFYhcbVUveo6+JfAjKyz19BnBaXBYG7YyZdGurhn5E1bD+Zrwz/ZCTrrx40xJsbofciCiiwnKiXmzB20Kl5Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/i18n': 3.12.11(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/tooltip@3.8.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/tooltip@3.8.0': resolution: {integrity: sha512-Tal09bWgursZ3v1qUuB/0z4Cz+jcDIfe8G5TECMtr0vbfYh2u7RIjBNZnsRcxZ2syXDxhHrPNeh8mrp4vKCAKg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tooltip': 3.5.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/tooltip': 3.4.15(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/tooltip@3.8.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/tooltip@3.8.1': resolution: {integrity: sha512-g5Vr5HFGfLQRxdYs8nZeXeNrni5YcRGegRjnEDUZwW+Gwvu8KTrD7IeXrBDndS+XoTzKC4MzfvtyXWWpYmT0KQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-stately/tooltip': 3.5.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/tooltip': 3.4.15(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/utils@3.28.0(react-dom@19.1.1)(react@19.1.1): + '@react-aria/utils@3.28.0': resolution: {integrity: sha512-FfpvpADk61OvEnFe37k6jF1zr5gtafIPN9ccJRnPCTqrzuExag01mGi+wX/hWyFK0zAe1OjWf1zFOX3FsFvikg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/utils@3.28.1(react-dom@19.1.1)(react@19.1.1): + '@react-aria/utils@3.28.1': resolution: {integrity: sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/utils@3.30.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-ydA6y5G1+gbem3Va2nczj/0G0W7/jUVo/cbN10WA5IizzWIwMP5qhFr7macgbKfHMkZ+YZC3oXnt2NNre5odKw==} + '@react-aria/utils@3.28.2': + resolution: {integrity: sha512-J8CcLbvnQgiBn54eeEvQQbIOfBF3A1QizxMw9P4cl9MkeR03ug7RnjTIdJY/n2p7t59kLeAB3tqiczhcj+Oi5w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/utils@3.29.1': + resolution: {integrity: sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/visually-hidden@3.8.20(react-dom@19.1.1)(react@19.1.1): + '@react-aria/visually-hidden@3.8.20': resolution: {integrity: sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.24.0(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.28.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/visually-hidden@3.8.21(react-dom@19.1.1)(react@19.1.1): + '@react-aria/visually-hidden@3.8.21': resolution: {integrity: sha512-iii5qO+cVHrHiOeiBYCnTRUQG2eOgEPFmiMG4dAuby8+pJJ8U4BvffX2sDTYWL6ztLLBYyrsUHPSw1Ld03JhmA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-aria/visually-hidden@3.8.26(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Lz36lTVaQbv5Kn74sPv0l9SnLQ5XHKCoq2zilP14Eb4QixDIqR7Ovj43m+6wi9pynf29jtOb/8D/9jrTjbmmgw==} + '@react-aria/visually-hidden@3.8.22': + resolution: {integrity: sha512-EO3R8YTKZ7HkLl9k1Y2uBKYBgpJagth4/4W7mfpJZE24A3fQnCP8zx1sweXiAm0mirR4J6tNaK7Ia8ssP5TpOw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/visually-hidden@3.8.25': + resolution: {integrity: sha512-9tRRFV1YMLuDId9E8PeUf0xy0KmQBoP8y/bm0PKWzXOqLOVmp/+kop9rwsjC7J6ppbBnlak7XCXTc7GoSFOCRA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.1)(react@19.1.1) - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-stately/calendar@3.7.1(react@19.1.1): + '@react-stately/calendar@3.7.1': resolution: {integrity: sha512-DXsJv2Xm1BOqJAx5846TmTG1IZ0oKrBqYAzWZG7hiDq3rPjYGgKtC/iJg9MUev6pHhoZlP9fdRCNFiCfzm5bLQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/calendar': 3.6.1(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/calendar@3.8.3(react@19.1.1): - resolution: {integrity: sha512-HTWD6ZKQcXDlvj6glEEG0oi2Tpkaw19y5rK526s04zJs894wFqM9PK0WHthEYqjCeQJ5B/OkyG19XX4lENxnZw==} + '@react-stately/calendar@3.8.2': + resolution: {integrity: sha512-IGSbTgCMiGYisQ+CwH31wek10UWvNZ1LVwhr0ZNkhDIRtj+p+FuLNtBnmT1CxTFe2Y4empAxyxNA0QSjQrOtvQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/calendar': 3.7.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/checkbox@3.6.12(react@19.1.1): + '@react-stately/checkbox@3.6.12': resolution: {integrity: sha512-gMxrWBl+styUD+2ntNIcviVpGt2Y+cHUGecAiNI3LM8/K6weI7938DWdLdK7i0gDmgSJwhoNRSavMPI1W6aMZQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/checkbox@3.7.0(react@19.1.1): - resolution: {integrity: sha512-opViVhNvxFVHjXhM4nA/E03uvbLazsIKloXX9JtyBCZAQRUag17dpmkekfIkHvP4o7z7AWFoibD8JBFV1IrMcQ==} + '@react-stately/checkbox@3.6.13': + resolution: {integrity: sha512-b8+bkOhobzuJ5bAA16JpYg1tM973eNXD3U4h/8+dckLndKHRjIwPvrL25tzKN7NcQp2LKVCauFesgI+Z+/2FJg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/collections@3.12.2(react@19.1.1): + '@react-stately/collections@3.12.2': resolution: {integrity: sha512-RoehfGwrsYJ/WGtyGSLZNYysszajnq0Q3iTXg7plfW1vNEzom/A31vrLjOSOHJWAtwW339SDGGRpymDtLo4GWA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/collections@3.12.6(react@19.1.1): - resolution: {integrity: sha512-S158RKWGZSodbJXKZDdcnrLzFxzFmyRWDNakQd1nBGhSrW2JV8lDn9ku5Og7TrjoEpkz//B2oId648YT792ilw==} + '@react-stately/collections@3.12.3': + resolution: {integrity: sha512-QfSBME2QWDjUw/RmmUjrYl/j1iCYcYCIDsgZda1OeRtt63R11k0aqmmwrDRwCsA+Sv+D5QgkOp4KK+CokTzoVQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/collections@3.12.5': + resolution: {integrity: sha512-5SIb+6nF9cyu+WXqZ6io56BtdOu8FjSQQaaLCCpfAC6fc6zHRk8by0WreRmvJ5/Kn8oq2FNJtCNRvluM0Z01UA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/combobox@3.10.3(react@19.1.1): + '@react-stately/combobox@3.10.3': resolution: {integrity: sha512-l4yr8lSHfwFdA+ZpY15w98HkgF1iHytjerdQkMa4C0dCl4NWUyyWMOcgmHA8G56QEdbFo5dXyW6hzF2PJnUOIg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/list': 3.12.4(react@19.1.1) - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-stately/select': 3.7.0(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/combobox': 3.13.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/datepicker@3.13.0(react@19.1.1): + '@react-stately/datepicker@3.13.0': resolution: {integrity: sha512-I0Y/aQraQyRLMWnh5tBZMiZ0xlmvPjFErXnQaeD7SdOYUHNtQS4BAQsMByQrMfg8uhOqUTKlIh7xEZusuqYWOA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/string': 3.2.7 - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/datepicker': 3.11.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/datepicker@3.15.0(react@19.1.1): - resolution: {integrity: sha512-OuBx+h802CoANy6KNR6XuZCndiyRf9vpB32CYZX86nqWy21GSTeT73G41ze5cAH88A/6zmtpYK24nTlk8bdfWA==} + '@react-stately/datepicker@3.14.2': + resolution: {integrity: sha512-KvOUFz/o+hNIb7oCli6nxBdDurbGjRjye6U99GEYAx6timXOjiIJvtKQyqCLRowGYtCS6GH41yM6DhJ2MlMF8w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/string': 3.2.7 - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/datepicker': 3.13.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/flags@3.1.2: + '@react-stately/flags@3.1.1': + resolution: {integrity: sha512-XPR5gi5LfrPdhxZzdIlJDz/B5cBf63l4q6/AzNqVWFKgd0QqY5LvWJftXkklaIUpKSJkIKQb8dphuZXDtkWNqg==} + + '@react-stately/flags@3.1.2': resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} - dependencies: - '@swc/helpers': 0.5.17 - dev: false - /@react-stately/form@3.1.2(react@19.1.1): + '@react-stately/form@3.1.2': resolution: {integrity: sha512-sKgkV+rxeqM1lf0dCq2wWzdYa5Z0wz/MB3yxjodffy8D43PjFvUOMWpgw/752QHPGCd1XIxA3hE58Dw9FFValg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/form@3.2.0(react@19.1.1): - resolution: {integrity: sha512-PfefxvT7/BIhAGpD4oQpdcxnL8cfN0ZTQxQq+Wmb9z3YzK1oM8GFxb8eGdDRG71JeF8WUNMAQVZFhgl00Z/YKg==} + '@react-stately/form@3.1.3': + resolution: {integrity: sha512-Jisgm0facSS3sAzHfSgshoCo3LxfO0wmQj98MOBCGXyVL+MSwx2ilb38eXIyBCzHJzJnPRTLaK/E4T49aph47A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/grid@3.11.4(react@19.1.1): - resolution: {integrity: sha512-oaXFSk2eM0PJ0GVniGA0ZlTpAA0AL0O4MQ7V3cHqZAQbwSO0n2pT31GM0bSVnYP/qTF5lQHo3ECmRQCz0fVyMw==} + '@react-stately/form@3.1.5': + resolution: {integrity: sha512-wOs0SVXFgNr1aIdywiNH1MhxrFlN5YxBr1k9y3Z7lX+pc/MGRJFTgfDDw5JDxvwLH9joJ9ciniCdWep9L/TqcQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/grid@3.11.1': + resolution: {integrity: sha512-xMk2YsaIKkF8dInRLUFpUXBIqnYt88hehhq2nb65RFgsFFhngE/OkaFudSUzaYPc1KvHpW+oHqvseC+G1iDG2w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-types/grid': 3.3.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/list@3.12.0(react@19.1.1): + '@react-stately/list@3.12.0': resolution: {integrity: sha512-6niQWJ6TZwOKLAOn2wIsxtOvWenh3rKiKdOh4L4O4f7U+h1Hu000Mu4lyIQm2P9uZAkF2Y5QNh6dHN+hSd6h3A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/list@3.12.4(react@19.1.1): - resolution: {integrity: sha512-r7vMM//tpmagyNlRzl2NFPPtx+az5R9pM6q7aI4aBf6/zpZt2eX2UW5gaDTGlkQng7r6OGyAgJD52jmGcCJk7Q==} + '@react-stately/list@3.12.1': + resolution: {integrity: sha512-N+YCInNZ2OpY0WUNvJWUTyFHtzE5yBtZ9DI4EHJDvm61+jmZ2s3HszOfa7j+7VOKq78VW3m5laqsQNWvMrLFrQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/menu@3.9.2(react@19.1.1): + '@react-stately/menu@3.9.2': resolution: {integrity: sha512-mVCFMUQnEMs6djOqgHC2d46k/5Mv5f6UYa4TMnNDSiY8QlHG4eIdmhBmuYpOwWuOOHJ0xKmLQ4PWLzma/mBorg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-types/menu': 3.9.15(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/menu@3.9.6(react@19.1.1): - resolution: {integrity: sha512-2rVtgeVAiyr7qL8BhmCK/4el49rna/5kADRH5NfPdpXw8ZzaiiHq2RtX443Txj7pUU82CJWQn+CRobq7k6ZTEw==} + '@react-stately/menu@3.9.3': + resolution: {integrity: sha512-9x1sTX3Xq2Q3mJUHV+YN9MR36qNzgn8eBSLa40eaFDaOOtoJ+V10m7OriUfpjey7WzLBpq00Sfda54/PbQHZ0g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-types/menu': 3.10.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/numberfield@3.9.10(react@19.1.1): + '@react-stately/numberfield@3.9.10': resolution: {integrity: sha512-47ta1GyfLsSaDJIdH6A0ARttPV32nu8a5zUSE2hTfRqwgAd3ksWW5ZEf6qIhDuhnE9GtaIuacsctD8C7M3EOPw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/number': 3.6.4 - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/utils': 3.10.5(react@19.1.1) - '@react-types/numberfield': 3.8.9(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/overlays@3.6.14(react@19.1.1): + '@react-stately/overlays@3.6.14': resolution: {integrity: sha512-RRalTuHdwrKO1BmXKaqBtE1GGUXU4VUAWwgh4lsP2EFSixDHmOVLxHFDWYvOPChBhpi8KXfLEgm6DEgPBvLBZQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/overlays': 3.8.13(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/overlays@3.6.18(react@19.1.1): - resolution: {integrity: sha512-g8n2FtDCxIg2wQ09R7lrM2niuxMPCdP17bxsPV9hyYnN6m42aAKGOhzWrFOK+3phQKgk/E1JQZEvKw1cyyGo1A==} + '@react-stately/overlays@3.6.15': + resolution: {integrity: sha512-LBaGpXuI+SSd5HSGzyGJA0Gy09V2tl2G/r0lllTYqwt0RDZR6p7IrhdGVXZm6vI0oWEnih7yLC32krkVQrffgQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/overlays@3.6.17': + resolution: {integrity: sha512-bkGYU4NPC/LgX9OGHLG8hpf9QDoazlb6fKfD+b5o7GtOdctBqCR287T/IBOQyvHqpySqrQ8XlyaGxJPGIcCiZw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/overlays': 3.9.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/radio@3.10.11(react@19.1.1): + '@react-stately/radio@3.10.11': resolution: {integrity: sha512-dclixp3fwNBbgpbi66x36YGaNwN7hI1nbuhkcnLAE0hWkTO8/wtKBgGqRKSfNV7MSiWlhBhhcdPcQ+V7q7AQIQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/radio': 3.8.7(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/select@3.7.0(react@19.1.1): - resolution: {integrity: sha512-OWLOCKBEj8/XI+vzBSSHQAJu0Hf9Xl/flMhYh47f2b45bO++DRLcVsi8nycPNisudvK6xMQ8a/h4FwjePrCXfg==} + '@react-stately/select@3.6.12': + resolution: {integrity: sha512-5o/NAaENO/Gxs1yui5BHLItxLnDPSQJ5HDKycuD0/gGC17BboAGEY/F9masiQ5qwRPe3JEc0QfvMRq3yZVNXog==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/form': 3.2.0(react@19.1.1) - '@react-stately/list': 3.12.4(react@19.1.1) - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-types/select': 3.10.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/selection@3.20.4(react@19.1.1): - resolution: {integrity: sha512-Hxmc6NtECStYo+Z2uBRhQ80KPhbSF7xXv9eb4qN8dhyuSnsD6c0wc6oAJsv18dldcFz8VrD48aP/uff9mj0hxQ==} + '@react-stately/selection@3.20.1': + resolution: {integrity: sha512-K9MP6Rfg2yvFoY2Cr+ykA7bP4EBXlGaq5Dqfa1krvcXlEgMbQka5muLHdNXqjzGgcwPmS1dx1NECD15q63NtOw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/slider@3.6.2(react@19.1.1): + '@react-stately/slider@3.6.2': resolution: {integrity: sha512-5S9omr29Viv2PRyZ056ZlazGBM8wYNNHakxsTHcSdG/G8WQLrWspWIMiCd4B37cCTkt9ik6AQ6Y3muHGXJI0IQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/slider': 3.8.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/table@3.14.0(react@19.1.1): + '@react-stately/table@3.14.0': resolution: {integrity: sha512-ALHIgAgSyHeyUiBDWIxmIEl9P4Gy5jlGybcT/rDBM8x7Ik/C/0Hd9f9Y5ubiZSpUGeAXlIaeEdSm0HBfYtQVRw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-stately/grid': 3.11.4(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/grid': 3.3.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/table': 3.11.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/table@3.14.4(react@19.1.1): - resolution: {integrity: sha512-uhwk8z3DemozD+yHBjSa4WyxKczpDkxhJhW7ZVOY+1jNuTYxc9/JxzPsHICrlDVV8EPWwwyMUz8eO/8rKN7DbA==} + '@react-stately/table@3.14.1': + resolution: {integrity: sha512-7P5h4YBAv3B/7BGq/kln+xSKgJCSq4xjt4HmJA7ZkGnEksUPUokBNQdWwZsy3lX/mwunaaKR9x/YNIu7yXB02g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/flags': 3.1.2 - '@react-stately/grid': 3.11.4(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/grid': 3.3.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/table': 3.13.2(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/tabs@3.8.0(react@19.1.1): + '@react-stately/tabs@3.8.0': resolution: {integrity: sha512-I8ctOsUKPviJ82xWAcZMvWqz5/VZurkE+W9n9wrFbCgHAGK/37bx+PM1uU/Lk4yKp8WrPYSFOEPil5liD+M+ew==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/list': 3.12.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@react-types/tabs': 3.3.13(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/toast@3.0.0(react@19.1.1): + '@react-stately/toast@3.0.0': resolution: {integrity: sha512-g7e4hNO9E6kOqyBeLRAfZBihp1EIQikmaH3Uj/OZJXKvIDKJlNlpvwstUIcmEuEzqA1Uru78ozxIVWh3pg9ubg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.1 - use-sync-external-store: 1.5.0(react@19.1.1) - dev: false - /@react-stately/toggle@3.8.2(react@19.1.1): + '@react-stately/toggle@3.8.2': resolution: {integrity: sha512-5KPpT6zvt8H+WC9UbubhCTZltREeYb/3hKdl4YkS7BbSOQlHTFC0pOk8SsQU70Pwk26jeVHbl5le/N8cw00x8w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/checkbox': 3.9.2(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/toggle@3.9.0(react@19.1.1): - resolution: {integrity: sha512-1URd97R5nbFF9Hc1nQBhvln55EnOkLNz6pjtXU7TCnV4tYVbe+tc++hgr5XRt6KAfmuXxVDujlzRc6QjfCn0cQ==} + '@react-stately/toggle@3.8.3': + resolution: {integrity: sha512-4T2V3P1RK4zEFz4vJjUXUXyB0g4Slm6stE6Ry20fzDWjltuW42cD2lmrd7ccTO/CXFmHLECcXQLD4GEbOj0epA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/checkbox': 3.10.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/tooltip@3.5.2(react@19.1.1): + '@react-stately/tooltip@3.5.2': resolution: {integrity: sha512-z81kwZWnnf2SE5/rHMrejH5uQu3dXUjrhIa2AGT038DNOmRyS9TkFBywPCiiE7tHpUg/rxZrPxx01JFGvOkmgg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/overlays': 3.6.18(react@19.1.1) - '@react-types/tooltip': 3.4.15(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/tree@3.8.8(react@19.1.1): + '@react-stately/tree@3.8.8': resolution: {integrity: sha512-21WB9kKT9+/tr6B8Q4G53tZXl/3dftg5sZqCR6x055FGd2wGVbkxsLhQLmC+XVkTiLU9pB3BjvZ9eaSj1D8Wmg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/tree@3.9.1(react@19.1.1): - resolution: {integrity: sha512-dyoPIvPK/cs03Tg/MQSODi2kKYW1zaiOG9KC2P0c8b44mywU2ojBKzhSJky3dBkJ4VVGy7L+voBh50ELMjEa8Q==} + '@react-stately/tree@3.8.9': + resolution: {integrity: sha512-j/LLI9UvbqcfOdl2v9m3gET3etUxoQzv3XdryNAbSkg0jTx8/13Fgi/Xp98bUcNLfynfeGW5P/fieU71sMkGog==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-stately/collections': 3.12.6(react@19.1.1) - '@react-stately/selection': 3.20.4(react@19.1.1) - '@react-stately/utils': 3.10.8(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/utils@3.10.5(react@19.1.1): + '@react-stately/utils@3.10.5': resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/utils@3.10.8(react@19.1.1): - resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==} + '@react-stately/utils@3.10.6': + resolution: {integrity: sha512-O76ip4InfTTzAJrg8OaZxKU4vvjMDOpfA/PGNOytiXwBbkct2ZeZwaimJ8Bt9W1bj5VsZ81/o/tW4BacbdDOMA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/utils@3.10.7': + resolution: {integrity: sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.1 - dev: false - /@react-stately/virtualizer@4.3.1(react-dom@19.1.1)(react@19.1.1): + '@react-stately/virtualizer@4.3.1': resolution: {integrity: sha512-yWRR9NhaD9NQezRUm1n0cQAYAOAYLOJSxVrCAKyhz/AYvG5JMMvFk3kzgrX8YZXoZKjybcdvy3YZ+jbCSprR6g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/utils': 3.28.1(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-stately/virtualizer@4.4.2(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-csU/Bbq1+JYCXlF3wKHa690EhV4/uuK5VwZZvi9jTMqjblDiNUwEmIcx78J8aoadjho5wgRw3ddE9NPDGcVElA==} + '@react-stately/virtualizer@4.3.2': + resolution: {integrity: sha512-KxR0s6IBqUD2TfDM3mAOtiTZLb1zOwcuCeUOvCKNqzEdFhh7nEJPrG33mgJn64S4kM11c0AsPwBlxISqdvCXJg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-aria/utils': 3.30.0(react-dom@19.1.1)(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - '@swc/helpers': 0.5.17 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false - /@react-types/accordion@3.0.0-alpha.26(react@19.1.1): + '@react-types/accordion@3.0.0-alpha.26': resolution: {integrity: sha512-OXf/kXcD2vFlEnkcZy/GG+a/1xO9BN7Uh3/5/Ceuj9z2E/WwD55YwU3GFM5zzkZ4+DMkdowHnZX37XnmbyD3Mg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/breadcrumbs@3.7.11(react@19.1.1): + '@react-types/breadcrumbs@3.7.11': resolution: {integrity: sha512-pMvMLPFr7qs4SSnQ0GyX7i3DkWVs9wfm1lGPFbBO7pJLrHTSK/6Ii4cTEvP6d5o2VgjOVkvce9xCLWW5uosuEQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/link': 3.6.3(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/button@3.11.0(react@19.1.1): + '@react-types/button@3.11.0': resolution: {integrity: sha512-gJh5i0JiBiZGZGDo+tXMp6xbixPM7IKZ0sDuxTYBG49qNzzWJq0uNYltO3emwSVXFSsBgRV/Wu8kQGhfuN7wIw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/button@3.13.0(react@19.1.1): - resolution: {integrity: sha512-hwvcNnBjDeNvWheWfBhmkJSzC48ub5rZq0DnpemB3XKOvv5WcF9p6rrQZsQ3egNGkh0Z+bKfr2QfotgOkccHSw==} + '@react-types/button@3.12.0': + resolution: {integrity: sha512-YrASNa+RqGQpzJcxNAahzNuTYVID1OE6HCorrEOXIyGS3EGogHsQmFs9OyThXnGHq6q4rLlA806/jWbP9uZdxA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/calendar@3.6.1(react@19.1.1): + '@react-types/button@3.12.2': + resolution: {integrity: sha512-QLoSCX8E7NFIdkVMa65TPieve0rKeltfcIxiMtrphjfNn+83L0IHMcbhjf4r4W19c/zqGbw3E53Hx8mNukoTUw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/calendar@3.6.1': resolution: {integrity: sha512-EMbFJX/3gD5j+R0qZEGqK+wlhBxMSHhGP8GqP9XGbpuJPE3w9/M/PVWdh8FUdzf9srYxPOq5NgiGI1JUJvdZqw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/calendar@3.7.3(react@19.1.1): - resolution: {integrity: sha512-gofPgVpSawJ0iGO01SbVH46u3gdykHlGT5BfGU1cRnsOR2tJX38dekO/rnuGsMQYF0+kU6U9YVae+XoOFJNnWg==} + '@react-types/calendar@3.7.0': + resolution: {integrity: sha512-RiEfX2ZTcvfRktQc5obOJtNTgW+UwjNOUW5yf9CLCNOSM07e0w5jtC1ewsOZZbcctMrMCljjL8niGWiBv1wQ1Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/checkbox@3.10.0(react@19.1.1): - resolution: {integrity: sha512-DJ84ilBDvZddE/Sul97Otee4M6psrPRaJm2a1Bc7M3Y5UKo6d6RGXdcDarRRpbnS7BeAbVanKiMS2ygI9QHh9g==} + '@react-types/calendar@3.7.2': + resolution: {integrity: sha512-Bp6fZo52fZdUjYbtJXcaLQ0jWEOeSoyZVwNyN5G6BmPyLP5nHxMPF+R1MPFR0fdpSI4/Sk78gWzoTuU5eOVQLw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/checkbox@3.9.2(react@19.1.1): + '@react-types/checkbox@3.9.2': resolution: {integrity: sha512-BruOLjr9s0BS2+G1Q2ZZ0ubnSTG54hZWr59lCHXaLxMdA/+KVsR6JVMQuYKsW0P8RDDlQXE/QGz3n9yB/Ara4A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/combobox@3.13.3(react@19.1.1): + '@react-types/checkbox@3.9.3': + resolution: {integrity: sha512-h6wmK7CraKHKE6L13Ut+CtnjRktbMRhkCSorv7eg82M6p4PDhZ7mfDSh13IlGR4sryT8Ka+aOjOU+EvMrKiduA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/combobox@3.13.3': resolution: {integrity: sha512-ASPLWuHke4XbnoOWUkNTguUa2cnpIsHPV0bcnfushC0yMSC4IEOlthstEbcdzjVUpWXSyaoI1R4POXmdIP53Nw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/datepicker@3.11.0(react@19.1.1): + '@react-types/datepicker@3.11.0': resolution: {integrity: sha512-GAYgPzqKvd1lR2sLYYMlUkNg2+QoM2uVUmpeQLP1SbYpDr1y8lG5cR54em1G4X/qY4+nCWGiwhRC2veP0D0kfA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-types/calendar': 3.7.3(react@19.1.1) - '@react-types/overlays': 3.9.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/datepicker@3.13.0(react@19.1.1): - resolution: {integrity: sha512-AG/iGcdQ5SVSjw8Ta7bCdGNkMda+e+Z7lOHxDawL44SII8LtZroBDlaCpb178Tvo17bBfJ6TvWXlvSpBY8GPRg==} + '@react-types/datepicker@3.12.2': + resolution: {integrity: sha512-w3JIXZLLZ15zjrAjlnflmCXkNDmIelcaChhmslTVWCf0lUpgu1cUC4WAaS71rOgU03SCcrtQ0K9TsYfhnhhL7Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@internationalized/date': 3.8.2 - '@react-types/calendar': 3.7.3(react@19.1.1) - '@react-types/overlays': 3.9.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/dialog@3.5.20(react@19.1.1): - resolution: {integrity: sha512-ebn8jW/xW/nmRATaWIPHVBIpIFWSaqjrAxa58f5TXer5FtCD9pUuzAQDmy/o22ucB0yvn6Kl+fjb3SMbMdALZQ==} + '@react-types/dialog@3.5.17': + resolution: {integrity: sha512-rKe2WrT272xuCH13euegBGjJAORYXJpHsX2hlu/f02TmMG4nSLss9vKBnY2N7k7nci65k5wDTW6lcsvQ4Co5zQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/dialog@3.5.19': + resolution: {integrity: sha512-+FIyFnoKIGNL20zG8Sye7rrRxmt5HoeaCaHhDCTtNtv8CZEhm3Z+kNd4gylgWAxZRhDtBRWko+ADqfN5gQrgKg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/overlays': 3.9.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/form@3.7.10(react@19.1.1): + '@react-types/form@3.7.10': resolution: {integrity: sha512-PPn1OH/QlQLPaoFqp9EMVSlNk41aiNLwPaMyRhzYvFBGLmtbuX+7JCcH2DgV1peq3KAuUKRDdI2M1iVdHYwMPw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/form@3.7.14(react@19.1.1): - resolution: {integrity: sha512-P+FXOQR/ISxLfBbCwgttcR1OZGqOknk7Ksgrxf7jpc4PuyUC048Jf+FcG+fARhoUeNEhv6kBXI5fpAB6xqnDhA==} + '@react-types/form@3.7.11': + resolution: {integrity: sha512-umqy2Kvg3ooJi+Wqun95tKbKN51gtNt9s7OFLdwCtfWa6GvHFOixSjqAvZbo+m5qC3X/1kMIz3Dg698l0/+oLQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/form@3.7.13': + resolution: {integrity: sha512-Ryw9QDLpHi0xsNe+eucgpADeaRSmsd7+SBsL15soEXJ50K/EoPtQOkm6fE4lhfqAX8or12UF9FBcBLULmfCVNQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/grid@3.3.0(react@19.1.1): + '@react-types/grid@3.3.0': resolution: {integrity: sha512-9IXgD5qXXxz+S9RK+zT8umuTCEcE4Yfdl0zUGyTCB8LVcPEeZuarLGXZY/12Rkbd8+r6MUIKTxMVD3Nq9X5Ksg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/grid@3.3.4(react@19.1.1): - resolution: {integrity: sha512-8XNn7Czhl+D1b2zRwdO8c3oBJmKgevT/viKJB4qBVFOhK0l/p3HYDZUMdeclvUfSt4wx4ASpI7MD3v1vmN54oA==} + '@react-types/grid@3.3.1': + resolution: {integrity: sha512-bPDckheJiHSIzSeSkLqrO6rXRLWvciFJr9rpCjq/+wBj6HsLh2iMpkB/SqmRHTGpPlJvlu0b7AlxK1FYE0QSKA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/link@3.5.11(react@19.1.1): + '@react-types/link@3.5.11': resolution: {integrity: sha512-aX9sJod9msdQaOT0NUTYNaBKSkXGPazSPvUJ/Oe4/54T3sYkWeRqmgJ84RH55jdBzpbObBTg8qxKiPA26a1q9Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/link@3.6.3(react@19.1.1): - resolution: {integrity: sha512-XIYEl9ZPa5mLy8uGQabdhPaFVmnvxNSYF59t0vs/IV0yxeoPvrjKjRAbXS+WP9zYMXIkHYNYYucriCkqKhotJA==} + '@react-types/link@3.6.0': + resolution: {integrity: sha512-BQ5Tktb+fUxvtqksAJZuP8Z/bpmnQ/Y/zgwxfU0OKmIWkKMUsXY+e0GBVxwFxeh39D77stpVxRsTl7NQrjgtSw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/listbox@3.7.2(react@19.1.1): - resolution: {integrity: sha512-MRpBhApR1jJNASoVWsEvH5vf89TJw+l9Lt1ssawop0K2iYF5PmkthRdqcpYcTkFu5+f5QvFchVsNJ3TKD4cf2A==} + '@react-types/listbox@3.6.0': + resolution: {integrity: sha512-+1ugDKTxson/WNOQZO4BfrnQ6cGDt+72mEytXMsSsd4aEC+x3RyUv6NKwdOl4n602cOreo0MHtap1X2BOACVoQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/menu@3.10.3(react@19.1.1): - resolution: {integrity: sha512-Vd3t7fEbIOiq7kBAHaihfYf+/3Fuh0yK2KNjJ70BPtlAhMRMDVG3m0PheSTm3FFfj+uAdQdfc2YKPnMBbWjDuQ==} + '@react-types/menu@3.10.0': + resolution: {integrity: sha512-DKMqEmUmarVCK0jblNkSlzSH53AAsxWCX9RaKZeP9EnRs2/l1oZRuiQVHlOQRgYwEigAXa2TrwcX4nnxZ+U36Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/overlays': 3.9.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/menu@3.9.15(react@19.1.1): + '@react-types/menu@3.9.15': resolution: {integrity: sha512-vNEeGxKLYBJc3rwImnEhSVzeIrhUSSRYRk617oGZowX3NkWxnixFGBZNy0w8j0z8KeNz3wRM4xqInRord1mDbw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/overlays': 3.9.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/numberfield@3.8.9(react@19.1.1): + '@react-types/numberfield@3.8.9': resolution: {integrity: sha512-YqhawYUULiZnUba0/9Vaps8WAT2lto4V6CD/X7s048jiOrHiiIX03RDEAQuKOt1UYdzBJDHfSew9uGMyf/nC0g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/overlays@3.8.13(react@19.1.1): + '@react-types/overlays@3.8.13': resolution: {integrity: sha512-xgT843KIh1otvYPQ6kCGTVUICiMF5UQ7SZUQZd4Zk3VtiFIunFVUvTvL03cpt0026UmY7tbv7vFrPKcT6xjsjw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/overlays@3.9.0(react@19.1.1): - resolution: {integrity: sha512-T2DqMcDN5p8vb4vu2igoLrAtuewaNImLS8jsK7th7OjwQZfIWJn5Y45jSxHtXJUddEg1LkUjXYPSXCMerMcULw==} + '@react-types/overlays@3.8.14': + resolution: {integrity: sha512-XJS67KHYhdMvPNHXNGdmc85gE+29QT5TwC58V4kxxHVtQh9fYzEEPzIV8K84XWSz04rRGe3fjDgRNbcqBektWQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/progress@3.5.10(react@19.1.1): + '@react-types/overlays@3.8.16': + resolution: {integrity: sha512-Aj9jIFwALk9LiOV/s3rVie+vr5qWfaJp/6aGOuc2StSNDTHvj1urSAr3T0bT8wDlkrqnlS4JjEGE40ypfOkbAA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/progress@3.5.10': resolution: {integrity: sha512-YDQExymdgORnSvXTtOW7SMhVOinlrD3bAlyCxO+hSAVaI1Ax38pW5dUFf6H85Jn7hLpjPQmQJvNsfsJ09rDFjQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/radio@3.8.7(react@19.1.1): + '@react-types/radio@3.8.7': resolution: {integrity: sha512-K620hnDmSR7u9cZfwJIfoLvmZS1j9liD7nDXBm+N6aiq9E+8sw312sIEX5iR2TrQ4xovvJQZN7DWxPVr+1LfWw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/select@3.10.0(react@19.1.1): - resolution: {integrity: sha512-+xJwYWJoJTCGsaiPAqb6QB79ub1WKIHSmOS9lh/fPUXfUszVs05jhajaN9KjrKmnXds5uh4u6l1JH5J1l2K5pw==} + '@react-types/select@3.9.10': + resolution: {integrity: sha512-vvC5+cBSOu6J6lm74jhhP3Zvo1JO8m0FNX+Q95wapxrhs2aYYeMIgVuvNKeOuhVqzpBZxWmblBjCVNzCArZOaQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/select@3.9.10(react@19.1.1): - resolution: {integrity: sha512-vvC5+cBSOu6J6lm74jhhP3Zvo1JO8m0FNX+Q95wapxrhs2aYYeMIgVuvNKeOuhVqzpBZxWmblBjCVNzCArZOaQ==} + '@react-types/select@3.9.11': + resolution: {integrity: sha512-uEpQCgDlrq/5fW05FgNEsqsqpvZVKfHQO9Mp7OTqGtm4UBNAbcQ6hOV7MJwQCS25Lu2luzOYdgqDUN8eAATJVQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/shared@3.28.0(react@19.1.1): + '@react-types/shared@3.28.0': resolution: {integrity: sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - react: 19.1.1 - dev: false - /@react-types/shared@3.31.0(react@19.1.1): - resolution: {integrity: sha512-ua5U6V66gDcbLZe4P2QeyNgPp4YWD1ymGA6j3n+s8CGExtrCPe64v+g4mvpT8Bnb985R96e4zFT61+m0YCwqMg==} + '@react-types/shared@3.29.0': + resolution: {integrity: sha512-IDQYu/AHgZimObzCFdNl1LpZvQW/xcfLt3v20sorl5qRucDVj4S9os98sVTZ4IRIBjmS+MkjqpR5E70xan7ooA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - react: 19.1.1 - dev: false - /@react-types/slider@3.8.0(react@19.1.1): - resolution: {integrity: sha512-eN6Fd3YCPseGfvfOJDtn9Lh9CrAb8tF3cTAprEcpnGrsxmdW9JQpcuciYuLM871X5D2fYg4WaYMpZaiYssjxBQ==} + '@react-types/shared@3.30.0': + resolution: {integrity: sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/switch@3.5.13(react@19.1.1): - resolution: {integrity: sha512-C2EhKBu7g7xhKboPPxhyKtROEti80Ck7TBnKclXt0D4LiwbzpR3qGfuzB+7YFItnhiauP7Uxe+bAfM5ojjtm9w==} + '@react-types/slider@3.7.10': + resolution: {integrity: sha512-Yb8wbpu2gS7AwvJUuz0IdZBRi6eIBZq32BSss4UHX0StA8dtR1/K4JeTsArxwiA3P0BA6t0gbR6wzxCvVA9fRw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/switch@3.5.10': + resolution: {integrity: sha512-YyNhx4CvuJ0Rvv7yMuQaqQuOIeg+NwLV00NHHJ+K0xEANSLcICLOLPNMOqRIqLSQDz5vDI705UKk8gVcxqPX5g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/table@3.11.0(react@19.1.1): + '@react-types/table@3.11.0': resolution: {integrity: sha512-83cGyszL+sQ0uFNZvrnvDMg2KIxpe3l5U48IH9lvq2NC41Y4lGG0d7sBU6wgcc3vnQ/qhOE5LcbceGKEi2YSyw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/grid': 3.3.0(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/table@3.13.2(react@19.1.1): - resolution: {integrity: sha512-3/BpFIWHXTcGgQEfip87gMNCWPtPNsc3gFkW4qtsevQ+V0577KyNyvQgvFrqMZKnvz3NWFKyshBb7PTevsus4Q==} + '@react-types/table@3.12.0': + resolution: {integrity: sha512-dmTzjCYwHf2HBOeTa/CEL177Aox0f0mkeLF5nQw/2z6SBolfmYoAwVTPxTaYFVu4MkEJxQTz9AuAsJvCbRJbhg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/grid': 3.3.4(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/tabs@3.3.13(react@19.1.1): + '@react-types/tabs@3.3.13': resolution: {integrity: sha512-jqaK2U+WKChAmYBMO8QxQlFaIM8zDRY9+ignA1HwIyRw7vli4Mycc4RcMxTPm8krvgo+zuVrped9QB+hsDjCsQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/textfield@3.12.0(react@19.1.1): + '@react-types/textfield@3.12.0': resolution: {integrity: sha512-B0vzCIBUbYWrlFk+odVXrSmPYwds9G+G+HiOO/sJr4eZ4RYiIqnFbZ7qiWhWXaou7vi71iXVqKQ8mxA6bJwPEQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/textfield@3.12.4(react@19.1.1): - resolution: {integrity: sha512-cOgzI1dT8X1JMNQ9u2UKoV2L28ROkbFEtzY9At0MqTZYYSxYp3Q7i+XRqIBehu8jOMuCtN9ed9EgwVSfkicyLQ==} + '@react-types/textfield@3.12.1': + resolution: {integrity: sha512-6YTAMCKjEGuXg0A4bZA77j5QJ1a6yFviMUWsCIL6Dxq5K3TklzVsbAduSbHomPPuvkNTBSW4+TUJrVSnoTjMNA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@react-types/tooltip@3.4.15(react@19.1.1): + '@react-types/tooltip@3.4.15': resolution: {integrity: sha512-qiYwQLiEwYqrt/m8iQA8abl9k/9LrbtMNoEevL4jN4H0I5NrG55E78GYTkSzBBYmhBO4KnPVT0SfGM1tYaQx/A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - dependencies: - '@react-types/overlays': 3.8.13(react@19.1.1) - '@react-types/shared': 3.31.0(react@19.1.1) - react: 19.1.1 - dev: false - /@reactflow/background@11.3.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@reactflow/background@11.3.14': resolution: {integrity: sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA==} peerDependencies: react: '>=17' react-dom: '>=17' - dependencies: - '@reactflow/core': 11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - classcat: 5.0.5 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - zustand: 4.5.7(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - - immer - dev: false - /@reactflow/controls@11.2.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@reactflow/controls@11.2.14': resolution: {integrity: sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw==} peerDependencies: react: '>=17' react-dom: '>=17' - dependencies: - '@reactflow/core': 11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - classcat: 5.0.5 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - zustand: 4.5.7(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - - immer - dev: false - /@reactflow/core@11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@reactflow/core@11.11.4': resolution: {integrity: sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q==} peerDependencies: react: '>=17' react-dom: '>=17' - dependencies: - '@types/d3': 7.4.3 - '@types/d3-drag': 3.0.7 - '@types/d3-selection': 3.0.11 - '@types/d3-zoom': 3.0.8 - classcat: 5.0.5 - d3-drag: 3.0.0 - d3-selection: 3.0.0 - d3-zoom: 3.0.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - zustand: 4.5.7(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - - immer - dev: false - /@reactflow/minimap@11.7.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@reactflow/minimap@11.7.14': resolution: {integrity: sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ==} peerDependencies: react: '>=17' react-dom: '>=17' - dependencies: - '@reactflow/core': 11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@types/d3-selection': 3.0.11 - '@types/d3-zoom': 3.0.8 - classcat: 5.0.5 - d3-selection: 3.0.0 - d3-zoom: 3.0.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - zustand: 4.5.7(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - - immer - dev: false - /@reactflow/node-resizer@2.2.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@reactflow/node-resizer@2.2.14': resolution: {integrity: sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA==} peerDependencies: react: '>=17' react-dom: '>=17' - dependencies: - '@reactflow/core': 11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - classcat: 5.0.5 - d3-drag: 3.0.0 - d3-selection: 3.0.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - zustand: 4.5.7(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - - immer - dev: false - /@reactflow/node-toolbar@1.3.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): + '@reactflow/node-toolbar@1.3.14': resolution: {integrity: sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ==} peerDependencies: react: '>=17' react-dom: '>=17' - dependencies: - '@reactflow/core': 11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - classcat: 5.0.5 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - zustand: 4.5.7(@types/react@19.1.10)(react@19.1.1) - transitivePeerDependencies: - - '@types/react' - - immer - dev: false - /@reduxjs/toolkit@2.8.2(react-redux@9.2.0)(react@19.1.1): - resolution: {integrity: sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==} + '@reduxjs/toolkit@2.7.0': + resolution: {integrity: sha512-XVwolG6eTqwV0N8z/oDlN93ITCIGIop6leXlGJI/4EKy+0POYkR+ABHRSdGXY+0MQvJBP8yAzh+EYFxTuvmBiQ==} peerDependencies: react: ^16.9.0 || ^17.0.0 || ^18 || ^19 react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 @@ -8584,747 +4498,11373 @@ packages: optional: true react-redux: optional: true - dependencies: - '@standard-schema/spec': 1.0.0 - '@standard-schema/utils': 0.3.0 - immer: 10.1.1 - react: 19.1.1 - react-redux: 9.2.0(@types/react@19.1.10)(react@19.1.1)(redux@5.0.1) - redux: 5.0.1 - redux-thunk: 3.1.0(redux@5.0.1) - reselect: 5.1.1 - dev: false - /@remirror/core-constants@3.0.0: - resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} - dev: false + '@remirror/core-constants@3.0.0': + resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} + + '@rollup/plugin-commonjs@28.0.1': + resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.2.0': + resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.46.2': + resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.46.2': + resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.46.2': + resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.46.2': + resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.46.2': + resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.46.2': + resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.46.2': + resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.46.2': + resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.46.2': + resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.46.2': + resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.46.2': + resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.46.2': + resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.46.2': + resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.46.2': + resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.46.2': + resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.46.2': + resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.46.2': + resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.46.2': + resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} + cpu: [x64] + os: [win32] + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.11.0': + resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + + '@selderee/plugin-htmlparser2@0.11.0': + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + + '@sentry-internal/browser-utils@10.3.0': + resolution: {integrity: sha512-jKBoNMmxMgojzcpIsUqVk6XL6YiW0i8jtNdD9UdBKd8ExFpVkXhPuMdWB9f/5mVNK/9BnfI74eTiEVHZEkeZ6Q==} + engines: {node: '>=18'} + + '@sentry-internal/feedback@10.3.0': + resolution: {integrity: sha512-HGvBoUwbj164I/66vrtUjHICuqwcY5RIGAAutD+H+EwhUROpFuzaIe9utIalhyU9CrTN/vFs4UYPWmeOpqg2lQ==} + engines: {node: '>=18'} + + '@sentry-internal/replay-canvas@10.3.0': + resolution: {integrity: sha512-JGE1YmWb5LYhnaEgaYVMKj03FCQsuvALF2RXJx+Qe8pPwWtEWWBXMFEIt714mv4mO3YQxZnnxQhxFRuSJqXQfQ==} + engines: {node: '>=18'} + + '@sentry-internal/replay@10.3.0': + resolution: {integrity: sha512-SVF7mMDW++LaeaONyxFUQ2Na3aMv6vyhv9V5Yb6yHWgPXI8NCW83mJ/MidHDD3yI0bccgTJUEmB4S0vBioafzg==} + engines: {node: '>=18'} + + '@sentry/babel-plugin-component-annotate@4.0.2': + resolution: {integrity: sha512-Nr/VamvpQs6w642EI5t+qaCUGnVEro0qqk+S8XO1gc8qSdpc8kkZJFnUk7ozAr+ljYWGfVgWXrxI9lLiriLsRA==} + engines: {node: '>= 14'} + + '@sentry/browser@10.3.0': + resolution: {integrity: sha512-n0jROCST6XJhU7okSn04uRGFK4FjJZNjVR8nDSi/A6gU7VxVAs3iva5SUykXGFQKSVaXVE8kKjS6BtKfllulQA==} + engines: {node: '>=18'} + + '@sentry/bundler-plugin-core@4.0.2': + resolution: {integrity: sha512-LeARs8qHhEw19tk+KZd9DDV+Rh/UeapIH0+C09fTmff9p8Y82Cj89pEQ2a1rdUiF/oYIjQX45vnZscB7ra42yw==} + engines: {node: '>= 14'} + + '@sentry/cli-darwin@2.51.1': + resolution: {integrity: sha512-R1u8IQdn/7Rr8sf6bVVr0vJT4OqwCFdYsS44Y3OoWGVJW2aAQTWRJOTlV4ueclVLAyUQzmgBjfR8AtiUhd/M5w==} + engines: {node: '>=10'} + os: [darwin] + + '@sentry/cli-linux-arm64@2.51.1': + resolution: {integrity: sha512-nvA/hdhsw4bKLhslgbBqqvETjXwN1FVmwHLOrRvRcejDO6zeIKUElDiL5UOjGG0NC+62AxyNw5ri8Wzp/7rg9Q==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux, freebsd, android] + + '@sentry/cli-linux-arm@2.51.1': + resolution: {integrity: sha512-Klro17OmSSKOOSaxVKBBNPXet2+HrIDZUTSp8NRl4LQsIubdc1S/aQ79cH/g52Muwzpl3aFwPxyXw+46isfEgA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux, freebsd, android] + + '@sentry/cli-linux-i686@2.51.1': + resolution: {integrity: sha512-jp4TmR8VXBdT9dLo6mHniQHN0xKnmJoPGVz9h9VDvO2Vp/8o96rBc555D4Am5wJOXmfuPlyjGcmwHlB3+kQRWw==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [linux, freebsd, android] + + '@sentry/cli-linux-x64@2.51.1': + resolution: {integrity: sha512-JuLt0MXM2KHNFmjqXjv23sly56mJmUQzGBWktkpY3r+jE08f5NLKPd5wQ6W/SoLXGIOKnwLz0WoUg7aBVyQdeQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux, freebsd, android] + + '@sentry/cli-win32-arm64@2.51.1': + resolution: {integrity: sha512-PiwjTdIFDazTQCTyDCutiSkt4omggYSKnO3HE1+LDjElsFrWY9pJs4fU3D40WAyE2oKu0MarjNH/WxYGdqEAlg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@sentry/cli-win32-i686@2.51.1': + resolution: {integrity: sha512-TMvZZpeiI2HmrDFNVQ0uOiTuYKvjEGOZdmUxe3WlhZW82A/2Oka7sQ24ljcOovbmBOj5+fjCHRUMYvLMCWiysA==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [win32] + + '@sentry/cli-win32-x64@2.51.1': + resolution: {integrity: sha512-v2hreYUPPTNK1/N7+DeX7XBN/zb7p539k+2Osf0HFyVBaoUC3Y3+KBwSf4ASsnmgTAK7HCGR+X0NH1vP+icw4w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@sentry/cli@2.51.1': + resolution: {integrity: sha512-FU+54kNcKJABU0+ekvtnoXHM9zVrDe1zXVFbQT7mS0On0m1P0zFRGdzbnWe2XzpzuEAJXtK6aog/W+esRU9AIA==} + engines: {node: '>= 10'} + hasBin: true + + '@sentry/core@10.3.0': + resolution: {integrity: sha512-FEFCqiGkzJrm6TNJvhyjhc4rpC1Kmo/abYOACRd6MLvm8GBz41eFFKxsNxGZAUA3Fk1tR2mPfXIHOJzS0ulVww==} + engines: {node: '>=18'} + + '@sentry/nextjs@10.3.0': + resolution: {integrity: sha512-oyvkabOWYb/ZlGXeNTaHQkX/exVkutJ+YmOaUvp/t2faECJbwUnegVAZzbk1qJoo7WPdKYhdtDCT1W2wD/4CLw==} + engines: {node: '>=18'} + peerDependencies: + next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 + + '@sentry/node-core@10.3.0': + resolution: {integrity: sha512-JLkm9GpZbSwT2j+tIlcXA/iCWydIOy4EDjXqE7OCqXRnGlWbqA0jtQtwGJV/ma4ktfgOIRVAc9nXE3dNPMoBPw==} + engines: {node: '>=18'} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 + '@opentelemetry/core': ^1.30.1 || ^2.0.0 + '@opentelemetry/instrumentation': '>=0.57.1 <1' + '@opentelemetry/resources': ^1.30.1 || ^2.0.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 + '@opentelemetry/semantic-conventions': ^1.34.0 + + '@sentry/node@10.3.0': + resolution: {integrity: sha512-q7jO5V6B3mGZBy7cZBa/meecMBH8GqurcHDxsNa9S99pM7wEoDteRmRCJXKWSJqCr3PD9QrJI4e1X8YBJu7XSw==} + engines: {node: '>=18'} + + '@sentry/opentelemetry@10.3.0': + resolution: {integrity: sha512-tjXcKLnGycfcSgN4juVyOUGL1t21io3sDROnnAPCCLSHXu+/yqS4Ff1zNYxhxSfUYpoM8Cf2O1kwl4H0+DKvNQ==} + engines: {node: '>=18'} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 + '@opentelemetry/core': ^1.30.1 || ^2.0.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 + '@opentelemetry/semantic-conventions': ^1.34.0 + + '@sentry/react@10.3.0': + resolution: {integrity: sha512-a/jHX0tuzBmGM8AZz5CQ3Tm4M9Icp3XPFieWDWCLsaMr1PaK5lTH+ytPN5OyxT0b0Gnp/MkSjA/hpdoJq/N9zQ==} + engines: {node: '>=18'} + peerDependencies: + react: ^16.14.0 || 17.x || 18.x || 19.x + + '@sentry/vercel-edge@10.3.0': + resolution: {integrity: sha512-GYaUnRX4aeo1B528uL33LgYUbWx4YDvWgnDYs7skoh3Cb1f3xHAy8vUcAFDc7nwV3psYMPdy0To5KfCa8nrXgg==} + engines: {node: '>=18'} + + '@sentry/webpack-plugin@4.0.2': + resolution: {integrity: sha512-UklVtG7Iiw+AvcL0PfiiyW/u3XT+joDAMDvWbx90rFhVSU10ENW5AV5y4pC41qChqEu3P1eBFdaSxg+kdLeqvw==} + engines: {node: '>= 14'} + peerDependencies: + webpack: '>=4.40.0' + + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + + '@tailwindcss/node@4.1.5': + resolution: {integrity: sha512-CBhSWo0vLnWhXIvpD0qsPephiaUYfHUX3U9anwDaHZAeuGpTiB3XmsxPAN6qX7bFhipyGBqOa1QYQVVhkOUGxg==} + + '@tailwindcss/oxide-android-arm64@4.1.5': + resolution: {integrity: sha512-LVvM0GirXHED02j7hSECm8l9GGJ1RfgpWCW+DRn5TvSaxVsv28gRtoL4aWKGnXqwvI3zu1GABeDNDVZeDPOQrw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.5': + resolution: {integrity: sha512-//TfCA3pNrgnw4rRJOqavW7XUk8gsg9ddi8cwcsWXp99tzdBAZW0WXrD8wDyNbqjW316Pk2hiN/NJx/KWHl8oA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.5': + resolution: {integrity: sha512-XQorp3Q6/WzRd9OalgHgaqgEbjP3qjHrlSUb5k1EuS1Z9NE9+BbzSORraO+ecW432cbCN7RVGGL/lSnHxcd+7Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.5': + resolution: {integrity: sha512-bPrLWbxo8gAo97ZmrCbOdtlz/Dkuy8NK97aFbVpkJ2nJ2Jo/rsCbu0TlGx8joCuA3q6vMWTSn01JY46iwG+clg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.5': + resolution: {integrity: sha512-1gtQJY9JzMAhgAfvd/ZaVOjh/Ju/nCoAsvOVJenWZfs05wb8zq+GOTnZALWGqKIYEtyNpCzvMk+ocGpxwdvaVg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.5': + resolution: {integrity: sha512-dtlaHU2v7MtdxBXoqhxwsWjav7oim7Whc6S9wq/i/uUMTWAzq/gijq1InSgn2yTnh43kR+SFvcSyEF0GCNu1PQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.5': + resolution: {integrity: sha512-fg0F6nAeYcJ3CriqDT1iVrqALMwD37+sLzXs8Rjy8Z1ZHshJoYceodfyUwGJEsQoTyWbliFNRs2wMQNXtT7MVA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.5': + resolution: {integrity: sha512-SO+F2YEIAHa1AITwc8oPwMOWhgorPzzcbhWEb+4oLi953h45FklDmM8dPSZ7hNHpIk9p/SCZKUYn35t5fjGtHA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.5': + resolution: {integrity: sha512-6UbBBplywkk/R+PqqioskUeXfKcBht3KU7juTi1UszJLx0KPXUo10v2Ok04iBJIaDPkIFkUOVboXms5Yxvaz+g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.5': + resolution: {integrity: sha512-hwALf2K9FHuiXTPqmo1KeOb83fTRNbe9r/Ixv9ZNQ/R24yw8Ge1HOWDDgTdtzntIaIUJG5dfXCf4g9AD4RiyhQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.5': + resolution: {integrity: sha512-oDKncffWzaovJbkuR7/OTNFRJQVdiw/n8HnzaCItrNQUeQgjy7oUiYpsm9HUBgpmvmDpSSbGaCa2Evzvk3eFmA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.5': + resolution: {integrity: sha512-WiR4dtyrFdbb+ov0LK+7XsFOsG+0xs0PKZKkt41KDn9jYpO7baE3bXiudPVkTqUEwNfiglCygQHl2jklvSBi7Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.5': + resolution: {integrity: sha512-1n4br1znquEvyW/QuqMKQZlBen+jxAbvyduU87RS8R3tUSvByAkcaMTkJepNIrTlYhD+U25K4iiCIxE6BGdRYA==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.1.5': + resolution: {integrity: sha512-5lAC2/pzuyfhsFgk6I58HcNy6vPK3dV/PoPxSDuOTVbDvCddYHzHiJZZInGIY0venvzzfrTEUAXJFULAfFmObg==} + + '@tailwindcss/typography@0.5.16': + resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + + '@tanstack/query-core@5.74.9': + resolution: {integrity: sha512-qmjXpWyigDw4SfqdSBy24FzRvpBPXlaSbl92N77lcrL+yvVQLQkf0T6bQNbTxl9IEB/SvVFhhVZoIlQvFnNuuw==} + + '@tanstack/query-core@5.81.5': + resolution: {integrity: sha512-ZJOgCy/z2qpZXWaj/oxvodDx07XcQa9BF92c0oINjHkoqUPsmm3uG08HpTaviviZ/N9eP1f9CM7mKSEkIo7O1Q==} + + '@tanstack/query-persist-client-core@5.81.5': + resolution: {integrity: sha512-imiMWYXf8KuXavOgVRc5IDixqP0VKEN6IxZ/vyuX87Wk0eX7QmRtjLn1AD4Hz7GxYPM3RalRzP5Bshc30hgOcg==} + + '@tanstack/react-query-persist-client@5.81.5': + resolution: {integrity: sha512-ZV69n636C22RkbFK0rzel80oWjyWbMKiUwUE2MKhYWTSr42+JmqoehDwJ5sWcO8CxHNm4vWF8pyG+goRzluMYw==} + peerDependencies: + '@tanstack/react-query': ^5.81.5 + react: ^18 || ^19 + + '@tanstack/react-query@5.74.11': + resolution: {integrity: sha512-FFhn9ZiYRUOsxLAWZYxVfQTpVE7UWRaAeHJIWVDHKlmZZGc16rMHW9KrFZ8peC4hA71QUf/shJD8dPSMqDnRmA==} + peerDependencies: + react: ^18 || ^19 + + '@tanstack/react-virtual@3.11.3': + resolution: {integrity: sha512-vCU+OTylXN3hdC8RKg68tPlBPjjxtzon7Ys46MgrSLE+JhSjSTPvoQifV6DQJeJmA8Q3KT6CphJbejupx85vFw==} + 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 + + '@tanstack/virtual-core@3.11.3': + resolution: {integrity: sha512-v2mrNSnMwnPJtcVqNvV0c5roGCBqeogN8jDtgtuHCphdwBasOZ17x8UV8qpHUh+u0MLfX43c0uUHKje0s+Zb0w==} + + '@tiptap/core@2.11.9': + resolution: {integrity: sha512-UZSxQLLyJst47xep3jlyKM6y1ebZnmvbGsB7njBVjfxf5H+4yFpRJwwNqrBHM/vyU55LCtPChojqaYC1wXLf6g==} + peerDependencies: + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-blockquote@2.11.9': + resolution: {integrity: sha512-muGiVb5k86wF01ehbtT5oh1bxwcI0yQo47y9Sso7Jlvd06GW6Ur3X2aJwtKZsV0uPTFliKKLR6DhtLJE1AaR4g==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-bold@2.11.9': + resolution: {integrity: sha512-VUwiKOBr2gFxI098hICgfkeCQqkFZXVFLxKMvu/ohwmuTV412cxtYJZikhN0JuINUjBt+LX1zk72BJ8q2C9puA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-bubble-menu@2.11.9': + resolution: {integrity: sha512-5EttgsqjzlKRd0dmbVlujw47XGHA2JSDI4eEvsJz5O7XcRtzPjBJ+DdH4Q+wlyBf9ZWzVY/1bp90xP1dxHesJg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-bullet-list@2.11.9': + resolution: {integrity: sha512-H9n0ShHVFc+UNZCui/wplDdVoi4MYVFWB1GFOhHSiSe4CCGNW6qftjI7c0NPR7Bhmzga1fraJR5W5H/qCtoPLA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-character-count@2.11.9': + resolution: {integrity: sha512-IKvVmmRoMQlQ2RXq+yz2EPUDROixlWE6gkiRO0nUe+sUZGM74zIWsTPdVE9XLNQ4YOwxq5gTpnrf5LBHqyPb9A==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-code-block@2.11.9': + resolution: {integrity: sha512-brwvt/SdP65DpchPv5rkhjEjjIIgE1+9ySw8kCTiyXWUrmZA0kK/iwp5zPpHfsoWT8Sa9+fh2uraVZGOF9Dcqw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-code@2.11.9': + resolution: {integrity: sha512-RbTdzWk6F1+EsThT2Sj4eQHgkXO3NfFdeNZ/V+t9invJm7duqhprMT0G1aEaSxGvr3rjbdeuwYpSsEeV3Wrw+A==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-document@2.11.9': + resolution: {integrity: sha512-lkrCkMDDLtaPvMljw7vfvwnNZmZTy4uIfbkLdF3BkaV4XAHMVfoOzSbq0uRaTgUSLH8Fv0L1B6Nwol4OYnzI3w==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-dropcursor@2.11.9': + resolution: {integrity: sha512-LqWEaAWyJ3eUrafgKT4UCIvDqhth1cX976dQcAOPg5POmldZ8KgZTeEYZl7AYpzFS++HlTIwJ8PMOu29/g+l+g==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-floating-menu@2.11.9': + resolution: {integrity: sha512-0rWGnfjtDx4AAOUaPd/hJsy5VOPp4A4zjVX+bPiDdSGAJZELQnQRT18GwwjdzKWE+imeGZ4pe/dbPcgD9uY2FA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-gapcursor@2.11.9': + resolution: {integrity: sha512-IFdprIzeDAck0r4mS55ad6tts/AHyLg83jk2jbcy+f7CMGDpoVW8R10ORl8LD8kJBxnC/TqBsbr44mQJtxzDog==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-hard-break@2.11.9': + resolution: {integrity: sha512-S2IfkK+dlX+59KWuUHgtTEjLVsOTEQFt6Kng/lNqKY8G46gujY6L3EDqtPibxs63B+KKOHHOlKShcYZKWzWvvw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-heading@2.11.9': + resolution: {integrity: sha512-Z84Vbw26bnMyIyZ7hc8/xXDD5uAcr4GA1zs0HPs4Er9wROOqkZnlgE54LaObXn2YbMKuDZ24cmCU8LFy0etN+w==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-highlight@2.11.9': + resolution: {integrity: sha512-HWGU46hk8vozcptZcsc53GZnS2//snyhq+rwqY7WIQrbA8P0q/ImjgHRFMyfQcAK412sJbq9vkGzIRQvVOqdJA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-history@2.11.9': + resolution: {integrity: sha512-DqA9tGPqmt5EmREGW2Wg3vc+Qb6rBeSmuHeQ9R4M4dYJYSh2gBheunBNnerQlZDj9Dk4H8NGgAz2YLrAkSlxSA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-horizontal-rule@2.11.9': + resolution: {integrity: sha512-7UhwRZPA3ykKTat4ooY/GzGO4wy9040vzsnev+189BHIMvxe4I483B1v3sUBvUJrFf8z0+iWulJx3zoTskieoA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-italic@2.11.9': + resolution: {integrity: sha512-xLQW6OtOwTEOkyvEX0jQcbm4kfjl1uOLMJ5daHolCR3DiEDWoxYrZrs2lt467nf5Sz4/50MQqGuZw8pVfWWxqg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-link@2.11.9': + resolution: {integrity: sha512-gi1UonACmQ/T81QdpIociNEIFPr9h6CKoMxfdZgYRrVWMsZuANuXooSjL8d8OirzWkPHxmbhEMyWjcTAV+HYgw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-list-item@2.11.9': + resolution: {integrity: sha512-57VO0Joe8WEEz2ypxY64TYx4KenFaqYnhrTLsWUvlearpBXbTFc8IaI/rdLubgJlEE5Q3e+NirCyQSLCE8a2Zg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-ordered-list@2.11.9': + resolution: {integrity: sha512-jLRn0L6nRJ/yp3JEVuk1elc11XPSF4lDTQdj45EMSgxMoHU13LF9MZm2H2jwLXPpBflB/MVJtt9Nd2XzOPTGcw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-paragraph@2.11.9': + resolution: {integrity: sha512-smoxsfujsPJ9GVXG03QqM7yBwVfaLQa0l8VHPXaJUIjjvSpG1g8WlaxC46JB4Ba4W9KlrkPt1fdEpNcelRwcmw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-placeholder@2.11.9': + resolution: {integrity: sha512-bUlvLKjLK4TUf3XKWZpReuIxMPvXfhKrtzxLnE2RJerHpLjiACliqVwMN0XJ3JyEW0DwBax6tSH0jlBSo4c4Vg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-strike@2.11.9': + resolution: {integrity: sha512-YFZ/Mjv/wA13oO8wEK4DVw6zSuYfEz4NLF6EA2mMo8N6UUSrBFEWiGE3pHBysIwcRXTaUzzGoYN+lohbmpHwBQ==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-text-style@2.11.9': + resolution: {integrity: sha512-lB3uJBRiRYTCxtNeEF70IiwzGFfAU69xvsHpQowJU357lZsTj/QPRQt8Blu48qIoUAJGU00vGRTLae6X9myMMw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-text@2.11.9': + resolution: {integrity: sha512-OGjdsXN+d3UZFQZ+r+ozX20G7BcHWCGkn9XZUVItJwzpNa9x4EiPsKCJVk17jVFRAsAHdMBcsBRdErzdO6/Hrg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-typography@2.11.9': + resolution: {integrity: sha512-fT8JRKXxSWJ6A8Sg3Cixm93seLLABsQlz8x0N0VNq4AXFaN2gSa/J24Y+h3FUejqTVuegzj29SrDFtqD5A01+Q==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-underline@2.11.9': + resolution: {integrity: sha512-b8MwovgUqaDZSwCJ48ug9cKBBD3prwPTUH0IZ8HofodHc8VF8xbPmUEpePRnCYaV0ONGKPHkiz1crIwj1FBK+A==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/pm@2.11.9': + resolution: {integrity: sha512-hhonYVcL3fRkWyiCFJQ7HHXtmFviwnof8VDRFX1vm69GskGeqUTJUFR+1as2hZYekHe5rO4FZUm1dlETDWTnzQ==} + + '@tiptap/react@2.11.9': + resolution: {integrity: sha512-cjQICAcx5eTlAsACbVHuDI0d2UO10lijTHhtn6WyaCzpcWcVp6RgHgn6//ffWg7oQB0IfJFRZy5tpEvNMOVuvA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tiptap/starter-kit@2.11.9': + resolution: {integrity: sha512-UUx5t1PrwR+KVOjTkmGC1duOq6Ubz/fsetI1OieyegMT/2J1wkFFP1w3NFZarj5jo0GLBt3GMlBwS9GY8cJUxQ==} + + '@twemoji/api@15.1.0': + resolution: {integrity: sha512-CySXR4/e6vY0z9lC2tW9EVjsH6zzz2/LQvLRMwwpHsDI4xcaweSIP+LcESf1Mq7w2/zcrrhG4ozniMvpSsEXag==} + + '@twemoji/parser@15.1.0': + resolution: {integrity: sha512-3HTiSxPvkWUJ4kZeCvwyKlIwkpTUfBOk6igpBBRQni58ceQMv5YK4smkc8vX/eqOlMMNER/9qobv+Q6Q8LVrqA==} + + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + + '@types/canvas-confetti@1.9.0': + resolution: {integrity: sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/d3-array@3.2.1': + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.6': + resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.3': + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-shape@3.1.7': + resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + + '@types/dagre@0.7.52': + resolution: {integrity: sha512-XKJdy+OClLk3hketHi9Qg6gTfe1F3y+UFnHxKA2rn9Dw+oXa4Gb378Ztz9HlMgZKSxpPmn4BNVh9wgkpvrK1uw==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + + '@types/hast@2.3.10': + resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/he@1.2.3': + resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==} + + '@types/html-to-text@9.0.4': + resolution: {integrity: sha512-pUY3cKH/Nm2yYrEmDlPR1mR7yszjGx4DrwPjQ702C4/D5CwHuZTgZdIdwPkRbcuhs7BAh2L5rg3CL5cbRiGTCQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/lodash.debounce@4.0.9': + resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} + + '@types/lodash@4.17.16': + resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/mysql@2.15.27': + resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} + + '@types/node-fetch@2.6.13': + resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} + + '@types/node@18.19.121': + resolution: {integrity: sha512-bHOrbyztmyYIi4f1R0s17QsPs1uyyYnGcXeZoGEd227oZjry0q6XQBQxd82X1I57zEfwO8h9Xo+Kl5gX1d9MwQ==} + + '@types/node@22.15.21': + resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/pg-pool@2.0.6': + resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + + '@types/pg@8.15.4': + resolution: {integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==} + + '@types/react-dom@19.1.3': + resolution: {integrity: sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==} + peerDependencies: + '@types/react': ^19.0.0 + + '@types/react-syntax-highlighter@15.5.13': + resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==} + + '@types/react-twemoji@0.4.3': + resolution: {integrity: sha512-VzWkjmO8yJ31JSWgQhe0LCLU3FxcurTOklECm9p8v1xI/WfUBOGbSrqPjQPL46LE4oOqfrYIQ+0LM/8I6A8EDQ==} + + '@types/react-window-infinite-loader@1.0.9': + resolution: {integrity: sha512-gEInTjQwURCnDOFyIEK2+fWB5gTjqwx30O62QfxA9stE5aiB6EWkGj4UMhc0axq7/FV++Gs/TGW8FtgEx0S6Tw==} + + '@types/react-window@1.8.8': + resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} + + '@types/react@19.1.2': + resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==} + + '@types/shimmer@1.2.0': + resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + + '@types/tedious@4.0.14': + resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} + + '@types/tinycolor2@1.4.6': + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@typescript-eslint/eslint-plugin@8.31.1': + resolution: {integrity: sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.31.1': + resolution: {integrity: sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.31.1': + resolution: {integrity: sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.31.1': + resolution: {integrity: sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/types@8.31.1': + resolution: {integrity: sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.31.1': + resolution: {integrity: sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.31.1': + resolution: {integrity: sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@8.31.1': + resolution: {integrity: sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-darwin-arm64@1.7.2': + resolution: {integrity: sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.7.2': + resolution: {integrity: sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.7.2': + resolution: {integrity: sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.2': + resolution: {integrity: sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.2': + resolution: {integrity: sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.7.2': + resolution: {integrity: sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.7.2': + resolution: {integrity: sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.2': + resolution: {integrity: sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.2': + resolution: {integrity: sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.7.2': + resolution: {integrity: sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.7.2': + resolution: {integrity: sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.7.2': + resolution: {integrity: sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.7.2': + resolution: {integrity: sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.7.2': + resolution: {integrity: sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.7.2': + resolution: {integrity: sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.7.2': + resolution: {integrity: sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.7.2': + resolution: {integrity: sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==} + cpu: [x64] + os: [win32] + + '@use-gesture/core@10.3.1': + resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} + + '@use-gesture/react@10.3.1': + resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} + peerDependencies: + react: '>= 16.8.0' + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + '@xyflow/react@12.6.0': + resolution: {integrity: sha512-YzsSK4SlpC6e9Ki1g6O9B1UH7xvz/bzWF+tJ+vWDD8Am5xJmFn0jYnCEuqvzvH8dRKb1NFBmyuqEGqWN39xXsA==} + peerDependencies: + react: '>=17' + react-dom: '>=17' + + '@xyflow/system@0.0.57': + resolution: {integrity: sha512-1YpBo0WgmZLR5wQw9Jvk3Tu0gISi/oYc4uSimrDuAsA/G2rGleulLrKkM59uuT/QU5m6DYC2VdBDAzjSNMGuBA==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-move@3.0.1: + resolution: {integrity: sha512-H3Of6NIn2nNU1gsVDqDnYKY/LCdWvCMMOWifNGhKcVQgiZ6nOek39aESOvro6zmueP07exSl93YLvkN4fZOkSg==} + engines: {node: '>=10'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + attr-accept@2.2.5: + resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==} + engines: {node: '>=4'} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} + engines: {node: '>=4'} + + axios-cache-interceptor@1.8.0: + resolution: {integrity: sha512-cTNnPGJyQkxnWp0EWvE3NRvgURU5cWw/Qx3dIhXyHSM4Ip0c7EEe0I3an0Jwa549m1CAOg57ibj27YRNLmQCcg==} + engines: {node: '>=12'} + peerDependencies: + axios: ^1 + + axios@1.9.0: + resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + barrelsby@2.8.1: + resolution: {integrity: sha512-barN2MVKqUVwmjRy3JLSMYufrBDcdWUc2pjlR0V9P8S3aMvvJ4StFz1GJMzEi5GBoQlnBIWOcCxBDzI2xfaaGw==} + engines: {node: '>=6.0.0'} + hasBin: true + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.25.2: + resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bson-objectid@2.0.4: + resolution: {integrity: sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + cache-parser@1.2.5: + resolution: {integrity: sha512-Md/4VhAHByQ9frQ15WD6LrMNiVw9AEl/J7vWIXw+sxT6fSOpbtt6LHTp76vy8+bOESPBO94117Hm2bIjlI7XjA==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsite@1.0.0: + resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001726: + resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==} + + caniuse-lite@1.0.30001733: + resolution: {integrity: sha512-e4QKw/O2Kavj2VQTKZWrwzkt3IxOmIlU6ajRb6LP64LHpBo1J67k2Hi4Vu/TgJWsNtynurfS0uK3MaUTCPfu5Q==} + + canvas-confetti@1.9.3: + resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} + + canvas@3.1.0: + resolution: {integrity: sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==} + engines: {node: ^18.12.0 || >= 20.9.0} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chevrotain-allstar@0.3.1: + resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} + peerDependencies: + chevrotain: ^11.0.0 + + chevrotain@11.0.3: + resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + classcat@5.0.5: + resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + cmdk@0.2.1: + resolution: {integrity: sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + cmdk@1.1.1: + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color2k@2.0.3: + resolution: {integrity: sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js@3.45.0: + resolution: {integrity: sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==} + + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape@3.31.4: + resolution: {integrity: sha512-JfUX/esCfnBGP+uNqRSkAr8jDr1HDSEm6jUNG+BToi43zwLisWrArZjIboB3NfCF5yKu2eG6sbPYaefEEaufyQ==} + engines: {node: '>=0.10'} + + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + dagre-d3-es@7.0.11: + resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} + + dagre@0.8.5: + resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + date-fns-tz@3.2.0: + resolution: {integrity: sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==} + peerDependencies: + date-fns: ^3.0.0 || ^4.0.0 + + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js-light@2.5.1: + resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} + + decimal.js@10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + + decode-named-character-reference@1.1.0: + resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delaunator@5.0.1: + resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depcheck@1.4.7: + resolution: {integrity: sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==} + engines: {node: '>=10'} + hasBin: true + + deps-regex@0.2.0: + resolution: {integrity: sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + dodopayments@1.44.0: + resolution: {integrity: sha512-qZvMamcFclI8xOf5cGTV3PYVBBMTkN0CFD/cUbdXy3lHwmM6eB7ZWRctZX68HzwMCQUV5NOVviILvuqYrPaENw==} + + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + dompurify@3.2.5: + resolution: {integrity: sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + electron-to-chromium@1.5.199: + resolution: {integrity: sha512-3gl0S7zQd88kCAZRO/DnxtBKuhMO4h0EaQIN3YgZfV6+pW+5+bf2AdQeHNESCoaQqo/gjGVYEf2YM4O5HJQqpQ==} + + embla-carousel-react@8.6.0: + resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} + peerDependencies: + react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + + embla-carousel-reactive-utils@8.6.0: + resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==} + peerDependencies: + embla-carousel: 8.6.0 + + embla-carousel@8.6.0: + resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==} + + emblor@1.4.8: + resolution: {integrity: sha512-Vqtz4Gepa7CIkmplQ+kvJnsSZJ4sAyHvQqqX2iCmgoRo5iRQFxr+5FJkk6QuLVNH5vrbBZEYxg7sMZuDCnQ/PQ==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-config-next@15.3.1: + resolution: {integrity: sha512-GnmyVd9TE/Ihe3RrvcafFhXErErtr2jS0JDeCSp3vWvy86AXwHsRBt0E3MqP/m8ACS1ivcsi5uaqjbhsG18qKw==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.10.1: + resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-simple-import-sort@12.1.1: + resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} + peerDependencies: + eslint: '>=5.0.0' + + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.25.1: + resolution: {integrity: sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + + exsolve@1.0.5: + resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-defer@1.1.8: + resolution: {integrity: sha512-lEJeOH5VL5R09j6AA0D4Uvq7AgsHw0dAImQQ+F3iSyHZuAxyQfWobsagGpTcOPvJr3urmKRHrs+Gs9hV+/Qm/Q==} + + fast-equals@5.2.2: + resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} + engines: {node: '>=6.0.0'} + + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fault@1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} + + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fflate@0.4.8: + resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} + + figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-selector@2.1.2: + resolution: {integrity: sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==} + engines: {node: '>= 12'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + engines: {node: '>= 6'} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + forwarded-parse@2.1.2: + resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} + + framer-motion@12.9.2: + resolution: {integrity: sha512-R0O3Jdqbfwywpm45obP+8sTgafmdEcUoShQTAV+rB5pi+Y1Px/FYL5qLLRe5tPtBdN1J4jos7M+xN2VV2oEAbQ==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + + global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + + global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphlib@2.1.8: + resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} + + gsap@3.13.0: + resolution: {integrity: sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + highlight.js@11.11.1: + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} + engines: {node: '>=12.0.0'} + + highlightjs-vue@1.0.0: + resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + + html-dom-parser@5.1.1: + resolution: {integrity: sha512-+o4Y4Z0CLuyemeccvGN4bAO20aauB2N9tFEAep5x4OW34kV4PTarBHm6RL02afYt2BMKcr0D2Agep8S3nJPIBg==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-react-parser@5.2.6: + resolution: {integrity: sha512-qcpPWLaSvqXi+TndiHbCa+z8qt0tVzjMwFGFBAa41ggC+ZA5BHaMIeMJla9g3VSp4SmiZb9qyQbmbpHYpIfPOg==} + peerDependencies: + '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 + react: 0.14 || 15 || 16 || 17 || 18 || 19 + peerDependenciesMeta: + '@types/react': + optional: true + + html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + + html-url-attributes@3.0.1: + resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + + htmlparser2@10.0.0: + resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + idb-keyval@6.2.2: + resolution: {integrity: sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + + immutable@5.1.3: + resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-in-the-middle@1.14.2: + resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + + input-otp@1.4.1: + resolution: {integrity: sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + + input-otp@1.4.2: + resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + intl-messageformat@10.7.16: + resolution: {integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==} + + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@5.0.0: + resolution: {integrity: sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w==} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + katex@0.16.22: + resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + langium@3.3.1: + resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} + engines: {node: '>=16.0.0'} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + + leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + + lenis@1.3.4: + resolution: {integrity: sha512-WIGk8wiV2ABm/T7M+NC+tAV8fjzNJD1J4z11aZ3mTtx7WAZX/4QdCNhBO0g/TqXISA+/3hTbzrPC4FW1nhoNMQ==} + peerDependencies: + '@nuxt/kit': '>=3.0.0' + react: '>=17.0.0' + vue: '>=3.0.0' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + react: + optional: true + vue: + optional: true + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-darwin-arm64@1.29.2: + resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.29.2: + resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.2: + resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.2: + resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.2: + resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.2: + resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.2: + resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.2: + resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.2: + resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.2: + resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.2: + resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} + engines: {node: '>= 12.0.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + linkifyjs@4.2.0: + resolution: {integrity: sha512-pCj3PrQyATaoTYKHrgWRF3SJwsm61udVh+vuls/Rl6SptiDhgE7ziUIudAedRY9QEfynmM7/RmLEfPUyw1HPCw==} + + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + local-pkg@1.1.1: + resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} + engines: {node: '>=14'} + + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lowlight@1.20.0: + resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} + + lowlight@3.3.0: + resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lucide-react@0.483.0: + resolution: {integrity: sha512-WldsY17Qb/T3VZdMnVQ9C3DDIP7h1ViDTHVdVGnLZcvHNg30zH/MTQ04RTORjexoGmpsXroiQXZ4QyR0kBy0FA==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + + make-cancellable-promise@1.3.2: + resolution: {integrity: sha512-GCXh3bq/WuMbS+Ky4JBPW1hYTOU+znU+Q5m9Pu+pI8EoUqIHk9+tviOKC6/qhHh8C4/As3tzJ69IF32kdz85ww==} + + make-event-props@1.6.2: + resolution: {integrity: sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + marked@15.0.11: + resolution: {integrity: sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==} + engines: {node: '>= 18'} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + merge-refs@1.3.0: + resolution: {integrity: sha512-nqXPXbso+1dcKDpPCXvwZyJILz+vSLqGGOnDrYHQYE+B8n9JTCekVLC65AfCpR4ggVyA/45Y0iR9LDyS2iI+zA==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + mermaid@11.6.0: + resolution: {integrity: sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + + minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + motion-dom@12.9.1: + resolution: {integrity: sha512-xqXEwRLDYDTzOgXobSoWtytRtGlf7zdkRfFbrrdP7eojaGQZ5Go4OOKtgnx7uF8sAkfr1ZjMvbCJSCIT2h6fkQ==} + + motion-utils@12.8.3: + resolution: {integrity: sha512-GYVauZEbca8/zOhEiYOY9/uJeedYQld6co/GJFKOy//0c/4lDqk0zB549sBYqqV2iMuX+uHrY1E5zd8A2L+1Lw==} + + motion@12.9.2: + resolution: {integrity: sha512-2hwi4wlOpt/zDHcDZATL2FFhYgj2n6t5Hd0UT91swMup6dx6KpFRkTydYJkkV0PUImT1QfC+WT5d0eRekTKpcg==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + + napi-postinstall@0.2.3: + resolution: {integrity: sha512-Mi7JISo/4Ij2tDZ2xBE2WH+/KvVlkhA6juEjpEeRAVPNCpN3nxJo/5FhDNKgBcdmcmhaH6JjgST4xY/23ZYK0w==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + + next@15.3.3: + resolution: {integrity: sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + node-abi@3.74.0: + resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} + engines: {node: '>=10'} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm@11.3.0: + resolution: {integrity: sha512-luthFIP0nFX3+nTfYbWI3p4hP4CiVnKOZ5jdxnF2x7B+Shz8feiSJCLLzgJUNxQ2cDdTaVUiH6RRsMT++vIMZg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + bundledDependencies: + - '@isaacs/string-locale-compare' + - '@npmcli/arborist' + - '@npmcli/config' + - '@npmcli/fs' + - '@npmcli/map-workspaces' + - '@npmcli/package-json' + - '@npmcli/promise-spawn' + - '@npmcli/redact' + - '@npmcli/run-script' + - '@sigstore/tuf' + - abbrev + - archy + - cacache + - chalk + - ci-info + - cli-columns + - fastest-levenshtein + - fs-minipass + - glob + - graceful-fs + - hosted-git-info + - ini + - init-package-json + - is-cidr + - json-parse-even-better-errors + - libnpmaccess + - libnpmdiff + - libnpmexec + - libnpmfund + - libnpmorg + - libnpmpack + - libnpmpublish + - libnpmsearch + - libnpmteam + - libnpmversion + - make-fetch-happen + - minimatch + - minipass + - minipass-pipeline + - ms + - node-gyp + - nopt + - normalize-package-data + - npm-audit-report + - npm-install-checks + - npm-package-arg + - npm-pick-manifest + - npm-profile + - npm-registry-fetch + - npm-user-validate + - p-map + - pacote + - parse-conflict-json + - proc-log + - qrcode-terminal + - read + - semver + - spdx-expression-parse + - ssri + - supports-color + - tar + - text-table + - tiny-relative-date + - treeverse + - validate-npm-package-name + - which + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-code@1.3.3: + resolution: {integrity: sha512-/Ds4Xd5xzrtUOJ+xJQ57iAy0BZsZltOHssnDgcZ8DOhgh41q1YJCnTPnWdWSLkNGNnxYzhYChjc5dgC9mEERCA==} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + orderedmap@2.1.1: + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path2d@0.2.2: + resolution: {integrity: sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ==} + engines: {node: '>=6'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pdfjs-dist@4.8.69: + resolution: {integrity: sha512-IHZsA4T7YElCKNNXtiLgqScw4zPd3pG9do8UrznC757gMd7UPeHSL2qwNNMJo4r79fl8oj1Xx+1nh2YkzdMpLQ==} + engines: {node: '>=18'} + + peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-protocol@1.10.3: + resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} + engines: {node: '>=4'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.1.0: + resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + + please-upgrade-node@3.2.0: + resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + + posthog-js@1.259.0: + resolution: {integrity: sha512-6usLnJshky8fQ82ask7PIJh4BSFOU0VkRbFg8Zanm/HIlYMG1VOdRWlToA63JXeO7Bzm9TuREq1wFm5U2VEVCg==} + peerDependencies: + '@rrweb/types': 2.0.0-alpha.17 + rrweb-snapshot: 2.0.0-alpha.17 + peerDependenciesMeta: + '@rrweb/types': + optional: true + rrweb-snapshot: + optional: true + + posthog-node@5.6.0: + resolution: {integrity: sha512-MVXxKmqAYp2cPBrN1YMhnhYsJYIu6yc6wumbHz1dbo67wZBf2WtMm67Uh+4VCrp07049qierWlxQqz1W5zGDeg==} + engines: {node: '>=20'} + + preact@10.27.0: + resolution: {integrity: sha512-/DTYoB6mwwgPytiqQTh/7SFRL98ZdiD8Sk8zIUVOxtwq4oWcwrcd1uno9fE/zZmUaUrFNYzbH14CPebOz9tZQw==} + + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-tailwindcss@0.6.11: + resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + + prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} + engines: {node: '>=6'} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + + property-information@7.0.0: + resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + + prosemirror-changeset@2.2.1: + resolution: {integrity: sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==} + + prosemirror-collab@1.3.1: + resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} + + prosemirror-commands@1.7.1: + resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + + prosemirror-dropcursor@1.8.2: + resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} + + prosemirror-gapcursor@1.3.2: + resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==} + + prosemirror-history@1.4.1: + resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==} + + prosemirror-inputrules@1.5.0: + resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==} + + prosemirror-keymap@1.2.2: + resolution: {integrity: sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==} + + prosemirror-markdown@1.13.2: + resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==} + + prosemirror-menu@1.2.5: + resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} + + prosemirror-model@1.25.1: + resolution: {integrity: sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==} + + prosemirror-schema-basic@1.2.4: + resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==} + + prosemirror-schema-list@1.5.1: + resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + + prosemirror-state@1.4.3: + resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} + + prosemirror-tables@1.7.1: + resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==} + + prosemirror-trailing-node@3.0.0: + resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} + peerDependencies: + prosemirror-model: ^1.22.1 + prosemirror-state: ^1.4.2 + prosemirror-view: ^1.33.8 + + prosemirror-transform@1.10.4: + resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==} + + prosemirror-view@1.39.2: + resolution: {integrity: sha512-BmOkml0QWNob165gyUxXi5K5CVUgVPpqMEAAml/qzgKn9boLUWVPzQ6LtzXw8Cn1GtRQX4ELumPxqtLTDaAKtg==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-day-picker@8.10.1: + resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} + peerDependencies: + date-fns: ^2.28.0 || ^3.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + peerDependencies: + react: ^19.1.0 + + react-dropzone@14.3.8: + resolution: {integrity: sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==} + engines: {node: '>= 10.13'} + peerDependencies: + react: '>= 16.8 || 18.0.0' + + react-easy-sort@1.6.0: + resolution: {integrity: sha512-zd9Nn90wVlZPEwJrpqElN87sf9GZnFR1StfjgNQVbSpR5QTSzCHjEYK6REuwq49Ip+76KOMSln9tg/ST2KLelg==} + engines: {node: '>=16'} + peerDependencies: + react: '>=16.4.0' + react-dom: '>=16.4.0' + + react-hook-form@7.56.1: + resolution: {integrity: sha512-qWAVokhSpshhcEuQDSANHx3jiAEFzu2HAaaQIzi/r9FNPm1ioAvuJSD4EuZzWd7Al7nTRKcKPnBKO7sRn+zavQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-intersection-observer@9.16.0: + resolution: {integrity: sha512-w9nJSEp+DrW9KmQmeWHQyfaP6b03v+TdXynaoA964Wxt7mdR3An11z4NNCQgL4gKSK7y1ver2Fq+JKH6CWEzUA==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + react-dom: + optional: true + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-markdown@10.1.0: + resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} + peerDependencies: + '@types/react': '>=18' + react: '>=18' + + react-pdf@9.2.1: + resolution: {integrity: sha512-AJt0lAIkItWEZRA5d/mO+Om4nPCuTiQ0saA+qItO967DTjmGjnhmF+Bi2tL286mOTfBlF5CyLzJ35KTMaDoH+A==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.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 + peerDependenciesMeta: + '@types/react': + optional: true + + react-property@2.0.2: + resolution: {integrity: sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==} + + react-redux@9.2.0: + resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + peerDependencies: + '@types/react': ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.4: + resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.6.3: + resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-resizable-panels@2.1.9: + resolution: {integrity: sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==} + peerDependencies: + react: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + + react-smooth@4.0.4: + resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} + 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 + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-swipeable-list@1.10.0: + resolution: {integrity: sha512-Ap85a3c5sgvglZBlaansfT6VfwuMad5U4puxFW4sJbUU6alE7epzW39CHvs5AohUZi7wjlP1KFunpXoD+iUyGQ==} + + react-syntax-highlighter@15.6.1: + resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==} + peerDependencies: + react: '>= 0.14.0' + + react-textarea-autosize@8.5.9: + resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react-twemoji@0.6.0: + resolution: {integrity: sha512-D7lP83ysE+yXZd5U1RV3aFiD90D0LCz5tgDaIXt4AYazCakGVTYClof8lf0uYLr4TzDHgYX46rMASEEqiopSAQ==} + engines: {node: '>=5.0'} + peerDependencies: + react: '>=16.4.2' + + react-window-infinite-loader@1.0.10: + resolution: {integrity: sha512-NO/csdHlxjWqA2RJZfzQgagAjGHspbO2ik9GtWZb0BY1Nnapq0auG8ErI+OhGCzpjYJsCYerqUlK6hkq9dfAAA==} + engines: {node: '>8.0.0'} + peerDependencies: + react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react-window@1.8.11: + resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==} + engines: {node: '>8.0.0'} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + + reactflow@11.11.4: + resolution: {integrity: sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==} + peerDependencies: + react: '>=17' + react-dom: '>=17' + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + recharts-scale@0.4.5: + resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} + + recharts@2.15.3: + resolution: {integrity: sha512-EdOPzTwcFSuqtvkDoaM5ws/Km1+WTAO2eizL7rqiG0V2UVhTnz0m7J2i0CjVPUCdEkZImaWvXLbZDS2H5t6GFQ==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + rehype-highlight@7.0.2: + resolution: {integrity: sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-mdx@3.1.0: + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-in-the-middle@7.5.2: + resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} + engines: {node: '>=8.6.0'} + + require-package-name@2.0.1: + resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} + + reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + + resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + robust-predicates@3.0.2: + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + + rollup@4.46.2: + resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rope-sequence@1.3.4: + resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass@1.86.0: + resolution: {integrity: sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==} + engines: {node: '>=14.0.0'} + hasBin: true + + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + + schema-utils@4.3.2: + resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} + engines: {node: '>= 10.13.0'} + + scroll-into-view-if-needed@3.0.10: + resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==} + + selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + sharp@0.34.2: + resolution: {integrity: sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sonner@2.0.3: + resolution: {integrity: sha512-njQ4Hht92m0sMqqHVDL32V2Oun9W1+PHO9NDv9FHfJjT3JT22IG4Jpo3FPQy+mouRKCXFWO+r67v6MrHX2zeIA==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + + stacktrace-parser@0.1.11: + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} + engines: {node: '>=6'} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + style-to-js@1.1.16: + resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + stylis@4.3.6: + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tailwind-merge@3.0.2: + resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==} + + tailwind-merge@3.2.0: + resolution: {integrity: sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==} + + tailwind-merge@3.3.1: + resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} + + tailwind-variants@1.0.0: + resolution: {integrity: sha512-2WSbv4ulEEyuBKomOunut65D8UZwxrHoRfYnxGcQNnHqlSCp2+B7Yz2W+yrNDrxRodOXtGD/1oCcKGNBnUqMqA==} + engines: {node: '>=16.x', pnpm: '>=7.x'} + peerDependencies: + tailwindcss: '*' + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@4.1.5: + resolution: {integrity: sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA==} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-fs@2.1.3: + resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.14: + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.43.1: + resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} + engines: {node: '>=10'} + hasBin: true + + third-party-capital@1.0.20: + resolution: {integrity: sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.13: + resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} + engines: {node: '>=12.0.0'} + + tippy.js@6.3.7: + resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.0.1: + resolution: {integrity: sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + unplugin@1.0.1: + resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} + + unrs-resolver@1.7.2: + resolution: {integrity: sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-composed-ref@1.4.0: + resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-isomorphic-layout-effect@1.2.0: + resolution: {integrity: sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-latest@1.3.0: + resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.5.0: + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + vaul@1.1.2: + resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + victory-vendor@36.9.2: + resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + + watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + engines: {node: '>=10.13.0'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + web-vitals@4.2.4: + resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true + + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + + webpack@5.101.0: + resolution: {integrity: sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod@3.24.3: + resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==} + + zustand@4.5.6: + resolution: {integrity: sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/install-pkg@1.0.0': + dependencies: + package-manager-detector: 0.2.11 + tinyexec: 0.3.2 + + '@antfu/utils@8.1.1': {} + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.28.0': {} + + '@babel/core@7.28.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helpers': 7.28.2 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.2 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.27.1': + dependencies: + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/generator@7.28.0': + dependencies: + '@babel/parser': 7.28.0 + '@babel/types': 7.28.2 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.25.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.2 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.2': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.2 + + '@babel/parser@7.27.1': + dependencies: + '@babel/types': 7.27.1 + + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.2 + + '@babel/runtime@7.27.1': {} + + '@babel/template@7.27.1': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.2 + + '@babel/traverse@7.27.1': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.28.0': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.27.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@babel/types@7.28.2': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@braintree/sanitize-url@7.1.1': {} + + '@chevrotain/cst-dts-gen@11.0.3': + dependencies: + '@chevrotain/gast': 11.0.3 + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 + + '@chevrotain/gast@11.0.3': + dependencies: + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 + + '@chevrotain/regexp-to-ast@11.0.3': {} + + '@chevrotain/types@11.0.3': {} + + '@chevrotain/utils@11.0.3': {} + + '@discoveryjs/json-ext@0.5.7': {} + + '@emnapi/core@1.4.3': + dependencies: + '@emnapi/wasi-threads': 1.0.2 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.0.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.6.1(eslint@9.25.1(jiti@2.4.2))': + dependencies: + eslint: 9.25.1(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.20.0': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.2.1': {} + + '@eslint/core@0.13.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.25.1': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.2.8': + dependencies: + '@eslint/core': 0.13.0 + levn: 0.4.1 + + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/dom': 1.6.13 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@floating-ui/utils@0.2.9': {} + + '@fontsource-variable/inter@5.2.6': {} + + '@formatjs/ecma402-abstract@2.3.4': + dependencies: + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.1 + decimal.js: 10.5.0 + tslib: 2.8.1 + + '@formatjs/fast-memoize@2.2.7': + dependencies: + tslib: 2.8.1 + + '@formatjs/icu-messageformat-parser@2.11.2': + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/icu-skeleton-parser': 1.8.14 + tslib: 2.8.1 + + '@formatjs/icu-skeleton-parser@1.8.14': + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + tslib: 2.8.1 + + '@formatjs/intl-localematcher@0.6.1': + dependencies: + tslib: 2.8.1 + + '@heroui/accordion@2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/divider': 2.2.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.6(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-accordion': 2.2.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/button': 3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tree': 3.8.8(react@19.1.0) + '@react-types/accordion': 3.0.0-alpha.26(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/accordion@2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-accordion': 2.2.10-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/button': 3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tree': 3.8.8(react@19.1.0) + '@react-types/accordion': 3.0.0-alpha.26(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/alert@2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/aria-utils@2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.2(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + - framer-motion + + '@heroui/aria-utils@2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.2(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + - framer-motion + + '@heroui/aria-utils@2.2.19(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/system': 2.4.18(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.5(react@19.1.0) + '@react-types/overlays': 3.8.16(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + - framer-motion + + '@heroui/autocomplete@2.3.17(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/input': 2.4.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/listbox': 2.3.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/scroll-shadow': 2.3.10(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/spinner': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + '@react-aria/combobox': 3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/combobox': 3.10.3(react@19.1.0) + '@react-types/combobox': 3.13.3(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + + '@heroui/autocomplete@2.3.19-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/input': 2.4.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/listbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/scroll-shadow': 2.3.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/combobox': 3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/combobox': 3.10.3(react@19.1.0) + '@react-types/combobox': 3.13.3(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + + '@heroui/avatar@2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-image': 2.1.7(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/avatar@2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-image': 2.1.9-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/badge@2.2.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/breadcrumbs@2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/breadcrumbs': 3.5.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/breadcrumbs': 3.7.11(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/button@2.2.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/ripple': 2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/spinner': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/button': 3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/button@2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/ripple': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/button': 3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/button@2.2.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.11(react@19.1.0) + '@heroui/ripple': 2.2.17(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/spinner': 2.2.19(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/calendar@2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@internationalized/date': 3.7.0 + '@react-aria/calendar': 3.7.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/calendar': 3.7.1(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/calendar': 3.6.1(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@types/lodash.debounce': 4.0.9 + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + scroll-into-view-if-needed: 3.0.10 + + '@heroui/calendar@2.2.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/button': 2.2.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.9(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.18(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.11(react@19.1.0) + '@heroui/shared-icons': 2.1.9(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@internationalized/date': 3.8.2 + '@react-aria/calendar': 3.8.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/calendar': 3.8.2(react@19.1.0) + '@react-stately/utils': 3.10.7(react@19.1.0) + '@react-types/button': 3.12.2(react@19.1.0) + '@react-types/calendar': 3.7.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + scroll-into-view-if-needed: 3.0.10 + + '@heroui/card@2.2.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/ripple': 2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/button': 3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/card@2.2.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/ripple': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/button': 3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/checkbox@2.3.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-callback-ref': 2.1.6(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + '@react-aria/checkbox': 3.15.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/checkbox': 3.6.12(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/checkbox@2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-callback-ref': 2.1.8-beta.1(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/checkbox': 3.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/checkbox': 3.6.12(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/checkbox@2.3.18(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.18(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-callback-ref': 2.1.7(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.7(react@19.1.0) + '@react-aria/checkbox': 3.15.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/checkbox': 3.6.13(react@19.1.0) + '@react-stately/toggle': 3.8.3(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/chip@2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/chip@2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/code@2.2.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/code@2.2.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/date-input@2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@internationalized/date': 3.7.0 + '@react-aria/datepicker': 3.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/datepicker': 3.13.0(react@19.1.0) + '@react-types/datepicker': 3.11.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/date-input@2.3.21(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.21(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.11(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@internationalized/date': 3.8.2 + '@react-aria/datepicker': 3.14.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/datepicker': 3.14.2(react@19.1.0) + '@react-types/datepicker': 3.12.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/date-picker@2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/calendar': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/date-input': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@internationalized/date': 3.7.0 + '@react-aria/datepicker': 3.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/datepicker': 3.13.0(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/datepicker': 3.11.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/date-picker@2.3.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.19(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/calendar': 2.2.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/date-input': 2.3.21(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.21(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.11(react@19.1.0) + '@heroui/shared-icons': 2.1.9(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@internationalized/date': 3.8.2 + '@react-aria/datepicker': 3.14.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/datepicker': 3.14.2(react@19.1.0) + '@react-stately/utils': 3.10.7(react@19.1.0) + '@react-types/datepicker': 3.12.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/divider@2.2.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/divider@2.2.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/dom-animation@2.1.6(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': + dependencies: + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + + '@heroui/dom-animation@2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': + dependencies: + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + + '@heroui/dom-animation@2.1.9(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': + dependencies: + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + + '@heroui/drawer@2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/modal': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/dropdown@2.3.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/menu': 2.2.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/menu': 3.18.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/dropdown@2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/menu': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/menu': 3.18.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/form@2.1.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.2(react@19.1.0) + '@react-types/form': 3.7.10(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/form@2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.2(react@19.1.0) + '@react-types/form': 3.7.10(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/form@2.1.18(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-types/form': 3.7.11(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/form@2.1.21(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.5(react@19.1.0) + '@react-types/form': 3.7.13(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/framer-utils@2.1.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-measure': 2.1.6(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + + '@heroui/framer-utils@2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-measure': 2.1.8-beta.1(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + + '@heroui/framer-utils@2.1.18(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/system': 2.4.18(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-measure': 2.1.7(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + + '@heroui/image@2.2.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-image': 2.1.9-beta.1(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/input-otp@2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/form': 3.0.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.2(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/textfield': 3.12.0(react@19.1.0) + input-otp: 1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/input@2.4.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/textfield': 3.17.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@react-types/textfield': 3.12.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.2)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + + '@heroui/input@2.4.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/textfield': 3.17.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@react-types/textfield': 3.12.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.2)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + + '@heroui/kbd@2.2.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/kbd@2.2.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/link@2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-link': 2.2.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/link': 3.7.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/link': 3.5.11(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/link@2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-link': 2.2.13-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/link': 3.7.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/link': 3.5.11(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/listbox@2.3.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/divider': 2.2.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mobile': 2.2.7(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/listbox': 3.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/list': 3.12.0(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@tanstack/react-virtual': 3.11.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/listbox@2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mobile': 2.2.9-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/listbox': 3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/list': 3.12.0(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@tanstack/react-virtual': 3.11.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/menu@2.2.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/divider': 2.2.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mobile': 2.2.7(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/menu': 3.18.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-stately/tree': 3.8.8(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/menu@2.2.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mobile': 2.2.9-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/menu': 3.18.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-stately/tree': 3.8.8(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/modal@2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/dom-animation': 2.1.6(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-aria-modal-overlay': 2.2.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-disclosure': 2.2.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-draggable': 2.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/dialog': 3.5.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/modal@2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-aria-modal-overlay': 2.2.11-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-disclosure': 2.2.10-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-draggable': 2.1.10-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/dialog': 3.5.23(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/navbar@2.2.14(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/dom-animation': 2.1.6(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-scroll-position': 2.1.6(react@19.1.0) + '@react-aria/button': 3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/navbar@2.2.16-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-scroll-position': 2.1.8-beta.1(react@19.1.0) + '@react-aria/button': 3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/number-input@2.0.8-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/numberfield': 3.11.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/numberfield': 3.9.10(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/numberfield': 3.8.9(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/pagination@2.2.14(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-intersection-observer': 2.2.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-pagination': 2.2.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + scroll-into-view-if-needed: 3.0.10 + + '@heroui/pagination@2.2.16-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-intersection-observer': 2.2.10-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-pagination': 2.2.11-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + scroll-into-view-if-needed: 3.0.10 + + '@heroui/popover@2.3.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.6(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + '@react-aria/dialog': 3.5.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/popover@2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/dialog': 3.5.23(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/popover@2.3.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.19(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.22(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.9(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.18(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.11(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.7(react@19.1.0) + '@react-aria/dialog': 3.5.27(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.17(react@19.1.0) + '@react-types/overlays': 3.8.16(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/progress@2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mounted': 2.1.8-beta.1(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/progress': 3.4.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/progress': 3.5.10(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/radio@2.3.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/radio': 3.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/radio': 3.10.11(react@19.1.0) + '@react-types/radio': 3.8.7(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/radio@2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/radio': 3.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/radio': 3.10.11(react@19.1.0) + '@react-types/radio': 3.8.7(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/react-rsc-utils@2.1.6(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/react-rsc-utils@2.1.7(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/react-rsc-utils@2.1.8(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/react-rsc-utils@2.1.8-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/react-utils@2.1.10(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.7(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + react: 19.1.0 + + '@heroui/react-utils@2.1.10-beta.1(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + react: 19.1.0 + + '@heroui/react-utils@2.1.11(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + react: 19.1.0 + + '@heroui/react-utils@2.1.8(react@19.1.0)': + dependencies: + '@heroui/react-rsc-utils': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + react: 19.1.0 + + '@heroui/react@2.8.0-beta.1(@types/react@19.1.2)(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwindcss@4.1.5)': + dependencies: + '@heroui/accordion': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/alert': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/autocomplete': 2.3.19-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/avatar': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/badge': 2.2.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/breadcrumbs': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/calendar': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/card': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/checkbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/chip': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/code': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/date-input': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/date-picker': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/divider': 2.2.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/drawer': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dropdown': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/image': 2.2.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/input': 2.4.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/input-otp': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/kbd': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/link': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/listbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/menu': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/modal': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/navbar': 2.2.16-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/number-input': 2.0.8-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/pagination': 2.2.16-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/progress': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/radio': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/ripple': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/scroll-shadow': 2.3.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/select': 2.4.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/skeleton': 2.2.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/slider': 2.4.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/snippet': 2.2.19-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/spacer': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/switch': 2.2.16-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/table': 2.2.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/tabs': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/toast': 2.0.8-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/tooltip': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/user': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - tailwindcss + + '@heroui/ripple@2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/dom-animation': 2.1.6(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/ripple@2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/ripple@2.2.17(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/dom-animation': 2.1.9(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/scroll-shadow@2.3.10(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-data-scroll-overflow': 2.2.7(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/scroll-shadow@2.3.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-data-scroll-overflow': 2.2.9-beta.1(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/scroll-shadow@2.3.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-data-scroll-overflow': 2.2.10(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/select@2.4.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/listbox': 2.3.15(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/scroll-shadow': 2.3.10(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/spinner': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-aria-multiselect': 2.4.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/form': 3.0.13(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@tanstack/react-virtual': 3.11.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/select@2.4.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/form': 2.1.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/listbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/popover': 2.3.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/scroll-shadow': 2.3.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-aria-button': 2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-aria-multiselect': 2.4.11-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/form': 3.0.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@tanstack/react-virtual': 3.11.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/shared-icons@2.1.6(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/shared-icons@2.1.7(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/shared-icons@2.1.8-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/shared-icons@2.1.9(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/shared-utils@2.1.7': {} + + '@heroui/shared-utils@2.1.9': {} + + '@heroui/shared-utils@2.1.9-beta.1': {} + + '@heroui/skeleton@2.2.10(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/skeleton@2.2.12-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/slider@2.4.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/tooltip': 2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/slider': 3.7.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/slider': 3.6.2(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/slider@2.4.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/tooltip': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/slider': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/slider': 3.6.2(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/snippet@2.2.17(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/button': 2.2.16(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-icons': 2.1.6(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/tooltip': 2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-clipboard': 2.1.7(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/snippet@2.2.19-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/button': 2.2.18-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/tooltip': 2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/use-clipboard': 2.1.9-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/spacer@2.2.14(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/system-rsc': 2.3.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/spacer@2.2.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/spinner@2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/spinner@2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/spinner@2.2.19(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.9 + '@heroui/system': 2.4.18(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system-rsc': 2.3.15(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - framer-motion + + '@heroui/switch@2.2.14(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/switch': 3.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.20(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/switch@2.2.16-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/switch': 3.7.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/system-rsc@2.3.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0)': + dependencies: + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-types/shared': 3.28.0(react@19.1.0) + clsx: 1.2.1 + react: 19.1.0 + + '@heroui/system-rsc@2.3.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0)': + dependencies: + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-types/shared': 3.29.0(react@19.1.0) + clsx: 1.2.1 + react: 19.1.0 + + '@heroui/system-rsc@2.3.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0)': + dependencies: + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-types/shared': 3.28.0(react@19.1.0) + clsx: 1.2.1 + react: 19.1.0 + + '@heroui/system-rsc@2.3.15(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0)': + dependencies: + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-types/shared': 3.30.0(react@19.1.0) + clsx: 1.2.1 + react: 19.1.0 + + '@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/system-rsc': 2.3.11(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@internationalized/date': 3.7.0 + '@react-aria/i18n': 3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/datepicker': 3.11.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + + '@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/system-rsc': 2.3.13-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@internationalized/date': 3.7.0 + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + '@react-types/datepicker': 3.11.0(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + + '@heroui/system@2.4.18(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.11(react@19.1.0) + '@heroui/system-rsc': 2.3.15(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react@19.1.0) + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@heroui/theme' + + '@heroui/table@2.2.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/checkbox': 2.3.17-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/spacer': 2.2.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/table': 3.17.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/table': 3.14.0(react@19.1.0) + '@react-stately/virtualizer': 4.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/grid': 3.3.0(react@19.1.0) + '@react-types/table': 3.11.0(react@19.1.0) + '@tanstack/react-virtual': 3.11.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/table@2.2.18(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/checkbox': 2.3.18(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10(react@19.1.0) + '@heroui/shared-icons': 2.1.7(react@19.1.0) + '@heroui/shared-utils': 2.1.9 + '@heroui/spacer': 2.2.14(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/table': 3.17.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/table': 3.14.1(react@19.1.0) + '@react-stately/virtualizer': 4.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/grid': 3.3.1(react@19.1.0) + '@react-types/table': 3.12.0(react@19.1.0) + '@tanstack/react-virtual': 3.11.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/tabs@2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mounted': 2.1.6(react@19.1.0) + '@heroui/use-update-effect': 2.1.6(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/tabs': 3.10.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tabs': 3.8.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@react-types/tabs': 3.3.13(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + scroll-into-view-if-needed: 3.0.10 + + '@heroui/tabs@2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mounted': 2.1.8-beta.1(react@19.1.0) + '@heroui/use-update-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/tabs': 3.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tabs': 3.8.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + '@react-types/tabs': 3.3.13(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + scroll-into-view-if-needed: 3.0.10 + + '@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5)': + dependencies: + '@heroui/shared-utils': 2.1.9-beta.1 + clsx: 1.2.1 + color: 4.2.3 + color2k: 2.0.3 + deepmerge: 4.3.1 + flat: 5.0.2 + tailwind-merge: 3.0.2 + tailwind-variants: 1.0.0(tailwindcss@4.1.5) + tailwindcss: 4.1.5 + + '@heroui/toast@2.0.8-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-icons': 2.1.8-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/spinner': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-is-mobile': 2.2.9-beta.1(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/toast': 3.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toast': 3.0.0(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/tooltip@2.2.13(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.13(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.6(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/tooltip': 3.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tooltip': 3.5.2(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/tooltip': 3.4.15(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/tooltip@2.2.15-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/aria-utils': 2.2.15-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/dom-animation': 2.1.8-beta.1(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + '@heroui/framer-utils': 2.1.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/tooltip': 3.8.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tooltip': 3.5.2(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/tooltip': 3.4.15(react@19.1.0) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/use-aria-accordion@2.2.10-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/button': 3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.23.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tree': 3.8.8(react@19.1.0) + '@react-types/accordion': 3.0.0-alpha.26(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-aria-accordion@2.2.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/button': 3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tree': 3.8.8(react@19.1.0) + '@react-types/accordion': 3.0.0-alpha.26(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-aria-button@2.2.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.7 + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-aria-button@2.2.12-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.9-beta.1 + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-aria-button@2.2.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/button': 3.12.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-aria-link@2.2.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.7 + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/link': 3.5.11(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-aria-link@2.2.13-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.9-beta.1 + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/link': 3.5.11(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-aria-modal-overlay@2.2.11-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/overlays': 3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/use-aria-modal-overlay@2.2.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/use-aria-multiselect@2.4.11-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/listbox': 3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/menu': 3.18.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.23.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.2(react@19.1.0) + '@react-stately/list': 3.12.0(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/select': 3.9.10(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/use-aria-multiselect@2.4.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/listbox': 3.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/menu': 3.18.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.2(react@19.1.0) + '@react-stately/list': 3.12.0(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-types/button': 3.11.0(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/select': 3.9.10(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/use-callback-ref@2.1.6(react@19.1.0)': + dependencies: + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + react: 19.1.0 + + '@heroui/use-callback-ref@2.1.7(react@19.1.0)': + dependencies: + '@heroui/use-safe-layout-effect': 2.1.7(react@19.1.0) + react: 19.1.0 + + '@heroui/use-callback-ref@2.1.8-beta.1(react@19.1.0)': + dependencies: + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + react: 19.1.0 + + '@heroui/use-clipboard@2.1.7(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-clipboard@2.1.9-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-data-scroll-overflow@2.2.10(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.9 + react: 19.1.0 + + '@heroui/use-data-scroll-overflow@2.2.7(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.7 + react: 19.1.0 + + '@heroui/use-data-scroll-overflow@2.2.9-beta.1(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.9-beta.1 + react: 19.1.0 + + '@heroui/use-disclosure@2.2.10-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/use-callback-ref': 2.1.8-beta.1(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-disclosure@2.2.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/use-callback-ref': 2.1.6(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/utils': 3.10.5(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-draggable@2.1.10-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-draggable@2.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-image@2.1.7(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.6(react@19.1.0) + react: 19.1.0 + + '@heroui/use-image@2.1.9-beta.1(react@19.1.0)': + dependencies: + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/use-safe-layout-effect': 2.1.8-beta.1(react@19.1.0) + react: 19.1.0 + + '@heroui/use-intersection-observer@2.2.10-beta.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/ssr': 3.9.7(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-intersection-observer@2.2.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/ssr': 3.9.7(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.28.0(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-is-mobile@2.2.7(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.7(react@19.1.0) + react: 19.1.0 + + '@heroui/use-is-mobile@2.2.9-beta.1(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.7(react@19.1.0) + react: 19.1.0 + + '@heroui/use-is-mounted@2.1.6(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-is-mounted@2.1.8-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-measure@2.1.6(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-measure@2.1.7(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-measure@2.1.8-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-pagination@2.2.11-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.9-beta.1 + '@react-aria/i18n': 3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-pagination@2.2.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/shared-utils': 2.1.7 + '@react-aria/i18n': 3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@heroui/use-safe-layout-effect@2.1.6(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-safe-layout-effect@2.1.7(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-safe-layout-effect@2.1.8-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-scroll-position@2.1.6(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-scroll-position@2.1.8-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-update-effect@2.1.6(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/use-update-effect@2.1.8-beta.1(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@heroui/user@2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/avatar': 2.2.12(@heroui/system@2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.8(react@19.1.0) + '@heroui/shared-utils': 2.1.7 + '@heroui/system': 2.4.12(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@heroui/user@2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@heroui/avatar': 2.2.14-beta.1(@heroui/system@2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/react-utils': 2.1.10-beta.1(react@19.1.0) + '@heroui/shared-utils': 2.1.9-beta.1 + '@heroui/system': 2.4.14-beta.1(@heroui/theme@2.4.14-beta.1(tailwindcss@4.1.5))(framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@heroui/theme': 2.4.14-beta.1(tailwindcss@4.1.5) + '@react-aria/focus': 3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@hookform/resolvers@5.0.1(react-hook-form@7.56.1(react@19.1.0))': + dependencies: + '@standard-schema/utils': 0.3.0 + react-hook-form: 7.56.1(react@19.1.0) + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.2': {} + + '@iconify/react@6.0.0(react@19.1.0)': + dependencies: + '@iconify/types': 2.0.0 + react: 19.1.0 + + '@iconify/types@2.0.0': {} + + '@iconify/utils@2.3.0': + dependencies: + '@antfu/install-pkg': 1.0.0 + '@antfu/utils': 8.1.1 + '@iconify/types': 2.0.0 + debug: 4.4.0 + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.1 + mlly: 1.7.4 + transitivePeerDependencies: + - supports-color + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-arm64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.1.0 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.1.0 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-arm@1.1.0': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.1.0': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.1.0 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-arm@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.1.0 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-s390x@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.1.0 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + + '@img/sharp-wasm32@0.34.2': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + + '@img/sharp-win32-arm64@0.34.2': + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-ia32@0.34.2': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.34.2': + optional: true + + '@internationalized/date@3.7.0': + dependencies: + '@swc/helpers': 0.5.17 + + '@internationalized/date@3.8.1': + dependencies: + '@swc/helpers': 0.5.17 + + '@internationalized/date@3.8.2': + dependencies: + '@swc/helpers': 0.5.17 + + '@internationalized/message@3.1.7': + dependencies: + '@swc/helpers': 0.5.17 + intl-messageformat: 10.7.16 + + '@internationalized/message@3.1.8': + dependencies: + '@swc/helpers': 0.5.17 + intl-messageformat: 10.7.16 + + '@internationalized/number@3.6.1': + dependencies: + '@swc/helpers': 0.5.17 + + '@internationalized/number@3.6.3': + dependencies: + '@swc/helpers': 0.5.17 + + '@internationalized/string@3.2.6': + dependencies: + '@swc/helpers': 0.5.17 + + '@internationalized/string@3.2.7': + dependencies: + '@swc/helpers': 0.5.17 + + '@jridgewell/gen-mapping@0.3.12': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.29 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.10': + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.29': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@mdx-js/loader@3.1.0(acorn@8.15.0)(webpack@5.101.0)': + dependencies: + '@mdx-js/mdx': 3.1.0(acorn@8.15.0) + source-map: 0.7.4 + optionalDependencies: + webpack: 5.101.0 + transitivePeerDependencies: + - acorn + - supports-color + + '@mdx-js/mdx@3.1.0(acorn@8.15.0)': + dependencies: + '@types/estree': 1.0.7 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.15.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - acorn + - supports-color + + '@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.1.2 + react: 19.1.0 + + '@mermaid-js/parser@0.4.0': + dependencies: + langium: 3.3.1 + + '@microsoft/fetch-event-source@2.0.1': {} + + '@napi-rs/wasm-runtime@0.2.9': + dependencies: + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 + '@tybys/wasm-util': 0.9.0 + optional: true + + '@next/bundle-analyzer@15.3.1': + dependencies: + webpack-bundle-analyzer: 4.10.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@next/env@15.3.3': {} + + '@next/eslint-plugin-next@15.3.1': + dependencies: + fast-glob: 3.3.1 + + '@next/eslint-plugin-next@15.3.4': + dependencies: + fast-glob: 3.3.1 + + '@next/mdx@15.3.3(@mdx-js/loader@3.1.0(acorn@8.15.0)(webpack@5.101.0))(@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0))': + dependencies: + source-map: 0.7.4 + optionalDependencies: + '@mdx-js/loader': 3.1.0(acorn@8.15.0)(webpack@5.101.0) + '@mdx-js/react': 3.1.0(@types/react@19.1.2)(react@19.1.0) + + '@next/swc-darwin-arm64@15.3.3': + optional: true + + '@next/swc-darwin-x64@15.3.3': + optional: true + + '@next/swc-linux-arm64-gnu@15.3.3': + optional: true + + '@next/swc-linux-arm64-musl@15.3.3': + optional: true + + '@next/swc-linux-x64-gnu@15.3.3': + optional: true + + '@next/swc-linux-x64-musl@15.3.3': + optional: true + + '@next/swc-win32-arm64-msvc@15.3.3': + optional: true + + '@next/swc-win32-x64-msvc@15.3.3': + optional: true + + '@next/third-parties@15.4.4(next@15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0))(react@19.1.0)': + dependencies: + next: 15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0) + react: 19.1.0 + third-party-capital: 1.0.20 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@opentelemetry/api-logs@0.203.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api-logs@0.57.2': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.36.0 + + '@opentelemetry/instrumentation-amqplib@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-connect@0.47.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/connect': 3.4.38 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-dataloader@0.21.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-express@0.52.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fs@0.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-generic-pool@0.47.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-graphql@0.51.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-hapi@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-http@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + forwarded-parse: 2.1.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-ioredis@0.51.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.38.0 + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-kafkajs@0.12.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-knex@0.48.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-koa@0.51.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-lru-memoizer@0.48.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongodb@0.56.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongoose@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mysql2@0.49.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mysql@0.49.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/mysql': 2.15.27 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-pg@0.55.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) + '@types/pg': 8.15.4 + '@types/pg-pool': 2.0.6 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-redis@0.51.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.38.0 + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-tedious@0.22.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/tedious': 4.0.14 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-undici@0.14.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 7.5.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 7.5.2 + semver: 7.7.2 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/redis-common@0.38.0': {} + + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + + '@opentelemetry/semantic-conventions@1.36.0': {} + + '@opentelemetry/sql-common@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + optional: true + + '@polka/url@1.0.0-next.29': {} + + '@popperjs/core@2.11.8': {} + + '@prisma/instrumentation@6.13.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.0.0': + dependencies: + '@babel/runtime': 7.27.1 + + '@radix-ui/primitive@1.0.1': + dependencies: + '@babel/runtime': 7.27.1 + + '@radix-ui/primitive@1.1.2': {} + + '@radix-ui/react-accordion@1.2.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collapsible': 1.1.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-alert-dialog@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dialog': 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-arrow@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-aspect-ratio@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-avatar@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-checkbox@1.2.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-collapsible@1.1.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-collection@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-compose-refs@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + + '@radix-ui/react-compose-refs@1.0.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-context-menu@2.2.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-menu': 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-context@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + + '@radix-ui/react-context@1.0.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-context@1.1.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-dialog@1.0.0(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) + '@radix-ui/react-context': 1.0.0(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.0.0(react@19.1.0) + '@radix-ui/react-focus-scope': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.0.0(react@19.1.0) + '@radix-ui/react-portal': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.0.0(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.5.4(@types/react@19.1.2)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + + '@radix-ui/react-dialog@1.0.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.1.2)(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.5.5(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-dialog@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-direction@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-dismissable-layer@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.0.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-dismissable-layer@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-dropdown-menu@2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-menu': 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-focus-guards@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + + '@radix-ui/react-focus-guards@1.0.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-focus-scope@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-focus-scope@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-hover-card@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-icons@1.3.2(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@radix-ui/react-id@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.0) + react: 19.1.0 + + '@radix-ui/react-id@1.0.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-id@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-label@2.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-menu@2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-menubar@1.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-menu': 2.1.12(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-navigation-menu@1.2.10(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-popover@1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-popper@1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-arrow': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-portal@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-primitive': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-portal@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-presence@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@radix-ui/react-presence@1.0.1(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-primitive@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-slot': 1.0.0(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-slot': 1.0.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-primitive@2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-progress@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-radio-group@1.3.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-roving-focus@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-scroll-area@1.2.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-select@2.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-separator@1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-slider@1.3.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-slot@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) + react: 19.1.0 + + '@radix-ui/react-slot@1.0.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-slot@1.2.0(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-switch@1.2.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-tabs@1.1.9(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-toggle-group@1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-toggle': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-toggle@1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-tooltip@1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/react-use-callback-ref@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-controllable-state@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0) + react: 19.1.0 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-escape-keydown@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0) + react: 19.1.0 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + use-sync-external-store: 1.5.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-layout-effect@1.0.0(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@babel/runtime': 7.27.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-visually-hidden@1.2.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.3(@types/react@19.1.2) + + '@radix-ui/rect@1.1.1': {} + + '@react-aria/breadcrumbs@3.5.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/link': 3.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/breadcrumbs': 3.7.11(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/button@3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/toolbar': 3.0.0-beta.13(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.3(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/button@3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/toolbar': 3.0.0-beta.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.3(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/calendar@3.7.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/calendar': 3.7.1(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/calendar': 3.7.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/calendar@3.8.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.2 + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.3 + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/calendar': 3.8.2(react@19.1.0) + '@react-types/button': 3.12.2(react@19.1.0) + '@react-types/calendar': 3.7.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/checkbox@3.15.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/toggle': 3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/checkbox': 3.6.12(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/checkbox@3.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/toggle': 3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/checkbox': 3.6.12(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/checkbox@3.15.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/toggle': 3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/checkbox': 3.6.13(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/toggle': 3.8.3(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/combobox@3.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/listbox': 3.14.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/menu': 3.18.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/textfield': 3.17.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/combobox': 3.10.3(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/combobox': 3.13.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/combobox@3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/listbox': 3.14.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/menu': 3.18.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/textfield': 3.17.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/combobox': 3.10.3(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/combobox': 3.13.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/datepicker@3.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@internationalized/number': 3.6.1 + '@internationalized/string': 3.2.6 + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/spinbutton': 3.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/datepicker': 3.13.0(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/calendar': 3.7.0(react@19.1.0) + '@react-types/datepicker': 3.11.0(react@19.1.0) + '@react-types/dialog': 3.5.17(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/datepicker@3.14.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.2 + '@internationalized/number': 3.6.3 + '@internationalized/string': 3.2.7 + '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/form': 3.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/spinbutton': 3.6.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/datepicker': 3.14.2(react@19.1.0) + '@react-stately/form': 3.1.5(react@19.1.0) + '@react-types/button': 3.12.2(react@19.1.0) + '@react-types/calendar': 3.7.2(react@19.1.0) + '@react-types/datepicker': 3.12.2(react@19.1.0) + '@react-types/dialog': 3.5.19(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/dialog@3.5.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/dialog': 3.5.17(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/dialog@3.5.23(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/dialog': 3.5.17(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/dialog@3.5.27(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/dialog': 3.5.19(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/focus@3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/focus@3.20.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/focus@3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/focus@3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/form@3.0.13(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/form@3.0.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/form@3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/form@3.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.5(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/grid@3.13.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/grid': 3.11.1(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/grid': 3.3.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/i18n@3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.2 + '@internationalized/message': 3.1.8 + '@internationalized/number': 3.6.3 + '@internationalized/string': 3.2.7 + '@react-aria/ssr': 3.9.9(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/i18n@3.12.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@internationalized/message': 3.1.7 + '@internationalized/number': 3.6.1 + '@internationalized/string': 3.2.6 + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/i18n@3.12.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@internationalized/message': 3.1.7 + '@internationalized/number': 3.6.1 + '@internationalized/string': 3.2.6 + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/i18n@3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@internationalized/message': 3.1.7 + '@internationalized/number': 3.6.1 + '@internationalized/string': 3.2.6 + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/interactions@3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/interactions@3.24.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/interactions@3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/interactions@3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.9(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/flags': 3.1.2 + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/label@3.7.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/label@3.7.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/label@3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/label@3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/landmark@3.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + use-sync-external-store: 1.5.0(react@19.1.0) + + '@react-aria/link@3.7.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/link': 3.5.11(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/link@3.7.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/link': 3.5.11(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/link@3.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/link': 3.6.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/listbox@3.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/list': 3.12.0(react@19.1.0) + '@react-types/listbox': 3.6.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/listbox@3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/list': 3.12.0(react@19.1.0) + '@react-types/listbox': 3.6.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/listbox@3.14.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/list': 3.12.1(react@19.1.0) + '@react-types/listbox': 3.6.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/live-announcer@3.4.2': + dependencies: + '@swc/helpers': 0.5.17 + + '@react-aria/live-announcer@3.4.3': + dependencies: + '@swc/helpers': 0.5.17 + + '@react-aria/menu@3.18.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/tree': 3.8.9(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/menu@3.18.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/menu': 3.9.2(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/tree': 3.8.9(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/menu@3.18.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/overlays': 3.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/menu': 3.9.3(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/tree': 3.8.9(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/menu': 3.10.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/numberfield@3.11.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/spinbutton': 3.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/textfield': 3.17.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/numberfield': 3.9.10(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/numberfield': 3.8.9(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/overlays@3.26.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.14(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/overlays@3.26.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/overlays': 3.8.14(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/overlays@3.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/overlays': 3.8.14(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/overlays@3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/ssr': 3.9.9(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/overlays': 3.6.17(react@19.1.0) + '@react-types/button': 3.12.2(react@19.1.0) + '@react-types/overlays': 3.8.16(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/progress@3.4.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/progress': 3.5.10(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/radio@3.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/radio': 3.10.11(react@19.1.0) + '@react-types/radio': 3.8.7(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/radio@3.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/radio': 3.10.11(react@19.1.0) + '@react-types/radio': 3.8.7(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/selection@3.23.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/selection@3.23.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/selection@3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/slider@3.7.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/slider': 3.6.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/slider': 3.7.10(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/slider@3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/slider': 3.6.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/slider': 3.7.10(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/spinbutton@3.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/spinbutton@3.6.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.3 + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/button': 3.12.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/ssr@3.9.7(react@19.1.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-aria/ssr@3.9.8(react@19.1.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-aria/ssr@3.9.9(react@19.1.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-aria/switch@3.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/toggle': 3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/switch': 3.5.10(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/switch@3.7.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/toggle': 3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/switch': 3.5.10(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/table@3.17.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/grid': 3.13.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-stately/table': 3.14.0(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/grid': 3.3.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/table': 3.11.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/table@3.17.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/grid': 3.13.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/visually-hidden': 3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-stately/table': 3.14.1(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/grid': 3.3.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/table': 3.12.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/tabs@3.10.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tabs': 3.8.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/tabs': 3.3.13(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/tabs@3.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/selection': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tabs': 3.8.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/tabs': 3.3.13(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/textfield@3.17.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/textfield': 3.12.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/textfield@3.17.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/textfield': 3.12.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/textfield@3.17.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/form': 3.0.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/label': 3.7.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/textfield': 3.12.1(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/toast@3.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/landmark': 3.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toast': 3.0.0(react@19.1.0) + '@react-types/button': 3.12.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/toggle@3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/toggle': 3.8.3(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/toolbar@3.0.0-beta.13(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/toolbar@3.0.0-beta.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/focus': 3.20.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/i18n': 3.12.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/tooltip@3.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tooltip': 3.5.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/tooltip': 3.4.15(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/tooltip@3.8.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/tooltip': 3.5.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/tooltip': 3.4.15(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/utils@3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/utils@3.28.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/utils@3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/utils@3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/ssr': 3.9.9(react@19.1.0) + '@react-stately/flags': 3.1.2 + '@react-stately/utils': 3.10.7(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/visually-hidden@3.8.20(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/visually-hidden@3.8.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/visually-hidden@3.8.22(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-aria/visually-hidden@3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-stately/calendar@3.7.1(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/calendar': 3.7.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/calendar@3.8.2(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.2 + '@react-stately/utils': 3.10.7(react@19.1.0) + '@react-types/calendar': 3.7.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/checkbox@3.6.12(react@19.1.0)': + dependencies: + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/checkbox@3.6.13(react@19.1.0)': + dependencies: + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/collections@3.12.2(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/collections@3.12.3(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/collections@3.12.5(react@19.1.0)': + dependencies: + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/combobox@3.10.3(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/list': 3.12.1(react@19.1.0) + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-stately/select': 3.6.12(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/combobox': 3.13.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/datepicker@3.13.0(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@internationalized/string': 3.2.6 + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/datepicker': 3.11.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/datepicker@3.14.2(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.2 + '@internationalized/string': 3.2.7 + '@react-stately/form': 3.1.5(react@19.1.0) + '@react-stately/overlays': 3.6.17(react@19.1.0) + '@react-stately/utils': 3.10.7(react@19.1.0) + '@react-types/datepicker': 3.12.2(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/flags@3.1.1': + dependencies: + '@swc/helpers': 0.5.17 + + '@react-stately/flags@3.1.2': + dependencies: + '@swc/helpers': 0.5.17 + + '@react-stately/form@3.1.2(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/form@3.1.3(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/form@3.1.5(react@19.1.0)': + dependencies: + '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/grid@3.11.1(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-types/grid': 3.3.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/list@3.12.0(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/list@3.12.1(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/menu@3.9.2(react@19.1.0)': + dependencies: + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-types/menu': 3.9.15(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/menu@3.9.3(react@19.1.0)': + dependencies: + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-types/menu': 3.10.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/numberfield@3.9.10(react@19.1.0)': + dependencies: + '@internationalized/number': 3.6.1 + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/numberfield': 3.8.9(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/overlays@3.6.14(react@19.1.0)': + dependencies: + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/overlays': 3.8.13(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/overlays@3.6.15(react@19.1.0)': + dependencies: + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/overlays': 3.8.14(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/overlays@3.6.17(react@19.1.0)': + dependencies: + '@react-stately/utils': 3.10.7(react@19.1.0) + '@react-types/overlays': 3.8.16(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/radio@3.10.11(react@19.1.0)': + dependencies: + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/radio': 3.8.7(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/select@3.6.12(react@19.1.0)': + dependencies: + '@react-stately/form': 3.1.3(react@19.1.0) + '@react-stately/list': 3.12.1(react@19.1.0) + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-types/select': 3.9.11(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/selection@3.20.1(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/slider@3.6.2(react@19.1.0)': + dependencies: + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/slider': 3.7.10(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/table@3.14.0(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-stately/grid': 3.11.1(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/grid': 3.3.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/table': 3.11.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/table@3.14.1(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/flags': 3.1.1 + '@react-stately/grid': 3.11.1(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/grid': 3.3.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/table': 3.12.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/tabs@3.8.0(react@19.1.0)': + dependencies: + '@react-stately/list': 3.12.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@react-types/tabs': 3.3.13(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/toast@3.0.0(react@19.1.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 19.1.0 + use-sync-external-store: 1.5.0(react@19.1.0) + + '@react-stately/toggle@3.8.2(react@19.1.0)': + dependencies: + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/checkbox': 3.9.2(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/toggle@3.8.3(react@19.1.0)': + dependencies: + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/checkbox': 3.9.3(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/tooltip@3.5.2(react@19.1.0)': + dependencies: + '@react-stately/overlays': 3.6.15(react@19.1.0) + '@react-types/tooltip': 3.4.15(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/tree@3.8.8(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/tree@3.8.9(react@19.1.0)': + dependencies: + '@react-stately/collections': 3.12.3(react@19.1.0) + '@react-stately/selection': 3.20.1(react@19.1.0) + '@react-stately/utils': 3.10.6(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/utils@3.10.5(react@19.1.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/utils@3.10.6(react@19.1.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/utils@3.10.7(react@19.1.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 19.1.0 + + '@react-stately/virtualizer@4.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-stately/virtualizer@4.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-aria/utils': 3.28.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + '@swc/helpers': 0.5.17 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@react-types/accordion@3.0.0-alpha.26(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/breadcrumbs@3.7.11(react@19.1.0)': + dependencies: + '@react-types/link': 3.6.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/button@3.11.0(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/button@3.12.0(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/button@3.12.2(react@19.1.0)': + dependencies: + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + + '@react-types/calendar@3.6.1(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/calendar@3.7.0(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/calendar@3.7.2(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.2 + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + + '@react-types/checkbox@3.9.2(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/checkbox@3.9.3(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/combobox@3.13.3(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/datepicker@3.11.0(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@react-types/calendar': 3.7.0(react@19.1.0) + '@react-types/overlays': 3.8.14(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/datepicker@3.12.2(react@19.1.0)': + dependencies: + '@internationalized/date': 3.8.2 + '@react-types/calendar': 3.7.2(react@19.1.0) + '@react-types/overlays': 3.8.16(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + + '@react-types/dialog@3.5.17(react@19.1.0)': + dependencies: + '@react-types/overlays': 3.8.14(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/dialog@3.5.19(react@19.1.0)': + dependencies: + '@react-types/overlays': 3.8.16(react@19.1.0) + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + + '@react-types/form@3.7.10(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/form@3.7.11(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/form@3.7.13(react@19.1.0)': + dependencies: + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + + '@react-types/grid@3.3.0(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/grid@3.3.1(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/link@3.5.11(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/link@3.6.0(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/listbox@3.6.0(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/menu@3.10.0(react@19.1.0)': + dependencies: + '@react-types/overlays': 3.8.14(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/menu@3.9.15(react@19.1.0)': + dependencies: + '@react-types/overlays': 3.8.14(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/numberfield@3.8.9(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/overlays@3.8.13(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/overlays@3.8.14(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/overlays@3.8.16(react@19.1.0)': + dependencies: + '@react-types/shared': 3.30.0(react@19.1.0) + react: 19.1.0 + + '@react-types/progress@3.5.10(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/radio@3.8.7(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/select@3.9.10(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/select@3.9.11(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/shared@3.28.0(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-types/shared@3.29.0(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-types/shared@3.30.0(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-types/slider@3.7.10(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/switch@3.5.10(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/table@3.11.0(react@19.1.0)': + dependencies: + '@react-types/grid': 3.3.0(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/table@3.12.0(react@19.1.0)': + dependencies: + '@react-types/grid': 3.3.1(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/tabs@3.3.13(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/textfield@3.12.0(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/textfield@3.12.1(react@19.1.0)': + dependencies: + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@react-types/tooltip@3.4.15(react@19.1.0)': + dependencies: + '@react-types/overlays': 3.8.13(react@19.1.0) + '@react-types/shared': 3.29.0(react@19.1.0) + react: 19.1.0 + + '@reactflow/background@11.3.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@reactflow/core': 11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + classcat: 5.0.5 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - immer + + '@reactflow/controls@11.2.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@reactflow/core': 11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + classcat: 5.0.5 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - immer + + '@reactflow/core@11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@types/d3': 7.4.3 + '@types/d3-drag': 3.0.7 + '@types/d3-selection': 3.0.11 + '@types/d3-zoom': 3.0.8 + classcat: 5.0.5 + d3-drag: 3.0.0 + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - immer + + '@reactflow/minimap@11.7.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@reactflow/core': 11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@types/d3-selection': 3.0.11 + '@types/d3-zoom': 3.0.8 + classcat: 5.0.5 + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - immer + + '@reactflow/node-resizer@2.2.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@reactflow/core': 11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + classcat: 5.0.5 + d3-drag: 3.0.0 + d3-selection: 3.0.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - immer + + '@reactflow/node-toolbar@1.3.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@reactflow/core': 11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + classcat: 5.0.5 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - immer + + '@reduxjs/toolkit@2.7.0(react-redux@9.2.0(@types/react@19.1.2)(react@19.1.0)(redux@5.0.1))(react@19.1.0)': + dependencies: + '@standard-schema/spec': 1.0.0 + '@standard-schema/utils': 0.3.0 + immer: 10.1.1 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 19.1.0 + react-redux: 9.2.0(@types/react@19.1.2)(react@19.1.0)(redux@5.0.1) + + '@remirror/core-constants@3.0.0': {} + + '@rollup/plugin-commonjs@28.0.1(rollup@4.46.2)': + dependencies: + '@rollup/pluginutils': 5.2.0(rollup@4.46.2) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.4.4(picomatch@4.0.2) + is-reference: 1.2.1 + magic-string: 0.30.17 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.46.2 + + '@rollup/pluginutils@5.2.0(rollup@4.46.2)': + dependencies: + '@types/estree': 1.0.7 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.46.2 + + '@rollup/rollup-android-arm-eabi@4.46.2': + optional: true + + '@rollup/rollup-android-arm64@4.46.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.46.2': + optional: true + + '@rollup/rollup-darwin-x64@4.46.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.46.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.46.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.46.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.46.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.46.2': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.46.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.46.2': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.46.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.46.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.46.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.46.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.46.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.46.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.46.2': + optional: true + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.11.0': {} + + '@selderee/plugin-htmlparser2@0.11.0': + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + + '@sentry-internal/browser-utils@10.3.0': + dependencies: + '@sentry/core': 10.3.0 + + '@sentry-internal/feedback@10.3.0': + dependencies: + '@sentry/core': 10.3.0 + + '@sentry-internal/replay-canvas@10.3.0': + dependencies: + '@sentry-internal/replay': 10.3.0 + '@sentry/core': 10.3.0 + + '@sentry-internal/replay@10.3.0': + dependencies: + '@sentry-internal/browser-utils': 10.3.0 + '@sentry/core': 10.3.0 + + '@sentry/babel-plugin-component-annotate@4.0.2': {} + + '@sentry/browser@10.3.0': + dependencies: + '@sentry-internal/browser-utils': 10.3.0 + '@sentry-internal/feedback': 10.3.0 + '@sentry-internal/replay': 10.3.0 + '@sentry-internal/replay-canvas': 10.3.0 + '@sentry/core': 10.3.0 + + '@sentry/bundler-plugin-core@4.0.2': + dependencies: + '@babel/core': 7.28.0 + '@sentry/babel-plugin-component-annotate': 4.0.2 + '@sentry/cli': 2.51.1 + dotenv: 16.6.1 + find-up: 5.0.0 + glob: 9.3.5 + magic-string: 0.30.8 + unplugin: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/cli-darwin@2.51.1': + optional: true + + '@sentry/cli-linux-arm64@2.51.1': + optional: true + + '@sentry/cli-linux-arm@2.51.1': + optional: true + + '@sentry/cli-linux-i686@2.51.1': + optional: true + + '@sentry/cli-linux-x64@2.51.1': + optional: true + + '@sentry/cli-win32-arm64@2.51.1': + optional: true + + '@sentry/cli-win32-i686@2.51.1': + optional: true + + '@sentry/cli-win32-x64@2.51.1': + optional: true + + '@sentry/cli@2.51.1': + dependencies: + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + which: 2.0.2 + optionalDependencies: + '@sentry/cli-darwin': 2.51.1 + '@sentry/cli-linux-arm': 2.51.1 + '@sentry/cli-linux-arm64': 2.51.1 + '@sentry/cli-linux-i686': 2.51.1 + '@sentry/cli-linux-x64': 2.51.1 + '@sentry/cli-win32-arm64': 2.51.1 + '@sentry/cli-win32-i686': 2.51.1 + '@sentry/cli-win32-x64': 2.51.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/core@10.3.0': {} + + '@sentry/nextjs@10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0))(react@19.1.0)(webpack@5.101.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.36.0 + '@rollup/plugin-commonjs': 28.0.1(rollup@4.46.2) + '@sentry-internal/browser-utils': 10.3.0 + '@sentry/core': 10.3.0 + '@sentry/node': 10.3.0 + '@sentry/opentelemetry': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + '@sentry/react': 10.3.0(react@19.1.0) + '@sentry/vercel-edge': 10.3.0 + '@sentry/webpack-plugin': 4.0.2(webpack@5.101.0) + chalk: 3.0.0 + next: 15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0) + resolve: 1.22.8 + rollup: 4.46.2 + stacktrace-parser: 0.1.11 + transitivePeerDependencies: + - '@opentelemetry/context-async-hooks' + - '@opentelemetry/core' + - '@opentelemetry/sdk-trace-base' + - encoding + - react + - supports-color + - webpack + + '@sentry/node-core@10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@sentry/core': 10.3.0 + '@sentry/opentelemetry': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + import-in-the-middle: 1.14.2 + + '@sentry/node@10.3.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.47.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.21.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.47.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.12.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.48.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.48.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.14.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@prisma/instrumentation': 6.13.0(@opentelemetry/api@1.9.0) + '@sentry/core': 10.3.0 + '@sentry/node-core': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + '@sentry/opentelemetry': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + import-in-the-middle: 1.14.2 + minimatch: 9.0.5 + transitivePeerDependencies: + - supports-color - /@rtsao/scc@1.1.0: - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - dev: false + '@sentry/opentelemetry@10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@sentry/core': 10.3.0 - /@rushstack/eslint-patch@1.12.0: - resolution: {integrity: sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==} - dev: false + '@sentry/react@10.3.0(react@19.1.0)': + dependencies: + '@sentry/browser': 10.3.0 + '@sentry/core': 10.3.0 + hoist-non-react-statics: 3.3.2 + react: 19.1.0 - /@selderee/plugin-htmlparser2@0.11.0: - resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + '@sentry/vercel-edge@10.3.0': dependencies: - domhandler: 5.0.3 - selderee: 0.11.0 - dev: false + '@opentelemetry/api': 1.9.0 + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@sentry/core': 10.3.0 - /@standard-schema/spec@1.0.0: - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - dev: false + '@sentry/webpack-plugin@4.0.2(webpack@5.101.0)': + dependencies: + '@sentry/bundler-plugin-core': 4.0.2 + unplugin: 1.0.1 + uuid: 9.0.1 + webpack: 5.101.0 + transitivePeerDependencies: + - encoding + - supports-color - /@standard-schema/utils@0.3.0: - resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - dev: false + '@standard-schema/spec@1.0.0': {} - /@swc/counter@0.1.3: - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - dev: false + '@standard-schema/utils@0.3.0': {} - /@swc/helpers@0.5.15: - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 - dev: false - /@swc/helpers@0.5.17: - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 - dev: false - /@tailwindcss/node@4.1.12: - resolution: {integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==} + '@tailwindcss/node@4.1.5': dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.18.3 - jiti: 2.5.1 - lightningcss: 1.30.1 - magic-string: 0.30.17 - source-map-js: 1.2.1 - tailwindcss: 4.1.12 - dev: false + enhanced-resolve: 5.18.1 + jiti: 2.4.2 + lightningcss: 1.29.2 + tailwindcss: 4.1.5 - /@tailwindcss/oxide-android-arm64@4.1.12: - resolution: {integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - dev: false + '@tailwindcss/oxide-android-arm64@4.1.5': optional: true - /@tailwindcss/oxide-darwin-arm64@4.1.12: - resolution: {integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - dev: false + '@tailwindcss/oxide-darwin-arm64@4.1.5': optional: true - /@tailwindcss/oxide-darwin-x64@4.1.12: - resolution: {integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - dev: false + '@tailwindcss/oxide-darwin-x64@4.1.5': optional: true - /@tailwindcss/oxide-freebsd-x64@4.1.12: - resolution: {integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - dev: false + '@tailwindcss/oxide-freebsd-x64@4.1.5': optional: true - /@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12: - resolution: {integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - dev: false + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.5': optional: true - /@tailwindcss/oxide-linux-arm64-gnu@4.1.12: - resolution: {integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - dev: false + '@tailwindcss/oxide-linux-arm64-gnu@4.1.5': optional: true - /@tailwindcss/oxide-linux-arm64-musl@4.1.12: - resolution: {integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - dev: false + '@tailwindcss/oxide-linux-arm64-musl@4.1.5': optional: true - /@tailwindcss/oxide-linux-x64-gnu@4.1.12: - resolution: {integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - dev: false + '@tailwindcss/oxide-linux-x64-gnu@4.1.5': optional: true - /@tailwindcss/oxide-linux-x64-musl@4.1.12: - resolution: {integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - dev: false + '@tailwindcss/oxide-linux-x64-musl@4.1.5': optional: true - /@tailwindcss/oxide-wasm32-wasi@4.1.12: - resolution: {integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - dev: false + '@tailwindcss/oxide-wasm32-wasi@4.1.5': optional: true - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - /@tailwindcss/oxide-win32-arm64-msvc@4.1.12: - resolution: {integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - dev: false + '@tailwindcss/oxide-win32-arm64-msvc@4.1.5': optional: true - /@tailwindcss/oxide-win32-x64-msvc@4.1.12: - resolution: {integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - dev: false + '@tailwindcss/oxide-win32-x64-msvc@4.1.5': optional: true - /@tailwindcss/oxide@4.1.12: - resolution: {integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==} - engines: {node: '>= 10'} - dependencies: - detect-libc: 2.0.4 - tar: 7.4.3 + '@tailwindcss/oxide@4.1.5': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.12 - '@tailwindcss/oxide-darwin-arm64': 4.1.12 - '@tailwindcss/oxide-darwin-x64': 4.1.12 - '@tailwindcss/oxide-freebsd-x64': 4.1.12 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.12 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.12 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.12 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.12 - '@tailwindcss/oxide-linux-x64-musl': 4.1.12 - '@tailwindcss/oxide-wasm32-wasi': 4.1.12 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.12 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.12 - dev: false - - /@tailwindcss/postcss@4.1.12: - resolution: {integrity: sha512-5PpLYhCAwf9SJEeIsSmCDLgyVfdBhdBpzX1OJ87anT9IVR0Z9pjM0FNixCAUAHGnMBGB8K99SwAheXrT0Kh6QQ==} + '@tailwindcss/oxide-android-arm64': 4.1.5 + '@tailwindcss/oxide-darwin-arm64': 4.1.5 + '@tailwindcss/oxide-darwin-x64': 4.1.5 + '@tailwindcss/oxide-freebsd-x64': 4.1.5 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.5 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.5 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.5 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.5 + '@tailwindcss/oxide-linux-x64-musl': 4.1.5 + '@tailwindcss/oxide-wasm32-wasi': 4.1.5 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.5 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.5 + + '@tailwindcss/postcss@4.1.5': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.1.12 - '@tailwindcss/oxide': 4.1.12 - postcss: 8.5.6 - tailwindcss: 4.1.12 - dev: false + '@tailwindcss/node': 4.1.5 + '@tailwindcss/oxide': 4.1.5 + postcss: 8.5.3 + tailwindcss: 4.1.5 - /@tailwindcss/typography@0.5.16(tailwindcss@4.1.12): - resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + '@tailwindcss/typography@0.5.16(tailwindcss@4.1.5)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 4.1.12 - dev: false + tailwindcss: 4.1.5 - /@tanstack/query-core@5.85.5: - resolution: {integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==} - dev: false + '@tanstack/query-core@5.74.9': {} - /@tanstack/query-persist-client-core@5.85.5: - resolution: {integrity: sha512-2JQiyiTVaaUu8pwPqOp6tjNa64ZN+0T9eZ3lfksV4le1VuG99fTcAYmZFIydvzwWlSM7GEF/1kpl5bwW2Y1qfQ==} + '@tanstack/query-core@5.81.5': {} + + '@tanstack/query-persist-client-core@5.81.5': dependencies: - '@tanstack/query-core': 5.85.5 - dev: false + '@tanstack/query-core': 5.81.5 - /@tanstack/react-query-persist-client@5.85.5(@tanstack/react-query@5.85.5)(react@19.1.1): - resolution: {integrity: sha512-KzISZPtJtWZAwH/Ln1FclaiHVwdeV04WX7wUYLe1vw7zyfcPljHeyXlmVf8nxhFm8ujMBdGQVzP2iNn6ehzjQA==} - peerDependencies: - '@tanstack/react-query': ^5.85.5 - react: ^18 || ^19 + '@tanstack/react-query-persist-client@5.81.5(@tanstack/react-query@5.74.11(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/query-persist-client-core': 5.85.5 - '@tanstack/react-query': 5.85.5(react@19.1.1) - react: 19.1.1 - dev: false + '@tanstack/query-persist-client-core': 5.81.5 + '@tanstack/react-query': 5.74.11(react@19.1.0) + react: 19.1.0 - /@tanstack/react-query@5.85.5(react@19.1.1): - resolution: {integrity: sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==} - peerDependencies: - react: ^18 || ^19 + '@tanstack/react-query@5.74.11(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.85.5 - react: 19.1.1 - dev: false + '@tanstack/query-core': 5.74.9 + react: 19.1.0 - /@tanstack/react-virtual@3.11.3(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-vCU+OTylXN3hdC8RKg68tPlBPjjxtzon7Ys46MgrSLE+JhSjSTPvoQifV6DQJeJmA8Q3KT6CphJbejupx85vFw==} - 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 + '@tanstack/react-virtual@3.11.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/virtual-core': 3.11.3 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /@tanstack/virtual-core@3.11.3: - resolution: {integrity: sha512-v2mrNSnMwnPJtcVqNvV0c5roGCBqeogN8jDtgtuHCphdwBasOZ17x8UV8qpHUh+u0MLfX43c0uUHKje0s+Zb0w==} - dev: false + '@tanstack/virtual-core@3.11.3': {} - /@tiptap/core@2.26.1(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-fymyd/XZvYiHjBoLt1gxs024xP/LY26d43R1vluYq7AHBL/7DE3ywzy+1GEsGyAv5Je2L0KBhNIR/izbq3Kaqg==} - peerDependencies: - '@tiptap/pm': ^2.7.0 + '@tiptap/core@2.11.9(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/pm': 2.11.9 - /@tiptap/extension-blockquote@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-viQ6AHRhjCYYipKK6ZepBzwZpkuMvO9yhRHeUZDvlSOAh8rvsUTSre0y74nu8QRYUt4a44lJJ6BpphJK7bEgYA==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-blockquote@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-bold@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-zCce9PRuTNhadFir71luLo99HERDpGJ0EEflGm7RN8I1SnNi9gD5ooK42BOIQtejGCJqg3hTPZiYDJC2hXvckQ==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-bold@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-bubble-menu@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-oHevUcZbTMFOTpdCEo4YEDe044MB4P1ZrWyML8CGe5tnnKdlI9BN03AXpI1mEEa5CA3H1/eEckXx8EiCgYwQ3Q==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-bubble-menu@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 tippy.js: 6.3.7 - dev: false - /@tiptap/extension-bullet-list@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-HHakuV4ckYCDOnBbne088FvCEP4YICw+wgPBz/V2dfpiFYQ4WzT0LPK9s7OFMCN+ROraoug+1ryN1Z1KdIgujQ==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-bullet-list@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-character-count@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-F7LP1a9GF28thbApowWT2I41baqX74HMUTrV9LGrNXaOkW2gxZz+CDOzfHsbHyfuwfIxIjv07Qf/HKA6Cc1qbA==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-character-count@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 - /@tiptap/extension-code-block@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-/TDDOwONl0qEUc4+B6V9NnWtSjz95eg7/8uCb8Y8iRbGvI9vT4/znRKofFxstvKmW4URu/H74/g0ywV57h0B+A==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-code-block@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 - /@tiptap/extension-code@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-GU9deB1A/Tr4FMPu71CvlcjGKwRhGYz60wQ8m4aM+ELZcVIcZRa1ebR8bExRIEWnvRztQuyRiCQzw2N0xQJ1QQ==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-code@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-document@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-2P2IZp1NRAE+21mRuFBiP3X2WKfZ6kUC23NJKpn8bcOamY3obYqCt0ltGPhE4eR8n8QAl2fI/3jIgjR07dC8ow==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-document@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-dropcursor@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-JkDQU2ZYFOuT5mNYb8OiWGwD1HcjbtmX8tLNugQbToECmz9WvVPqJmn7V/q8VGpP81iEECz/IsyRmuf2kSD4uA==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-dropcursor@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 - /@tiptap/extension-floating-menu@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-OJF+H6qhQogVTMedAGSWuoL1RPe3LZYXONuFCVyzHnvvMpK+BP1vm180E2zDNFnn/DVA+FOrzNGpZW7YjoFH1w==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-floating-menu@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 tippy.js: 6.3.7 - dev: false - /@tiptap/extension-gapcursor@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-KOiMZc3PwJS3hR0nSq5d0TJi2jkNZkLZElcT6pCEnhRHzPH6dRMu9GM5Jj798ZRUy0T9UFcKJalFZaDxnmRnpg==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-gapcursor@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 - /@tiptap/extension-hard-break@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-d6uStdNKi8kjPlHAyO59M6KGWATNwhLCD7dng0NXfwGndc22fthzIk/6j9F6ltQx30huy5qQram6j3JXwNACoA==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-hard-break@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-heading@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-KSzL8WZV3pjJG9ke4RaU70+B5UlYR2S6olNt5UCAawM+fi11mobVztiBoC19xtpSVqIXC1AmXOqUgnuSvmE4ZA==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-heading@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-highlight@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-9eW2UqDqeAKSDIiL6SqcPSDCQAdU5qQmRMsJlShOM7Fu1aU71b1ewhUP9YioUCanciR99tqNsk/n3LAe0w5XdA==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-highlight@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-history@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-m6YR1gkkauIDo3PRl0gP+7Oc4n5OqDzcjVh6LvWREmZP8nmi94hfseYbqOXUb6RPHIc0JKF02eiRifT4MSd2nw==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-history@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 - /@tiptap/extension-horizontal-rule@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-mT6baqOhs/NakgrAeDeed194E/ZJFGL692H0C7f1N7WDRaWxUu2oR0LrnRqSH5OyPjELkzu6nQnNy0+0tFGHHg==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-horizontal-rule@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 - /@tiptap/extension-italic@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-pOs6oU4LyGO89IrYE4jbE8ZYsPwMMIiKkYfXcfeD9NtpGNBnjeVXXF5I9ndY2ANrCAgC8k58C3/powDRf0T2yA==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-italic@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-link@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-7yfum5Jymkue/uOSTQPt2SmkZIdZx7t3QhZLqBU7R9ettkdSCBgEGok6N+scJM1R1Zes+maSckLm0JZw5BKYNA==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-link@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - linkifyjs: 4.3.2 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 + linkifyjs: 4.2.0 - /@tiptap/extension-list-item@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-quOXckC73Luc3x+Dcm88YAEBW+Crh3x5uvtQOQtn2GEG91AshrvbnhGRiYnfvEN7UhWIS+FYI5liHFcRKSUKrQ==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-list-item@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-ordered-list@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-UHKNRxq6TBnXMGFSq91knD6QaHsyyOwLOsXMzupmKM5Su0s+CRXEjfav3qKlbb9e4m7D7S/a0aPm8nC9KIXNhQ==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-ordered-list@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-paragraph@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-UezvM9VDRAVJlX1tykgHWSD1g3MKfVMWWZ+Tg+PE4+kizOwoYkRWznVPgCAxjmyHajxpCKRXgqTZkOxjJ9Kjzg==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-paragraph@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-placeholder@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1): - resolution: {integrity: sha512-MBlqbkd+63btY7Qu+SqrXvWjPwooGZDsLTtl7jp52BczBl61cq9yygglt9XpM11TFMBdySgdLHBrLtQ0B7fBlw==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 + '@tiptap/extension-placeholder@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 - /@tiptap/extension-strike@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-CkoRH+pAi6MgdCh7K0cVZl4N2uR4pZdabXAnFSoLZRSg6imLvEUmWHfSi1dl3Z7JOvd3a4yZ4NxerQn5MWbJ7g==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-strike@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-text-style@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-t9Nc/UkrbCfnSHEUi1gvUQ2ZPzvfdYFT5TExoV2DTiUCkhG6+mecT5bTVFGW3QkPmbToL+nFhGn4ZRMDD0SP3Q==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-text-style@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-text@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-p2n8WVMd/2vckdJlol24acaTDIZAhI7qle5cM75bn01sOEZoFlSw6SwINOULrUCzNJsYb43qrLEibZb4j2LeQw==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-text@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-typography@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-1zwKWfy7Tjutert1Vn/unN+98E0JFr5C2jx1xuesAEf4X405cQMb/zNMI44ON3xBG+aXZoTRlJuXNoYodeVSAg==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-typography@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/extension-underline@2.26.1(@tiptap/core@2.26.1): - resolution: {integrity: sha512-/fufv41WDMdf0a4xmFAxONoAz08TonJXX6NEoSJmuGKO59M/Y0Pz8DTK1g32Wk44kn7dyScDiPlvvndl+UOv0A==} - peerDependencies: - '@tiptap/core': ^2.7.0 + '@tiptap/extension-underline@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - dev: false + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) - /@tiptap/pm@2.26.1: - resolution: {integrity: sha512-8aF+mY/vSHbGFqyG663ds84b+vca5Lge3tHdTMTKazxCnhXR9dn2oQJMnZ78YZvdRbkPkMJJHti9h3K7u2UQvw==} + '@tiptap/pm@2.11.9': dependencies: - prosemirror-changeset: 2.3.1 + prosemirror-changeset: 2.2.1 prosemirror-collab: 1.3.1 prosemirror-commands: 1.7.1 prosemirror-dropcursor: 1.8.2 prosemirror-gapcursor: 1.3.2 prosemirror-history: 1.4.1 prosemirror-inputrules: 1.5.0 - prosemirror-keymap: 1.2.3 + prosemirror-keymap: 1.2.2 prosemirror-markdown: 1.13.2 prosemirror-menu: 1.2.5 - prosemirror-model: 1.25.3 + prosemirror-model: 1.25.1 prosemirror-schema-basic: 1.2.4 prosemirror-schema-list: 1.5.1 prosemirror-state: 1.4.3 prosemirror-tables: 1.7.1 - prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.40.1) + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.39.2) prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 - dev: false + prosemirror-view: 1.39.2 - /@tiptap/react@2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Zxlwzi1iML7aELa+PyysFD2ncVo2mEcjTkhoDok9iTbMGpm1oU8hgR1i6iHrcSNQLfaRiW6M7HNhZZQPKIC9yw==} - peerDependencies: - '@tiptap/core': ^2.7.0 - '@tiptap/pm': ^2.7.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tiptap/react@2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/extension-bubble-menu': 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-floating-menu': 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/pm': 2.26.1 + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/extension-bubble-menu': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-floating-menu': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/pm': 2.11.9 '@types/use-sync-external-store': 0.0.6 fast-deep-equal: 3.1.3 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - use-sync-external-store: 1.5.0(react@19.1.1) - dev: false - - /@tiptap/starter-kit@2.26.1: - resolution: {integrity: sha512-oziMGCds8SVQ3s5dRpBxVdEKZAmO/O//BjZ69mhA3q4vJdR0rnfLb5fTxSeQvHiqB878HBNn76kNaJrHrV35GA==} - dependencies: - '@tiptap/core': 2.26.1(@tiptap/pm@2.26.1) - '@tiptap/extension-blockquote': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-bold': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-bullet-list': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-code': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-code-block': 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-document': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-dropcursor': 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-gapcursor': 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-hard-break': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-heading': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-history': 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-horizontal-rule': 2.26.1(@tiptap/core@2.26.1)(@tiptap/pm@2.26.1) - '@tiptap/extension-italic': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-list-item': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-ordered-list': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-paragraph': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-strike': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-text': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/extension-text-style': 2.26.1(@tiptap/core@2.26.1) - '@tiptap/pm': 2.26.1 - dev: false - - /@twemoji/api@15.1.0: - resolution: {integrity: sha512-CySXR4/e6vY0z9lC2tW9EVjsH6zzz2/LQvLRMwwpHsDI4xcaweSIP+LcESf1Mq7w2/zcrrhG4ozniMvpSsEXag==} + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + use-sync-external-store: 1.5.0(react@19.1.0) + + '@tiptap/starter-kit@2.11.9': + dependencies: + '@tiptap/core': 2.11.9(@tiptap/pm@2.11.9) + '@tiptap/extension-blockquote': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-bold': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-bullet-list': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-code': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-code-block': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-document': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-dropcursor': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-gapcursor': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-hard-break': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-heading': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-history': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-horizontal-rule': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9))(@tiptap/pm@2.11.9) + '@tiptap/extension-italic': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-list-item': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-ordered-list': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-paragraph': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-strike': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-text': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/extension-text-style': 2.11.9(@tiptap/core@2.11.9(@tiptap/pm@2.11.9)) + '@tiptap/pm': 2.11.9 + + '@twemoji/api@15.1.0': dependencies: '@twemoji/parser': 15.1.0 fs-extra: 8.1.0 jsonfile: 5.0.0 universalify: 0.1.2 - dev: false - /@twemoji/parser@15.1.0: - resolution: {integrity: sha512-3HTiSxPvkWUJ4kZeCvwyKlIwkpTUfBOk6igpBBRQni58ceQMv5YK4smkc8vX/eqOlMMNER/9qobv+Q6Q8LVrqA==} - dev: false + '@twemoji/parser@15.1.0': {} - /@tybys/wasm-util@0.10.0: - resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 - dev: false optional: true - /@types/canvas-confetti@1.9.0: - resolution: {integrity: sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg==} - dev: false + '@types/canvas-confetti@1.9.0': {} - /@types/d3-array@3.2.1: - resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} - dev: false + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.15.21 - /@types/d3-axis@3.0.6: - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + '@types/d3-array@3.2.1': {} + + '@types/d3-axis@3.0.6': dependencies: '@types/d3-selection': 3.0.11 - dev: false - /@types/d3-brush@3.0.6: - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + '@types/d3-brush@3.0.6': dependencies: '@types/d3-selection': 3.0.11 - dev: false - /@types/d3-chord@3.0.6: - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} - dev: false + '@types/d3-chord@3.0.6': {} - /@types/d3-color@3.1.3: - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} - dev: false + '@types/d3-color@3.1.3': {} - /@types/d3-contour@3.0.6: - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + '@types/d3-contour@3.0.6': dependencies: '@types/d3-array': 3.2.1 '@types/geojson': 7946.0.16 - dev: false - /@types/d3-delaunay@6.0.4: - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} - dev: false + '@types/d3-delaunay@6.0.4': {} - /@types/d3-dispatch@3.0.7: - resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} - dev: false + '@types/d3-dispatch@3.0.6': {} - /@types/d3-drag@3.0.7: - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + '@types/d3-drag@3.0.7': dependencies: '@types/d3-selection': 3.0.11 - dev: false - /@types/d3-dsv@3.0.7: - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} - dev: false + '@types/d3-dsv@3.0.7': {} - /@types/d3-ease@3.0.2: - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} - dev: false + '@types/d3-ease@3.0.2': {} - /@types/d3-fetch@3.0.7: - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + '@types/d3-fetch@3.0.7': dependencies: '@types/d3-dsv': 3.0.7 - dev: false - /@types/d3-force@3.0.10: - resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} - dev: false + '@types/d3-force@3.0.10': {} - /@types/d3-format@3.0.4: - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} - dev: false + '@types/d3-format@3.0.4': {} - /@types/d3-geo@3.1.0: - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + '@types/d3-geo@3.1.0': dependencies: '@types/geojson': 7946.0.16 - dev: false - /@types/d3-hierarchy@3.1.7: - resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} - dev: false + '@types/d3-hierarchy@3.1.7': {} - /@types/d3-interpolate@3.0.4: - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + '@types/d3-interpolate@3.0.4': dependencies: '@types/d3-color': 3.1.3 - dev: false - /@types/d3-path@3.1.1: - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} - dev: false + '@types/d3-path@3.1.1': {} - /@types/d3-polygon@3.0.2: - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} - dev: false + '@types/d3-polygon@3.0.2': {} - /@types/d3-quadtree@3.0.6: - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} - dev: false + '@types/d3-quadtree@3.0.6': {} - /@types/d3-random@3.0.3: - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} - dev: false + '@types/d3-random@3.0.3': {} - /@types/d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} - dev: false + '@types/d3-scale-chromatic@3.1.0': {} - /@types/d3-scale@4.0.9: - resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + '@types/d3-scale@4.0.9': dependencies: '@types/d3-time': 3.0.4 - dev: false - /@types/d3-selection@3.0.11: - resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} - dev: false + '@types/d3-selection@3.0.11': {} - /@types/d3-shape@3.1.7: - resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + '@types/d3-shape@3.1.7': dependencies: '@types/d3-path': 3.1.1 - dev: false - /@types/d3-time-format@4.0.3: - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} - dev: false + '@types/d3-time-format@4.0.3': {} - /@types/d3-time@3.0.4: - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} - dev: false + '@types/d3-time@3.0.4': {} - /@types/d3-timer@3.0.2: - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - dev: false + '@types/d3-timer@3.0.2': {} - /@types/d3-transition@3.0.9: - resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + '@types/d3-transition@3.0.9': dependencies: '@types/d3-selection': 3.0.11 - dev: false - /@types/d3-zoom@3.0.8: - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + '@types/d3-zoom@3.0.8': dependencies: '@types/d3-interpolate': 3.0.4 '@types/d3-selection': 3.0.11 - dev: false - /@types/d3@7.4.3: - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + '@types/d3@7.4.3': dependencies: '@types/d3-array': 3.2.1 '@types/d3-axis': 3.0.6 @@ -9333,7 +15873,7 @@ packages: '@types/d3-color': 3.1.3 '@types/d3-contour': 3.0.6 '@types/d3-delaunay': 6.0.4 - '@types/d3-dispatch': 3.0.7 + '@types/d3-dispatch': 3.0.6 '@types/d3-drag': 3.0.7 '@types/d3-dsv': 3.0.7 '@types/d3-ease': 3.0.2 @@ -9356,961 +15896,748 @@ packages: '@types/d3-timer': 3.0.2 '@types/d3-transition': 3.0.9 '@types/d3-zoom': 3.0.8 - dev: false - /@types/dagre@0.7.53: - resolution: {integrity: sha512-f4gkWqzPZvYmKhOsDnhq/R8mO4UMcKdxZo+i5SCkOU1wvGeHJeUXGIHeE9pnwGyPMDof1Vx5ZQo4nxpeg2TTVQ==} - dev: true + '@types/dagre@0.7.52': {} - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 - dev: false - /@types/estree-jsx@1.0.5: - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/eslint-scope@3.7.7': dependencies: + '@types/eslint': 9.6.1 '@types/estree': 1.0.8 - dev: false - /@types/estree@1.0.8: - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 - /@types/geojson@7946.0.16: - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - dev: false + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.7 - /@types/hast@2.3.10: - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + '@types/estree@1.0.7': {} + + '@types/estree@1.0.8': {} + + '@types/geojson@7946.0.16': {} + + '@types/hast@2.3.10': dependencies: '@types/unist': 2.0.11 - dev: false - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 - dev: false - /@types/he@1.2.3: - resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==} - dev: false + '@types/he@1.2.3': {} - /@types/html-to-text@9.0.4: - resolution: {integrity: sha512-pUY3cKH/Nm2yYrEmDlPR1mR7yszjGx4DrwPjQ702C4/D5CwHuZTgZdIdwPkRbcuhs7BAh2L5rg3CL5cbRiGTCQ==} - dev: false + '@types/html-to-text@9.0.4': {} - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json-schema@7.0.15': {} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: false + '@types/json5@0.0.29': {} - /@types/linkify-it@5.0.0: - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - dev: false + '@types/linkify-it@5.0.0': {} - /@types/lodash.debounce@4.0.9: - resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} + '@types/lodash.debounce@4.0.9': dependencies: - '@types/lodash': 4.17.20 - dev: false + '@types/lodash': 4.17.16 - /@types/lodash@4.17.20: - resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} - dev: false + '@types/lodash@4.17.16': {} - /@types/markdown-it@14.1.2: - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + '@types/markdown-it@14.1.2': dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 - dev: false - /@types/mdast@4.0.4: - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 - dev: false - /@types/mdurl@2.0.0: - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - dev: false + '@types/mdurl@2.0.0': {} - /@types/mdx@2.0.13: - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - dev: false + '@types/mdx@2.0.13': {} - /@types/minimatch@3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: true + '@types/minimatch@3.0.5': {} - /@types/ms@2.1.0: - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - dev: false + '@types/ms@2.1.0': {} - /@types/node@22.15.21: - resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + '@types/mysql@2.15.27': + dependencies: + '@types/node': 22.15.21 + + '@types/node-fetch@2.6.13': + dependencies: + '@types/node': 22.15.21 + form-data: 4.0.4 + + '@types/node@18.19.121': + dependencies: + undici-types: 5.26.5 + + '@types/node@22.15.21': dependencies: undici-types: 6.21.0 - dev: true - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: true + '@types/parse-json@4.0.2': {} - /@types/react-dom@19.1.7(@types/react@19.1.10): - resolution: {integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==} - peerDependencies: - '@types/react': ^19.0.0 + '@types/pg-pool@2.0.6': dependencies: - '@types/react': 19.1.10 + '@types/pg': 8.15.4 - /@types/react-syntax-highlighter@15.5.13: - resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==} + '@types/pg@8.15.4': dependencies: - '@types/react': 19.1.10 - dev: false + '@types/node': 22.15.21 + pg-protocol: 1.10.3 + pg-types: 2.2.0 - /@types/react-twemoji@0.4.3: - resolution: {integrity: sha512-VzWkjmO8yJ31JSWgQhe0LCLU3FxcurTOklECm9p8v1xI/WfUBOGbSrqPjQPL46LE4oOqfrYIQ+0LM/8I6A8EDQ==} + '@types/react-dom@19.1.3(@types/react@19.1.2)': dependencies: - '@types/react': 19.1.10 - dev: false + '@types/react': 19.1.2 - /@types/react-window-infinite-loader@1.0.9: - resolution: {integrity: sha512-gEInTjQwURCnDOFyIEK2+fWB5gTjqwx30O62QfxA9stE5aiB6EWkGj4UMhc0axq7/FV++Gs/TGW8FtgEx0S6Tw==} + '@types/react-syntax-highlighter@15.5.13': + dependencies: + '@types/react': 19.1.2 + + '@types/react-twemoji@0.4.3': + dependencies: + '@types/react': 19.1.2 + + '@types/react-window-infinite-loader@1.0.9': dependencies: - '@types/react': 19.1.10 + '@types/react': 19.1.2 '@types/react-window': 1.8.8 - dev: false - /@types/react-window@1.8.8: - resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} + '@types/react-window@1.8.8': dependencies: - '@types/react': 19.1.10 - dev: false + '@types/react': 19.1.2 - /@types/react@19.1.10: - resolution: {integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==} + '@types/react@19.1.2': dependencies: csstype: 3.1.3 - /@types/tinycolor2@1.4.6: - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - dev: false + '@types/shimmer@1.2.0': {} - /@types/trusted-types@2.0.7: - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - dev: false + '@types/tedious@4.0.14': + dependencies: + '@types/node': 22.15.21 + + '@types/tinycolor2@1.4.6': {} + + '@types/trusted-types@2.0.7': optional: true - /@types/unist@2.0.11: - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - dev: false + '@types/unist@2.0.11': {} - /@types/unist@3.0.3: - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - dev: false + '@types/unist@3.0.3': {} - /@types/use-sync-external-store@0.0.6: - resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} - dev: false + '@types/use-sync-external-store@0.0.6': {} - /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - dev: true + '@types/yargs-parser@21.0.3': {} - /@types/yargs@17.0.33: - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@types/yargs@17.0.33': dependencies: '@types/yargs-parser': 21.0.3 - dev: true - /@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0)(eslint@9.33.0)(typescript@5.9.2): - resolution: {integrity: sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.40.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.40.0(eslint@9.33.0)(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.40.0 - '@typescript-eslint/type-utils': 8.40.0(eslint@9.33.0)(typescript@5.9.2) - '@typescript-eslint/utils': 8.40.0(eslint@9.33.0)(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.40.0 - eslint: 9.33.0 + '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.31.1 + '@typescript-eslint/type-utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.31.1 + eslint: 9.25.1(jiti@2.4.2) graphemer: 1.4.0 - ignore: 7.0.5 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - /@typescript-eslint/parser@8.40.0(eslint@9.33.0)(typescript@5.9.2): - resolution: {integrity: sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - dependencies: - '@typescript-eslint/scope-manager': 8.40.0 - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.40.0 - debug: 4.4.1 - eslint: 9.33.0 - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/project-service@8.40.0(typescript@5.9.2): - resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) - '@typescript-eslint/types': 8.40.0 - debug: 4.4.1 - typescript: 5.9.2 + '@typescript-eslint/scope-manager': 8.31.1 + '@typescript-eslint/types': 8.31.1 + '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.31.1 + debug: 4.4.0 + eslint: 9.25.1(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - /@typescript-eslint/scope-manager@8.40.0: - resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.31.1': dependencies: - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/visitor-keys': 8.40.0 + '@typescript-eslint/types': 8.31.1 + '@typescript-eslint/visitor-keys': 8.31.1 - /@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2): - resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': dependencies: - typescript: 5.9.2 - - /@typescript-eslint/type-utils@8.40.0(eslint@9.33.0)(typescript@5.9.2): - resolution: {integrity: sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - dependencies: - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.40.0(eslint@9.33.0)(typescript@5.9.2) - debug: 4.4.1 - eslint: 9.33.0 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + debug: 4.4.0 + eslint: 9.25.1(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - /@typescript-eslint/types@8.40.0: - resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.31.1': {} - /@typescript-eslint/typescript-estree@8.40.0(typescript@5.9.2): - resolution: {integrity: sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/typescript-estree@8.31.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.40.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/visitor-keys': 8.40.0 - debug: 4.4.1 + '@typescript-eslint/types': 8.31.1 + '@typescript-eslint/visitor-keys': 8.31.1 + debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + semver: 7.7.1 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - /@typescript-eslint/utils@8.40.0(eslint@9.33.0)(typescript@5.9.2): - resolution: {integrity: sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0) - '@typescript-eslint/scope-manager': 8.40.0 - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) - eslint: 9.33.0 - typescript: 5.9.2 + '@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.31.1 + '@typescript-eslint/types': 8.31.1 + '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) + eslint: 9.25.1(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - /@typescript-eslint/visitor-keys@8.40.0: - resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.31.1': dependencies: - '@typescript-eslint/types': 8.40.0 - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.31.1 + eslint-visitor-keys: 4.2.0 - /@ungap/structured-clone@1.3.0: - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - dev: false - - /@unrs/resolver-binding-android-arm-eabi@1.11.1: - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} - cpu: [arm] - os: [android] - dev: false - optional: true - - /@unrs/resolver-binding-android-arm64@1.11.1: - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} - cpu: [arm64] - os: [android] - dev: false - optional: true + '@ungap/structured-clone@1.3.0': {} - /@unrs/resolver-binding-darwin-arm64@1.11.1: - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} - cpu: [arm64] - os: [darwin] - dev: false + '@unrs/resolver-binding-darwin-arm64@1.7.2': optional: true - /@unrs/resolver-binding-darwin-x64@1.11.1: - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} - cpu: [x64] - os: [darwin] - dev: false + '@unrs/resolver-binding-darwin-x64@1.7.2': optional: true - /@unrs/resolver-binding-freebsd-x64@1.11.1: - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} - cpu: [x64] - os: [freebsd] - dev: false + '@unrs/resolver-binding-freebsd-x64@1.7.2': optional: true - /@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1: - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} - cpu: [arm] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.2': optional: true - /@unrs/resolver-binding-linux-arm-musleabihf@1.11.1: - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} - cpu: [arm] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.2': optional: true - /@unrs/resolver-binding-linux-arm64-gnu@1.11.1: - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} - cpu: [arm64] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-arm64-gnu@1.7.2': optional: true - /@unrs/resolver-binding-linux-arm64-musl@1.11.1: - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} - cpu: [arm64] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-arm64-musl@1.7.2': optional: true - /@unrs/resolver-binding-linux-ppc64-gnu@1.11.1: - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} - cpu: [ppc64] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.2': optional: true - /@unrs/resolver-binding-linux-riscv64-gnu@1.11.1: - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} - cpu: [riscv64] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.2': optional: true - /@unrs/resolver-binding-linux-riscv64-musl@1.11.1: - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} - cpu: [riscv64] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-riscv64-musl@1.7.2': optional: true - /@unrs/resolver-binding-linux-s390x-gnu@1.11.1: - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} - cpu: [s390x] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-s390x-gnu@1.7.2': optional: true - /@unrs/resolver-binding-linux-x64-gnu@1.11.1: - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} - cpu: [x64] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-x64-gnu@1.7.2': optional: true - /@unrs/resolver-binding-linux-x64-musl@1.11.1: - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} - cpu: [x64] - os: [linux] - dev: false + '@unrs/resolver-binding-linux-x64-musl@1.7.2': optional: true - /@unrs/resolver-binding-wasm32-wasi@1.11.1: - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + '@unrs/resolver-binding-wasm32-wasi@1.7.2': dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - dev: false + '@napi-rs/wasm-runtime': 0.2.9 optional: true - /@unrs/resolver-binding-win32-arm64-msvc@1.11.1: - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} - cpu: [arm64] - os: [win32] - dev: false + '@unrs/resolver-binding-win32-arm64-msvc@1.7.2': optional: true - /@unrs/resolver-binding-win32-ia32-msvc@1.11.1: - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} - cpu: [ia32] - os: [win32] - dev: false + '@unrs/resolver-binding-win32-ia32-msvc@1.7.2': optional: true - /@unrs/resolver-binding-win32-x64-msvc@1.11.1: - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} - cpu: [x64] - os: [win32] - dev: false + '@unrs/resolver-binding-win32-x64-msvc@1.7.2': optional: true - /@use-gesture/core@10.3.1: - resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} - dev: false + '@use-gesture/core@10.3.1': {} - /@use-gesture/react@10.3.1(react@19.1.1): - resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} - peerDependencies: - react: '>= 16.8.0' + '@use-gesture/react@10.3.1(react@19.1.0)': dependencies: '@use-gesture/core': 10.3.1 - react: 19.1.1 - dev: false + react: 19.1.0 - /@vue/compiler-core@3.5.19: - resolution: {integrity: sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==} + '@vue/compiler-core@3.5.13': dependencies: - '@babel/parser': 7.28.3 - '@vue/shared': 3.5.19 + '@babel/parser': 7.27.1 + '@vue/shared': 3.5.13 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - dev: true - /@vue/compiler-dom@3.5.19: - resolution: {integrity: sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==} + '@vue/compiler-dom@3.5.13': dependencies: - '@vue/compiler-core': 3.5.19 - '@vue/shared': 3.5.19 - dev: true + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 - /@vue/compiler-sfc@3.5.19: - resolution: {integrity: sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==} + '@vue/compiler-sfc@3.5.13': dependencies: - '@babel/parser': 7.28.3 - '@vue/compiler-core': 3.5.19 - '@vue/compiler-dom': 3.5.19 - '@vue/compiler-ssr': 3.5.19 - '@vue/shared': 3.5.19 + '@babel/parser': 7.27.1 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.6 + postcss: 8.5.3 source-map-js: 1.2.1 - dev: true - /@vue/compiler-ssr@3.5.19: - resolution: {integrity: sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==} + '@vue/compiler-ssr@3.5.13': dependencies: - '@vue/compiler-dom': 3.5.19 - '@vue/shared': 3.5.19 - dev: true + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 - /@vue/shared@3.5.19: - resolution: {integrity: sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==} - dev: true + '@vue/shared@3.5.13': {} - /@xyflow/react@12.8.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-bqUu4T5QSHiCFPkoH+b+LROKwQJdLvcjhGbNW9c1dLafCBRjmH1IYz0zPE+lRDXCtQ9kRyFxz3tG19+8VORJ1w==} - peerDependencies: - react: '>=17' - react-dom: '>=17' + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + '@xyflow/react@12.6.0(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@xyflow/system': 0.0.68 + '@xyflow/system': 0.0.57 classcat: 5.0.5 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - zustand: 4.5.7(@types/react@19.1.10)(react@19.1.1) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) transitivePeerDependencies: - '@types/react' - immer - dev: false - /@xyflow/system@0.0.68: - resolution: {integrity: sha512-QDG2wxIG4qX+uF8yzm1ULVZrcXX3MxPBoxv7O52FWsX87qIImOqifUhfa/TwsvLdzn7ic2DDBH1uI8TKbdNTYA==} + '@xyflow/system@0.0.57': dependencies: '@types/d3-drag': 3.0.7 - '@types/d3-interpolate': 3.0.4 '@types/d3-selection': 3.0.11 '@types/d3-transition': 3.0.9 '@types/d3-zoom': 3.0.8 d3-drag: 3.0.0 - d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-zoom: 3.0.0 - dev: false - /acorn-jsx@5.3.2(acorn@8.15.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.15.0): dependencies: acorn: 8.15.0 - /acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} + acorn-import-phases@1.0.4(acorn@8.15.0): dependencies: acorn: 8.15.0 - dev: false - /acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.15.0 + + acorn@8.14.1: {} + + acorn@8.15.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-regex@5.0.1: {} + + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - dev: true - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 - dev: true - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argparse@2.0.1: {} - /aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} + aria-hidden@1.2.4: dependencies: tslib: 2.8.1 - dev: false - /aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - dev: false + aria-query@5.3.2: {} - /array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 is-array-buffer: 3.0.5 - dev: false - /array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - dev: true + array-differ@3.0.0: {} - /array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} - engines: {node: '>= 0.4'} + array-includes@3.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 - math-intrinsics: 1.1.0 - dev: false - /array-move@3.0.1: - resolution: {integrity: sha512-H3Of6NIn2nNU1gsVDqDnYKY/LCdWvCMMOWifNGhKcVQgiZ6nOek39aESOvro6zmueP07exSl93YLvkN4fZOkSg==} - engines: {node: '>=10'} - dev: false + array-move@3.0.1: {} - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true + array-union@2.1.0: {} - /array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 - dev: false - /array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.6: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 - dev: false - /array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-shim-unscopables: 1.1.0 - dev: false - /array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-shim-unscopables: 1.1.0 - dev: false - /array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} + array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 - dev: false - /arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - dev: false - /arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - dev: true + arrify@2.0.1: {} - /ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: false + ast-types-flow@0.0.8: {} - /astring@1.9.0: - resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} - hasBin: true - dev: false + astring@1.9.0: {} - /async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - dev: false + async-function@1.0.0: {} - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false + asynckit@0.4.0: {} - /attr-accept@2.2.5: - resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==} - engines: {node: '>=4'} - dev: false + attr-accept@2.2.5: {} - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 - dev: false - /axe-core@4.10.3: - resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} - engines: {node: '>=4'} - dev: false + axe-core@4.10.3: {} - /axios-cache-interceptor@1.8.2(axios@1.11.0): - resolution: {integrity: sha512-NadGy8D06MrkpY+vlR5yTt1kGsmhSfON8mbriTpt7diByh81Vj3tViBrtPjGTwIvZxH9CUll2dZaWmGd9qQOiA==} - engines: {node: '>=12'} - peerDependencies: - axios: ^1 + axios-cache-interceptor@1.8.0(axios@1.9.0): dependencies: - axios: 1.11.0 + axios: 1.9.0 cache-parser: 1.2.5 fast-defer: 1.1.8 object-code: 1.3.3 - dev: false - /axios@1.11.0: - resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} + axios@1.9.0: dependencies: - follow-redirects: 1.15.11 - form-data: 4.0.4 + follow-redirects: 1.15.9 + form-data: 4.0.2 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - dev: false - /axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - dev: false + axobject-query@4.1.0: {} - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: false + bail@2.0.2: {} - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@1.0.2: {} - /barrelsby@2.8.1: - resolution: {integrity: sha512-barN2MVKqUVwmjRy3JLSMYufrBDcdWUc2pjlR0V9P8S3aMvvJ4StFz1GJMzEi5GBoQlnBIWOcCxBDzI2xfaaGw==} - engines: {node: '>=6.0.0'} - hasBin: true + barrelsby@2.8.1: dependencies: '@types/yargs': 17.0.33 signale: 1.4.0 yargs: 17.7.2 - dev: true - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false + base64-js@1.5.1: optional: true - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + binary-extensions@2.3.0: {} + + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - dev: false optional: true - /brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 - /braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + braces@3.0.3: dependencies: fill-range: 7.1.1 - /bson-objectid@2.0.4: - resolution: {integrity: sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==} - dev: false + browserslist@4.25.2: + dependencies: + caniuse-lite: 1.0.30001733 + electron-to-chromium: 1.5.199 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.2) - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + bson-objectid@2.0.4: {} + + buffer-from@1.1.2: {} + + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: false optional: true - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + busboy@1.6.0: dependencies: streamsearch: 1.1.0 - dev: false - /cache-parser@1.2.5: - resolution: {integrity: sha512-Md/4VhAHByQ9frQ15WD6LrMNiVw9AEl/J7vWIXw+sxT6fSOpbtt6LHTp76vy8+bOESPBO94117Hm2bIjlI7XjA==} - dev: false + cache-parser@1.2.5: {} - /call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - dev: false - /call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} + call-bind@1.0.8: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 get-intrinsic: 1.3.0 set-function-length: 1.2.2 - dev: false - /call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} + call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - dev: false - /callsite@1.0.0: - resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} - dev: true + callsite@1.0.0: {} - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + callsites@3.1.0: {} - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true + camelcase@6.3.0: {} - /caniuse-lite@1.0.30001736: - resolution: {integrity: sha512-ImpN5gLEY8gWeqfLUyEF4b7mYWcYoR2Si1VhnrbM4JizRFmfGaAQ12PhNykq6nvI4XvKLrsp8Xde74D5phJOSw==} - dev: false + caniuse-lite@1.0.30001726: {} - /canvas-confetti@1.9.3: - resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} - dev: false + caniuse-lite@1.0.30001733: {} - /canvas@3.2.0: - resolution: {integrity: sha512-jk0GxrLtUEmW/TmFsk2WghvgHe8B0pxGilqCL21y8lHkPUGa6FTsnCNtHPOzT8O3y+N+m3espawV80bbBlgfTA==} - engines: {node: ^18.12.0 || >= 20.9.0} - requiresBuild: true + canvas-confetti@1.9.3: {} + + canvas@3.1.0: dependencies: node-addon-api: 7.1.1 prebuild-install: 7.1.3 - dev: false optional: true - /ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - dev: false + ccount@2.0.1: {} - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@3.0.0: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - dev: false + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 - /character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: false + character-entities-html4@2.1.0: {} - /character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - dev: false + character-entities-legacy@1.1.4: {} - /character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: false + character-entities-legacy@3.0.0: {} - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - dev: false + character-entities@1.2.4: {} - /character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: false + character-entities@2.0.2: {} - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - dev: false + character-reference-invalid@1.1.4: {} - /chevrotain-allstar@0.3.1(chevrotain@11.0.3): - resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} - peerDependencies: - chevrotain: ^11.0.0 + character-reference-invalid@2.0.1: {} + + chevrotain-allstar@0.3.1(chevrotain@11.0.3): dependencies: chevrotain: 11.0.3 lodash-es: 4.17.21 - dev: false - /chevrotain@11.0.3: - resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} + chevrotain@11.0.3: dependencies: '@chevrotain/cst-dts-gen': 11.0.3 '@chevrotain/gast': 11.0.3 @@ -10318,453 +16645,287 @@ packages: '@chevrotain/types': 11.0.3 '@chevrotain/utils': 11.0.3 lodash-es: 4.17.21 - dev: false - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 optional: true - /chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - dev: false + chownr@1.1.4: + optional: true - /class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + chrome-trace-event@1.0.4: {} + + cjs-module-lexer@1.4.3: {} + + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 - dev: false - /classcat@5.0.5: - resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} - dev: false + classcat@5.0.5: {} - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false + client-only@0.0.1: {} - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - dev: false + clsx@1.2.1: {} - /clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - dev: false + clsx@2.1.1: {} - /cmdk@0.2.1(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + cmdk@0.2.1(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-dialog': 1.0.0(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@radix-ui/react-dialog': 1.0.0(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: - '@types/react' - dev: false - /cmdk@1.1.1(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc + cmdk@1.1.1(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.10)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dialog': 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - dev: false - /collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - dev: false + collapse-white-space@2.1.0: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - dev: true - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-name@1.1.4: {} - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-string@1.9.1: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - dev: false - /color2k@2.0.3: - resolution: {integrity: sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==} - dev: false + color2k@2.0.3: {} - /color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} + color@4.2.3: dependencies: color-convert: 2.0.1 color-string: 1.9.1 - dev: false - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: false - /comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: false + comma-separated-tokens@1.0.8: {} - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - dev: false + comma-separated-tokens@2.0.3: {} - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: false + commander@2.20.3: {} - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: false + commander@7.2.0: {} - /compute-scroll-into-view@3.1.1: - resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} - dev: false + commander@8.3.0: {} - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + commondir@1.0.1: {} - /confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - dev: false + compute-scroll-into-view@3.1.1: {} - /confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - dev: false + concat-map@0.0.1: {} - /cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + confbox@0.1.8: {} + + confbox@0.2.2: {} + + convert-source-map@2.0.0: {} + + core-js@3.45.0: {} + + cose-base@1.0.3: dependencies: layout-base: 1.0.2 - dev: false - /cose-base@2.2.0: - resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + cose-base@2.2.0: dependencies: layout-base: 2.0.1 - dev: false - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: true - /crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - dev: false + crelt@1.0.6: {} - /cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: false + cssesc@3.0.0: {} - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.1.3: {} - /cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} - peerDependencies: - cytoscape: ^3.2.0 + cytoscape-cose-bilkent@4.1.0(cytoscape@3.31.4): dependencies: cose-base: 1.0.3 - cytoscape: 3.33.1 - dev: false + cytoscape: 3.31.4 - /cytoscape-fcose@2.2.0(cytoscape@3.33.1): - resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} - peerDependencies: - cytoscape: ^3.2.0 + cytoscape-fcose@2.2.0(cytoscape@3.31.4): dependencies: cose-base: 2.2.0 - cytoscape: 3.33.1 - dev: false + cytoscape: 3.31.4 - /cytoscape@3.33.1: - resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} - engines: {node: '>=0.10'} - dev: false + cytoscape@3.31.4: {} - /d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + d3-array@2.12.1: dependencies: internmap: 1.0.1 - dev: false - /d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} + d3-array@3.2.4: dependencies: internmap: 2.0.3 - dev: false - /d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - dev: false + d3-axis@3.0.0: {} - /d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} + d3-brush@3.0.0: dependencies: d3-dispatch: 3.0.1 d3-drag: 3.0.0 d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - dev: false - /d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} + d3-chord@3.0.1: dependencies: d3-path: 3.1.0 - dev: false - /d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - dev: false + d3-color@3.1.0: {} - /d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} + d3-contour@4.0.2: dependencies: d3-array: 3.2.4 - dev: false - /d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} + d3-delaunay@6.0.4: dependencies: delaunator: 5.0.1 - dev: false - /d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - dev: false + d3-dispatch@3.0.1: {} - /d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} + d3-drag@3.0.0: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 - dev: false - /d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true + d3-dsv@3.0.1: dependencies: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 - dev: false - /d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - dev: false + d3-ease@3.0.1: {} - /d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} + d3-fetch@3.0.1: dependencies: d3-dsv: 3.0.1 - dev: false - /d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} + d3-force@3.0.0: dependencies: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 - dev: false - /d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - dev: false + d3-format@3.1.0: {} - /d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} + d3-geo@3.1.1: dependencies: d3-array: 3.2.4 - dev: false - /d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} - dev: false + d3-hierarchy@3.1.2: {} - /d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} + d3-interpolate@3.0.1: dependencies: d3-color: 3.1.0 - dev: false - /d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} - dev: false + d3-path@1.0.9: {} - /d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - dev: false + d3-path@3.1.0: {} - /d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} - dev: false + d3-polygon@3.0.1: {} - /d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} - dev: false + d3-quadtree@3.0.1: {} - /d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - dev: false + d3-random@3.0.1: {} - /d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + d3-sankey@0.12.3: dependencies: d3-array: 2.12.1 d3-shape: 1.3.7 - dev: false - /d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} + d3-scale-chromatic@3.1.0: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 - dev: false - /d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} + d3-scale@4.0.2: dependencies: d3-array: 3.2.4 d3-format: 3.1.0 d3-interpolate: 3.0.1 d3-time: 3.1.0 d3-time-format: 4.1.0 - dev: false - /d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - dev: false + d3-selection@3.0.0: {} - /d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + d3-shape@1.3.7: dependencies: d3-path: 1.0.9 - dev: false - /d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} + d3-shape@3.2.0: dependencies: d3-path: 3.1.0 - dev: false - /d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} + d3-time-format@4.1.0: dependencies: d3-time: 3.1.0 - dev: false - /d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} + d3-time@3.1.0: dependencies: d3-array: 3.2.4 - dev: false - /d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - dev: false + d3-timer@3.0.1: {} - /d3-transition@3.0.1(d3-selection@3.0.0): - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 + d3-transition@3.0.1(d3-selection@3.0.0): dependencies: d3-color: 3.1.0 d3-dispatch: 3.0.1 @@ -10772,22 +16933,16 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 - dev: false - /d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} + d3-zoom@3.0.0: dependencies: d3-dispatch: 3.0.1 d3-drag: 3.0.0 d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - dev: false - /d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} + d3@7.9.0: dependencies: d3-array: 3.2.4 d3-axis: 3.0.0 @@ -10819,172 +16974,102 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dev: false - /dagre-d3-es@7.0.11: - resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} + dagre-d3-es@7.0.11: dependencies: d3: 7.9.0 lodash-es: 4.17.21 - dev: false - /dagre@0.8.5: - resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} + dagre@0.8.5: dependencies: graphlib: 2.1.8 lodash: 4.17.21 - dev: false - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: false + damerau-levenshtein@1.0.8: {} - /data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} + data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - dev: false - /data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} + data-view-byte-length@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - dev: false - /data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.1: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - dev: false - /date-fns-tz@3.2.0(date-fns@4.1.0): - resolution: {integrity: sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==} - peerDependencies: - date-fns: ^3.0.0 || ^4.0.0 + date-fns-tz@3.2.0(date-fns@4.1.0): dependencies: date-fns: 4.1.0 - dev: false - /date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - dev: false + date-fns@4.1.0: {} - /dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - dev: false + dayjs@1.11.13: {} - /debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: false + debounce@1.2.1: {} - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@3.2.7: dependencies: ms: 2.1.3 - dev: false - /debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.4.0: dependencies: ms: 2.1.3 - /decimal.js-light@2.5.1: - resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} - dev: false + decimal.js-light@2.5.1: {} - /decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - dev: false + decimal.js@10.5.0: {} - /decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decode-named-character-reference@1.1.0: dependencies: character-entities: 2.0.2 - dev: false - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 - dev: false optional: true - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false + deep-extend@0.6.0: optional: true - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deep-is@0.1.4: {} - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: false + deepmerge@4.3.1: {} - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 - dev: false - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - dev: false - /delaunator@5.0.1: - resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + delaunator@5.0.1: dependencies: robust-predicates: 3.0.2 - dev: false - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false + delayed-stream@1.0.0: {} - /depcheck@1.4.7: - resolution: {integrity: sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==} - engines: {node: '>=10'} - hasBin: true + depcheck@1.4.7: dependencies: - '@babel/parser': 7.28.3 - '@babel/traverse': 7.28.3 - '@vue/compiler-sfc': 3.5.19 + '@babel/parser': 7.27.1 + '@babel/traverse': 7.27.1 + '@vue/compiler-sfc': 3.5.13 callsite: 1.0.0 camelcase: 6.3.0 cosmiconfig: 7.1.0 - debug: 4.4.1 + debug: 4.4.0 deps-regex: 0.2.0 findup-sync: 5.0.0 ignore: 5.3.2 @@ -10999,185 +17084,134 @@ packages: require-package-name: 2.0.1 resolve: 1.22.10 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.1 yargs: 16.2.0 transitivePeerDependencies: - supports-color - dev: true - /deps-regex@0.2.0: - resolution: {integrity: sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==} - dev: true + deps-regex@0.2.0: {} - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: false + dequal@2.0.3: {} - /detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: true + detect-file@1.0.0: {} - /detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} - engines: {node: '>=8'} - dev: false + detect-libc@1.0.3: + optional: true - /detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - dev: false + detect-libc@2.0.4: {} - /devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + detect-node-es@1.1.0: {} + + devlop@1.1.0: dependencies: dequal: 2.0.3 - dev: false - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: false - /dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dodopayments@1.44.0: dependencies: - '@babel/runtime': 7.28.3 + '@types/node': 18.19.121 + '@types/node-fetch': 2.6.13 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.27.1 csstype: 3.1.3 - dev: false - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - dev: false - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: false + domelementtype@2.3.0: {} - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + domhandler@5.0.3: dependencies: domelementtype: 2.3.0 - dev: false - /dompurify@3.2.6: - resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} + dompurify@3.2.5: optionalDependencies: '@types/trusted-types': 2.0.7 - dev: false - /domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dev: false - /dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} + dotenv@16.6.1: {} + + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 - dev: false - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false + duplexer@0.1.2: {} - /embla-carousel-react@8.6.0(react@19.1.1): - resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} - peerDependencies: - react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + electron-to-chromium@1.5.199: {} + + embla-carousel-react@8.6.0(react@19.1.0): dependencies: embla-carousel: 8.6.0 embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0) - react: 19.1.1 - dev: false + react: 19.1.0 - /embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0): - resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==} - peerDependencies: - embla-carousel: 8.6.0 + embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0): dependencies: embla-carousel: 8.6.0 - dev: false - /embla-carousel@8.6.0: - resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==} - dev: false + embla-carousel@8.6.0: {} - /emblor@1.4.8(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-Vqtz4Gepa7CIkmplQ+kvJnsSZJ4sAyHvQqqX2iCmgoRo5iRQFxr+5FJkk6QuLVNH5vrbBZEYxg7sMZuDCnQ/PQ==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + emblor@1.4.8(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-dialog': 1.0.4(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.10)(react@19.1.1) + '@radix-ui/react-dialog': 1.0.4(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popover': 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) class-variance-authority: 0.7.1 clsx: 2.1.1 - cmdk: 0.2.1(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-easy-sort: 1.6.0(react-dom@19.1.1)(react@19.1.1) + cmdk: 0.2.1(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-easy-sort: 1.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) tailwind-merge: 3.3.1 transitivePeerDependencies: - '@types/react' - '@types/react-dom' - dev: false - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: false + emoji-regex@9.2.2: {} - /end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + end-of-stream@1.4.4: dependencies: once: 1.4.0 - dev: false optional: true - /enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.2 - dev: false + tapable: 2.2.1 - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + entities@4.5.0: {} - /entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - dev: false + entities@6.0.1: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - dev: true - /es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} - engines: {node: '>= 0.4'} + es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -11206,9 +17240,7 @@ packages: is-array-buffer: 3.0.5 is-callable: 1.2.7 is-data-view: 1.0.2 - is-negative-zero: 2.0.3 is-regex: 1.2.1 - is-set: 2.0.3 is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 @@ -11223,7 +17255,6 @@ packages: safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -11233,26 +17264,17 @@ packages: typed-array-length: 1.0.7 unbox-primitive: 1.1.0 which-typed-array: 1.1.19 - dev: false - /es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - dev: false + es-define-property@1.0.1: {} - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - dev: false + es-errors@1.3.0: {} - /es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} + es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -11265,192 +17287,118 @@ packages: internal-slot: 1.1.0 iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 - dev: false - /es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: {} + + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - dev: false - /es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: false - /es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} + es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 - dev: false - /es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} + es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 - dev: false - /esast-util-from-estree@2.0.0: - resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-visit: 2.0.0 unist-util-position-from-estree: 2.0.0 - dev: false - /esast-util-from-js@2.0.1: - resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esast-util-from-js@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 acorn: 8.15.0 esast-util-from-estree: 2.0.0 - vfile-message: 4.0.3 - dev: false - - /escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + vfile-message: 4.0.2 - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: false + escalade@3.2.0: {} - /eslint-config-next@15.5.0(eslint@9.33.0)(typescript@5.9.2): - resolution: {integrity: sha512-Yl4hlOdBqstAuHnlBfx2RimBzWQwysM2SJNu5EzYVa2qS2ItPs7lgxL0sJJDudEx5ZZHfWPZ/6U8+FtDFWs7/w==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-config-next@15.3.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@next/eslint-plugin-next': 15.5.0 - '@rushstack/eslint-patch': 1.12.0 - '@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0)(eslint@9.33.0)(typescript@5.9.2) - '@typescript-eslint/parser': 8.40.0(eslint@9.33.0)(typescript@5.9.2) - eslint: 9.33.0 + '@next/eslint-plugin-next': 15.3.1 + '@rushstack/eslint-patch': 1.11.0 + '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.33.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.40.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.33.0) - eslint-plugin-react: 7.37.5(eslint@9.33.0) - eslint-plugin-react-hooks: 5.2.0(eslint@9.33.0) - typescript: 5.9.2 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-react: 7.37.5(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.25.1(jiti@2.4.2)) + optionalDependencies: + typescript: 5.8.3 transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x - supports-color - dev: false - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.16.1 resolve: 1.22.10 transitivePeerDependencies: - supports-color - dev: false - /eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.33.0): - resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1 - eslint: 9.33.0 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.40.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0) - get-tsconfig: 4.10.1 + debug: 4.4.0 + eslint: 9.25.1(jiti@2.4.2) + get-tsconfig: 4.10.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.14 - unrs-resolver: 1.11.1 + tinyglobby: 0.2.13 + unrs-resolver: 1.7.2 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.25.1(jiti@2.4.2)) transitivePeerDependencies: - supports-color - dev: false - /eslint-module-utils@2.12.1(@typescript-eslint/parser@8.40.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0): - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.25.1(jiti@2.4.2)): dependencies: - '@typescript-eslint/parser': 8.40.0(eslint@9.33.0)(typescript@5.9.2) debug: 3.2.7 - eslint: 9.33.0 + optionalDependencies: + '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.33.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) transitivePeerDependencies: - supports-color - dev: false - /eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.40.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0): - resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.25.1(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.40.0(eslint@9.33.0)(typescript@5.9.2) - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.33.0 + eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.40.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.25.1(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11461,27 +17409,24 @@ packages: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: false - /eslint-plugin-jsx-a11y@6.10.2(eslint@9.33.0): - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + eslint-plugin-jsx-a11y@6.10.2(eslint@9.25.1(jiti@2.4.2)): dependencies: aria-query: 5.3.2 - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 axe-core: 4.10.3 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.33.0 + eslint: 9.25.1(jiti@2.4.2) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -11489,30 +17434,20 @@ packages: object.fromentries: 2.0.8 safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - dev: false - /eslint-plugin-react-hooks@5.2.0(eslint@9.33.0): - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + eslint-plugin-react-hooks@5.2.0(eslint@9.25.1(jiti@2.4.2)): dependencies: - eslint: 9.33.0 - dev: false + eslint: 9.25.1(jiti@2.4.2) - /eslint-plugin-react@7.37.5(eslint@9.33.0): - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + eslint-plugin-react@7.37.5(eslint@9.25.1(jiti@2.4.2)): dependencies: - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.33.0 + eslint: 9.25.1(jiti@2.4.2) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -11525,75 +17460,54 @@ packages: semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - dev: false - /eslint-plugin-simple-import-sort@12.1.1(eslint@9.33.0): - resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} - peerDependencies: - eslint: '>=5.0.0' + eslint-plugin-simple-import-sort@12.1.1(eslint@9.25.1(jiti@2.4.2)): dependencies: - eslint: 9.33.0 - dev: true + eslint: 9.25.1(jiti@2.4.2) - /eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.40.0)(eslint@9.33.0): - resolution: {integrity: sha512-hLbJ2/wnjKq4kGA9AUaExVFIbNzyxYdVo49QZmKCnhk5pc9wcYRbfgLHvWJ8tnsdcseGhoUAddm9gn/lt+d74w==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 - eslint: ^9.0.0 || ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2)): dependencies: - '@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0)(eslint@9.33.0)(typescript@5.9.2) - eslint: 9.33.0 - dev: true + eslint: 9.25.1(jiti@2.4.2) + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) - /eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@3.4.3: {} - /eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@4.2.0: {} - /eslint@9.33.0: - resolution: {integrity: sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true + eslint@9.25.1(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0) + '@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.3.1 - '@eslint/core': 0.15.2 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.1 + '@eslint/core': 0.13.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.33.0 - '@eslint/plugin-kit': 0.3.5 + '@eslint/js': 9.25.1 + '@eslint/plugin-kit': 0.2.8 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -11608,145 +17522,100 @@ packages: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 transitivePeerDependencies: - supports-color - /espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.3.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.0 - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true + esprima@4.0.1: {} - /esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} + esquery@1.6.0: dependencies: estraverse: 5.3.0 - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + estraverse@4.3.0: {} - /estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.8 - dev: false + '@types/estree': 1.0.7 - /estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + estree-util-build-jsx@3.0.1: dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 - dev: false - /estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - dev: false + estree-util-is-identifier-name@3.0.0: {} - /estree-util-scope@1.0.0: - resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + estree-util-scope@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 devlop: 1.1.0 - dev: false - /estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + estree-util-to-js@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.9.0 - source-map: 0.7.6 - dev: false + source-map: 0.7.4 - /estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.3 - dev: false - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true + estree-walker@2.0.2: {} - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.8 - dev: false + '@types/estree': 1.0.7 - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + esutils@2.0.3: {} - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: false + event-target-shim@5.0.1: {} - /expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - dev: false + eventemitter3@4.0.7: {} + + events@3.3.0: {} + + expand-template@2.0.3: optional: true - /expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} + expand-tilde@2.0.2: dependencies: homedir-polyfill: 1.0.3 - dev: true - /exsolve@1.0.7: - resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} - dev: false + exsolve@1.0.5: {} - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false + extend@3.0.2: {} - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-deep-equal@3.1.3: {} - /fast-defer@1.1.8: - resolution: {integrity: sha512-lEJeOH5VL5R09j6AA0D4Uvq7AgsHw0dAImQQ+F3iSyHZuAxyQfWobsagGpTcOPvJr3urmKRHrs+Gs9hV+/Qm/Q==} - dev: false + fast-defer@1.1.8: {} - /fast-equals@5.2.2: - resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} - engines: {node: '>=6.0.0'} - dev: false + fast-equals@5.2.2: {} - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.8 - dev: false - /fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -11754,174 +17623,125 @@ packages: merge2: 1.4.1 micromatch: 4.0.8 - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-levenshtein@2.0.6: {} - /fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fast-uri@3.0.6: {} + + fastq@1.19.1: dependencies: reusify: 1.1.0 - /fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} + fault@1.0.4: dependencies: format: 0.2.2 - dev: false - /fdir@6.5.0(picomatch@4.0.3): - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - dependencies: - picomatch: 4.0.3 - dev: false + fdir@6.4.4(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 - /figures@2.0.0: - resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} - engines: {node: '>=4'} + fflate@0.4.8: {} + + figures@2.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - /file-selector@2.1.2: - resolution: {integrity: sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==} - engines: {node: '>= 12'} + file-selector@2.1.2: dependencies: tslib: 2.8.1 - dev: false - /fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - /find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} + find-up@2.1.0: dependencies: locate-path: 2.0.0 - dev: true - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - /findup-sync@5.0.0: - resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} - engines: {node: '>= 10.13.0'} + findup-sync@5.0.0: dependencies: detect-file: 1.0.0 is-glob: 4.0.3 micromatch: 4.0.8 resolve-dir: 1.0.1 - dev: true - /flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: false + flat@5.0.2: {} - /flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.3.3: {} - /follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false + follow-redirects@1.15.9: {} - /for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} + for-each@0.3.5: dependencies: is-callable: 1.2.7 - dev: false - /form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} - engines: {node: '>= 6'} + form-data-encoder@1.7.2: {} + + form-data@4.0.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 hasown: 2.0.2 mime-types: 2.1.35 - dev: false - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: false + format@0.2.2: {} - /framer-motion@12.23.12(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + forwarded-parse@2.1.2: {} + + framer-motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - motion-dom: 12.23.12 - motion-utils: 12.23.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + motion-dom: 12.9.1 + motion-utils: 12.8.3 tslib: 2.8.1 - dev: false + optionalDependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: false + fs-constants@1.0.0: optional: true - /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: false - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + fs.realpath@1.0.0: {} - /function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 @@ -11929,20 +17749,14 @@ packages: functions-have-names: 1.2.3 hasown: 2.0.2 is-callable: 1.2.7 - dev: false - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: false + functions-have-names@1.2.3: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + gensync@1.0.0-beta.2: {} - /get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -11954,181 +17768,120 @@ packages: has-symbols: 1.1.0 hasown: 2.0.2 math-intrinsics: 1.1.0 - dev: false - /get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - dev: false + get-nonce@1.0.1: {} - /get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - dev: false - /get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} + get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 - dev: false - /get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.10.0: dependencies: resolve-pkg-maps: 1.0.0 - dev: false - /github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - dev: false + github-from-package@0.0.0: optional: true - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - /global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} + glob-to-regexp@0.4.1: {} + + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + + global-modules@1.0.0: dependencies: global-prefix: 1.0.2 is-windows: 1.0.2 resolve-dir: 1.0.1 - dev: true - /global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} + global-prefix@1.0.2: dependencies: expand-tilde: 2.0.2 homedir-polyfill: 1.0.3 ini: 1.3.8 is-windows: 1.0.2 which: 1.3.1 - dev: true - /globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} + globals@11.12.0: {} - /globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - dev: false + globals@14.0.0: {} - /globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} + globals@15.15.0: {} + + globalthis@1.0.4: dependencies: define-properties: 1.2.1 gopd: 1.2.0 - dev: false - /gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - dev: false + gopd@1.2.0: {} - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graceful-fs@4.2.11: {} - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphemer@1.4.0: {} - /graphlib@2.1.8: - resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} + graphlib@2.1.8: dependencies: lodash: 4.17.21 - dev: false - /gsap@3.13.0: - resolution: {integrity: sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==} - dev: false + gsap@3.13.0: {} - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 - dev: false - /hachure-fill@0.5.2: - resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} - dev: false + hachure-fill@0.5.2: {} - /has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - dev: false + has-bigints@1.1.0: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + has-flag@4.0.0: {} - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 - dev: false - /has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} + has-proto@1.2.0: dependencies: dunder-proto: 1.0.1 - dev: false - /has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - dev: false + has-symbols@1.1.0: {} - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.1.0 - dev: false - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + hasown@2.0.2: dependencies: function-bind: 1.1.2 - /hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 - dev: false - /hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - dev: false + hast-util-parse-selector@2.2.5: {} - /hast-util-to-estree@3.1.3: - resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-estree@3.1.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -12139,19 +17892,17 @@ packages: mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 + property-information: 7.0.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-js: 1.1.16 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: - supports-color - dev: false - /hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + hast-util-to-jsx-runtime@2.3.6: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -12161,490 +17912,323 @@ packages: mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 + property-information: 7.0.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-js: 1.1.16 unist-util-position: 5.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.2 transitivePeerDependencies: - supports-color - dev: false - /hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + hast-util-to-text@4.0.2: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 - dev: false - /hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 - dev: false - /hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + hastscript@6.0.0: dependencies: '@types/hast': 2.3.10 comma-separated-tokens: 1.0.8 hast-util-parse-selector: 2.2.5 property-information: 5.6.0 space-separated-tokens: 1.1.5 - dev: false - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: false + he@1.2.0: {} - /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: false + highlight.js@10.7.3: {} - /highlight.js@11.11.1: - resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} - engines: {node: '>=12.0.0'} - dev: false + highlight.js@11.11.1: {} - /highlightjs-vue@1.0.0: - resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - dev: false + highlightjs-vue@1.0.0: {} - /homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 - dev: true - /html-dom-parser@5.1.1: - resolution: {integrity: sha512-+o4Y4Z0CLuyemeccvGN4bAO20aauB2N9tFEAep5x4OW34kV4PTarBHm6RL02afYt2BMKcr0D2Agep8S3nJPIBg==} + html-dom-parser@5.1.1: dependencies: domhandler: 5.0.3 htmlparser2: 10.0.0 - dev: false - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: false + html-escaper@2.0.2: {} - /html-react-parser@5.2.6(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-qcpPWLaSvqXi+TndiHbCa+z8qt0tVzjMwFGFBAa41ggC+ZA5BHaMIeMJla9g3VSp4SmiZb9qyQbmbpHYpIfPOg==} - peerDependencies: - '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 - react: 0.14 || 15 || 16 || 17 || 18 || 19 - peerDependenciesMeta: - '@types/react': - optional: true + html-react-parser@5.2.6(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 domhandler: 5.0.3 html-dom-parser: 5.1.1 - react: 19.1.1 + react: 19.1.0 react-property: 2.0.2 style-to-js: 1.1.17 - dev: false + optionalDependencies: + '@types/react': 19.1.2 - /html-to-text@9.0.5: - resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} - engines: {node: '>=14'} + html-to-text@9.0.5: dependencies: '@selderee/plugin-htmlparser2': 0.11.0 deepmerge: 4.3.1 dom-serializer: 2.0.0 htmlparser2: 8.0.2 selderee: 0.11.0 - dev: false - /html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - dev: false + html-url-attributes@3.0.1: {} - /htmlparser2@10.0.0: - resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + htmlparser2@10.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.2.2 entities: 6.0.1 - dev: false - /htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + htmlparser2@8.0.2: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.2.2 entities: 4.5.0 - dev: false - /husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true - dev: true + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + husky@9.1.7: {} + + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - dev: false - /idb-keyval@6.2.2: - resolution: {integrity: sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==} - dev: false + idb-keyval@6.2.2: {} - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false + ieee754@1.2.1: optional: true - /ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + ignore@5.3.2: {} - /ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} + immer@10.1.1: {} - /immer@10.1.1: - resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} - dev: false + immutable@5.1.3: + optional: true - /import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + import-in-the-middle@1.14.2: + dependencies: + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) + cjs-module-lexer: 1.4.3 + module-details-from-path: 1.0.4 - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: false + imurmurhash@0.1.4: {} + + inherits@2.0.4: optional: true - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@1.3.8: {} - /inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - dev: false + inline-style-parser@0.2.4: {} - /input-otp@1.4.1(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + input-otp@1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /input-otp@1.4.2(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + input-otp@1.4.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 - dev: false - /internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} - dev: false + internmap@1.0.1: {} - /internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - dev: false + internmap@2.0.3: {} - /intl-messageformat@10.7.16: - resolution: {integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==} + intl-messageformat@10.7.16: dependencies: '@formatjs/ecma402-abstract': 2.3.4 '@formatjs/fast-memoize': 2.2.7 '@formatjs/icu-messageformat-parser': 2.11.2 tslib: 2.8.1 - dev: false - /is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: false + is-alphabetical@1.0.4: {} - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - dev: false + is-alphabetical@2.0.1: {} - /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + is-alphanumerical@1.0.4: dependencies: is-alphabetical: 1.0.4 is-decimal: 1.0.4 - dev: false - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - dev: false - /is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} + is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 get-intrinsic: 1.3.0 - dev: false - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true + is-arrayish@0.2.1: {} - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: false + is-arrayish@0.3.2: {} - /is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} + is-async-function@2.1.1: dependencies: async-function: 1.0.0 call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 - dev: false - /is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} + is-bigint@1.1.0: dependencies: has-bigints: 1.1.0 - dev: false - /is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 - dev: false - /is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + is-bun-module@2.0.0: dependencies: semver: 7.7.2 - dev: false - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: false + is-callable@1.2.7: {} - /is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} + is-core-module@2.16.1: dependencies: hasown: 2.0.2 - /is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} + is-data-view@1.0.2: dependencies: call-bound: 1.0.4 get-intrinsic: 1.3.0 is-typed-array: 1.1.15 - dev: false - /is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} + is-date-object@1.1.0: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 - dev: false - /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: false + is-decimal@1.0.4: {} - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - dev: false + is-decimal@2.0.1: {} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + is-extglob@2.1.1: {} - /is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} + is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 - dev: false - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true + is-fullwidth-code-point@3.0.0: {} - /is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} + is-generator-function@1.1.0: dependencies: call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 - dev: false - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: false - - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - dev: false + is-hexadecimal@1.0.4: {} - /is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - dev: false + is-hexadecimal@2.0.1: {} - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - dev: false + is-map@2.0.3: {} - /is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} + is-number-object@1.1.1: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 - dev: false - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + is-number@7.0.0: {} - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - dev: false + is-plain-obj@4.1.0: {} - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - dev: false + is-plain-object@5.0.0: {} - /is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.7 + + is-regex@1.2.1: dependencies: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: false - /is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - dev: false + is-set@2.0.3: {} - /is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.4 - dev: false - /is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} + is-string@1.1.1: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 - dev: false - /is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} + is-symbol@1.1.1: dependencies: call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 - dev: false - /is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.19 - dev: false - /is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - dev: false + is-weakmap@2.0.2: {} - /is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} + is-weakref@1.1.1: dependencies: call-bound: 1.0.4 - dev: false - /is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} + is-weakset@2.0.4: dependencies: call-bound: 1.0.4 get-intrinsic: 1.3.0 - dev: false - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: false + isarray@2.0.5: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@2.0.0: {} - /iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 @@ -12652,391 +18236,235 @@ packages: get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 - dev: false - /jiti@2.5.1: - resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} - hasBin: true - dev: false + jest-worker@27.5.1: + dependencies: + '@types/node': 22.15.21 + merge-stream: 2.0.0 + supports-color: 8.1.1 - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + jiti@2.4.2: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-tokens@4.0.0: {} + + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - /jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - dev: true + jsesc@3.1.0: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-buffer@3.0.1: {} - /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true + json-parse-better-errors@1.0.2: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true + json-parse-even-better-errors@2.3.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@0.4.1: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-schema-traverse@1.0.0: {} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: dependencies: minimist: 1.2.8 - dev: false - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: true + json5@2.2.3: {} - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 - dev: false - /jsonfile@5.0.0: - resolution: {integrity: sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w==} + jsonfile@5.0.0: dependencies: universalify: 0.1.2 optionalDependencies: graceful-fs: 4.2.11 - dev: false - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 - dev: false - /katex@0.16.22: - resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} - hasBin: true + katex@0.16.22: dependencies: commander: 8.3.0 - dev: false - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - /khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} - dev: false + khroma@2.1.0: {} - /kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - dev: false + kolorist@1.8.0: {} - /langium@3.3.1: - resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} - engines: {node: '>=16.0.0'} + langium@3.3.1: dependencies: chevrotain: 11.0.3 chevrotain-allstar: 0.3.1(chevrotain@11.0.3) vscode-languageserver: 9.0.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - dev: false - /language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - dev: false + language-subtag-registry@0.3.23: {} - /language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + language-tags@1.0.9: dependencies: language-subtag-registry: 0.3.23 - dev: false - /layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} - dev: false + layout-base@1.0.2: {} - /layout-base@2.0.1: - resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} - dev: false + layout-base@2.0.1: {} - /leac@0.6.0: - resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} - dev: false + leac@0.6.0: {} - /lenis@1.3.8(react@19.1.1): - resolution: {integrity: sha512-LVeoMs6jZE1eu3gPsexndm+vk01pLFeq7P00vjIpI17saD52IYu8nPA4gX43elz8tp/TTCXcX6Em1MEjDl9NTw==} - peerDependencies: - '@nuxt/kit': '>=3.0.0' - react: '>=17.0.0' - vue: '>=3.0.0' - peerDependenciesMeta: - '@nuxt/kit': - optional: true - react: - optional: true - vue: - optional: true - dependencies: - react: 19.1.1 - dev: false + lenis@1.3.4(react@19.1.0): + optionalDependencies: + react: 19.1.0 - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - /lightningcss-darwin-arm64@1.30.1: - resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - dev: false + lightningcss-darwin-arm64@1.29.2: optional: true - /lightningcss-darwin-x64@1.30.1: - resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - dev: false + lightningcss-darwin-x64@1.29.2: optional: true - /lightningcss-freebsd-x64@1.30.1: - resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - dev: false + lightningcss-freebsd-x64@1.29.2: optional: true - /lightningcss-linux-arm-gnueabihf@1.30.1: - resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - dev: false + lightningcss-linux-arm-gnueabihf@1.29.2: optional: true - /lightningcss-linux-arm64-gnu@1.30.1: - resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - dev: false + lightningcss-linux-arm64-gnu@1.29.2: optional: true - /lightningcss-linux-arm64-musl@1.30.1: - resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - dev: false + lightningcss-linux-arm64-musl@1.29.2: optional: true - /lightningcss-linux-x64-gnu@1.30.1: - resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - dev: false + lightningcss-linux-x64-gnu@1.29.2: optional: true - /lightningcss-linux-x64-musl@1.30.1: - resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - dev: false + lightningcss-linux-x64-musl@1.29.2: optional: true - /lightningcss-win32-arm64-msvc@1.30.1: - resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - dev: false + lightningcss-win32-arm64-msvc@1.29.2: optional: true - /lightningcss-win32-x64-msvc@1.30.1: - resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - dev: false + lightningcss-win32-x64-msvc@1.29.2: optional: true - /lightningcss@1.30.1: - resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} - engines: {node: '>= 12.0.0'} + lightningcss@1.29.2: dependencies: detect-libc: 2.0.4 optionalDependencies: - lightningcss-darwin-arm64: 1.30.1 - lightningcss-darwin-x64: 1.30.1 - lightningcss-freebsd-x64: 1.30.1 - lightningcss-linux-arm-gnueabihf: 1.30.1 - lightningcss-linux-arm64-gnu: 1.30.1 - lightningcss-linux-arm64-musl: 1.30.1 - lightningcss-linux-x64-gnu: 1.30.1 - lightningcss-linux-x64-musl: 1.30.1 - lightningcss-win32-arm64-msvc: 1.30.1 - lightningcss-win32-x64-msvc: 1.30.1 - dev: false - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true + lightningcss-darwin-arm64: 1.29.2 + lightningcss-darwin-x64: 1.29.2 + lightningcss-freebsd-x64: 1.29.2 + lightningcss-linux-arm-gnueabihf: 1.29.2 + lightningcss-linux-arm64-gnu: 1.29.2 + lightningcss-linux-arm64-musl: 1.29.2 + lightningcss-linux-x64-gnu: 1.29.2 + lightningcss-linux-x64-musl: 1.29.2 + lightningcss-win32-arm64-msvc: 1.29.2 + lightningcss-win32-x64-msvc: 1.29.2 - /linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + lines-and-columns@1.2.4: {} + + linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 - dev: false - /linkifyjs@4.3.2: - resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} - dev: false + linkifyjs@4.2.0: {} - /load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} + load-json-file@4.0.0: dependencies: graceful-fs: 4.2.11 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 - dev: true - /local-pkg@1.1.2: - resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} - engines: {node: '>=14'} + loader-runner@4.3.0: {} + + local-pkg@1.1.1: dependencies: mlly: 1.7.4 - pkg-types: 2.3.0 - quansync: 0.2.11 - dev: false + pkg-types: 2.1.0 + quansync: 0.2.10 - /locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} + locate-path@2.0.0: dependencies: p-locate: 2.0.0 path-exists: 3.0.0 - dev: true - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: false + lodash-es@4.17.21: {} - /lodash.castarray@4.4.0: - resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - dev: false + lodash.castarray@4.4.0: {} - /lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - dev: false + lodash.isequal@4.5.0: {} - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false + lodash.isplainobject@4.0.6: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.merge@4.6.2: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.21: {} - /longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - dev: false + longest-streak@3.1.0: {} - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - dev: false - /lowlight@1.20.0: - resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} + lowlight@1.20.0: dependencies: fault: 1.0.4 highlight.js: 10.7.3 - dev: false - /lowlight@3.3.0: - resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==} + lowlight@3.3.0: dependencies: '@types/hast': 3.0.4 devlop: 1.1.0 highlight.js: 11.11.1 - dev: false - /lucide-react@0.483.0(react@19.1.1): - resolution: {integrity: sha512-WldsY17Qb/T3VZdMnVQ9C3DDIP7h1ViDTHVdVGnLZcvHNg30zH/MTQ04RTORjexoGmpsXroiQXZ4QyR0kBy0FA==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lru-cache@10.4.3: {} + + lru-cache@5.1.1: dependencies: - react: 19.1.1 - dev: false + yallist: 3.1.1 - /magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + lucide-react@0.483.0(react@19.1.0): dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + react: 19.1.0 - /make-cancellable-promise@1.3.2: - resolution: {integrity: sha512-GCXh3bq/WuMbS+Ky4JBPW1hYTOU+znU+Q5m9Pu+pI8EoUqIHk9+tviOKC6/qhHh8C4/As3tzJ69IF32kdz85ww==} - dev: false + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 - /make-event-props@1.6.2: - resolution: {integrity: sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==} - dev: false + magic-string@0.30.8: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 - /markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} - dev: false + make-cancellable-promise@1.3.2: {} - /markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} - hasBin: true + make-event-props@1.6.2: {} + + markdown-extensions@2.0.0: {} + + markdown-it@14.1.0: dependencies: argparse: 2.0.1 entities: 4.5.0 @@ -13044,44 +18472,25 @@ packages: mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 - dev: false - - /markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - dev: false - /marked@15.0.12: - resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} - engines: {node: '>= 18'} - hasBin: true - dev: false + markdown-table@3.0.4: {} - /marked@16.2.0: - resolution: {integrity: sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==} - engines: {node: '>= 20'} - hasBin: true - dev: false + marked@15.0.11: {} - /math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - dev: false + math-intrinsics@1.1.0: {} - /mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - dev: false - /mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -13093,20 +18502,16 @@ packages: unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + mdast-util-gfm-autolink-literal@2.0.1: dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - dev: false - /mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + mdast-util-gfm-footnote@2.1.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -13115,20 +18520,16 @@ packages: micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -13137,10 +18538,8 @@ packages: mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -13148,10 +18547,8 @@ packages: mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-gfm@3.1.0: dependencies: mdast-util-from-markdown: 2.0.2 mdast-util-gfm-autolink-literal: 2.0.1 @@ -13162,10 +18559,8 @@ packages: mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -13175,10 +18570,8 @@ packages: mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + mdast-util-mdx-jsx@3.2.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -13191,13 +18584,11 @@ packages: parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + mdast-util-mdx@3.0.0: dependencies: mdast-util-from-markdown: 2.0.2 mdast-util-mdx-expression: 2.0.1 @@ -13206,10 +18597,8 @@ packages: mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -13219,17 +18608,13 @@ packages: mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - dev: false - /mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - dev: false - /mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -13240,10 +18625,8 @@ packages: unist-util-position: 5.0.0 unist-util-visit: 5.0.0 vfile: 6.0.3 - dev: false - /mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 @@ -13254,68 +18637,51 @@ packages: micromark-util-decode-string: 2.0.1 unist-util-visit: 5.0.0 zwitch: 2.0.4 - dev: false - /mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 - dev: false - /mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - dev: false + mdurl@2.0.0: {} - /memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: false + memoize-one@5.2.1: {} - /merge-refs@1.3.0(@types/react@19.1.10): - resolution: {integrity: sha512-nqXPXbso+1dcKDpPCXvwZyJILz+vSLqGGOnDrYHQYE+B8n9JTCekVLC65AfCpR4ggVyA/45Y0iR9LDyS2iI+zA==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 19.1.10 - dev: false + merge-refs@1.3.0(@types/react@19.1.2): + optionalDependencies: + '@types/react': 19.1.2 - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + merge-stream@2.0.0: {} - /mermaid@11.10.0: - resolution: {integrity: sha512-oQsFzPBy9xlpnGxUqLbVY8pvknLlsNIJ0NWwi8SUJjhbP1IT0E0o1lfhU4iYV3ubpy+xkzkaOyDUQMn06vQElQ==} + merge2@1.4.1: {} + + mermaid@11.6.0: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 2.3.0 - '@mermaid-js/parser': 0.6.2 + '@mermaid-js/parser': 0.4.0 '@types/d3': 7.4.3 - cytoscape: 3.33.1 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.1) - cytoscape-fcose: 2.2.0(cytoscape@3.33.1) + cytoscape: 3.31.4 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.4) + cytoscape-fcose: 2.2.0(cytoscape@3.31.4) d3: 7.9.0 d3-sankey: 0.12.3 dagre-d3-es: 7.0.11 dayjs: 1.11.13 - dompurify: 3.2.6 + dompurify: 3.2.5 katex: 0.16.22 khroma: 2.1.0 lodash-es: 4.17.21 - marked: 16.2.0 + marked: 15.0.11 roughjs: 4.6.6 stylis: 4.3.6 ts-dedent: 2.2.0 uuid: 11.1.0 transitivePeerDependencies: - supports-color - dev: false - /micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -13331,19 +18697,15 @@ packages: micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + micromark-extension-gfm-footnote@2.1.0: dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -13353,10 +18715,8 @@ packages: micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + micromark-extension-gfm-strikethrough@2.1.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.1 @@ -13364,36 +18724,28 @@ packages: micromark-util-resolve-all: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-table@2.1.1: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-tagfilter@2.0.0: dependencies: micromark-util-types: 2.0.2 - dev: false - /micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + micromark-extension-gfm-task-list-item@2.1.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 @@ -13403,12 +18755,10 @@ packages: micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-mdx-expression@3.0.1: - resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + micromark-extension-mdx-expression@3.0.1: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.3 micromark-factory-space: 2.0.1 @@ -13416,12 +18766,10 @@ packages: micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-extension-mdx-jsx@3.0.2: - resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + micromark-extension-mdx-jsx@3.0.2: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.3 @@ -13430,19 +18778,15 @@ packages: micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - vfile-message: 4.0.3 - dev: false + vfile-message: 4.0.2 - /micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + micromark-extension-mdx-md@2.0.0: dependencies: micromark-util-types: 2.0.2 - dev: false - /micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-util-character: 2.1.1 @@ -13450,11 +18794,9 @@ packages: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 - dev: false + vfile-message: 4.0.2 - /micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + micromark-extension-mdxjs@3.0.0: dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) @@ -13464,29 +18806,23 @@ packages: micromark-extension-mdxjs-esm: 3.0.0 micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-factory-mdx-expression@2.0.3: - resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + micromark-factory-mdx-expression@2.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -13494,140 +18830,102 @@ packages: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 - dev: false + vfile-message: 4.0.2 - /micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-types: 2.0.2 - dev: false - /micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + micromark-util-chunked@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - dev: false - /micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + micromark-util-classify-character@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-combine-extensions@2.0.1: dependencies: micromark-util-chunked: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: micromark-util-symbol: 2.0.1 - dev: false - /micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.1.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 - dev: false - /micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - dev: false + micromark-util-encode@2.0.1: {} - /micromark-util-events-to-acorn@2.0.3: - resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + micromark-util-events-to-acorn@2.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - vfile-message: 4.0.3 - dev: false + vfile-message: 4.0.2 - /micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - dev: false + micromark-util-html-tag-name@2.0.1: {} - /micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + micromark-util-normalize-identifier@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - dev: false - /micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + micromark-util-resolve-all@2.0.1: dependencies: micromark-util-types: 2.0.2 - dev: false - /micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + micromark-util-sanitize-uri@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - dev: false - /micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + micromark-util-subtokenize@2.1.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - dev: false - /micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - dev: false + micromark-util-symbol@2.0.1: {} - /micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - dev: false + micromark-util-types@2.0.2: {} - /micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 - decode-named-character-reference: 1.2.0 + debug: 4.4.0 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -13644,195 +18942,108 @@ packages: micromark-util-types: 2.0.2 transitivePeerDependencies: - supports-color - dev: false - /micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false + mime-db@1.52.0: {} - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - dev: false - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false + mimic-response@3.1.0: optional: true - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} + minimatch@7.4.6: dependencies: brace-expansion: 2.0.2 - dev: true - /minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@8.0.4: dependencies: brace-expansion: 2.0.2 - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: false + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 - /minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - dev: false + minimist@1.2.8: {} - /minizlib@3.0.2: - resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} - engines: {node: '>= 18'} - dependencies: - minipass: 7.1.2 - dev: false + minipass@4.2.8: {} - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: false - optional: true + minipass@7.1.2: {} - /mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - dev: false + mkdirp-classic@0.5.3: + optional: true - /mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + mlly@1.7.4: dependencies: acorn: 8.15.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.1 - dev: false - /motion-dom@12.23.12: - resolution: {integrity: sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==} + module-details-from-path@1.0.4: {} + + motion-dom@12.9.1: dependencies: - motion-utils: 12.23.6 - dev: false + motion-utils: 12.8.3 - /motion-utils@12.23.6: - resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} - dev: false + motion-utils@12.8.3: {} - /motion@12.23.12(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-8jCD8uW5GD1csOoqh1WhH1A6j5APHVE15nuBkFeRiMzYBdRwyAHmSP/oXSuW0WJPZRXTFdBoG4hY9TFWNhhwng==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true + motion@12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - framer-motion: 12.23.12(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + framer-motion: 12.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) tslib: 2.8.1 - dev: false + optionalDependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} - dev: false + mrmime@2.0.1: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + ms@2.1.3: {} - /multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 minimatch: 3.1.2 - dev: true - /nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + nanoid@3.3.11: {} - /napi-build-utils@2.0.0: - resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - dev: false + napi-build-utils@2.0.0: optional: true - /napi-postinstall@0.3.3: - resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - dev: false + napi-postinstall@0.2.3: {} - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-compare@1.4.0: {} - /next-themes@0.4.6(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} - peerDependencies: - react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + neo-async@2.6.2: {} + + next-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /next@15.3.3(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - babel-plugin-react-compiler: - optional: true - sass: - optional: true + next@15.3.3(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.0): dependencies: '@next/env': 15.3.3 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001736 + caniuse-lite: 1.0.30001726 postcss: 8.4.31 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - styled-jsx: 5.1.6(react@19.1.1) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.28.0)(react@19.1.0) optionalDependencies: '@next/swc-darwin-arm64': 15.3.3 '@next/swc-darwin-x64': 15.3.3 @@ -13842,120 +19053,42 @@ packages: '@next/swc-linux-x64-musl': 15.3.3 '@next/swc-win32-arm64-msvc': 15.3.3 '@next/swc-win32-x64-msvc': 15.3.3 - sharp: 0.34.3 + '@opentelemetry/api': 1.9.0 + sass: 1.86.0 + sharp: 0.34.2 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - dev: false - /node-abi@3.75.0: - resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} - engines: {node: '>=10'} + node-abi@3.74.0: dependencies: semver: 7.7.2 - dev: false optional: true - /node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - dev: false + node-addon-api@7.1.1: optional: true - /npm@11.5.2: - resolution: {integrity: sha512-qsEkHPw/Qdw4eA1kKVxsa5F6QeJCiLM1GaexGt/FpUpfiBxkLXVXIVtscOAeVWVe17pmYwD9Aji8dfsXR4r68w==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - dev: false - bundledDependencies: - - '@isaacs/string-locale-compare' - - '@npmcli/arborist' - - '@npmcli/config' - - '@npmcli/fs' - - '@npmcli/map-workspaces' - - '@npmcli/package-json' - - '@npmcli/promise-spawn' - - '@npmcli/redact' - - '@npmcli/run-script' - - '@sigstore/tuf' - - abbrev - - archy - - cacache - - chalk - - ci-info - - cli-columns - - fastest-levenshtein - - fs-minipass - - glob - - graceful-fs - - hosted-git-info - - ini - - init-package-json - - is-cidr - - json-parse-even-better-errors - - libnpmaccess - - libnpmdiff - - libnpmexec - - libnpmfund - - libnpmorg - - libnpmpack - - libnpmpublish - - libnpmsearch - - libnpmteam - - libnpmversion - - make-fetch-happen - - minimatch - - minipass - - minipass-pipeline - - ms - - node-gyp - - nopt - - normalize-package-data - - npm-audit-report - - npm-install-checks - - npm-package-arg - - npm-pick-manifest - - npm-profile - - npm-registry-fetch - - npm-user-validate - - p-map - - pacote - - parse-conflict-json - - proc-log - - qrcode-terminal - - read - - semver - - spdx-expression-parse - - ssri - - supports-color - - tar - - text-table - - tiny-relative-date - - treeverse - - validate-npm-package-name - - which + node-domexception@1.0.0: {} - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: false + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 - /object-code@1.3.3: - resolution: {integrity: sha512-/Ds4Xd5xzrtUOJ+xJQ57iAy0BZsZltOHssnDgcZ8DOhgh41q1YJCnTPnWdWSLkNGNnxYzhYChjc5dgC9mEERCA==} - dev: false + node-releases@2.0.19: {} - /object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - dev: false + normalize-path@3.0.0: {} + + npm@11.3.0: {} + + object-assign@4.1.1: {} + + object-code@1.3.3: {} + + object-inspect@1.13.4: {} - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: false + object-keys@1.1.1: {} - /object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} + object.assign@4.1.7: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 @@ -13963,62 +19096,42 @@ packages: es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 - dev: false - /object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} + object.entries@1.1.9: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 - dev: false - /object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + object.fromentries@2.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-object-atoms: 1.1.1 - dev: false - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 - dev: false + es-abstract: 1.23.9 - /object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} + object.values@1.2.1: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 - dev: false - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - dev: false optional: true - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - dev: false + opener@1.5.2: {} - /optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + optionator@0.9.4: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -14027,62 +19140,41 @@ packages: type-check: 0.4.0 word-wrap: 1.2.5 - /orderedmap@2.1.1: - resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} - dev: false + orderedmap@2.1.1: {} - /own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} + own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 - dev: false - /p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} + p-limit@1.3.0: dependencies: p-try: 1.0.0 - dev: true - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - /p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} + p-locate@2.0.0: dependencies: p-limit: 1.3.0 - dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - /p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true + p-try@1.0.0: {} - /package-manager-detector@1.3.0: - resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} - dev: false + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.10 - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - /parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + parse-entities@2.0.0: dependencies: character-entities: 1.2.4 character-entities-legacy: 1.1.4 @@ -14090,189 +19182,154 @@ packages: is-alphanumerical: 1.0.4 is-decimal: 1.0.4 is-hexadecimal: 1.0.4 - dev: false - /parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.1.0 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - dev: false - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} + parse-json@4.0.0: dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true - /parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: true + parse-passwd@1.0.0: {} - /parseley@0.12.1: - resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + parseley@0.12.1: dependencies: leac: 0.6.0 peberminta: 0.9.0 - dev: false - /path-data-parser@0.1.0: - resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} - dev: false + path-data-parser@0.1.0: {} - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: true + path-exists@3.0.0: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + path-exists@4.0.0: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + path-key@3.1.1: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-parse@1.0.7: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 - /path2d@0.2.2: - resolution: {integrity: sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ==} - engines: {node: '>=6'} - dev: false + path-type@4.0.0: {} + + path2d@0.2.2: optional: true - /pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - dev: false + pathe@2.0.3: {} - /pdfjs-dist@4.8.69: - resolution: {integrity: sha512-IHZsA4T7YElCKNNXtiLgqScw4zPd3pG9do8UrznC757gMd7UPeHSL2qwNNMJo4r79fl8oj1Xx+1nh2YkzdMpLQ==} - engines: {node: '>=18'} + pdfjs-dist@4.8.69: optionalDependencies: - canvas: 3.2.0 + canvas: 3.1.0 path2d: 0.2.2 - dev: false - /peberminta@0.9.0: - resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} - dev: false + peberminta@0.9.0: {} - /picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + pg-int8@1.0.1: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + pg-protocol@1.10.3: {} - /picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - dev: false + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true + picocolors@1.1.1: {} - /pkg-conf@2.1.0: - resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} - engines: {node: '>=4'} + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pify@3.0.0: {} + + pkg-conf@2.1.0: dependencies: find-up: 2.1.0 load-json-file: 4.0.0 - dev: true - /pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkg-types@1.3.1: dependencies: confbox: 0.1.8 mlly: 1.7.4 pathe: 2.0.3 - dev: false - /pkg-types@2.3.0: - resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + pkg-types@2.1.0: dependencies: confbox: 0.2.2 - exsolve: 1.0.7 + exsolve: 1.0.5 pathe: 2.0.3 - dev: false - /please-upgrade-node@3.2.0: - resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + please-upgrade-node@3.2.0: dependencies: semver-compare: 1.0.0 - dev: true - /points-on-curve@0.2.0: - resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} - dev: false + points-on-curve@0.2.0: {} - /points-on-path@0.2.1: - resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + points-on-path@0.2.1: dependencies: path-data-parser: 0.1.0 points-on-curve: 0.2.0 - dev: false - /possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - dev: false + possible-typed-array-names@1.1.0: {} - /postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} + postcss-selector-parser@6.0.10: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: false - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.31: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - dev: false - /postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.5.3: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - /prebuild-install@7.1.3: - resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} - engines: {node: '>=10'} - hasBin: true + postgres-array@2.0.0: {} + + postgres-bytea@1.0.0: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + + posthog-js@1.259.0: + dependencies: + core-js: 3.45.0 + fflate: 0.4.8 + preact: 10.27.0 + web-vitals: 4.2.4 + + posthog-node@5.6.0: {} + + preact@10.27.0: {} + + prebuild-install@7.1.3: dependencies: detect-libc: 2.0.4 expand-template: 2.0.3 @@ -14280,386 +19337,219 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 3.75.0 - pump: 3.0.3 + node-abi: 3.74.0 + pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 tar-fs: 2.1.3 tunnel-agent: 0.6.0 - dev: false optional: true - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + prelude-ls@1.2.1: {} - /prettier-plugin-tailwindcss@0.6.14(prettier@3.6.2): - resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-hermes': '*' - '@prettier/plugin-oxc': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - '@zackad/prettier-plugin-twig': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-multiline-arrays: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-hermes': - optional: true - '@prettier/plugin-oxc': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - '@zackad/prettier-plugin-twig': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-multiline-arrays: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true + prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3): dependencies: - prettier: 3.6.2 - dev: false + prettier: 3.5.3 - /prettier@3.6.2: - resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} - engines: {node: '>=14'} - hasBin: true + prettier@3.5.3: {} - /prismjs@1.27.0: - resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} - engines: {node: '>=6'} - dev: false + prismjs@1.27.0: {} - /prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - dev: false + prismjs@1.30.0: {} - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + progress@2.0.3: {} + + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: false - /property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + property-information@5.6.0: dependencies: xtend: 4.0.2 - dev: false - /property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - dev: false + property-information@7.0.0: {} - /prosemirror-changeset@2.3.1: - resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==} + prosemirror-changeset@2.2.1: dependencies: prosemirror-transform: 1.10.4 - dev: false - /prosemirror-collab@1.3.1: - resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} + prosemirror-collab@1.3.1: dependencies: prosemirror-state: 1.4.3 - dev: false - /prosemirror-commands@1.7.1: - resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + prosemirror-commands@1.7.1: dependencies: - prosemirror-model: 1.25.3 + prosemirror-model: 1.25.1 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - dev: false - /prosemirror-dropcursor@1.8.2: - resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} + prosemirror-dropcursor@1.8.2: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 - dev: false + prosemirror-view: 1.39.2 - /prosemirror-gapcursor@1.3.2: - resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==} + prosemirror-gapcursor@1.3.2: dependencies: - prosemirror-keymap: 1.2.3 - prosemirror-model: 1.25.3 + prosemirror-keymap: 1.2.2 + prosemirror-model: 1.25.1 prosemirror-state: 1.4.3 - prosemirror-view: 1.40.1 - dev: false + prosemirror-view: 1.39.2 - /prosemirror-history@1.4.1: - resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==} + prosemirror-history@1.4.1: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 + prosemirror-view: 1.39.2 rope-sequence: 1.3.4 - dev: false - /prosemirror-inputrules@1.5.0: - resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==} + prosemirror-inputrules@1.5.0: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - dev: false - /prosemirror-keymap@1.2.3: - resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} + prosemirror-keymap@1.2.2: dependencies: prosemirror-state: 1.4.3 w3c-keyname: 2.2.8 - dev: false - /prosemirror-markdown@1.13.2: - resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==} + prosemirror-markdown@1.13.2: dependencies: '@types/markdown-it': 14.1.2 markdown-it: 14.1.0 - prosemirror-model: 1.25.3 - dev: false + prosemirror-model: 1.25.1 - /prosemirror-menu@1.2.5: - resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} + prosemirror-menu@1.2.5: dependencies: crelt: 1.0.6 prosemirror-commands: 1.7.1 prosemirror-history: 1.4.1 prosemirror-state: 1.4.3 - dev: false - /prosemirror-model@1.25.3: - resolution: {integrity: sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==} + prosemirror-model@1.25.1: dependencies: orderedmap: 2.1.1 - dev: false - /prosemirror-schema-basic@1.2.4: - resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==} + prosemirror-schema-basic@1.2.4: dependencies: - prosemirror-model: 1.25.3 - dev: false + prosemirror-model: 1.25.1 - /prosemirror-schema-list@1.5.1: - resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + prosemirror-schema-list@1.5.1: dependencies: - prosemirror-model: 1.25.3 + prosemirror-model: 1.25.1 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - dev: false - /prosemirror-state@1.4.3: - resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} + prosemirror-state@1.4.3: dependencies: - prosemirror-model: 1.25.3 + prosemirror-model: 1.25.1 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 - dev: false + prosemirror-view: 1.39.2 - /prosemirror-tables@1.7.1: - resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==} + prosemirror-tables@1.7.1: dependencies: - prosemirror-keymap: 1.2.3 - prosemirror-model: 1.25.3 + prosemirror-keymap: 1.2.2 + prosemirror-model: 1.25.1 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 - dev: false + prosemirror-view: 1.39.2 - /prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.40.1): - resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} - peerDependencies: - prosemirror-model: ^1.22.1 - prosemirror-state: ^1.4.2 - prosemirror-view: ^1.33.8 + prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.39.2): dependencies: '@remirror/core-constants': 3.0.0 escape-string-regexp: 4.0.0 - prosemirror-model: 1.25.3 + prosemirror-model: 1.25.1 prosemirror-state: 1.4.3 - prosemirror-view: 1.40.1 - dev: false + prosemirror-view: 1.39.2 - /prosemirror-transform@1.10.4: - resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==} + prosemirror-transform@1.10.4: dependencies: - prosemirror-model: 1.25.3 - dev: false + prosemirror-model: 1.25.1 - /prosemirror-view@1.40.1: - resolution: {integrity: sha512-pbwUjt3G7TlsQQHDiYSupWBhJswpLVB09xXm1YiJPdkjkh9Pe7Y51XdLh5VWIZmROLY8UpUpG03lkdhm9lzIBA==} + prosemirror-view@1.39.2: dependencies: - prosemirror-model: 1.25.3 + prosemirror-model: 1.25.1 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - dev: false - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false + proxy-from-env@1.1.0: {} - /pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + pump@3.0.2: dependencies: - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 once: 1.4.0 - dev: false optional: true - /punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - dev: false + punycode.js@2.3.1: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + punycode@2.3.1: {} - /quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - dev: false + quansync@0.2.10: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-microtask@1.2.3: {} - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: false optional: true - /react-day-picker@8.10.1(date-fns@4.1.0)(react@19.1.1): - resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} - peerDependencies: - date-fns: ^2.28.0 || ^3.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-day-picker@8.10.1(date-fns@4.1.0)(react@19.1.0): dependencies: date-fns: 4.1.0 - react: 19.1.1 - dev: false + react: 19.1.0 - /react-dom@19.1.1(react@19.1.1): - resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==} - peerDependencies: - react: ^19.1.1 + react-dom@19.1.0(react@19.1.0): dependencies: - react: 19.1.1 + react: 19.1.0 scheduler: 0.26.0 - dev: false - /react-dropzone@14.3.8(react@19.1.1): - resolution: {integrity: sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==} - engines: {node: '>= 10.13'} - peerDependencies: - react: '>= 16.8 || 18.0.0' + react-dropzone@14.3.8(react@19.1.0): dependencies: attr-accept: 2.2.5 file-selector: 2.1.2 prop-types: 15.8.1 - react: 19.1.1 - dev: false + react: 19.1.0 - /react-easy-sort@1.6.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-zd9Nn90wVlZPEwJrpqElN87sf9GZnFR1StfjgNQVbSpR5QTSzCHjEYK6REuwq49Ip+76KOMSln9tg/ST2KLelg==} - engines: {node: '>=16'} - peerDependencies: - react: '>=16.4.0' - react-dom: '>=16.4.0' + react-easy-sort@1.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: array-move: 3.0.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) tslib: 2.0.1 - dev: false - /react-hook-form@7.62.0(react@19.1.1): - resolution: {integrity: sha512-7KWFejc98xqG/F4bAxpL41NB3o1nnvQO1RWZT3TqRZYL8RryQETGfEdVnJN2fy1crCiBLLjkRBVK05j24FxJGA==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 + react-hook-form@7.56.1(react@19.1.0): dependencies: - react: 19.1.1 - dev: false + react: 19.1.0 - /react-intersection-observer@9.16.0(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-w9nJSEp+DrW9KmQmeWHQyfaP6b03v+TdXynaoA964Wxt7mdR3An11z4NNCQgL4gKSK7y1ver2Fq+JKH6CWEzUA==} - peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - react-dom: - optional: true + react-intersection-observer@9.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + optionalDependencies: + react-dom: 19.1.0(react@19.1.0) - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: false + react-is@16.13.1: {} - /react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - dev: false + react-is@18.3.1: {} - /react-markdown@10.1.0(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' + react-markdown@10.1.0(@types/react@19.1.2)(react@19.1.0): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.1.10 + '@types/react': 19.1.2 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 - react: 19.1.1 + react: 19.1.0 remark-parse: 11.0.0 remark-rehype: 11.1.2 unified: 11.0.5 @@ -14667,390 +19557,245 @@ packages: vfile: 6.0.3 transitivePeerDependencies: - supports-color - dev: false - /react-pdf@9.2.1(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-AJt0lAIkItWEZRA5d/mO+Om4nPCuTiQ0saA+qItO967DTjmGjnhmF+Bi2tL286mOTfBlF5CyLzJ35KTMaDoH+A==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.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 - peerDependenciesMeta: - '@types/react': - optional: true + react-pdf@9.2.1(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@types/react': 19.1.10 clsx: 2.1.1 dequal: 2.0.3 make-cancellable-promise: 1.3.2 make-event-props: 1.6.2 - merge-refs: 1.3.0(@types/react@19.1.10) + merge-refs: 1.3.0(@types/react@19.1.2) pdfjs-dist: 4.8.69 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) tiny-invariant: 1.3.3 warning: 4.0.3 - dev: false - - /react-property@2.0.2: - resolution: {integrity: sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==} - dev: false - - /react-redux@9.2.0(@types/react@19.1.10)(react@19.1.1)(redux@5.0.1): - resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} - peerDependencies: - '@types/react': ^18.2.25 || ^19 - react: ^18.0 || ^19 - redux: ^5.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - redux: - optional: true - dependencies: - '@types/react': 19.1.10 - '@types/use-sync-external-store': 0.0.6 - react: 19.1.1 - redux: 5.0.1 - use-sync-external-store: 1.5.0(react@19.1.1) - dev: false - - /react-remove-scroll-bar@2.3.8(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + optionalDependencies: + '@types/react': 19.1.2 + + react-property@2.0.2: {} + + react-redux@9.2.0(@types/react@19.1.2)(react@19.1.0)(redux@5.0.1): + dependencies: + '@types/use-sync-external-store': 0.0.6 + react: 19.1.0 + use-sync-external-store: 1.5.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + redux: 5.0.1 + + react-remove-scroll-bar@2.3.8(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - react-style-singleton: 2.2.3(@types/react@19.1.10)(react@19.1.1) + react: 19.1.0 + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) tslib: 2.8.1 - dev: false + optionalDependencies: + '@types/react': 19.1.2 - /react-remove-scroll@2.5.4(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll@2.5.4(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.10)(react@19.1.1) - react-style-singleton: 2.2.3(@types/react@19.1.10)(react@19.1.1) + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.2)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.10)(react@19.1.1) - use-sidecar: 1.1.3(@types/react@19.1.10)(react@19.1.1) - dev: false + use-callback-ref: 1.3.3(@types/react@19.1.2)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 - /react-remove-scroll@2.5.5(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll@2.5.5(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.10)(react@19.1.1) - react-style-singleton: 2.2.3(@types/react@19.1.10)(react@19.1.1) + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.2)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.10)(react@19.1.1) - use-sidecar: 1.1.3(@types/react@19.1.10)(react@19.1.1) - dev: false + use-callback-ref: 1.3.3(@types/react@19.1.2)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 - /react-remove-scroll@2.7.1(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll@2.6.3(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.10)(react@19.1.1) - react-style-singleton: 2.2.3(@types/react@19.1.10)(react@19.1.1) + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.2)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.10)(react@19.1.1) - use-sidecar: 1.1.3(@types/react@19.1.10)(react@19.1.1) - dev: false + use-callback-ref: 1.3.3(@types/react@19.1.2)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 - /react-resizable-panels@2.1.9(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==} - peerDependencies: - react: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-resizable-panels@2.1.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /react-smooth@4.0.4(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} - 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 + react-smooth@4.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: fast-equals: 5.2.2 prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-transition-group: 4.4.5(react-dom@19.1.1)(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - /react-style-singleton@2.2.3(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react-style-singleton@2.2.3(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 get-nonce: 1.0.1 - react: 19.1.1 + react: 19.1.0 tslib: 2.8.1 - dev: false + optionalDependencies: + '@types/react': 19.1.2 - /react-swipeable-list@1.10.0: - resolution: {integrity: sha512-Ap85a3c5sgvglZBlaansfT6VfwuMad5U4puxFW4sJbUU6alE7epzW39CHvs5AohUZi7wjlP1KFunpXoD+iUyGQ==} - dev: false + react-swipeable-list@1.10.0: {} - /react-syntax-highlighter@15.6.1(react@19.1.1): - resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==} - peerDependencies: - react: '>= 0.14.0' + react-syntax-highlighter@15.6.1(react@19.1.0): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.27.1 highlight.js: 10.7.3 highlightjs-vue: 1.0.0 lowlight: 1.20.0 prismjs: 1.30.0 - react: 19.1.1 + react: 19.1.0 refractor: 3.6.0 - dev: false - /react-textarea-autosize@8.5.9(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==} - engines: {node: '>=10'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-textarea-autosize@8.5.9(@types/react@19.1.2)(react@19.1.0): dependencies: - '@babel/runtime': 7.28.3 - react: 19.1.1 - use-composed-ref: 1.4.0(@types/react@19.1.10)(react@19.1.1) - use-latest: 1.3.0(@types/react@19.1.10)(react@19.1.1) + '@babel/runtime': 7.27.1 + react: 19.1.0 + use-composed-ref: 1.4.0(@types/react@19.1.2)(react@19.1.0) + use-latest: 1.3.0(@types/react@19.1.2)(react@19.1.0) transitivePeerDependencies: - '@types/react' - dev: false - /react-transition-group@4.4.5(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' + react-transition-group@4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.27.1 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /react-twemoji@0.6.0(react@19.1.1): - resolution: {integrity: sha512-D7lP83ysE+yXZd5U1RV3aFiD90D0LCz5tgDaIXt4AYazCakGVTYClof8lf0uYLr4TzDHgYX46rMASEEqiopSAQ==} - engines: {node: '>=5.0'} - peerDependencies: - react: '>=16.4.2' + react-twemoji@0.6.0(react@19.1.0): dependencies: '@twemoji/api': 15.1.0 lodash.isequal: 4.5.0 prop-types: 15.8.1 - react: 19.1.1 - dev: false + react: 19.1.0 - /react-window-infinite-loader@1.0.10(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-NO/csdHlxjWqA2RJZfzQgagAjGHspbO2ik9GtWZb0BY1Nnapq0auG8ErI+OhGCzpjYJsCYerqUlK6hkq9dfAAA==} - engines: {node: '>8.0.0'} - peerDependencies: - react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-window-infinite-loader@1.0.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /react-window@1.8.11(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==} - engines: {node: '>8.0.0'} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-window@1.8.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.27.1 memoize-one: 5.2.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /react@19.1.1: - resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} - engines: {node: '>=0.10.0'} - dev: false + react@19.1.0: {} - /reactflow@11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==} - peerDependencies: - react: '>=17' - react-dom: '>=17' + reactflow@11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@reactflow/background': 11.3.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@reactflow/controls': 11.2.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@reactflow/core': 11.11.4(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@reactflow/minimap': 11.7.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@reactflow/node-resizer': 2.2.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - '@reactflow/node-toolbar': 1.3.14(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@reactflow/background': 11.3.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@reactflow/controls': 11.2.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@reactflow/core': 11.11.4(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@reactflow/minimap': 11.7.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@reactflow/node-resizer': 2.2.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@reactflow/node-toolbar': 1.3.14(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: - '@types/react' - immer - dev: false - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: false optional: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - dev: true - /recharts-scale@0.4.5: - resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} + readdirp@4.1.2: + optional: true + + recharts-scale@0.4.5: dependencies: decimal.js-light: 2.5.1 - dev: false - /recharts@2.15.4(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==} - engines: {node: '>=14'} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + recharts@2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: clsx: 2.1.1 eventemitter3: 4.0.7 lodash: 4.17.21 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) react-is: 18.3.1 - react-smooth: 4.0.4(react-dom@19.1.1)(react@19.1.1) + react-smooth: 4.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) recharts-scale: 0.4.5 tiny-invariant: 1.3.3 victory-vendor: 36.9.2 - dev: false - /recma-build-jsx@1.0.0: - resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + recma-build-jsx@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - dev: false - /recma-jsx@1.0.1(acorn@8.15.0): - resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + recma-jsx@1.0.0(acorn@8.15.0): dependencies: - acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 unified: 11.0.5 - dev: false + transitivePeerDependencies: + - acorn - /recma-parse@1.0.0: - resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + recma-parse@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 esast-util-from-js: 2.0.1 unified: 11.0.5 vfile: 6.0.3 - dev: false - /recma-stringify@1.0.0: - resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + recma-stringify@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 estree-util-to-js: 2.0.0 unified: 11.0.5 vfile: 6.0.3 - dev: false - /redux-thunk@3.1.0(redux@5.0.1): - resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} - peerDependencies: - redux: ^5.0.0 + redux-thunk@3.1.0(redux@5.0.1): dependencies: redux: 5.0.1 - dev: false - /redux@5.0.1: - resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - dev: false + redux@5.0.1: {} - /reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 - dev: false - /refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + refractor@3.6.0: dependencies: hastscript: 6.0.0 parse-entities: 2.0.0 prismjs: 1.27.0 - dev: false - /regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 @@ -15058,30 +19803,24 @@ packages: get-proto: 1.0.1 gopd: 1.2.0 set-function-name: 2.0.2 - dev: false - /rehype-highlight@7.0.2: - resolution: {integrity: sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==} + rehype-highlight@7.0.2: dependencies: '@types/hast': 3.0.4 hast-util-to-text: 4.0.2 lowlight: 3.3.0 unist-util-visit: 5.0.0 vfile: 6.0.3 - dev: false - /rehype-recma@1.0.0: - resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + rehype-recma@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.7 '@types/hast': 3.0.4 hast-util-to-estree: 3.1.3 transitivePeerDependencies: - supports-color - dev: false - /remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 mdast-util-gfm: 3.1.0 @@ -15091,19 +19830,15 @@ packages: unified: 11.0.5 transitivePeerDependencies: - supports-color - dev: false - /remark-mdx@3.1.0: - resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + remark-mdx@3.1.0: dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - dev: false - /remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.2 @@ -15111,178 +19846,173 @@ packages: unified: 11.0.5 transitivePeerDependencies: - supports-color - dev: false - /remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + remark-rehype@11.1.2: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 mdast-util-to-hast: 13.2.0 unified: 11.0.5 vfile: 6.0.3 - dev: false - /remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - dev: false - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /require-package-name@2.0.1: - resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} - dev: true + require-from-string@2.0.2: {} - /reselect@5.1.1: - resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} - dev: false + require-in-the-middle@7.5.2: + dependencies: + debug: 4.4.0 + module-details-from-path: 1.0.4 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color - /resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} + require-package-name@2.0.1: {} + + reselect@5.1.1: {} + + resolve-dir@1.0.1: dependencies: expand-tilde: 2.0.2 global-modules: 1.0.0 - dev: true - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: false + resolve-pkg-maps@1.0.0: {} - /resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true + resolve@1.22.10: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: false - /reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 - /robust-predicates@3.0.2: - resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - dev: false + reusify@1.1.0: {} - /rope-sequence@1.3.4: - resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} - dev: false + robust-predicates@3.0.2: {} - /roughjs@4.6.6: - resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + rollup@4.46.2: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.46.2 + '@rollup/rollup-android-arm64': 4.46.2 + '@rollup/rollup-darwin-arm64': 4.46.2 + '@rollup/rollup-darwin-x64': 4.46.2 + '@rollup/rollup-freebsd-arm64': 4.46.2 + '@rollup/rollup-freebsd-x64': 4.46.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 + '@rollup/rollup-linux-arm-musleabihf': 4.46.2 + '@rollup/rollup-linux-arm64-gnu': 4.46.2 + '@rollup/rollup-linux-arm64-musl': 4.46.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 + '@rollup/rollup-linux-ppc64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-musl': 4.46.2 + '@rollup/rollup-linux-s390x-gnu': 4.46.2 + '@rollup/rollup-linux-x64-gnu': 4.46.2 + '@rollup/rollup-linux-x64-musl': 4.46.2 + '@rollup/rollup-win32-arm64-msvc': 4.46.2 + '@rollup/rollup-win32-ia32-msvc': 4.46.2 + '@rollup/rollup-win32-x64-msvc': 4.46.2 + fsevents: 2.3.3 + + rope-sequence@1.3.4: {} + + roughjs@4.6.6: dependencies: hachure-fill: 0.5.2 path-data-parser: 0.1.0 points-on-curve: 0.2.0 points-on-path: 0.2.1 - dev: false - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - /rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - dev: false + rw@1.3.3: {} - /safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 - dev: false - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false - optional: true + safe-buffer@5.2.1: {} - /safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 isarray: 2.0.5 - dev: false - /safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} + safe-regex-test@1.1.0: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 - dev: false - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: false + safer-buffer@2.1.2: {} - /scheduler@0.26.0: - resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} - dev: false + sass@1.86.0: + dependencies: + chokidar: 4.0.3 + immutable: 5.1.3 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.1 + optional: true - /scroll-into-view-if-needed@3.0.10: - resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==} + scheduler@0.26.0: {} + + schema-utils@4.3.2: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + + scroll-into-view-if-needed@3.0.10: dependencies: compute-scroll-into-view: 3.1.1 - dev: false - /selderee@0.11.0: - resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + selderee@0.11.0: dependencies: parseley: 0.12.1 - dev: false - /semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - dev: true + semver-compare@1.0.0: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: false + semver@6.3.1: {} - /semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true + semver@7.7.1: {} - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + semver@7.7.2: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -15290,35 +20020,25 @@ packages: get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 - dev: false - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: false - /set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} + set-proto@1.0.0: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 - dev: false - /sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - requiresBuild: true + sharp@0.33.5: dependencies: color: 4.2.3 detect-libc: 2.0.4 - semver: 7.7.2 + semver: 7.7.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -15339,204 +20059,146 @@ packages: '@img/sharp-wasm32': 0.33.5 '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 - dev: false - /sharp@0.34.3: - resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - requiresBuild: true + sharp@0.34.2: dependencies: color: 4.2.3 detect-libc: 2.0.4 semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.3 - '@img/sharp-darwin-x64': 0.34.3 - '@img/sharp-libvips-darwin-arm64': 1.2.0 - '@img/sharp-libvips-darwin-x64': 1.2.0 - '@img/sharp-libvips-linux-arm': 1.2.0 - '@img/sharp-libvips-linux-arm64': 1.2.0 - '@img/sharp-libvips-linux-ppc64': 1.2.0 - '@img/sharp-libvips-linux-s390x': 1.2.0 - '@img/sharp-libvips-linux-x64': 1.2.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 - '@img/sharp-linux-arm': 0.34.3 - '@img/sharp-linux-arm64': 0.34.3 - '@img/sharp-linux-ppc64': 0.34.3 - '@img/sharp-linux-s390x': 0.34.3 - '@img/sharp-linux-x64': 0.34.3 - '@img/sharp-linuxmusl-arm64': 0.34.3 - '@img/sharp-linuxmusl-x64': 0.34.3 - '@img/sharp-wasm32': 0.34.3 - '@img/sharp-win32-arm64': 0.34.3 - '@img/sharp-win32-ia32': 0.34.3 - '@img/sharp-win32-x64': 0.34.3 - dev: false + '@img/sharp-darwin-arm64': 0.34.2 + '@img/sharp-darwin-x64': 0.34.2 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.2 + '@img/sharp-linux-arm64': 0.34.2 + '@img/sharp-linux-s390x': 0.34.2 + '@img/sharp-linux-x64': 0.34.2 + '@img/sharp-linuxmusl-arm64': 0.34.2 + '@img/sharp-linuxmusl-x64': 0.34.2 + '@img/sharp-wasm32': 0.34.2 + '@img/sharp-win32-arm64': 0.34.2 + '@img/sharp-win32-ia32': 0.34.2 + '@img/sharp-win32-x64': 0.34.2 optional: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + shebang-regex@3.0.0: {} - /side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} + shimmer@1.2.1: {} + + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - dev: false - /side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} + side-channel-map@1.0.1: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 object-inspect: 1.13.4 - dev: false - /side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} + side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 - dev: false - /side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} + side-channel@1.1.0: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 - dev: false - /signale@1.4.0: - resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} - engines: {node: '>=6'} + signale@1.4.0: dependencies: chalk: 2.4.2 figures: 2.0.0 pkg-conf: 2.1.0 - dev: true - /simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: false + simple-concat@1.0.1: optional: true - /simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-get@4.0.1: dependencies: decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 - dev: false optional: true - /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 - dev: false - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.29 mrmime: 2.0.1 totalist: 3.0.1 - dev: false - /sonner@2.0.7(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} - peerDependencies: - react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + sonner@2.0.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - dev: false + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - /source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + source-map-js@1.2.1: {} - /source-map@0.7.6: - resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} - engines: {node: '>= 12'} - dev: false + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 - /space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: false + source-map@0.6.1: {} - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - dev: false + source-map@0.7.4: {} - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true + space-separated-tokens@1.1.5: {} - /stable-hash@0.0.5: - resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} - dev: false + space-separated-tokens@2.0.2: {} - /stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} + sprintf-js@1.0.3: {} + + stable-hash@0.0.5: {} + + stacktrace-parser@0.1.11: dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - dev: false + type-fest: 0.7.1 - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: false + streamsearch@1.1.0: {} - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} + string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 - dev: false + es-abstract: 1.23.9 - /string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} + string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -15546,316 +20208,219 @@ packages: regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 side-channel: 1.1.0 - dev: false - /string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.0 - dev: false + es-abstract: 1.23.9 - /string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 - dev: false - /string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} + string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 - dev: false - /string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.1.1 - dev: false - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: false optional: true - /stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 - dev: false - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false + strip-bom@3.0.0: {} + + strip-json-comments@2.0.1: optional: true - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + strip-json-comments@3.1.1: {} - /style-to-js@1.1.17: - resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + style-to-js@1.1.16: + dependencies: + style-to-object: 1.0.8 + + style-to-js@1.1.17: dependencies: style-to-object: 1.0.9 - dev: false - /style-to-object@1.0.9: - resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 - dev: false - /styled-jsx@5.1.6(react@19.1.1): - resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true + style-to-object@1.0.9: + dependencies: + inline-style-parser: 0.2.4 + + styled-jsx@5.1.6(@babel/core@7.28.0)(react@19.1.0): dependencies: client-only: 0.0.1 - react: 19.1.1 - dev: false + react: 19.1.0 + optionalDependencies: + '@babel/core': 7.28.0 - /stylis@4.3.6: - resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - dev: false + stylis@4.3.6: {} - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - dev: true - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 - /tailwind-merge@3.0.2: - resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==} - dev: false + supports-preserve-symlinks-flag@1.0.0: {} - /tailwind-merge@3.3.1: - resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} - dev: false + tailwind-merge@3.0.2: {} - /tailwind-variants@1.0.0(tailwindcss@4.1.12): - resolution: {integrity: sha512-2WSbv4ulEEyuBKomOunut65D8UZwxrHoRfYnxGcQNnHqlSCp2+B7Yz2W+yrNDrxRodOXtGD/1oCcKGNBnUqMqA==} - engines: {node: '>=16.x', pnpm: '>=7.x'} - peerDependencies: - tailwindcss: '*' + tailwind-merge@3.2.0: {} + + tailwind-merge@3.3.1: {} + + tailwind-variants@1.0.0(tailwindcss@4.1.5): dependencies: tailwind-merge: 3.0.2 - tailwindcss: 4.1.12 - dev: false + tailwindcss: 4.1.5 - /tailwindcss-animate@1.0.7(tailwindcss@4.1.12): - resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders' + tailwindcss-animate@1.0.7(tailwindcss@4.1.5): dependencies: - tailwindcss: 4.1.12 - dev: false + tailwindcss: 4.1.5 - /tailwindcss@4.1.12: - resolution: {integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==} - dev: false + tailwindcss@4.1.5: {} - /tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} - engines: {node: '>=6'} - dev: false + tapable@2.2.1: {} - /tar-fs@2.1.3: - resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} + tar-fs@2.1.3: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.3 + pump: 3.0.2 tar-stream: 2.2.0 - dev: false optional: true - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + tar-stream@2.2.0: dependencies: bl: 4.1.0 - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 - dev: false optional: true - /tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} + terser-webpack-plugin@5.3.14(webpack@5.101.0): dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.0.2 - mkdirp: 3.0.1 - yallist: 5.0.0 - dev: false + '@jridgewell/trace-mapping': 0.3.29 + jest-worker: 27.5.1 + schema-utils: 4.3.2 + serialize-javascript: 6.0.2 + terser: 5.43.1 + webpack: 5.101.0 - /third-party-capital@1.0.20: - resolution: {integrity: sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==} - dev: false + terser@5.43.1: + dependencies: + '@jridgewell/source-map': 0.3.10 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 - /tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: false + third-party-capital@1.0.20: {} - /tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - dev: false + tiny-invariant@1.3.3: {} - /tinyexec@1.0.1: - resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} - dev: false + tinycolor2@1.6.0: {} - /tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} + tinyexec@0.3.2: {} + + tinyglobby@0.2.13: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - dev: false + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 - /tippy.js@6.3.7: - resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} + tippy.js@6.3.7: dependencies: '@popperjs/core': 2.11.8 - dev: false - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: false + totalist@3.0.1: {} - /trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - dev: false + tr46@0.0.3: {} - /trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - dev: false + trim-lines@3.0.1: {} - /ts-api-utils@2.1.0(typescript@5.9.2): - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' + trough@2.2.0: {} + + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: - typescript: 5.9.2 + typescript: 5.8.3 - /ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} - dev: false + ts-dedent@2.2.0: {} - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: false - /tslib@2.0.1: - resolution: {integrity: sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==} - dev: false + tslib@2.0.1: {} - /tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - dev: false + tslib@2.8.1: {} - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 - dev: false optional: true - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - /typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} + type-fest@0.7.1: {} + + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 - dev: false - /typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 - dev: false - /typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 @@ -15864,11 +20429,8 @@ packages: has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - dev: false - /typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 for-each: 0.3.5 @@ -15876,37 +20438,25 @@ packages: is-typed-array: 1.1.15 possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - dev: false - /typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} - engines: {node: '>=14.17'} - hasBin: true + typescript@5.8.3: {} - /uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - dev: false + uc.micro@2.1.0: {} - /ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - dev: false + ufo@1.6.1: {} - /unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} + unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - dev: false - /undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - dev: true + undici-types@5.26.5: {} - /unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + undici-types@6.21.0: {} + + unified@11.0.5: dependencies: '@types/unist': 3.0.3 bail: 2.0.2 @@ -15915,209 +20465,144 @@ packages: is-plain-obj: 4.1.0 trough: 2.2.0 vfile: 6.0.3 - dev: false - /unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - dev: false - /unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 - dev: false - /unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position-from-estree@2.0.0: dependencies: '@types/unist': 3.0.3 - dev: false - /unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 - dev: false - /unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - dev: false - /unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - dev: false - /unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - dev: false - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: false + universalify@0.1.2: {} + + unplugin@1.0.1: + dependencies: + acorn: 8.15.0 + chokidar: 3.6.0 + webpack-sources: 3.3.3 + webpack-virtual-modules: 0.5.0 - /unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - requiresBuild: true + unrs-resolver@1.7.2: dependencies: - napi-postinstall: 0.3.3 + napi-postinstall: 0.2.3 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.11.1 - '@unrs/resolver-binding-android-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-x64': 1.11.1 - '@unrs/resolver-binding-freebsd-x64': 1.11.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-musl': 1.11.1 - '@unrs/resolver-binding-wasm32-wasi': 1.11.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - dev: false - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + '@unrs/resolver-binding-darwin-arm64': 1.7.2 + '@unrs/resolver-binding-darwin-x64': 1.7.2 + '@unrs/resolver-binding-freebsd-x64': 1.7.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.7.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.7.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.7.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-x64-musl': 1.7.2 + '@unrs/resolver-binding-wasm32-wasi': 1.7.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.7.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.7.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.7.2 + + update-browserslist-db@1.1.3(browserslist@4.25.2): + dependencies: + browserslist: 4.25.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: dependencies: punycode: 2.3.1 - /use-callback-ref@1.3.3(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + use-callback-ref@1.3.3(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 + react: 19.1.0 tslib: 2.8.1 - dev: false + optionalDependencies: + '@types/react': 19.1.2 - /use-composed-ref@1.4.0(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-composed-ref@1.4.0(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 - /use-isomorphic-layout-effect@1.2.1(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-isomorphic-layout-effect@1.2.0(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - dev: false + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 - /use-latest@1.3.0(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-latest@1.3.0(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - use-isomorphic-layout-effect: 1.2.1(@types/react@19.1.10)(react@19.1.1) - dev: false + react: 19.1.0 + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 - /use-sidecar@1.1.3(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + use-sidecar@1.1.3(@types/react@19.1.2)(react@19.1.0): dependencies: - '@types/react': 19.1.10 detect-node-es: 1.1.0 - react: 19.1.1 + react: 19.1.0 tslib: 2.8.1 - dev: false + optionalDependencies: + '@types/react': 19.1.2 - /use-sync-external-store@1.5.0(react@19.1.1): - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use-sync-external-store@1.5.0(react@19.1.0): dependencies: - react: 19.1.1 - dev: false + react: 19.1.0 - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: false + util-deprecate@1.0.2: {} - /uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} - hasBin: true - dev: false + uuid@11.1.0: {} - /vaul@1.1.2(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1): - resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + uuid@9.0.1: {} + + vaul@1.1.2(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.7)(@types/react@19.1.10)(react-dom@19.1.1)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@radix-ui/react-dialog': 1.1.11(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - dev: false - /vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - dev: false - /vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.3 - dev: false + vfile-message: 4.0.2 - /victory-vendor@36.9.2: - resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} + victory-vendor@36.9.2: dependencies: '@types/d3-array': 3.2.1 '@types/d3-ease': 3.0.2 @@ -16133,56 +20618,45 @@ packages: d3-shape: 3.2.0 d3-time: 3.1.0 d3-timer: 3.0.1 - dev: false - /vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} - dev: false + vscode-jsonrpc@8.2.0: {} - /vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + vscode-languageserver-protocol@3.17.5: dependencies: vscode-jsonrpc: 8.2.0 vscode-languageserver-types: 3.17.5 - dev: false - /vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - dev: false + vscode-languageserver-textdocument@1.0.12: {} - /vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - dev: false + vscode-languageserver-types@3.17.5: {} - /vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} - hasBin: true + vscode-languageserver@9.0.1: dependencies: vscode-languageserver-protocol: 3.17.5 - dev: false - /vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - dev: false + vscode-uri@3.0.8: {} - /w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - dev: false + w3c-keyname@2.2.8: {} - /warning@4.0.3: - resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + warning@4.0.3: dependencies: loose-envify: 1.4.0 - dev: false - /webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true + watchpack@2.4.4: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + web-streams-polyfill@4.0.0-beta.3: {} + + web-vitals@4.2.4: {} + + webidl-conversions@3.0.1: {} + + webpack-bundle-analyzer@4.10.1: dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.15.0 + acorn: 8.14.1 acorn-walk: 8.3.4 commander: 7.2.0 debounce: 1.2.1 @@ -16197,22 +20671,57 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: false - /which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} + webpack-sources@3.3.3: {} + + webpack-virtual-modules@0.5.0: {} + + webpack@5.101.0: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.25.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.1 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.2 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.14(webpack@5.101.0) + watchpack: 2.4.4 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 - dev: false - /which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} + which-builtin-type@1.2.1: dependencies: call-bound: 1.0.4 function.prototype.name: 1.1.8 @@ -16227,21 +20736,15 @@ packages: which-boxed-primitive: 1.1.1 which-collection: 1.0.2 which-typed-array: 1.1.19 - dev: false - /which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + which-collection@1.0.2: dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.4 - dev: false - /which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 @@ -16250,86 +20753,41 @@ packages: get-proto: 1.0.1 gopd: 1.2.0 has-tostringtag: 1.0.2 - dev: false - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + word-wrap@1.2.5: {} - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: false + wrappy@1.0.2: optional: true - /ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@7.5.10: {} - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false + xtend@4.0.2: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - dev: false + yallist@3.1.1: {} - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true + yaml@1.10.2: {} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 escalade: 3.2.0 @@ -16338,11 +20796,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.2.0 @@ -16351,36 +20806,17 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - dev: false + zod@3.24.3: {} - /zustand@4.5.7(@types/react@19.1.10)(react@19.1.1): - resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true + zustand@4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0): dependencies: - '@types/react': 19.1.10 - react: 19.1.1 - use-sync-external-store: 1.5.0(react@19.1.1) - dev: false + use-sync-external-store: 1.5.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + immer: 10.1.1 + react: 19.1.0 - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - dev: false + zwitch@2.0.4: {} diff --git a/frontend/sentry.edge.config.ts b/frontend/sentry.edge.config.ts new file mode 100644 index 00000000..08b98b9f --- /dev/null +++ b/frontend/sentry.edge.config.ts @@ -0,0 +1,19 @@ +// This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). +// The config you add here will be used whenever one of the edge features is loaded. +// Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. + tracesSampleRate: 1, + + // Enable logs to be sent to Sentry + enableLogs: true, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/frontend/sentry.server.config.ts b/frontend/sentry.server.config.ts new file mode 100644 index 00000000..29ab036d --- /dev/null +++ b/frontend/sentry.server.config.ts @@ -0,0 +1,18 @@ +// This file configures the initialization of Sentry on the server. +// The config you add here will be used whenever the server handles a request. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. + tracesSampleRate: 1, + + // Enable logs to be sent to Sentry + enableLogs: true, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/frontend/src/app/(landing)/blog/page.tsx b/frontend/src/app/(landing)/blog/page.tsx index 2aa7c976..5b6a1a22 100644 --- a/frontend/src/app/(landing)/blog/page.tsx +++ b/frontend/src/app/(landing)/blog/page.tsx @@ -1,5 +1,6 @@ "use client"; +import { Button } from "@heroui/button"; import { useEffect, useState } from "react"; import { blogApi, type BlogPost } from "@/features/blog/api/blogApi"; @@ -96,12 +97,7 @@ export default function BlogList() {
Error loading blog posts {error} - +
diff --git a/frontend/src/app/(landing)/payment/success/page.tsx b/frontend/src/app/(landing)/payment/success/page.tsx new file mode 100644 index 00000000..4c60c1f2 --- /dev/null +++ b/frontend/src/app/(landing)/payment/success/page.tsx @@ -0,0 +1,130 @@ +"use client"; + +import { Button } from "@heroui/button"; +import { Card, CardBody } from "@heroui/card"; +import { Spinner } from "@heroui/spinner"; +import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; +import { toast } from "sonner"; + +import { SubscriptionSuccessModal } from "@/features/pricing/components/SubscriptionSuccessModal"; +import { usePricing } from "@/features/pricing/hooks/usePricing"; + +export default function PaymentSuccessPage() { + const router = useRouter(); + const { verifyPayment } = usePricing(); + + const [isVerifying, setIsVerifying] = useState(true); + const [error, setError] = useState(null); + const [showSuccessModal, setShowSuccessModal] = useState(false); + + useEffect(() => { + const verifyPaymentStatus = async () => { + try { + const result = await verifyPayment(); + + if (result.payment_completed) { + setShowSuccessModal(true); + toast.success("Payment completed successfully!"); + } else { + setError("Payment not completed yet. Please try again in a moment."); + } + } catch (error) { + console.error("Payment verification failed:", error); + setError("Failed to verify payment. Please contact support."); + } finally { + setIsVerifying(false); + } + }; + + verifyPaymentStatus(); + }, [verifyPayment]); + + const handleSuccessClose = () => { + setShowSuccessModal(false); + router.push("/c"); + }; + + const handleRetry = () => { + setIsVerifying(true); + setError(null); + window.location.reload(); + }; + + if (isVerifying) { + return ( +
+ + + +

Verifying Payment...

+

+ Please wait while we confirm your payment with Dodo Payments. +

+
+
+
+ ); + } + + if (error) { + return ( +
+ + +
+

+ Payment Verification Failed +

+

{error}

+
+ + +
+
+
+
+ ); + } + + return ( + <> +
+ + +
+

+ Payment Successful! +

+

+ Your subscription has been activated successfully. +

+ +
+
+
+ + + + ); +} diff --git a/frontend/src/app/(landing)/privacy/page.tsx b/frontend/src/app/(landing)/privacy/page.tsx index 6117a41e..c58969d5 100644 --- a/frontend/src/app/(landing)/privacy/page.tsx +++ b/frontend/src/app/(landing)/privacy/page.tsx @@ -119,7 +119,15 @@ const PrivacyPolicy = () => {
  • Authentication Services: If you use third-party authentication services (e.g., Google, GitHub), we may receive - basic profile information; + basic profile information such as your name, email address, and + profile picture; +
  • +
  • + Google User Data: When you connect Google + services, we may access and collect data from your Google account + including but not limited to email, calendar events, contacts, and + documents as authorized by you through Google's OAuth consent + process;
  • Analytics Providers: Information from third-party @@ -154,6 +162,12 @@ const PrivacyPolicy = () => { Processing and responding to your requests and interactions with the AI assistant;
  • +
  • + Google User Data Processing: Using Google user + data solely to provide and improve our AI assistant functionality, + including processing emails, calendar events, and documents to + provide relevant assistance and responses; +
  • Personalizing your experience and delivering relevant content and recommendations; @@ -226,8 +240,10 @@ const PrivacyPolicy = () => {

    We do not sell, rent, or lease your personal information to third - parties. However, we may share your information in the following - limited circumstances: + parties.{" "} + We do not sell Google user data to third parties.{" "} + However, we may share your information in the following limited + circumstances:

    @@ -244,6 +260,13 @@ const PrivacyPolicy = () => {
  • Analytics and monitoring services;
  • Security and fraud prevention services.
  • +

    + Google User Data: We only share Google user data + with service providers who are necessary for providing our AI + assistant functionality and who have agreed to appropriate data + protection measures. We do not transfer Google user data to third + parties for advertising or other unrelated purposes. +

    3.2 Legal Requirements @@ -345,6 +368,12 @@ const PrivacyPolicy = () => { Incident response procedures to address potential security breaches.

  • +
  • + Google User Data Protection: Enhanced security + measures for Google user data including restricted access on a + need-to-know basis, secure API connections, and compliance with + Google's security requirements. +
  • However, no method of transmission over the internet or electronic @@ -434,11 +463,21 @@ const PrivacyPolicy = () => { Support communications: Retained for up to 3 years for quality assurance and legal compliance. +

  • + Google User Data: Retained only as long as + necessary to provide our services or as required by law. You can + request deletion of your Google user data at any time through your + account settings or by contacting us directly. +
  • We may retain certain information for longer periods when required by law or for legitimate business purposes such as fraud prevention - and security. + and security.{" "} + + Google user data is deleted when no longer necessary for providing + our AI assistant services. +

    diff --git a/frontend/src/app/(main)/layout.tsx b/frontend/src/app/(main)/layout.tsx index 2402c98d..2f335bda 100644 --- a/frontend/src/app/(main)/layout.tsx +++ b/frontend/src/app/(main)/layout.tsx @@ -134,7 +134,7 @@ export default function MainLayout({ children }: { children: ReactNode }) {
    {!currentOpen && } diff --git a/frontend/src/app/(main)/onboarding/page.tsx b/frontend/src/app/(main)/onboarding/page.tsx index d31ac260..370e99bb 100644 --- a/frontend/src/app/(main)/onboarding/page.tsx +++ b/frontend/src/app/(main)/onboarding/page.tsx @@ -15,7 +15,6 @@ export default function Onboarding() { messagesEndRef, inputRef, handleChipSelect, - handleCountrySelect, handleProfessionSelect, handleProfessionInputChange, handleInputChange, @@ -50,7 +49,6 @@ export default function Onboarding() { onboardingState={onboardingState} onSubmit={handleSubmit} onInputChange={handleInputChange} - onCountrySelect={handleCountrySelect} onProfessionSelect={handleProfessionSelect} onProfessionInputChange={handleProfessionInputChange} inputRef={inputRef} diff --git a/frontend/src/app/(main)/todos/today/page.tsx b/frontend/src/app/(main)/todos/today/page.tsx index 254f6f17..f855c137 100644 --- a/frontend/src/app/(main)/todos/today/page.tsx +++ b/frontend/src/app/(main)/todos/today/page.tsx @@ -7,7 +7,6 @@ import { todoApi } from "@/features/todo/api/todoApi"; import TodoDetailSheet from "@/features/todo/components/TodoDetailSheet"; import TodoHeader from "@/features/todo/components/TodoHeader"; import TodoList from "@/features/todo/components/TodoList"; -import { useTodos } from "@/features/todo/hooks/useTodos"; import { useUrlTodoSelection } from "@/features/todo/hooks/useUrlTodoSelection"; import { Project, Todo, TodoUpdate } from "@/types/features/todoTypes"; @@ -15,7 +14,6 @@ export default function TodayTodosPage() { const [todos, setTodos] = useState([]); const [loading, setLoading] = useState(true); const [projects, setProjects] = useState([]); - const { loadCounts } = useTodos(); const { selectedTodoId, selectTodo, clearSelection } = useUrlTodoSelection(); useEffect(() => { diff --git a/frontend/src/app/(main)/todos/upcoming/page.tsx b/frontend/src/app/(main)/todos/upcoming/page.tsx index 8f9aa625..deca90af 100644 --- a/frontend/src/app/(main)/todos/upcoming/page.tsx +++ b/frontend/src/app/(main)/todos/upcoming/page.tsx @@ -7,7 +7,6 @@ import { todoApi } from "@/features/todo/api/todoApi"; import TodoDetailSheet from "@/features/todo/components/TodoDetailSheet"; import TodoHeader from "@/features/todo/components/TodoHeader"; import TodoList from "@/features/todo/components/TodoList"; -import { useTodos } from "@/features/todo/hooks/useTodos"; import { useUrlTodoSelection } from "@/features/todo/hooks/useUrlTodoSelection"; import { Project, Todo, TodoUpdate } from "@/types/features/todoTypes"; @@ -15,7 +14,6 @@ export default function UpcomingTodosPage() { const [todos, setTodos] = useState([]); const [loading, setLoading] = useState(true); const [projects, setProjects] = useState([]); - const { loadCounts } = useTodos(); const { selectedTodoId, selectTodo, clearSelection } = useUrlTodoSelection(); useEffect(() => { diff --git a/frontend/src/app/global-error.tsx b/frontend/src/app/global-error.tsx new file mode 100644 index 00000000..edc3156d --- /dev/null +++ b/frontend/src/app/global-error.tsx @@ -0,0 +1,31 @@ +"use client"; + +// This file is the Next.js global error boundary for the App Router. +// Placing it in the `app/` directory automatically applies it to the entire +// application, so you don't need to manually wrap your pages or layouts. + +import * as Sentry from "@sentry/nextjs"; +import NextError from "next/error"; +import { useEffect } from "react"; + +export default function GlobalError({ + error, +}: { + error: Error & { digest?: string }; +}) { + useEffect(() => { + Sentry.captureException(error); + }, [error]); + + return ( + + + {/* `NextError` is the default Next.js error page component. Its type + definition requires a `statusCode` prop. However, since the App Router + does not expose status codes for errors, we simply pass 0 to render a + generic error message. */} + + + + ); +} diff --git a/frontend/src/components/index.ts b/frontend/src/components/index.ts index 1e021bf8..f8d636e9 100644 --- a/frontend/src/components/index.ts +++ b/frontend/src/components/index.ts @@ -10,7 +10,8 @@ export * from "./navigation/DesktopMenu"; export * from "./navigation/Footer"; export * from "./navigation/MobileMenu"; export * from "./navigation/Navbar"; -export * from "./navigation/NavigationMenu"; +export * from "./navigation/NavbarMenu"; +export * from "./navigation/RainbowGithubButton"; export * from "./Notifications/EnhancedNotificationCard"; export * from "./Notifications/NotificationActions"; export * from "./Notifications/NotificationCard"; diff --git a/frontend/src/components/layout/headers/ChatHeader.tsx b/frontend/src/components/layout/headers/ChatHeader.tsx index d43f38fe..db32a202 100644 --- a/frontend/src/components/layout/headers/ChatHeader.tsx +++ b/frontend/src/components/layout/headers/ChatHeader.tsx @@ -47,7 +47,7 @@ export default function ChatHeader() { /> )} -
    +
    - {appConfig.footerSections.map((section) => ( + {footerSections.map((section) => (
    {/* Main navigation links */} - {mainNavLinks.map((link) => ( + {main.map((link) => (
    )} diff --git a/frontend/src/components/navigation/NavbarMenu.tsx b/frontend/src/components/navigation/NavbarMenu.tsx index a68b23cb..e2a2db95 100644 --- a/frontend/src/components/navigation/NavbarMenu.tsx +++ b/frontend/src/components/navigation/NavbarMenu.tsx @@ -5,10 +5,11 @@ import Link from "next/link"; import React from "react"; import { - companyNavLinks, - connectNavLinks, - productNavLinks, - resourcesNavLinks, + company, + connect, + getLinkDescription, + product, + resources, } from "@/config/appConfig"; import { cn } from "@/lib/utils"; @@ -65,41 +66,20 @@ const ListItem = React.forwardRef< ListItem.displayName = "ListItem"; export function NavbarMenu({ activeMenu, onClose }: NavbarMenuProps) { - const descriptions = { - Features: "Discover all the powerful capabilities of GAIA", - Roadmap: "See what's coming next", - Status: "Check the status of GAIA", - "Use Cases": "Learn how GAIA can transform your workflow", - Blog: "Read the latest updates and insights", - Docs: "Comprehensive documentation and guides", - Pricing: "Choose the perfect plan for your needs", - "Feature Request": "Request new features and vote on ideas", - About: "Learn about our mission", - Contact: "Get in touch with our team", - Terms: "Terms of service and usage", - Privacy: "Our privacy policy", - Discord: "Join the Community Discord", - "Twitter (X)": "Follow us for updates", - GitHub: "Check out our open source projects", - WhatsApp: "Join our WhatsApp Community", - LinkedIn: "Follow our LinkedIn Company Page", - YouTube: "Subscribe to our YouTube Channel", - } as const; - const getDescription = (label: string): string => { - return descriptions[label as keyof typeof descriptions] || ""; + return getLinkDescription(label); }; const getMenuLinks = () => { switch (activeMenu) { case "product": - return productNavLinks; + return product; case "resources": - return resourcesNavLinks; + return resources; case "company": - return companyNavLinks; + return company; case "socials": - return connectNavLinks; + return connect; default: return []; } @@ -180,20 +160,6 @@ export function NavbarMenu({ activeMenu, onClose }: NavbarMenuProps) { {activeMenu === "socials" && (
    -
    - -
    - Need help? -
    -

    - Contact our support team directly -

    - -
    {links.map((link) => ( , - React.ComponentPropsWithoutRef<"a"> & { - title: string; - children?: React.ReactNode; - href: string; - external?: boolean; - icon?: React.ReactNode; - commented?: boolean; - } ->(({ className, title, children, href, external, icon, ...props }, ref) => { - const Component = external ? "a" : Link; - const linkProps = external - ? { href, target: "_blank", rel: "noopener noreferrer" } - : { href }; - - return ( -
  • - - -
    - {icon && ( - - {icon} - - )} -
    - {title} -
    -
    - {children && ( -

    - {children} -

    - )} -
    -
    -
  • - ); -}); -ListItem.displayName = "ListItem"; - -export function MainNavigationMenu() { - // Description mappings - consolidated and DRY - const descriptions = { - // Product - Features: "Discover all the powerful capabilities of GAIA", - Roadmap: "See what's coming next", - Status: "Check the status of GAIA", - "Use Cases": "Learn how GAIA can transform your workflow", - - // Resources - Blog: "Read the latest updates and insights", - Docs: "Comprehensive documentation and guides", - Pricing: "Choose the perfect plan for your needs", - "Feature Request": "Request new features and vote on ideas", - - // Company - About: "Learn about our mission", - Contact: "Get in touch with our team", - Terms: "Terms of service and usage", - Privacy: "Our privacy policy", - - // Connect - Discord: "Join the Community Discord", - "Twitter (X)": "Follow us for updates", - GitHub: "Check out our open source projects", - WhatsApp: "Join our WhatsApp Community ", - LinkedIn: "Follow our LinkedIn Company Page", - YouTube: "Subscribe to our YouTube Channel", - } as const; - - const getDescription = (label: string): string => { - return descriptions[label as keyof typeof descriptions] || ""; - }; - - return ( - - - {/* PRODUCT */} - - Product - -
      -
    • - - - website logo - -
      - GAIA -
      -

      - Your personal AI assistant -

      - -
      -
    • - {productNavLinks.map((link) => ( - - {getDescription(link.label)} - - ))} -
    -
    -
    - - {/* RESOURCES */} - - Resources - -
      - {resourcesNavLinks.map((link) => ( - - {getDescription(link.label)} - - ))} -
    -
    -
    - - {/* COMPANY */} - - Company - -
      - {companyNavLinks.map((link) => ( - - {getDescription(link.label)} - - ))} -
    -
    -
    - - {/* CONNECT */} - - Socials - -
      -
    • - - - website logo - -
      - Need help? -
      -

      - Contact our support team directly -

      - -
      -
    • - {connectNavLinks.map((link) => ( - - {getDescription(link.label)} - - ))} -
    -
    -
    -
    -
    - ); -} diff --git a/frontend/src/components/shared/icons.tsx b/frontend/src/components/shared/icons.tsx index 4cea49c2..53e1e0ca 100644 --- a/frontend/src/components/shared/icons.tsx +++ b/frontend/src/components/shared/icons.tsx @@ -4499,6 +4499,19 @@ export const WhatsappIcon = (props: React.SVGProps) => ( ); +export const YoutubeIcon = (props: React.SVGProps) => ( + + + +); + export const LinkedinIcon = (props: React.SVGProps) => ( , + description: "Return to the home page", }, ] as AppLink[], // Navigation menu sections product: [ - // { - // href: "/features", - // label: "Features", - // icon: , - // }, { href: "https://gaia.featurebase.app/roadmap", label: "Roadmap", icon: , external: true, + description: "See what's coming next", }, { href: "https://status.heygaia.io", label: "Status", icon: , external: true, + description: "Check the status of GAIA", }, - // { - // href: "/use-cases", - // label: "Use Cases", - // icon: , - // }, ] as AppLink[], resources: [ @@ -81,23 +76,27 @@ export const appConfig = { href: "/blog", label: "Blog", icon: , + description: "Read the latest updates and insights", }, { href: "https://docs.heygaia.io", label: "Docs", icon: , external: true, + description: "Comprehensive documentation and guides", }, { href: "/pricing", label: "Pricing", icon: , + description: "Choose the perfect plan for your needs", }, { href: "https://gaia.featurebase.app", label: "Feature Request", icon: , external: true, + description: "Request new features and vote on ideas", }, ] as AppLink[], @@ -106,21 +105,25 @@ export const appConfig = { href: "/about", label: "About", icon: , + description: "Learn about our mission", }, { href: "/contact", label: "Contact", icon: , + description: "Get in touch with our team", }, { href: "/terms", label: "Terms", icon: , + description: "Terms of service and usage", }, { href: "/privacy", label: "Privacy", icon: , + description: "Our privacy policy", }, ] as AppLink[], @@ -130,212 +133,102 @@ export const appConfig = { label: "Discord", icon: , external: true, + description: "Join the Community Discord", }, { href: "https://x.com/_heygaia", label: "Twitter (X)", icon: , external: true, + description: "Follow us for updates", }, { href: "https://github.com/heygaia", label: "GitHub", icon: , external: true, + description: "Check out our open source projects", }, { href: "https://whatsapp.heygaia.io", label: "WhatsApp", icon: , external: true, + description: "Join our WhatsApp Community", }, { href: "https://youtube.com/@heygaia_io", label: "YouTube", - icon: , + icon: , + external: true, + description: "Subscribe to our YouTube Channel", + }, + { + href: "https://www.linkedin.com/company/heygaia", + label: "LinkedIn", + icon: , external: true, + description: "Follow our LinkedIn Company Page", }, ] as AppLink[], // Authentication related links auth: [ { - href: "/c", - label: "Chat", - icon: , - requiresAuth: true, + href: "/login", + label: "Login", + guestOnly: true, }, { href: "/signup", label: "Get Started", guestOnly: true, }, - ] as AppLink[], - - // Explore links - explore: [ - { - label: "About", - href: "/about", - icon: , - }, - { - label: "Blog", - href: "/blog", - icon: , - }, - { - label: "Status", - href: "https://status.heygaia.io", - external: true, - icon: , - }, - ] as AppLink[], - - // Social/Connect links - social: [ - { - label: "Contact Us", - href: "/contact", - icon: , - }, { - label: "X (Twitter)", - href: "https://x.com/_heygaia", - external: true, - icon: , - }, - { - label: "WhatsApp", - href: "https://whatsapp.heygaia.io", - external: true, - icon: , - }, - { - label: "GitHub", - href: "https://github.com/heygaia", - external: true, - icon: , - }, - { - label: "LinkedIn", - href: "https://www.linkedin.com/company/heygaia", - external: true, - icon: , + href: "/c", + label: "Chat", + icon: , + requiresAuth: true, }, ] as AppLink[], - - // Legal links - legal: [ - { label: "Terms", href: "/terms" }, - { label: "Privacy", href: "/privacy" }, - ] as AppLink[], }, - // Footer sections (organized for footer display) - footerSections: [ - { - title: "Get Started", - links: [ - // Get auth links that are guest-only or require auth - { label: "Login", href: "/login", guestOnly: true }, - { label: "Signup", href: "/signup", guestOnly: true }, - { label: "New Chat", href: "/c", requiresAuth: true }, - ], - }, - { - title: "Explore", - links: [ - // Combine explore links with main navigation links that fit here - { label: "About", href: "/about", icon: }, - { label: "Blog", href: "/blog", icon: }, - { - label: "Feature Request", - href: "https://gaia.featurebase.app", - external: true, - icon: , - }, - { - label: "Roadmap", - href: "https://gaia.featurebase.app/roadmap", - external: true, - icon: , - }, - { - label: "Pricing", - href: "/pricing", - icon: , - }, - { - label: "Status", - href: "https://status.heygaia.io", - external: true, - icon: , - }, - ], - }, - { - title: "Connect", - links: [ - // Use social links + Discord from main nav - { - label: "Contact Us", - href: "/contact", - icon: , - }, - { - label: "X (Twitter)", - href: "https://x.com/_heygaia", - external: true, - icon: , - }, - { - label: "Discord", - href: "https://discord.heygaia.io", - external: true, - icon: , - }, - { - label: "WhatsApp", - href: "https://whatsapp.heygaia.io", - external: true, - icon: , - }, - { - label: "GitHub", - href: "https://github.com/heygaia", - external: true, - icon: , - }, - { - label: "LinkedIn", - href: "https://www.linkedin.com/company/heygaia", - external: true, - icon: , - }, - ], - }, - { - title: "Legal", - links: [ - { label: "Terms", href: "/terms" }, - { label: "Privacy", href: "/privacy" }, - ], - }, - ] as LinkSection[], + // Footer mapping - references existing link categories + footerMapping: { + "Get Started": ["auth"], + Explore: ["resources", "product"], + Company: ["company"], + Connect: ["connect"], + } as Record, }; -// Export legacy aliases for easier migration -export const siteConfig = { - name: appConfig.site.name, - copyright: appConfig.site.copyright, - domain: appConfig.site.domain, - pageSections: appConfig.footerSections, +// Utility functions for footer generation +const getFooterSections = (): LinkSection[] => { + return Object.entries(appConfig.footerMapping).map(([title, categories]) => ({ + title, + links: categories.flatMap( + (category) => + appConfig.links[category as keyof typeof appConfig.links] || [], + ), + })); }; -export const mainNavLinks = appConfig.links.main; -export const authNavLinks = appConfig.links.auth; -export const productNavLinks = appConfig.links.product; -export const resourcesNavLinks = appConfig.links.resources; -export const companyNavLinks = appConfig.links.company; -export const connectNavLinks = appConfig.links.connect; +// Streamlined exports +export const footerSections = getFooterSections(); + +// Direct access to link categories for navigation +export const { main, product, resources, company, connect, auth } = + appConfig.links; + +// Utility function to get description for a link by label +export const getLinkDescription = (label: string): string => { + const allLinks = Object.values(appConfig.links).flat(); + const link = allLinks.find((link) => link.label === label); + return link?.description || ""; +}; + +// Utility function to get a link by label from all categories +export const getLinkByLabel = (label: string): AppLink | undefined => { + const allLinks = Object.values(appConfig.links).flat(); + return allLinks.find((link) => link.label === label); +}; diff --git a/frontend/src/features/auth/api/authApi.ts b/frontend/src/features/auth/api/authApi.ts index 7d51ac22..8548004e 100644 --- a/frontend/src/features/auth/api/authApi.ts +++ b/frontend/src/features/auth/api/authApi.ts @@ -55,19 +55,21 @@ export const authApi = { // Logout user logout: async (): Promise => { - return apiService.post("/oauth/logout", undefined, { + const response = await apiService.post<{ logout_url: string }>("/oauth/logout", {}, { successMessage: "Logged out successfully", errorMessage: "Failed to logout", }); + + // Redirect to the logout URL returned by the backend + if (response.logout_url) { + window.location.href = response.logout_url; + } }, // Complete onboarding completeOnboarding: async (onboardingData: { name: string; - country: string; profession: string; - response_style: string; - instructions?: string | null; }): Promise<{ success: boolean; message: string; user?: UserInfo }> => { return apiService.post("/oauth/onboarding", onboardingData, { successMessage: "Welcome! Your preferences have been saved.", diff --git a/frontend/src/features/calendar/components/CalendarEventDialog.tsx b/frontend/src/features/calendar/components/CalendarEventDialog.tsx index f94d4f55..c19eae6b 100644 --- a/frontend/src/features/calendar/components/CalendarEventDialog.tsx +++ b/frontend/src/features/calendar/components/CalendarEventDialog.tsx @@ -62,25 +62,21 @@ export default function CalendarEventDialog({ date?: string; }>({}); const [recurrence, setRecurrence] = useState("none"); - const [showCustomRecurrence, setShowCustomRecurrence] = useState(false); - const [customRecurrence, setCustomRecurrence] = useState({ - interval: 1, - unit: "day", - }); // Reset form when dialog closes useEffect(() => { - if (!open) { - setSummary(""); - setDescription(""); - setStart(""); - setEnd(""); - setIsAllDay(false); - setErrors({}); - setRecurrence("none"); - setShowCustomRecurrence(false); - setCustomRecurrence({ interval: 1, unit: "day" }); + if (open) { + return; } + setSummary(""); + setDescription(""); + setStart(""); + setEnd(""); + setIsAllDay(false); + setErrors({}); + setRecurrence("none"); + // setShowCustomRecurrence(false); + // setCustomRecurrence({ interval: 1, unit: "day" }); }, [open]); // If in edit mode, populate form with event data diff --git a/frontend/src/features/chat/api/chatApi.ts b/frontend/src/features/chat/api/chatApi.ts index 76b3f741..405dff5c 100644 --- a/frontend/src/features/chat/api/chatApi.ts +++ b/frontend/src/features/chat/api/chatApi.ts @@ -166,26 +166,62 @@ export const chatApi = { ); }, + // Save incomplete conversation when stream is cancelled + saveIncompleteConversation: async ( + inputText: string, + conversationId: string | null, + incompleteResponse: string, + fileData: FileData[] = [], + selectedTool: string | null = null, + toolCategory: string | null = null, + ): Promise<{ success: boolean; conversation_id: string }> => { + const fileIds = fileData.map((file) => file.fileId); + + return apiService.post<{ success: boolean; conversation_id: string }>( + "/save-incomplete-conversation", + { + conversation_id: conversationId, + message: inputText, + fileIds, + fileData, + selectedTool, + toolCategory, + incomplete_response: incompleteResponse, + }, + ); + }, + // Fetch chat stream fetchChatStream: async ( inputText: string, convoMessages: MessageType[], - conversationId: string | null, - onMessage: (event: EventSourceMessage) => void, + conversationId: string | null | undefined, + onMessage: (event: EventSourceMessage) => void | string, onClose: () => void, onError: (err: Error) => void, fileData: FileData[] = [], selectedTool: string | null = null, toolCategory: string | null = null, + externalController?: AbortController, ) => { - const controller = new AbortController(); + const controller = externalController || new AbortController(); // Extract fileIds from fileData for backward compatibility const fileIds = fileData.map((file) => file.fileId); + // If conversationId is not provided, try to extract it from the URL + if (conversationId === undefined) { + const path = window.location.pathname; + const match = path.match(/\/c\/([^/]+)(?:\/|$)/); + if (match) { + conversationId = match[1]; + } + } + await fetchEventSource( `${process.env.NEXT_PUBLIC_API_BASE_URL}chat-stream`, { + openWhenHidden: true, method: "POST", headers: { "Content-Type": "application/json", @@ -195,7 +231,7 @@ export const chatApi = { credentials: "include", signal: controller.signal, body: JSON.stringify({ - conversation_id: conversationId, + conversation_id: conversationId || null, message: inputText, fileIds, // For backward compatibility fileData, // Send complete file data @@ -210,19 +246,26 @@ export const chatApi = { })), }), onmessage(event) { - onMessage(event); + const error = onMessage(event); if (event.data === "[DONE]") { onClose(); + return; + } + + if (error) { + onError(new Error(error)); controller.abort(); return; } }, onclose() { onClose(); + }, + onerror: (err) => { + onError(err); controller.abort(); }, - onerror: onError, }, ); }, diff --git a/frontend/src/features/chat/components/bubbles/bot/CalendarEventSection.tsx b/frontend/src/features/chat/components/bubbles/bot/CalendarEventSection.tsx index 6194c5c0..44f5412e 100644 --- a/frontend/src/features/chat/components/bubbles/bot/CalendarEventSection.tsx +++ b/frontend/src/features/chat/components/bubbles/bot/CalendarEventSection.tsx @@ -32,6 +32,7 @@ export default function CalendarEventSection({ end: option.end, is_all_day: option.is_all_day || false, recurrence: option.recurrence, + calendar_id: option.calendar_id, }; return timedEvent; } @@ -44,6 +45,7 @@ export default function CalendarEventSection({ time: option.start, is_all_day: option.is_all_day || true, // Default to all-day for single time events recurrence: option.recurrence, + calendar_id: option.calendar_id, }; return singleTimeEvent; } @@ -55,6 +57,7 @@ export default function CalendarEventSection({ time: "Time TBD", is_all_day: true, recurrence: option.recurrence, + calendar_id: option.calendar_id, }; return fallbackEvent; }, diff --git a/frontend/src/features/chat/components/bubbles/bot/EmailThreadCard.tsx b/frontend/src/features/chat/components/bubbles/bot/EmailThreadCard.tsx index dc9992b7..f4b09a6a 100644 --- a/frontend/src/features/chat/components/bubbles/bot/EmailThreadCard.tsx +++ b/frontend/src/features/chat/components/bubbles/bot/EmailThreadCard.tsx @@ -1,6 +1,5 @@ import { Accordion, AccordionItem } from "@heroui/accordion"; import { Chip } from "@heroui/chip"; -import { Selection } from "@heroui/react"; import { ScrollShadow } from "@heroui/scroll-shadow"; import DOMPurify from "dompurify"; import { useEffect, useRef, useState } from "react"; @@ -82,32 +81,16 @@ function EmailBodyRenderer({ body }: { body: string }) { ); } -interface EmailThreadCardProps { - emailThreadData: EmailThreadData; - isExpandedDefault?: boolean; -} - export default function EmailThreadCard({ emailThreadData, - isExpandedDefault = true, -}: EmailThreadCardProps) { - const [isExpanded, setIsExpanded] = useState(isExpandedDefault); - - const handleSelectionChange = (keys: Selection) => { - const expanded = - keys === "all" || (keys instanceof Set && keys.has("email-thread")); - setIsExpanded(expanded); - }; - +}: { + emailThreadData: EmailThreadData; +}) { return (
    - + { + // Optional: Add any post-submit logic here + console.log("Support ticket submitted from chat bubble"); + }; + + return ( +
    + {support_ticket_data.map((ticket, index) => ( + + ))} +
    + ); +} diff --git a/frontend/src/features/chat/components/bubbles/bot/TextBubble.tsx b/frontend/src/features/chat/components/bubbles/bot/TextBubble.tsx index e5a12d7f..65bac5c6 100644 --- a/frontend/src/features/chat/components/bubbles/bot/TextBubble.tsx +++ b/frontend/src/features/chat/components/bubbles/bot/TextBubble.tsx @@ -24,6 +24,7 @@ import FollowUpActions from "./FollowUpActions"; import GoalSection from "./goals/GoalSection"; import { GoalAction } from "./goals/types"; import GoogleDocsSection from "./GoogleDocsSection"; +import SupportTicketSection from "./SupportTicketSection"; import TodoSection from "./TodoSection"; export default function TextBubble({ @@ -35,6 +36,7 @@ export default function TextBubble({ email_compose_data, email_fetch_data, email_thread_data, + support_ticket_data, calendar_fetch_data, calendar_list_fetch_data, weather_data, @@ -132,6 +134,10 @@ export default function TextBubble({ )} + {!!support_ticket_data && ( + + )} + {!!email_fetch_data && } {!!calendar_fetch_data && ( diff --git a/frontend/src/features/chat/components/composer/Composer.tsx b/frontend/src/features/chat/components/composer/Composer.tsx index 4f6dcdad..1b98d03f 100644 --- a/frontend/src/features/chat/components/composer/Composer.tsx +++ b/frontend/src/features/chat/components/composer/Composer.tsx @@ -62,7 +62,7 @@ const Composer: React.FC = ({ const [pendingDroppedFiles, setPendingDroppedFiles] = useState([]); const [isSlashCommandDropdownOpen, setIsSlashCommandDropdownOpen] = useState(false); - const sendMessage = useSendMessage(convoIdParam ?? null); + const sendMessage = useSendMessage(); const { isLoading, setIsLoading } = useLoading(); const { integrations, isLoading: integrationsLoading } = useIntegrations(); const currentMode = useMemo( @@ -132,6 +132,10 @@ const Composer: React.FC = ({ selectedToolCategory, // Pass the selected tool category ); + // Clear input immediately when message is sent + setSearchbarText(""); + localStorage.removeItem("gaia-searchbar-text"); + // Clear uploaded files after sending setUploadedFiles([]); setUploadedFileData([]); @@ -140,14 +144,6 @@ const Composer: React.FC = ({ setSelectedTool(null); setSelectedToolCategory(null); - // Optional: Clear the input field (can be controlled via a setting) - const shouldClearInput = - localStorage.getItem("gaia-clear-input-on-send") !== "false"; - if (shouldClearInput) { - setSearchbarText(""); - localStorage.removeItem("gaia-searchbar-text"); // Clear saved text when intentionally clearing - } - if (inputRef) inputRef.current?.focus(); scrollToBottom(); }; @@ -155,10 +151,7 @@ const Composer: React.FC = ({ const handleKeyDown: React.KeyboardEventHandler = ( event, ) => { - if (event.key === "Enter" && event.shiftKey) { - event.preventDefault(); - setSearchbarText((text) => `${text}\n`); - } else if (event.key === "Enter" && !isLoading) { + if (event.key === "Enter" && !event.shiftKey && !isLoading) { event.preventDefault(); handleFormSubmit(); } @@ -329,7 +322,7 @@ const Composer: React.FC = ({ {integration.name} diff --git a/frontend/src/features/chat/components/composer/ComposerInput.tsx b/frontend/src/features/chat/components/composer/ComposerInput.tsx index 055913f9..315d4720 100644 --- a/frontend/src/features/chat/components/composer/ComposerInput.tsx +++ b/frontend/src/features/chat/components/composer/ComposerInput.tsx @@ -53,7 +53,12 @@ const ComposerInput = React.forwardRef( selectedIndex: 0, commandStart: -1, commandEnd: -1, - dropdownPosition: { top: 0, left: 0, width: 0 }, + dropdownPosition: { top: 0, left: 0, width: 0 } as { + top?: number; + bottom?: number; + left: number; + width: number; + }, openedViaButton: false, // Track if dropdown was opened via button }); @@ -85,10 +90,9 @@ const ComposerInput = React.forwardRef( const rect = composerContainer?.getBoundingClientRect() || textarea.getBoundingClientRect(); - // Height calculation no longer needed for bottom positioning const position = { - top: rect.top, // Position above the composer + bottom: rect.top, // Position dropdown bottom at composer top left: rect.left, width: rect.width, // Match the composer width }; @@ -123,7 +127,6 @@ const ComposerInput = React.forwardRef( const rect = composerContainer?.getBoundingClientRect() || textarea.getBoundingClientRect(); - // Height calculation no longer needed for bottom positioning setSlashCommandState({ isActive: true, @@ -132,7 +135,7 @@ const ComposerInput = React.forwardRef( commandStart: detection.commandStart, commandEnd: detection.commandEnd, dropdownPosition: { - top: rect.top - 400, // Position above the composer + bottom: rect.top, // Position dropdown bottom at composer top left: rect.left, width: rect.width, // Match the composer width }, @@ -359,7 +362,6 @@ const ComposerInput = React.forwardRef( openedViaButton: false, })) } - hasMessages={hasMessages} position={slashCommandState.dropdownPosition} isVisible={slashCommandState.isActive} openedViaButton={slashCommandState.openedViaButton} diff --git a/frontend/src/features/chat/components/composer/ComposerRight.tsx b/frontend/src/features/chat/components/composer/ComposerRight.tsx index 843d72a6..d001d6d5 100644 --- a/frontend/src/features/chat/components/composer/ComposerRight.tsx +++ b/frontend/src/features/chat/components/composer/ComposerRight.tsx @@ -1,6 +1,6 @@ import { Button } from "@heroui/button"; import { Tooltip } from "@heroui/tooltip"; -import { ArrowUp } from "lucide-react"; +import { ArrowUp, Square } from "lucide-react"; import { useLoading } from "@/features/chat/hooks/useLoading"; @@ -15,12 +15,14 @@ export default function RightSide({ searchbarText, selectedTool, }: RightSideProps) { - const { isLoading } = useLoading(); + const { isLoading, stopStream } = useLoading(); const hasText = searchbarText.trim().length > 0; const hasSelectedTool = selectedTool !== null && selectedTool !== undefined; const isDisabled = isLoading || (!hasText && !hasSelectedTool); const getTooltipContent = () => { + if (isLoading) return "Stop generation"; + if (hasSelectedTool && !hasText) { // Format tool name to be more readable const formattedToolName = selectedTool @@ -32,26 +34,43 @@ export default function RightSide({ return "Send message"; }; + const handleButtonPress = () => { + if (isLoading) { + stopStream(); + } else { + handleFormSubmit(); + } + }; + return (
    diff --git a/frontend/src/features/chat/components/composer/LockedCategorySection.tsx b/frontend/src/features/chat/components/composer/LockedCategorySection.tsx index 687aec0a..9c215d31 100644 --- a/frontend/src/features/chat/components/composer/LockedCategorySection.tsx +++ b/frontend/src/features/chat/components/composer/LockedCategorySection.tsx @@ -65,9 +65,9 @@ export const LockedCategorySection: React.FC = ({ color="primary" variant="flat" startContent={ - integration.icon && ( + integration.icons?.[0] && ( {integration.name} = ({ color="primary" variant="flat" startContent={ - integration.icon ? ( + integration.icons?.[0] ? ( {integration.name} void; onClose: () => void; - position: { top: number; left: number; width?: number }; + position: { top?: number; bottom?: number; left: number; width?: number }; isVisible: boolean; openedViaButton?: boolean; - hasMessages: boolean; } const SlashCommandDropdown: React.FC = ({ @@ -32,7 +31,6 @@ const SlashCommandDropdown: React.FC = ({ position, isVisible, openedViaButton = false, - hasMessages, }) => { const [selectedCategory, setSelectedCategory] = useState("all"); const [searchQuery, setSearchQuery] = useState(""); @@ -106,11 +104,16 @@ const SlashCommandDropdown: React.FC = ({ stiffness: 300, duration: 0.15, }} - className="slash-command-dropdown fixed z-[150] overflow-hidden rounded-2xl border-1 border-zinc-700 bg-zinc-900/60 shadow-2xl backdrop-blur-2xl" + className="slash-command-dropdown fixed z-[200] overflow-hidden rounded-3xl border-1 border-zinc-700 bg-zinc-900/60 shadow-2xl backdrop-blur-2xl" style={{ - bottom: hasMessages ? "117px" : "345px", + ...(position.top !== undefined && { top: 0, height: position.top }), + ...(position.bottom !== undefined && { + bottom: `calc(100vh - ${position.bottom - 2}px)`, + maxHeight: position.bottom, + }), left: position.left, width: position.width, + transform: "none", boxShadow: "0px -18px 30px 5px rgba(0, 0, 0, 0.5)", }} onClick={(e) => e.stopPropagation()} diff --git a/frontend/src/features/chat/components/interface/ChatPage.tsx b/frontend/src/features/chat/components/interface/ChatPage.tsx index 8f6dfacb..3ce716d5 100644 --- a/frontend/src/features/chat/components/interface/ChatPage.tsx +++ b/frontend/src/features/chat/components/interface/ChatPage.tsx @@ -12,6 +12,7 @@ import React, { useEffect, useMemo, useRef, useState } from "react"; import Composer from "@/features/chat/components/composer/Composer"; import { FileDropModal } from "@/features/chat/components/files/FileDropModal"; import ChatRenderer from "@/features/chat/components/interface/ChatRenderer"; +import ScrollToBottomButton from "@/features/chat/components/interface/ScrollToBottomButton"; import StarterText from "@/features/chat/components/interface/StarterText"; import { ComposerProvider } from "@/features/chat/contexts/ComposerContext"; import { useConversation } from "@/features/chat/hooks/useConversation"; @@ -32,6 +33,7 @@ const ChatPage = React.memo(function MainChat() { const messageId = searchParams.get("messageId"); const chatRef = useRef(null); + const scrollContainerRef = useRef(null); const inputRef = useRef(null); // const [isAtBottom, setIsAtBottom] = useState(false); const [droppedFiles, setDroppedFiles] = useState([]); @@ -77,8 +79,12 @@ const ChatPage = React.memo(function MainChat() { // This is to prevent the chat from scrolling to the bottom when a user is redirected to a specific message. // Scrolling to message is handled in ChatRenderer. if (messageId) return; - if (chatRef.current) - chatRef.current.scrollIntoView({ behavior: "smooth", block: "end" }); + if (scrollContainerRef.current) { + scrollContainerRef.current.scrollTo({ + top: scrollContainerRef.current.scrollHeight, + behavior: "smooth", + }); + } }; // Drag and drop functionality @@ -160,6 +166,7 @@ const ChatPage = React.memo(function MainChat() { // Layout with messages: Chat at top, composer at bottom <>
    @@ -171,6 +178,11 @@ const ChatPage = React.memo(function MainChat() {
    +
    @@ -178,7 +190,7 @@ const ChatPage = React.memo(function MainChat() { ) : ( // Layout without messages: Centered composer
    diff --git a/frontend/src/features/chat/components/interface/ChatRenderer.tsx b/frontend/src/features/chat/components/interface/ChatRenderer.tsx index cf348004..2acac111 100644 --- a/frontend/src/features/chat/components/interface/ChatRenderer.tsx +++ b/frontend/src/features/chat/components/interface/ChatRenderer.tsx @@ -12,10 +12,16 @@ import { useConversation } from "@/features/chat/hooks/useConversation"; import { useConversationList } from "@/features/chat/hooks/useConversationList"; import { useLoading } from "@/features/chat/hooks/useLoading"; import { useLoadingText } from "@/features/chat/hooks/useLoadingText"; -import { filterEmptyMessagePairs } from "@/features/chat/utils/messageContentUtils"; +import { + filterEmptyMessagePairs, + isBotMessageEmpty, +} from "@/features/chat/utils/messageContentUtils"; import { getMessageProps } from "@/features/chat/utils/messagePropsUtils"; import { getToolCategoryIcon } from "@/features/chat/utils/toolIcons"; -import { SetImageDataType } from "@/types/features/chatBubbleTypes"; +import { + ChatBubbleBotProps, + SetImageDataType, +} from "@/types/features/chatBubbleTypes"; import { MessageType } from "@/types/features/convoTypes"; export default function ChatRenderer() { @@ -116,33 +122,49 @@ export default function ChatRenderer() { - {filteredMessages?.map((message: MessageType, index: number) => - message.type === "bot" && message.response.trim().length > 0 ? ( -
    -
    - GAIA Logo { + let messageProps = null; + + if (message.type === "bot") { + messageProps = getMessageProps(message, "bot", messagePropsOptions); + } else if (message.type === "user") { + messageProps = getMessageProps(message, "user", messagePropsOptions); + } + + if (!messageProps) { + return null; // Skip rendering if messageProps is null + } + + if ( + message.type === "bot" && + !isBotMessageEmpty(messageProps as ChatBubbleBotProps) + ) { + return ( +
    +
    + GAIA Logo +
    + +
    + ); + } - -
    - ) : ( - - ), - )} + return ( + + ); + })} {isLoading && (
    {toolInfo?.toolCategory && ( diff --git a/frontend/src/features/chat/components/interface/ScrollToBottomButton.tsx b/frontend/src/features/chat/components/interface/ScrollToBottomButton.tsx new file mode 100644 index 00000000..b7dd41f3 --- /dev/null +++ b/frontend/src/features/chat/components/interface/ScrollToBottomButton.tsx @@ -0,0 +1,53 @@ +"use client"; + +import { Button } from "@heroui/button"; +import { ArrowDown } from "lucide-react"; +import React, { useEffect, useState } from "react"; + +interface ScrollToBottomButtonProps { + containerRef: React.RefObject; + onScrollToBottom: () => void; + threshold?: number; +} + +export default function ScrollToBottomButton({ + containerRef, + onScrollToBottom, + threshold = 100, +}: ScrollToBottomButtonProps) { + const [shouldShow, setShouldShow] = useState(false); + + useEffect(() => { + const container = containerRef.current; + if (!container) return; + + const handleScroll = () => { + const { scrollTop, scrollHeight, clientHeight } = container; + const distanceFromBottom = scrollHeight - scrollTop - clientHeight; + setShouldShow(distanceFromBottom > threshold); + }; + + container.addEventListener("scroll", handleScroll, { passive: true }); + + // Initial check + handleScroll(); + + return () => { + container.removeEventListener("scroll", handleScroll); + }; + }, [containerRef, threshold]); + + return ( +
    + +
    + ); +} diff --git a/frontend/src/features/chat/contexts/AbortContext.tsx b/frontend/src/features/chat/contexts/AbortContext.tsx new file mode 100644 index 00000000..234805a9 --- /dev/null +++ b/frontend/src/features/chat/contexts/AbortContext.tsx @@ -0,0 +1,41 @@ +"use client"; + +import React, { createContext, useContext, useRef } from "react"; + +interface AbortContextType { + abortControllerRef: React.MutableRefObject; + setAbortController: (controller: AbortController | null) => void; + stopStream: () => void; +} + +const AbortContext = createContext(null); + +export function AbortProvider({ children }: { children: React.ReactNode }) { + const abortControllerRef = useRef(null); + + const setAbortController = (controller: AbortController | null) => { + abortControllerRef.current = controller; + }; + + const stopStream = () => { + if (!abortControllerRef.current) return; + abortControllerRef.current.abort(); + abortControllerRef.current = null; + }; + + return ( + + {children} + + ); +} + +export function useAbortController() { + const context = useContext(AbortContext); + if (!context) + throw new Error("useAbortController must be used within AbortProvider"); + + return context; +} diff --git a/frontend/src/features/chat/hooks/useChatStream.ts b/frontend/src/features/chat/hooks/useChatStream.ts index 75cc96a7..0f506a7c 100644 --- a/frontend/src/features/chat/hooks/useChatStream.ts +++ b/frontend/src/features/chat/hooks/useChatStream.ts @@ -8,6 +8,7 @@ import { chatApi } from "@/features/chat/api/chatApi"; import { useConversation } from "@/features/chat/hooks/useConversation"; import { useFetchConversations } from "@/features/chat/hooks/useConversationList"; import { useLoading } from "@/features/chat/hooks/useLoading"; +import { streamController } from "@/features/chat/utils/streamController"; import { MessageType } from "@/types/features/convoTypes"; import { FileData } from "@/types/shared"; import fetchDate from "@/utils/date/dateUtils"; @@ -16,11 +17,11 @@ import { useLoadingText } from "./useLoadingText"; import { parseStreamData } from "./useStreamDataParser"; export const useChatStream = () => { - const { setIsLoading } = useLoading(); + const { setIsLoading, setAbortController } = useLoading(); const { updateConvoMessages, convoMessages } = useConversation(); - const router = useRouter(); const fetchConversations = useFetchConversations(); const { setLoadingText, resetLoadingText } = useLoadingText(); + const router = useRouter(); // Unified ref storage const refs = useRef({ @@ -39,6 +40,31 @@ export const useChatStream = () => { refs.current.convoMessages = convoMessages; }, [convoMessages]); + const saveIncompleteConversation = async () => { + if (!refs.current.botMessage || !refs.current.accumulatedResponse) { + return; + } + + try { + const response = await chatApi.saveIncompleteConversation( + refs.current.userPrompt, + refs.current.newConversation.id || null, + refs.current.accumulatedResponse, + refs.current.botMessage.fileData || [], + refs.current.botMessage.selectedTool || null, + refs.current.botMessage.toolCategory || null, + ); + + // Handle navigation for incomplete conversations + if (response.conversation_id && !refs.current.newConversation.id) { + router.push(`/c/${response.conversation_id}`); + fetchConversations(); + } + } catch (saveError) { + console.error("Failed to save incomplete conversation:", saveError); + } + }; + const updateBotMessage = (overrides: Partial) => { const baseMessage: MessageType = { type: "bot", @@ -71,58 +97,71 @@ export const useChatStream = () => { updateConvoMessages(currentConvo); }; - const handleStreamEvent = (event: EventSourceMessage) => { - if (event.data === "[DONE]") return; - - const data = JSON.parse(event.data); - if (data.error) return toast.error(data.error); - - if (data.progress) { - // Handle both old format (string) and new format (object with tool info) - if (typeof data.progress === "string") { - setLoadingText(data.progress); - } else if (typeof data.progress === "object" && data.progress.message) { - // Enhanced progress with tool information - setLoadingText(data.progress.message, { - toolName: data.progress.tool_name, - toolCategory: data.progress.tool_category, + /** + * Handles the incoming stream event, updating the bot message and loading text. + * @param event - The EventSourceMessage received from the stream. + * @returns An error message if an error occurs, otherwise undefined. + */ + const handleStreamEvent = (event: EventSourceMessage): void | string => { + try { + if (event.data === "[DONE]") return; + + const data = JSON.parse(event.data); + if (data.error) return data.error; + + if (data.progress) { + // Handle both old format (string) and new format (object with tool info) + if (typeof data.progress === "string") { + setLoadingText(data.progress); + } else if (typeof data.progress === "object" && data.progress.message) { + // Enhanced progress with tool information + setLoadingText(data.progress.message, { + toolName: data.progress.tool_name, + toolCategory: data.progress.tool_category, + }); + } + } + if (data.conversation_id) + refs.current.newConversation.id = data.conversation_id; + if (data.conversation_description) + refs.current.newConversation.description = + data.conversation_description; + + if (data.status === "generating_image") { + setLoadingText("Generating image..."); + updateBotMessage({ + image_data: { url: "", prompt: refs.current.userPrompt }, + response: "", }); + return; } - } - if (data.conversation_id) - refs.current.newConversation.id = data.conversation_id; - if (data.conversation_description) - refs.current.newConversation.description = data.conversation_description; - if (data.status === "generating_image") { - setLoadingText("Generating image..."); - updateBotMessage({ - image_data: { url: "", prompt: refs.current.userPrompt }, - response: "", - }); - return; - } + if (data.image_data) { + updateBotMessage({ + image_data: data.image_data, + loading: false, + }); + return; + } + + // Add to the accumulated response if there's new response content + if (data.response) { + refs.current.accumulatedResponse += data.response; + } + + // Parse only the data that's actually present in this stream chunk + const streamUpdates = parseStreamData(data); - if (data.image_data) { updateBotMessage({ - image_data: data.image_data, - loading: false, + ...streamUpdates, + response: refs.current.accumulatedResponse, }); - return; + } catch (error) { + console.error("Error handling stream event:", error); + const errorMessage = + error instanceof Error ? error.message : "Unknown error"; + return `Error processing stream data: ${errorMessage}`; } - - // Add to the accumulated response if there's new response content - if (data.response) { - refs.current.accumulatedResponse += data.response; - } - - // Parse only the data that's actually present in this stream chunk - const streamUpdates = parseStreamData(data); - - updateBotMessage({ - ...streamUpdates, - response: refs.current.accumulatedResponse, - }); }; const handleStreamClose = async () => { @@ -139,16 +178,21 @@ export const useChatStream = () => { setIsLoading(false); resetLoadingText(); + streamController.clear(); + // Only navigate for successful completions (manual aborts are handled in the save callback) if (refs.current.newConversation.id) { - // && !refs.current.convoMessages[0]?.conversation_id - router.push(`/c/${refs.current.newConversation.id}`); + // If a new conversation was created, update the URL and fetch conversations + // Using replaceState to avoid reloading the page that would happen with pushState + // Reloading results in fetching conversations again hence the flickering + window.history.replaceState( + {}, + "", + `/c/${refs.current.newConversation.id}`, + ); fetchConversations(); } - // Clear the saved input text since the message was sent successfully - localStorage.removeItem("gaia-searchbar-text"); - refs.current.botMessage = null; refs.current.currentStreamingMessages = []; // Reset streaming messages refs.current.newConversation = { id: null, description: null }; @@ -157,7 +201,6 @@ export const useChatStream = () => { return async ( inputText: string, currentMessages: MessageType[], - conversationId: string | null, botMessageId: string, fileData: FileData[] = [], selectedTool: string | null = null, @@ -182,24 +225,48 @@ export const useChatStream = () => { fileData, }; + // Create abort controller for this stream + const controller = new AbortController(); + setAbortController(controller); + + // Register the save callback for when user clicks stop + streamController.setSaveCallback(() => { + // Update the UI immediately when stop is clicked + if (refs.current.botMessage) { + updateBotMessage({ + response: refs.current.accumulatedResponse, + loading: false, + }); + } + + // Save the incomplete conversation + saveIncompleteConversation(); + }); + await chatApi.fetchChatStream( inputText, [...refs.current.convoMessages, ...currentMessages], - conversationId, + undefined, // conversationId is will be fetched from the URL handleStreamEvent, handleStreamClose, (err) => { setIsLoading(false); resetLoadingText(); - toast.error("Error in chat stream."); - console.error("Stream error:", err); + streamController.clear(); - // Save the user's input text for restoration on error - localStorage.setItem("gaia-searchbar-text", inputText); + // Handle non-abort errors + if (err.name !== "AbortError") { + toast.error(`Error while streaming: ${err}`); + console.error("Stream error:", err); + // Save the user's input text for restoration on error + localStorage.setItem("gaia-searchbar-text", inputText); + } + // Abort errors are now handled in handleStreamClose }, fileData, selectedTool, toolCategory, + controller, ); }; }; diff --git a/frontend/src/features/chat/hooks/useLoading.ts b/frontend/src/features/chat/hooks/useLoading.ts index 5c07c2e0..46a98348 100644 --- a/frontend/src/features/chat/hooks/useLoading.ts +++ b/frontend/src/features/chat/hooks/useLoading.ts @@ -1,6 +1,7 @@ "use client"; import { useDispatch, useSelector } from "react-redux"; +import { streamController } from "@/features/chat/utils/streamController"; import { setIsLoading } from "@/redux/slices/loadingSlice"; import { AppDispatch, RootState } from "@/redux/store"; @@ -12,8 +13,24 @@ export const useLoading = () => { dispatch(setIsLoading(loading)); }; + const setAbortController = (controller: AbortController | null) => { + streamController.set(controller); + }; + + const stopStream = () => { + // Trigger the save before aborting the stream + streamController.triggerSave(); + + const aborted = streamController.abort(); + if (aborted) { + setLoadingState(false); + } + }; + return { isLoading, setIsLoading: setLoadingState, + setAbortController, + stopStream, }; }; diff --git a/frontend/src/features/chat/hooks/useSendMessage.ts b/frontend/src/features/chat/hooks/useSendMessage.ts index d70802c6..3494f853 100644 --- a/frontend/src/features/chat/hooks/useSendMessage.ts +++ b/frontend/src/features/chat/hooks/useSendMessage.ts @@ -10,7 +10,7 @@ import { MessageType } from "@/types/features/convoTypes"; import { FileData } from "@/types/shared"; import fetchDate from "@/utils/date/dateUtils"; -export const useSendMessage = (convoIdParam: string | null) => { +export const useSendMessage = () => { const dispatch = useDispatch(); const fetchChatStream = useChatStream(); @@ -40,7 +40,6 @@ export const useSendMessage = (convoIdParam: string | null) => { await fetchChatStream( inputText, [userMessage], - convoIdParam, botMessageId, fileData, selectedTool, diff --git a/frontend/src/features/chat/utils/messageContentUtils.ts b/frontend/src/features/chat/utils/messageContentUtils.ts index 5bd1f6ef..91537939 100644 --- a/frontend/src/features/chat/utils/messageContentUtils.ts +++ b/frontend/src/features/chat/utils/messageContentUtils.ts @@ -3,6 +3,7 @@ import { BASE_MESSAGE_KEYS, BASE_MESSAGE_SCHEMA, BaseMessageData, + TOOLS_MESSAGE_KEYS, } from "@/types/features/baseMessageRegistry"; import { ChatBubbleBotProps } from "@/types/features/chatBubbleTypes"; import { ConversationMessage, MessageType } from "@/types/features/convoTypes"; @@ -34,8 +35,8 @@ export const isBotMessageEmpty = (props: ChatBubbleBotProps): boolean => { if (loading) return false; - // Only check keys that are in BASE_MESSAGE_KEYS - const hasAnyContent = BASE_MESSAGE_KEYS.some((key) => !!props[key]); + // Only check keys that are in TOOLS_MESSAGE_KEYS + const hasAnyContent = TOOLS_MESSAGE_KEYS.some((key) => !!props[key]); return !( hasAnyContent || diff --git a/frontend/src/features/chat/utils/messagePropsUtils.ts b/frontend/src/features/chat/utils/messagePropsUtils.ts index f769bb74..f239e00c 100644 --- a/frontend/src/features/chat/utils/messagePropsUtils.ts +++ b/frontend/src/features/chat/utils/messagePropsUtils.ts @@ -1,8 +1,8 @@ import { SystemPurpose } from "@/features/chat/api/chatApi"; import { - ChatBubbleBotProps, - ChatBubbleUserProps, - SetImageDataType, + ChatBubbleBotProps, + ChatBubbleUserProps, + SetImageDataType, } from "@/types/features/chatBubbleTypes"; import { MessageType } from "@/types/features/convoTypes"; @@ -19,66 +19,66 @@ import { MessageType } from "@/types/features/convoTypes"; // Options interface for the function parameters interface MessagePropsOptions { - conversation?: { - is_system_generated?: boolean; - system_purpose?: SystemPurpose; - }; - setImageData: React.Dispatch>; - setOpenGeneratedImage: React.Dispatch>; - setOpenMemoryModal: React.Dispatch>; + conversation?: { + is_system_generated?: boolean; + system_purpose?: SystemPurpose; + }; + setImageData: React.Dispatch>; + setOpenGeneratedImage: React.Dispatch>; + setOpenMemoryModal: React.Dispatch>; } // Function overloads for better type safety export function getMessageProps( - message: MessageType, - messageType: "bot", - options: MessagePropsOptions, + message: MessageType, + messageType: "bot", + options: MessagePropsOptions, ): ChatBubbleBotProps; export function getMessageProps( - message: MessageType, - messageType: "user", - options: MessagePropsOptions, + message: MessageType, + messageType: "user", + options: MessagePropsOptions, ): ChatBubbleUserProps; export function getMessageProps( - message: MessageType, - messageType: "bot" | "user", - options: MessagePropsOptions, + message: MessageType, + messageType: "bot" | "user", + options: MessagePropsOptions, ): ChatBubbleBotProps | ChatBubbleUserProps { - const { - conversation, - setImageData, - setOpenGeneratedImage, - setOpenMemoryModal, - } = options; + const { + conversation, + setImageData, + setOpenGeneratedImage, + setOpenMemoryModal, + } = options; - // Extract all props from message, filtering out undefined values - const { response, ...messageProps } = message; + // Extract all props from message, filtering out undefined values + const { response, ...messageProps } = message; - // Filter out undefined values dynamically - const filteredProps = Object.fromEntries( - Object.entries(messageProps).filter(([_, value]) => value !== undefined), - ); + // Filter out undefined values dynamically + const filteredProps = Object.fromEntries( + Object.entries(messageProps).filter(([_, value]) => value !== undefined), + ); - // Base props common to both bot and user messages - const baseProps = { - ...filteredProps, - text: response || "", // Map response to text, ensure always a string - message_id: - messageType === "user" ? message.message_id || "" : message.message_id, // User fallback to empty string - isConvoSystemGenerated: conversation?.is_system_generated || false, - }; + // Base props common to both bot and user messages + const baseProps = { + ...filteredProps, + text: response || "", // Map response to text, ensure always a string + message_id: + messageType === "user" ? message.message_id || "" : message.message_id, // User fallback to empty string + isConvoSystemGenerated: conversation?.is_system_generated || false, + }; - // Add bot-specific props if message type is 'bot' - if (messageType === "bot") { - return { - ...baseProps, - setImageData, - setOpenImage: setOpenGeneratedImage, - onOpenMemoryModal: () => setOpenMemoryModal(true), - systemPurpose: conversation?.system_purpose, - } as ChatBubbleBotProps; - } + // Add bot-specific props if message type is 'bot' + if (messageType === "bot") { + return { + ...baseProps, + setImageData, + setOpenImage: setOpenGeneratedImage, + onOpenMemoryModal: () => setOpenMemoryModal(true), + systemPurpose: conversation?.system_purpose, + } as ChatBubbleBotProps; + } - // Return base props for user messages - return baseProps as ChatBubbleUserProps; + // Return base props for user messages + return baseProps as ChatBubbleUserProps; } diff --git a/frontend/src/features/chat/utils/streamController.ts b/frontend/src/features/chat/utils/streamController.ts new file mode 100644 index 00000000..cae39ea5 --- /dev/null +++ b/frontend/src/features/chat/utils/streamController.ts @@ -0,0 +1,43 @@ +"use client"; + +// Simple module-level storage for the current abort controller +let currentAbortController: AbortController | null = null; +let wasManuallyAborted = false; +let saveCallback: (() => void) | null = null; + +export const streamController = { + set: (controller: AbortController | null) => { + currentAbortController = controller; + wasManuallyAborted = false; // Reset flag when new controller is set + }, + + get: () => currentAbortController, + + abort: () => { + if (currentAbortController) { + wasManuallyAborted = true; // Set flag when manually aborted + currentAbortController.abort(); + currentAbortController = null; + return true; + } + return false; + }, + + wasAborted: () => wasManuallyAborted, + + setSaveCallback: (callback: (() => void) | null) => { + saveCallback = callback; + }, + + triggerSave: () => { + if (saveCallback) { + saveCallback(); + } + }, + + clear: () => { + currentAbortController = null; + wasManuallyAborted = false; // Reset flag when cleared + saveCallback = null; // Clear save callback + }, +}; diff --git a/frontend/src/features/integrations/api/integrationsApi.ts b/frontend/src/features/integrations/api/integrationsApi.ts index abe06266..7ac43065 100644 --- a/frontend/src/features/integrations/api/integrationsApi.ts +++ b/frontend/src/features/integrations/api/integrationsApi.ts @@ -56,17 +56,9 @@ export const integrationsApi = { return { integrations }; } catch (error) { console.error("Failed to get integration status:", error); - // Return all disconnected if we can't determine status + // Return empty array if we can't determine status return { - integrations: [ - { integrationId: "google_calendar", connected: false }, - { integrationId: "google_docs", connected: false }, - { integrationId: "gmail", connected: false }, - { integrationId: "google_drive", connected: false }, - { integrationId: "github", connected: false }, - { integrationId: "figma", connected: false }, - { integrationId: "notion", connected: false }, - ], + integrations: [], }; } }, diff --git a/frontend/src/features/integrations/components/IntegrationsCard.tsx b/frontend/src/features/integrations/components/IntegrationsCard.tsx index e0e64ca5..1ebaf8ba 100644 --- a/frontend/src/features/integrations/components/IntegrationsCard.tsx +++ b/frontend/src/features/integrations/components/IntegrationsCard.tsx @@ -6,6 +6,7 @@ import React, { useEffect, useState } from "react"; import { useIntegrations } from "../hooks/useIntegrations"; import { Integration } from "../types"; +import { SpecialIntegrationCard } from "./SpecialIntegrationCard"; interface IntegrationsCardProps { onClose?: () => void; @@ -35,11 +36,11 @@ const IntegrationItem: React.FC<{ > {/* Icon */}
    -
    +
    {integration.name} { @@ -83,7 +84,15 @@ const IntegrationItem: React.FC<{ export const IntegrationsCard: React.FC = ({ onClose, }) => { - const { integrations, connectIntegration, refreshStatus } = useIntegrations(); + const { + integrations, + connectIntegration, + refreshStatus, + getSpecialIntegrations, + getRegularIntegrations, + isUnifiedIntegrationConnected, + getIntegrationStatus, + } = useIntegrations(); // Load saved accordion state from localStorage // This preserves the expand/collapse state of the integrations accordion @@ -135,31 +144,34 @@ export const IntegrationsCard: React.FC = ({ } }; - const connectedCount = integrations.filter( + // Get special and regular integrations + const specialIntegrations = getSpecialIntegrations(); + const regularIntegrations = getRegularIntegrations(); + + const connectedCount = regularIntegrations.filter( (i) => i.status === "connected", ).length; return ( -
    +
    +
    - + Integrations - {connectedCount}/{integrations.length} + {connectedCount}/{regularIntegrations.length}
    @@ -168,8 +180,39 @@ export const IntegrationsCard: React.FC = ({ >
    e.stopPropagation()}>
    + {/* Special Integrations (full width) */} + {specialIntegrations.length > 0 && ( +
    + {specialIntegrations.map((integration) => { + const connectedCount = + integration.includedIntegrations?.filter( + (includedId) => + getIntegrationStatus(includedId)?.connected, + ).length || 0; + const totalCount = + integration.includedIntegrations?.length || 0; + const isConnected = isUnifiedIntegrationConnected( + integration.id, + ); + + return ( +
    + +
    + ); + })} +
    + )} + + {/* Regular Integrations (2-column grid) */}
    - {integrations.map((integration) => ( + {regularIntegrations.map((integration) => ( void; @@ -32,7 +33,7 @@ const IntegrationCard: React.FC<{
    {integration.name} = ({ onClose, maxHeight = "24rem", }) => { - const { integrations, connectIntegration, disconnectIntegration, isLoading } = - useIntegrations(); + const { + integrations, + connectIntegration, + disconnectIntegration, + isLoading, + getSpecialIntegrations, + getRegularIntegrations, + isUnifiedIntegrationConnected, + getIntegrationStatus, + } = useIntegrations(); const handleConnect = async (integrationId: string) => { try { @@ -122,13 +131,20 @@ export const IntegrationsSection: React.FC = ({ } }; - const connectedIntegrations = integrations.filter( + // Get special and regular integrations + const specialIntegrations = getSpecialIntegrations(); + const regularIntegrations = getRegularIntegrations(); + + // Separate regular integrations by status + const connectedIntegrations = regularIntegrations.filter( (i) => i.status === "connected", ); - const availableIntegrations = integrations.filter( + const availableIntegrations = regularIntegrations.filter( (i) => i.status === "not_connected" && i.loginEndpoint, ); - const comingSoonIntegrations = integrations.filter((i) => !i.loginEndpoint); + const comingSoonIntegrations = regularIntegrations.filter( + (i) => !i.loginEndpoint, + ); if (isLoading) { return ( @@ -141,6 +157,42 @@ export const IntegrationsSection: React.FC = ({ return (
    + {/* Special Integrations (like Google Workspace) */} + {specialIntegrations.length > 0 && ( +
    +
    + + + Quick Connect + +
    +
    + {specialIntegrations.map((integration) => { + const connectedCount = + integration.includedIntegrations?.filter( + (includedId) => getIntegrationStatus(includedId)?.connected, + ).length || 0; + const totalCount = + integration.includedIntegrations?.length || 0; + const isConnected = isUnifiedIntegrationConnected( + integration.id, + ); + + return ( + + ); + })} +
    +
    + )} + {/* Connected Integrations */} {connectedIntegrations.length > 0 && (
    @@ -150,14 +202,16 @@ export const IntegrationsSection: React.FC = ({ Connected
    - {connectedIntegrations.map((integration) => ( - - ))} +
    + {connectedIntegrations.map((integration) => ( + + ))} +
    )} @@ -170,14 +224,16 @@ export const IntegrationsSection: React.FC = ({ Available
    - {availableIntegrations.map((integration) => ( - - ))} +
    + {availableIntegrations.map((integration) => ( + + ))} +
    )} @@ -190,14 +246,16 @@ export const IntegrationsSection: React.FC = ({ Coming Soon
    - {comingSoonIntegrations.map((integration) => ( - - ))} +
    + {comingSoonIntegrations.map((integration) => ( + + ))} +
    )} diff --git a/frontend/src/features/integrations/components/IntegrationsSettings.tsx b/frontend/src/features/integrations/components/IntegrationsSettings.tsx index bcd66f8e..71901fa0 100644 --- a/frontend/src/features/integrations/components/IntegrationsSettings.tsx +++ b/frontend/src/features/integrations/components/IntegrationsSettings.tsx @@ -71,7 +71,7 @@ const IntegrationSettingsCard: React.FC<{ {/* Icon */}
    {integration.name} void; +} + +export const SpecialIntegrationCard: React.FC = ({ + integration, + isConnected, + connectedCount, + totalCount, + onConnect, +}) => { + const isAvailable = !!integration.loginEndpoint; + + return ( +
    +
    + {/* Integration Icon */} +
    +
    + {integration.icons.length > 1 ? ( + // Multiple icons in a stacked layout +
    + {integration.icons.slice(0, 4).map((iconUrl, index) => ( + {`${integration.name} 0 ? "-ml-1" : "" + } ${ + index === 0 + ? "z-30 rotate-6" + : index === 1 + ? "z-20 -rotate-6" + : index === 2 + ? "z-10 rotate-6" + : "z-0 -rotate-6" + }`} + onError={(e) => { + (e.target as HTMLImageElement).style.display = "none"; + }} + /> + ))} +
    + ) : ( + // Single icon + {integration.name} { + (e.target as HTMLImageElement).style.display = "none"; + }} + /> + )} +
    +
    + + {/* Content */} +
    +
    +
    +
    + + {integration.name} + + {isConnected && ( + + )} + {!isConnected && connectedCount > 0 && ( + + {connectedCount}/{totalCount} + + )} +
    +

    + {integration.description} +

    +
    + + {/* Action Buttons */} +
    + {isConnected ? ( + + Connected + + ) : isAvailable ? ( + + ) : ( + + Soon + + )} +
    +
    +
    +
    +
    + ); +}; diff --git a/frontend/src/features/integrations/components/index.ts b/frontend/src/features/integrations/components/index.ts new file mode 100644 index 00000000..fcd1b087 --- /dev/null +++ b/frontend/src/features/integrations/components/index.ts @@ -0,0 +1,7 @@ +/** + * @file Automatically generated barrel export for integrations components + */ + +export * from "./IntegrationsCard"; +export * from "./IntegrationsSection"; +export * from "./SpecialIntegrationCard"; diff --git a/frontend/src/features/integrations/hooks/useIntegrations.ts b/frontend/src/features/integrations/hooks/useIntegrations.ts index 649f8497..d7aa7d1f 100644 --- a/frontend/src/features/integrations/hooks/useIntegrations.ts +++ b/frontend/src/features/integrations/hooks/useIntegrations.ts @@ -16,6 +16,10 @@ export interface UseIntegrationsReturn { integrationId: string, ) => IntegrationStatus | undefined; getIntegrationsWithStatus: () => Integration[]; + // New helper functions for unified integrations + getSpecialIntegrations: () => Integration[]; + getRegularIntegrations: () => Integration[]; + isUnifiedIntegrationConnected: (unifiedId: string) => boolean; } /** @@ -66,13 +70,23 @@ export const useIntegrations = (): UseIntegrationsReturn => { // Get integrations with their current status const getIntegrationsWithStatus = useCallback((): Integration[] => { - return integrationConfigs.map((integration) => { - const status = getIntegrationStatus(integration.id); - return { - ...integration, - status: status?.connected ? "connected" : "not_connected", - }; - }); + return integrationConfigs + .map((integration) => { + const status = getIntegrationStatus(integration.id); + return { + ...integration, + status: (status?.connected + ? "connected" + : "not_connected") as Integration["status"], + }; + }) + .sort((a, b) => { + // Sort by display priority (higher first), then by name + const priorityDiff = + (b.displayPriority || 0) - (a.displayPriority || 0); + if (priorityDiff !== 0) return priorityDiff; + return a.name.localeCompare(b.name); + }); }, [integrationConfigs, getIntegrationStatus]); // Connect an integration @@ -116,6 +130,40 @@ export const useIntegrations = (): UseIntegrationsReturn => { [getIntegrationsWithStatus], ); + // Get special/unified integrations + const getSpecialIntegrations = useCallback((): Integration[] => { + return integrationsWithStatus.filter( + (integration) => integration.isSpecial, + ); + }, [integrationsWithStatus]); + + // Get regular integrations (non-special) + const getRegularIntegrations = useCallback((): Integration[] => { + return integrationsWithStatus.filter( + (integration) => !integration.isSpecial, + ); + }, [integrationsWithStatus]); + + // Check if a unified integration is connected (all its included integrations are connected) + const isUnifiedIntegrationConnected = useCallback( + (unifiedId: string): boolean => { + const unifiedIntegration = integrationsWithStatus.find( + (integration) => integration.id === unifiedId && integration.isSpecial, + ); + + if (!unifiedIntegration || !unifiedIntegration.includedIntegrations) { + return false; + } + + // Check if all included integrations are connected + return unifiedIntegration.includedIntegrations.every((includedId) => { + const status = getIntegrationStatus(includedId); + return status?.connected === true; + }); + }, + [integrationsWithStatus, getIntegrationStatus], + ); + return { integrations: integrationsWithStatus, integrationStatuses, @@ -126,5 +174,8 @@ export const useIntegrations = (): UseIntegrationsReturn => { refreshStatus, getIntegrationStatus, getIntegrationsWithStatus, + getSpecialIntegrations, + getRegularIntegrations, + isUnifiedIntegrationConnected, }; }; diff --git a/frontend/src/features/integrations/index.ts b/frontend/src/features/integrations/index.ts index 47369c12..0ef616f2 100644 --- a/frontend/src/features/integrations/index.ts +++ b/frontend/src/features/integrations/index.ts @@ -1,7 +1,6 @@ // Integration management exports export * from "./api/integrationsApi"; export * from "./components/IntegrationsCard"; -export * from "./components/IntegrationsSection"; export * from "./components/IntegrationsSettings"; export * from "./hooks/useIntegrations"; export * from "./types"; diff --git a/frontend/src/features/integrations/types/index.ts b/frontend/src/features/integrations/types/index.ts index 863e1505..51cf1d68 100644 --- a/frontend/src/features/integrations/types/index.ts +++ b/frontend/src/features/integrations/types/index.ts @@ -6,7 +6,7 @@ export interface Integration { id: string; name: string; description: string; - icon: string; + icons: string[]; // List of icon URLs category: | "productivity" | "communication" @@ -17,6 +17,10 @@ export interface Integration { loginEndpoint?: string; disconnectEndpoint?: string; settingsPath?: string; + // New properties for unified integrations + isSpecial?: boolean; + displayPriority?: number; + includedIntegrations?: string[]; } export interface IntegrationStatus { @@ -31,7 +35,7 @@ export interface IntegrationCategory { id: string; name: string; description: string; - icon: string; + icons: string[]; // List of icon URLs integrations: Integration[]; } diff --git a/frontend/src/features/landing/components/sections/new/mail-animation.data.tsx b/frontend/src/features/landing/components/sections/new/mail-animation.data.tsx index a2e0972c..94905d28 100644 --- a/frontend/src/features/landing/components/sections/new/mail-animation.data.tsx +++ b/frontend/src/features/landing/components/sections/new/mail-animation.data.tsx @@ -89,7 +89,6 @@ // ); // }; - // const ViewAnimation = () => { // const [isExpanded, setIsExpanded] = useState(false); // const [showSummary, setShowSummary] = useState(false); @@ -148,39 +147,75 @@ // mail-animation.data.tsx import { AnimatePresence, motion } from "framer-motion"; import { Inbox, Mail, Send } from "lucide-react"; -import React, { useEffect, useRef,useState } from "react"; +import React, { useEffect, useRef, useState } from "react"; import EmailComposeSection from "@/features/chat/components/bubbles/bot/EmailComposeSection"; import EmailThreadCard from "@/features/chat/components/bubbles/bot/EmailThreadCard"; import { ComposerProvider } from "@/features/chat/contexts/ComposerContext"; import EmailListCard from "@/features/mail/components/EmailListCard"; -import { EmailComposeData, EmailFetchData, EmailThreadData, } from "@/types/features/mailTypes"; +import { + EmailComposeData, + EmailFetchData, + EmailThreadData, +} from "@/types/features/mailTypes"; // --- MOCK DATA & CONFIGURATION --- -const timeAgo = (hours: number): string => new Date(Date.now() - hours * 60 * 60 * 1000).toISOString(); +const timeAgo = (hours: number): string => + new Date(Date.now() - hours * 60 * 60 * 1000).toISOString(); const composeData: EmailComposeData[] = [ - { to: ["dhruv@heygaia.io"], subject: "Investor Meeting Inquiry", body: "Hey Dhruv,\n\nI hope you're doing well! I wanted to check in about the investor meeting. Do we have a confirmed time and agenda? Let me know if there's anything specific I should prepare.\n\nThanks!\n\nBest,\nAryan", }, + { + to: ["dhruv@heygaia.io"], + subject: "Investor Meeting Inquiry", + body: "Hey Dhruv,\n\nI hope you're doing well! I wanted to check in about the investor meeting. Do we have a confirmed time and agenda? Let me know if there's anything specific I should prepare.\n\nThanks!\n\nBest,\nAryan", + }, ]; const threadData: EmailThreadData = { - thread_id: "198611a5949ce1d5", messages_count: 1, + thread_id: "198611a5949ce1d5", + messages_count: 1, messages: [ - { id: "198611a5949ce1d5", from: "Product Hunt Daily ", subject: "😸 Kicked out of YC", time: "2025-07-31 15:29", snippet: "Plus: agents, are building agents now Product Hunt Thursday, Jul 31 The Leaderboard Workflow, Locked In gm legends, happy Thursday. Here's today's lineup: Okibi lets you explain a workflow once", body: '
    Plus: agents, are building agents now
    Product Hunt
    Thursday, Jul 31
    The Leaderboard

    gm legends, happy Thursday.

    Here’s today’s lineup: Okibi lets you explain a workflow once and hands you an agent that just runs it; Mocha turns a description into a full stack app with auth, billing, hosting and deploy all live in minutes; GitBook’s new dynamic adaptive docs change what readers see based on context so writers stop guessing; and the founder comeback story—kicked out of YC, fought to get back in.

    ' } + { + id: "198611a5949ce1d5", + from: "Product Hunt Daily ", + subject: "😸 Kicked out of YC", + time: "2025-07-31 15:29", + snippet: + "Plus: agents, are building agents now Product Hunt Thursday, Jul 31 The Leaderboard Workflow, Locked In gm legends, happy Thursday. Here's today's lineup: Okibi lets you explain a workflow once", + body: '
    Plus: agents, are building agents now
    Product Hunt
    Thursday, Jul 31
    The Leaderboard

    gm legends, happy Thursday.

    Here’s today’s lineup: Okibi lets you explain a workflow once and hands you an agent that just runs it; Mocha turns a description into a full stack app with auth, billing, hosting and deploy all live in minutes; GitBook’s new dynamic adaptive docs change what readers see based on context so writers stop guessing; and the founder comeback story—kicked out of YC, fought to get back in.

    ', + }, ], }; const initialFetchData: EmailFetchData[] = [ - { from: "Updates ", subject: "New Project Deployed Successfully", time: timeAgo(1) }, - { from: "GitHub ", subject: "[hey-gaia/core] New issue created: #582", time: timeAgo(2) }, - { from: "Linear ", subject: "You were mentioned in an issue", time: timeAgo(25) }, - { from: "Figma ", subject: "Dhruv left a comment on 'Homepage V3'", time: timeAgo(28) }, + { + from: "Updates ", + subject: "New Project Deployed Successfully", + time: timeAgo(1), + }, + { + from: "GitHub ", + subject: "[hey-gaia/core] New issue created: #582", + time: timeAgo(2), + }, + { + from: "Linear ", + subject: "You were mentioned in an issue", + time: timeAgo(25), + }, + { + from: "Figma ", + subject: "Dhruv left a comment on 'Homepage V3'", + time: timeAgo(28), + }, ]; -const fetchData: EmailFetchData[] = Array.from({ length: 5 }).flatMap(() => initialFetchData).map((email, index) => ({ ...email, thread_id: `thread_${index + 1}` })); +const fetchData: EmailFetchData[] = Array.from({ length: 5 }) + .flatMap(() => initialFetchData) + .map((email, index) => ({ ...email, thread_id: `thread_${index + 1}` })); const summaryComponent = ( -
    +
    @@ -193,13 +228,18 @@ const summaryComponent = (

    -

    Core Message

    +

    + Core Message +

    - Discusses challenges faced by founders and their journey to reapply to YC, featuring new workflow tools and startup stories. + Discusses challenges faced by founders and their journey to reapply + to YC, featuring new workflow tools and startup stories.

    -

    Key Highlights

    +

    + Key Highlights +

    • • Okibi: Workflow automation agent platform
    • • Mocha: Full-stack app generator with deployment
    • @@ -211,119 +251,133 @@ const summaryComponent = (
    ); -const mockComposerValue = { appendToInput: (text: string) => { console.log(`EmailListCard tried to append: "${text}"`); }, }; +const mockComposerValue = { + appendToInput: (text: string) => { + console.log(`EmailListCard tried to append: "${text}"`); + }, +}; // --- SELF-ANIMATING COMPONENTS FOR EACH STEP --- const ComposeAnimation = () => ( - - - + + + ); const FetchAnimation = () => { - const [visibleEmails, setVisibleEmails] = useState([]); - const [isExpanded, setIsExpanded] = useState(false); - const scrollContainerRef = useRef(null); - - useEffect(() => { - const expandTimer = setTimeout(() => setIsExpanded(true), 200); - - let emailTimers: NodeJS.Timeout[] = []; - if (isExpanded) { - emailTimers = fetchData.map((email, index) => - setTimeout(() => { - setVisibleEmails(prev => { - const newEmails = [...prev, email]; - // Smooth scroll to bottom after adding email - setTimeout(() => { - if (scrollContainerRef.current) { - scrollContainerRef.current.scrollTo({ - top: scrollContainerRef.current.scrollHeight, - behavior: 'smooth' - }); - } - }, 50); - return newEmails; - }); - }, index * 150) - ); - } - return () => { - clearTimeout(expandTimer); - emailTimers.forEach(clearTimeout); - }; - }, [isExpanded]); - - return ( - - -
    - -
    -
    -
    - ); + const [visibleEmails, setVisibleEmails] = useState([]); + const [isExpanded, setIsExpanded] = useState(false); + const scrollContainerRef = useRef(null); + + useEffect(() => { + const expandTimer = setTimeout(() => setIsExpanded(true), 200); + + let emailTimers: NodeJS.Timeout[] = []; + if (isExpanded) { + emailTimers = fetchData.map((email, index) => + setTimeout(() => { + setVisibleEmails((prev) => { + const newEmails = [...prev, email]; + // Smooth scroll to bottom after adding email + setTimeout(() => { + if (scrollContainerRef.current) { + scrollContainerRef.current.scrollTo({ + top: scrollContainerRef.current.scrollHeight, + behavior: "smooth", + }); + } + }, 50); + return newEmails; + }); + }, index * 150), + ); + } + return () => { + clearTimeout(expandTimer); + emailTimers.forEach(clearTimeout); + }; + }, [isExpanded]); + + return ( + + +
    + +
    +
    +
    + ); }; const ViewAnimation = () => { - const [isExpanded, setIsExpanded] = useState(false); - const [showSummary, setShowSummary] = useState(false); - - useEffect(() => { - const expandTimer = setTimeout(() => setIsExpanded(true), 300); - const summaryTimer = setTimeout(() => setShowSummary(true), 1000); - - return () => { - clearTimeout(expandTimer); - clearTimeout(summaryTimer); - }; - }, []); - - return ( -
    - - - - - - {showSummary && ( - - {summaryComponent} - - )} - -
    - ); + const [showSummary, setShowSummary] = useState(false); + + useEffect(() => { + const summaryTimer = setTimeout(() => setShowSummary(true), 1000); + + return () => { + clearTimeout(summaryTimer); + }; + }, []); + + return ( +
    + + + + + + {showSummary && ( + + {summaryComponent} + + )} + +
    + ); }; // --- MAIN EXPORTED STEPS --- export const animationSteps = [ - { name: "Compose", icon: , prompt: "Compose an email to dhruv@heygaia.io asking about the investor meeting.", component: , }, - { name: "Fetch", icon: , prompt: "Fetch my latest emails from Gmail.", component: , }, - { name: "View", icon: , prompt: "Tell me about the email from Product Hunt.", component: , }, + { + name: "Compose", + icon: , + prompt: + "Compose an email to dhruv@heygaia.io asking about the investor meeting.", + component: , + }, + { + name: "Fetch", + icon: , + prompt: "Fetch my latest emails from Gmail.", + component: , + }, + { + name: "View", + icon: , + prompt: "Tell me about the email from Product Hunt.", + component: , + }, ]; diff --git a/frontend/src/features/memory/components/AddMemoryModal.tsx b/frontend/src/features/memory/components/AddMemoryModal.tsx index d45eac67..9d4c8cad 100644 --- a/frontend/src/features/memory/components/AddMemoryModal.tsx +++ b/frontend/src/features/memory/components/AddMemoryModal.tsx @@ -1,6 +1,6 @@ "use client"; -import { Button } from "@heroui/react"; +import { Button, Textarea } from "@heroui/react"; import { X } from "lucide-react"; import { useEffect, useRef, useState } from "react"; import { toast } from "sonner"; @@ -41,10 +41,10 @@ export default function AddMemoryForm({ } }, [isOpen]); - const handleContentChange = (e: React.ChangeEvent) => { + const handleContentChange = (value: string) => { // Limit input to maximum character count - if (e.target.value.length <= MAX_MEMORY_LENGTH) { - setContent(e.target.value); + if (value.length <= MAX_MEMORY_LENGTH) { + setContent(value); } }; @@ -92,9 +92,8 @@ export default function AddMemoryForm({ if (!isOpen) return null; return ( -
    +
    -

    Add New Memory

    -
    -