diff --git a/.github/workflows/shared-packages.yml b/.github/workflows/shared-packages.yml index cba2a9103a..79404be9b0 100644 --- a/.github/workflows/shared-packages.yml +++ b/.github/workflows/shared-packages.yml @@ -184,6 +184,7 @@ jobs: env: GOOGLE_DRIVE_CLIENTID_JSON: ${{ secrets.GOOGLE_DRIVE_CLIENTID_JSON }} GOOGLE_SOURCE_UNIT_TEST_FOLDER: ${{ secrets.GOOGLE_SOURCE_UNIT_TEST_FOLDER }} + GOOGLE_DRIVE_TARGET_EMAIL: ${{ secrets.GOOGLE_DRIVE_TARGET_EMAIL }} - name: Test Report uses: mikepenz/action-junit-report@v4 diff --git a/docs/how-to/agents/define_and_use_agents.md b/docs/how-to/agents/define_and_use_agents.md index 1870915139..ee46b189f2 100644 --- a/docs/how-to/agents/define_and_use_agents.md +++ b/docs/how-to/agents/define_and_use_agents.md @@ -49,6 +49,14 @@ The result is an [AgentResult][ragbits.agents.AgentResult], which includes the m You can find the complete code example in the Ragbits repository [here](https://github.com/deepsense-ai/ragbits/blob/main/examples/agents/tool_use.py). +## Tool choice +To control what tool is used at first call you could use `tool_choice` parameter. There are the following options: +- "auto": let model decide if tool call is needed +- "none": do not call tool +- "required: enforce tool usage (model decides which one) +- Callable: one of provided tools + + ## Conversation history [`Agent`][ragbits.agents.Agent]s can retain conversation context across multiple interactions by enabling the `keep_history` flag when initializing the agent. This is useful when you want the agent to understand follow-up questions without needing the user to repeat earlier details. diff --git a/docs/how-to/sources/google-drive.md b/docs/how-to/sources/google-drive.md index 6fab274e1b..f2da414d81 100644 --- a/docs/how-to/sources/google-drive.md +++ b/docs/how-to/sources/google-drive.md @@ -187,6 +187,50 @@ async def process_drive_documents(): asyncio.run(process_drive_documents()) ``` +## Impersonating Google Accounts + +You can configure your Google service account to impersonate other users in your Google Workspace domain. This is useful when you need to access files or perform actions on behalf of specific users. + +### Step 1: Enable Domain-Wide Delegation + +1. **Sign in to the [Google Admin Console](https://admin.google.com/) as a Super Admin.** +2. Navigate to: + **Security > Access and data control > API controls > MANAGE DOMAIN WIDE DELEGATION** +3. Add a new API client or edit an existing one, and include the following OAuth scopes: + - `https://www.googleapis.com/auth/cloud-platform` + - `https://www.googleapis.com/auth/drive` +4. Click **Authorize** or **Save** to apply the changes. + +### Step 2: Impersonate a User in Your Code + +After configuring domain-wide delegation, you can specify a target user to impersonate when using the `GoogleDriveSource` in your code. + +```python +from ragbits.core.sources.google_drive import GoogleDriveSource + +target_email = "johnDoe@yourdomain.com" +credentials_file = "service-account-key.json" + +# Set the path to your service account key file +GoogleDriveSource.set_credentials_file_path(credentials_file) + +# Option 1: Set default impersonation for all instances (class-level) +GoogleDriveSource.set_default_impersonation_target(target_email) + +# Option 2: Set impersonation for specific instances +sources = await GoogleDriveSource.from_uri("folder_id/**", impersonate_target_email=target_email) + +# Option 3: Set impersonation on individual instances +source = GoogleDriveSource(file_id="...", file_name="...", mime_type="...") +source.set_impersonation_target(target_email) +``` + +**Note:** +- The `target_email` must be a valid user in your Google Workspace domain. +- Ensure your service account has been granted domain-wide delegation as described above. + +This setup allows your service account to act on behalf of the specified user, enabling access to their Google Drive files and resources as permitted by the assigned scopes. + ## Troubleshooting ### Common Issues diff --git a/examples/agents/tool_use.py b/examples/agents/tool_use.py index 907cb99f26..38019f571d 100644 --- a/examples/agents/tool_use.py +++ b/examples/agents/tool_use.py @@ -82,7 +82,7 @@ async def main() -> None: tools=[get_weather], default_options=AgentOptions(max_total_tokens=500, max_turns=5), ) - response = await agent.run(WeatherPromptInput(location="Paris")) + response = await agent.run(WeatherPromptInput(location="Paris"), tool_choice=get_weather) print(response) diff --git a/examples/chat/README_authenticated.md b/examples/chat/README_authenticated.md new file mode 100644 index 0000000000..d0bcb0438f --- /dev/null +++ b/examples/chat/README_authenticated.md @@ -0,0 +1,215 @@ +# Authenticated Chat Example + +This example demonstrates how to create a chat interface with user authentication using Ragbits Chat. + +## Features + +- 🔐 **User Authentication**: Login/logout with username/password +- 👤 **Role-based Access**: Different user roles (admin, moderator, user) with specific capabilities +- 🛡️ **Secure Sessions**: Session-based authentication with Bearer tokens +- 📊 **Personalized Responses**: User-specific chat responses based on profile and roles +- 🔄 **Live Updates**: Role-specific live updates during processing +- 📚 **User Context**: Reference documents with user profile information +- 🎨 **UI Customization**: Custom welcome messages, headers, and branding +- 📝 **Feedback System**: Like/dislike forms with custom Pydantic models +- ⚙️ **User Settings**: Configurable user preferences (e.g., language selection) + +## Files + +- `authenticated_chat.py` - Main authenticated chat implementation +- `README_authenticated.md` - This documentation + +## Quick Start + +### 1. Start the Server + +#### Full Authentication Support (Recommended) +```bash +# From the examples/chat directory - includes login/logout endpoints +uv run python authenticated_chat.py +``` + +#### Alternative Methods +```bash +# From project root +python examples/chat/authenticated_chat.py + +# Via CLI with authentication support +uv run ragbits api run examples.chat.authenticated_chat:MyAuthenticatedChat --auth examples.chat.authenticated_chat:get_auth_backend +``` + +The server will start at `http://127.0.0.1:8000` with a web interface. + +**Note**: When using the CLI, include the `--auth` flag with the authentication backend factory function to enable full authentication features including login/logout endpoints. + +### 2. Test Users + +The example includes these test users: + +| Username | Password | Roles | Description | +|-----------|-----------|--------------------------|---------------------| +| `admin` | `admin123` | admin, moderator, user | System administrator | +| `moderator` | `mod123` | moderator, user | Community moderator | +| `alice` | `alice123` | user | Regular user | +| `bob` | `bob123` | user | Regular user | + +### 3. Authentication Workflow + +#### Web Interface +1. Open `http://127.0.0.1:8000` in your browser +2. Use the login form with any test user credentials +3. Start chatting after successful authentication + +#### API Endpoints +1. **Login**: `POST /api/auth/login` + ```json + { + "username": "admin", + "password": "admin123" + } + ``` + +2. **Chat**: `POST /api/chat` (with Bearer token) + ```bash + Authorization: Bearer + ``` + +3. **Logout**: `POST /api/auth/logout` + ```json + { + "session_id": "" + } + ``` + +## Testing + +You can test the authentication functionality using: + +### Web Interface Testing +1. Start the server: `python examples/chat/authenticated_chat.py` +2. Open `http://127.0.0.1:8000` in your browser +3. Use the login form with any of the test user credentials +4. Test different roles and their specific features + +### API Testing with curl +```bash +# Login +curl -X POST http://127.0.0.1:8000/api/auth/login \ + -H "Content-Type: application/json" \ + -d '{"username": "admin", "password": "admin123"}' + +# Chat (replace with the session_id from login response) +curl -X POST http://127.0.0.1:8000/api/chat \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer " \ + -d '{"message": "Hello!"}' + +# Logout +curl -X POST http://127.0.0.1:8000/api/auth/logout \ + -H "Content-Type: application/json" \ + -d '{"session_id": ""}' +``` + +## Example Chat Interactions + +### As Admin User +``` +💬 You: What admin features are available? +🤖 Bot: As an administrator, you have full system access including: +- User management and permissions +- System configuration and monitoring +- Content moderation capabilities +- Administrative dashboards and reports +``` + +### As Regular User +``` +💬 You: Tell me about my profile +🤖 Bot: Hello Alice Johnson! You're logged in as 'alice' with user role. +Your profile shows you're part of the Marketing department. +``` + +## Architecture +### ListAuthBackend +- In-memory user storage with hashed passwords +- Session management with expiration +- User roles and metadata support +- Suitable for development and small deployments + +### Role-based Features +- **Admin**: Full system access, admin-specific live updates, special admin profile images +- **Moderator**: Content moderation features with policy checks and content guidelines +- **User**: Standard chat features with personalized responses and user-specific context + +## Customization + +### Adding New Users +Edit the `get_auth_backend()` factory function in `authenticated_chat.py`: + +```python +users = [ + { + "username": "newuser", + "password": "newpass123", + "email": "newuser@example.com", + "full_name": "New User", + "roles": ["user"], + "metadata": {"department": "Engineering"} + } +] +``` + + +### Role-specific Responses +Modify the `chat()` method to customize responses based on user roles: + +```python +# Get user info from context +user_info = context.state.get("authenticated_user") if context else None +user_roles = user_info.roles if user_info else [] + +if "admin" in user_roles: + yield self.create_text_response("🔧 Admin-specific content...") +elif "moderator" in user_roles: + yield self.create_text_response("🛡️ Moderator-specific content...") +``` + +### UI Customization + +The example demonstrates UI customization features: + +```python +from ragbits.chat.interface.ui_customization import HeaderCustomization, UICustomization + +ui_customization = UICustomization( + header=HeaderCustomization( + title="🔐 Authenticated Ragbits Chat", + subtitle="by deepsense.ai - Secure Chat Experience", + logo="🛡️" + ), + welcome_message="🔐 **Welcome to Authenticated Ragbits Chat!**\n\n..." +) +``` + +### Feedback Configuration + +Custom feedback forms using Pydantic models: + +```python +from ragbits.chat.interface.forms import FeedbackConfig + +feedback_config = FeedbackConfig( + like_enabled=True, + like_form=LikeFormExample, # Custom Pydantic model + dislike_enabled=True, + dislike_form=DislikeFormExample, # Custom Pydantic model +) +``` + +## Security Notes + +- Passwords are hashed using bcrypt in `ListAuthBackend` +- Sessions have configurable expiration times +- Bearer tokens are used for API authentication +- CORS is configured for web interface access +- State signatures prevent tampering with conversation state diff --git a/examples/chat/authenticated_chat.py b/examples/chat/authenticated_chat.py new file mode 100644 index 0000000000..2b11d58c42 --- /dev/null +++ b/examples/chat/authenticated_chat.py @@ -0,0 +1,235 @@ +""" +Ragbits Chat Example: Authenticated Chat Interface + +This example demonstrates how to use the `AuthenticatedChatInterface` to create a chat application +with user authentication. It showcases different response types while ensuring only authenticated +users can access the chat functionality. + +To run the script using preferred components run: + + ```bash + uv run ragbits api run examples.chat.authenticated_chat:MyAuthenticatedChat + --auth examples.chat.authenticated_chat:get_auth_backend + ``` + +The preferred components approach allows the CLI to automatically use your configured authentication +backend while keeping the ChatInterface class focused on its core functionality. +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-chat", +# ] +# /// + +import asyncio +from collections.abc import AsyncGenerator + +from ragbits.chat.auth import ListAuthenticationBackend +from ragbits.chat.interface import ChatInterface +from ragbits.chat.interface.types import ChatContext, ChatResponse, LiveUpdateType, Message +from ragbits.chat.interface.ui_customization import HeaderCustomization, UICustomization +from ragbits.core.llms import LiteLLM + + +class MyAuthenticatedChat(ChatInterface): + """An example implementation of ChatInterface with user-specific responses.""" + + ui_customization = UICustomization( + header=HeaderCustomization( + title="🔐 Authenticated Ragbits Chat", subtitle="by deepsense.ai - Secure Chat Experience", logo="🛡️" + ), + welcome_message=( + "🔐 **Welcome to Authenticated Ragbits Chat!**\n\n" + "This is a secure chat environment where you need to authenticate to access the AI assistant.\n\n" + "**Features:**\n" + "- 🛡️ User authentication with role-based access\n" + "- 👤 Personalized responses based on your profile\n" + "- 📊 User-specific chat history and context\n" + "- 🔒 Secure session management\n\n" + "Please log in to start chatting!" + ), + ) + + conversation_history = True + + def __init__(self): + super().__init__() + self.llm = LiteLLM(model_name="gpt-4o-mini") + + async def chat( + self, + message: str, + history: list[Message] | None = None, + context: ChatContext | None = None, + ) -> AsyncGenerator[ChatResponse, None]: + """ + Authenticated chat implementation that provides user-specific responses. + + This method is called after authentication validation passes. + The user information is available in context.state["authenticated_user"]. + + Args: + message: The current user message + history: Optional list of previous messages in the conversation + context: Chat context with session_id and authenticated user info + + Yields: + ChatResponse objects containing different types of content + """ + # Get authenticated user info + user_info = context.state.get("authenticated_user") if context else None + + if not user_info: + yield self.create_text_response("⚠️ Authentication information not found.") + return + + username = user_info.username + full_name = user_info.full_name + user_roles = user_info.roles + user_id = user_info.user_id + + # Create user-specific reference + yield self.create_reference( + title=f"User Profile: {full_name}", + content=f"Authenticated user: {username} (ID: {user_id[:8]}...) with roles: {', '.join(user_roles)}", + url=f"https://example.com/users/{user_id}", + ) + + # Create user-specific state update + yield self.create_state_update( + { + "authenticated_user_id": user_id, + "session_context": context.session_id if context and context.session_id else "unknown", + "user_roles": user_roles, + "chat_timestamp": asyncio.get_event_loop().time(), + } + ) + + # Role-specific live updates + role_updates = [] + if "admin" in user_roles: + role_updates.extend( + [ + self.create_live_update("admin_0", LiveUpdateType.START, "🔧 [ADMIN] Accessing admin resources..."), + self.create_live_update( + "admin_0", + LiveUpdateType.FINISH, + "🔧 [ADMIN] Admin resources loaded", + "Full system access granted.", + ), + ] + ) + + if "moderator" in user_roles: + role_updates.extend( + [ + self.create_live_update( + "mod_1", LiveUpdateType.START, "🛡️ [MODERATOR] Checking content policies..." + ), + self.create_live_update( + "mod_1", + LiveUpdateType.FINISH, + "🛡️ [MODERATOR] Content policy check complete", + "All content meets guidelines.", + ), + ] + ) + + # Standard user updates + role_updates.extend( + [ + self.create_live_update( + "user_2", LiveUpdateType.START, f"🤖 [CHAT] Processing message for {username}..." + ), + self.create_live_update( + "user_2", + LiveUpdateType.FINISH, + "🤖 [CHAT] Message processed", + f"Generating personalized response for {full_name}.", + ), + ] + ) + + for live_update in role_updates: + yield live_update + await asyncio.sleep(1) + + # Create personalized system message + system_message = ( + f"You are chatting with {full_name} (username: {username}). " + f"Their roles are: {', '.join(user_roles)}. " + f"Personalize your response based on their profile. " + f"Be friendly and acknowledge their specific role if relevant." + ) + + # Prepare messages for LLM + messages = [{"role": "system", "content": system_message}] + if history: + messages.extend(history) + messages.append({"role": "user", "content": message}) + + # Generate personalized response + async for chunk in self.llm.generate_streaming(messages): + yield self.create_text_response(chunk) + + # Role-specific followup suggestions + followup_messages = [ + "Tell me about my user profile", + f"What can I do as a {user_roles[0] if user_roles else 'user'}?", + ] + + if "admin" in user_roles: + followup_messages.extend(["Show admin dashboard", "Manage user permissions"]) + elif "moderator" in user_roles: + followup_messages.extend(["Review flagged content", "Check community guidelines"]) + else: + followup_messages.extend(["How do I get more permissions?", "What features are available to me?"]) + + yield self.create_followup_messages(followup_messages[:4]) # Limit to 4 suggestions + + +# Factory functions for preferred components +def get_auth_backend() -> ListAuthenticationBackend: + """Factory function to create the preferred authentication backend.""" + users = [ + { + "user_id": "8e6c5871-3817-4d62-828f-ef6789de31b9", + "username": "admin", + "password": "admin123", + "email": "admin@example.com", + "full_name": "System Administrator", + "roles": ["admin", "moderator", "user"], + "metadata": {"department": "IT", "clearance_level": "high"}, + }, + { + "user_id": "d3afde97-35fb-41d0-9aa6-6a1c822db63e", + "username": "moderator", + "password": "mod123", + "email": "mod@example.com", + "full_name": "Community Moderator", + "roles": ["moderator", "user"], + "metadata": {"department": "Community", "shift": "day"}, + }, + { + "user_id": "7ef3d9d5-cdad-405a-a919-3d3ee5e1c34d", + "username": "alice", + "password": "alice123", + "email": "alice@example.com", + "full_name": "Alice Johnson", + "roles": ["user"], + "metadata": {"department": "Marketing", "join_date": "2024-01-15"}, + }, + { + "user_id": "acac16db-37f0-43cb-b18f-b005c3c3de88", + "username": "bob", + "password": "bob123", + "email": "bob@example.com", + "full_name": "Bob Smith", + "roles": ["user"], + "metadata": {"department": "Sales", "territory": "North America"}, + }, + ] + + return ListAuthenticationBackend(users) diff --git a/examples/chat/chat.py b/examples/chat/chat.py index acffdc343b..0f739afe09 100644 --- a/examples/chat/chat.py +++ b/examples/chat/chat.py @@ -29,7 +29,7 @@ from ragbits.chat.interface import ChatInterface from ragbits.chat.interface.forms import FeedbackConfig, UserSettings from ragbits.chat.interface.types import ChatContext, ChatResponse, LiveUpdateType, Message -from ragbits.chat.interface.ui_customization import HeaderCustomization, UICustomization +from ragbits.chat.interface.ui_customization import HeaderCustomization, PageMetaCustomization, UICustomization from ragbits.core.llms import LiteLLM @@ -84,6 +84,7 @@ class MyChat(ChatInterface): "You can ask me **anything**! " "I can provide information, answer questions, and assist you with various tasks." ), + meta=PageMetaCustomization(favicon="🔨", page_title="Change me!"), ) conversation_history = True diff --git a/package-lock.json b/package-lock.json index 3efea1aa3d..e31129ab59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14982,7 +14982,7 @@ } }, "typescript/@ragbits/api-client": { - "version": "0.0.3", + "version": "1.2.1", "license": "MIT", "devDependencies": { "@eslint/js": "^9.17.0", @@ -15001,7 +15001,7 @@ } }, "typescript/@ragbits/api-client-react": { - "version": "0.0.3", + "version": "1.2.1", "license": "MIT", "dependencies": { "@ragbits/api-client": "*" @@ -15032,7 +15032,7 @@ } }, "typescript/ui": { - "version": "0.0.0", + "version": "1.2.1", "dependencies": { "@heroicons/react": "^2.2.0", "@heroui/react": "^2.8.1", diff --git a/packages/ragbits-agents/CHANGELOG.md b/packages/ragbits-agents/CHANGELOG.md index 07c6f08a3d..fee9c3cff1 100644 --- a/packages/ragbits-agents/CHANGELOG.md +++ b/packages/ragbits-agents/CHANGELOG.md @@ -1,6 +1,8 @@ # CHANGELOG ## Unreleased +- Add tool_choice parameter to agent interface (#738) +- Add PydanticAI agents support (#755) ## 1.2.2 (2025-08-08) @@ -19,7 +21,6 @@ ### Changed - ragbits-core updated to version v1.2.0 - - Add native openai tools support (#621) - add Context to Agents (#715) diff --git a/packages/ragbits-agents/src/ragbits/agents/_main.py b/packages/ragbits-agents/src/ragbits/agents/_main.py index 027cd36da8..5f0c2390ea 100644 --- a/packages/ragbits-agents/src/ragbits/agents/_main.py +++ b/packages/ragbits-agents/src/ragbits/agents/_main.py @@ -3,11 +3,13 @@ from contextlib import suppress from copy import deepcopy from dataclasses import dataclass +from datetime import timedelta from inspect import iscoroutinefunction from types import ModuleType, SimpleNamespace from typing import ClassVar, Generic, cast, overload from pydantic import BaseModel, Field +from typing_extensions import Self from ragbits import agents from ragbits.agents.exceptions import ( @@ -20,9 +22,9 @@ AgentToolNotAvailableError, AgentToolNotSupportedError, ) -from ragbits.agents.mcp.server import MCPServer +from ragbits.agents.mcp.server import MCPServer, MCPServerStdio, MCPServerStreamableHttp from ragbits.agents.mcp.utils import get_tools -from ragbits.agents.tool import Tool, ToolCallResult +from ragbits.agents.tool import Tool, ToolCallResult, ToolChoice from ragbits.core.audit.traces import trace from ragbits.core.llms.base import LLM, LLMClientOptionsT, LLMResponseWithMetadata, ToolCall, Usage from ragbits.core.options import Options @@ -34,6 +36,10 @@ with suppress(ImportError): from a2a.types import AgentCapabilities, AgentCard, AgentSkill + from pydantic_ai import Agent as PydanticAIAgent + from pydantic_ai import mcp + + from ragbits.core.llms import LiteLLM @dataclass @@ -192,6 +198,7 @@ async def run( input: str | None = None, options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResult[PromptOutputT]: ... @overload @@ -200,6 +207,7 @@ async def run( input: PromptInputT, options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResult[PromptOutputT]: ... async def run( @@ -207,6 +215,7 @@ async def run( input: str | PromptInputT | None = None, options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResult[PromptOutputT]: """ Run the agent. The method is experimental, inputs and outputs may change in the future. @@ -218,6 +227,11 @@ async def run( - None: No input. Only valid when a string prompt was provided during initialization. options: The options for the agent run. context: The context for the agent run. + tool_choice: Parameter that allows to control what tool is used at first call. Can be one of: + - "auto": let model decide if tool call is needed + - "none": do not call tool + - "required: enforce tool usage (model decides which one) + - Callable: one of provided tools Returns: The result of the agent run. @@ -251,6 +265,7 @@ async def run( await self.llm.generate_with_metadata( prompt=prompt_with_history, tools=[tool.to_function_schema() for tool in tools_mapping.values()], + tool_choice=tool_choice if tool_choice and turn_count == 0 else None, options=self._get_llm_options(llm_options, merged_options, context.usage), ), ) @@ -294,6 +309,7 @@ def run_streaming( input: str | None = None, options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResultStreaming: ... @overload @@ -302,6 +318,7 @@ def run_streaming( input: PromptInputT, options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResultStreaming: ... def run_streaming( @@ -309,6 +326,7 @@ def run_streaming( input: str | PromptInputT | None = None, options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResultStreaming: """ This method returns an `AgentResultStreaming` object that can be asynchronously @@ -318,6 +336,11 @@ def run_streaming( input: The input for the agent run. options: The options for the agent run. context: The context for the agent run. + tool_choice: Parameter that allows to control what tool is used at first call. Can be one of: + - "auto": let model decide if tool call is needed + - "none": do not call tool + - "required: enforce tool usage (model decides which one) + - Callable: one of provided tools Returns: A `StreamingResult` object for iteration and collection. @@ -329,7 +352,7 @@ def run_streaming( AgentInvalidPromptInputError: If the prompt/input combination is invalid. AgentMaxTurnsExceededError: If the maximum number of turns is exceeded. """ - generator = self._stream_internal(input, options, context) + generator = self._stream_internal(input, options, context, tool_choice) return AgentResultStreaming(generator) async def _stream_internal( @@ -337,6 +360,7 @@ async def _stream_internal( input: str | PromptInputT | None = None, options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AsyncGenerator[str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage]: if context is None: context = AgentRunContext() @@ -357,6 +381,7 @@ async def _stream_internal( streaming_result = self.llm.generate_streaming( prompt=prompt_with_history, tools=[tool.to_function_schema() for tool in tools_mapping.values()], + tool_choice=tool_choice if tool_choice and turn_count == 0 else None, options=self._get_llm_options(llm_options, merged_options, context.usage), ) async for chunk in streaming_result: @@ -560,3 +585,106 @@ async def _extract_agent_skills(self) -> list["AgentSkill"]: ) for tool in all_tools.values() ] + + @requires_dependencies("pydantic_ai") + def to_pydantic_ai(self) -> "PydanticAIAgent": + """ + Convert ragbits agent instance into a `pydantic_ai.Agent` representation. + + Returns: + PydanticAIAgent: The equivalent Pydantic-based agent configuration. + + Raises: + ValueError: If the `prompt` is not a string or a `Prompt` instance. + """ + mcp_servers: list[mcp.MCPServerStdio | mcp.MCPServerHTTP] = [] + + if not self.prompt: + raise ValueError("Prompt is required but was None.") + + if isinstance(self.prompt, str): + system_prompt = self.prompt + else: + if not self.prompt.system_prompt: + raise ValueError("System prompt is required but was None.") + system_prompt = self.prompt.system_prompt + + for mcp_server in self.mcp_servers: + if isinstance(mcp_server, MCPServerStdio): + mcp_servers.append( + mcp.MCPServerStdio( + command=mcp_server.params.command, args=mcp_server.params.args, env=mcp_server.params.env + ) + ) + elif isinstance(mcp_server, MCPServerStreamableHttp): + timeout = mcp_server.params["timeout"] + sse_timeout = mcp_server.params["sse_read_timeout"] + + mcp_servers.append( + mcp.MCPServerHTTP( + url=mcp_server.params["url"], + headers=mcp_server.params["headers"], + timeout=timeout.total_seconds() if isinstance(timeout, timedelta) else timeout, + sse_read_timeout=sse_timeout.total_seconds() + if isinstance(sse_timeout, timedelta) + else sse_timeout, + ) + ) + return PydanticAIAgent( + model=self.llm.model_name, + system_prompt=system_prompt, + tools=[tool.to_pydantic_ai() for tool in self.tools], + mcp_servers=mcp_servers, + ) + + @classmethod + @requires_dependencies("pydantic_ai") + def from_pydantic_ai(cls, pydantic_ai_agent: "PydanticAIAgent") -> Self: + """ + Construct an agent instance from a `pydantic_ai.Agent` representation. + + Args: + pydantic_ai_agent: A Pydantic-based agent configuration. + + Returns: + An instance of the agent class initialized from the Pydantic representation. + """ + mcp_servers: list[MCPServerStdio | MCPServerStreamableHttp] = [] + for mcp_server in pydantic_ai_agent._mcp_servers: + if isinstance(mcp_server, mcp.MCPServerStdio): + mcp_servers.append( + MCPServerStdio( + params={ + "command": mcp_server.command, + "args": list(mcp_server.args), + "env": mcp_server.env or {}, + } + ) + ) + elif isinstance(mcp_server, mcp.MCPServerHTTP): + headers = mcp_server.headers or {} + + mcp_servers.append( + MCPServerStreamableHttp( + params={ + "url": mcp_server.url, + "headers": {str(k): str(v) for k, v in headers.items()}, + "sse_read_timeout": mcp_server.sse_read_timeout, + "timeout": mcp_server.timeout, + } + ) + ) + + if not pydantic_ai_agent.model: + raise ValueError("Missing LLM in `pydantic_ai.Agent` instance") + elif isinstance(pydantic_ai_agent.model, str): + model_name = pydantic_ai_agent.model + else: + model_name = pydantic_ai_agent.model.model_name + + return cls( + llm=LiteLLM(model_name=model_name), # type: ignore[arg-type] + prompt="\n".join(pydantic_ai_agent._system_prompts), + tools=[tool.function for _, tool in pydantic_ai_agent._function_tools.items()], + mcp_servers=cast(list[MCPServer], mcp_servers), + ) diff --git a/packages/ragbits-agents/src/ragbits/agents/tool.py b/packages/ragbits-agents/src/ragbits/agents/tool.py index 0ab3d0422e..eebdf5b21a 100644 --- a/packages/ragbits-agents/src/ragbits/agents/tool.py +++ b/packages/ragbits-agents/src/ragbits/agents/tool.py @@ -1,11 +1,16 @@ from collections.abc import Callable +from contextlib import suppress from dataclasses import dataclass -from typing import Any +from typing import Any, Literal from typing_extensions import Self +from ragbits.core.utils.decorators import requires_dependencies from ragbits.core.utils.function_schema import convert_function_to_function_schema, get_context_variable_name +with suppress(ImportError): + from pydantic_ai import Tool as PydanticAITool + @dataclass class ToolCallResult: @@ -76,3 +81,20 @@ def to_function_schema(self) -> dict[str, Any]: "parameters": self.parameters, }, } + + @requires_dependencies("pydantic_ai") + def to_pydantic_ai(self) -> "PydanticAITool": + """ + Convert ragbits tool to a Pydantic AI Tool. + + Returns: + A `pydantic_ai.tools.Tool` object. + """ + return PydanticAITool( + function=self.on_tool_call, + name=self.name, + description=self.description, + ) + + +ToolChoice = Literal["auto", "none", "required"] | Callable diff --git a/packages/ragbits-agents/tests/unit/test_agent.py b/packages/ragbits-agents/tests/unit/test_agent.py index 00d6ca8839..5043cd0f34 100644 --- a/packages/ragbits-agents/tests/unit/test_agent.py +++ b/packages/ragbits-agents/tests/unit/test_agent.py @@ -6,7 +6,7 @@ from pydantic import BaseModel from ragbits.agents import Agent, AgentRunContext -from ragbits.agents._main import AgentOptions, AgentResult, AgentResultStreaming, ToolCallResult +from ragbits.agents._main import AgentOptions, AgentResult, AgentResultStreaming, ToolCallResult, ToolChoice from ragbits.agents.exceptions import ( AgentInvalidPromptInputError, AgentMaxTurnsExceededError, @@ -143,13 +143,82 @@ def llm_with_tool_call_context() -> MockLLM: return MockLLM(default_options=options) +def get_time() -> str: + """ + Returns the current time. + + Returns: + The current time as a string. + """ + return "12:00 PM" + + +@pytest.fixture +def llm_no_tool_call_when_none() -> MockLLM: + """LLM that doesn't call tools when tool_choice is 'none'.""" + options = MockLLMOptions(response="I cannot call tools right now.") + return MockLLM(default_options=options) + + +@pytest.fixture +def llm_auto_tool_call() -> MockLLM: + """LLM that automatically decides to call a tool.""" + options = MockLLMOptions( + response="Let me check the weather for you.", + tool_calls=[ + { + "name": "get_weather", + "arguments": '{"location": "New York"}', + "id": "auto_test", + "type": "function", + } + ], + ) + return MockLLM(default_options=options) + + +@pytest.fixture +def llm_required_tool_call() -> MockLLM: + """LLM that is forced to call a tool when tool_choice is 'required'.""" + options = MockLLMOptions( + response="", + tool_calls=[ + { + "name": "get_weather", + "arguments": '{"location": "Boston"}', + "id": "required_test", + "type": "function", + } + ], + ) + return MockLLM(default_options=options) + + +@pytest.fixture +def llm_specific_tool_call() -> MockLLM: + """LLM that calls a specific tool when tool_choice is a specific function.""" + options = MockLLMOptions( + response="", + tool_calls=[ + { + "name": "get_time", + "arguments": "{}", + "id": "specific_test", + "type": "function", + } + ], + ) + return MockLLM(default_options=options) + + async def _run( agent: Agent, input: str | BaseModel | None = None, options: AgentOptions | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResult: - return await agent.run(input, options=options, context=context) + return await agent.run(input, options=options, context=context, tool_choice=tool_choice) async def _run_streaming( @@ -157,8 +226,9 @@ async def _run_streaming( input: str | BaseModel | None = None, options: AgentOptions | None = None, context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, ) -> AgentResultStreaming: - result = agent.run_streaming(input, options=options, context=context) + result = agent.run_streaming(input, options=options, context=context, tool_choice=tool_choice) async for _chunk in result: pass return result @@ -588,3 +658,114 @@ async def test_max_turns_not_exeeded_with_many_tool_calls(llm_multiple_tool_call assert result.content == "Final response after multiple tool calls" assert len(result.tool_calls) == 3 + + +@pytest.mark.parametrize("method", [_run, _run_streaming]) +async def test_agent_run_with_tool_choice_none(llm_no_tool_call_when_none: MockLLM, method: Callable): + """Test agent run with tool_choice set to 'none'.""" + agent = Agent( + llm=llm_no_tool_call_when_none, + prompt=CustomPrompt, + tools=[get_weather], + ) + result = await method(agent, tool_choice="none") + + assert result.content == "I cannot call tools right now." + assert result.tool_calls is None + + +@pytest.mark.parametrize("method", [_run, _run_streaming]) +async def test_agent_run_with_auto_tool_call(llm_auto_tool_call: MockLLM, method: Callable): + """Test agent run with automatic tool call.""" + agent = Agent( + llm=llm_auto_tool_call, + prompt=CustomPrompt, + tools=[get_weather], + ) + result = await method(agent) + + assert result.content == "Let me check the weather for you." + assert len(result.tool_calls) == 1 + assert result.tool_calls[0].id == "auto_test" + + +@pytest.mark.parametrize("method", [_run, _run_streaming]) +async def test_agent_run_with_required_tool_call(llm_required_tool_call: MockLLM, method: Callable): + """Test agent run with required tool call.""" + agent = Agent( + llm=llm_required_tool_call, + prompt=CustomPrompt, + tools=[get_weather], + ) + result = await method(agent, tool_choice="required") + + assert result.content == "" + assert len(result.tool_calls) == 1 + assert result.tool_calls[0].id == "required_test" + + +@pytest.mark.parametrize("method", [_run, _run_streaming]) +async def test_agent_run_with_specific_tool_call(llm_specific_tool_call: MockLLM, method: Callable): + """Test agent run with specific tool call.""" + agent = Agent( + llm=llm_specific_tool_call, + prompt=CustomPrompt, + tools=[get_weather, get_time], + ) + result = await method(agent, tool_choice=get_time) + + assert result.content == "" + assert len(result.tool_calls) == 1 + assert result.tool_calls[0].id == "specific_test" + assert result.tool_calls[0].name == "get_time" + assert result.tool_calls[0].result == "12:00 PM" + + +@pytest.mark.parametrize("method", [_run, _run_streaming]) +async def test_agent_run_with_tool_choice_auto_explicit(llm_auto_tool_call: MockLLM, method: Callable): + """Test agent run with tool_choice explicitly set to 'auto'.""" + agent = Agent( + llm=llm_auto_tool_call, + prompt=CustomPrompt, + tools=[get_weather], + ) + result = await method(agent, tool_choice="auto") + + assert result.content == "Let me check the weather for you." + assert len(result.tool_calls) == 1 + assert result.tool_calls[0].name == "get_weather" + assert result.tool_calls[0].arguments == {"location": "New York"} + + +@pytest.mark.parametrize("method", [_run, _run_streaming]) +async def test_tool_choice_with_multiple_tools_available(llm_auto_tool_call: MockLLM, method: Callable): + """Test tool_choice behavior when multiple tools are available.""" + agent = Agent( + llm=llm_auto_tool_call, + prompt=CustomPrompt, + tools=[get_weather, get_time], # Multiple tools available + ) + + result = await method(agent, tool_choice="auto") + + assert result.content == "Let me check the weather for you." + assert len(result.tool_calls) == 1 + # The LLM chose to call get_weather based on its configuration + assert result.tool_calls[0].name == "get_weather" + + +@pytest.mark.parametrize("method", [_run, _run_streaming]) +async def test_tool_choice_history_preservation(llm_with_tool_call: MockLLM, method: Callable): + """Test that tool_choice works correctly with history preservation.""" + agent: Agent = Agent( + llm=llm_with_tool_call, + prompt="You are a helpful assistant", + tools=[get_weather], + keep_history=True, + ) + + await method(agent, input="Check weather", tool_choice="auto") + assert len(agent.history) >= 3 # At least system, user, assistant messages + # Should include tool call in history + tool_call_messages = [msg for msg in agent.history if msg.get("role") == "tool"] + assert len(tool_call_messages) >= 1 diff --git a/packages/ragbits-chat/CHANGELOG.md b/packages/ragbits-chat/CHANGELOG.md index 1b53de233c..2e5991693a 100644 --- a/packages/ragbits-chat/CHANGELOG.md +++ b/packages/ragbits-chat/CHANGELOG.md @@ -1,6 +1,14 @@ # CHANGELOG ## Unreleased +- Add authentication handling in the UI (#763) +- Add backend authentication (#761) + +- Autogenerate typescript types based on backend typing (#727) +- Add ability to customize favicon and page title (#766) + +- Autogenerate typescript types based on backend typing (#727) +- Add ability to customize favicon and page title (#766) ## 1.2.2 (2025-08-08) @@ -13,14 +21,13 @@ ### Changed - ragbits-core updated to version v1.2.1 - - Fix routing error causing chat to not be displayed with disabled history (#764) ## 1.2.0 (2025-08-01) + ### Changed - ragbits-core updated to version v1.2.0 - - Update TailwindCSS, React, Vite, tailwind config (#742) - Add images support in chat message, images gallery (#731) - Add persistent user settings (#719) diff --git a/packages/ragbits-chat/pyproject.toml b/packages/ragbits-chat/pyproject.toml index efcbd7c3f3..740a6b4ec4 100644 --- a/packages/ragbits-chat/pyproject.toml +++ b/packages/ragbits-chat/pyproject.toml @@ -31,7 +31,14 @@ classifiers = [ "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", ] -dependencies = ["fastapi>=0.115.0,<1.0.0", "uvicorn>=0.31.0,<1.0.0", "httpx>=0.28.1,<1.0.0", "ragbits-core==1.2.2"] +dependencies = [ + "fastapi>=0.115.0,<1.0.0", + "uvicorn>=0.31.0,<1.0.0", + "httpx>=0.28.1,<1.0.0", + "ragbits-core==1.2.2", + "bcrypt>=4.2.0", + "python-jose[cryptography]>=3.5.0", +] [project.urls] "Homepage" = "https://github.com/deepsense-ai/ragbits" diff --git a/packages/ragbits-chat/src/ragbits/chat/__init__.py b/packages/ragbits-chat/src/ragbits/chat/__init__.py index 68041babd6..643b508625 100644 --- a/packages/ragbits-chat/src/ragbits/chat/__init__.py +++ b/packages/ragbits-chat/src/ragbits/chat/__init__.py @@ -1,10 +1,17 @@ -from .client import ( +from ragbits.chat.auth import ( + AuthenticationBackend, + AuthenticationResponse, + ListAuthenticationBackend, + User, + UserCredentials, +) +from ragbits.chat.client import ( RagbitsChatClient, RagbitsConversation, SyncRagbitsChatClient, SyncRagbitsConversation, ) -from .interface.types import ( +from ragbits.chat.interface.types import ( ChatResponse, ChatResponseType, Message, @@ -14,8 +21,11 @@ ) __all__ = [ + "AuthenticationBackend", + "AuthenticationResponse", "ChatResponse", "ChatResponseType", + "ListAuthenticationBackend", "Message", "MessageRole", "RagbitsChatClient", @@ -24,4 +34,6 @@ "StateUpdate", "SyncRagbitsChatClient", "SyncRagbitsConversation", + "User", + "UserCredentials", ] diff --git a/packages/ragbits-chat/src/ragbits/chat/api.py b/packages/ragbits-chat/src/ragbits/chat/api.py index c52f4b7603..5bb7840e71 100644 --- a/packages/ragbits-chat/src/ragbits/chat/api.py +++ b/packages/ragbits-chat/src/ragbits/chat/api.py @@ -5,18 +5,30 @@ from collections.abc import AsyncGenerator from contextlib import asynccontextmanager from pathlib import Path -from typing import Any, Literal import uvicorn -from fastapi import FastAPI, HTTPException, Request, status +from fastapi import Depends, FastAPI, HTTPException, Request, status from fastapi.exceptions import RequestValidationError from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import HTMLResponse, JSONResponse, StreamingResponse +from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from fastapi.staticfiles import StaticFiles -from pydantic import BaseModel, Field +from ragbits.chat.auth import AuthenticationBackend, User +from ragbits.chat.auth.types import LoginRequest, LoginResponse, LogoutRequest from ragbits.chat.interface import ChatInterface -from ragbits.chat.interface.types import ChatContext, ChatResponse, ChatResponseType, Message +from ragbits.chat.interface.types import ( + AuthenticationConfig, + AuthType, + ChatContext, + ChatMessageRequest, + ChatResponse, + ChatResponseType, + ConfigResponse, + FeedbackConfig, + FeedbackItem, + FeedbackRequest, +) from ragbits.core.audit.metrics import record_metric from ragbits.core.audit.metrics.base import MetricType from ragbits.core.audit.traces import trace @@ -26,26 +38,6 @@ logger = logging.getLogger(__name__) -class ChatMessageRequest(BaseModel): - """ - Request body for chat message - """ - - message: str = Field(..., description="The current user message") - history: list[Message] = Field(default_factory=list, description="Previous message history") - context: dict[str, Any] = Field(default_factory=dict, description="User context information") - - -class FeedbackRequest(BaseModel): - """ - Request body for feedback submission - """ - - message_id: str = Field(..., description="ID of the message receiving feedback") - feedback: Literal["like", "dislike"] = Field(..., description="Type of feedback (like or dislike)") - payload: dict = Field(default_factory=dict, description="Additional feedback details") - - class RagbitsAPI: """ RagbitsAPI class for running API with Demo UI for testing purposes @@ -57,6 +49,7 @@ def __init__( cors_origins: list[str] | None = None, ui_build_dir: str | None = None, debug_mode: bool = False, + auth_backend: AuthenticationBackend | type[AuthenticationBackend] | str | None = None, ) -> None: """ Initialize the RagbitsAPI. @@ -67,11 +60,14 @@ def __init__( cors_origins: List of allowed CORS origins. If None, defaults to common development origins. ui_build_dir: Path to a custom UI build directory. If None, uses the default package UI. debug_mode: Flag enabling debug tools in the default UI + auth_backend: Authentication backend for user authentication. If None, no authentication required. """ self.chat_interface: ChatInterface = self._load_chat_interface(chat_interface) self.dist_dir = Path(ui_build_dir) if ui_build_dir else Path(__file__).parent / "ui-build" self.cors_origins = cors_origins or [] self.debug_mode = debug_mode + self.auth_backend = self._load_auth_backend(auth_backend) + self.security = HTTPBearer(auto_error=False) if auth_backend else None @asynccontextmanager async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]: @@ -115,41 +111,72 @@ async def validation_exception_handler(request: Request, exc: RequestValidationE def setup_routes(self) -> None: """Defines API routes.""" + # Authentication routes + if self.auth_backend: + # Create security dependency variable to avoid B008 linting error + security_dependency = Depends(self.security) + + @self.app.post("/api/auth/login", response_class=JSONResponse) + async def login(request: LoginRequest) -> JSONResponse: + return await self._handle_login(request) + + @self.app.post("/api/auth/logout", response_class=JSONResponse) + async def logout(request: LogoutRequest) -> JSONResponse: + return await self._handle_logout(request) + + @self.app.post("/api/chat", response_class=StreamingResponse) + async def chat_message( + request: ChatMessageRequest, + credentials: HTTPAuthorizationCredentials | None = security_dependency, + ) -> StreamingResponse: + return await self._handle_chat_message(request, credentials) + + @self.app.post("/api/feedback", response_class=JSONResponse) + async def feedback( + request: FeedbackRequest, + credentials: HTTPAuthorizationCredentials | None = security_dependency, + ) -> JSONResponse: + return await self._handle_feedback(request, credentials) + else: - @self.app.post("/api/chat", response_class=StreamingResponse) - async def chat_message(request: ChatMessageRequest) -> StreamingResponse: - return await self._handle_chat_message(request) + @self.app.post("/api/chat", response_class=StreamingResponse) + async def chat_message( + request: ChatMessageRequest, + ) -> StreamingResponse: + return await self._handle_chat_message(request, None) - @self.app.post("/api/feedback", response_class=JSONResponse) - async def feedback(request: FeedbackRequest) -> JSONResponse: - return await self._handle_feedback(request) + @self.app.post("/api/feedback", response_class=JSONResponse) + async def feedback( + request: FeedbackRequest, + ) -> JSONResponse: + return await self._handle_feedback(request, None) @self.app.get("/api/config", response_class=JSONResponse) async def config() -> JSONResponse: - like_config = self.chat_interface.feedback_config.like_form - dislike_config = self.chat_interface.feedback_config.dislike_form - user_settings_config = self.chat_interface.user_settings.form - - config_dict = { - "feedback": { - "like": { - "enabled": self.chat_interface.feedback_config.like_enabled, - "form": like_config, - }, - "dislike": { - "enabled": self.chat_interface.feedback_config.dislike_enabled, - "form": dislike_config, - }, - }, - "customization": self.chat_interface.ui_customization.model_dump() - if self.chat_interface.ui_customization - else None, - "user_settings": {"form": user_settings_config}, - "debug_mode": self.debug_mode, - "conversation_history": self.chat_interface.conversation_history, - } - - return JSONResponse(content=config_dict) + feedback_config = self.chat_interface.feedback_config + + config_response = ConfigResponse( + feedback=FeedbackConfig( + like=FeedbackItem( + enabled=feedback_config.like_enabled, + form=feedback_config.like_form, + ), + dislike=FeedbackItem( + enabled=feedback_config.dislike_enabled, + form=feedback_config.dislike_form, + ), + ), + customization=self.chat_interface.ui_customization, + user_settings=self.chat_interface.user_settings, + debug_mode=self.debug_mode, + conversation_history=self.chat_interface.conversation_history, + authentication=AuthenticationConfig( + enabled=self.auth_backend is not None, + auth_types=[AuthType.CREDENTIALS], + ), + ) + + return JSONResponse(content=config_response.model_dump()) @self.app.get("/{full_path:path}", response_class=HTMLResponse) async def root() -> HTMLResponse: @@ -157,7 +184,67 @@ async def root() -> HTMLResponse: with open(str(index_file)) as file: return HTMLResponse(content=file.read()) - async def _handle_chat_message(self, request: ChatMessageRequest) -> StreamingResponse: # noqa: PLR0915 + async def _validate_authentication(self, credentials: HTTPAuthorizationCredentials | None) -> User | None: + """Validate authentication credentials and return user if valid.""" + if not self.auth_backend: + return None + + if not credentials: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Authentication required", + headers={"WWW-Authenticate": "Bearer"}, + ) + + # The jwt_token should be the session_id + auth_result = await self.auth_backend.validate_token(credentials.credentials) + if not auth_result.success: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=auth_result.error_message or "Invalid session", + headers={"WWW-Authenticate": "Bearer"}, + ) + + return auth_result.user + + @staticmethod + def _prepare_chat_context( + request: ChatMessageRequest, + authenticated_user: User | None, + credentials: HTTPAuthorizationCredentials | None, + ) -> ChatContext: + """Prepare and validate chat context from request.""" + chat_context = ChatContext(**request.context) + + # Add session_id to context if authenticated + if authenticated_user and credentials: + chat_context.session_id = credentials.credentials + chat_context.state["authenticated_user"] = authenticated_user + + # Verify state signature if provided + if "state" in request.context and "signature" in request.context: + state = request.context["state"] + signature = request.context["signature"] + if not ChatInterface.verify_state(state, signature): + logger.warning(f"Invalid state signature received for message {chat_context.message_id}") + record_metric( + ChatCounterMetric.API_ERROR_COUNT, + 1, + metric_type=MetricType.COUNTER, + endpoint="/api/chat", + status_code="400", + error_type="invalid_state_signature", + ) + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Invalid state signature", + ) + + return chat_context + + async def _handle_chat_message( + self, request: ChatMessageRequest, credentials: HTTPAuthorizationCredentials | None = None + ) -> StreamingResponse: # noqa: PLR0915 """Handle chat message requests with metrics tracking.""" start_time = time.time() @@ -167,6 +254,9 @@ async def _handle_chat_message(self, request: ChatMessageRequest) -> StreamingRe ) try: + # Validate authentication if required + authenticated_user = await self._validate_authentication(credentials) + if not self.chat_interface: record_metric( ChatCounterMetric.API_ERROR_COUNT, @@ -178,28 +268,8 @@ async def _handle_chat_message(self, request: ChatMessageRequest) -> StreamingRe ) raise HTTPException(status_code=500, detail="Chat implementation is not initialized") - # Convert request context to ChatContext - chat_context = ChatContext(**request.context) - - # Verify state signature if provided - if "state" in request.context and "signature" in request.context: - state = request.context["state"] - signature = request.context["signature"] - if not ChatInterface.verify_state(state, signature): - logger.warning(f"Invalid state signature received for message {chat_context.message_id}") - record_metric( - ChatCounterMetric.API_ERROR_COUNT, - 1, - metric_type=MetricType.COUNTER, - endpoint="/api/chat", - status_code="400", - error_type="invalid_state_signature", - ) - raise HTTPException( - status_code=status.HTTP_400_BAD_REQUEST, - detail="Invalid state signature", - ) - # Remove the signature from context after verification (it's already parsed into ChatContext) + # Prepare chat context + chat_context = RagbitsAPI._prepare_chat_context(request, authenticated_user, credentials) # Get the response generator from the chat interface response_generator = self.chat_interface.chat( @@ -303,7 +373,9 @@ async def chat_response() -> AsyncGenerator[str, None]: ) raise HTTPException(status_code=500, detail="Internal server error") from None - async def _handle_feedback(self, request: FeedbackRequest) -> JSONResponse: + async def _handle_feedback( + self, request: FeedbackRequest, credentials: HTTPAuthorizationCredentials | None = None + ) -> JSONResponse: """Handle feedback requests with metrics tracking.""" start_time = time.time() @@ -317,6 +389,9 @@ async def _handle_feedback(self, request: FeedbackRequest) -> JSONResponse: ) try: + # Validate authentication if required + await self._validate_authentication(credentials) + if not self.chat_interface: record_metric( ChatCounterMetric.API_ERROR_COUNT, @@ -388,6 +463,63 @@ async def _handle_feedback(self, request: FeedbackRequest) -> JSONResponse: ) raise HTTPException(status_code=500, detail="Internal server error") from None + async def _handle_login(self, request: LoginRequest) -> JSONResponse: + """Handle user login requests.""" + if not self.auth_backend: + raise HTTPException(status_code=500, detail="Authentication not configured") + + try: + from .auth.types import UserCredentials + + credentials = UserCredentials(username=request.username, password=request.password) + auth_result = await self.auth_backend.authenticate_with_credentials(credentials) + + if auth_result.success and auth_result.jwt_token: + return JSONResponse( + content=LoginResponse( + success=True, + user=auth_result.user if auth_result.user else None, + error_message=None, + jwt_token=auth_result.jwt_token, + ).model_dump() + ) + else: + return JSONResponse( + status_code=status.HTTP_401_UNAUTHORIZED, + content=LoginResponse( + success=False, + user=None, + error_message=auth_result.error_message or "Invalid credentials", + jwt_token=None, + ).model_dump(), + ) + except Exception as e: + logger.error(f"Login error: {e}") + return JSONResponse( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + content=LoginResponse( + success=False, + user=None, + error_message="Internal server error", + jwt_token=None, + ).model_dump(), + ) + + async def _handle_logout(self, request: LogoutRequest) -> JSONResponse: + """Handle user logout requests.""" + if not self.auth_backend: + raise HTTPException(status_code=500, detail="Authentication not configured") + + try: + success = await self.auth_backend.revoke_token(request.token) + return JSONResponse(content={"success": success}) + except Exception as e: + logger.error(f"Logout error: {e}") + return JSONResponse( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + content={"success": False, "error_message": "Internal server error"}, + ) + @staticmethod async def _chat_response_to_sse( responses: AsyncGenerator[ChatResponse], @@ -452,6 +584,46 @@ def _load_chat_interface(implementation: type[ChatInterface] | str) -> ChatInter logger.info(f"Initialized chat implementation: {implementation_class.__name__}") return implementation_class() + @staticmethod + def _load_auth_backend( + implementation: AuthenticationBackend | type[AuthenticationBackend] | str | None, + ) -> AuthenticationBackend | None: + """Initialize the auth backend from a class, instance, or module path. + + Args: + implementation: Either an AuthenticationBackend instance, class, or a + string path in format "module:class" or "module:function" + """ + if implementation is None: + return None + + # If it's already an instance, return it directly + if isinstance(implementation, AuthenticationBackend): + logger.info(f"Using existing auth backend instance: {type(implementation).__name__}") + return implementation + + if isinstance(implementation, str): + module_stringify, object_stringify = implementation.split(":") + logger.info(f"Loading Auth implementation from path: {module_stringify}, object: {object_stringify}") + + module = importlib.import_module(module_stringify) + implementation_obj = getattr(module, object_stringify) + + # If it's a function, call it to get the backend instance + if callable(implementation_obj) and not isinstance(implementation_obj, type): + logger.info(f"Calling factory function: {object_stringify}") + return implementation_obj() + else: + implementation_class = implementation_obj + else: + implementation_class = implementation + + if not issubclass(implementation_class, AuthenticationBackend): + raise TypeError("Implementation must inherit from AuthenticationBackend") + + logger.info(f"Initialized auth backend: {implementation_class.__name__}") + return implementation_class() + def run(self, host: str = "127.0.0.1", port: int = 8000) -> None: """ Used for starting the API diff --git a/packages/ragbits-chat/src/ragbits/chat/auth/__init__.py b/packages/ragbits-chat/src/ragbits/chat/auth/__init__.py new file mode 100644 index 0000000000..b7675562d6 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/auth/__init__.py @@ -0,0 +1,11 @@ +from .backends import ListAuthenticationBackend +from .base import AuthenticationBackend, AuthenticationResponse +from .types import User, UserCredentials + +__all__ = [ + "AuthenticationBackend", + "AuthenticationResponse", + "ListAuthenticationBackend", + "User", + "UserCredentials", +] diff --git a/packages/ragbits-chat/src/ragbits/chat/auth/backends.py b/packages/ragbits-chat/src/ragbits/chat/auth/backends.py new file mode 100644 index 0000000000..d97a2493ec --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/auth/backends.py @@ -0,0 +1,177 @@ +import uuid +from datetime import datetime, timedelta, timezone +from typing import Any, cast + +import bcrypt +from jose import jwt +from jose.exceptions import ExpiredSignatureError, JWTError + +from ragbits.chat.auth.base import AuthenticationBackend, AuthenticationResponse, AuthOptions +from ragbits.chat.auth.types import JWTToken, OAuth2Credentials, User, UserCredentials +from ragbits.core.utils import get_secret_key + + +class ListAuthenticationBackend(AuthenticationBackend): + """Authentication backend using a predefined list of users.""" + + def __init__( + self, + users: list[dict[str, Any]], + default_options: AuthOptions | None = None, + ): + """ + Initialize with a list of user dictionaries. + + Args: + users: List of user dicts with 'username', 'password', and optional fields + jwt_secret: Secret key for JWT jwt_token signing (generates random if not provided) + default_options: Default options for the component + """ + if default_options is None: + default_options = AuthOptions() + super().__init__(default_options) + self.users = {} + self.jwt_secret = get_secret_key() + self.jwt_algorithm = default_options.jwt_algorithm + self.token_expiry_minutes = default_options.token_expiry_minutes + self.revoked_tokens: set[str] = set() # Blacklist for revoked tokens + + for user_data in users: + # Hash passwords with bcrypt for security + password_hash = bcrypt.hashpw(user_data["password"].encode("utf-8"), bcrypt.gensalt()).decode("utf-8") + self.users[user_data["username"]] = { + "password_hash": password_hash, + "user": User( + user_id=user_data.get("user_id", str(uuid.uuid4())), + username=user_data["username"], + email=user_data.get("email"), + full_name=user_data.get("full_name"), + roles=user_data.get("roles", []), + metadata=user_data.get("metadata", {}), + ), + } + + async def authenticate_with_credentials(self, credentials: UserCredentials) -> AuthenticationResponse: # noqa: PLR6301 + """ + Authenticate into backend using provided credentials + + Args: + credentials: User credentials + Returns: + AuthenticationResponse: Result of authentication + """ + user_data = self.users.get(credentials.username) + if not user_data: + return AuthenticationResponse(success=False, error_message="User not found") + + # Verify password with bcrypt + password_hash = str(user_data["password_hash"]) + if not bcrypt.checkpw(credentials.password.encode("utf-8"), password_hash.encode("utf-8")): + return AuthenticationResponse(success=False, error_message="Invalid password") + + user = cast(User, user_data["user"]) + + # Create JWT jwt_token + jwt_token = self._create_jwt_token(user) + + return AuthenticationResponse(success=True, user=user, jwt_token=jwt_token) + + def _create_jwt_token(self, user: User) -> JWTToken: + """Create a JWT jwt_token for the user.""" + now = datetime.now(timezone.utc) + expires_in = self.token_expiry_minutes * 60 # Convert to seconds + + payload = { + "user_id": user.user_id, + "username": user.username, + "email": user.email, + "full_name": user.full_name, + "roles": user.roles, + "metadata": user.metadata, + "iat": now, + "exp": now + timedelta(minutes=self.token_expiry_minutes), + } + + access_token = jwt.encode(payload, self.jwt_secret, algorithm=self.jwt_algorithm) + + token_type = "bearer" # noqa: S105 + return JWTToken(access_token=access_token, token_type=token_type, expires_in=expires_in, user=user) + + async def validate_token(self, token: str) -> AuthenticationResponse: + """Validate a JWT jwt_token.""" + # Check if token is blacklisted (revoked) + if token in self.revoked_tokens: + return AuthenticationResponse(success=False, error_message="Token has been revoked") + + try: + payload = jwt.decode(token, self.jwt_secret, algorithms=[self.jwt_algorithm]) + + # Reconstruct user from jwt_token payload + user = User( + user_id=payload["user_id"], + username=payload["username"], + email=payload.get("email"), + full_name=payload.get("full_name"), + roles=payload.get("roles", []), + metadata=payload.get("metadata", {}), + ) + + return AuthenticationResponse(success=True, user=user) + + except ExpiredSignatureError: + return AuthenticationResponse(success=False, error_message="Token expired") + except JWTError: + return AuthenticationResponse(success=False, error_message="Invalid jwt_token") + + async def authenticate_with_oauth2(self, oauth_credentials: OAuth2Credentials) -> AuthenticationResponse: # noqa: PLR6301 + """ + Authenticate user with OAuth2 credentials. + + Args: + oauth_credentials: OAuth2 credentials + + Returns: + AuthenticationResponse: Authentication failure as OAuth2 is not supported + """ + return AuthenticationResponse(success=False, error_message="OAuth2 not supported by ListAuthentication") + + async def revoke_token(self, token: str) -> bool: # noqa: PLR6301 + """ + Revoke a JWT token. + + Args: + token: The JWT token to revoke + + Raises: + NotImplementedError: This method is not implemented + """ + raise NotImplementedError( + "ListAuthenticationBackend is designed to run in development / testing scenarios. " + "Revoking tokens is not implemented in this backend, " + "if you need to revoke tokens please consider using different backend or implementing your own." + ) + + def cleanup_expired_tokens(self) -> int: + """ + Remove expired tokens from the blacklist to prevent memory bloat. + + Returns: + Number of tokens removed + """ + tokens_to_remove = [] + + for token in self.revoked_tokens: + try: + # Try to decode the token - if it raises ExpiredSignatureError, it's expired + jwt.decode(token, self.jwt_secret, algorithms=[self.jwt_algorithm]) + except ExpiredSignatureError: + # Token is expired, safe to remove from blacklist + tokens_to_remove.append(token) + except JWTError: + # Token is invalid, remove it too + tokens_to_remove.append(token) + + for token in tokens_to_remove: + self.revoked_tokens.remove(token) + + return len(tokens_to_remove) diff --git a/packages/ragbits-chat/src/ragbits/chat/auth/base.py b/packages/ragbits-chat/src/ragbits/chat/auth/base.py new file mode 100644 index 0000000000..b73ccd9f34 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/auth/base.py @@ -0,0 +1,87 @@ +from abc import ABC, abstractmethod +from types import ModuleType +from typing import ClassVar + +from pydantic import BaseModel + +from ragbits.core.options import Options +from ragbits.core.utils.config_handling import ConfigurableComponent + +from .types import JWTToken, OAuth2Credentials, User, UserCredentials + + +class AuthOptions(Options): + """Options for authentication backends.""" + + jwt_algorithm: str = "HS256" + token_expiry_minutes: int = 24 * 60 + + +class AuthenticationResponse(BaseModel): + """Result of an authentication attempt.""" + + success: bool + user: User | None = None + jwt_token: JWTToken | None = None + error_message: str | None = None + + +class AuthenticationBackend(ConfigurableComponent[AuthOptions], ABC): + """Base class for authentication backends.""" + + configuration_key: ClassVar[str] = "auth_backend" + options_cls = AuthOptions + default_module: ClassVar[ModuleType | None] = None + + @abstractmethod + async def authenticate_with_credentials(self, credentials: UserCredentials) -> AuthenticationResponse: + """ + Authenticate a user with username/password credentials. + + Args: + credentials: The user credentials + + Returns: + AuthenticationResult with user and session if successful + """ + pass + + @abstractmethod + async def authenticate_with_oauth2(self, oauth_credentials: OAuth2Credentials) -> AuthenticationResponse: + """ + Authenticate a user with OAuth2 credentials. + + Args: + oauth_credentials: OAuth2 authentication data + + Returns: + AuthenticationResult with user and session if successful + """ + pass + + @abstractmethod + async def validate_token(self, token: str) -> AuthenticationResponse: + """ + Validate a JWT jwt_token. + + Args: + token: The JWT jwt_token to validate + + Returns: + AuthenticationResult with user if valid + """ + # Default implementation for backward compatibility + pass + + @abstractmethod + async def revoke_token(self, token: str) -> bool: + """ + Revoke/logout a session. + + Args: + token: The jwt_token to revoke + + Returns: + True if successfully revoked + """ + pass diff --git a/packages/ragbits-chat/src/ragbits/chat/auth/types.py b/packages/ragbits-chat/src/ragbits/chat/auth/types.py new file mode 100644 index 0000000000..b2d02144d8 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/auth/types.py @@ -0,0 +1,73 @@ +from datetime import datetime +from typing import Any + +from pydantic import BaseModel, Field + + +class User(BaseModel): + """Represents an authenticated user.""" + + user_id: str + username: str + email: str | None = None + full_name: str | None = None + roles: list[str] = Field(default_factory=list) + metadata: dict[str, Any] = Field(default_factory=dict) + + +class UserCredentials(BaseModel): + """Represents user login credentials.""" + + username: str + password: str + + +class OAuth2Credentials(BaseModel): + """Represents OAuth2 authentication data.""" + + access_token: str + token_type: str = "bearer" + refresh_token: str | None = None + expires_at: datetime | None = None + scope: str | None = None + + +class JWTToken(BaseModel): + """Represents a JWT authentication jwt_token.""" + + access_token: str + token_type: str = "bearer" + expires_in: int # seconds until expiration + refresh_token: str | None = None + user: User + + +class CredentialsLoginRequest(BaseModel): + """ + Request body for user login + """ + + username: str = Field(..., description="Username") + password: str = Field(..., description="Password") + + +LoginRequest = CredentialsLoginRequest + + +class LoginResponse(BaseModel): + """ + Response body for successful login + """ + + success: bool = Field(..., description="Whether login was successful") + user: User | None = Field(None, description="User information") + error_message: str | None = Field(None, description="Error message if login failed") + jwt_token: JWTToken | None = Field(..., description="Access jwt_token") + + +class LogoutRequest(BaseModel): + """ + Request body for user logout + """ + + token: str = Field(..., description="Session ID to logout") diff --git a/packages/ragbits-chat/src/ragbits/chat/cli.py b/packages/ragbits-chat/src/ragbits/chat/cli.py index fdd4795535..e4643d43e8 100644 --- a/packages/ragbits-chat/src/ragbits/chat/cli.py +++ b/packages/ragbits-chat/src/ragbits/chat/cli.py @@ -31,11 +31,16 @@ def run( help="Path to a custom UI build directory. If not specified, uses the default package UI.", ), debug_mode: bool = typer.Option(False, "--debug", help="Flag enabling debug tools in the default UI"), + auth: str = typer.Option(None, help="Path to a module with Authentication Backend"), ) -> None: """ Run API service with UI demo """ api = RagbitsAPI( - chat_interface=chat_interface, cors_origins=cors_origins, ui_build_dir=ui_build_dir, debug_mode=debug_mode + chat_interface=chat_interface, + cors_origins=cors_origins, + ui_build_dir=ui_build_dir, + debug_mode=debug_mode, + auth_backend=auth, ) api.run(host=host, port=port) diff --git a/packages/ragbits-chat/src/ragbits/chat/interface/_interface.py b/packages/ragbits-chat/src/ragbits/chat/interface/_interface.py index 74dd0e0732..8cfc3b88d9 100644 --- a/packages/ragbits-chat/src/ragbits/chat/interface/_interface.py +++ b/packages/ragbits-chat/src/ragbits/chat/interface/_interface.py @@ -7,7 +7,7 @@ import uuid from abc import ABC, abstractmethod from collections.abc import AsyncGenerator, Callable -from typing import Any, Literal +from typing import Any from ragbits.chat.interface.ui_customization import UICustomization from ragbits.core.audit.metrics import record_metric @@ -22,6 +22,7 @@ ChatContext, ChatResponse, ChatResponseType, + FeedbackType, Image, LiveUpdate, LiveUpdateContent, @@ -329,8 +330,8 @@ async def chat( async def save_feedback( self, message_id: str, - feedback: Literal["like", "dislike"], - payload: dict, + feedback: FeedbackType, + payload: dict[str, Any] | None = None, ) -> None: """ Save feedback about a chat message. diff --git a/packages/ragbits-chat/src/ragbits/chat/interface/types.py b/packages/ragbits-chat/src/ragbits/chat/interface/types.py index 3dfe1a67d4..dbd978f5cd 100644 --- a/packages/ragbits-chat/src/ragbits/chat/interface/types.py +++ b/packages/ragbits-chat/src/ragbits/chat/interface/types.py @@ -3,6 +3,9 @@ from pydantic import BaseModel, ConfigDict, Field +from ragbits.chat.interface.forms import UserSettings +from ragbits.chat.interface.ui_customization import UICustomization + class MessageRole(str, Enum): """Defines the role of the message sender in a conversation.""" @@ -76,6 +79,16 @@ class ChatResponseType(str, Enum): IMAGE = "image" +class ChatContext(BaseModel): + """Represents the context of a chat conversation.""" + + conversation_id: str | None = None + message_id: str | None = None + state: dict[str, Any] = Field(default_factory=dict) + session_id: str | None = None + model_config = ConfigDict(extra="allow") + + class ChatResponse(BaseModel): """Container for different types of chat responses.""" @@ -145,10 +158,70 @@ def as_image(self) -> Image | None: return cast(Image, self.content) if self.type == ChatResponseType.IMAGE else None -class ChatContext(BaseModel): - """Represents the context of a chat conversation.""" +class ChatMessageRequest(BaseModel): + """Client-side chat request interface.""" - conversation_id: str | None = None - message_id: str | None = None - state: dict[str, Any] = Field(default_factory=dict) - model_config = ConfigDict(extra="allow") + message: str = Field(..., description="The current user message") + history: list["Message"] = Field(default_factory=list, description="Previous message history") + context: dict[str, Any] = Field(default_factory=dict, description="User context information") + + +class FeedbackType(str, Enum): + """Feedback types for user feedback.""" + + LIKE = "like" + DISLIKE = "dislike" + + +class FeedbackResponse(BaseModel): + """Response from feedback submission.""" + + status: str = Field(..., description="Status of the feedback submission") + + +class FeedbackRequest(BaseModel): + """ + Request body for feedback submission + """ + + message_id: str = Field(..., description="ID of the message receiving feedback") + feedback: FeedbackType = Field(..., description="Type of feedback (like or dislike)") + payload: dict[str, Any] = Field(default_factory=dict, description="Additional feedback details") + + +class FeedbackItem(BaseModel): + """Individual feedback configuration (like/dislike).""" + + enabled: bool = Field(..., description="Whether this feedback type is enabled") + form: dict[str, Any] | None = Field(..., description="Form schema for this feedback type") + + +class FeedbackConfig(BaseModel): + """Feedback configuration containing like and dislike settings.""" + + like: FeedbackItem = Field(..., description="Like feedback configuration") + dislike: FeedbackItem = Field(..., description="Dislike feedback configuration") + + +class AuthType(str, Enum): + """Defines the available authentication types.""" + + CREDENTIALS = "credentials" + + +class AuthenticationConfig(BaseModel): + """Configuration for authentication.""" + + enabled: bool = Field(default=False, description="Enable/disable authentication") + auth_types: list[AuthType] = Field(default=[], description="List of available authentication types") + + +class ConfigResponse(BaseModel): + """Configuration response from the API.""" + + feedback: FeedbackConfig = Field(..., description="Feedback configuration") + customization: UICustomization | None = Field(default=None, description="UI customization") + user_settings: UserSettings = Field(default_factory=UserSettings, description="User settings") + debug_mode: bool = Field(default=False, description="Debug mode flag") + conversation_history: bool = Field(default=False, description="Debug mode flag") + authentication: AuthenticationConfig = Field(..., description="Authentication configuration") diff --git a/packages/ragbits-chat/src/ragbits/chat/interface/ui_customization.py b/packages/ragbits-chat/src/ragbits/chat/interface/ui_customization.py index 7fab255dbc..e0559cc457 100644 --- a/packages/ragbits-chat/src/ragbits/chat/interface/ui_customization.py +++ b/packages/ragbits-chat/src/ragbits/chat/interface/ui_customization.py @@ -19,6 +19,29 @@ class HeaderCustomization(BaseModel): """Custom logo URL or content. The logo can also be served from 'static' directory inside 'ui-buid""" +class PageMetaCustomization(BaseModel): + """ + Customization for the meta properites of the UI + """ + + favicon: str | None = Field( + default=None, + description=( + "Custom favicon URL or content. If `None` logo is used." + "The favicon can also be serverd from 'static' directory inside 'ui-build'" + ), + ) + ( + "Custom favicon URL or content. If `None` logo is used." + "The favicon can also be serverd from 'static' directory inside 'ui-build'" + ) + page_title: str | None = Field( + default=None, + description="Custom title for the page displayed in the browser's bar. If `None` header title is used.", + ) + "Custom title for the page displayed in the browser's bar. If `None` header title is used." + + class UICustomization(BaseModel): """ Customization for the UI. @@ -30,3 +53,4 @@ class UICustomization(BaseModel): default=None, description="Custom welcome message to be displayed on the UI. It supports Markdown." ) """Custom welcome message to be displayed on the UI. It supports Markdown.""" + meta: PageMetaCustomization | None = Field(default=None, description="Custom meta properties customization") diff --git a/packages/ragbits-chat/src/ragbits/chat/providers/__init__.py b/packages/ragbits-chat/src/ragbits/chat/providers/__init__.py new file mode 100644 index 0000000000..5f44451bdf --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/providers/__init__.py @@ -0,0 +1,9 @@ +""" +Providers for ragbits-chat package. + +This module contains provider classes for various ragbits-chat functionality. +""" + +from .model_provider import RagbitsChatModelProvider + +__all__ = ["RagbitsChatModelProvider"] diff --git a/packages/ragbits-chat/src/ragbits/chat/providers/model_provider.py b/packages/ragbits-chat/src/ragbits/chat/providers/model_provider.py new file mode 100644 index 0000000000..166f1a1b78 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/providers/model_provider.py @@ -0,0 +1,220 @@ +""" +Model provider for ragbits-chat Pydantic models. + +This module provides the RagbitsChatModelProvider class for importing and organizing +Pydantic models from the ragbits-chat package. +""" + +from enum import Enum +from typing import cast + +from pydantic import BaseModel + +from ragbits.chat.interface.types import AuthType + + +class RagbitsChatModelProvider: + """ + Provider for importing and organizing ragbits-chat Pydantic models. + + This provider handles the import of all Pydantic models from ragbits-chat package, + provides caching for performance, and organizes models into logical categories. + """ + + def __init__(self) -> None: + self._models_cache: dict[str, type[BaseModel | Enum]] | None = None + self._categories_cache: dict[str, list[str]] | None = None + + def get_models(self) -> dict[str, type[BaseModel | Enum]]: + """ + Import and return all ragbits-chat models. + + Returns: + Dictionary mapping model names to their classes + + Raises: + RuntimeError: If models cannot be imported + """ + if self._models_cache is not None: + return self._models_cache + + try: + from ragbits.chat.auth.types import ( + CredentialsLoginRequest, + JWTToken, + LoginRequest, + LoginResponse, + LogoutRequest, + User, + ) + from ragbits.chat.interface.forms import UserSettings + from ragbits.chat.interface.types import ( + AuthenticationConfig, + ChatContext, + ChatMessageRequest, + ChatResponseType, + ConfigResponse, + FeedbackConfig, + FeedbackItem, + FeedbackRequest, + FeedbackResponse, + FeedbackType, + Image, + LiveUpdate, + LiveUpdateContent, + LiveUpdateType, + Message, + MessageRole, + Reference, + StateUpdate, + ) + from ragbits.chat.interface.ui_customization import ( + HeaderCustomization, + PageMetaCustomization, + UICustomization, + ) + + self._models_cache = { + # Enums + "ChatResponseType": ChatResponseType, + "FeedbackType": FeedbackType, + "LiveUpdateType": LiveUpdateType, + "MessageRole": MessageRole, + # Core data models + "ChatContext": ChatContext, + "LiveUpdate": LiveUpdate, + "LiveUpdateContent": LiveUpdateContent, + "Message": Message, + "Reference": Reference, + "ServerState": StateUpdate, + "FeedbackItem": FeedbackItem, + "Image": Image, + # Configuration models + "HeaderCustomization": HeaderCustomization, + "UICustomization": UICustomization, + "PageMetaCustomization": PageMetaCustomization, + "UserSettings": UserSettings, + "FeedbackConfig": FeedbackConfig, # Current from types.py (not deprecated forms.py) + # API response models + "ConfigResponse": ConfigResponse, + "FeedbackResponse": FeedbackResponse, + # API request models + "ChatRequest": ChatMessageRequest, + "FeedbackRequest": FeedbackRequest, + # Auth + "AuthType": AuthType, + "AuthenticationConfig": AuthenticationConfig, + "CredentialsLoginRequest": CredentialsLoginRequest, + "JWTToken": JWTToken, + "LoginRequest": LoginRequest, + "LoginResponse": LoginResponse, + "LogoutRequest": LogoutRequest, + "User": User, + } + + return self._models_cache + + except ImportError as e: + raise RuntimeError( + f"Error importing ragbits-chat models: {e}. " + "Make sure the ragbits-chat package is properly installed." + ) from e + + def get_categories(self) -> dict[str, list[str]]: + """ + Get models organized by category. + + Returns: + Dictionary mapping category names to lists of model names + """ + if self._categories_cache is not None: + return self._categories_cache + + self._categories_cache = { + "enums": [model_name for model_name, model in self._models_cache.items() if issubclass(model, Enum)] + if self._models_cache + else [], + "core_data": [ + "ChatContext", + "LiveUpdate", + "LiveUpdateContent", + "Message", + "Reference", + "ServerState", + "FeedbackItem", + "Image", + "JWTToken", + "User", + ], + "configuration": [ + "HeaderCustomization", + "UICustomization", + "UserSettings", + "FeedbackConfig", + "AuthenticationConfig", + ], + "responses": [ + "FeedbackResponse", + "ConfigResponse", + "LoginResponse", + ], + "requests": [ + "ChatRequest", + "FeedbackRequest", + "CredentialsLoginRequest", + "LoginRequest", + "LogoutRequest", + ], + } + + return self._categories_cache + + def get_models_by_category(self, category: str) -> dict[str, type[BaseModel | Enum]]: + """ + Get models filtered by category. + + Args: + category: Category name (enums, core_data, api, configuration) + + Returns: + Dictionary of models in the specified category + + Raises: + ValueError: If category is not recognized + """ + all_models = self.get_models() + categories = self.get_categories() + + if category not in categories: + raise ValueError(f"Unknown category: {category}. Available: {list(categories.keys())}") + + return {name: all_models[name] for name in categories[category] if name in all_models} + + def get_enum_models(self) -> dict[str, type[Enum]]: + """ + Get only enum models. + + Returns: + Dictionary of enum models + """ + return cast(dict[str, type[Enum]], self.get_models_by_category("enums")) + + def get_pydantic_models(self) -> dict[str, type[BaseModel | Enum]]: + """ + Get only Pydantic models (excluding enums). + + Returns: + Dictionary of Pydantic models + """ + all_models = self.get_models() + enum_names = set(self.get_categories()["enums"]) + return {name: model for name, model in all_models.items() if name not in enum_names} + + def clear_cache(self) -> None: + """ + Clear the internal cache, forcing re-import on next access. + + This can be useful during development or testing. + """ + self._models_cache = None + self._categories_cache = None diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-C_MUoo-o.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-C_MUoo-o.js new file mode 100644 index 0000000000..9548324e1a --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-C_MUoo-o.js @@ -0,0 +1 @@ +import{r as s,j as a,b0 as x,aZ as h,h as g,aV as m,b1 as p,b2 as v}from"./index-B2ElHFiq.js";import{a as u}from"./authStore-CjObAEhP.js";function j({children:e}){const[o]=s.useState(()=>u);return a.jsx(x.Provider,{value:o,children:e})}function A(){const{token:e,tokenExpiration:o,logout:r}=h(u,t=>t),n=g(t=>t.isLoading),c=m(),l=s.useRef(n);s.useEffect(()=>{l.current=n},[n]);const i=s.useCallback(()=>{const t=()=>{l.current?setTimeout(t,500):(r(),c("/login"))};t()},[r,c]);return s.useEffect(()=>{if(!e||!o)return;const t=Date.now(),f=o-t;if(f<=0){i();return}const d=setTimeout(()=>{i()},f);return()=>clearTimeout(d)},[e,o,i]),null}function S({children:e}){const o=p(),r=h(u,n=>n.isAuthenticated);return o.pathname==="/login"?e:r?a.jsxs(j,{children:[e,a.jsx(A,{})]}):a.jsx(v,{to:"/login",replace:!0})}export{S as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-Ctlh-0af.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-Ctlh-0af.js new file mode 100644 index 0000000000..b620a9a8b4 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-Ctlh-0af.js @@ -0,0 +1 @@ +import{c as C,aV as N,i as h,r as y,j as t,aW as n,aN as I,D as o,e as s,I as i,aX as O,aY as m}from"./index-B2ElHFiq.js";function D(){const{selectConversation:u,deleteConversation:x,newConversation:v}=C(),r=N(),p=h(e=>e.conversations),f=h(e=>e.currentConversation),[a,b]=y.useState(!1),l=a?"Open sidebar":"Close sidebar",g=t.jsx(i,{icon:"heroicons:pencil-square"}),j=()=>{const e=v();r(m(e))},w=e=>{u(e),r(m(e))};return t.jsx(n.div,{initial:!1,animate:{maxWidth:a?"4.5rem":"16rem"},className:"rounded-l-medium border-small border-divider ml-4 flex h-full w-full min-w-[4.5rem] flex-grow flex-col space-y-2 overflow-hidden border-r-0 p-4 py-3",children:t.jsxs(I,{children:[t.jsx(o,{content:l,placement:"bottom",children:t.jsx(s,{isIconOnly:!0,"aria-label":l,variant:"ghost",onPress:()=>b(e=>!e),"data-testid":"chat-history-collapse-button",className:"ml-auto",children:t.jsx(i,{icon:a?"heroicons:chevron-double-right":"heroicons:chevron-double-left"})})},"collapse-button"),!a&&t.jsx(n.p,{initial:!1,animate:{opacity:1,width:"100%",height:"auto"},exit:{opacity:0,width:0,height:0,marginBottom:0},className:"text-small text-foreground truncate leading-5 font-semibold",children:"Conversations"},"conversations"),t.jsx(o,{content:"New conversation",placement:"right",children:t.jsx(s,{"aria-label":"New conversation",variant:"ghost",onPress:j,"data-testid":"chat-history-clear-chat-button",startContent:g,isIconOnly:a,children:!a&&"New conversation"})},"new-conversation-button"),!a&&t.jsx(n.div,{className:"mt-2 flex flex-1 flex-col gap-2 overflow-auto overflow-x-hidden",initial:!1,animate:{opacity:1,width:"100%"},exit:{opacity:0,width:0},children:Object.entries(p).reverse().map(([e,c])=>{if(O(c))return null;const d=e===f;return t.jsxs("div",{className:"flex gap-2",children:[t.jsx(s,{variant:d?"solid":"light","aria-label":`Select conversation ${e}`,"data-active":d,onPress:()=>w(e),title:e,"data-testid":`select-conversation-${e}`,children:t.jsx("div",{className:"text-small truncate",children:c.conversationId})}),t.jsx(o,{content:"Delete conversation",placement:"right",children:t.jsx(s,{isIconOnly:!0,"aria-label":`Delete conversation ${e}`,onPress:()=>x(e),variant:"ghost","data-testid":`delete-conversation-${e}`,children:t.jsx(i,{icon:"heroicons:trash"})})})]},e)})},"conversation-list")]})})}export{D as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-DwbDBvLx.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-DwbDBvLx.js deleted file mode 100644 index ddee59d0d9..0000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-DwbDBvLx.js +++ /dev/null @@ -1 +0,0 @@ -import{a as C,aU as N,h,r as y,j as t,aV as n,aM as I,D as o,d as s,I as i,aW as O,aX as m}from"./index-CziAk_QW.js";function D(){const{selectConversation:u,deleteConversation:x,newConversation:v}=C(),r=N(),p=h(e=>e.conversations),f=h(e=>e.currentConversation),[a,b]=y.useState(!1),l=a?"Open sidebar":"Close sidebar",g=t.jsx(i,{icon:"heroicons:pencil-square"}),j=()=>{const e=v();r(m(e))},w=e=>{u(e),r(m(e))};return t.jsx(n.div,{initial:!1,animate:{maxWidth:a?"4.5rem":"16rem"},className:"rounded-l-medium border-small border-divider ml-4 flex h-full w-full min-w-[4.5rem] flex-grow flex-col space-y-2 overflow-hidden border-r-0 p-4 py-3",children:t.jsxs(I,{children:[t.jsx(o,{content:l,placement:"bottom",children:t.jsx(s,{isIconOnly:!0,"aria-label":l,variant:"ghost",onPress:()=>b(e=>!e),"data-testid":"chat-history-collapse-button",className:"ml-auto",children:t.jsx(i,{icon:a?"heroicons:chevron-double-right":"heroicons:chevron-double-left"})})},"collapse-button"),!a&&t.jsx(n.p,{initial:!1,animate:{opacity:1,width:"100%",height:"auto"},exit:{opacity:0,width:0,height:0,marginBottom:0},className:"text-small text-foreground truncate leading-5 font-semibold",children:"Conversations"},"conversations"),t.jsx(o,{content:"New conversation",placement:"right",children:t.jsx(s,{"aria-label":"New conversation",variant:"ghost",onPress:j,"data-testid":"chat-history-clear-chat-button",startContent:g,isIconOnly:a,children:!a&&"New conversation"})},"new-conversation-button"),!a&&t.jsx(n.div,{className:"mt-2 flex flex-1 flex-col gap-2 overflow-auto overflow-x-hidden",initial:!1,animate:{opacity:1,width:"100%"},exit:{opacity:0,width:0},children:Object.entries(p).reverse().map(([e,c])=>{if(O(c))return null;const d=e===f;return t.jsxs("div",{className:"flex gap-2",children:[t.jsx(s,{variant:d?"solid":"light","aria-label":`Select conversation ${e}`,"data-active":d,onPress:()=>w(e),title:e,"data-testid":`select-conversation-${e}`,children:t.jsx("div",{className:"text-small truncate",children:c.conversationId})}),t.jsx(o,{content:"Delete conversation",placement:"right",children:t.jsx(s,{isIconOnly:!0,"aria-label":`Delete conversation ${e}`,onPress:()=>x(e),variant:"ghost","data-testid":`delete-conversation-${e}`,children:t.jsx(i,{icon:"heroicons:trash"})})})]},e)})},"conversation-list")]})})}export{D as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-Qtpz3wfl.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-Qtpz3wfl.js deleted file mode 100644 index 2bb6c81de7..0000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-Qtpz3wfl.js +++ /dev/null @@ -1 +0,0 @@ -import{u as j,g as C,a as v,h as O,b,r as y,j as t,D as S,d as a,I as _,m as D,e as F,f as E}from"./index-CziAk_QW.js";import{u as N,g as l,v as n,F as P}from"./index-D3YcCtkW.js";import{m as R}from"./chunk-IGSAU2ZA-BqeVrv-6.js";function z(){const{isOpen:c,onOpen:d,onClose:o}=j(),u=C(e=>e.chatOptions),{setChatOptions:r,initializeChatOptions:i}=v(),m=O(e=>e.currentConversation),{config:{user_settings:h}}=b(),s=h?.form,f=()=>{o()},p=e=>{r(e.formData),o()},x=()=>{if(!s)return;const e=l(n,s);r(e),o()},g=N();return y.useEffect(()=>{if(!s)return;const e=l(n,s);i(e)},[i,s,m]),s?t.jsxs(t.Fragment,{children:[t.jsx(S,{content:"Chat Options",placement:"bottom",children:t.jsx(a,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open chat options",onPress:d,"data-testid":"open-chat-options",children:t.jsx(_,{icon:"heroicons:cog-6-tooth"})})}),t.jsx(D,{isOpen:c,onOpenChange:f,children:t.jsx(F,{children:e=>t.jsxs(t.Fragment,{children:[t.jsx(R,{className:"text-default-900 flex flex-col gap-1",children:s.title||"Chat Options"}),t.jsx(E,{children:t.jsx("div",{className:"flex flex-col gap-4",children:t.jsx(P,{schema:s,validator:n,formData:u,onSubmit:p,transformErrors:g,liveValidate:!0,children:t.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[t.jsx(a,{className:"mr-auto",color:"primary",variant:"light",onPress:x,"aria-label":"Restore default user settings",children:"Restore defaults"}),t.jsx(a,{color:"danger",variant:"light",onPress:e,"aria-label":"Close chat options form",children:"Cancel"}),t.jsx(a,{color:"primary",type:"submit","aria-label":"Save chat options","data-testid":"chat-options-submit",children:"Save"})]})})})})]})})})]}):null}export{z as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-v2JnxfkR.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-v2JnxfkR.js new file mode 100644 index 0000000000..00eef6bbb3 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-v2JnxfkR.js @@ -0,0 +1 @@ +import{b as j,h as C,c as v,i as O,d as b,r as y,j as t,D as S,e as a,I as _,m as D,f as F,g as E}from"./index-B2ElHFiq.js";import{u as N,g as l,v as n,F as P}from"./index-CCuxtYgU.js";import{m as R}from"./chunk-IGSAU2ZA-BdPLoTgw.js";import"./chunk-SSA7SXE4-ibe31s4U.js";function A(){const{isOpen:c,onOpen:d,onClose:o}=j(),u=C(e=>e.chatOptions),{setChatOptions:r,initializeChatOptions:i}=v(),m=O(e=>e.currentConversation),{config:{user_settings:h}}=b(),s=h?.form,f=()=>{o()},p=e=>{r(e.formData),o()},x=()=>{if(!s)return;const e=l(n,s);r(e),o()},g=N();return y.useEffect(()=>{if(!s)return;const e=l(n,s);i(e)},[i,s,m]),s?t.jsxs(t.Fragment,{children:[t.jsx(S,{content:"Chat Options",placement:"bottom",children:t.jsx(a,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open chat options",onPress:d,"data-testid":"open-chat-options",children:t.jsx(_,{icon:"heroicons:cog-6-tooth"})})}),t.jsx(D,{isOpen:c,onOpenChange:f,children:t.jsx(F,{children:e=>t.jsxs(t.Fragment,{children:[t.jsx(R,{className:"text-default-900 flex flex-col gap-1",children:s.title||"Chat Options"}),t.jsx(E,{children:t.jsx("div",{className:"flex flex-col gap-4",children:t.jsx(P,{schema:s,validator:n,formData:u,onSubmit:p,transformErrors:g,liveValidate:!0,children:t.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[t.jsx(a,{className:"mr-auto",color:"primary",variant:"light",onPress:x,"aria-label":"Restore default user settings",children:"Restore defaults"}),t.jsx(a,{color:"danger",variant:"light",onPress:e,"aria-label":"Close chat options form",children:"Cancel"}),t.jsx(a,{color:"primary",type:"submit","aria-label":"Save chat options","data-testid":"chat-options-submit",children:"Save"})]})})})})]})})})]}):null}export{A as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-AHbpBR0A.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-AHbpBR0A.js new file mode 100644 index 0000000000..7b7420f703 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-AHbpBR0A.js @@ -0,0 +1 @@ +import{u as v,p as C,a as T,b as _,c as S,d as w,r as D,F as o,j as e,D as f,e as r,I as p,m as E,f as I,g as O}from"./index-B2ElHFiq.js";import{u as A,F as N,v as L}from"./index-CCuxtYgU.js";import{m as P}from"./chunk-IGSAU2ZA-BdPLoTgw.js";import"./chunk-SSA7SXE4-ibe31s4U.js";const R=(t,i)=>{const[l,n]=v(a=>a.token),c=C(i,a=>{!a?.headers||!n||(a.headers.Authorization=`Bearer ${l}`)});return T(t,c)};function W({message:t}){const{isOpen:i,onOpen:l,onClose:n}=_(),{mergeExtensions:c}=S(),{config:{feedback:a}}=w(),[d,k]=D.useState(o.Like),x=R("/api/feedback",{headers:{"Content-Type":"application/json"},method:"POST"}),u=a[d].form,j=()=>{n()},m=async s=>{if(!t.serverId)throw new Error('Feedback is only available for messages with "serverId" set');try{await x.call({body:{message_id:t.serverId,feedback:d,payload:s??{}}})}catch(g){console.error(g)}},y=s=>{c(t.id,{feedbackType:d}),m(s.formData),n()},h=async s=>{if(k(s),a[s].form===null){await m(null);return}l()},F=A();if(!u)return null;const b=t.extensions?.feedbackType;return e.jsxs(e.Fragment,{children:[a.like.enabled&&e.jsx(f,{content:"Like",placement:"bottom",children:e.jsx(r,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as helpful",onPress:()=>h(o.Like),"data-testid":"feedback-like",children:e.jsx(p,{icon:b===o.Like?"heroicons:hand-thumb-up-solid":"heroicons:hand-thumb-up"})})}),a.dislike.enabled&&e.jsx(f,{content:"Dislike",placement:"bottom",children:e.jsx(r,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as unhelpful",onPress:()=>h(o.Dislike),"data-testid":"feedback-dislike",children:e.jsx(p,{icon:b===o.Dislike?"heroicons:hand-thumb-down-solid":"heroicons:hand-thumb-down"})})}),e.jsx(E,{isOpen:i,onOpenChange:j,children:e.jsx(I,{children:s=>e.jsxs(e.Fragment,{children:[e.jsx(P,{className:"text-default-900 flex flex-col gap-1",children:u.title}),e.jsx(O,{children:e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx(N,{schema:u,validator:L,onSubmit:y,transformErrors:F,liveValidate:!0,children:e.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[e.jsx(r,{color:"danger",variant:"light",onPress:s,"aria-label":"Close feedback form",children:"Cancel"}),e.jsx(r,{color:"primary",type:"submit","aria-label":"Submit feedback","data-testid":"feedback-submit",children:"Submit"})]})})})})]})})})]})}export{W as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-JUvhaJp1.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-JUvhaJp1.js deleted file mode 100644 index 6abf7856f7..0000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-JUvhaJp1.js +++ /dev/null @@ -1 +0,0 @@ -import{u as I,a as v,b as E,r as C,F as s,c as S,j as e,D as u,d as n,I as b,m as T,e as _,f as w}from"./index-CziAk_QW.js";import{u as D,F as O,v as L}from"./index-D3YcCtkW.js";import{m as K}from"./chunk-IGSAU2ZA-BqeVrv-6.js";function A({message:t}){const{isOpen:f,onOpen:h,onClose:i}=I(),{mergeExtensions:p}=v(),{config:{feedback:o}}=E(),[r,x]=C.useState(s.LIKE),k=S("/api/feedback",{headers:{"Content-Type":"application/json"},method:"POST"}),l=o[r].form,j=()=>{i()},c=async a=>{if(!t.serverId)throw new Error('Feedback is only available for messages with "serverId" set');try{await k.call({body:{message_id:t.serverId,feedback:r,payload:a}})}catch(g){console.error(g)}},y=a=>{p(t.id,{feedbackType:r}),c(a.formData),i()},d=async a=>{if(x(a),o[a].form===null){await c(null);return}h()},F=D();if(!l)return null;const m=t.extensions?.feedbackType;return e.jsxs(e.Fragment,{children:[o.like.enabled&&e.jsx(u,{content:"Like",placement:"bottom",children:e.jsx(n,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as helpful",onPress:()=>d(s.LIKE),"data-testid":"feedback-like",children:e.jsx(b,{icon:m===s.LIKE?"heroicons:hand-thumb-up-solid":"heroicons:hand-thumb-up"})})}),o.dislike.enabled&&e.jsx(u,{content:"Dislike",placement:"bottom",children:e.jsx(n,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as unhelpful",onPress:()=>d(s.DISLIKE),"data-testid":"feedback-dislike",children:e.jsx(b,{icon:m===s.DISLIKE?"heroicons:hand-thumb-down-solid":"heroicons:hand-thumb-down"})})}),e.jsx(T,{isOpen:f,onOpenChange:j,children:e.jsx(_,{children:a=>e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"text-default-900 flex flex-col gap-1",children:l.title}),e.jsx(w,{children:e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx(O,{schema:l,validator:L,onSubmit:y,transformErrors:F,liveValidate:!0,children:e.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[e.jsx(n,{color:"danger",variant:"light",onPress:a,"aria-label":"Close feedback form",children:"Cancel"}),e.jsx(n,{color:"primary",type:"submit","aria-label":"Submit feedback","data-testid":"feedback-submit",children:"Submit"})]})})})})]})})})]})}export{A as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-Cw57S6F2.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-Cw57S6F2.js new file mode 100644 index 0000000000..6dec1d7fdc --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-Cw57S6F2.js @@ -0,0 +1 @@ +import{r as u,a_ as w,a as y,aZ as S,aV as j,j as e,aN as b,aW as v,e as C,p as N}from"./index-B2ElHFiq.js";import{a as P}from"./authStore-CjObAEhP.js";import{i as c}from"./chunk-SSA7SXE4-ibe31s4U.js";const _=()=>{const a=u.useContext(w);if(!a)throw new Error("useInitializeUserStore must be used within a HistoryStoreContextProvider");return a.initializeUserStore};function R(){const[a,m]=u.useState({username:"",password:""}),n=y("/api/auth/login",{headers:{"Content-Type":"application/json"},method:"POST"}),p=S(P,s=>s.login),g=j(),x=_(),[f,o]=u.useState(!1),h=async s=>{o(!1),s.preventDefault(),s.stopPropagation();const r=new FormData(s.currentTarget),i=r.get("username"),l=r.get("password");try{const t=await n.call({body:{username:i,password:l}});if(!t.success||!t.jwt_token||!t.user){o(!0);return}p(t.user,t.jwt_token),x(t.user.user_id),g("/")}catch(t){o(!0),console.error("Failed to login",t)}},d=s=>r=>m(i=>N(i,l=>{l[s]=r.target.value}));return e.jsx("div",{className:"flex h-screen w-screen",children:e.jsxs("form",{className:"rounded-medium border-small border-divider m-auto flex w-full max-w-xs flex-col gap-4 p-4",onSubmit:h,children:[e.jsxs("div",{className:"text-small",children:[e.jsx("div",{className:"text-foreground truncate leading-5 font-semibold",children:"Sign in"}),e.jsx("div",{className:"text-default-500 truncate leading-5 font-normal",children:"Sign in to start chatting."})]}),e.jsx(c,{label:"Username",name:"username",labelPlacement:"outside",placeholder:"Your username",required:!0,isRequired:!0,value:a.username,onChange:d("username")}),e.jsx(c,{label:"Password",labelPlacement:"outside",id:"password",name:"password",type:"password",placeholder:"••••••••",required:!0,isRequired:!0,value:a.password,onChange:d("password")}),e.jsx(b,{children:f&&n.error&&!n.isLoading&&e.jsx(v.div,{className:"text-small text-danger",initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3,ease:"easeOut"},children:"We couldn't sign you in. Please verify your credentials and try again."})}),e.jsx(C,{type:"submit",color:a.password&&a.username?"primary":"default",children:"Sign in"})]})})}export{R as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-DRWrO0DL.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-DRWrO0DL.js new file mode 100644 index 0000000000..0992a18610 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-DRWrO0DL.js @@ -0,0 +1 @@ +import{a as c,aZ as s,aV as i,j as o,D as g,e as d,I as p}from"./index-B2ElHFiq.js";import{a as n}from"./authStore-CjObAEhP.js";function m(){const r=c("/api/auth/logout",{headers:{"Content-Type":"application/json"},method:"POST"}),l=s(n,t=>t.logout),e=s(n,t=>t.token?.access_token),a=i(),u=async()=>{if(!e){a("/login");return}try{if(!(await r.call({body:{token:e}})).success)return;l(),a("/login")}catch(t){console.error("Failed to logout",t)}};return o.jsx(g,{content:"Logout",placement:"bottom",children:o.jsx(d,{isIconOnly:!0,"aria-label":"Logout",variant:"ghost",onPress:u,"data-testid":"logout-button",children:o.jsx(p,{icon:"heroicons:arrow-left-start-on-rectangle"})})})}export{m as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-BdWYUpIl.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-CWaGPVMq.js similarity index 71% rename from packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-BdWYUpIl.js rename to packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-CWaGPVMq.js index 479a83a89a..a0c3bd3e6e 100644 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-BdWYUpIl.js +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-CWaGPVMq.js @@ -1 +1 @@ -import{aR as Gr,u as Jr,r as hr,h as Wr,j as I,D as qr,d as gr,I as Yr,m as Kr,e as Lr,f as Qr,aS as Vr}from"./index-CziAk_QW.js";import{m as Xr}from"./chunk-IGSAU2ZA-BqeVrv-6.js";var T=Uint8Array,$=Uint16Array,jr=Int32Array,lr=new T([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),sr=new T([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),pr=new T([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),_r=function(r,e){for(var a=new $(31),n=0;n<31;++n)a[n]=e+=1<>1|(y&21845)<<1;Q=(Q&52428)>>2|(Q&13107)<<2,Q=(Q&61680)>>4|(Q&3855)<<4,Cr[y]=((Q&65280)>>8|(Q&255)<<8)>>1}var q=function(r,e,a){for(var n=r.length,t=0,o=new $(e);t>h]=c}else for(l=new $(n),t=0;t>15-r[t]);return l},V=new T(288);for(var y=0;y<144;++y)V[y]=8;for(var y=144;y<256;++y)V[y]=9;for(var y=256;y<280;++y)V[y]=7;for(var y=280;y<288;++y)V[y]=8;var fr=new T(32);for(var y=0;y<32;++y)fr[y]=5;var re=q(V,9,0),ee=q(V,9,1),ae=q(fr,5,0),ne=q(fr,5,1),wr=function(r){for(var e=r[0],a=1;ae&&(e=r[a]);return e},J=function(r,e,a){var n=e/8|0;return(r[n]|r[n+1]<<8)>>(e&7)&a},xr=function(r,e){var a=e/8|0;return(r[a]|r[a+1]<<8|r[a+2]<<16)>>(e&7)},Ar=function(r){return(r+7)/8|0},cr=function(r,e,a){return(e==null||e<0)&&(e=0),(a==null||a>r.length)&&(a=r.length),new T(r.subarray(e,a))},te=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],G=function(r,e,a){var n=new Error(e||te[r]);if(n.code=r,Error.captureStackTrace&&Error.captureStackTrace(n,G),!a)throw n;return n},oe=function(r,e,a,n){var t=r.length,o=0;if(!t||e.f&&!e.l)return a||new T(0);var v=!a,l=v||e.i!=2,h=e.i;v&&(a=new T(t*3));var c=function(ar){var nr=a.length;if(ar>nr){var rr=new T(Math.max(nr*2,ar));rr.set(a),a=rr}},f=e.f||0,i=e.p||0,u=e.b||0,x=e.l,S=e.d,w=e.m,d=e.n,m=t*8;do{if(!x){f=J(r,i,1);var z=J(r,i+1,3);if(i+=3,z)if(z==1)x=ee,S=ne,w=9,d=5;else if(z==2){var _=J(r,i,31)+257,A=J(r,i+10,15)+4,g=_+J(r,i+5,31)+1;i+=14;for(var s=new T(g),M=new T(19),C=0;C>4;if(j<16)s[C++]=j;else{var E=0,b=0;for(j==16?(b=3+J(r,i,3),i+=2,E=s[C-1]):j==17?(b=3+J(r,i,7),i+=3):j==18&&(b=11+J(r,i,127),i+=7);b--;)s[C++]=E}}var R=s.subarray(0,_),F=s.subarray(_);w=wr(R),d=wr(F),x=q(R,w,1),S=q(F,d,1)}else G(1);else{var j=Ar(i)+4,N=r[j-4]|r[j-3]<<8,O=j+N;if(O>t){h&&G(0);break}l&&c(u+N),a.set(r.subarray(j,O),u),e.b=u+=N,e.p=i=O*8,e.f=f;continue}if(i>m){h&&G(0);break}}l&&c(u+131072);for(var er=(1<>4;if(i+=E&15,i>m){h&&G(0);break}if(E||G(2),H<256)a[u++]=H;else if(H==256){Y=i,x=null;break}else{var P=H-254;if(H>264){var C=H-257,p=lr[C];P=J(r,i,(1<>4;W||G(3),i+=W&15;var F=Zr[X];if(X>3){var p=sr[X];F+=xr(r,i)&(1<m){h&&G(0);break}l&&c(u+131072);var Z=u+P;if(u>8},tr=function(r,e,a){a<<=e&7;var n=e/8|0;r[n]|=a,r[n+1]|=a>>8,r[n+2]|=a>>16},yr=function(r,e){for(var a=[],n=0;nu&&(u=o[n].s);var x=new $(u+1),S=Tr(a[f-1],x,0);if(S>e){var n=0,w=0,d=S-e,m=1<e)w+=m-(1<>=d;w>0;){var j=o[n].s;x[j]=0&&w;--n){var N=o[n].s;x[N]==e&&(--x[N],++w)}S=e}return{t:new T(x),l:S}},Tr=function(r,e,a){return r.s==-1?Math.max(Tr(r.l,e,a+1),Tr(r.r,e,a+1)):e[r.s]=a},Er=function(r){for(var e=r.length;e&&!r[--e];);for(var a=new $(++e),n=0,t=r[0],o=1,v=function(h){a[n++]=h},l=1;l<=e;++l)if(r[l]==t&&l!=e)++o;else{if(!t&&o>2){for(;o>138;o-=138)v(32754);o>2&&(v(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(v(t),--o;o>6;o-=6)v(8304);o>2&&(v(o-3<<5|8208),o=0)}for(;o--;)v(t);o=1,t=r[l]}return{c:a.subarray(0,n),n:e}},or=function(r,e){for(var a=0,n=0;n>8,r[t+2]=r[t]^255,r[t+3]=r[t+1]^255;for(var o=0;o4&&!M[pr[k-1]];--k);var L=c+5<<3,U=or(t,V)+or(o,fr)+v,D=or(t,u)+or(o,w)+v+14+3*k+or(A,M)+2*A[16]+3*A[17]+7*A[18];if(h>=0&&L<=U&&L<=D)return Ur(e,f,r.subarray(h,h+c));var E,b,R,F;if(K(e,f,1+(D15&&(K(e,f,H[g]>>5&127),f+=H[g]>>12)}}else E=re,b=V,R=ae,F=fr;for(var g=0;g255){var P=p>>18&31;tr(e,f,E[P+257]),f+=b[P+257],P>7&&(K(e,f,p>>23&31),f+=lr[P]);var W=p&31;tr(e,f,R[W]),f+=F[W],W>3&&(tr(e,f,p>>5&8191),f+=sr[W])}else tr(e,f,E[p]),f+=b[p]}return tr(e,f,E[256]),f+b[256]},fe=new jr([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Hr=new T(0),ie=function(r,e,a,n,t,o){var v=o.z||r.length,l=new T(n+v+5*(1+Math.ceil(v/7e3))+t),h=l.subarray(n,l.length-t),c=o.l,f=(o.r||0)&7;if(e){f&&(h[0]=o.r>>3);for(var i=fe[e-1],u=i>>13,x=i&8191,S=(1<7e3||M>24576)&&(E>423||!c)){f=Fr(r,h,0,N,O,_,g,M,k,s-k,f),M=A=g=0,k=s;for(var b=0;b<286;++b)O[b]=0;for(var b=0;b<30;++b)_[b]=0}var R=2,F=0,er=x,B=U-D&32767;if(E>2&&L==j(s-B))for(var Y=Math.min(u,E)-1,H=Math.min(32767,s),P=Math.min(258,E);B<=H&&--er&&U!=D;){if(r[s+R]==r[s+R-B]){for(var p=0;pR){if(R=p,F=B,p>Y)break;for(var W=Math.min(B,p-2),X=0,b=0;bX&&(X=vr,D=Z)}}}U=D,D=w[U],B+=U-D&32767}if(F){N[M++]=268435456|mr[R]<<18|Mr[F];var ar=mr[R]&31,nr=Mr[F]&31;g+=lr[ar]+sr[nr],++O[257+ar],++_[nr],C=s+R,++A}else N[M++]=r[s],++O[r[s]]}}for(s=Math.max(s,C);s=v&&(h[f/8|0]=c,rr=v),f=Ur(h,f+1,r.subarray(s,rr))}o.i=v}return cr(l,0,n+Ar(f)+t)},Pr=function(){var r=1,e=0;return{p:function(a){for(var n=r,t=e,o=a.length|0,v=0;v!=o;){for(var l=Math.min(v+2655,o);v>16),t=(t&65535)+15*(t>>16)}r=n,e=t},d:function(){return r%=65521,e%=65521,(r&255)<<24|(r&65280)<<8|(e&255)<<8|e>>8}}},ve=function(r,e,a,n,t){if(!t&&(t={l:1},e.dictionary)){var o=e.dictionary.subarray(-32768),v=new T(o.length+r.length);v.set(o),v.set(r,o.length),r=v,t.w=o.length}return ie(r,e.level==null?6:e.level,e.mem==null?t.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+e.mem,a,n,t)},$r=function(r,e,a){for(;a;++e)r[e]=a,a>>>=8},le=function(r,e){var a=e.level,n=a==0?0:a<6?1:a==9?3:2;if(r[0]=120,r[1]=n<<6|(e.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,e.dictionary){var t=Pr();t.p(e.dictionary),$r(r,2,t.d())}},se=function(r,e){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&G(6,"invalid zlib data"),(r[1]>>5&1)==1&&G(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function ce(r,e){e||(e={});var a=Pr();a.p(r);var n=ve(r,e,e.dictionary?6:2,4);return le(n,e),$r(n,n.length-4,a.d()),n}function ue(r,e){return oe(r.subarray(se(r),-4),{i:2},e,e)}var Or=typeof TextEncoder<"u"&&new TextEncoder,dr=typeof TextDecoder<"u"&&new TextDecoder,he=0;try{dr.decode(Hr,{stream:!0}),he=1}catch{}var ge=function(r){for(var e="",a=0;;){var n=r[a++],t=(n>127)+(n>223)+(n>239);if(a+t>r.length)return{s:e,r:cr(r,a-1)};t?t==3?(n=((n&15)<<18|(r[a++]&63)<<12|(r[a++]&63)<<6|r[a++]&63)-65536,e+=String.fromCharCode(55296|n>>10,56320|n&1023)):t&1?e+=String.fromCharCode((n&31)<<6|r[a++]&63):e+=String.fromCharCode((n&15)<<12|(r[a++]&63)<<6|r[a++]&63):e+=String.fromCharCode(n)}};function kr(r,e){if(e){for(var a=new T(r.length),n=0;n>1)),v=0,l=function(f){o[v++]=f},n=0;no.length){var h=new T(v+8+(t-n<<1));h.set(o),o=h}var c=r.charCodeAt(n);c<128||e?l(c):c<2048?(l(192|c>>6),l(128|c&63)):c>55295&&c<57344?(c=65536+(c&1047552)|r.charCodeAt(++n)&1023,l(240|c>>18),l(128|c>>12&63),l(128|c>>6&63),l(128|c&63)):(l(224|c>>12),l(128|c>>6&63),l(128|c&63))}return cr(o,0,v)}function Ir(r,e){if(e){for(var a="",n=0;n`,br=``;function xe(r){if(typeof r!="object"||r===null)return!1;const e=r;return!(typeof e.history!="object"||"followupMessages"in e&&typeof e.followupMessages!="object"||"chatOptions"in e&&typeof e.chatOptions!="object"||"serverState"in e&&typeof e.serverState!="object"||"conversationId"in e&&typeof e.conversationId!="string"&&typeof e.conversationId!="object")}function be(){const{restore:r}=Gr(),{isOpen:e,onOpen:a,onClose:n}=Jr(),[t,o]=hr.useState(Nr),v=hr.useRef(null),{getCurrentConversation:l}=Wr(f=>f.primitives),h=()=>{const{chatOptions:f,history:i,serverState:u,conversationId:x,followupMessages:S}=l(),w=Vr({chatOptions:f,history:i,serverState:u,conversationId:x,followupMessages:S}),d=kr(`${Sr}${JSON.stringify(w)}${br}`),m=btoa(Ir(ce(d,{level:9}),!0));navigator.clipboard.writeText(m),o(we),n(),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{o(Nr)},2e3)},c=()=>{n()};return hr.useEffect(()=>{const f=i=>{if(!i.clipboardData||!i.clipboardData.types.includes("text/plain"))return;const x=i.clipboardData.getData("text/plain");try{const S=atob(x);if(!S.startsWith("xÚ"))return;const w=Ir(ue(kr(S,!0)));if(!w.startsWith(Sr)||!w.endsWith(br))return;i.preventDefault(),i.stopPropagation();const d=w.slice(Sr.length,-br.length),m=JSON.parse(d);if(!xe(m))return;r(m.history,m.followupMessages,m.chatOptions,m.serverState,m.conversationId)}catch(S){console.error("Couldn't parse pasted string as valid Ragbits state",S)}};return window.addEventListener("paste",f),()=>{window.removeEventListener("paste",f)}}),I.jsxs(I.Fragment,{children:[I.jsx(qr,{content:"Share conversation",placement:"bottom",children:I.jsx(gr,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Share conversation",onPress:a,children:I.jsx(Yr,{icon:t})})}),I.jsx(Kr,{isOpen:e,onOpenChange:c,children:I.jsx(Lr,{children:f=>I.jsxs(I.Fragment,{children:[I.jsx(Xr,{className:"text-default-900 flex flex-col gap-1",children:"Share conversation"}),I.jsx(Qr,{children:I.jsxs("div",{className:"flex flex-col gap-4",children:[I.jsx("p",{className:"text-medium text-default-500",children:"You are about to copy a code that allows sharing and storing your current app state. Once copied, you can paste this code anywhere on the site to instantly return to this exact setup. It’s a quick way to save your progress or share it with others."}),I.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[I.jsx(gr,{color:"danger",variant:"light",onPress:f,"aria-label":"Close share modal",children:"Cancel"}),I.jsx(gr,{color:"primary",onPress:h,"aria-label":"Copy to clipboard to share the conversation",children:"Copy to clipboard"})]})]})})]})})})]})}export{be as default}; +import{aS as Gr,b as Jr,r as hr,i as Wr,j as I,D as qr,e as gr,I as Yr,m as Kr,f as Lr,g as Qr,aT as Vr}from"./index-B2ElHFiq.js";import{m as Xr}from"./chunk-IGSAU2ZA-BdPLoTgw.js";var T=Uint8Array,$=Uint16Array,Ar=Int32Array,lr=new T([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),sr=new T([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),pr=new T([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),_r=function(r,e){for(var a=new $(31),n=0;n<31;++n)a[n]=e+=1<>1|(y&21845)<<1;Q=(Q&52428)>>2|(Q&13107)<<2,Q=(Q&61680)>>4|(Q&3855)<<4,Cr[y]=((Q&65280)>>8|(Q&255)<<8)>>1}var q=function(r,e,a){for(var n=r.length,t=0,o=new $(e);t>h]=c}else for(l=new $(n),t=0;t>15-r[t]);return l},V=new T(288);for(var y=0;y<144;++y)V[y]=8;for(var y=144;y<256;++y)V[y]=9;for(var y=256;y<280;++y)V[y]=7;for(var y=280;y<288;++y)V[y]=8;var fr=new T(32);for(var y=0;y<32;++y)fr[y]=5;var re=q(V,9,0),ee=q(V,9,1),ae=q(fr,5,0),ne=q(fr,5,1),wr=function(r){for(var e=r[0],a=1;ae&&(e=r[a]);return e},J=function(r,e,a){var n=e/8|0;return(r[n]|r[n+1]<<8)>>(e&7)&a},xr=function(r,e){var a=e/8|0;return(r[a]|r[a+1]<<8|r[a+2]<<16)>>(e&7)},Mr=function(r){return(r+7)/8|0},cr=function(r,e,a){return(e==null||e<0)&&(e=0),(a==null||a>r.length)&&(a=r.length),new T(r.subarray(e,a))},te=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],G=function(r,e,a){var n=new Error(e||te[r]);if(n.code=r,Error.captureStackTrace&&Error.captureStackTrace(n,G),!a)throw n;return n},oe=function(r,e,a,n){var t=r.length,o=0;if(!t||e.f&&!e.l)return a||new T(0);var v=!a,l=v||e.i!=2,h=e.i;v&&(a=new T(t*3));var c=function(ar){var nr=a.length;if(ar>nr){var rr=new T(Math.max(nr*2,ar));rr.set(a),a=rr}},f=e.f||0,i=e.p||0,u=e.b||0,x=e.l,S=e.d,w=e.m,j=e.n,m=t*8;do{if(!x){f=J(r,i,1);var R=J(r,i+1,3);if(i+=3,R)if(R==1)x=ee,S=ne,w=9,j=5;else if(R==2){var _=J(r,i,31)+257,M=J(r,i+10,15)+4,g=_+J(r,i+5,31)+1;i+=14;for(var s=new T(g),d=new T(19),C=0;C>4;if(A<16)s[C++]=A;else{var E=0,b=0;for(A==16?(b=3+J(r,i,3),i+=2,E=s[C-1]):A==17?(b=3+J(r,i,7),i+=3):A==18&&(b=11+J(r,i,127),i+=7);b--;)s[C++]=E}}var z=s.subarray(0,_),F=s.subarray(_);w=wr(z),j=wr(F),x=q(z,w,1),S=q(F,j,1)}else G(1);else{var A=Mr(i)+4,N=r[A-4]|r[A-3]<<8,O=A+N;if(O>t){h&&G(0);break}l&&c(u+N),a.set(r.subarray(A,O),u),e.b=u+=N,e.p=i=O*8,e.f=f;continue}if(i>m){h&&G(0);break}}l&&c(u+131072);for(var er=(1<>4;if(i+=E&15,i>m){h&&G(0);break}if(E||G(2),H<256)a[u++]=H;else if(H==256){Y=i,x=null;break}else{var P=H-254;if(H>264){var C=H-257,p=lr[C];P=J(r,i,(1<>4;W||G(3),i+=W&15;var F=Zr[X];if(X>3){var p=sr[X];F+=xr(r,i)&(1<m){h&&G(0);break}l&&c(u+131072);var Z=u+P;if(u>8},tr=function(r,e,a){a<<=e&7;var n=e/8|0;r[n]|=a,r[n+1]|=a>>8,r[n+2]|=a>>16},yr=function(r,e){for(var a=[],n=0;nu&&(u=o[n].s);var x=new $(u+1),S=Tr(a[f-1],x,0);if(S>e){var n=0,w=0,j=S-e,m=1<e)w+=m-(1<>=j;w>0;){var A=o[n].s;x[A]=0&&w;--n){var N=o[n].s;x[N]==e&&(--x[N],++w)}S=e}return{t:new T(x),l:S}},Tr=function(r,e,a){return r.s==-1?Math.max(Tr(r.l,e,a+1),Tr(r.r,e,a+1)):e[r.s]=a},Er=function(r){for(var e=r.length;e&&!r[--e];);for(var a=new $(++e),n=0,t=r[0],o=1,v=function(h){a[n++]=h},l=1;l<=e;++l)if(r[l]==t&&l!=e)++o;else{if(!t&&o>2){for(;o>138;o-=138)v(32754);o>2&&(v(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(v(t),--o;o>6;o-=6)v(8304);o>2&&(v(o-3<<5|8208),o=0)}for(;o--;)v(t);o=1,t=r[l]}return{c:a.subarray(0,n),n:e}},or=function(r,e){for(var a=0,n=0;n>8,r[t+2]=r[t]^255,r[t+3]=r[t+1]^255;for(var o=0;o4&&!d[pr[k-1]];--k);var L=c+5<<3,U=or(t,V)+or(o,fr)+v,D=or(t,u)+or(o,w)+v+14+3*k+or(M,d)+2*M[16]+3*M[17]+7*M[18];if(h>=0&&L<=U&&L<=D)return Ur(e,f,r.subarray(h,h+c));var E,b,z,F;if(K(e,f,1+(D15&&(K(e,f,H[g]>>5&127),f+=H[g]>>12)}}else E=re,b=V,z=ae,F=fr;for(var g=0;g255){var P=p>>18&31;tr(e,f,E[P+257]),f+=b[P+257],P>7&&(K(e,f,p>>23&31),f+=lr[P]);var W=p&31;tr(e,f,z[W]),f+=F[W],W>3&&(tr(e,f,p>>5&8191),f+=sr[W])}else tr(e,f,E[p]),f+=b[p]}return tr(e,f,E[256]),f+b[256]},fe=new Ar([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Hr=new T(0),ie=function(r,e,a,n,t,o){var v=o.z||r.length,l=new T(n+v+5*(1+Math.ceil(v/7e3))+t),h=l.subarray(n,l.length-t),c=o.l,f=(o.r||0)&7;if(e){f&&(h[0]=o.r>>3);for(var i=fe[e-1],u=i>>13,x=i&8191,S=(1<7e3||d>24576)&&(E>423||!c)){f=Fr(r,h,0,N,O,_,g,d,k,s-k,f),d=M=g=0,k=s;for(var b=0;b<286;++b)O[b]=0;for(var b=0;b<30;++b)_[b]=0}var z=2,F=0,er=x,B=U-D&32767;if(E>2&&L==A(s-B))for(var Y=Math.min(u,E)-1,H=Math.min(32767,s),P=Math.min(258,E);B<=H&&--er&&U!=D;){if(r[s+z]==r[s+z-B]){for(var p=0;pz){if(z=p,F=B,p>Y)break;for(var W=Math.min(B,p-2),X=0,b=0;bX&&(X=vr,D=Z)}}}U=D,D=w[U],B+=U-D&32767}if(F){N[d++]=268435456|mr[z]<<18|dr[F];var ar=mr[z]&31,nr=dr[F]&31;g+=lr[ar]+sr[nr],++O[257+ar],++_[nr],C=s+z,++M}else N[d++]=r[s],++O[r[s]]}}for(s=Math.max(s,C);s=v&&(h[f/8|0]=c,rr=v),f=Ur(h,f+1,r.subarray(s,rr))}o.i=v}return cr(l,0,n+Mr(f)+t)},Pr=function(){var r=1,e=0;return{p:function(a){for(var n=r,t=e,o=a.length|0,v=0;v!=o;){for(var l=Math.min(v+2655,o);v>16),t=(t&65535)+15*(t>>16)}r=n,e=t},d:function(){return r%=65521,e%=65521,(r&255)<<24|(r&65280)<<8|(e&255)<<8|e>>8}}},ve=function(r,e,a,n,t){if(!t&&(t={l:1},e.dictionary)){var o=e.dictionary.subarray(-32768),v=new T(o.length+r.length);v.set(o),v.set(r,o.length),r=v,t.w=o.length}return ie(r,e.level==null?6:e.level,e.mem==null?t.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+e.mem,a,n,t)},$r=function(r,e,a){for(;a;++e)r[e]=a,a>>>=8},le=function(r,e){var a=e.level,n=a==0?0:a<6?1:a==9?3:2;if(r[0]=120,r[1]=n<<6|(e.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,e.dictionary){var t=Pr();t.p(e.dictionary),$r(r,2,t.d())}},se=function(r,e){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&G(6,"invalid zlib data"),(r[1]>>5&1)==1&&G(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function ce(r,e){e||(e={});var a=Pr();a.p(r);var n=ve(r,e,e.dictionary?6:2,4);return le(n,e),$r(n,n.length-4,a.d()),n}function ue(r,e){return oe(r.subarray(se(r),-4),{i:2},e,e)}var Or=typeof TextEncoder<"u"&&new TextEncoder,jr=typeof TextDecoder<"u"&&new TextDecoder,he=0;try{jr.decode(Hr,{stream:!0}),he=1}catch{}var ge=function(r){for(var e="",a=0;;){var n=r[a++],t=(n>127)+(n>223)+(n>239);if(a+t>r.length)return{s:e,r:cr(r,a-1)};t?t==3?(n=((n&15)<<18|(r[a++]&63)<<12|(r[a++]&63)<<6|r[a++]&63)-65536,e+=String.fromCharCode(55296|n>>10,56320|n&1023)):t&1?e+=String.fromCharCode((n&31)<<6|r[a++]&63):e+=String.fromCharCode((n&15)<<12|(r[a++]&63)<<6|r[a++]&63):e+=String.fromCharCode(n)}};function kr(r,e){if(e){for(var a=new T(r.length),n=0;n>1)),v=0,l=function(f){o[v++]=f},n=0;no.length){var h=new T(v+8+(t-n<<1));h.set(o),o=h}var c=r.charCodeAt(n);c<128||e?l(c):c<2048?(l(192|c>>6),l(128|c&63)):c>55295&&c<57344?(c=65536+(c&1047552)|r.charCodeAt(++n)&1023,l(240|c>>18),l(128|c>>12&63),l(128|c>>6&63),l(128|c&63)):(l(224|c>>12),l(128|c>>6&63),l(128|c&63))}return cr(o,0,v)}function Ir(r,e){if(e){for(var a="",n=0;n`,br=``;function xe(r){if(typeof r!="object"||r===null)return!1;const e=r;return!(typeof e.history!="object"||"followupMessages"in e&&typeof e.followupMessages!="object"||"chatOptions"in e&&typeof e.chatOptions!="object"||"serverState"in e&&typeof e.serverState!="object"||"conversationId"in e&&typeof e.conversationId!="string"&&typeof e.conversationId!="object")}function be(){const{restore:r}=Gr(),{isOpen:e,onOpen:a,onClose:n}=Jr(),[t,o]=hr.useState(Nr),v=hr.useRef(null),{getCurrentConversation:l}=Wr(f=>f.primitives),h=()=>{const{chatOptions:f,history:i,serverState:u,conversationId:x,followupMessages:S}=l(),w=Vr({chatOptions:f,history:i,serverState:u,conversationId:x,followupMessages:S}),j=kr(`${Sr}${JSON.stringify(w)}${br}`),m=btoa(Ir(ce(j,{level:9}),!0));navigator.clipboard.writeText(m),o(we),n(),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{o(Nr)},2e3)},c=()=>{n()};return hr.useEffect(()=>{const f=i=>{if(!i.clipboardData||!i.clipboardData.types.includes("text/plain"))return;const x=i.clipboardData.getData("text/plain");try{const S=atob(x);if(!S.startsWith("xÚ"))return;const w=Ir(ue(kr(S,!0)));if(!w.startsWith(Sr)||!w.endsWith(br))return;i.preventDefault(),i.stopPropagation();const j=w.slice(Sr.length,-br.length),m=JSON.parse(j);if(!xe(m))return;r(m.history,m.followupMessages,m.chatOptions,m.serverState,m.conversationId)}catch(S){console.error("Couldn't parse pasted string as valid Ragbits state",S)}};return window.addEventListener("paste",f),()=>{window.removeEventListener("paste",f)}}),I.jsxs(I.Fragment,{children:[I.jsx(qr,{content:"Share conversation",placement:"bottom",children:I.jsx(gr,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Share conversation",onPress:a,children:I.jsx(Yr,{icon:t})})}),I.jsx(Kr,{isOpen:e,onOpenChange:c,children:I.jsx(Lr,{children:f=>I.jsxs(I.Fragment,{children:[I.jsx(Xr,{className:"text-default-900 flex flex-col gap-1",children:"Share conversation"}),I.jsx(Qr,{children:I.jsxs("div",{className:"flex flex-col gap-4",children:[I.jsx("p",{className:"text-medium text-default-500",children:"You are about to copy a code that allows sharing and storing your current app state. Once copied, you can paste this code anywhere on the site to instantly return to this exact setup. It’s a quick way to save your progress or share it with others."}),I.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[I.jsx(gr,{color:"danger",variant:"light",onPress:f,"aria-label":"Close share modal",children:"Cancel"}),I.jsx(gr,{color:"primary",onPress:h,"aria-label":"Copy to clipboard to share the conversation",children:"Copy to clipboard"})]})]})})]})})})]})}export{be as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-CjObAEhP.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-CjObAEhP.js new file mode 100644 index 0000000000..0449f400e1 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-CjObAEhP.js @@ -0,0 +1 @@ +import{b3 as i,b4 as o}from"./index-B2ElHFiq.js";const l=i(o(e=>({user:null,token:null,isAuthenticated:!1,tokenExpiration:null,login:(n,t)=>e(()=>({user:n,token:t,tokenExpiration:Date.now()+t.expires_in*1e3,isAuthenticated:!0})),logout:()=>e(()=>({user:null,token:null,isAuthenticated:!1}))})));export{l as a}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BdPLoTgw.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BdPLoTgw.js new file mode 100644 index 0000000000..f81dd258cd --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BdPLoTgw.js @@ -0,0 +1 @@ +import{_ as h,aU as p,Q as x,r as i,j as M,V as H}from"./index-B2ElHFiq.js";var s=h((r,o)=>{const{as:t,children:d,className:l,...n}=r,{slots:c,classNames:a,headerId:m,setHeaderMounted:e}=p(),f=x(o),u=t||"header";return i.useEffect(()=>(e(!0),()=>e(!1)),[e]),M.jsx(u,{ref:f,className:c.header({class:H(a?.header,l)}),id:m,...n,children:d})});s.displayName="HeroUI.ModalHeader";var R=s;export{R as m}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BqeVrv-6.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BqeVrv-6.js deleted file mode 100644 index 6cc52ace34..0000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BqeVrv-6.js +++ /dev/null @@ -1 +0,0 @@ -import{E as h,aT as p,R as x,r as i,j as M,W as R}from"./index-CziAk_QW.js";var s=h((r,o)=>{const{as:t,children:d,className:l,...n}=r,{slots:c,classNames:a,headerId:m,setHeaderMounted:e}=p(),f=x(o),u=t||"header";return i.useEffect(()=>(e(!0),()=>e(!1)),[e]),M.jsx(u,{ref:f,className:c.header({class:R(a?.header,l)}),id:m,...n,children:d})});s.displayName="HeroUI.ModalHeader";var H=s;export{H as m}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-ibe31s4U.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-ibe31s4U.js new file mode 100644 index 0000000000..60d72da7e2 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-ibe31s4U.js @@ -0,0 +1 @@ +import{_,a$ as y,j as e,r as t,aJ as D}from"./index-B2ElHFiq.js";var E=_((B,H)=>{const{Component:L,label:u,description:r,isClearable:d,startContent:c,endContent:h,labelPlacement:O,hasHelper:x,isOutsideLeft:j,isOutsideTop:g,shouldLabelBeOutside:m,errorMessage:s,isInvalid:P,getBaseProps:w,getLabelProps:F,getInputProps:v,getInnerWrapperProps:C,getInputWrapperProps:o,getMainWrapperProps:I,getHelperWrapperProps:b,getDescriptionProps:l,getErrorMessageProps:a,getClearButtonProps:f}=y({...B,ref:H}),n=u?e.jsx("label",{...F(),children:u}):null,M=t.useMemo(()=>d?e.jsx("button",{...f(),children:h||e.jsx(D,{})}):h,[d,f]),i=t.useMemo(()=>{const W=P&&s;return!x||!(W||r)?null:e.jsx("div",{...b(),children:W?e.jsx("div",{...a(),children:s}):e.jsx("div",{...l(),children:r})})},[x,P,s,r,b,a,l]),p=t.useMemo(()=>e.jsxs("div",{...C(),children:[c,e.jsx("input",{...v()}),M]}),[c,M,v,C]),R=t.useMemo(()=>m?e.jsxs("div",{...I(),children:[e.jsxs("div",{...o(),children:[!j&&!g?n:null,p]}),i]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{...o(),children:[n,p]}),i]}),[O,i,m,n,p,s,r,I,o,a,l]);return e.jsxs(L,{...w(),children:[j||g?n:null,R]})});E.displayName="HeroUI.Input";var S=E;export{S as i}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-B2ElHFiq.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-B2ElHFiq.js new file mode 100644 index 0000000000..593ad94f81 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-B2ElHFiq.js @@ -0,0 +1,127 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FeedbackForm-AHbpBR0A.js","assets/index-CCuxtYgU.js","assets/chunk-SSA7SXE4-ibe31s4U.js","assets/chunk-IGSAU2ZA-BdPLoTgw.js","assets/ChatOptionsForm-v2JnxfkR.js","assets/ShareButton-CWaGPVMq.js","assets/Login-Cw57S6F2.js","assets/authStore-CjObAEhP.js","assets/AuthGuard-C_MUoo-o.js","assets/LogoutButton-DRWrO0DL.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Jm=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function rv(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var My={exports:{}},up={},Dy={exports:{}},dt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var qw;function MR(){if(qw)return dt;qw=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),g=Symbol.iterator;function b(B){return B===null||typeof B!="object"?null:(B=g&&B[g]||B["@@iterator"],typeof B=="function"?B:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,P={};function _(B,oe,z){this.props=B,this.context=oe,this.refs=P,this.updater=z||x}_.prototype.isReactComponent={},_.prototype.setState=function(B,oe){if(typeof B!="object"&&typeof B!="function"&&B!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,B,oe,"setState")},_.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function T(){}T.prototype=_.prototype;function R(B,oe,z){this.props=B,this.context=oe,this.refs=P,this.updater=z||x}var M=R.prototype=new T;M.constructor=R,E(M,_.prototype),M.isPureReactComponent=!0;var j=Array.isArray,H=Object.prototype.hasOwnProperty,L={current:null},Z={key:!0,ref:!0,__self:!0,__source:!0};function ne(B,oe,z){var me,Ee={},we=null,je=null;if(oe!=null)for(me in oe.ref!==void 0&&(je=oe.ref),oe.key!==void 0&&(we=""+oe.key),oe)H.call(oe,me)&&!Z.hasOwnProperty(me)&&(Ee[me]=oe[me]);var Oe=arguments.length-2;if(Oe===1)Ee.children=z;else if(1>>1,oe=K[B];if(0>>1;Bi(Ee,A))wei(je,Ee)?(K[B]=je,K[we]=A,B=we):(K[B]=Ee,K[me]=A,B=me);else if(wei(je,A))K[B]=je,K[we]=A,B=we;else break e}}return se}function i(K,se){var A=K.sortIndex-se.sortIndex;return A!==0?A:K.id-se.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var a=Date,c=a.now();e.unstable_now=function(){return a.now()-c}}var d=[],h=[],m=1,g=null,b=3,x=!1,E=!1,P=!1,_=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,R=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function M(K){for(var se=n(h);se!==null;){if(se.callback===null)r(h);else if(se.startTime<=K)r(h),se.sortIndex=se.expirationTime,t(d,se);else break;se=n(h)}}function j(K){if(P=!1,M(K),!E)if(n(d)!==null)E=!0,J(H);else{var se=n(h);se!==null&&q(j,se.startTime-K)}}function H(K,se){E=!1,P&&(P=!1,T(ne),ne=-1),x=!0;var A=b;try{for(M(se),g=n(d);g!==null&&(!(g.expirationTime>se)||K&&!U());){var B=g.callback;if(typeof B=="function"){g.callback=null,b=g.priorityLevel;var oe=B(g.expirationTime<=se);se=e.unstable_now(),typeof oe=="function"?g.callback=oe:g===n(d)&&r(d),M(se)}else r(d);g=n(d)}if(g!==null)var z=!0;else{var me=n(h);me!==null&&q(j,me.startTime-se),z=!1}return z}finally{g=null,b=A,x=!1}}var L=!1,Z=null,ne=-1,ae=5,O=-1;function U(){return!(e.unstable_now()-OK||125B?(K.sortIndex=A,t(h,K),n(d)===null&&K===n(h)&&(P?(T(ne),ne=-1):P=!0,q(j,A-B))):(K.sortIndex=oe,t(d,K),E||x||(E=!0,J(H))),K},e.unstable_shouldYield=U,e.unstable_wrapCallback=function(K){var se=b;return function(){var A=b;b=se;try{return K.apply(this,arguments)}finally{b=A}}}}(Oy)),Oy}var Zw;function OR(){return Zw||(Zw=1,Fy.exports=FR()),Fy.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var e1;function zR(){if(e1)return Zr;e1=1;var e=tx(),t=OR();function n(o){for(var l="https://reactjs.org/docs/error-decoder.html?invariant="+o,p=1;p"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),d=Object.prototype.hasOwnProperty,h=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,m={},g={};function b(o){return d.call(g,o)?!0:d.call(m,o)?!1:h.test(o)?g[o]=!0:(m[o]=!0,!1)}function x(o,l,p,v){if(p!==null&&p.type===0)return!1;switch(typeof l){case"function":case"symbol":return!0;case"boolean":return v?!1:p!==null?!p.acceptsBooleans:(o=o.toLowerCase().slice(0,5),o!=="data-"&&o!=="aria-");default:return!1}}function E(o,l,p,v){if(l===null||typeof l>"u"||x(o,l,p,v))return!0;if(v)return!1;if(p!==null)switch(p.type){case 3:return!l;case 4:return l===!1;case 5:return isNaN(l);case 6:return isNaN(l)||1>l}return!1}function P(o,l,p,v,w,k,$){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=v,this.attributeNamespace=w,this.mustUseProperty=p,this.propertyName=o,this.type=l,this.sanitizeURL=k,this.removeEmptyString=$}var _={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(o){_[o]=new P(o,0,!1,o,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(o){var l=o[0];_[l]=new P(l,1,!1,o[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(o){_[o]=new P(o,2,!1,o.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(o){_[o]=new P(o,2,!1,o,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(o){_[o]=new P(o,3,!1,o.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(o){_[o]=new P(o,3,!0,o,null,!1,!1)}),["capture","download"].forEach(function(o){_[o]=new P(o,4,!1,o,null,!1,!1)}),["cols","rows","size","span"].forEach(function(o){_[o]=new P(o,6,!1,o,null,!1,!1)}),["rowSpan","start"].forEach(function(o){_[o]=new P(o,5,!1,o.toLowerCase(),null,!1,!1)});var T=/[\-:]([a-z])/g;function R(o){return o[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(o){var l=o.replace(T,R);_[l]=new P(l,1,!1,o,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(o){var l=o.replace(T,R);_[l]=new P(l,1,!1,o,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(o){var l=o.replace(T,R);_[l]=new P(l,1,!1,o,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(o){_[o]=new P(o,1,!1,o.toLowerCase(),null,!1,!1)}),_.xlinkHref=new P("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(o){_[o]=new P(o,1,!1,o.toLowerCase(),null,!0,!0)});function M(o,l,p,v){var w=_.hasOwnProperty(l)?_[l]:null;(w!==null?w.type!==0:v||!(2V||w[$]!==k[V]){var Y=` +`+w[$].replace(" at new "," at ");return o.displayName&&Y.includes("")&&(Y=Y.replace("",o.displayName)),Y}while(1<=$&&0<=V);break}}}finally{z=!1,Error.prepareStackTrace=p}return(o=o?o.displayName||o.name:"")?oe(o):""}function Ee(o){switch(o.tag){case 5:return oe(o.type);case 16:return oe("Lazy");case 13:return oe("Suspense");case 19:return oe("SuspenseList");case 0:case 2:case 15:return o=me(o.type,!1),o;case 11:return o=me(o.type.render,!1),o;case 1:return o=me(o.type,!0),o;default:return""}}function we(o){if(o==null)return null;if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case Z:return"Fragment";case L:return"Portal";case ae:return"Profiler";case ne:return"StrictMode";case re:return"Suspense";case G:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case U:return(o.displayName||"Context")+".Consumer";case O:return(o._context.displayName||"Context")+".Provider";case X:var l=o.render;return o=o.displayName,o||(o=l.displayName||l.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case fe:return l=o.displayName||null,l!==null?l:we(o.type)||"Memo";case J:l=o._payload,o=o._init;try{return we(o(l))}catch{}}return null}function je(o){var l=o.type;switch(o.tag){case 24:return"Cache";case 9:return(l.displayName||"Context")+".Consumer";case 10:return(l._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return o=l.render,o=o.displayName||o.name||"",l.displayName||(o!==""?"ForwardRef("+o+")":"ForwardRef");case 7:return"Fragment";case 5:return l;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return we(l);case 8:return l===ne?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l}return null}function Oe(o){switch(typeof o){case"boolean":case"number":case"string":case"undefined":return o;case"object":return o;default:return""}}function Te(o){var l=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function tt(o){var l=Te(o)?"checked":"value",p=Object.getOwnPropertyDescriptor(o.constructor.prototype,l),v=""+o[l];if(!o.hasOwnProperty(l)&&typeof p<"u"&&typeof p.get=="function"&&typeof p.set=="function"){var w=p.get,k=p.set;return Object.defineProperty(o,l,{configurable:!0,get:function(){return w.call(this)},set:function($){v=""+$,k.call(this,$)}}),Object.defineProperty(o,l,{enumerable:p.enumerable}),{getValue:function(){return v},setValue:function($){v=""+$},stopTracking:function(){o._valueTracker=null,delete o[l]}}}}function yt(o){o._valueTracker||(o._valueTracker=tt(o))}function Ie(o){if(!o)return!1;var l=o._valueTracker;if(!l)return!0;var p=l.getValue(),v="";return o&&(v=Te(o)?o.checked?"true":"false":o.value),o=v,o!==p?(l.setValue(o),!0):!1}function Rt(o){if(o=o||(typeof document<"u"?document:void 0),typeof o>"u")return null;try{return o.activeElement||o.body}catch{return o.body}}function bt(o,l){var p=l.checked;return A({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:p??o._wrapperState.initialChecked})}function Xt(o,l){var p=l.defaultValue==null?"":l.defaultValue,v=l.checked!=null?l.checked:l.defaultChecked;p=Oe(l.value!=null?l.value:p),o._wrapperState={initialChecked:v,initialValue:p,controlled:l.type==="checkbox"||l.type==="radio"?l.checked!=null:l.value!=null}}function Ue(o,l){l=l.checked,l!=null&&M(o,"checked",l,!1)}function st(o,l){Ue(o,l);var p=Oe(l.value),v=l.type;if(p!=null)v==="number"?(p===0&&o.value===""||o.value!=p)&&(o.value=""+p):o.value!==""+p&&(o.value=""+p);else if(v==="submit"||v==="reset"){o.removeAttribute("value");return}l.hasOwnProperty("value")?Nr(o,l.type,p):l.hasOwnProperty("defaultValue")&&Nr(o,l.type,Oe(l.defaultValue)),l.checked==null&&l.defaultChecked!=null&&(o.defaultChecked=!!l.defaultChecked)}function An(o,l,p){if(l.hasOwnProperty("value")||l.hasOwnProperty("defaultValue")){var v=l.type;if(!(v!=="submit"&&v!=="reset"||l.value!==void 0&&l.value!==null))return;l=""+o._wrapperState.initialValue,p||l===o.value||(o.value=l),o.defaultValue=l}p=o.name,p!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,p!==""&&(o.name=p)}function Nr(o,l,p){(l!=="number"||Rt(o.ownerDocument)!==o)&&(p==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+p&&(o.defaultValue=""+p))}var Sn=Array.isArray;function Lt(o,l,p,v){if(o=o.options,l){l={};for(var w=0;w"+l.valueOf().toString()+"",l=Be.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;l.firstChild;)o.appendChild(l.firstChild)}});function ct(o,l){if(l){var p=o.firstChild;if(p&&p===o.lastChild&&p.nodeType===3){p.nodeValue=l;return}}o.textContent=l}var Qt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ur=["Webkit","ms","Moz","O"];Object.keys(Qt).forEach(function(o){ur.forEach(function(l){l=l+o.charAt(0).toUpperCase()+o.substring(1),Qt[l]=Qt[o]})});function en(o,l,p){return l==null||typeof l=="boolean"||l===""?"":p||typeof l!="number"||l===0||Qt.hasOwnProperty(o)&&Qt[o]?(""+l).trim():l+"px"}function ln(o,l){o=o.style;for(var p in l)if(l.hasOwnProperty(p)){var v=p.indexOf("--")===0,w=en(p,l[p],v);p==="float"&&(p="cssFloat"),v?o.setProperty(p,w):o[p]=w}}var wr=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Mt(o,l){if(l){if(wr[o]&&(l.children!=null||l.dangerouslySetInnerHTML!=null))throw Error(n(137,o));if(l.dangerouslySetInnerHTML!=null){if(l.children!=null)throw Error(n(60));if(typeof l.dangerouslySetInnerHTML!="object"||!("__html"in l.dangerouslySetInnerHTML))throw Error(n(61))}if(l.style!=null&&typeof l.style!="object")throw Error(n(62))}}function Xn(o,l){if(o.indexOf("-")===-1)return typeof l.is=="string";switch(o){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var tn=null;function il(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var ps=null,si=null,li=null;function ia(o){if(o=jn(o)){if(typeof ps!="function")throw Error(n(280));var l=o.stateNode;l&&(l=tc(l),ps(o.stateNode,o.type,l))}}function Pu(o){si?li?li.push(o):li=[o]:si=o}function hs(){if(si){var o=si,l=li;if(li=si=null,ia(o),l)for(o=0;o>>=0,o===0?32:31-(Ah(o)/Rh|0)|0}var ll=64,Iu=4194304;function al(o){switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return o&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return o}}function ys(o,l){var p=o.pendingLanes;if(p===0)return 0;var v=0,w=o.suspendedLanes,k=o.pingedLanes,$=p&268435455;if($!==0){var V=$&~w;V!==0?v=al(V):(k&=$,k!==0&&(v=al(k)))}else $=p&~w,$!==0?v=al($):k!==0&&(v=al(k));if(v===0)return 0;if(l!==0&&l!==v&&(l&w)===0&&(w=v&-v,k=l&-l,w>=k||w===16&&(k&4194240)!==0))return l;if((v&4)!==0&&(v|=p&16),l=o.entangledLanes,l!==0)for(o=o.entanglements,l&=v;0p;p++)l.push(o);return l}function fa(o,l,p){o.pendingLanes|=l,l!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,l=31-ai(l),o[l]=p}function Dh(o,l){var p=o.pendingLanes&~l;o.pendingLanes=l,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=l,o.mutableReadLanes&=l,o.entangledLanes&=l,l=o.entanglements;var v=o.eventTimes;for(o=o.expirationTimes;0=io),Yh=" ",Xh=!1;function Qh(o,l){switch(o){case"keyup":return Sr.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Jh(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var hl=!1;function ml(o,l){switch(o){case"compositionend":return Jh(l);case"keypress":return l.which!==32?null:(Xh=!0,Yh);case"textInput":return o=l.data,o===Yh&&Xh?null:o;default:return null}}function qv(o,l){if(hl)return o==="compositionend"||!ga&&Qh(o,l)?(o=Xf(),$i=ma=Bt=null,hl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:p,offset:l-o};o=v}e:{for(;p;){if(p.nextSibling){p=p.nextSibling;break e}p=p.parentNode}p=void 0}p=nt(p)}}function an(o,l){return o&&l?o===l?!0:o&&o.nodeType===3?!1:l&&l.nodeType===3?an(o,l.parentNode):"contains"in o?o.contains(l):o.compareDocumentPosition?!!(o.compareDocumentPosition(l)&16):!1:!1}function Tt(){for(var o=window,l=Rt();l instanceof o.HTMLIFrameElement;){try{var p=typeof l.contentWindow.location.href=="string"}catch{p=!1}if(p)o=l.contentWindow;else break;l=Rt(o.document)}return l}function va(o){var l=o&&o.nodeName&&o.nodeName.toLowerCase();return l&&(l==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||l==="textarea"||o.contentEditable==="true")}function ey(o){var l=Tt(),p=o.focusedElem,v=o.selectionRange;if(l!==p&&p&&p.ownerDocument&&an(p.ownerDocument.documentElement,p)){if(v!==null&&va(p)){if(l=v.start,o=v.end,o===void 0&&(o=l),"selectionStart"in p)p.selectionStart=l,p.selectionEnd=Math.min(o,p.value.length);else if(o=(l=p.ownerDocument||document)&&l.defaultView||window,o.getSelection){o=o.getSelection();var w=p.textContent.length,k=Math.min(v.start,w);v=v.end===void 0?k:Math.min(v.end,w),!o.extend&&k>v&&(w=v,v=k,k=w),w=xt(p,k);var $=xt(p,v);w&&$&&(o.rangeCount!==1||o.anchorNode!==w.node||o.anchorOffset!==w.offset||o.focusNode!==$.node||o.focusOffset!==$.offset)&&(l=l.createRange(),l.setStart(w.node,w.offset),o.removeAllRanges(),k>v?(o.addRange(l),o.extend($.node,$.offset)):(l.setEnd($.node,$.offset),o.addRange(l)))}}for(l=[],o=p;o=o.parentNode;)o.nodeType===1&&l.push({element:o,left:o.scrollLeft,top:o.scrollTop});for(typeof p.focus=="function"&&p.focus(),p=0;p=document.documentMode,oo=null,ud=null,Ai=null,vl=!1;function ya(o,l,p){var v=p.window===p?p.document:p.nodeType===9?p:p.ownerDocument;vl||oo==null||oo!==Rt(v)||(v=oo,"selectionStart"in v&&va(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),Ai&&$e(Ai,v)||(Ai=v,v=Qu(ud,"onSelect"),0El||(o.current=hd[El],hd[El]=null,El--)}function $t(o,l){El++,hd[El]=o.current,o.current=l}var Ko={},Bn=fr(Ko),dr=fr(!1),Zn=Ko;function Pl(o,l){var p=o.type.contextTypes;if(!p)return Ko;var v=o.stateNode;if(v&&v.__reactInternalMemoizedUnmaskedChildContext===l)return v.__reactInternalMemoizedMaskedChildContext;var w={},k;for(k in p)w[k]=l[k];return v&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=l,o.__reactInternalMemoizedMaskedChildContext=w),w}function pr(o){return o=o.childContextTypes,o!=null}function nc(){Nt(dr),Nt(Bn)}function am(o,l,p){if(Bn.current!==Ko)throw Error(n(168));$t(Bn,l),$t(dr,p)}function um(o,l,p){var v=o.stateNode;if(l=l.childContextTypes,typeof v.getChildContext!="function")return p;v=v.getChildContext();for(var w in v)if(!(w in l))throw Error(n(108,je(o)||"Unknown",w));return A({},p,v)}function jr(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||Ko,Zn=Bn.current,$t(Bn,o),$t(dr,dr.current),!0}function cm(o,l,p){var v=o.stateNode;if(!v)throw Error(n(169));p?(o=um(o,l,Zn),v.__reactInternalMemoizedMergedChildContext=o,Nt(dr),Nt(Bn),$t(Bn,o)):Nt(dr),$t(dr,p)}var ao=null,rc=!1,md=!1;function fm(o){ao===null?ao=[o]:ao.push(o)}function Ps(o){rc=!0,fm(o)}function Wo(){if(!md&&ao!==null){md=!0;var o=0,l=Ct;try{var p=ao;for(Ct=1;o>=$,w-=$,Mi=1<<32-ai(l)+w|p<Xe?(En=Ke,Ke=null):En=Ke.sibling;var St=ye(le,Ke,ue[Xe],Ce);if(St===null){Ke===null&&(Ke=En);break}o&&Ke&&St.alternate===null&&l(le,Ke),ee=k(St,ee,Xe),He===null?ze=St:He.sibling=St,He=St,Ke=En}if(Xe===ue.length)return p(le,Ke),Ft&&_s(le,Xe),ze;if(Ke===null){for(;XeXe?(En=Ke,Ke=null):En=Ke.sibling;var rs=ye(le,Ke,St.value,Ce);if(rs===null){Ke===null&&(Ke=En);break}o&&Ke&&rs.alternate===null&&l(le,Ke),ee=k(rs,ee,Xe),He===null?ze=rs:He.sibling=rs,He=rs,Ke=En}if(St.done)return p(le,Ke),Ft&&_s(le,Xe),ze;if(Ke===null){for(;!St.done;Xe++,St=ue.next())St=Se(le,St.value,Ce),St!==null&&(ee=k(St,ee,Xe),He===null?ze=St:He.sibling=St,He=St);return Ft&&_s(le,Xe),ze}for(Ke=v(le,Ke);!St.done;Xe++,St=ue.next())St=Ae(Ke,le,Xe,St.value,Ce),St!==null&&(o&&St.alternate!==null&&Ke.delete(St.key===null?Xe:St.key),ee=k(St,ee,Xe),He===null?ze=St:He.sibling=St,He=St);return o&&Ke.forEach(function(Sy){return l(le,Sy)}),Ft&&_s(le,Xe),ze}function rn(le,ee,ue,Ce){if(typeof ue=="object"&&ue!==null&&ue.type===Z&&ue.key===null&&(ue=ue.props.children),typeof ue=="object"&&ue!==null){switch(ue.$$typeof){case H:e:{for(var ze=ue.key,He=ee;He!==null;){if(He.key===ze){if(ze=ue.type,ze===Z){if(He.tag===7){p(le,He.sibling),ee=w(He,ue.props.children),ee.return=le,le=ee;break e}}else if(He.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===J&&mm(ze)===He.type){p(le,He.sibling),ee=w(He,ue.props),ee.ref=Ia(le,He,ue),ee.return=le,le=ee;break e}p(le,He);break}else l(le,He);He=He.sibling}ue.type===Z?(ee=Bs(ue.props.children,le.mode,Ce,ue.key),ee.return=le,le=ee):(Ce=Bc(ue.type,ue.key,ue.props,null,le.mode,Ce),Ce.ref=Ia(le,ee,ue),Ce.return=le,le=Ce)}return $(le);case L:e:{for(He=ue.key;ee!==null;){if(ee.key===He)if(ee.tag===4&&ee.stateNode.containerInfo===ue.containerInfo&&ee.stateNode.implementation===ue.implementation){p(le,ee.sibling),ee=w(ee,ue.children||[]),ee.return=le,le=ee;break e}else{p(le,ee);break}else l(le,ee);ee=ee.sibling}ee=ip(ue,le.mode,Ce),ee.return=le,le=ee}return $(le);case J:return He=ue._init,rn(le,ee,He(ue._payload),Ce)}if(Sn(ue))return Le(le,ee,ue,Ce);if(se(ue))return De(le,ee,ue,Ce);$s(le,ue)}return typeof ue=="string"&&ue!==""||typeof ue=="number"?(ue=""+ue,ee!==null&&ee.tag===6?(p(le,ee.sibling),ee=w(ee,ue),ee.return=le,le=ee):(p(le,ee),ee=rp(ue,le.mode,Ce),ee.return=le,le=ee),$(le)):p(le,ee)}return rn}var Jt=vd(!0),lc=vd(!1),$a=fr(null),Pr=null,Ho=null,_l=null;function co(){_l=Ho=Pr=null}function ac(o){var l=$a.current;Nt($a),o._currentValue=l}function Rn(o,l,p){for(;o!==null;){var v=o.alternate;if((o.childLanes&l)!==l?(o.childLanes|=l,v!==null&&(v.childLanes|=l)):v!==null&&(v.childLanes&l)!==l&&(v.childLanes|=l),o===p)break;o=o.return}}function Go(o,l){Pr=o,_l=Ho=null,o=o.dependencies,o!==null&&o.firstContext!==null&&((o.lanes&l)!==0&&(tr=!0),o.firstContext=null)}function Ur(o){var l=o._currentValue;if(_l!==o)if(o={context:o,memoizedValue:l,next:null},Ho===null){if(Pr===null)throw Error(n(308));Ho=o,Pr.dependencies={lanes:0,firstContext:o}}else Ho=Ho.next=o;return l}var As=null;function yd(o){As===null?As=[o]:As.push(o)}function uc(o,l,p,v){var w=l.interleaved;return w===null?(p.next=p,yd(l)):(p.next=w.next,w.next=p),l.interleaved=p,fo(o,v)}function fo(o,l){o.lanes|=l;var p=o.alternate;for(p!==null&&(p.lanes|=l),p=o,o=o.return;o!==null;)o.childLanes|=l,p=o.alternate,p!==null&&(p.childLanes|=l),p=o,o=o.return;return p.tag===3?p.stateNode:null}var Kr=!1;function cc(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function gm(o,l){o=o.updateQueue,l.updateQueue===o&&(l.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,effects:o.effects})}function po(o,l){return{eventTime:o,lane:l,tag:0,payload:null,callback:null,next:null}}function Wr(o,l,p){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(gt&2)!==0){var w=v.pending;return w===null?l.next=l:(l.next=w.next,w.next=l),v.pending=l,fo(o,p)}return w=v.interleaved,w===null?(l.next=l,yd(v)):(l.next=w.next,w.next=l),v.interleaved=l,fo(o,p)}function fc(o,l,p){if(l=l.updateQueue,l!==null&&(l=l.shared,(p&4194240)!==0)){var v=l.lanes;v&=o.pendingLanes,p|=v,l.lanes=p,da(o,p)}}function vm(o,l){var p=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,p===v)){var w=null,k=null;if(p=p.firstBaseUpdate,p!==null){do{var $={eventTime:p.eventTime,lane:p.lane,tag:p.tag,payload:p.payload,callback:p.callback,next:null};k===null?w=k=$:k=k.next=$,p=p.next}while(p!==null);k===null?w=k=l:k=k.next=l}else w=k=l;p={baseState:v.baseState,firstBaseUpdate:w,lastBaseUpdate:k,shared:v.shared,effects:v.effects},o.updateQueue=p;return}o=p.lastBaseUpdate,o===null?p.firstBaseUpdate=l:o.next=l,p.lastBaseUpdate=l}function Il(o,l,p,v){var w=o.updateQueue;Kr=!1;var k=w.firstBaseUpdate,$=w.lastBaseUpdate,V=w.shared.pending;if(V!==null){w.shared.pending=null;var Y=V,de=Y.next;Y.next=null,$===null?k=de:$.next=de,$=Y;var be=o.alternate;be!==null&&(be=be.updateQueue,V=be.lastBaseUpdate,V!==$&&(V===null?be.firstBaseUpdate=de:V.next=de,be.lastBaseUpdate=Y))}if(k!==null){var Se=w.baseState;$=0,be=de=Y=null,V=k;do{var ye=V.lane,Ae=V.eventTime;if((v&ye)===ye){be!==null&&(be=be.next={eventTime:Ae,lane:0,tag:V.tag,payload:V.payload,callback:V.callback,next:null});e:{var Le=o,De=V;switch(ye=l,Ae=p,De.tag){case 1:if(Le=De.payload,typeof Le=="function"){Se=Le.call(Ae,Se,ye);break e}Se=Le;break e;case 3:Le.flags=Le.flags&-65537|128;case 0:if(Le=De.payload,ye=typeof Le=="function"?Le.call(Ae,Se,ye):Le,ye==null)break e;Se=A({},Se,ye);break e;case 2:Kr=!0}}V.callback!==null&&V.lane!==0&&(o.flags|=64,ye=w.effects,ye===null?w.effects=[V]:ye.push(V))}else Ae={eventTime:Ae,lane:ye,tag:V.tag,payload:V.payload,callback:V.callback,next:null},be===null?(de=be=Ae,Y=Se):be=be.next=Ae,$|=ye;if(V=V.next,V===null){if(V=w.shared.pending,V===null)break;ye=V,V=ye.next,ye.next=null,w.lastBaseUpdate=ye,w.shared.pending=null}}while(!0);if(be===null&&(Y=Se),w.baseState=Y,w.firstBaseUpdate=de,w.lastBaseUpdate=be,l=w.shared.interleaved,l!==null){w=l;do $|=w.lane,w=w.next;while(w!==l)}else k===null&&(w.shared.lanes=0);Jo|=$,o.lanes=$,o.memoizedState=Se}}function bd(o,l,p){if(o=l.effects,l.effects=null,o!==null)for(l=0;lp?p:4,o(!0);var v=kd.transition;kd.transition={};try{o(!1),l()}finally{Ct=p,kd.transition=v}}function Ad(){return Hr().memoizedState}function ny(o,l,p){var v=ts(o);if(p={lane:v,action:p,hasEagerState:!1,eagerState:null,next:null},Rd(o))er(l,p);else if(p=uc(o,l,p,v),p!==null){var w=ir();gi(p,o,v,w),fi(p,l,v)}}function km(o,l,p){var v=ts(o),w={lane:v,action:p,hasEagerState:!1,eagerState:null,next:null};if(Rd(o))er(l,w);else{var k=o.alternate;if(o.lanes===0&&(k===null||k.lanes===0)&&(k=l.lastRenderedReducer,k!==null))try{var $=l.lastRenderedState,V=k($,p);if(w.hasEagerState=!0,w.eagerState=V,ce(V,$)){var Y=l.interleaved;Y===null?(w.next=w,yd(l)):(w.next=Y.next,Y.next=w),l.interleaved=w;return}}catch{}finally{}p=uc(o,l,w,v),p!==null&&(w=ir(),gi(p,o,v,w),fi(p,l,v))}}function Rd(o){var l=o.alternate;return o===Gt||l!==null&&l===Gt}function er(o,l){Ma=Al=!0;var p=o.pending;p===null?l.next=l:(l.next=p.next,p.next=l),o.pending=l}function fi(o,l,p){if((p&4194240)!==0){var v=l.lanes;v&=o.pendingLanes,p|=v,l.lanes=p,da(o,p)}}var bc={readContext:Ur,useCallback:Kn,useContext:Kn,useEffect:Kn,useImperativeHandle:Kn,useInsertionEffect:Kn,useLayoutEffect:Kn,useMemo:Kn,useReducer:Kn,useRef:Kn,useState:Kn,useDebugValue:Kn,useDeferredValue:Kn,useTransition:Kn,useMutableSource:Kn,useSyncExternalStore:Kn,useId:Kn,unstable_isNewReconciler:!1},ry={readContext:Ur,useCallback:function(o,l){return ji().memoizedState=[o,l===void 0?null:l],o},useContext:Ur,useEffect:yc,useImperativeHandle:function(o,l,p){return p=p!=null?p.concat([o]):null,Na(4194308,4,Id.bind(null,l,o),p)},useLayoutEffect:function(o,l){return Na(4194308,4,o,l)},useInsertionEffect:function(o,l){return Na(4,2,o,l)},useMemo:function(o,l){var p=ji();return l=l===void 0?null:l,o=o(),p.memoizedState=[o,l],o},useReducer:function(o,l,p){var v=ji();return l=p!==void 0?p(l):l,v.memoizedState=v.baseState=l,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:l},v.queue=o,o=o.dispatch=ny.bind(null,Gt,o),[v.memoizedState,o]},useRef:function(o){var l=ji();return o={current:o},l.memoizedState=o},useState:Da,useDebugValue:Fa,useDeferredValue:function(o){return ji().memoizedState=o},useTransition:function(){var o=Da(!1),l=o[0];return o=Sm.bind(null,o[1]),ji().memoizedState=o,[l,o]},useMutableSource:function(){},useSyncExternalStore:function(o,l,p){var v=Gt,w=ji();if(Ft){if(p===void 0)throw Error(n(407));p=p()}else{if(p=l(),Cn===null)throw Error(n(349));(Yo&30)!==0||Td(v,l,p)}w.memoizedState=p;var k={value:p,getSnapshot:l};return w.queue=k,yc(mo.bind(null,v,k,o),[o]),v.flags|=2048,Ll(9,mr.bind(null,v,k,p,l),void 0,null),p},useId:function(){var o=ji(),l=Cn.identifierPrefix;if(Ft){var p=Di,v=Mi;p=(v&~(1<<32-ai(v)-1)).toString(32)+p,l=":"+l+"R"+p,p=Ls++,0<\/script>",o=o.removeChild(o.firstChild)):typeof v.is=="string"?o=$.createElement(p,{is:v.is}):(o=$.createElement(p),p==="select"&&($=o,v.multiple?$.multiple=!0:v.size&&($.size=v.size))):o=$.createElementNS(o,p),o[Ri]=l,o[Uo]=v,Mn(o,l,!1,!1),l.stateNode=o;e:{switch($=Xn(p,v),p){case"dialog":Dt("cancel",o),Dt("close",o),w=v;break;case"iframe":case"object":case"embed":Dt("load",o),w=v;break;case"video":case"audio":for(w=0;wFs&&(l.flags|=128,v=!0,Ka(k,!1),l.lanes=4194304)}else{if(!v)if(o=Rs($),o!==null){if(l.flags|=128,v=!0,p=o.updateQueue,p!==null&&(l.updateQueue=p,l.flags|=4),Ka(k,!0),k.tail===null&&k.tailMode==="hidden"&&!$.alternate&&!Ft)return Dn(l),null}else 2*jt()-k.renderingStartTime>Fs&&p!==1073741824&&(l.flags|=128,v=!0,Ka(k,!1),l.lanes=4194304);k.isBackwards?($.sibling=l.child,l.child=$):(p=k.last,p!==null?p.sibling=$:l.child=$,k.last=$)}return k.tail!==null?(l=k.tail,k.rendering=l,k.tail=l.sibling,k.renderingStartTime=jt(),l.sibling=null,p=Vt.current,$t(Vt,v?p&1|2:p&1),l):(Dn(l),null);case 22:case 23:return tp(),v=l.memoizedState!==null,o!==null&&o.memoizedState!==null!==v&&(l.flags|=8192),v&&(l.mode&1)!==0?(_r&1073741824)!==0&&(Dn(l),l.subtreeFlags&6&&(l.flags|=8192)):Dn(l),null;case 24:return null;case 25:return null}throw Error(n(156,l.tag))}function oy(o,l){switch(Is(l),l.tag){case 1:return pr(l.type)&&nc(),o=l.flags,o&65536?(l.flags=o&-65537|128,l):null;case 3:return qo(),Nt(dr),Nt(Bn),pc(),o=l.flags,(o&65536)!==0&&(o&128)===0?(l.flags=o&-65537|128,l):null;case 5:return dc(l),null;case 13:if(Nt(Vt),o=l.memoizedState,o!==null&&o.dehydrated!==null){if(l.alternate===null)throw Error(n(340));Fi()}return o=l.flags,o&65536?(l.flags=o&-65537|128,l):null;case 19:return Nt(Vt),null;case 4:return qo(),null;case 10:return ac(l.type._context),null;case 22:case 23:return tp(),null;case 24:return null;default:return null}}var _c=!1,Ut=!1,nr=typeof WeakSet=="function"?WeakSet:Set,Re=null;function zl(o,l){var p=o.ref;if(p!==null)if(typeof p=="function")try{p(null)}catch(v){qt(o,l,v)}else p.current=null}function Wa(o,l,p){try{p()}catch(v){qt(o,l,v)}}var $m=!1;function sy(o,l){if(Ca=Mu,o=Tt(),va(o)){if("selectionStart"in o)var p={start:o.selectionStart,end:o.selectionEnd};else e:{p=(p=o.ownerDocument)&&p.defaultView||window;var v=p.getSelection&&p.getSelection();if(v&&v.rangeCount!==0){p=v.anchorNode;var w=v.anchorOffset,k=v.focusNode;v=v.focusOffset;try{p.nodeType,k.nodeType}catch{p=null;break e}var $=0,V=-1,Y=-1,de=0,be=0,Se=o,ye=null;t:for(;;){for(var Ae;Se!==p||w!==0&&Se.nodeType!==3||(V=$+w),Se!==k||v!==0&&Se.nodeType!==3||(Y=$+v),Se.nodeType===3&&($+=Se.nodeValue.length),(Ae=Se.firstChild)!==null;)ye=Se,Se=Ae;for(;;){if(Se===o)break t;if(ye===p&&++de===w&&(V=$),ye===k&&++be===v&&(Y=$),(Ae=Se.nextSibling)!==null)break;Se=ye,ye=Se.parentNode}Se=Ae}p=V===-1||Y===-1?null:{start:V,end:Y}}else p=null}p=p||{start:0,end:0}}else p=null;for(Es={focusedElem:o,selectionRange:p},Mu=!1,Re=l;Re!==null;)if(l=Re,o=l.child,(l.subtreeFlags&1028)!==0&&o!==null)o.return=l,Re=o;else for(;Re!==null;){l=Re;try{var Le=l.alternate;if((l.flags&1024)!==0)switch(l.tag){case 0:case 11:case 15:break;case 1:if(Le!==null){var De=Le.memoizedProps,rn=Le.memoizedState,le=l.stateNode,ee=le.getSnapshotBeforeUpdate(l.elementType===l.type?De:Gr(l.type,De),rn);le.__reactInternalSnapshotBeforeUpdate=ee}break;case 3:var ue=l.stateNode.containerInfo;ue.nodeType===1?ue.textContent="":ue.nodeType===9&&ue.documentElement&&ue.removeChild(ue.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(Ce){qt(l,l.return,Ce)}if(o=l.sibling,o!==null){o.return=l.return,Re=o;break}Re=l.return}return Le=$m,$m=!1,Le}function yo(o,l,p){var v=l.updateQueue;if(v=v!==null?v.lastEffect:null,v!==null){var w=v=v.next;do{if((w.tag&o)===o){var k=w.destroy;w.destroy=void 0,k!==void 0&&Wa(l,p,k)}w=w.next}while(w!==v)}}function Ha(o,l){if(l=l.updateQueue,l=l!==null?l.lastEffect:null,l!==null){var p=l=l.next;do{if((p.tag&o)===o){var v=p.create;p.destroy=v()}p=p.next}while(p!==l)}}function Ic(o){var l=o.ref;if(l!==null){var p=o.stateNode;switch(o.tag){case 5:o=p;break;default:o=p}typeof l=="function"?l(o):l.current=o}}function Am(o){var l=o.alternate;l!==null&&(o.alternate=null,Am(l)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(l=o.stateNode,l!==null&&(delete l[Ri],delete l[Uo],delete l[ec],delete l[D],delete l[Cl])),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function Rm(o){return o.tag===5||o.tag===3||o.tag===4}function Lm(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||Rm(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Kd(o,l,p){var v=o.tag;if(v===5||v===6)o=o.stateNode,l?p.nodeType===8?p.parentNode.insertBefore(o,l):p.insertBefore(o,l):(p.nodeType===8?(l=p.parentNode,l.insertBefore(o,p)):(l=p,l.appendChild(o)),p=p._reactRootContainer,p!=null||l.onclick!==null||(l.onclick=Ju));else if(v!==4&&(o=o.child,o!==null))for(Kd(o,l,p),o=o.sibling;o!==null;)Kd(o,l,p),o=o.sibling}function $c(o,l,p){var v=o.tag;if(v===5||v===6)o=o.stateNode,l?p.insertBefore(o,l):p.appendChild(o);else if(v!==4&&(o=o.child,o!==null))for($c(o,l,p),o=o.sibling;o!==null;)$c(o,l,p),o=o.sibling}var kn=null,pi=!1;function Ki(o,l,p){for(p=p.child;p!==null;)Wd(o,l,p),p=p.sibling}function Wd(o,l,p){if(Ii&&typeof Ii.onCommitFiberUnmount=="function")try{Ii.onCommitFiberUnmount(_u,p)}catch{}switch(p.tag){case 5:Ut||zl(p,l);case 6:var v=kn,w=pi;kn=null,Ki(o,l,p),kn=v,pi=w,kn!==null&&(pi?(o=kn,p=p.stateNode,o.nodeType===8?o.parentNode.removeChild(p):o.removeChild(p)):kn.removeChild(p.stateNode));break;case 18:kn!==null&&(pi?(o=kn,p=p.stateNode,o.nodeType===8?pd(o.parentNode,p):o.nodeType===1&&pd(o,p),Et(o)):pd(kn,p.stateNode));break;case 4:v=kn,w=pi,kn=p.stateNode.containerInfo,pi=!0,Ki(o,l,p),kn=v,pi=w;break;case 0:case 11:case 14:case 15:if(!Ut&&(v=p.updateQueue,v!==null&&(v=v.lastEffect,v!==null))){w=v=v.next;do{var k=w,$=k.destroy;k=k.tag,$!==void 0&&((k&2)!==0||(k&4)!==0)&&Wa(p,l,$),w=w.next}while(w!==v)}Ki(o,l,p);break;case 1:if(!Ut&&(zl(p,l),v=p.stateNode,typeof v.componentWillUnmount=="function"))try{v.props=p.memoizedProps,v.state=p.memoizedState,v.componentWillUnmount()}catch(V){qt(p,l,V)}Ki(o,l,p);break;case 21:Ki(o,l,p);break;case 22:p.mode&1?(Ut=(v=Ut)||p.memoizedState!==null,Ki(o,l,p),Ut=v):Ki(o,l,p);break;default:Ki(o,l,p)}}function jl(o){var l=o.updateQueue;if(l!==null){o.updateQueue=null;var p=o.stateNode;p===null&&(p=o.stateNode=new nr),l.forEach(function(v){var w=py.bind(null,o,v);p.has(v)||(p.add(v),v.then(w,w))})}}function Tr(o,l){var p=l.deletions;if(p!==null)for(var v=0;vw&&(w=$),v&=~k}if(v=w,v=jt()-v,v=(120>v?120:480>v?480:1080>v?1080:1920>v?1920:3e3>v?3e3:4320>v?4320:1960*Dm(v/1960))-v,10o?16:o,es===null)var v=!1;else{if(o=es,es=null,rr=0,(gt&6)!==0)throw Error(n(331));var w=gt;for(gt|=4,Re=o.current;Re!==null;){var k=Re,$=k.child;if((Re.flags&16)!==0){var V=k.deletions;if(V!==null){for(var Y=0;Yjt()-Yd?zs(o,0):Lc|=p),vr(o,l)}function Bm(o,l){l===0&&((o.mode&1)===0?l=1:(l=Iu,Iu<<=1,(Iu&130023424)===0&&(Iu=4194304)));var p=ir();o=fo(o,l),o!==null&&(fa(o,l,p),vr(o,p))}function dy(o){var l=o.memoizedState,p=0;l!==null&&(p=l.retryLane),Bm(o,p)}function py(o,l){var p=0;switch(o.tag){case 13:var v=o.stateNode,w=o.memoizedState;w!==null&&(p=w.retryLane);break;case 19:v=o.stateNode;break;default:throw Error(n(314))}v!==null&&v.delete(l),Bm(o,p)}var Vm;Vm=function(o,l,p){if(o!==null)if(o.memoizedProps!==l.pendingProps||dr.current)tr=!0;else{if((o.lanes&p)===0&&(l.flags&128)===0)return tr=!1,_m(o,l,p);tr=(o.flags&131072)!==0}else tr=!1,Ft&&(l.flags&1048576)!==0&&dm(l,oc,l.index);switch(l.lanes=0,l.tag){case 2:var v=l.type;Tc(o,l),o=l.pendingProps;var w=Pl(l,Bn.current);Go(l,p),w=Ms(null,l,v,o,w,p);var k=hc();return l.flags|=1,typeof w=="object"&&w!==null&&typeof w.render=="function"&&w.$$typeof===void 0?(l.tag=1,l.memoizedState=null,l.updateQueue=null,pr(v)?(k=!0,jr(l)):k=!1,l.memoizedState=w.state!==null&&w.state!==void 0?w.state:null,cc(l),w.updater=Sc,l.stateNode=w,w._reactInternals=l,Md(l,v,o,p),l=Bd(null,l,v,!0,k,p)):(l.tag=0,Ft&&k&&Ta(l),Ln(null,l,w,p),l=l.child),l;case 16:v=l.elementType;e:{switch(Tc(o,l),o=l.pendingProps,w=v._init,v=w(v._payload),l.type=v,w=l.tag=my(v),o=Gr(v,o),w){case 0:l=zd(null,l,v,o,p);break e;case 1:l=jd(null,l,v,o,p);break e;case 11:l=Pm(null,l,v,o,p);break e;case 14:l=Nd(null,l,v,Gr(v.type,o),p);break e}throw Error(n(306,v,""))}return l;case 0:return v=l.type,w=l.pendingProps,w=l.elementType===v?w:Gr(v,w),zd(o,l,v,w,p);case 1:return v=l.type,w=l.pendingProps,w=l.elementType===v?w:Gr(v,w),jd(o,l,v,w,p);case 3:e:{if(Tm(l),o===null)throw Error(n(387));v=l.pendingProps,k=l.memoizedState,w=k.element,gm(o,l),Il(l,v,null,p);var $=l.memoizedState;if(v=$.element,k.isDehydrated)if(k={element:v,isDehydrated:!1,cache:$.cache,pendingSuspenseBoundaries:$.pendingSuspenseBoundaries,transitions:$.transitions},l.updateQueue.baseState=k,l.memoizedState=k,l.flags&256){w=Ns(Error(n(423)),l),l=Ui(o,l,v,p,w);break e}else if(v!==w){w=Ns(Error(n(424)),l),l=Ui(o,l,v,p,w);break e}else for(Er=Vo(l.stateNode.containerInfo.firstChild),Un=l,Ft=!0,ci=null,p=lc(l,null,v,p),l.child=p;p;)p.flags=p.flags&-3|4096,p=p.sibling;else{if(Fi(),v===w){l=di(o,l,p);break e}Ln(o,l,v,p)}l=l.child}return l;case 5:return wd(l),o===null&&hr(l),v=l.type,w=l.pendingProps,k=o!==null?o.memoizedProps:null,$=w.children,Ea(v,w)?$=null:k!==null&&Ea(v,k)&&(l.flags|=32),Od(o,l),Ln(o,l,$,p),l.child;case 6:return o===null&&hr(l),null;case 13:return Pc(o,l,p);case 4:return xd(l,l.stateNode.containerInfo),v=l.pendingProps,o===null?l.child=Jt(l,null,v,p):Ln(o,l,v,p),l.child;case 11:return v=l.type,w=l.pendingProps,w=l.elementType===v?w:Gr(v,w),Pm(o,l,v,w,p);case 7:return Ln(o,l,l.pendingProps,p),l.child;case 8:return Ln(o,l,l.pendingProps.children,p),l.child;case 12:return Ln(o,l,l.pendingProps.children,p),l.child;case 10:e:{if(v=l.type._context,w=l.pendingProps,k=l.memoizedProps,$=w.value,$t($a,v._currentValue),v._currentValue=$,k!==null)if(ce(k.value,$)){if(k.children===w.children&&!dr.current){l=di(o,l,p);break e}}else for(k=l.child,k!==null&&(k.return=l);k!==null;){var V=k.dependencies;if(V!==null){$=k.child;for(var Y=V.firstContext;Y!==null;){if(Y.context===v){if(k.tag===1){Y=po(-1,p&-p),Y.tag=2;var de=k.updateQueue;if(de!==null){de=de.shared;var be=de.pending;be===null?Y.next=Y:(Y.next=be.next,be.next=Y),de.pending=Y}}k.lanes|=p,Y=k.alternate,Y!==null&&(Y.lanes|=p),Rn(k.return,p,l),V.lanes|=p;break}Y=Y.next}}else if(k.tag===10)$=k.type===l.type?null:k.child;else if(k.tag===18){if($=k.return,$===null)throw Error(n(341));$.lanes|=p,V=$.alternate,V!==null&&(V.lanes|=p),Rn($,p,l),$=k.sibling}else $=k.child;if($!==null)$.return=k;else for($=k;$!==null;){if($===l){$=null;break}if(k=$.sibling,k!==null){k.return=$.return,$=k;break}$=$.return}k=$}Ln(o,l,w.children,p),l=l.child}return l;case 9:return w=l.type,v=l.pendingProps.children,Go(l,p),w=Ur(w),v=v(w),l.flags|=1,Ln(o,l,v,p),l.child;case 14:return v=l.type,w=Gr(v,l.pendingProps),w=Gr(v.type,w),Nd(o,l,v,w,p);case 15:return Vi(o,l,l.type,l.pendingProps,p);case 17:return v=l.type,w=l.pendingProps,w=l.elementType===v?w:Gr(v,w),Tc(o,l),l.tag=1,pr(v)?(o=!0,jr(l)):o=!1,Go(l,p),Ds(l,v,w),Md(l,v,w,p),Bd(null,l,v,!0,o,p);case 19:return Xo(o,l,p);case 22:return Fd(o,l,p)}throw Error(n(156,l.tag))};function Um(o,l){return Th(o,l)}function hy(o,l,p,v){this.tag=o,this.key=p,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=v,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yr(o,l,p,v){return new hy(o,l,p,v)}function jc(o){return o=o.prototype,!(!o||!o.isReactComponent)}function my(o){if(typeof o=="function")return jc(o)?1:0;if(o!=null){if(o=o.$$typeof,o===X)return 11;if(o===fe)return 14}return 2}function vi(o,l){var p=o.alternate;return p===null?(p=Yr(o.tag,l,o.key,o.mode),p.elementType=o.elementType,p.type=o.type,p.stateNode=o.stateNode,p.alternate=o,o.alternate=p):(p.pendingProps=l,p.type=o.type,p.flags=0,p.subtreeFlags=0,p.deletions=null),p.flags=o.flags&14680064,p.childLanes=o.childLanes,p.lanes=o.lanes,p.child=o.child,p.memoizedProps=o.memoizedProps,p.memoizedState=o.memoizedState,p.updateQueue=o.updateQueue,l=o.dependencies,p.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext},p.sibling=o.sibling,p.index=o.index,p.ref=o.ref,p}function Bc(o,l,p,v,w,k){var $=2;if(v=o,typeof o=="function")jc(o)&&($=1);else if(typeof o=="string")$=5;else e:switch(o){case Z:return Bs(p.children,w,k,l);case ne:$=8,w|=8;break;case ae:return o=Yr(12,p,l,w|2),o.elementType=ae,o.lanes=k,o;case re:return o=Yr(13,p,l,w),o.elementType=re,o.lanes=k,o;case G:return o=Yr(19,p,l,w),o.elementType=G,o.lanes=k,o;case q:return Vc(p,w,k,l);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case O:$=10;break e;case U:$=9;break e;case X:$=11;break e;case fe:$=14;break e;case J:$=16,v=null;break e}throw Error(n(130,o==null?o:typeof o,""))}return l=Yr($,p,l,w),l.elementType=o,l.type=v,l.lanes=k,l}function Bs(o,l,p,v){return o=Yr(7,o,v,l),o.lanes=p,o}function Vc(o,l,p,v){return o=Yr(22,o,v,l),o.elementType=q,o.lanes=p,o.stateNode={isHidden:!1},o}function rp(o,l,p){return o=Yr(6,o,null,l),o.lanes=p,o}function ip(o,l,p){return l=Yr(4,o.children!==null?o.children:[],o.key,l),l.lanes=p,l.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},l}function gy(o,l,p,v,w){this.tag=l,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ca(0),this.expirationTimes=ca(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ca(0),this.identifierPrefix=v,this.onRecoverableError=w,this.mutableSourceEagerHydrationData=null}function op(o,l,p,v,w,k,$,V,Y){return o=new gy(o,l,p,V,Y),l===1?(l=1,k===!0&&(l|=8)):l=0,k=Yr(3,null,null,l),o.current=k,k.stateNode=o,k.memoizedState={element:v,isDehydrated:p,cache:null,transitions:null,pendingSuspenseBoundaries:null},cc(k),o}function vy(o,l,p){var v=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Ny.exports=zR(),Ny.exports}var n1;function jR(){if(n1)return Zm;n1=1;var e=iE();return Zm.createRoot=e.createRoot,Zm.hydrateRoot=e.hydrateRoot,Zm}var BR=jR();function nx(e={}){const{strict:t=!0,errorMessage:n="useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",name:r}=e,i=S.createContext(void 0);i.displayName=r;function s(){var a;const c=S.useContext(i);if(!c&&t){const d=new Error(n);throw d.name="ContextError",(a=Error.captureStackTrace)==null||a.call(Error,d,s),d}return c}return[i.Provider,s,i]}function VR(e){return{UNSAFE_getDOMNode(){return e.current}}}function Qi(e){const t=S.useRef(null);return S.useImperativeHandle(e,()=>t.current),t}function rx(e){return Array.isArray(e)}function UR(e){return rx(e)&&e.length===0}function oE(e){const t=typeof e;return e!=null&&(t==="object"||t==="function")&&!rx(e)}function KR(e){return oE(e)&&Object.keys(e).length===0}function WR(e){return rx(e)?UR(e):oE(e)?KR(e):e==null||e===""}function HR(e){return typeof e=="function"}var Me=e=>e?"true":void 0;function sE(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t{let t=" ";for(const n of e)if(typeof n=="string"&&n.length>0){t=n;break}return t},qR=e=>e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"";function r1(...e){return function(n){e.some(r=>(r?.(n),n?.defaultPrevented))}}function YR(e){return`${e}-${Math.floor(Math.random()*1e6)}`}function tG(e){for(const t in e)t.startsWith("on")&&delete e[t];return e}function el(e){if(!e||typeof e!="object")return"";try{return JSON.stringify(e)}catch{return""}}function XR(e,t,n){return Math.min(Math.max(e,t),n)}function QR(e,t=100){return Math.min(Math.max(e,0),t)}var i1={};function JR(e,t,...n){const i=`[Hero UI] : ${e}`;typeof console>"u"||i1[i]||(i1[i]=!0)}function gf(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}var o1=new Map;function ZR(e,t){if(e===t)return e;let n=o1.get(e);if(n)return n.forEach(i=>i.current=t),t;let r=o1.get(t);return r?(r.forEach(i=>i.current=e),e):t}function hn(...e){let t={...e[0]};for(let n=1;n=65&&i.charCodeAt(2)<=90?t[i]=gf(s,a):(i==="className"||i==="UNSAFE_className")&&typeof s=="string"&&typeof a=="string"?t[i]=pn(s,a):i==="id"&&s&&a?t.id=ZR(s,a):t[i]=a!==void 0?a:s}}return t}function lE(...e){return e.length===1&&e[0]?e[0]:t=>{let n=!1;const r=e.map(i=>{const s=s1(i,t);return n||(n=typeof s=="function"),s});if(n)return()=>{r.forEach((i,s)=>{typeof i=="function"?i?.():s1(e[s],null)})}}}function s1(e,t){if(typeof e=="function")return()=>e(t);e!=null&&"current"in e&&(e.current=t)}function eL(e,t){if(e!=null){if(HR(e)){e(t);return}try{e.current=t}catch{throw new Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function tL(...e){return t=>{e.forEach(n=>eL(n,t))}}function nL(){const e=()=>()=>{};return S.useSyncExternalStore(e,()=>!0,()=>!1)}var rL=new Set(["id","type","style","title","role","tabIndex","htmlFor","width","height","abbr","accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","async","autoComplete","autoFocus","autoPlay","cellPadding","cellSpacing","challenge","charset","checked","cite","class","className","cols","colSpan","command","content","contentEditable","contextMenu","controls","coords","crossOrigin","data","dateTime","default","defer","dir","disabled","download","draggable","dropzone","encType","enterKeyHint","for","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","hidden","high","href","hrefLang","httpEquiv","icon","inputMode","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","list","loop","manifest","max","maxLength","media","mediaGroup","method","min","minLength","multiple","muted","name","noValidate","open","optimum","pattern","ping","placeholder","poster","preload","radioGroup","referrerPolicy","readOnly","rel","required","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","slot","sortable","span","spellCheck","src","srcDoc","srcSet","start","step","target","translate","typeMustMatch","useMap","value","wmode","wrap"]),iL=new Set(["onCopy","onCut","onPaste","onLoad","onError","onWheel","onScroll","onCompositionEnd","onCompositionStart","onCompositionUpdate","onKeyDown","onKeyPress","onKeyUp","onFocus","onBlur","onChange","onInput","onSubmit","onClick","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onPointerDown","onPointerEnter","onPointerLeave","onPointerUp","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onAnimationStart","onAnimationEnd","onAnimationIteration","onTransitionEnd"]),l1=/^(data-.*)$/,oL=/^(aria-.*)$/,eg=/^(on[A-Z].*)$/;function vf(e,t={}){let{labelable:n=!0,enabled:r=!0,propNames:i,omitPropNames:s,omitEventNames:a,omitDataProps:c,omitEventProps:d}=t,h={};if(!r)return e;for(const m in e)s?.has(m)||a?.has(m)&&eg.test(m)||eg.test(m)&&!iL.has(m)||c&&l1.test(m)||d&&eg.test(m)||(Object.prototype.hasOwnProperty.call(e,m)&&(rL.has(m)||n&&oL.test(m)||i?.has(m)||l1.test(m))||eg.test(m))&&(h[m]=e[m]);return h}var[sL,Ti]=nx({name:"ProviderContext",strict:!1});const lL=new Set(["Arab","Syrc","Samr","Mand","Thaa","Mend","Nkoo","Adlm","Rohg","Hebr"]),aL=new Set(["ae","ar","arc","bcc","bqi","ckb","dv","fa","glk","he","ku","mzn","nqo","pnb","ps","sd","ug","ur","yi"]);function aE(e){if(Intl.Locale){let n=new Intl.Locale(e).maximize(),r=typeof n.getTextInfo=="function"?n.getTextInfo():n.textInfo;if(r)return r.direction==="rtl";if(n.script)return lL.has(n.script)}let t=e.split("-")[0];return aL.has(t)}const uE={prefix:String(Math.round(Math.random()*1e10)),current:0},cE=We.createContext(uE),uL=We.createContext(!1);let zy=new WeakMap;function cL(e=!1){let t=S.useContext(cE),n=S.useRef(null);if(n.current===null&&!e){var r,i;let s=(i=We.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||i===void 0||(r=i.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(s){let a=zy.get(s);a==null?zy.set(s,{id:t.current,state:s.memoizedState}):s.memoizedState!==a.state&&(t.current=a.id,zy.delete(s))}n.current=++t.current}return n.current}function fL(e){let t=S.useContext(cE),n=cL(!!e),r=`react-aria${t.prefix}`;return e||`${r}-${n}`}function dL(e){let t=We.useId(),[n]=S.useState(iv()),r=n?"react-aria":`react-aria${uE.prefix}`;return e||`${r}-${t}`}const pL=typeof We.useId=="function"?dL:fL;function hL(){return!1}function mL(){return!0}function gL(e){return()=>{}}function iv(){return typeof We.useSyncExternalStore=="function"?We.useSyncExternalStore(gL,hL,mL):S.useContext(uL)}const vL=Symbol.for("react-aria.i18n.locale");function fE(){let e=typeof window<"u"&&window[vL]||typeof navigator<"u"&&(navigator.language||navigator.userLanguage)||"en-US";try{Intl.DateTimeFormat.supportedLocalesOf([e])}catch{e="en-US"}return{locale:e,direction:aE(e)?"rtl":"ltr"}}let z0=fE(),Ep=new Set;function a1(){z0=fE();for(let e of Ep)e(z0)}function dE(){let e=iv(),[t,n]=S.useState(z0);return S.useEffect(()=>(Ep.size===0&&window.addEventListener("languagechange",a1),Ep.add(n),()=>{Ep.delete(n),Ep.size===0&&window.removeEventListener("languagechange",a1)}),[]),e?{locale:"en-US",direction:"ltr"}:t}const pE=We.createContext(null);function yL(e){let{locale:t,children:n}=e,r=dE(),i=We.useMemo(()=>t?{locale:t,direction:aE(t)?"rtl":"ltr"}:r,[r,t]);return We.createElement(pE.Provider,{value:i},n)}function fh(){let e=dE();return S.useContext(pE)||e}const bL=Symbol.for("react-aria.i18n.locale"),xL=Symbol.for("react-aria.i18n.strings");let Xc;class ov{getStringForLocale(t,n){let i=this.getStringsForLocale(n)[t];if(!i)throw new Error(`Could not find intl message ${t} in ${n} locale`);return i}getStringsForLocale(t){let n=this.strings[t];return n||(n=wL(t,this.strings,this.defaultLocale),this.strings[t]=n),n}static getGlobalDictionaryForPackage(t){if(typeof window>"u")return null;let n=window[bL];if(Xc===void 0){let i=window[xL];if(!i)return null;Xc={};for(let s in i)Xc[s]=new ov({[n]:i[s]},n)}let r=Xc?.[t];if(!r)throw new Error(`Strings for package "${t}" were not included by LocalizedStringProvider. Please add it to the list passed to createLocalizedStringDictionary.`);return r}constructor(t,n="en-US"){this.strings=Object.fromEntries(Object.entries(t).filter(([,r])=>r)),this.defaultLocale=n}}function wL(e,t,n="en-US"){if(t[e])return t[e];let r=SL(e);if(t[r])return t[r];for(let i in t)if(i.startsWith(r+"-"))return t[i];return t[n]}function SL(e){return Intl.Locale?new Intl.Locale(e).language:e.split("-")[0]}const u1=new Map,c1=new Map;class kL{format(t,n){let r=this.strings.getStringForLocale(t,this.locale);return typeof r=="function"?r(n,this):r}plural(t,n,r="cardinal"){let i=n["="+t];if(i)return typeof i=="function"?i():i;let s=this.locale+":"+r,a=u1.get(s);a||(a=new Intl.PluralRules(this.locale,{type:r}),u1.set(s,a));let c=a.select(t);return i=n[c]||n.other,typeof i=="function"?i():i}number(t){let n=c1.get(this.locale);return n||(n=new Intl.NumberFormat(this.locale),c1.set(this.locale,n)),n.format(t)}select(t,n){let r=t[n]||t.other;return typeof r=="function"?r():r}constructor(t,n){this.locale=t,this.strings=n}}const f1=new WeakMap;function CL(e){let t=f1.get(e);return t||(t=new ov(e),f1.set(e,t)),t}function EL(e,t){return t&&ov.getGlobalDictionaryForPackage(t)||CL(e)}function PL(e,t){let{locale:n}=fh(),r=EL(e,t);return S.useMemo(()=>new kL(n,r),[n,r])}function TL(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _L(e,t,n){TL(e,t),t.set(e,n)}const Zt=typeof document<"u"?We.useLayoutEffect:()=>{};function Fn(e){const t=S.useRef(null);return Zt(()=>{t.current=e},[e]),S.useCallback((...n)=>{const r=t.current;return r?.(...n)},[])}function IL(e){let[t,n]=S.useState(e),r=S.useRef(null),i=Fn(()=>{if(!r.current)return;let a=r.current.next();if(a.done){r.current=null;return}t===a.value?i():n(a.value)});Zt(()=>{r.current&&i()});let s=Fn(a=>{r.current=a(t),i()});return[t,s]}let $L=!!(typeof window<"u"&&window.document&&window.document.createElement),uf=new Map,Pp;typeof FinalizationRegistry<"u"&&(Pp=new FinalizationRegistry(e=>{uf.delete(e)}));function yf(e){let[t,n]=S.useState(e),r=S.useRef(null),i=pL(t),s=S.useRef(null);if(Pp&&Pp.register(s,i),$L){const a=uf.get(i);a&&!a.includes(r)?a.push(r):uf.set(i,[r])}return Zt(()=>{let a=i;return()=>{Pp&&Pp.unregister(s),uf.delete(a)}},[i]),S.useEffect(()=>{let a=r.current;return a&&n(a),()=>{a&&(r.current=null)}}),i}function AL(e,t){if(e===t)return e;let n=uf.get(e);if(n)return n.forEach(i=>i.current=t),t;let r=uf.get(t);return r?(r.forEach(i=>i.current=e),e):t}function j0(e=[]){let t=yf(),[n,r]=IL(t),i=S.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return Zt(i,[t,i,...e]),n}function bf(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const At=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},Ji=e=>e&&"window"in e&&e.window===e?e:At(e).defaultView||window;function RL(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&typeof e.nodeType=="number"}function LL(e){return RL(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}let ML=!1;function sv(){return ML}function ni(e,t){if(!sv())return t&&e?e.contains(t):!1;if(!e||!t)return!1;let n=t;for(;n!==null;){if(n===e)return!0;n.tagName==="SLOT"&&n.assignedSlot?n=n.assignedSlot.parentNode:LL(n)?n=n.host:n=n.parentNode}return!1}const Mr=(e=document)=>{var t;if(!sv())return e.activeElement;let n=e.activeElement;for(;n&&"shadowRoot"in n&&(!((t=n.shadowRoot)===null||t===void 0)&&t.activeElement);)n=n.shadowRoot.activeElement;return n};function wn(e){return sv()&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}class DL{get currentNode(){return this._currentNode}set currentNode(t){if(!ni(this.root,t))throw new Error("Cannot set currentNode to a node that is not contained by the root node.");const n=[];let r=t,i=t;for(this._currentNode=t;r&&r!==this.root;)if(r.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const a=r,c=this._doc.createTreeWalker(a,this.whatToShow,{acceptNode:this._acceptNode});n.push(c),c.currentNode=i,this._currentSetFor.add(c),r=i=a.host}else r=r.parentNode;const s=this._doc.createTreeWalker(this.root,this.whatToShow,{acceptNode:this._acceptNode});n.push(s),s.currentNode=i,this._currentSetFor.add(s),this._walkerStack=n}get doc(){return this._doc}firstChild(){let t=this.currentNode,n=this.nextNode();return ni(t,n)?(n&&(this.currentNode=n),n):(this.currentNode=t,null)}lastChild(){let n=this._walkerStack[0].lastChild();return n&&(this.currentNode=n),n}nextNode(){const t=this._walkerStack[0].nextNode();if(t){if(t.shadowRoot){var n;let i;if(typeof this.filter=="function"?i=this.filter(t):!((n=this.filter)===null||n===void 0)&&n.acceptNode&&(i=this.filter.acceptNode(t)),i===NodeFilter.FILTER_ACCEPT)return this.currentNode=t,t;let s=this.nextNode();return s&&(this.currentNode=s),s}return t&&(this.currentNode=t),t}else if(this._walkerStack.length>1){this._walkerStack.shift();let r=this.nextNode();return r&&(this.currentNode=r),r}else return null}previousNode(){const t=this._walkerStack[0];if(t.currentNode===t.root){if(this._currentSetFor.has(t))if(this._currentSetFor.delete(t),this._walkerStack.length>1){this._walkerStack.shift();let i=this.previousNode();return i&&(this.currentNode=i),i}else return null;return null}const n=t.previousNode();if(n){if(n.shadowRoot){var r;let s;if(typeof this.filter=="function"?s=this.filter(n):!((r=this.filter)===null||r===void 0)&&r.acceptNode&&(s=this.filter.acceptNode(n)),s===NodeFilter.FILTER_ACCEPT)return n&&(this.currentNode=n),n;let a=this.lastChild();return a&&(this.currentNode=a),a}return n&&(this.currentNode=n),n}else if(this._walkerStack.length>1){this._walkerStack.shift();let i=this.previousNode();return i&&(this.currentNode=i),i}else return null}nextSibling(){return null}previousSibling(){return null}parentNode(){return null}constructor(t,n,r,i){this._walkerStack=[],this._currentSetFor=new Set,this._acceptNode=a=>{if(a.nodeType===Node.ELEMENT_NODE){const d=a.shadowRoot;if(d){const h=this._doc.createTreeWalker(d,this.whatToShow,{acceptNode:this._acceptNode});return this._walkerStack.unshift(h),NodeFilter.FILTER_ACCEPT}else{var c;if(typeof this.filter=="function")return this.filter(a);if(!((c=this.filter)===null||c===void 0)&&c.acceptNode)return this.filter.acceptNode(a);if(this.filter===null)return NodeFilter.FILTER_ACCEPT}}return NodeFilter.FILTER_SKIP},this._doc=t,this.root=n,this.filter=i??null,this.whatToShow=r??NodeFilter.SHOW_ALL,this._currentNode=n,this._walkerStack.unshift(t.createTreeWalker(n,r,this._acceptNode));const s=n.shadowRoot;if(s){const a=this._doc.createTreeWalker(s,this.whatToShow,{acceptNode:this._acceptNode});this._walkerStack.unshift(a)}}}function NL(e,t,n,r){return sv()?new DL(e,t,n,r):e.createTreeWalker(t,n,r)}function hE(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t=65&&i.charCodeAt(2)<=90?t[i]=bf(s,a):(i==="className"||i==="UNSAFE_className")&&typeof s=="string"&&typeof a=="string"?t[i]=FL(s,a):i==="id"&&s&&a?t.id=AL(s,a):t[i]=a!==void 0?a:s}}return t}const OL=new Set(["id"]),zL=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),jL=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),BL=/^(data-.*)$/;function If(e,t={}){let{labelable:n,isLink:r,propNames:i}=t,s={};for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&(OL.has(a)||n&&zL.has(a)||r&&jL.has(a)||i?.has(a)||BL.test(a))&&(s[a]=e[a]);return s}function Ql(e){if(VL())e.focus({preventScroll:!0});else{let t=UL(e);e.focus(),KL(t)}}let tg=null;function VL(){if(tg==null){tg=!1;try{document.createElement("div").focus({get preventScroll(){return tg=!0,!0}})}catch{}}return tg}function UL(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function ix(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function tl(e){let t=null;return()=>(t==null&&(t=e()),t)}const gu=tl(function(){return ix(/^Mac/i)}),WL=tl(function(){return ix(/^iPhone/i)}),mE=tl(function(){return ix(/^iPad/i)||gu()&&navigator.maxTouchPoints>1}),av=tl(function(){return WL()||mE()}),HL=tl(function(){return gu()||av()}),gE=tl(function(){return lv(/AppleWebKit/i)&&!vE()}),vE=tl(function(){return lv(/Chrome/i)}),ox=tl(function(){return lv(/Android/i)}),GL=tl(function(){return lv(/Firefox/i)}),yE=S.createContext({isNative:!0,open:XL,useHref:e=>e});function qL(e){let{children:t,navigate:n,useHref:r}=e,i=S.useMemo(()=>({isNative:!1,open:(s,a,c,d)=>{xE(s,h=>{YL(h,a)?n(c,d):vu(h,a)})},useHref:r||(s=>s)}),[n,r]);return We.createElement(yE.Provider,{value:i},t)}function bE(){return S.useContext(yE)}function YL(e,t){let n=e.getAttribute("target");return(!n||n==="_self")&&e.origin===location.origin&&!e.hasAttribute("download")&&!t.metaKey&&!t.ctrlKey&&!t.altKey&&!t.shiftKey}function vu(e,t,n=!0){var r,i;let{metaKey:s,ctrlKey:a,altKey:c,shiftKey:d}=t;GL()&&(!((i=window.event)===null||i===void 0||(r=i.type)===null||r===void 0)&&r.startsWith("key"))&&e.target==="_blank"&&(gu()?s=!0:a=!0);let h=gE()&&gu()&&!mE()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:s,ctrlKey:a,altKey:c,shiftKey:d}):new MouseEvent("click",{metaKey:s,ctrlKey:a,altKey:c,shiftKey:d,bubbles:!0,cancelable:!0});vu.isOpening=n,Ql(e),e.dispatchEvent(h),vu.isOpening=!1}vu.isOpening=!1;function xE(e,t){if(e instanceof HTMLAnchorElement)t(e);else if(e.hasAttribute("data-href")){let n=document.createElement("a");n.href=e.getAttribute("data-href"),e.hasAttribute("data-target")&&(n.target=e.getAttribute("data-target")),e.hasAttribute("data-rel")&&(n.rel=e.getAttribute("data-rel")),e.hasAttribute("data-download")&&(n.download=e.getAttribute("data-download")),e.hasAttribute("data-ping")&&(n.ping=e.getAttribute("data-ping")),e.hasAttribute("data-referrer-policy")&&(n.referrerPolicy=e.getAttribute("data-referrer-policy")),e.appendChild(n),t(n),e.removeChild(n)}}function XL(e,t){xE(e,n=>vu(n,t))}function nG(e){let t=bE();var n;const r=t.useHref((n=e?.href)!==null&&n!==void 0?n:"");return{href:e?.href?r:void 0,target:e?.target,rel:e?.rel,download:e?.download,ping:e?.ping,referrerPolicy:e?.referrerPolicy}}let Gl=new Map,B0=new Set;function d1(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let i=Gl.get(r.target);i||(i=new Set,Gl.set(r.target,i),r.target.addEventListener("transitioncancel",n,{once:!0})),i.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let i=Gl.get(r.target);if(i&&(i.delete(r.propertyName),i.size===0&&(r.target.removeEventListener("transitioncancel",n),Gl.delete(r.target)),Gl.size===0)){for(let s of B0)s();B0.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?d1():document.addEventListener("DOMContentLoaded",d1));function QL(){for(const[e]of Gl)"isConnected"in e&&!e.isConnected&&Gl.delete(e)}function wE(e){requestAnimationFrame(()=>{QL(),Gl.size===0?e():B0.add(e)})}function sx(){let e=S.useRef(new Map),t=S.useCallback((i,s,a,c)=>{let d=c?.once?(...h)=>{e.current.delete(a),a(...h)}:a;e.current.set(a,{type:s,eventTarget:i,fn:d,options:c}),i.addEventListener(s,d,c)},[]),n=S.useCallback((i,s,a,c)=>{var d;let h=((d=e.current.get(a))===null||d===void 0?void 0:d.fn)||a;i.removeEventListener(s,h,c),e.current.delete(a)},[]),r=S.useCallback(()=>{e.current.forEach((i,s)=>{n(i.eventTarget,i.type,s,i.options)})},[n]);return S.useEffect(()=>r,[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function SE(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=yf(n),i&&r?i=[...new Set([n,...i.trim().split(/\s+/)])].join(" "):i&&(i=i.trim().split(/\s+/).join(" ")),!r&&!i&&t&&(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function p1(e,t){const n=S.useRef(!0),r=S.useRef(null);Zt(()=>(n.current=!0,()=>{n.current=!1}),[]),Zt(()=>{n.current?n.current=!1:(!r.current||t.some((i,s)=>!Object.is(i,r[s])))&&e(),r.current=t},t)}function JL(){return typeof window.ResizeObserver<"u"}function h1(e){const{ref:t,box:n,onResize:r}=e;S.useEffect(()=>{let i=t?.current;if(i)if(JL()){const s=new window.ResizeObserver(a=>{a.length&&r()});return s.observe(i,{box:n}),()=>{i&&s.unobserve(i)}}else return window.addEventListener("resize",r,!1),()=>{window.removeEventListener("resize",r,!1)}},[r,t,n])}function kE(e,t){Zt(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function Hp(e,t){if(!e)return!1;let n=window.getComputedStyle(e),r=/(auto|scroll)/.test(n.overflow+n.overflowX+n.overflowY);return r&&t&&(r=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),r}function CE(e,t){let n=e;for(Hp(n,t)&&(n=n.parentElement);n&&!Hp(n,t);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}function ZL(e,t){const n=[];for(;e&&e!==document.documentElement;)Hp(e,t)&&n.push(e),e=e.parentElement;return n}function ng(e,t,n,r){let i=Fn(n),s=n==null;S.useEffect(()=>{if(s||!e.current)return;let a=e.current;return a.addEventListener(t,i,r),()=>{a.removeEventListener(t,i,r)}},[e,t,r,s,i])}function EE(e,t){let n=m1(e,t,"left"),r=m1(e,t,"top"),i=t.offsetWidth,s=t.offsetHeight,a=e.scrollLeft,c=e.scrollTop,{borderTopWidth:d,borderLeftWidth:h,scrollPaddingTop:m,scrollPaddingRight:g,scrollPaddingBottom:b,scrollPaddingLeft:x}=getComputedStyle(e),E=a+parseInt(h,10),P=c+parseInt(d,10),_=E+e.clientWidth,T=P+e.clientHeight,R=parseInt(m,10)||0,M=parseInt(b,10)||0,j=parseInt(g,10)||0,H=parseInt(x,10)||0;n<=a+H?a=n-parseInt(h,10)-H:n+i>_-j&&(a+=n+i-_+j),r<=P+R?c=r-parseInt(d,10)-R:r+s>T-M&&(c+=r+s-T+M),e.scrollLeft=a,e.scrollTop=c}function m1(e,t,n){const r=n==="left"?"offsetLeft":"offsetTop";let i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);){if(t.offsetParent.contains(e)){i-=e[r];break}t=t.offsetParent}return i}function g1(e,t){if(e&&document.contains(e)){let a=document.scrollingElement||document.documentElement;if(window.getComputedStyle(a).overflow==="hidden"){let d=ZL(e);for(let h of d)EE(h,e)}else{var n;let{left:d,top:h}=e.getBoundingClientRect();e==null||(n=e.scrollIntoView)===null||n===void 0||n.call(e,{block:"nearest"});let{left:m,top:g}=e.getBoundingClientRect();if(Math.abs(d-m)>1||Math.abs(h-g)>1){var r,i,s;t==null||(i=t.containingElement)===null||i===void 0||(r=i.scrollIntoView)===null||r===void 0||r.call(i,{block:"center",inline:"center"}),(s=e.scrollIntoView)===null||s===void 0||s.call(e,{block:"nearest"})}}}}function PE(e){return e.mozInputSource===0&&e.isTrusted?!0:ox()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function eM(e){return!ox()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}function tM(e,t,n){let r=S.useRef(t),i=Fn(()=>{n&&n(r.current)});S.useEffect(()=>{var s;let a=e==null||(s=e.current)===null||s===void 0?void 0:s.form;return a?.addEventListener("reset",i),()=>{a?.removeEventListener("reset",i)}},[e,i])}const nM="react-aria-clear-focus",rM="react-aria-focus";function cp(e){return gu()?e.metaKey:e.ctrlKey}var TE=iE();const _E=rv(TE),lx=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable^="false"])'],iM=lx.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";lx.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const oM=lx.join(':not([hidden]):not([tabindex="-1"]),');function IE(e){return e.matches(iM)}function sM(e){return e.matches(oM)}function $f(e,t,n){let[r,i]=S.useState(e||t),s=S.useRef(e!==void 0),a=e!==void 0;S.useEffect(()=>{s.current,s.current=a},[a]);let c=a?e:r,d=S.useCallback((h,...m)=>{let g=(b,...x)=>{n&&(Object.is(c,b)||n(b,...x)),a||(c=b)};typeof h=="function"?i((x,...E)=>{let P=h(a?c:x,...E);return g(P,...m),a?x:P}):(a||i(h),g(h,...m))},[a,c,n]);return[c,d]}function Mg(e,t=-1/0,n=1/0){return Math.min(Math.max(e,t),n)}let jy=new Map,V0=!1;try{V0=new Intl.NumberFormat("de-DE",{signDisplay:"exceptZero"}).resolvedOptions().signDisplay==="exceptZero"}catch{}let Dg=!1;try{Dg=new Intl.NumberFormat("de-DE",{style:"unit",unit:"degree"}).resolvedOptions().style==="unit"}catch{}const $E={degree:{narrow:{default:"°","ja-JP":" 度","zh-TW":"度","sl-SI":" °"}}};class lM{format(t){let n="";if(!V0&&this.options.signDisplay!=null?n=uM(this.numberFormatter,this.options.signDisplay,t):n=this.numberFormatter.format(t),this.options.style==="unit"&&!Dg){var r;let{unit:i,unitDisplay:s="short",locale:a}=this.resolvedOptions();if(!i)return n;let c=(r=$E[i])===null||r===void 0?void 0:r[s];n+=c[a]||c.default}return n}formatToParts(t){return this.numberFormatter.formatToParts(t)}formatRange(t,n){if(typeof this.numberFormatter.formatRange=="function")return this.numberFormatter.formatRange(t,n);if(n= start date");return`${this.format(t)} – ${this.format(n)}`}formatRangeToParts(t,n){if(typeof this.numberFormatter.formatRangeToParts=="function")return this.numberFormatter.formatRangeToParts(t,n);if(n= start date");let r=this.numberFormatter.formatToParts(t),i=this.numberFormatter.formatToParts(n);return[...r.map(s=>({...s,source:"startRange"})),{type:"literal",value:" – ",source:"shared"},...i.map(s=>({...s,source:"endRange"}))]}resolvedOptions(){let t=this.numberFormatter.resolvedOptions();return!V0&&this.options.signDisplay!=null&&(t={...t,signDisplay:this.options.signDisplay}),!Dg&&this.options.style==="unit"&&(t={...t,style:"unit",unit:this.options.unit,unitDisplay:this.options.unitDisplay}),t}constructor(t,n={}){this.numberFormatter=aM(t,n),this.options=n}}function aM(e,t={}){let{numberingSystem:n}=t;if(n&&e.includes("-nu-")&&(e.includes("-u-")||(e+="-u-"),e+=`-nu-${n}`),t.style==="unit"&&!Dg){var r;let{unit:a,unitDisplay:c="short"}=t;if(!a)throw new Error('unit option must be provided with style: "unit"');if(!(!((r=$E[a])===null||r===void 0)&&r[c]))throw new Error(`Unsupported unit ${a} with unitDisplay = ${c}`);t={...t,style:"decimal"}}let i=e+(t?Object.entries(t).sort((a,c)=>a[0]0||Object.is(n,0):t==="exceptZero"&&(Object.is(n,-0)||Object.is(n,0)?n=Math.abs(n):r=n>0),r){let i=e.format(-n),s=e.format(n),a=i.replace(s,"").replace(/\u200e|\u061C/,"");return[...a].length!==1&&console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"),i.replace(s,"!!!").replace(a,"+").replace("!!!",s)}else return e.format(n)}}function cM(e={}){let{locale:t}=fh();return S.useMemo(()=>new lM(t,e),[t,e])}let By=new Map;function fM(e){let{locale:t}=fh(),n=t+(e?Object.entries(e).sort((i,s)=>i[0]-1&&e.splice(n,1)}const Js=(e,t,n)=>n>t?t:n{};const fs={},AE=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function RE(e){return typeof e=="object"&&e!==null}const LE=e=>/^0[^.\s]+$/u.test(e);function px(e){let t;return()=>(t===void 0&&(t=e()),t)}const Zi=e=>e,dM=(e,t)=>n=>t(e(n)),ph=(...e)=>e.reduce(dM),qp=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r};class hx{constructor(){this.subscriptions=[]}add(t){return cx(this.subscriptions,t),()=>fx(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;se*1e3,us=e=>e/1e3;function ME(e,t){return t?e*(1e3/t):0}const DE=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,pM=1e-7,hM=12;function mM(e,t,n,r,i){let s,a,c=0;do a=t+(n-t)/2,s=DE(a,r,i)-e,s>0?n=a:t=a;while(Math.abs(s)>pM&&++cmM(s,0,1,e,n);return s=>s===0||s===1?s:DE(i(s),t,r)}const NE=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,FE=e=>t=>1-e(1-t),OE=hh(.33,1.53,.69,.99),mx=FE(OE),zE=NE(mx),jE=e=>(e*=2)<1?.5*mx(e):.5*(2-Math.pow(2,-10*(e-1))),gx=e=>1-Math.sin(Math.acos(e)),BE=FE(gx),VE=NE(gx),gM=hh(.42,0,1,1),vM=hh(0,0,.58,1),UE=hh(.42,0,.58,1),yM=e=>Array.isArray(e)&&typeof e[0]!="number",KE=e=>Array.isArray(e)&&typeof e[0]=="number",bM={linear:Zi,easeIn:gM,easeInOut:UE,easeOut:vM,circIn:gx,circInOut:VE,circOut:BE,backIn:mx,backInOut:zE,backOut:OE,anticipate:jE},xM=e=>typeof e=="string",v1=e=>{if(KE(e)){dx(e.length===4);const[t,n,r,i]=e;return hh(t,n,r,i)}else if(xM(e))return bM[e];return e},rg=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function wM(e,t){let n=new Set,r=new Set,i=!1,s=!1;const a=new WeakSet;let c={delta:0,timestamp:0,isProcessing:!1};function d(m){a.has(m)&&(h.schedule(m),e()),m(c)}const h={schedule:(m,g=!1,b=!1)=>{const E=b&&i?n:r;return g&&a.add(m),E.has(m)||E.add(m),m},cancel:m=>{r.delete(m),a.delete(m)},process:m=>{if(c=m,i){s=!0;return}i=!0,[n,r]=[r,n],n.forEach(d),n.clear(),i=!1,s&&(s=!1,h.process(m))}};return h}const SM=40;function WE(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,a=rg.reduce((M,j)=>(M[j]=wM(s),M),{}),{setup:c,read:d,resolveKeyframes:h,preUpdate:m,update:g,preRender:b,render:x,postRender:E}=a,P=()=>{const M=fs.useManualTiming?i.timestamp:performance.now();n=!1,fs.useManualTiming||(i.delta=r?1e3/60:Math.max(Math.min(M-i.timestamp,SM),1)),i.timestamp=M,i.isProcessing=!0,c.process(i),d.process(i),h.process(i),m.process(i),g.process(i),b.process(i),x.process(i),E.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(P))},_=()=>{n=!0,r=!0,i.isProcessing||e(P)};return{schedule:rg.reduce((M,j)=>{const H=a[j];return M[j]=(L,Z=!1,ne=!1)=>(n||_(),H.schedule(L,Z,ne)),M},{}),cancel:M=>{for(let j=0;j(Sg===void 0&&ii.set(sr.isProcessing||fs.useManualTiming?sr.timestamp:performance.now()),Sg),set:e=>{Sg=e,queueMicrotask(kM)}},HE=e=>t=>typeof t=="string"&&t.startsWith(e),vx=HE("--"),CM=HE("var(--"),yx=e=>CM(e)?EM.test(e.split("/*")[0].trim()):!1,EM=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Af={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Yp={...Af,transform:e=>Js(0,1,e)},ig={...Af,default:1},Rp=e=>Math.round(e*1e5)/1e5,bx=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function PM(e){return e==null}const TM=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,xx=(e,t)=>n=>!!(typeof n=="string"&&TM.test(n)&&n.startsWith(e)||t&&!PM(n)&&Object.prototype.hasOwnProperty.call(n,t)),GE=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,a,c]=r.match(bx);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(a),alpha:c!==void 0?parseFloat(c):1}},_M=e=>Js(0,255,e),Uy={...Af,transform:e=>Math.round(_M(e))},cu={test:xx("rgb","red"),parse:GE("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Uy.transform(e)+", "+Uy.transform(t)+", "+Uy.transform(n)+", "+Rp(Yp.transform(r))+")"};function IM(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const U0={test:xx("#"),parse:IM,transform:cu.transform},mh=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Hl=mh("deg"),cs=mh("%"),et=mh("px"),$M=mh("vh"),AM=mh("vw"),y1={...cs,parse:e=>cs.parse(e)/100,transform:e=>cs.transform(e*100)},nf={test:xx("hsl","hue"),parse:GE("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+cs.transform(Rp(t))+", "+cs.transform(Rp(n))+", "+Rp(Yp.transform(r))+")"},Tn={test:e=>cu.test(e)||U0.test(e)||nf.test(e),parse:e=>cu.test(e)?cu.parse(e):nf.test(e)?nf.parse(e):U0.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?cu.transform(e):nf.transform(e),getAnimatableNone:e=>{const t=Tn.parse(e);return t.alpha=0,Tn.transform(t)}},RM=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function LM(e){return isNaN(e)&&typeof e=="string"&&(e.match(bx)?.length||0)+(e.match(RM)?.length||0)>0}const qE="number",YE="color",MM="var",DM="var(",b1="${}",NM=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Xp(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const c=t.replace(NM,d=>(Tn.test(d)?(r.color.push(s),i.push(YE),n.push(Tn.parse(d))):d.startsWith(DM)?(r.var.push(s),i.push(MM),n.push(d)):(r.number.push(s),i.push(qE),n.push(parseFloat(d))),++s,b1)).split(b1);return{values:n,split:c,indexes:r,types:i}}function XE(e){return Xp(e).values}function QE(e){const{split:t,types:n}=Xp(e),r=t.length;return i=>{let s="";for(let a=0;atypeof e=="number"?0:Tn.test(e)?Tn.getAnimatableNone(e):e;function OM(e){const t=XE(e);return QE(e)(t.map(FM))}const Zl={test:LM,parse:XE,createTransformer:QE,getAnimatableNone:OM};function Ky(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zM({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,a=0;if(!t)i=s=a=n;else{const c=n<.5?n*(1+t):n+t-n*t,d=2*n-c;i=Ky(d,c,e+1/3),s=Ky(d,c,e),a=Ky(d,c,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(a*255),alpha:r}}function Ng(e,t){return n=>n>0?t:e}const sn=(e,t,n)=>e+(t-e)*n,Wy=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},jM=[U0,cu,nf],BM=e=>jM.find(t=>t.test(e));function x1(e){const t=BM(e);if(!t)return!1;let n=t.parse(e);return t===nf&&(n=zM(n)),n}const w1=(e,t)=>{const n=x1(e),r=x1(t);if(!n||!r)return Ng(e,t);const i={...n};return s=>(i.red=Wy(n.red,r.red,s),i.green=Wy(n.green,r.green,s),i.blue=Wy(n.blue,r.blue,s),i.alpha=sn(n.alpha,r.alpha,s),cu.transform(i))},K0=new Set(["none","hidden"]);function VM(e,t){return K0.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function UM(e,t){return n=>sn(e,t,n)}function wx(e){return typeof e=="number"?UM:typeof e=="string"?yx(e)?Ng:Tn.test(e)?w1:HM:Array.isArray(e)?JE:typeof e=="object"?Tn.test(e)?w1:KM:Ng}function JE(e,t){const n=[...e],r=n.length,i=e.map((s,a)=>wx(s)(s,t[a]));return s=>{for(let a=0;a{for(const s in r)n[s]=r[s](i);return n}}function WM(e,t){const n=[],r={color:0,var:0,number:0};for(let i=0;i{const n=Zl.createTransformer(t),r=Xp(e),i=Xp(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?K0.has(e)&&!i.values.length||K0.has(t)&&!r.values.length?VM(e,t):ph(JE(WM(r,i),i.values),n):Ng(e,t)};function ZE(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?sn(e,t,n):wx(e)(e,t)}const GM=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>Yt.update(t,n),stop:()=>Jl(t),now:()=>sr.isProcessing?sr.timestamp:ii.now()}},eP=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s=Fg?1/0:t}function qM(e,t=100,n){const r=n({...e,keyframes:[0,t]}),i=Math.min(Sx(r),Fg);return{type:"keyframes",ease:s=>r.next(i*s).value/t,duration:us(i)}}const YM=5;function tP(e,t,n){const r=Math.max(t-YM,0);return ME(n-e(r),t-r)}const dn={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Hy=.001;function XM({duration:e=dn.duration,bounce:t=dn.bounce,velocity:n=dn.velocity,mass:r=dn.mass}){let i,s,a=1-t;a=Js(dn.minDamping,dn.maxDamping,a),e=Js(dn.minDuration,dn.maxDuration,us(e)),a<1?(i=h=>{const m=h*a,g=m*e,b=m-n,x=W0(h,a),E=Math.exp(-g);return Hy-b/x*E},s=h=>{const g=h*a*e,b=g*n+n,x=Math.pow(a,2)*Math.pow(h,2)*e,E=Math.exp(-g),P=W0(Math.pow(h,2),a);return(-i(h)+Hy>0?-1:1)*((b-x)*E)/P}):(i=h=>{const m=Math.exp(-h*e),g=(h-n)*e+1;return-Hy+m*g},s=h=>{const m=Math.exp(-h*e),g=(n-h)*(e*e);return m*g});const c=5/e,d=JM(i,s,c);if(e=as(e),isNaN(d))return{stiffness:dn.stiffness,damping:dn.damping,duration:e};{const h=Math.pow(d,2)*r;return{stiffness:h,damping:a*2*Math.sqrt(r*h),duration:e}}}const QM=12;function JM(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function tD(e){let t={velocity:dn.velocity,stiffness:dn.stiffness,damping:dn.damping,mass:dn.mass,isResolvedFromDuration:!1,...e};if(!S1(e,eD)&&S1(e,ZM))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Js(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:dn.mass,stiffness:i,damping:s}}else{const n=XM(e);t={...t,...n,mass:dn.mass},t.isResolvedFromDuration=!0}return t}function Og(e=dn.visualDuration,t=dn.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],c={done:!1,value:s},{stiffness:d,damping:h,mass:m,duration:g,velocity:b,isResolvedFromDuration:x}=tD({...n,velocity:-us(n.velocity||0)}),E=b||0,P=h/(2*Math.sqrt(d*m)),_=a-s,T=us(Math.sqrt(d/m)),R=Math.abs(_)<5;r||(r=R?dn.restSpeed.granular:dn.restSpeed.default),i||(i=R?dn.restDelta.granular:dn.restDelta.default);let M;if(P<1){const H=W0(T,P);M=L=>{const Z=Math.exp(-P*T*L);return a-Z*((E+P*T*_)/H*Math.sin(H*L)+_*Math.cos(H*L))}}else if(P===1)M=H=>a-Math.exp(-T*H)*(_+(E+T*_)*H);else{const H=T*Math.sqrt(P*P-1);M=L=>{const Z=Math.exp(-P*T*L),ne=Math.min(H*L,300);return a-Z*((E+P*T*_)*Math.sinh(ne)+H*_*Math.cosh(ne))/H}}const j={calculatedDuration:x&&g||null,next:H=>{const L=M(H);if(x)c.done=H>=g;else{let Z=H===0?E:0;P<1&&(Z=H===0?as(E):tP(M,H,L));const ne=Math.abs(Z)<=r,ae=Math.abs(a-L)<=i;c.done=ne&&ae}return c.value=c.done?a:L,c},toString:()=>{const H=Math.min(Sx(j),Fg),L=eP(Z=>j.next(H*Z).value,H,30);return H+"ms "+L},toTransition:()=>{}};return j}Og.applyToOptions=e=>{const t=qM(e,100,Og);return e.ease=t.ease,e.duration=as(t.duration),e.type="keyframes",e};function H0({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:a,min:c,max:d,restDelta:h=.5,restSpeed:m}){const g=e[0],b={done:!1,value:g},x=ne=>c!==void 0&&ned,E=ne=>c===void 0?d:d===void 0||Math.abs(c-ne)-P*Math.exp(-ne/r),M=ne=>T+R(ne),j=ne=>{const ae=R(ne),O=M(ne);b.done=Math.abs(ae)<=h,b.value=b.done?T:O};let H,L;const Z=ne=>{x(b.value)&&(H=ne,L=Og({keyframes:[b.value,E(b.value)],velocity:tP(M,ne,b.value),damping:i,stiffness:s,restDelta:h,restSpeed:m}))};return Z(0),{calculatedDuration:null,next:ne=>{let ae=!1;return!L&&H===void 0&&(ae=!0,j(ne),Z(ne)),H!==void 0&&ne>=H?L.next(ne-H):(!ae&&j(ne),b)}}}function nD(e,t,n){const r=[],i=n||fs.mix||ZE,s=e.length-1;for(let a=0;at[0];if(s===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const c=nD(t,r,i),d=c.length,h=m=>{if(a&&m1)for(;gh(Js(e[0],e[s-1],m)):h}function iD(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=qp(0,t,r);e.push(sn(n,1,i))}}function oD(e){const t=[0];return iD(t,e.length-1),t}function sD(e,t){return e.map(n=>n*t)}function lD(e,t){return e.map(()=>t||UE).splice(0,e.length-1)}function Lp({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=yM(r)?r.map(v1):v1(r),s={done:!1,value:t[0]},a=sD(n&&n.length===t.length?n:oD(t),e),c=rD(a,t,{ease:Array.isArray(i)?i:lD(t,i)});return{calculatedDuration:e,next:d=>(s.value=c(d),s.done=d>=e,s)}}const aD=e=>e!==null;function kx(e,{repeat:t,repeatType:n="loop"},r,i=1){const s=e.filter(aD),c=i<0||t&&n!=="loop"&&t%2===1?0:s.length-1;return!c||r===void 0?s[c]:r}const uD={decay:H0,inertia:H0,tween:Lp,keyframes:Lp,spring:Og};function nP(e){typeof e.type=="string"&&(e.type=uD[e.type])}class Cx{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,n){return this.finished.then(t,n)}}const cD=e=>e/100;class Ex extends Cx{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==ii.now()&&this.tick(ii.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;nP(t);const{type:n=Lp,repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:a=0}=t;let{keyframes:c}=t;const d=n||Lp;d!==Lp&&typeof c[0]!="number"&&(this.mixKeyframes=ph(cD,ZE(c[0],c[1])),c=[0,100]);const h=d({...t,keyframes:c});s==="mirror"&&(this.mirroredGenerator=d({...t,keyframes:[...c].reverse(),velocity:-a})),h.calculatedDuration===null&&(h.calculatedDuration=Sx(h));const{calculatedDuration:m}=h;this.calculatedDuration=m,this.resolvedDuration=m+i,this.totalDuration=this.resolvedDuration*(r+1)-i,this.generator=h}updateTime(t){const n=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(t,n=!1){const{generator:r,totalDuration:i,mixKeyframes:s,mirroredGenerator:a,resolvedDuration:c,calculatedDuration:d}=this;if(this.startTime===null)return r.next(0);const{delay:h=0,keyframes:m,repeat:g,repeatType:b,repeatDelay:x,type:E,onUpdate:P,finalKeyframe:_}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),n?this.currentTime=t:this.updateTime(t);const T=this.currentTime-h*(this.playbackSpeed>=0?1:-1),R=this.playbackSpeed>=0?T<0:T>i;this.currentTime=Math.max(T,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let M=this.currentTime,j=r;if(g){const ne=Math.min(this.currentTime,i)/c;let ae=Math.floor(ne),O=ne%1;!O&&ne>=1&&(O=1),O===1&&ae--,ae=Math.min(ae,g+1),!!(ae%2)&&(b==="reverse"?(O=1-O,x&&(O-=x/c)):b==="mirror"&&(j=a)),M=Js(0,1,O)*c}const H=R?{done:!1,value:m[0]}:j.next(M);s&&(H.value=s(H.value));let{done:L}=H;!R&&d!==null&&(L=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const Z=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&L);return Z&&E!==H0&&(H.value=kx(m,this.options,_,this.speed)),P&&P(H.value),Z&&this.finish(),H}then(t,n){return this.finished.then(t,n)}get duration(){return us(this.calculatedDuration)}get time(){return us(this.currentTime)}set time(t){t=as(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(t){this.updateTime(ii.now());const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=us(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=GM,startTime:n}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),this.options.onPlay?.();const r=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=r):this.holdTime!==null?this.startTime=r-this.holdTime:this.startTime||(this.startTime=n??r),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(ii.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}function fD(e){for(let t=1;te*180/Math.PI,G0=e=>{const t=fu(Math.atan2(e[1],e[0]));return q0(t)},dD={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:G0,rotateZ:G0,skewX:e=>fu(Math.atan(e[1])),skewY:e=>fu(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},q0=e=>(e=e%360,e<0&&(e+=360),e),k1=G0,C1=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),E1=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),pD={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:C1,scaleY:E1,scale:e=>(C1(e)+E1(e))/2,rotateX:e=>q0(fu(Math.atan2(e[6],e[5]))),rotateY:e=>q0(fu(Math.atan2(-e[2],e[0]))),rotateZ:k1,rotate:k1,skewX:e=>fu(Math.atan(e[4])),skewY:e=>fu(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Y0(e){return e.includes("scale")?1:0}function X0(e,t){if(!e||e==="none")return Y0(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,i;if(n)r=pD,i=n;else{const c=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=dD,i=c}if(!i)return Y0(t);const s=r[t],a=i[1].split(",").map(mD);return typeof s=="function"?s(a):a[s]}const hD=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return X0(n,t)};function mD(e){return parseFloat(e.trim())}const Rf=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],ku=new Set(Rf),P1=e=>e===Af||e===et,gD=new Set(["x","y","z"]),vD=Rf.filter(e=>!gD.has(e));function yD(e){const t=[];return vD.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const hu={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>X0(t,"x"),y:(e,{transform:t})=>X0(t,"y")};hu.translateX=hu.x;hu.translateY=hu.y;const mu=new Set;let Q0=!1,J0=!1,Z0=!1;function rP(){if(J0){const e=Array.from(mu).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=yD(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,a])=>{r.getValue(s)?.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}J0=!1,Q0=!1,mu.forEach(e=>e.complete(Z0)),mu.clear()}function iP(){mu.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(J0=!0)})}function bD(){Z0=!0,iP(),rP(),Z0=!1}class Px{constructor(t,n,r,i,s,a=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=a}scheduleResolve(){this.state="scheduled",this.isAsync?(mu.add(this),Q0||(Q0=!0,Yt.read(iP),Yt.resolveKeyframes(rP))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;if(t[0]===null){const s=i?.get(),a=t[t.length-1];if(s!==void 0)t[0]=s;else if(r&&n){const c=r.readValue(n,a);c!=null&&(t[0]=c)}t[0]===void 0&&(t[0]=a),i&&s===void 0&&i.set(t[0])}fD(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),mu.delete(this)}cancel(){this.state==="scheduled"&&(mu.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const xD=e=>e.startsWith("--");function wD(e,t,n){xD(t)?e.style.setProperty(t,n):e.style[t]=n}const SD=px(()=>window.ScrollTimeline!==void 0),kD={};function CD(e,t){const n=px(e);return()=>kD[t]??n()}const oP=CD(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Tp=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,T1={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Tp([0,.65,.55,1]),circOut:Tp([.55,0,1,.45]),backIn:Tp([.31,.01,.66,-.59]),backOut:Tp([.33,1.53,.69,.99])};function sP(e,t){if(e)return typeof e=="function"?oP()?eP(e,t):"ease-out":KE(e)?Tp(e):Array.isArray(e)?e.map(n=>sP(n,t)||T1.easeOut):T1[e]}function ED(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:a="loop",ease:c="easeOut",times:d}={},h=void 0){const m={[t]:n};d&&(m.offset=d);const g=sP(c,i);Array.isArray(g)&&(m.easing=g);const b={delay:r,duration:i,easing:Array.isArray(g)?"linear":g,fill:"both",iterations:s+1,direction:a==="reverse"?"alternate":"normal"};return h&&(b.pseudoElement=h),e.animate(m,b)}function lP(e){return typeof e=="function"&&"applyToOptions"in e}function PD({type:e,...t}){return lP(e)&&oP()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class TD extends Cx{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,!t)return;const{element:n,name:r,keyframes:i,pseudoElement:s,allowFlatten:a=!1,finalKeyframe:c,onComplete:d}=t;this.isPseudoElement=!!s,this.allowFlatten=a,this.options=t,dx(typeof t.type!="string");const h=PD(t);this.animation=ED(n,r,i,h,s),h.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!s){const m=kx(i,this.options,c,this.speed);this.updateMotionValue?this.updateMotionValue(m):wD(n,r,m),this.animation.cancel()}d?.(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){const t=this.animation.effect?.getComputedTiming?.().duration||0;return us(Number(t))}get time(){return us(Number(this.animation.currentTime)||0)}set time(t){this.finishedTime=null,this.animation.currentTime=as(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(t){this.animation.startTime=t}attachTimeline({timeline:t,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&SD()?(this.animation.timeline=t,Zi):n(this)}}const aP={anticipate:jE,backInOut:zE,circInOut:VE};function _D(e){return e in aP}function ID(e){typeof e.ease=="string"&&_D(e.ease)&&(e.ease=aP[e.ease])}const _1=10;class $D extends TD{constructor(t){ID(t),nP(t),super(t),t.startTime&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:r,onComplete:i,element:s,...a}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const c=new Ex({...a,autoplay:!1}),d=as(this.finishedTime??this.time);n.setWithVelocity(c.sample(d-_1).value,c.sample(d).value,_1),c.stop()}}const I1=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(Zl.test(e)||e==="0")&&!e.startsWith("url("));function AD(e){const t=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function DD(e){const{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:s,type:a}=e;if(!(t?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:d,transformTemplate:h}=t.owner.getProps();return MD()&&n&&LD.has(n)&&(n!=="transform"||!h)&&!d&&!r&&i!=="mirror"&&s!==0&&a!=="inertia"}const ND=40;class FD extends Cx{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:a="loop",keyframes:c,name:d,motionValue:h,element:m,...g}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=ii.now();const b={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:a,name:d,motionValue:h,element:m,...g},x=m?.KeyframeResolver||Px;this.keyframeResolver=new x(c,(E,P,_)=>this.onKeyframesResolved(E,P,b,!_),d,h,m),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,n,r,i){this.keyframeResolver=void 0;const{name:s,type:a,velocity:c,delay:d,isHandoff:h,onUpdate:m}=r;this.resolvedAt=ii.now(),RD(t,s,a,c)||((fs.instantAnimations||!d)&&m?.(kx(t,r,n)),t[0]=t[t.length-1],r.duration=0,r.repeat=0);const b={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>ND?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...r,keyframes:t},x=!h&&DD(b)?new $D({...b,element:b.motionValue.owner.current}):new Ex(b);x.finished.then(()=>this.notifyFinished()).catch(Zi),this.pendingTimeline&&(this.stopTimeline=x.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=x}get finished(){return this._animation?this.animation.finished:this._finished}then(t,n){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),bD()),this._animation}get duration(){return this.animation.duration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}const OD=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function zD(e){const t=OD.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function uP(e,t,n=1){const[r,i]=zD(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const a=s.trim();return AE(a)?parseFloat(a):a}return yx(i)?uP(i,t,n+1):i}function Tx(e,t){return e?.[t]??e?.default??e}const cP=new Set(["width","height","top","left","right","bottom",...Rf]),jD={test:e=>e==="auto",parse:e=>e},fP=e=>t=>t.test(e),dP=[Af,et,cs,Hl,AM,$M,jD],$1=e=>dP.find(fP(e));function BD(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||LE(e):!0}const VD=new Set(["brightness","contrast","saturate","opacity"]);function UD(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bx)||[];if(!r)return e;const i=n.replace(r,"");let s=VD.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const KD=/\b([a-z-]*)\(.*?\)/gu,eb={...Zl,getAnimatableNone:e=>{const t=e.match(KD);return t?t.map(UD).join(" "):e}},A1={...Af,transform:Math.round},WD={rotate:Hl,rotateX:Hl,rotateY:Hl,rotateZ:Hl,scale:ig,scaleX:ig,scaleY:ig,scaleZ:ig,skew:Hl,skewX:Hl,skewY:Hl,distance:et,translateX:et,translateY:et,translateZ:et,x:et,y:et,z:et,perspective:et,transformPerspective:et,opacity:Yp,originX:y1,originY:y1,originZ:et},_x={borderWidth:et,borderTopWidth:et,borderRightWidth:et,borderBottomWidth:et,borderLeftWidth:et,borderRadius:et,radius:et,borderTopLeftRadius:et,borderTopRightRadius:et,borderBottomRightRadius:et,borderBottomLeftRadius:et,width:et,maxWidth:et,height:et,maxHeight:et,top:et,right:et,bottom:et,left:et,padding:et,paddingTop:et,paddingRight:et,paddingBottom:et,paddingLeft:et,margin:et,marginTop:et,marginRight:et,marginBottom:et,marginLeft:et,backgroundPositionX:et,backgroundPositionY:et,...WD,zIndex:A1,fillOpacity:Yp,strokeOpacity:Yp,numOctaves:A1},HD={..._x,color:Tn,backgroundColor:Tn,outlineColor:Tn,fill:Tn,stroke:Tn,borderColor:Tn,borderTopColor:Tn,borderRightColor:Tn,borderBottomColor:Tn,borderLeftColor:Tn,filter:eb,WebkitFilter:eb},pP=e=>HD[e];function hP(e,t){let n=pP(e);return n!==eb&&(n=Zl),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const GD=new Set(["auto","none","0"]);function qD(e,t,n){let r=0,i;for(;r{t.getValue(c).set(d)}),this.resolveNoneKeyframes()}}const XD=new Set(["opacity","clipPath","filter","transform"]);function QD(e,t,n){if(e instanceof EventTarget)return[e];if(typeof e=="string"){let r=document;const i=n?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}const mP=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function gP(e){return RE(e)&&"offsetHeight"in e}const R1=30,JD=e=>!isNaN(parseFloat(e));class vP{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=ii.now();if(this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const a of this.dependents)a.dirty();i&&this.events.renderRequest?.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=ii.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=JD(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new hx);const r=this.events[t].add(n);return t==="change"?()=>{r(),Yt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=ii.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>R1)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,R1);return ME(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function xf(e,t){return new vP(e,t)}const{schedule:Ix}=WE(queueMicrotask,!1),ko={x:!1,y:!1};function yP(){return ko.x||ko.y}function ZD(e){return e==="x"||e==="y"?ko[e]?null:(ko[e]=!0,()=>{ko[e]=!1}):ko.x||ko.y?null:(ko.x=ko.y=!0,()=>{ko.x=ko.y=!1})}function bP(e,t){const n=QD(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function L1(e){return!(e.pointerType==="touch"||yP())}function e3(e,t,n={}){const[r,i,s]=bP(e,n),a=c=>{if(!L1(c))return;const{target:d}=c,h=t(d,c);if(typeof h!="function"||!d)return;const m=g=>{L1(g)&&(h(g),d.removeEventListener("pointerleave",m))};d.addEventListener("pointerleave",m,i)};return r.forEach(c=>{c.addEventListener("pointerenter",a,i)}),s}const xP=(e,t)=>t?e===t?!0:xP(e,t.parentElement):!1,$x=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,t3=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function n3(e){return t3.has(e.tagName)||e.tabIndex!==-1}const kg=new WeakSet;function M1(e){return t=>{t.key==="Enter"&&e(t)}}function Gy(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const r3=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=M1(()=>{if(kg.has(n))return;Gy(n,"down");const i=M1(()=>{Gy(n,"up")}),s=()=>Gy(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function D1(e){return $x(e)&&!yP()}function i3(e,t,n={}){const[r,i,s]=bP(e,n),a=c=>{const d=c.currentTarget;if(!D1(c))return;kg.add(d);const h=t(d,c),m=(x,E)=>{window.removeEventListener("pointerup",g),window.removeEventListener("pointercancel",b),kg.has(d)&&kg.delete(d),D1(x)&&typeof h=="function"&&h(x,{success:E})},g=x=>{m(x,d===window||d===document||n.useGlobalTarget||xP(d,x.target))},b=x=>{m(x,!1)};window.addEventListener("pointerup",g,i),window.addEventListener("pointercancel",b,i)};return r.forEach(c=>{(n.useGlobalTarget?window:c).addEventListener("pointerdown",a,i),gP(c)&&(c.addEventListener("focus",h=>r3(h,i)),!n3(c)&&!c.hasAttribute("tabindex")&&(c.tabIndex=0))}),s}function wP(e){return RE(e)&&"ownerSVGElement"in e}function o3(e){return wP(e)&&e.tagName==="svg"}const yr=e=>!!(e&&e.getVelocity),s3=[...dP,Tn,Zl],l3=e=>s3.find(fP(e)),Qp=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class a3 extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=n.offsetParent,i=gP(r)&&r.offsetWidth||0,s=this.props.sizeRef.current;s.height=n.offsetHeight||0,s.width=n.offsetWidth||0,s.top=n.offsetTop,s.left=n.offsetLeft,s.right=i-s.width-s.left}return null}componentDidUpdate(){}render(){return this.props.children}}function u3({children:e,isPresent:t,anchorX:n,root:r}){const i=S.useId(),s=S.useRef(null),a=S.useRef({width:0,height:0,top:0,left:0,right:0}),{nonce:c}=S.useContext(Qp);return S.useInsertionEffect(()=>{const{width:d,height:h,top:m,left:g,right:b}=a.current;if(t||!s.current||!d||!h)return;const x=n==="left"?`left: ${g}`:`right: ${b}`;s.current.dataset.motionPopId=i;const E=document.createElement("style");c&&(E.nonce=c);const P=r??document.head;return P.appendChild(E),E.sheet&&E.sheet.insertRule(` + [data-motion-pop-id="${i}"] { + position: absolute !important; + width: ${d}px !important; + height: ${h}px !important; + ${x}px !important; + top: ${m}px !important; + } + `),()=>{P.removeChild(E),P.contains(E)&&P.removeChild(E)}},[t]),N.jsx(a3,{isPresent:t,childRef:s,sizeRef:a,children:S.cloneElement(e,{ref:s})})}const c3=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:a,anchorX:c,root:d})=>{const h=dh(f3),m=S.useId();let g=!0,b=S.useMemo(()=>(g=!1,{id:m,initial:t,isPresent:n,custom:i,onExitComplete:x=>{h.set(x,!0);for(const E of h.values())if(!E)return;r&&r()},register:x=>(h.set(x,!1),()=>h.delete(x))}),[n,h,r]);return s&&g&&(b={...b}),S.useMemo(()=>{h.forEach((x,E)=>h.set(E,!1))},[n]),S.useEffect(()=>{!n&&!h.size&&r&&r()},[n]),a==="popLayout"&&(e=N.jsx(u3,{isPresent:n,anchorX:c,root:d,children:e})),N.jsx(uv.Provider,{value:b,children:e})};function f3(){return new Map}function SP(e=!0){const t=S.useContext(uv);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=S.useId();S.useEffect(()=>{if(e)return i(s)},[e]);const a=S.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,a]:[!0]}const og=e=>e.key||"";function N1(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const Lf=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:a=!1,anchorX:c="left",root:d})=>{const[h,m]=SP(a),g=S.useMemo(()=>N1(e),[e]),b=a&&!h?[]:g.map(og),x=S.useRef(!0),E=S.useRef(g),P=dh(()=>new Map),[_,T]=S.useState(g),[R,M]=S.useState(g);ux(()=>{x.current=!1,E.current=g;for(let L=0;L{const Z=og(L),ne=a&&!h?!1:g===R||b.includes(Z),ae=()=>{if(P.has(Z))P.set(Z,!0);else return;let O=!0;P.forEach(U=>{U||(O=!1)}),O&&(H?.(),M(E.current),a&&m?.(),r&&r())};return N.jsx(c3,{isPresent:ne,initial:!x.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:s,root:d,onExitComplete:ne?void 0:ae,anchorX:c,children:L},Z)})})},d3=S.createContext(null);function p3(){const e=S.useRef(!1);return ux(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function h3(){const e=p3(),[t,n]=S.useState(0),r=S.useCallback(()=>{e.current&&n(t+1)},[t]);return[S.useCallback(()=>Yt.postRender(r),[r]),t]}const m3=e=>!e.isLayoutDirty&&e.willUpdate(!1);function F1(){const e=new Set,t=new WeakMap,n=()=>e.forEach(m3);return{add:r=>{e.add(r),t.set(r,r.addEventListener("willUpdate",n))},remove:r=>{e.delete(r);const i=t.get(r);i&&(i(),t.delete(r)),n()},dirty:n}}const kP=e=>e===!0,g3=e=>kP(e===!0)||e==="id",v3=({children:e,id:t,inherit:n=!0})=>{const r=S.useContext(Gp),i=S.useContext(d3),[s,a]=h3(),c=S.useRef(null),d=r.id||i;c.current===null&&(g3(n)&&d&&(t=t?d+"-"+t:d),c.current={id:t,group:kP(n)&&r.group||F1()});const h=S.useMemo(()=>({...c.current,forceRender:s}),[a]);return N.jsx(Gp.Provider,{value:h,children:e})},Ax=S.createContext({strict:!1}),O1={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},wf={};for(const e in O1)wf[e]={isEnabled:t=>O1[e].some(n=>!!t[n])};function tb(e){for(const t in e)wf[t]={...wf[t],...e[t]}}function Sf({children:e,features:t,strict:n=!1}){const[,r]=S.useState(!qy(t)),i=S.useRef(void 0);if(!qy(t)){const{renderer:s,...a}=t;i.current=s,tb(a)}return S.useEffect(()=>{qy(t)&&t().then(({renderer:s,...a})=>{tb(a),i.current=s,r(!0)})},[]),N.jsx(Ax.Provider,{value:{renderer:i.current,strict:n},children:e})}function qy(e){return typeof e=="function"}const y3=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function zg(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||y3.has(e)}let CP=e=>!zg(e);function EP(e){typeof e=="function"&&(CP=t=>t.startsWith("on")?!zg(t):e(t))}try{EP(require("@emotion/is-prop-valid").default)}catch{}function b3(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(CP(i)||n===!0&&zg(i)||!t&&!zg(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function x3({children:e,isValidProp:t,...n}){t&&EP(t),n={...S.useContext(Qp),...n},n.isStatic=dh(()=>n.isStatic);const r=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return N.jsx(Qp.Provider,{value:r,children:e})}const cv=S.createContext({});function fv(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function Jp(e){return typeof e=="string"||Array.isArray(e)}const Rx=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Lx=["initial",...Rx];function dv(e){return fv(e.animate)||Lx.some(t=>Jp(e[t]))}function PP(e){return!!(dv(e)||e.variants)}function w3(e,t){if(dv(e)){const{initial:n,animate:r}=e;return{initial:n===!1||Jp(n)?n:void 0,animate:Jp(r)?r:void 0}}return e.inherit!==!1?t:{}}function S3(e){const{initial:t,animate:n}=w3(e,S.useContext(cv));return S.useMemo(()=>({initial:t,animate:n}),[z1(t),z1(n)])}function z1(e){return Array.isArray(e)?e.join(" "):e}const Zp={};function k3(e){for(const t in e)Zp[t]=e[t],vx(t)&&(Zp[t].isCSSVariable=!0)}function TP(e,{layout:t,layoutId:n}){return ku.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Zp[e]||e==="opacity")}const C3={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},E3=Rf.length;function P3(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}});function _P(e,t,n){for(const r in t)!yr(t[r])&&!TP(r,n)&&(e[r]=t[r])}function T3({transformTemplate:e},t){return S.useMemo(()=>{const n=Dx();return Mx(n,t,e),Object.assign({},n.vars,n.style)},[t])}function _3(e,t){const n=e.style||{},r={};return _P(r,n,e),Object.assign(r,T3(e,t)),r}function I3(e,t){const n={},r=_3(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const $3={offset:"stroke-dashoffset",array:"stroke-dasharray"},A3={offset:"strokeDashoffset",array:"strokeDasharray"};function R3(e,t,n=1,r=0,i=!0){e.pathLength=1;const s=i?$3:A3;e[s.offset]=et.transform(-r);const a=et.transform(t),c=et.transform(n);e[s.array]=`${a} ${c}`}function IP(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:s=1,pathOffset:a=0,...c},d,h,m){if(Mx(e,c,h),d){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:g,style:b}=e;g.transform&&(b.transform=g.transform,delete g.transform),(b.transform||g.transformOrigin)&&(b.transformOrigin=g.transformOrigin??"50% 50%",delete g.transformOrigin),b.transform&&(b.transformBox=m?.transformBox??"fill-box",delete g.transformBox),t!==void 0&&(g.x=t),n!==void 0&&(g.y=n),r!==void 0&&(g.scale=r),i!==void 0&&R3(g,i,s,a,!1)}const $P=()=>({...Dx(),attrs:{}}),AP=e=>typeof e=="string"&&e.toLowerCase()==="svg";function L3(e,t,n,r){const i=S.useMemo(()=>{const s=$P();return IP(s,t,AP(r),e.transformTemplate,e.style),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};_P(s,e.style,e),i.style={...s,...i.style}}return i}const M3=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Nx(e){return typeof e!="string"||e.includes("-")?!1:!!(M3.indexOf(e)>-1||/[A-Z]/u.test(e))}function D3(e,t,n,{latestValues:r},i,s=!1){const c=(Nx(e)?L3:I3)(t,r,i,e),d=b3(t,typeof e=="string",s),h=e!==S.Fragment?{...d,...c,ref:n}:{},{children:m}=t,g=S.useMemo(()=>yr(m)?m.get():m,[m]);return S.createElement(e,{...h,children:g})}function j1(e){const t=[{},{}];return e?.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function Fx(e,t,n,r){if(typeof t=="function"){const[i,s]=j1(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=j1(r);t=t(n!==void 0?n:e.custom,i,s)}return t}function Cg(e){return yr(e)?e.get():e}function N3({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:F3(n,r,i,e),renderState:t()}}function F3(e,t,n,r){const i={},s=r(e,{});for(const b in s)i[b]=Cg(s[b]);let{initial:a,animate:c}=e;const d=dv(e),h=PP(e);t&&h&&!d&&e.inherit!==!1&&(a===void 0&&(a=t.initial),c===void 0&&(c=t.animate));let m=n?n.initial===!1:!1;m=m||a===!1;const g=m?c:a;if(g&&typeof g!="boolean"&&!fv(g)){const b=Array.isArray(g)?g:[g];for(let x=0;x(t,n)=>{const r=S.useContext(cv),i=S.useContext(uv),s=()=>N3(e,t,r,i);return n?s():dh(s)};function Ox(e,t,n){const{style:r}=e,i={};for(const s in r)(yr(r[s])||t.style&&yr(t.style[s])||TP(s,e)||n?.getValue(s)?.liveStyle!==void 0)&&(i[s]=r[s]);return i}const O3=RP({scrapeMotionValuesFromProps:Ox,createRenderState:Dx});function LP(e,t,n){const r=Ox(e,t,n);for(const i in e)if(yr(e[i])||yr(t[i])){const s=Rf.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}const z3=RP({scrapeMotionValuesFromProps:LP,createRenderState:$P}),j3=Symbol.for("motionComponentSymbol");function rf(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function B3(e,t,n){return S.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):rf(n)&&(n.current=r))},[t])}const zx=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),V3="framerAppearId",MP="data-"+zx(V3),DP=S.createContext({});function U3(e,t,n,r,i){const{visualElement:s}=S.useContext(cv),a=S.useContext(Ax),c=S.useContext(uv),d=S.useContext(Qp).reducedMotion,h=S.useRef(null);r=r||a.renderer,!h.current&&r&&(h.current=r(e,{visualState:t,parent:s,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d}));const m=h.current,g=S.useContext(DP);m&&!m.projection&&i&&(m.type==="html"||m.type==="svg")&&K3(h.current,n,i,g);const b=S.useRef(!1);S.useInsertionEffect(()=>{m&&b.current&&m.update(n,c)});const x=n[MP],E=S.useRef(!!x&&!window.MotionHandoffIsComplete?.(x)&&window.MotionHasOptimisedAnimation?.(x));return ux(()=>{m&&(b.current=!0,window.MotionIsMounted=!0,m.updateFeatures(),m.scheduleRenderMicrotask(),E.current&&m.animationState&&m.animationState.animateChanges())}),S.useEffect(()=>{m&&(!E.current&&m.animationState&&m.animationState.animateChanges(),E.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(x)}),E.current=!1))}),m}function K3(e,t,n,r){const{layoutId:i,layout:s,drag:a,dragConstraints:c,layoutScroll:d,layoutRoot:h,layoutCrossfade:m}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:NP(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!a||c&&rf(c),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,crossfade:m,layoutScroll:d,layoutRoot:h})}function NP(e){if(e)return e.options.allowProjection!==!1?e.projection:NP(e.parent)}function Yy(e,{forwardMotionProps:t=!1}={},n,r){n&&tb(n);const i=Nx(e)?z3:O3;function s(c,d){let h;const m={...S.useContext(Qp),...c,layoutId:W3(c)},{isStatic:g}=m,b=S3(c),x=i(c,g);if(!g&&ax){H3();const E=G3(m);h=E.MeasureLayout,b.visualElement=U3(e,x,m,r,E.ProjectionNode)}return N.jsxs(cv.Provider,{value:b,children:[h&&b.visualElement?N.jsx(h,{visualElement:b.visualElement,...m}):null,D3(e,c,B3(x,b.visualElement,d),x,g,t)]})}s.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const a=S.forwardRef(s);return a[j3]=e,a}function W3({layoutId:e}){const t=S.useContext(Gp).id;return t&&e!==void 0?t+"-"+e:e}function H3(e,t){S.useContext(Ax).strict}function G3(e){const{drag:t,layout:n}=wf;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function FP(e,t){if(typeof Proxy>"u")return Yy;const n=new Map,r=(s,a)=>Yy(s,a,e,t),i=(s,a)=>r(s,a);return new Proxy(i,{get:(s,a)=>a==="create"?r:(n.has(a)||n.set(a,Yy(a,void 0,e,t)),n.get(a))})}const kf=FP();function OP({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function q3({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function Y3(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Xy(e){return e===void 0||e===1}function nb({scale:e,scaleX:t,scaleY:n}){return!Xy(e)||!Xy(t)||!Xy(n)}function au(e){return nb(e)||zP(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function zP(e){return B1(e.x)||B1(e.y)}function B1(e){return e&&e!=="0%"}function jg(e,t,n){const r=e-n,i=t*r;return n+i}function V1(e,t,n,r,i){return i!==void 0&&(e=jg(e,i,r)),jg(e,n,r)+t}function rb(e,t=0,n=1,r,i){e.min=V1(e.min,t,n,r,i),e.max=V1(e.max,t,n,r,i)}function jP(e,{x:t,y:n}){rb(e.x,t.translate,t.scale,t.originPoint),rb(e.y,n.translate,n.scale,n.originPoint)}const U1=.999999999999,K1=1.0000000000001;function X3(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,a;for(let c=0;cU1&&(t.x=1),t.yU1&&(t.y=1)}function of(e,t){e.min=e.min+t,e.max=e.max+t}function W1(e,t,n,r,i=.5){const s=sn(e.min,e.max,i);rb(e,t,n,s,r)}function sf(e,t){W1(e.x,t.x,t.scaleX,t.scale,t.originX),W1(e.y,t.y,t.scaleY,t.scale,t.originY)}function BP(e,t){return OP(Y3(e.getBoundingClientRect(),t))}function Q3(e,t,n){const r=BP(e,n),{scroll:i}=t;return i&&(of(r.x,i.offset.x),of(r.y,i.offset.y)),r}const H1=()=>({translate:0,scale:1,origin:0,originPoint:0}),lf=()=>({x:H1(),y:H1()}),G1=()=>({min:0,max:0}),xn=()=>({x:G1(),y:G1()}),ib={current:null},VP={current:!1};function J3(){if(VP.current=!0,!!ax)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ib.current=e.matches;e.addEventListener("change",t),t()}else ib.current=!1}const Z3=new WeakMap;function e4(e,t,n){for(const r in t){const i=t[r],s=n[r];if(yr(i))e.addValue(r,i);else if(yr(s))e.addValue(r,xf(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(i):a.hasAnimated||a.set(i)}else{const a=e.getStaticValue(r);e.addValue(r,xf(a!==void 0?a:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const q1=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class t4{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:a},c={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Px,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const b=ii.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),VP.current||J3(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:ib.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),Jl(this.notifyUpdate),Jl(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=ku.has(t);r&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",c=>{this.latestValues[t]=c,this.props.onUpdate&&Yt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in wf){const n=wf[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):xn()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=xf(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){let r=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return r!=null&&(typeof r=="string"&&(AE(r)||LE(r))?r=parseFloat(r):!l3(r)&&Zl.test(n)&&(r=hP(t,n)),this.setBaseTarget(t,yr(r)?r.get():r)),yr(r)?r.get():r}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){const{initial:n}=this.props;let r;if(typeof n=="string"||typeof n=="object"){const s=Fx(this.props,n,this.presenceContext?.custom);s&&(r=s[t])}if(n&&r!==void 0)return r;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!yr(i)?i:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new hx),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){Ix.render(this.render)}}class UP extends t4{constructor(){super(...arguments),this.KeyframeResolver=YD}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;yr(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function KP(e,{style:t,vars:n},r,i){const s=e.style;let a;for(a in t)s[a]=t[a];i?.applyProjectionStyles(s,r);for(a in n)s.setProperty(a,n[a])}function n4(e){return window.getComputedStyle(e)}class r4 extends UP{constructor(){super(...arguments),this.type="html",this.renderInstance=KP}readValueFromInstance(t,n){if(ku.has(n))return this.projection?.isProjecting?Y0(n):hD(t,n);{const r=n4(t),i=(vx(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return BP(t,n)}build(t,n,r){Mx(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Ox(t,n,r)}}const WP=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function i4(e,t,n,r){KP(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(WP.has(i)?i:zx(i),t.attrs[i])}class o4 extends UP{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=xn}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(ku.has(n)){const r=pP(n);return r&&r.default||0}return n=WP.has(n)?n:zx(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return LP(t,n,r)}build(t,n,r){IP(t,n,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(t,n,r,i){i4(t,n,r,i)}mount(t){this.isSVGTag=AP(t.tagName),super.mount(t)}}const s4=(e,t)=>Nx(e)?new o4(t):new r4(t,{allowProjection:e!==S.Fragment});function eh(e,t,n){const r=e.getProps();return Fx(r,t,n!==void 0?n:r.custom,e)}const ob=e=>Array.isArray(e);function l4(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,xf(n))}function a4(e){return ob(e)?e[e.length-1]||0:e}function u4(e,t){const n=eh(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const a in s){const c=a4(s[a]);l4(e,a,c)}}function c4(e){return!!(yr(e)&&e.add)}function sb(e,t){const n=e.getValue("willChange");if(c4(n))return n.add(t);if(!n&&fs.WillChange){const r=new fs.WillChange("auto");e.addValue("willChange",r),r.add(t)}}function HP(e){return e.props[MP]}const f4=e=>e!==null;function d4(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(f4),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return i[s]}const p4={type:"spring",stiffness:500,damping:25,restSpeed:10},h4=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),m4={type:"keyframes",duration:.8},g4={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},v4=(e,{keyframes:t})=>t.length>2?m4:ku.has(e)?e.startsWith("scale")?h4(t[1]):p4:g4;function y4({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:a,repeatDelay:c,from:d,elapsed:h,...m}){return!!Object.keys(m).length}const jx=(e,t,n,r={},i,s)=>a=>{const c=Tx(r,e)||{},d=c.delay||r.delay||0;let{elapsed:h=0}=r;h=h-as(d);const m={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...c,delay:-h,onUpdate:b=>{t.set(b),c.onUpdate&&c.onUpdate(b)},onComplete:()=>{a(),c.onComplete&&c.onComplete()},name:e,motionValue:t,element:s?void 0:i};y4(c)||Object.assign(m,v4(e,m)),m.duration&&(m.duration=as(m.duration)),m.repeatDelay&&(m.repeatDelay=as(m.repeatDelay)),m.from!==void 0&&(m.keyframes[0]=m.from);let g=!1;if((m.type===!1||m.duration===0&&!m.repeatDelay)&&(m.duration=0,m.delay===0&&(g=!0)),(fs.instantAnimations||fs.skipAnimations)&&(g=!0,m.duration=0,m.delay=0),m.allowFlatten=!c.type&&!c.ease,g&&!s&&t.get()!==void 0){const b=d4(m.keyframes,c);if(b!==void 0){Yt.update(()=>{m.onUpdate(b),m.onComplete()});return}}return c.isSync?new Ex(m):new FD(m)};function b4({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function GP(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:s=e.getDefaultTransition(),transitionEnd:a,...c}=t;r&&(s=r);const d=[],h=i&&e.animationState&&e.animationState.getState()[i];for(const m in c){const g=e.getValue(m,e.latestValues[m]??null),b=c[m];if(b===void 0||h&&b4(h,m))continue;const x={delay:n,...Tx(s||{},m)},E=g.get();if(E!==void 0&&!g.isAnimating&&!Array.isArray(b)&&b===E&&!x.velocity)continue;let P=!1;if(window.MotionHandoffAnimation){const T=HP(e);if(T){const R=window.MotionHandoffAnimation(T,m,Yt);R!==null&&(x.startTime=R,P=!0)}}sb(e,m),g.start(jx(m,g,b,e.shouldReduceMotion&&cP.has(m)?{type:!1}:x,e,P));const _=g.animation;_&&d.push(_)}return a&&Promise.all(d).then(()=>{Yt.update(()=>{a&&u4(e,a)})}),d}function lb(e,t,n={}){const r=eh(e,t,n.type==="exit"?e.presenceContext?.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const s=r?()=>Promise.all(GP(e,r,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(d=0)=>{const{delayChildren:h=0,staggerChildren:m,staggerDirection:g}=i;return x4(e,t,d,h,m,g,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[d,h]=c==="beforeChildren"?[s,a]:[a,s];return d().then(()=>h())}else return Promise.all([s(),a(n.delay)])}function x4(e,t,n=0,r=0,i=0,s=1,a){const c=[],d=e.variantChildren.size,h=(d-1)*i,m=typeof r=="function",g=m?b=>r(b,d):s===1?(b=0)=>b*i:(b=0)=>h-b*i;return Array.from(e.variantChildren).sort(w4).forEach((b,x)=>{b.notify("AnimationStart",t),c.push(lb(b,t,{...a,delay:n+(m?0:r)+g(x)}).then(()=>b.notify("AnimationComplete",t)))}),Promise.all(c)}function w4(e,t){return e.sortNodePosition(t)}function S4(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>lb(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=lb(e,t,n);else{const i=typeof t=="function"?eh(e,t,n.custom):t;r=Promise.all(GP(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}function qP(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rPromise.all(t.map(({animation:n,options:r})=>S4(e,n,r)))}function T4(e){let t=P4(e),n=Y1(),r=!0;const i=d=>(h,m)=>{const g=eh(e,m,d==="exit"?e.presenceContext?.custom:void 0);if(g){const{transition:b,transitionEnd:x,...E}=g;h={...h,...E,...x}}return h};function s(d){t=d(e)}function a(d){const{props:h}=e,m=YP(e.parent)||{},g=[],b=new Set;let x={},E=1/0;for(let _=0;_E&&j,ae=!1;const O=Array.isArray(M)?M:[M];let U=O.reduce(i(T),{});H===!1&&(U={});const{prevResolvedValues:X={}}=R,re={...X,...U},G=q=>{ne=!0,b.has(q)&&(ae=!0,b.delete(q)),R.needsAnimating[q]=!0;const K=e.getValue(q);K&&(K.liveStyle=!1)};for(const q in re){const K=U[q],se=X[q];if(x.hasOwnProperty(q))continue;let A=!1;ob(K)&&ob(se)?A=!qP(K,se):A=K!==se,A?K!=null?G(q):b.add(q):K!==void 0&&b.has(q)?G(q):R.protectedKeys[q]=!0}R.prevProp=M,R.prevResolvedValues=U,R.isActive&&(x={...x,...U}),r&&e.blockInitialAnimation&&(ne=!1),ne&&(!(L&&Z)||ae)&&g.push(...O.map(q=>({animation:q,options:{type:T}})))}if(b.size){const _={};if(typeof h.initial!="boolean"){const T=eh(e,Array.isArray(h.initial)?h.initial[0]:h.initial);T&&T.transition&&(_.transition=T.transition)}b.forEach(T=>{const R=e.getBaseTarget(T),M=e.getValue(T);M&&(M.liveStyle=!0),_[T]=R??null}),g.push({animation:_})}let P=!!g.length;return r&&(h.initial===!1||h.initial===h.animate)&&!e.manuallyAnimateOnMount&&(P=!1),r=!1,P?t(g):Promise.resolve()}function c(d,h){if(n[d].isActive===h)return Promise.resolve();e.variantChildren?.forEach(g=>g.animationState?.setActive(d,h)),n[d].isActive=h;const m=a(d);for(const g in n)n[g].protectedKeys={};return m}return{animateChanges:a,setActive:c,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Y1(),r=!0}}}function _4(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!qP(t,e):!1}function tu(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Y1(){return{animate:tu(!0),whileInView:tu(),whileHover:tu(),whileTap:tu(),whileDrag:tu(),whileFocus:tu(),exit:tu()}}class ea{constructor(t){this.isMounted=!1,this.node=t}update(){}}class I4 extends ea{constructor(t){super(t),t.animationState||(t.animationState=T4(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();fv(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let $4=0;class A4 extends ea{constructor(){super(...arguments),this.id=$4++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>{n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const R4={animation:{Feature:I4},exit:{Feature:A4}};function th(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function gh(e){return{point:{x:e.pageX,y:e.pageY}}}const L4=e=>t=>$x(t)&&e(t,gh(t));function Mp(e,t,n,r){return th(e,t,L4(n),r)}const XP=1e-4,M4=1-XP,D4=1+XP,QP=.01,N4=0-QP,F4=0+QP;function Lr(e){return e.max-e.min}function O4(e,t,n){return Math.abs(e-t)<=n}function X1(e,t,n,r=.5){e.origin=r,e.originPoint=sn(t.min,t.max,e.origin),e.scale=Lr(n)/Lr(t),e.translate=sn(n.min,n.max,e.origin)-e.originPoint,(e.scale>=M4&&e.scale<=D4||isNaN(e.scale))&&(e.scale=1),(e.translate>=N4&&e.translate<=F4||isNaN(e.translate))&&(e.translate=0)}function Dp(e,t,n,r){X1(e.x,t.x,n.x,r?r.originX:void 0),X1(e.y,t.y,n.y,r?r.originY:void 0)}function Q1(e,t,n){e.min=n.min+t.min,e.max=e.min+Lr(t)}function z4(e,t,n){Q1(e.x,t.x,n.x),Q1(e.y,t.y,n.y)}function J1(e,t,n){e.min=t.min-n.min,e.max=e.min+Lr(t)}function Np(e,t,n){J1(e.x,t.x,n.x),J1(e.y,t.y,n.y)}function qi(e){return[e("x"),e("y")]}const JP=({current:e})=>e?e.ownerDocument.defaultView:null,Z1=(e,t)=>Math.abs(e-t);function j4(e,t){const n=Z1(e.x,t.x),r=Z1(e.y,t.y);return Math.sqrt(n**2+r**2)}class ZP{constructor(t,n,{transformPagePoint:r,contextWindow:i=window,dragSnapToOrigin:s=!1,distanceThreshold:a=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=Jy(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,E=j4(b.offset,{x:0,y:0})>=this.distanceThreshold;if(!x&&!E)return;const{point:P}=b,{timestamp:_}=sr;this.history.push({...P,timestamp:_});const{onStart:T,onMove:R}=this.handlers;x||(T&&T(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),R&&R(this.lastMoveEvent,b)},this.handlePointerMove=(b,x)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=Qy(x,this.transformPagePoint),Yt.update(this.updatePoint,!0)},this.handlePointerUp=(b,x)=>{this.end();const{onEnd:E,onSessionEnd:P,resumeAnimation:_}=this.handlers;if(this.dragSnapToOrigin&&_&&_(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const T=Jy(b.type==="pointercancel"?this.lastMoveEventInfo:Qy(x,this.transformPagePoint),this.history);this.startEvent&&E&&E(b,T),P&&P(b,T)},!$x(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=a,this.contextWindow=i||window;const c=gh(t),d=Qy(c,this.transformPagePoint),{point:h}=d,{timestamp:m}=sr;this.history=[{...h,timestamp:m}];const{onSessionStart:g}=n;g&&g(t,Jy(d,this.history)),this.removeListeners=ph(Mp(this.contextWindow,"pointermove",this.handlePointerMove),Mp(this.contextWindow,"pointerup",this.handlePointerUp),Mp(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Jl(this.updatePoint)}}function Qy(e,t){return t?{point:t(e.point)}:e}function eS(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Jy({point:e},t){return{point:e,delta:eS(e,eT(t)),offset:eS(e,B4(t)),velocity:V4(t,.1)}}function B4(e){return e[0]}function eT(e){return e[e.length-1]}function V4(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=eT(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>as(t)));)n--;if(!r)return{x:0,y:0};const s=us(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const a={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function U4(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?sn(n,e,r.max):Math.min(e,n)),e}function tS(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function K4(e,{top:t,left:n,bottom:r,right:i}){return{x:tS(e.x,n,i),y:tS(e.y,t,r)}}function nS(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=qp(t.min,t.max-r,e.min):r>i&&(n=qp(e.min,e.max-i,t.min)),Js(0,1,n)}function G4(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const ab=.35;function q4(e=ab){return e===!1?e=0:e===!0&&(e=ab),{x:rS(e,"left","right"),y:rS(e,"top","bottom")}}function rS(e,t,n){return{min:iS(e,t),max:iS(e,n)}}function iS(e,t){return typeof e=="number"?e:e[t]||0}const Y4=new WeakMap;class X4{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=xn(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:r}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const s=g=>{const{dragSnapToOrigin:b}=this.getProps();b?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(gh(g).point)},a=(g,b)=>{const{drag:x,dragPropagation:E,onDragStart:P}=this.getProps();if(x&&!E&&(this.openDragLock&&this.openDragLock(),this.openDragLock=ZD(x),!this.openDragLock))return;this.latestPointerEvent=g,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),qi(T=>{let R=this.getAxisMotionValue(T).get()||0;if(cs.test(R)){const{projection:M}=this.visualElement;if(M&&M.layout){const j=M.layout.layoutBox[T];j&&(R=Lr(j)*(parseFloat(R)/100))}}this.originPoint[T]=R}),P&&Yt.postRender(()=>P(g,b)),sb(this.visualElement,"transform");const{animationState:_}=this.visualElement;_&&_.setActive("whileDrag",!0)},c=(g,b)=>{this.latestPointerEvent=g,this.latestPanInfo=b;const{dragPropagation:x,dragDirectionLock:E,onDirectionLock:P,onDrag:_}=this.getProps();if(!x&&!this.openDragLock)return;const{offset:T}=b;if(E&&this.currentDirection===null){this.currentDirection=Q4(T),this.currentDirection!==null&&P&&P(this.currentDirection);return}this.updateAxis("x",b.point,T),this.updateAxis("y",b.point,T),this.visualElement.render(),_&&_(g,b)},d=(g,b)=>{this.latestPointerEvent=g,this.latestPanInfo=b,this.stop(g,b),this.latestPointerEvent=null,this.latestPanInfo=null},h=()=>qi(g=>this.getAnimationState(g)==="paused"&&this.getAxisMotionValue(g).animation?.play()),{dragSnapToOrigin:m}=this.getProps();this.panSession=new ZP(t,{onSessionStart:s,onStart:a,onMove:c,onSessionEnd:d,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:m,distanceThreshold:r,contextWindow:JP(this.visualElement)})}stop(t,n){const r=t||this.latestPointerEvent,i=n||this.latestPanInfo,s=this.isDragging;if(this.cancel(),!s||!i||!r)return;const{velocity:a}=i;this.startAnimation(a);const{onDragEnd:c}=this.getProps();c&&Yt.postRender(()=>c(r,i))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!sg(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=U4(a,this.constraints[t],this.elastic[t])),s.set(a)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,i=this.constraints;t&&rf(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=K4(r.layoutBox,t):this.constraints=!1,this.elastic=q4(n),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&qi(s=>{this.constraints!==!1&&this.getAxisMotionValue(s)&&(this.constraints[s]=G4(r.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!rf(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=Q3(r,i.root,this.visualElement.getTransformPagePoint());let a=W4(i.layout.layoutBox,s);if(n){const c=n(q3(a));this.hasMutatedConstraints=!!c,c&&(a=OP(c))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:a,onDragTransitionEnd:c}=this.getProps(),d=this.constraints||{},h=qi(m=>{if(!sg(m,n,this.currentDirection))return;let g=d&&d[m]||{};a&&(g={min:0,max:0});const b=i?200:1e6,x=i?40:1e7,E={type:"inertia",velocity:r?t[m]:0,bounceStiffness:b,bounceDamping:x,timeConstant:750,restDelta:1,restSpeed:10,...s,...g};return this.startAxisValueAnimation(m,E)});return Promise.all(h).then(c)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return sb(this.visualElement,t),r.start(jx(t,r,0,n,this.visualElement,!1))}stopAnimation(){qi(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){qi(t=>this.getAxisMotionValue(t).animation?.pause())}getAnimationState(t){return this.getAxisMotionValue(t).animation?.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){qi(n=>{const{drag:r}=this.getProps();if(!sg(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:a,max:c}=i.layout.layoutBox[n];s.set(t[n]-sn(a,c,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!rf(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};qi(a=>{const c=this.getAxisMotionValue(a);if(c&&this.constraints!==!1){const d=c.get();i[a]=H4({min:d,max:d},this.constraints[a])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),qi(a=>{if(!sg(a,t,null))return;const c=this.getAxisMotionValue(a),{min:d,max:h}=this.constraints[a];c.set(sn(d,h,i[a]))})}addListeners(){if(!this.visualElement.current)return;Y4.set(this.visualElement,this);const t=this.visualElement.current,n=Mp(t,"pointerdown",d=>{const{drag:h,dragListener:m=!0}=this.getProps();h&&m&&this.start(d)}),r=()=>{const{dragConstraints:d}=this.getProps();rf(d)&&d.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Yt.read(r);const a=th(window,"resize",()=>this.scalePositionWithinConstraints()),c=i.addEventListener("didUpdate",({delta:d,hasLayoutChanged:h})=>{this.isDragging&&h&&(qi(m=>{const g=this.getAxisMotionValue(m);g&&(this.originPoint[m]+=d[m].translate,g.set(g.get()+d[m].translate))}),this.visualElement.render())});return()=>{a(),n(),s(),c&&c()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:a=ab,dragMomentum:c=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:a,dragMomentum:c}}}function sg(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Q4(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class J4 extends ea{constructor(t){super(t),this.removeGroupControls=Zi,this.removeListeners=Zi,this.controls=new X4(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Zi}unmount(){this.removeGroupControls(),this.removeListeners()}}const oS=e=>(t,n)=>{e&&Yt.postRender(()=>e(t,n))};class Z4 extends ea{constructor(){super(...arguments),this.removePointerDownListener=Zi}onPointerDown(t){this.session=new ZP(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:JP(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:oS(t),onStart:oS(n),onMove:r,onEnd:(s,a)=>{delete this.session,i&&Yt.postRender(()=>i(s,a))}}}mount(){this.removePointerDownListener=Mp(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Eg={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function sS(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const fp={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(et.test(e))e=parseFloat(e);else return e;const n=sS(e,t.target.x),r=sS(e,t.target.y);return`${n}% ${r}%`}},eN={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=Zl.parse(e);if(i.length>5)return r;const s=Zl.createTransformer(e),a=typeof i[0]!="number"?1:0,c=n.x.scale*t.x,d=n.y.scale*t.y;i[0+a]/=c,i[1+a]/=d;const h=sn(c,d,.5);return typeof i[2+a]=="number"&&(i[2+a]/=h),typeof i[3+a]=="number"&&(i[3+a]/=h),s(i)}};let lS=!1;class tN extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;k3(nN),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),lS&&s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),Eg.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,{projection:a}=r;return a&&(a.isPresent=s,lS=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==s?a.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?a.promote():a.relegate()||Yt.postRender(()=>{const c=a.getStack();(!c||!c.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),Ix.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function tT(e){const[t,n]=SP(),r=S.useContext(Gp);return N.jsx(tN,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(DP),isPresent:t,safeToRemove:n})}const nN={borderRadius:{...fp,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:fp,borderTopRightRadius:fp,borderBottomLeftRadius:fp,borderBottomRightRadius:fp,boxShadow:eN};function rN(e,t,n){const r=yr(e)?e:xf(e);return r.start(jx("",r,t,n)),r.animation}const iN=(e,t)=>e.depth-t.depth;class oN{constructor(){this.children=[],this.isDirty=!1}add(t){cx(this.children,t),this.isDirty=!0}remove(t){fx(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(iN),this.isDirty=!1,this.children.forEach(t)}}function sN(e,t){const n=ii.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(Jl(r),e(s-t))};return Yt.setup(r,!0),()=>Jl(r)}const nT=["TopLeft","TopRight","BottomLeft","BottomRight"],lN=nT.length,aS=e=>typeof e=="string"?parseFloat(e):e,uS=e=>typeof e=="number"||et.test(e);function aN(e,t,n,r,i,s){i?(e.opacity=sn(0,n.opacity??1,uN(r)),e.opacityExit=sn(t.opacity??1,0,cN(r))):s&&(e.opacity=sn(t.opacity??1,n.opacity??1,r));for(let a=0;art?1:n(qp(e,t,r))}function fS(e,t){e.min=t.min,e.max=t.max}function Hi(e,t){fS(e.x,t.x),fS(e.y,t.y)}function dS(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function pS(e,t,n,r,i){return e-=t,e=jg(e,1/n,r),i!==void 0&&(e=jg(e,1/i,r)),e}function fN(e,t=0,n=1,r=.5,i,s=e,a=e){if(cs.test(t)&&(t=parseFloat(t),t=sn(a.min,a.max,t/100)-a.min),typeof t!="number")return;let c=sn(s.min,s.max,r);e===s&&(c-=t),e.min=pS(e.min,t,n,c,i),e.max=pS(e.max,t,n,c,i)}function hS(e,t,[n,r,i],s,a){fN(e,t[n],t[r],t[i],t.scale,s,a)}const dN=["x","scaleX","originX"],pN=["y","scaleY","originY"];function mS(e,t,n,r){hS(e.x,t,dN,n?n.x:void 0,r?r.x:void 0),hS(e.y,t,pN,n?n.y:void 0,r?r.y:void 0)}function gS(e){return e.translate===0&&e.scale===1}function iT(e){return gS(e.x)&&gS(e.y)}function vS(e,t){return e.min===t.min&&e.max===t.max}function hN(e,t){return vS(e.x,t.x)&&vS(e.y,t.y)}function yS(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function oT(e,t){return yS(e.x,t.x)&&yS(e.y,t.y)}function bS(e){return Lr(e.x)/Lr(e.y)}function xS(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class mN{constructor(){this.members=[]}add(t){cx(this.members,t),t.scheduleRender()}remove(t){if(fx(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function gN(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,a=n?.z||0;if((i||s||a)&&(r=`translate3d(${i}px, ${s}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:h,rotate:m,rotateX:g,rotateY:b,skewX:x,skewY:E}=n;h&&(r=`perspective(${h}px) ${r}`),m&&(r+=`rotate(${m}deg) `),g&&(r+=`rotateX(${g}deg) `),b&&(r+=`rotateY(${b}deg) `),x&&(r+=`skewX(${x}deg) `),E&&(r+=`skewY(${E}deg) `)}const c=e.x.scale*t.x,d=e.y.scale*t.y;return(c!==1||d!==1)&&(r+=`scale(${c}, ${d})`),r||"none"}const Zy=["","X","Y","Z"],vN=1e3;let yN=0;function e0(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function sT(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=HP(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Yt,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&sT(r)}function lT({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(a={},c=t?.()){this.id=yN++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(wN),this.nodes.forEach(EN),this.nodes.forEach(PN),this.nodes.forEach(SN)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let d=0;dthis.root.updateBlockedByResize=!1;Yt.read(()=>{g=window.innerWidth}),e(a,()=>{const x=window.innerWidth;x!==g&&(g=x,this.root.updateBlockedByResize=!0,m&&m(),m=sN(b,250),Eg.hasAnimatedSinceResize&&(Eg.hasAnimatedSinceResize=!1,this.nodes.forEach(kS)))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&h&&(c||d)&&this.addEventListener("didUpdate",({delta:m,hasLayoutChanged:g,hasRelativeLayoutChanged:b,layout:x})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const E=this.options.transition||h.getDefaultTransition()||AN,{onLayoutAnimationStart:P,onLayoutAnimationComplete:_}=h.getProps(),T=!this.targetLayout||!oT(this.targetLayout,x),R=!g&&b;if(this.options.layoutRoot||this.resumeFrom||R||g&&(T||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const M={...Tx(E,"layout"),onPlay:P,onComplete:_};(h.shouldReduceMotion||this.options.layoutRoot)&&(M.delay=0,M.type=!1),this.startAnimation(M),this.setAnimationOrigin(m,R)}else g||kS(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=x})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Jl(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(TN),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&sT(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let m=0;m{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Lr(this.snapshot.measuredBox.x)&&!Lr(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let d=0;d{const H=j/1e3;CS(g.x,a.x,H),CS(g.y,a.y,H),this.setTargetDelta(g),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Np(b,this.layout.layoutBox,this.relativeParent.layout.layoutBox),IN(this.relativeTarget,this.relativeTargetOrigin,b,H),M&&hN(this.relativeTarget,M)&&(this.isProjectionDirty=!1),M||(M=xn()),Hi(M,this.relativeTarget)),P&&(this.animationValues=m,aN(m,h,this.latestValues,H,R,T)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=H},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Jl(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Yt.update(()=>{Eg.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=xf(0)),this.currentAnimation=rN(this.motionValue,[0,1e3],{...a,velocity:0,isSync:!0,onUpdate:c=>{this.mixTargetDelta(c),a.onUpdate&&a.onUpdate(c)},onStop:()=>{},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(vN),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:c,target:d,layout:h,latestValues:m}=a;if(!(!c||!d||!h)){if(this!==a&&this.layout&&h&&aT(this.options.animationType,this.layout.layoutBox,h.layoutBox)){d=this.target||xn();const g=Lr(this.layout.layoutBox.x);d.x.min=a.target.x.min,d.x.max=d.x.min+g;const b=Lr(this.layout.layoutBox.y);d.y.min=a.target.y.min,d.y.max=d.y.min+b}Hi(c,d),sf(c,m),Dp(this.projectionDeltaWithTransform,this.layoutCorrected,c,m)}}registerSharedNode(a,c){this.sharedNodes.has(a)||this.sharedNodes.set(a,new mN),this.sharedNodes.get(a).add(c);const h=c.options.initialPromotionConfig;c.promote({transition:h?h.transition:void 0,preserveFollowOpacity:h&&h.shouldPreserveFollowOpacity?h.shouldPreserveFollowOpacity(c):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){const{layoutId:a}=this.options;return a?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:a}=this.options;return a?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:c,preserveFollowOpacity:d}={}){const h=this.getStack();h&&h.promote(this,d),a&&(this.projectionDelta=void 0,this.needsReset=!0),c&&this.setOptions({transition:c})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let c=!1;const{latestValues:d}=a;if((d.z||d.rotate||d.rotateX||d.rotateY||d.rotateZ||d.skewX||d.skewY)&&(c=!0),!c)return;const h={};d.z&&e0("z",a,h,this.animationValues);for(let m=0;ma.currentAnimation?.stop()),this.root.nodes.forEach(wS),this.root.sharedNodes.clear()}}}function bN(e){e.updateLayout()}function xN(e){const t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:r}=e.layout,{animationType:i}=e.options,s=t.source!==e.layout.source;i==="size"?qi(m=>{const g=s?t.measuredBox[m]:t.layoutBox[m],b=Lr(g);g.min=n[m].min,g.max=g.min+b}):aT(i,t.layoutBox,n)&&qi(m=>{const g=s?t.measuredBox[m]:t.layoutBox[m],b=Lr(n[m]);g.max=g.min+b,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[m].max=e.relativeTarget[m].min+b)});const a=lf();Dp(a,n,t.layoutBox);const c=lf();s?Dp(c,e.applyTransform(r,!0),t.measuredBox):Dp(c,n,t.layoutBox);const d=!iT(a);let h=!1;if(!e.resumeFrom){const m=e.getClosestProjectingParent();if(m&&!m.resumeFrom){const{snapshot:g,layout:b}=m;if(g&&b){const x=xn();Np(x,t.layoutBox,g.layoutBox);const E=xn();Np(E,n,b.layoutBox),oT(x,E)||(h=!0),m.options.layoutRoot&&(e.relativeTarget=E,e.relativeTargetOrigin=x,e.relativeParent=m)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:t,delta:c,layoutDelta:a,hasLayoutChanged:d,hasRelativeLayoutChanged:h})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function wN(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function SN(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function kN(e){e.clearSnapshot()}function wS(e){e.clearMeasurements()}function SS(e){e.isLayoutDirty=!1}function CN(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function kS(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function EN(e){e.resolveTargetDelta()}function PN(e){e.calcProjection()}function TN(e){e.resetSkewAndRotation()}function _N(e){e.removeLeadSnapshot()}function CS(e,t,n){e.translate=sn(t.translate,0,n),e.scale=sn(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function ES(e,t,n,r){e.min=sn(t.min,n.min,r),e.max=sn(t.max,n.max,r)}function IN(e,t,n,r){ES(e.x,t.x,n.x,r),ES(e.y,t.y,n.y,r)}function $N(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const AN={duration:.45,ease:[.4,0,.1,1]},PS=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),TS=PS("applewebkit/")&&!PS("chrome/")?Math.round:Zi;function _S(e){e.min=TS(e.min),e.max=TS(e.max)}function RN(e){_S(e.x),_S(e.y)}function aT(e,t,n){return e==="position"||e==="preserve-aspect"&&!O4(bS(t),bS(n),.2)}function LN(e){return e!==e.root&&e.scroll?.wasRoot}const MN=lT({attachResizeListener:(e,t)=>th(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),t0={current:void 0},uT=lT({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!t0.current){const e=new MN({});e.mount(window),e.setOptions({layoutScroll:!0}),t0.current=e}return t0.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),DN={pan:{Feature:Z4},drag:{Feature:J4,ProjectionNode:uT,MeasureLayout:tT}};function IS(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&Yt.postRender(()=>s(t,gh(t)))}class NN extends ea{mount(){const{current:t}=this.node;t&&(this.unmount=e3(t,(n,r)=>(IS(this.node,r,"Start"),i=>IS(this.node,i,"End"))))}unmount(){}}class FN extends ea{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=ph(th(this.node.current,"focus",()=>this.onFocus()),th(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function $S(e,t,n){const{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&Yt.postRender(()=>s(t,gh(t)))}class ON extends ea{mount(){const{current:t}=this.node;t&&(this.unmount=i3(t,(n,r)=>($S(this.node,r,"Start"),(i,{success:s})=>$S(this.node,i,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const ub=new WeakMap,n0=new WeakMap,zN=e=>{const t=ub.get(e.target);t&&t(e)},jN=e=>{e.forEach(zN)};function BN({root:e,...t}){const n=e||document;n0.has(n)||n0.set(n,{});const r=n0.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(jN,{root:e,...t})),r[i]}function VN(e,t,n){const r=BN(t);return ub.set(e,n),r.observe(e),()=>{ub.delete(e),r.unobserve(e)}}const UN={some:0,all:1};class KN extends ea{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:UN[i]},c=d=>{const{isIntersecting:h}=d;if(this.isInView===h||(this.isInView=h,s&&!h&&this.hasEnteredView))return;h&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",h);const{onViewportEnter:m,onViewportLeave:g}=this.node.getProps(),b=h?m:g;b&&b(d)};return VN(this.node.current,a,c)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(WN(t,n))&&this.startObserver()}unmount(){}}function WN({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const HN={inView:{Feature:KN},tap:{Feature:ON},focus:{Feature:FN},hover:{Feature:NN}},GN={layout:{ProjectionNode:uT,MeasureLayout:tT}},qN={...R4,...HN,...DN,...GN},cf=FP(qN,s4);class YN extends vP{constructor(){super(...arguments),this.isEnabled=!1}add(t){(ku.has(t)||XD.has(t))&&(this.isEnabled=!0,this.update())}update(){this.set(this.isEnabled?"transform":"auto")}}function XN(){return dh(()=>new YN("auto"))}const ls={top:"top",bottom:"top",left:"left",right:"left"},Bg={top:"bottom",bottom:"top",left:"right",right:"left"},QN={top:"left",left:"top"},cb={top:"height",left:"width"},cT={width:"totalWidth",height:"totalHeight"},lg={};let Gn=typeof document<"u"?window.visualViewport:null;function AS(e){let t=0,n=0,r=0,i=0,s=0,a=0,c={};var d;let h=((d=Gn?.scale)!==null&&d!==void 0?d:1)>1;if(e.tagName==="BODY"){let E=document.documentElement;r=E.clientWidth,i=E.clientHeight;var m;t=(m=Gn?.width)!==null&&m!==void 0?m:r;var g;n=(g=Gn?.height)!==null&&g!==void 0?g:i,c.top=E.scrollTop||e.scrollTop,c.left=E.scrollLeft||e.scrollLeft,Gn&&(s=Gn.offsetTop,a=Gn.offsetLeft)}else({width:t,height:n,top:s,left:a}=ff(e)),c.top=e.scrollTop,c.left=e.scrollLeft,r=t,i=n;if(gE()&&(e.tagName==="BODY"||e.tagName==="HTML")&&h){c.top=0,c.left=0;var b;s=(b=Gn?.pageTop)!==null&&b!==void 0?b:0;var x;a=(x=Gn?.pageLeft)!==null&&x!==void 0?x:0}return{width:t,height:n,totalWidth:r,totalHeight:i,scroll:c,top:s,left:a}}function JN(e){return{top:e.scrollTop,left:e.scrollLeft,width:e.scrollWidth,height:e.scrollHeight}}function RS(e,t,n,r,i,s,a){var c;let d=(c=i.scroll[e])!==null&&c!==void 0?c:0,h=r[cb[e]],m=r.scroll[ls[e]]+s,g=h+r.scroll[ls[e]]-s,b=t-d+a[e]-r[ls[e]],x=t-d+n+a[e]-r[ls[e]];return bg?Math.max(g-x,m-b):0}function ZN(e){let t=window.getComputedStyle(e);return{top:parseInt(t.marginTop,10)||0,bottom:parseInt(t.marginBottom,10)||0,left:parseInt(t.marginLeft,10)||0,right:parseInt(t.marginRight,10)||0}}function LS(e){if(lg[e])return lg[e];let[t,n]=e.split(" "),r=ls[t]||"right",i=QN[r];ls[n]||(n="center");let s=cb[r],a=cb[i];return lg[e]={placement:t,crossPlacement:n,axis:r,crossAxis:i,size:s,crossSize:a},lg[e]}function r0(e,t,n,r,i,s,a,c,d,h){let{placement:m,crossPlacement:g,axis:b,crossAxis:x,size:E,crossSize:P}=r,_={};var T;_[x]=(T=e[x])!==null&&T!==void 0?T:0;var R,M,j,H;g==="center"?_[x]+=(((R=e[P])!==null&&R!==void 0?R:0)-((M=n[P])!==null&&M!==void 0?M:0))/2:g!==x&&(_[x]+=((j=e[P])!==null&&j!==void 0?j:0)-((H=n[P])!==null&&H!==void 0?H:0)),_[x]+=s;const L=e[x]-n[P]+d+h,Z=e[x]+e[P]-d-h;if(_[x]=Mg(_[x],L,Z),m===b){const ne=c?a[E]:t[cT[E]];_[Bg[b]]=Math.floor(ne-e[b]+i)}else _[b]=Math.floor(e[b]+e[E]+i);return _}function eF(e,t,n,r,i,s,a,c){const d=r?n.height:t[cT.height];var h;let m=e.top!=null?n.top+e.top:n.top+(d-((h=e.bottom)!==null&&h!==void 0?h:0)-a);var g,b,x,E,P,_;let T=c!=="top"?Math.max(0,t.height+t.top+((g=t.scroll.top)!==null&&g!==void 0?g:0)-m-(((b=i.top)!==null&&b!==void 0?b:0)+((x=i.bottom)!==null&&x!==void 0?x:0)+s)):Math.max(0,m+a-(t.top+((E=t.scroll.top)!==null&&E!==void 0?E:0))-(((P=i.top)!==null&&P!==void 0?P:0)+((_=i.bottom)!==null&&_!==void 0?_:0)+s));return Math.min(t.height-s*2,T)}function MS(e,t,n,r,i,s){let{placement:a,axis:c,size:d}=s;var h,m;if(a===c)return Math.max(0,n[c]-e[c]-((h=e.scroll[c])!==null&&h!==void 0?h:0)+t[c]-((m=r[c])!==null&&m!==void 0?m:0)-r[Bg[c]]-i);var g;return Math.max(0,e[d]+e[c]+e.scroll[c]-t[c]-n[c]-n[d]-((g=r[c])!==null&&g!==void 0?g:0)-r[Bg[c]]-i)}function tF(e,t,n,r,i,s,a,c,d,h,m,g,b,x,E,P){let _=LS(e),{size:T,crossAxis:R,crossSize:M,placement:j,crossPlacement:H}=_,L=r0(t,c,n,_,m,g,h,b,E,P),Z=m,ne=MS(c,h,t,i,s+m,_);if(a&&r[T]>ne){let me=LS(`${Bg[j]} ${H}`),Ee=r0(t,c,n,me,m,g,h,b,E,P);MS(c,h,t,i,s+m,me)>ne&&(_=me,L=Ee,Z=m)}let ae="bottom";_.axis==="top"?_.placement==="top"?ae="top":_.placement==="bottom"&&(ae="bottom"):_.crossAxis==="top"&&(_.crossPlacement==="top"?ae="bottom":_.crossPlacement==="bottom"&&(ae="top"));let O=RS(R,L[R],n[M],c,d,s,h);L[R]+=O;let U=eF(L,c,h,b,i,s,n.height,ae);x&&x{if(!n||r===null)return;let i=s=>{let a=s.target;if(!t.current||a instanceof Node&&!a.contains(t.current)||s.target instanceof HTMLInputElement||s.target instanceof HTMLTextAreaElement)return;let c=r||iF.get(t.current);c&&c()};return window.addEventListener("scroll",i,!0),()=>{window.removeEventListener("scroll",i,!0)}},[n,r,t])}let bn=typeof document<"u"?window.visualViewport:null;function sF(e){let{direction:t}=fh(),{arrowSize:n=0,targetRef:r,overlayRef:i,scrollRef:s=i,placement:a="bottom",containerPadding:c=12,shouldFlip:d=!0,boundaryElement:h=typeof document<"u"?document.body:null,offset:m=0,crossOffset:g=0,shouldUpdatePosition:b=!0,isOpen:x=!0,onClose:E,maxHeight:P,arrowBoundaryOffset:_=0}=e,[T,R]=S.useState(null),M=[b,a,i.current,r.current,s.current,c,d,h,m,g,x,t,P,_,n],j=S.useRef(bn?.scale);S.useEffect(()=>{x&&(j.current=bn?.scale)},[x]);let H=S.useCallback(()=>{if(b===!1||!x||!i.current||!r.current||!h||bn?.scale!==j.current)return;let O=null;if(s.current&&s.current.contains(document.activeElement)){var U;let K=(U=document.activeElement)===null||U===void 0?void 0:U.getBoundingClientRect(),se=s.current.getBoundingClientRect();var X;if(O={type:"top",offset:((X=K?.top)!==null&&X!==void 0?X:0)-se.top},O.offset>se.height/2){O.type="bottom";var re;O.offset=((re=K?.bottom)!==null&&re!==void 0?re:0)-se.bottom}}let G=i.current;if(!P&&i.current){var fe;G.style.top="0px",G.style.bottom="";var J;G.style.maxHeight=((J=(fe=window.visualViewport)===null||fe===void 0?void 0:fe.height)!==null&&J!==void 0?J:window.innerHeight)+"px"}let q=nF({placement:aF(a,t),overlayNode:i.current,targetNode:r.current,scrollNode:s.current||i.current,padding:c,shouldFlip:d,boundaryElement:h,offset:m,crossOffset:g,maxHeight:P,arrowSize:n,arrowBoundaryOffset:_});if(q.position){if(G.style.top="",G.style.bottom="",G.style.left="",G.style.right="",Object.keys(q.position).forEach(K=>G.style[K]=q.position[K]+"px"),G.style.maxHeight=q.maxHeight!=null?q.maxHeight+"px":"",O&&document.activeElement&&s.current){let K=document.activeElement.getBoundingClientRect(),se=s.current.getBoundingClientRect(),A=K[O.type]-se[O.type];s.current.scrollTop+=A-O.offset}R(q)}},M);Zt(H,M),lF(H),h1({ref:i,onResize:H}),h1({ref:r,onResize:H});let L=S.useRef(!1);Zt(()=>{let O,U=()=>{L.current=!0,clearTimeout(O),O=setTimeout(()=>{L.current=!1},500),H()},X=()=>{L.current&&U()};return bn?.addEventListener("resize",U),bn?.addEventListener("scroll",X),()=>{bn?.removeEventListener("resize",U),bn?.removeEventListener("scroll",X)}},[H]);let Z=S.useCallback(()=>{L.current||E?.()},[E,L]);oF({triggerRef:r,isOpen:x,onClose:E&&Z});var ne,ae;return{overlayProps:{style:{position:"absolute",zIndex:1e5,...T?.position,maxHeight:(ne=T?.maxHeight)!==null&&ne!==void 0?ne:"100vh"}},placement:(ae=T?.placement)!==null&&ae!==void 0?ae:null,arrowProps:{"aria-hidden":"true",role:"presentation",style:{left:T?.arrowOffsetLeft,top:T?.arrowOffsetTop}},updatePosition:H}}function lF(e){Zt(()=>(window.addEventListener("resize",e,!1),()=>{window.removeEventListener("resize",e,!1)}),[e])}function aF(e,t){return t==="rtl"?e.replace("start","right").replace("end","left"):e.replace("start","left").replace("end","right")}function uF(e){const t=Ji(e);if(!(e instanceof t.HTMLElement)&&!(e instanceof t.SVGElement))return!1;let{display:n,visibility:r}=e.style,i=n!=="none"&&r!=="hidden"&&r!=="collapse";if(i){const{getComputedStyle:s}=e.ownerDocument.defaultView;let{display:a,visibility:c}=s(e);i=a!=="none"&&c!=="hidden"&&c!=="collapse"}return i}function cF(e,t){return!e.hasAttribute("hidden")&&!e.hasAttribute("data-react-aria-prevent-focus")&&(e.nodeName==="DETAILS"&&t&&t.nodeName!=="SUMMARY"?e.hasAttribute("open"):!0)}function fT(e,t){return e.nodeName!=="#comment"&&uF(e)&&cF(e,t)&&(!e.parentElement||fT(e.parentElement,e))}function Bx(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function dT(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function pT(e){let t=S.useRef({isFocused:!1,observer:null});Zt(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=Fn(r=>{e?.(r)});return S.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let i=r.target,s=a=>{if(t.current.isFocused=!1,i.disabled){let c=Bx(a);n(c)}t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};i.addEventListener("focusout",s,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&i.disabled){var a;(a=t.current.observer)===null||a===void 0||a.disconnect();let c=i===document.activeElement?null:document.activeElement;i.dispatchEvent(new FocusEvent("blur",{relatedTarget:c})),i.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:c}))}}),t.current.observer.observe(i,{attributes:!0,attributeFilter:["disabled"]})}},[n])}let Vg=!1;function fF(e){for(;e&&!IE(e);)e=e.parentElement;let t=Ji(e),n=t.document.activeElement;if(!n||n===e)return;Vg=!0;let r=!1,i=m=>{(m.target===n||r)&&m.stopImmediatePropagation()},s=m=>{(m.target===n||r)&&(m.stopImmediatePropagation(),!e&&!r&&(r=!0,Ql(n),d()))},a=m=>{(m.target===e||r)&&m.stopImmediatePropagation()},c=m=>{(m.target===e||r)&&(m.stopImmediatePropagation(),r||(r=!0,Ql(n),d()))};t.addEventListener("blur",i,!0),t.addEventListener("focusout",s,!0),t.addEventListener("focusin",c,!0),t.addEventListener("focus",a,!0);let d=()=>{cancelAnimationFrame(h),t.removeEventListener("blur",i,!0),t.removeEventListener("focusout",s,!0),t.removeEventListener("focusin",c,!0),t.removeEventListener("focus",a,!0),Vg=!1,r=!1},h=requestAnimationFrame(d);return d}let af="default",fb="",Pg=new WeakMap;function dF(e){if(av()){if(af==="default"){const t=At(e);fb=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}af="disabled"}else if(e instanceof HTMLElement||e instanceof SVGElement){let t="userSelect"in e.style?"userSelect":"webkitUserSelect";Pg.set(e,e.style[t]),e.style[t]="none"}}function FS(e){if(av()){if(af!=="disabled")return;af="restoring",setTimeout(()=>{wE(()=>{if(af==="restoring"){const t=At(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=fb||""),fb="",af="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&Pg.has(e)){let t=Pg.get(e),n="userSelect"in e.style?"userSelect":"webkitUserSelect";e.style[n]==="none"&&(e.style[n]=t),e.getAttribute("style")===""&&e.removeAttribute("style"),Pg.delete(e)}}const Vx=We.createContext({register:()=>{}});Vx.displayName="PressResponderContext";function pF(e,t){return t.get?t.get.call(e):t.value}function hT(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}function hF(e,t){var n=hT(e,t,"get");return pF(e,n)}function mF(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}function OS(e,t,n){var r=hT(e,t,"set");return mF(e,r,n),n}function gF(e){let t=S.useContext(Vx);if(t){let{register:n,...r}=t;e=lr(r,e),n()}return kE(t,e.ref),e}var ag=new WeakMap;class ug{continuePropagation(){OS(this,ag,!1)}get shouldStopPropagation(){return hF(this,ag)}constructor(t,n,r,i){_L(this,ag,{writable:!0,value:void 0}),OS(this,ag,!0);var s;let a=(s=i?.target)!==null&&s!==void 0?s:r.currentTarget;const c=a?.getBoundingClientRect();let d,h=0,m,g=null;r.clientX!=null&&r.clientY!=null&&(m=r.clientX,g=r.clientY),c&&(m!=null&&g!=null?(d=m-c.left,h=g-c.top):(d=c.width/2,h=c.height/2)),this.type=t,this.pointerType=n,this.target=r.currentTarget,this.shiftKey=r.shiftKey,this.metaKey=r.metaKey,this.ctrlKey=r.ctrlKey,this.altKey=r.altKey,this.x=d,this.y=h}}const zS=Symbol("linkClicked"),jS="react-aria-pressable-style",BS="data-react-aria-pressable";function pv(e){let{onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:s,onClick:a,isDisabled:c,isPressed:d,preventFocusOnPress:h,shouldCancelOnPointerExit:m,allowTextSelectionOnPress:g,ref:b,...x}=gF(e),[E,P]=S.useState(!1),_=S.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null,disposables:[]}),{addGlobalListener:T,removeAllGlobalListeners:R}=sx(),M=Fn((U,X)=>{let re=_.current;if(c||re.didFirePressStart)return!1;let G=!0;if(re.isTriggeringEvent=!0,r){let fe=new ug("pressstart",X,U);r(fe),G=fe.shouldStopPropagation}return n&&n(!0),re.isTriggeringEvent=!1,re.didFirePressStart=!0,P(!0),G}),j=Fn((U,X,re=!0)=>{let G=_.current;if(!G.didFirePressStart)return!1;G.didFirePressStart=!1,G.isTriggeringEvent=!0;let fe=!0;if(i){let J=new ug("pressend",X,U);i(J),fe=J.shouldStopPropagation}if(n&&n(!1),P(!1),t&&re&&!c){let J=new ug("press",X,U);t(J),fe&&(fe=J.shouldStopPropagation)}return G.isTriggeringEvent=!1,fe}),H=Fn((U,X)=>{let re=_.current;if(c)return!1;if(s){re.isTriggeringEvent=!0;let G=new ug("pressup",X,U);return s(G),re.isTriggeringEvent=!1,G.shouldStopPropagation}return!0}),L=Fn(U=>{let X=_.current;if(X.isPressed&&X.target){X.didFirePressStart&&X.pointerType!=null&&j(nu(X.target,U),X.pointerType,!1),X.isPressed=!1,X.isOverTarget=!1,X.activePointerId=null,X.pointerType=null,R(),g||FS(X.target);for(let re of X.disposables)re();X.disposables=[]}}),Z=Fn(U=>{m&&L(U)}),ne=Fn(U=>{a?.(U)}),ae=Fn((U,X)=>{if(a){let re=new MouseEvent("click",U);dT(re,X),a(Bx(re))}}),O=S.useMemo(()=>{let U=_.current,X={onKeyDown(G){if(i0(G.nativeEvent,G.currentTarget)&&ni(G.currentTarget,wn(G.nativeEvent))){var fe;VS(wn(G.nativeEvent),G.key)&&G.preventDefault();let J=!0;if(!U.isPressed&&!G.repeat){U.target=G.currentTarget,U.isPressed=!0,U.pointerType="keyboard",J=M(G,"keyboard");let q=G.currentTarget,K=se=>{i0(se,q)&&!se.repeat&&ni(q,wn(se))&&U.target&&H(nu(U.target,se),"keyboard")};T(At(G.currentTarget),"keyup",bf(K,re),!0)}J&&G.stopPropagation(),G.metaKey&&gu()&&((fe=U.metaKeyEvents)===null||fe===void 0||fe.set(G.key,G.nativeEvent))}else G.key==="Meta"&&(U.metaKeyEvents=new Map)},onClick(G){if(!(G&&!ni(G.currentTarget,wn(G.nativeEvent)))&&G&&G.button===0&&!U.isTriggeringEvent&&!vu.isOpening){let fe=!0;if(c&&G.preventDefault(),!U.ignoreEmulatedMouseEvents&&!U.isPressed&&(U.pointerType==="virtual"||PE(G.nativeEvent))){let J=M(G,"virtual"),q=H(G,"virtual"),K=j(G,"virtual");ne(G),fe=J&&q&&K}else if(U.isPressed&&U.pointerType!=="keyboard"){let J=U.pointerType||G.nativeEvent.pointerType||"virtual",q=H(nu(G.currentTarget,G),J),K=j(nu(G.currentTarget,G),J,!0);fe=q&&K,U.isOverTarget=!1,ne(G),L(G)}U.ignoreEmulatedMouseEvents=!1,fe&&G.stopPropagation()}}},re=G=>{var fe;if(U.isPressed&&U.target&&i0(G,U.target)){var J;VS(wn(G),G.key)&&G.preventDefault();let K=wn(G),se=ni(U.target,wn(G));j(nu(U.target,G),"keyboard",se),se&&ae(G,U.target),R(),G.key!=="Enter"&&Ux(U.target)&&ni(U.target,K)&&!G[zS]&&(G[zS]=!0,vu(U.target,G,!1)),U.isPressed=!1,(J=U.metaKeyEvents)===null||J===void 0||J.delete(G.key)}else if(G.key==="Meta"&&(!((fe=U.metaKeyEvents)===null||fe===void 0)&&fe.size)){var q;let K=U.metaKeyEvents;U.metaKeyEvents=void 0;for(let se of K.values())(q=U.target)===null||q===void 0||q.dispatchEvent(new KeyboardEvent("keyup",se))}};if(typeof PointerEvent<"u"){X.onPointerDown=J=>{if(J.button!==0||!ni(J.currentTarget,wn(J.nativeEvent)))return;if(eM(J.nativeEvent)){U.pointerType="virtual";return}U.pointerType=J.pointerType;let q=!0;if(!U.isPressed){U.isPressed=!0,U.isOverTarget=!0,U.activePointerId=J.pointerId,U.target=J.currentTarget,g||dF(U.target),q=M(J,U.pointerType);let K=wn(J.nativeEvent);"releasePointerCapture"in K&&K.releasePointerCapture(J.pointerId),T(At(J.currentTarget),"pointerup",G,!1),T(At(J.currentTarget),"pointercancel",fe,!1)}q&&J.stopPropagation()},X.onMouseDown=J=>{if(ni(J.currentTarget,wn(J.nativeEvent))&&J.button===0){if(h){let q=fF(J.target);q&&U.disposables.push(q)}J.stopPropagation()}},X.onPointerUp=J=>{!ni(J.currentTarget,wn(J.nativeEvent))||U.pointerType==="virtual"||J.button===0&&!U.isPressed&&H(J,U.pointerType||J.pointerType)},X.onPointerEnter=J=>{J.pointerId===U.activePointerId&&U.target&&!U.isOverTarget&&U.pointerType!=null&&(U.isOverTarget=!0,M(nu(U.target,J),U.pointerType))},X.onPointerLeave=J=>{J.pointerId===U.activePointerId&&U.target&&U.isOverTarget&&U.pointerType!=null&&(U.isOverTarget=!1,j(nu(U.target,J),U.pointerType,!1),Z(J))};let G=J=>{if(J.pointerId===U.activePointerId&&U.isPressed&&J.button===0&&U.target){if(ni(U.target,wn(J))&&U.pointerType!=null){let q=!1,K=setTimeout(()=>{U.isPressed&&U.target instanceof HTMLElement&&(q?L(J):(Ql(U.target),U.target.click()))},80);T(J.currentTarget,"click",()=>q=!0,!0),U.disposables.push(()=>clearTimeout(K))}else L(J);U.isOverTarget=!1}},fe=J=>{L(J)};X.onDragStart=J=>{ni(J.currentTarget,wn(J.nativeEvent))&&L(J)}}return X},[T,c,h,R,g,L,Z,j,M,H,ne,ae]);return S.useEffect(()=>{if(!b)return;const U=At(b.current);if(!U||!U.head||U.getElementById(jS))return;const X=U.createElement("style");X.id=jS,X.textContent=` +@layer { + [${BS}] { + touch-action: pan-x pan-y pinch-zoom; + } +} + `.trim(),U.head.prepend(X)},[b]),S.useEffect(()=>{let U=_.current;return()=>{var X;g||FS((X=U.target)!==null&&X!==void 0?X:void 0);for(let re of U.disposables)re();U.disposables=[]}},[g]),{isPressed:d||E,pressProps:lr(x,O,{[BS]:!0})}}function Ux(e){return e.tagName==="A"&&e.hasAttribute("href")}function i0(e,t){const{key:n,code:r}=e,i=t,s=i.getAttribute("role");return(n==="Enter"||n===" "||n==="Spacebar"||r==="Space")&&!(i instanceof Ji(i).HTMLInputElement&&!mT(i,n)||i instanceof Ji(i).HTMLTextAreaElement||i.isContentEditable)&&!((s==="link"||!s&&Ux(i))&&n!=="Enter")}function nu(e,t){let n=t.clientX,r=t.clientY;return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:n,clientY:r}}function vF(e){return e instanceof HTMLInputElement?!1:e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!Ux(e)}function VS(e,t){return e instanceof HTMLInputElement?!mT(e,t):vF(e)}const yF=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function mT(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":yF.has(e.type)}let Cu=null,db=new Set,Fp=new Map,yu=!1,pb=!1;const bF={Tab:!0,Escape:!0};function hv(e,t){for(let n of db)n(e,t)}function xF(e){return!(e.metaKey||!gu()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function Ug(e){yu=!0,xF(e)&&(Cu="keyboard",hv("keyboard",e))}function df(e){Cu="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(yu=!0,hv("pointer",e))}function gT(e){PE(e)&&(yu=!0,Cu="virtual")}function vT(e){e.target===window||e.target===document||Vg||!e.isTrusted||(!yu&&!pb&&(Cu="virtual",hv("virtual",e)),yu=!1,pb=!1)}function yT(){Vg||(yu=!1,pb=!0)}function hb(e){if(typeof window>"u"||typeof document>"u"||Fp.get(Ji(e)))return;const t=Ji(e),n=At(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){yu=!0,r.apply(this,arguments)},n.addEventListener("keydown",Ug,!0),n.addEventListener("keyup",Ug,!0),n.addEventListener("click",gT,!0),t.addEventListener("focus",vT,!0),t.addEventListener("blur",yT,!1),typeof PointerEvent<"u"&&(n.addEventListener("pointerdown",df,!0),n.addEventListener("pointermove",df,!0),n.addEventListener("pointerup",df,!0)),t.addEventListener("beforeunload",()=>{bT(e)},{once:!0}),Fp.set(t,{focus:r})}const bT=(e,t)=>{const n=Ji(e),r=At(e);t&&r.removeEventListener("DOMContentLoaded",t),Fp.has(n)&&(n.HTMLElement.prototype.focus=Fp.get(n).focus,r.removeEventListener("keydown",Ug,!0),r.removeEventListener("keyup",Ug,!0),r.removeEventListener("click",gT,!0),n.removeEventListener("focus",vT,!0),n.removeEventListener("blur",yT,!1),typeof PointerEvent<"u"&&(r.removeEventListener("pointerdown",df,!0),r.removeEventListener("pointermove",df,!0),r.removeEventListener("pointerup",df,!0)),Fp.delete(n))};function wF(e){const t=At(e);let n;return t.readyState!=="loading"?hb(e):(n=()=>{hb(e)},t.addEventListener("DOMContentLoaded",n)),()=>bT(e,n)}typeof document<"u"&&wF();function Kx(){return Cu!=="pointer"}function nh(){return Cu}function SF(e){Cu=e,hv(e,null)}const kF=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function CF(e,t,n){let r=At(n?.target);const i=typeof window<"u"?Ji(n?.target).HTMLInputElement:HTMLInputElement,s=typeof window<"u"?Ji(n?.target).HTMLTextAreaElement:HTMLTextAreaElement,a=typeof window<"u"?Ji(n?.target).HTMLElement:HTMLElement,c=typeof window<"u"?Ji(n?.target).KeyboardEvent:KeyboardEvent;return e=e||r.activeElement instanceof i&&!kF.has(r.activeElement.type)||r.activeElement instanceof s||r.activeElement instanceof a&&r.activeElement.isContentEditable,!(e&&t==="keyboard"&&n instanceof c&&!bF[n.key])}function EF(e,t,n){hb(),S.useEffect(()=>{let r=(i,s)=>{CF(!!n?.isTextInput,i,s)&&e(Kx())};return db.add(r),()=>{db.delete(r)}},t)}function bu(e){const t=At(e),n=Mr(t);if(nh()==="virtual"){let r=n;wE(()=>{Mr(t)===r&&e.isConnected&&Ql(e)})}else Ql(e)}function xT(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e;const s=S.useCallback(d=>{if(d.target===d.currentTarget)return r&&r(d),i&&i(!1),!0},[r,i]),a=pT(s),c=S.useCallback(d=>{const h=At(d.target),m=h?Mr(h):Mr();d.target===d.currentTarget&&m===wn(d.nativeEvent)&&(n&&n(d),i&&i(!0),a(d))},[i,n,a]);return{focusProps:{onFocus:!t&&(n||i||r)?c:void 0,onBlur:!t&&(r||i)?s:void 0}}}function US(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented(){return n.isDefaultPrevented()},stopPropagation(){t=!0},continuePropagation(){t=!1},isPropagationStopped(){return t}};e(r),t&&n.stopPropagation()}}function PF(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:US(e.onKeyDown),onKeyUp:US(e.onKeyUp)}}}let TF=We.createContext(null);function _F(e){let t=S.useContext(TF)||{};kE(t,e);let{ref:n,...r}=t;return r}function mv(e,t){let{focusProps:n}=xT(e),{keyboardProps:r}=PF(e),i=lr(n,r),s=_F(t),a=e.isDisabled?{}:s,c=S.useRef(e.autoFocus);S.useEffect(()=>{c.current&&t.current&&bu(t.current),c.current=!1},[t]);let d=e.excludeFromTabOrder?-1:0;return e.isDisabled&&(d=void 0),{focusableProps:lr({...i,tabIndex:d},a)}}function IF({children:e}){let t=S.useMemo(()=>({register:()=>{}}),[]);return We.createElement(Vx.Provider,{value:t},e)}function gv(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:i}=e,s=S.useRef({isFocusWithin:!1}),{addGlobalListener:a,removeAllGlobalListeners:c}=sx(),d=S.useCallback(g=>{g.currentTarget.contains(g.target)&&s.current.isFocusWithin&&!g.currentTarget.contains(g.relatedTarget)&&(s.current.isFocusWithin=!1,c(),n&&n(g),i&&i(!1))},[n,i,s,c]),h=pT(d),m=S.useCallback(g=>{if(!g.currentTarget.contains(g.target))return;const b=At(g.target),x=Mr(b);if(!s.current.isFocusWithin&&x===wn(g.nativeEvent)){r&&r(g),i&&i(!0),s.current.isFocusWithin=!0,h(g);let E=g.currentTarget;a(b,"focus",P=>{if(s.current.isFocusWithin&&!ni(E,P.target)){let _=new b.defaultView.FocusEvent("blur",{relatedTarget:P.target});dT(_,E);let T=Bx(_);d(T)}},{capture:!0})}},[r,i,h,a,d]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:m,onBlur:d}}}let mb=!1,o0=0;function $F(){mb=!0,setTimeout(()=>{mb=!1},50)}function KS(e){e.pointerType==="touch"&&$F()}function AF(){if(!(typeof document>"u"))return typeof PointerEvent<"u"&&document.addEventListener("pointerup",KS),o0++,()=>{o0--,!(o0>0)&&typeof PointerEvent<"u"&&document.removeEventListener("pointerup",KS)}}function Cf(e){let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,isDisabled:i}=e,[s,a]=S.useState(!1),c=S.useRef({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;S.useEffect(AF,[]);let{addGlobalListener:d,removeAllGlobalListeners:h}=sx(),{hoverProps:m,triggerHoverEnd:g}=S.useMemo(()=>{let b=(P,_)=>{if(c.pointerType=_,i||_==="touch"||c.isHovered||!P.currentTarget.contains(P.target))return;c.isHovered=!0;let T=P.currentTarget;c.target=T,d(At(P.target),"pointerover",R=>{c.isHovered&&c.target&&!ni(c.target,R.target)&&x(R,R.pointerType)},{capture:!0}),t&&t({type:"hoverstart",target:T,pointerType:_}),n&&n(!0),a(!0)},x=(P,_)=>{let T=c.target;c.pointerType="",c.target=null,!(_==="touch"||!c.isHovered||!T)&&(c.isHovered=!1,h(),r&&r({type:"hoverend",target:T,pointerType:_}),n&&n(!1),a(!1))},E={};return typeof PointerEvent<"u"&&(E.onPointerEnter=P=>{mb&&P.pointerType==="mouse"||b(P,P.pointerType)},E.onPointerLeave=P=>{!i&&P.currentTarget.contains(P.target)&&x(P,P.pointerType)}),{hoverProps:E,triggerHoverEnd:x}},[t,n,r,i,c,d,h]);return S.useEffect(()=>{i&&g({currentTarget:c.target},c.pointerType)},[i]),{hoverProps:m,isHovered:s}}function RF(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:i}=e,s=S.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),a=Fn(d=>{n&&WS(d,t)&&(i&&i(d),s.current.isPointerDown=!0)}),c=Fn(d=>{n&&n(d)});S.useEffect(()=>{let d=s.current;if(r)return;const h=t.current,m=At(h);if(typeof PointerEvent<"u"){let g=b=>{d.isPointerDown&&WS(b,t)&&c(b),d.isPointerDown=!1};return m.addEventListener("pointerdown",a,!0),m.addEventListener("click",g,!0),()=>{m.removeEventListener("pointerdown",a,!0),m.removeEventListener("click",g,!0)}}},[t,r,a,c])}function WS(e,t){if(e.button>0)return!1;if(e.target){const n=e.target.ownerDocument;if(!n||!n.documentElement.contains(e.target)||e.target.closest("[data-react-aria-top-layer]"))return!1}return t.current?!e.composedPath().includes(t.current):!1}const HS=We.createContext(null),gb="react-aria-focus-scope-restore";let Wt=null;function LF(e){let{children:t,contain:n,restoreFocus:r,autoFocus:i}=e,s=S.useRef(null),a=S.useRef(null),c=S.useRef([]),{parentNode:d}=S.useContext(HS)||{},h=S.useMemo(()=>new yb({scopeRef:c}),[c]);Zt(()=>{let b=d||_n.root;if(_n.getTreeNode(b.scopeRef)&&Wt&&!Kg(Wt,b.scopeRef)){let x=_n.getTreeNode(Wt);x&&(b=x)}b.addChild(h),_n.addNode(h)},[h,d]),Zt(()=>{let b=_n.getTreeNode(c);b&&(b.contain=!!n)},[n]),Zt(()=>{var b;let x=(b=s.current)===null||b===void 0?void 0:b.nextSibling,E=[],P=_=>_.stopPropagation();for(;x&&x!==a.current;)E.push(x),x.addEventListener(gb,P),x=x.nextSibling;return c.current=E,()=>{for(let _ of E)_.removeEventListener(gb,P)}},[t]),OF(c,r,n),DF(c,n),zF(c,r,n),FF(c,i),S.useEffect(()=>{const b=Mr(At(c.current?c.current[0]:void 0));let x=null;if(eo(b,c.current)){for(let E of _n.traverse())E.scopeRef&&eo(b,E.scopeRef.current)&&(x=E);x===_n.getTreeNode(c)&&(Wt=x.scopeRef)}},[c]),Zt(()=>()=>{var b,x,E;let P=(E=(x=_n.getTreeNode(c))===null||x===void 0||(b=x.parent)===null||b===void 0?void 0:b.scopeRef)!==null&&E!==void 0?E:null;(c===Wt||Kg(c,Wt))&&(!P||_n.getTreeNode(P))&&(Wt=P),_n.removeTreeNode(c)},[c]);let m=S.useMemo(()=>MF(c),[]),g=S.useMemo(()=>({focusManager:m,parentNode:h}),[h,m]);return We.createElement(HS.Provider,{value:g},We.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:s}),t,We.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:a}))}function MF(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:i,wrap:s,accept:a}=t;var c;let d=r||Mr(At((c=n[0])!==null&&c!==void 0?c:void 0)),h=n[0].previousElementSibling,m=du(n),g=Xs(m,{tabbable:i,accept:a},n);g.currentNode=eo(d,n)?d:h;let b=g.nextNode();return!b&&s&&(g.currentNode=h,b=g.nextNode()),b&&Ys(b,!0),b},focusPrevious(t={}){let n=e.current,{from:r,tabbable:i,wrap:s,accept:a}=t;var c;let d=r||Mr(At((c=n[0])!==null&&c!==void 0?c:void 0)),h=n[n.length-1].nextElementSibling,m=du(n),g=Xs(m,{tabbable:i,accept:a},n);g.currentNode=eo(d,n)?d:h;let b=g.previousNode();return!b&&s&&(g.currentNode=h,b=g.previousNode()),b&&Ys(b,!0),b},focusFirst(t={}){let n=e.current,{tabbable:r,accept:i}=t,s=du(n),a=Xs(s,{tabbable:r,accept:i},n);a.currentNode=n[0].previousElementSibling;let c=a.nextNode();return c&&Ys(c,!0),c},focusLast(t={}){let n=e.current,{tabbable:r,accept:i}=t,s=du(n),a=Xs(s,{tabbable:r,accept:i},n);a.currentNode=n[n.length-1].nextElementSibling;let c=a.previousNode();return c&&Ys(c,!0),c}}}function du(e){return e[0].parentElement}function _p(e){let t=_n.getTreeNode(Wt);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function DF(e,t){let n=S.useRef(void 0),r=S.useRef(void 0);Zt(()=>{let i=e.current;if(!t){r.current&&(cancelAnimationFrame(r.current),r.current=void 0);return}const s=At(i?i[0]:void 0);let a=h=>{if(h.key!=="Tab"||h.altKey||h.ctrlKey||h.metaKey||!_p(e)||h.isComposing)return;let m=Mr(s),g=e.current;if(!g||!eo(m,g))return;let b=du(g),x=Xs(b,{tabbable:!0},g);if(!m)return;x.currentNode=m;let E=h.shiftKey?x.previousNode():x.nextNode();E||(x.currentNode=h.shiftKey?g[g.length-1].nextElementSibling:g[0].previousElementSibling,E=h.shiftKey?x.previousNode():x.nextNode()),h.preventDefault(),E&&Ys(E,!0)},c=h=>{(!Wt||Kg(Wt,e))&&eo(wn(h),e.current)?(Wt=e,n.current=wn(h)):_p(e)&&!ql(wn(h),e)?n.current?n.current.focus():Wt&&Wt.current&&vb(Wt.current):_p(e)&&(n.current=wn(h))},d=h=>{r.current&&cancelAnimationFrame(r.current),r.current=requestAnimationFrame(()=>{let m=nh(),g=(m==="virtual"||m===null)&&ox()&&vE(),b=Mr(s);if(!g&&b&&_p(e)&&!ql(b,e)){Wt=e;let E=wn(h);if(E&&E.isConnected){var x;n.current=E,(x=n.current)===null||x===void 0||x.focus()}else Wt.current&&vb(Wt.current)}})};return s.addEventListener("keydown",a,!1),s.addEventListener("focusin",c,!1),i?.forEach(h=>h.addEventListener("focusin",c,!1)),i?.forEach(h=>h.addEventListener("focusout",d,!1)),()=>{s.removeEventListener("keydown",a,!1),s.removeEventListener("focusin",c,!1),i?.forEach(h=>h.removeEventListener("focusin",c,!1)),i?.forEach(h=>h.removeEventListener("focusout",d,!1))}},[e,t]),Zt(()=>()=>{r.current&&cancelAnimationFrame(r.current)},[r])}function wT(e){return ql(e)}function eo(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}function ql(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:n}of _n.traverse(_n.getTreeNode(t)))if(n&&eo(e,n.current))return!0;return!1}function NF(e){return ql(e,Wt)}function Kg(e,t){var n;let r=(n=_n.getTreeNode(t))===null||n===void 0?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function Ys(e,t=!1){if(e!=null&&!t)try{bu(e)}catch{}else if(e!=null)try{e.focus()}catch{}}function ST(e,t=!0){let n=e[0].previousElementSibling,r=du(e),i=Xs(r,{tabbable:t},e);i.currentNode=n;let s=i.nextNode();return t&&!s&&(r=du(e),i=Xs(r,{tabbable:!1},e),i.currentNode=n,s=i.nextNode()),s}function vb(e,t=!0){Ys(ST(e,t))}function FF(e,t){const n=We.useRef(t);S.useEffect(()=>{if(n.current){Wt=e;const r=At(e.current?e.current[0]:void 0);!eo(Mr(r),Wt.current)&&e.current&&vb(e.current)}n.current=!1},[e])}function OF(e,t,n){Zt(()=>{if(t||n)return;let r=e.current;const i=At(r?r[0]:void 0);let s=a=>{let c=wn(a);eo(c,e.current)?Wt=e:wT(c)||(Wt=null)};return i.addEventListener("focusin",s,!1),r?.forEach(a=>a.addEventListener("focusin",s,!1)),()=>{i.removeEventListener("focusin",s,!1),r?.forEach(a=>a.removeEventListener("focusin",s,!1))}},[e,t,n])}function GS(e){let t=_n.getTreeNode(Wt);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return t?.scopeRef===e}function zF(e,t,n){const r=S.useRef(typeof document<"u"?Mr(At(e.current?e.current[0]:void 0)):null);Zt(()=>{let i=e.current;const s=At(i?i[0]:void 0);if(!t||n)return;let a=()=>{(!Wt||Kg(Wt,e))&&eo(Mr(s),e.current)&&(Wt=e)};return s.addEventListener("focusin",a,!1),i?.forEach(c=>c.addEventListener("focusin",a,!1)),()=>{s.removeEventListener("focusin",a,!1),i?.forEach(c=>c.removeEventListener("focusin",a,!1))}},[e,n]),Zt(()=>{const i=At(e.current?e.current[0]:void 0);if(!t)return;let s=a=>{if(a.key!=="Tab"||a.altKey||a.ctrlKey||a.metaKey||!_p(e)||a.isComposing)return;let c=i.activeElement;if(!ql(c,e)||!GS(e))return;let d=_n.getTreeNode(e);if(!d)return;let h=d.nodeToRestore,m=Xs(i.body,{tabbable:!0});m.currentNode=c;let g=a.shiftKey?m.previousNode():m.nextNode();if((!h||!h.isConnected||h===i.body)&&(h=void 0,d.nodeToRestore=void 0),(!g||!ql(g,e))&&h){m.currentNode=h;do g=a.shiftKey?m.previousNode():m.nextNode();while(ql(g,e));a.preventDefault(),a.stopPropagation(),g?Ys(g,!0):wT(h)?Ys(h,!0):c.blur()}};return n||i.addEventListener("keydown",s,!0),()=>{n||i.removeEventListener("keydown",s,!0)}},[e,t,n]),Zt(()=>{const i=At(e.current?e.current[0]:void 0);if(!t)return;let s=_n.getTreeNode(e);if(s){var a;return s.nodeToRestore=(a=r.current)!==null&&a!==void 0?a:void 0,()=>{let c=_n.getTreeNode(e);if(!c)return;let d=c.nodeToRestore,h=Mr(i);if(t&&d&&(h&&ql(h,e)||h===i.body&&GS(e))){let m=_n.clone();requestAnimationFrame(()=>{if(i.activeElement===i.body){let g=m.getTreeNode(e);for(;g;){if(g.nodeToRestore&&g.nodeToRestore.isConnected){qS(g.nodeToRestore);return}g=g.parent}for(g=m.getTreeNode(e);g;){if(g.scopeRef&&g.scopeRef.current&&_n.getTreeNode(g.scopeRef)){let b=ST(g.scopeRef.current,!0);qS(b);return}g=g.parent}}})}}}},[e,t])}function qS(e){e.dispatchEvent(new CustomEvent(gb,{bubbles:!0,cancelable:!0}))&&Ys(e)}function Xs(e,t,n){let r=t?.tabbable?sM:IE,i=e?.nodeType===Node.ELEMENT_NODE?e:null,s=At(i),a=NL(s,e||s,NodeFilter.SHOW_ELEMENT,{acceptNode(c){var d;return!(t==null||(d=t.from)===null||d===void 0)&&d.contains(c)?NodeFilter.FILTER_REJECT:r(c)&&fT(c)&&(!n||eo(c,n))&&(!t?.accept||t.accept(c))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});return t?.from&&(a.currentNode=t.from),a}class Wx{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let i=this.fastMap.get(n??null);if(!i)return;let s=new yb({scopeRef:t});i.addChild(s),s.parent=i,this.fastMap.set(t,s),r&&(s.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let s of this.traverse())s!==n&&n.nodeToRestore&&s.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&eo(s.nodeToRestore,n.scopeRef.current)&&(s.nodeToRestore=n.nodeToRestore);let i=n.children;r&&(r.removeChild(n),i.size>0&&i.forEach(s=>r&&r.addChild(s))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new Wx;var r;for(let i of this.traverse())n.addTreeNode(i.scopeRef,(r=(t=i.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,i.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new yb({scopeRef:null}),this.fastMap.set(null,this.root)}}class yb{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}let _n=new Wx;function rh(e={}){let{autoFocus:t=!1,isTextInput:n,within:r}=e,i=S.useRef({isFocused:!1,isFocusVisible:t||Kx()}),[s,a]=S.useState(!1),[c,d]=S.useState(()=>i.current.isFocused&&i.current.isFocusVisible),h=S.useCallback(()=>d(i.current.isFocused&&i.current.isFocusVisible),[]),m=S.useCallback(x=>{i.current.isFocused=x,a(x),h()},[h]);EF(x=>{i.current.isFocusVisible=x,h()},[],{isTextInput:n});let{focusProps:g}=xT({isDisabled:r,onFocusChange:m}),{focusWithinProps:b}=gv({isDisabled:!r,onFocusWithinChange:m});return{isFocused:s,isFocusVisible:c,focusProps:r?b:g}}function jF(e){let t=UF(At(e));t!==e&&(t&&BF(t,e),e&&VF(e,t))}function BF(e,t){e.dispatchEvent(new FocusEvent("blur",{relatedTarget:t})),e.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:t}))}function VF(e,t){e.dispatchEvent(new FocusEvent("focus",{relatedTarget:t})),e.dispatchEvent(new FocusEvent("focusin",{bubbles:!0,relatedTarget:t}))}function UF(e){let t=Mr(e),n=t?.getAttribute("aria-activedescendant");return n&&e.getElementById(n)||t}const s0=typeof document<"u"&&window.visualViewport,KF=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let cg=0,l0;function WF(e={}){let{isDisabled:t}=e;Zt(()=>{if(!t)return cg++,cg===1&&(av()?l0=GF():l0=HF()),()=>{cg--,cg===0&&l0()}},[t])}function HF(){let e=window.innerWidth-document.documentElement.clientWidth;return bf(e>0&&("scrollbarGutter"in document.documentElement.style?pu(document.documentElement,"scrollbarGutter","stable"):pu(document.documentElement,"paddingRight",`${e}px`)),pu(document.documentElement,"overflow","hidden"))}function GF(){let e,t,n=h=>{e=CE(h.target,!0),!(e===document.documentElement&&e===document.body)&&e instanceof HTMLElement&&window.getComputedStyle(e).overscrollBehavior==="auto"&&(t=pu(e,"overscrollBehavior","contain"))},r=h=>{if(!e||e===document.documentElement||e===document.body){h.preventDefault();return}e.scrollHeight===e.clientHeight&&e.scrollWidth===e.clientWidth&&h.preventDefault()},i=()=>{t&&t()},s=h=>{let m=h.target;qF(m)&&(c(),m.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{m.style.transform="",s0&&(s0.height{YS(m)}):s0.addEventListener("resize",()=>YS(m),{once:!0}))}))},a=null,c=()=>{if(a)return;let h=()=>{window.scrollTo(0,0)},m=window.pageXOffset,g=window.pageYOffset;a=bf(dp(window,"scroll",h),pu(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),pu(document.documentElement,"overflow","hidden"),pu(document.body,"marginTop",`-${g}px`),()=>{window.scrollTo(m,g)}),window.scrollTo(0,0)},d=bf(dp(document,"touchstart",n,{passive:!1,capture:!0}),dp(document,"touchmove",r,{passive:!1,capture:!0}),dp(document,"touchend",i,{passive:!1,capture:!0}),dp(document,"focus",s,!0));return()=>{t?.(),a?.(),d()}}function pu(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function dp(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function YS(e){let t=document.scrollingElement||document.documentElement,n=e;for(;n&&n!==t;){let r=CE(n);if(r!==document.documentElement&&r!==document.body&&r!==n){let i=r.getBoundingClientRect().top,s=n.getBoundingClientRect().top;s>i+n.clientHeight&&(r.scrollTop+=s-i)}n=r.parentElement}}function qF(e){return e instanceof HTMLInputElement&&!KF.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}const YF=S.createContext({});function kT(){var e;return(e=S.useContext(YF))!==null&&e!==void 0?e:{}}const bb=We.createContext(null);function XF(e){let{children:t}=e,n=S.useContext(bb),[r,i]=S.useState(0),s=S.useMemo(()=>({parent:n,modalCount:r,addModal(){i(a=>a+1),n&&n.addModal()},removeModal(){i(a=>a-1),n&&n.removeModal()}}),[n,r]);return We.createElement(bb.Provider,{value:s},t)}function QF(){let e=S.useContext(bb);return{modalProviderProps:{"aria-hidden":e&&e.modalCount>0?!0:void 0}}}function JF(e){let{modalProviderProps:t}=QF();return We.createElement("div",{"data-overlay-container":!0,...e,...t})}function CT(e){return We.createElement(XF,null,We.createElement(JF,e))}function XS(e){let t=iv(),{portalContainer:n=t?null:document.body,...r}=e,{getContainer:i}=kT();if(!e.portalContainer&&i&&(n=i()),We.useEffect(()=>{if(n?.closest("[data-overlay-container]"))throw new Error("An OverlayContainer must not be inside another container. Please change the portalContainer prop.")},[n]),!n)return null;let s=We.createElement(CT,r);return _E.createPortal(s,n)}var ET={};ET={dismiss:"تجاهل"};var PT={};PT={dismiss:"Отхвърляне"};var TT={};TT={dismiss:"Odstranit"};var _T={};_T={dismiss:"Luk"};var IT={};IT={dismiss:"Schließen"};var $T={};$T={dismiss:"Απόρριψη"};var AT={};AT={dismiss:"Dismiss"};var RT={};RT={dismiss:"Descartar"};var LT={};LT={dismiss:"Lõpeta"};var MT={};MT={dismiss:"Hylkää"};var DT={};DT={dismiss:"Rejeter"};var NT={};NT={dismiss:"התעלם"};var FT={};FT={dismiss:"Odbaci"};var OT={};OT={dismiss:"Elutasítás"};var zT={};zT={dismiss:"Ignora"};var jT={};jT={dismiss:"閉じる"};var BT={};BT={dismiss:"무시"};var VT={};VT={dismiss:"Atmesti"};var UT={};UT={dismiss:"Nerādīt"};var KT={};KT={dismiss:"Lukk"};var WT={};WT={dismiss:"Negeren"};var HT={};HT={dismiss:"Zignoruj"};var GT={};GT={dismiss:"Descartar"};var qT={};qT={dismiss:"Dispensar"};var YT={};YT={dismiss:"Revocare"};var XT={};XT={dismiss:"Пропустить"};var QT={};QT={dismiss:"Zrušiť"};var JT={};JT={dismiss:"Opusti"};var ZT={};ZT={dismiss:"Odbaci"};var e_={};e_={dismiss:"Avvisa"};var t_={};t_={dismiss:"Kapat"};var n_={};n_={dismiss:"Скасувати"};var r_={};r_={dismiss:"取消"};var i_={};i_={dismiss:"關閉"};var o_={};o_={"ar-AE":ET,"bg-BG":PT,"cs-CZ":TT,"da-DK":_T,"de-DE":IT,"el-GR":$T,"en-US":AT,"es-ES":RT,"et-EE":LT,"fi-FI":MT,"fr-FR":DT,"he-IL":NT,"hr-HR":FT,"hu-HU":OT,"it-IT":zT,"ja-JP":jT,"ko-KR":BT,"lt-LT":VT,"lv-LV":UT,"nb-NO":KT,"nl-NL":WT,"pl-PL":HT,"pt-BR":GT,"pt-PT":qT,"ro-RO":YT,"ru-RU":XT,"sk-SK":QT,"sl-SI":JT,"sr-SP":ZT,"sv-SE":e_,"tr-TR":t_,"uk-UA":n_,"zh-CN":r_,"zh-TW":i_};const QS={border:0,clip:"rect(0 0 0 0)",clipPath:"inset(50%)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap"};function ZF(e={}){let{style:t,isFocusable:n}=e,[r,i]=S.useState(!1),{focusWithinProps:s}=gv({isDisabled:!n,onFocusWithinChange:c=>i(c)}),a=S.useMemo(()=>r?t:t?{...QS,...t}:QS,[r]);return{visuallyHiddenProps:{...s,style:a}}}function e5(e){let{children:t,elementType:n="div",isFocusable:r,style:i,...s}=e,{visuallyHiddenProps:a}=ZF(e);return We.createElement(n,lr(s,a),t)}function t5(e){return e&&e.__esModule?e.default:e}function JS(e){let{onDismiss:t,...n}=e,r=PL(t5(o_),"@react-aria/overlays"),i=SE(n,r.format("dismiss")),s=()=>{t&&t()};return We.createElement(e5,null,We.createElement("button",{...i,tabIndex:-1,onClick:s,style:{width:1,height:1}}))}let pp=new WeakMap,Gi=[];function n5(e,t=document.body){let n=new Set(e),r=new Set,i=d=>{for(let b of d.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]"))n.add(b);let h=b=>{if(n.has(b)||b.parentElement&&r.has(b.parentElement)&&b.parentElement.getAttribute("role")!=="row")return NodeFilter.FILTER_REJECT;for(let x of n)if(b.contains(x))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT},m=document.createTreeWalker(d,NodeFilter.SHOW_ELEMENT,{acceptNode:h}),g=h(d);if(g===NodeFilter.FILTER_ACCEPT&&s(d),g!==NodeFilter.FILTER_REJECT){let b=m.nextNode();for(;b!=null;)s(b),b=m.nextNode()}},s=d=>{var h;let m=(h=pp.get(d))!==null&&h!==void 0?h:0;d.getAttribute("aria-hidden")==="true"&&m===0||(m===0&&d.setAttribute("aria-hidden","true"),r.add(d),pp.set(d,m+1))};Gi.length&&Gi[Gi.length-1].disconnect(),i(t);let a=new MutationObserver(d=>{for(let h of d)if(!(h.type!=="childList"||h.addedNodes.length===0)&&![...n,...r].some(m=>m.contains(h.target))){for(let m of h.removedNodes)m instanceof Element&&(n.delete(m),r.delete(m));for(let m of h.addedNodes)(m instanceof HTMLElement||m instanceof SVGElement)&&(m.dataset.liveAnnouncer==="true"||m.dataset.reactAriaTopLayer==="true")?n.add(m):m instanceof Element&&i(m)}});a.observe(t,{childList:!0,subtree:!0});let c={visibleNodes:n,hiddenNodes:r,observe(){a.observe(t,{childList:!0,subtree:!0})},disconnect(){a.disconnect()}};return Gi.push(c),()=>{a.disconnect();for(let d of r){let h=pp.get(d);h!=null&&(h===1?(d.removeAttribute("aria-hidden"),pp.delete(d)):pp.set(d,h-1))}c===Gi[Gi.length-1]?(Gi.pop(),Gi.length&&Gi[Gi.length-1].observe()):Gi.splice(Gi.indexOf(c),1)}}const s_=We.createContext(null);function r5(e){let t=iv(),{portalContainer:n=t?null:document.body,isExiting:r}=e,[i,s]=S.useState(!1),a=S.useMemo(()=>({contain:i,setContain:s}),[i,s]),{getContainer:c}=kT();if(!e.portalContainer&&c&&(n=c()),!n)return null;let d=e.children;return e.disableFocusManagement||(d=We.createElement(LF,{restoreFocus:!0,contain:(e.shouldContainFocus||i)&&!r},d)),d=We.createElement(s_.Provider,{value:a},We.createElement(IF,null,d)),_E.createPortal(d,n)}function l_(){let e=S.useContext(s_),t=e?.setContain;Zt(()=>{t?.(!0)},[t])}var i5=({children:e,navigate:t,disableAnimation:n,useHref:r,disableRipple:i=!1,skipFramerMotionAnimations:s=n,reducedMotion:a="never",validationBehavior:c,locale:d="en-US",labelPlacement:h,defaultDates:m,createCalendar:g,spinnerVariant:b,...x})=>{let E=e;t&&(E=N.jsx(qL,{navigate:t,useHref:r,children:E}));const P=S.useMemo(()=>(n&&s&&(fs.skipAnimations=!0),{createCalendar:g,defaultDates:m,disableAnimation:n,disableRipple:i,validationBehavior:c,labelPlacement:h,spinnerVariant:b}),[g,m?.maxDate,m?.minDate,n,i,c,h,b]);return N.jsx(sL,{value:P,children:N.jsx(yL,{locale:d,children:N.jsx(x3,{reducedMotion:a,children:N.jsx(CT,{...x,children:E})})})})};function iG(e){const t=Ti(),n=t?.labelPlacement;return S.useMemo(()=>{var r,i;const s=(i=(r=e.labelPlacement)!=null?r:n)!=null?i:"inside";return s==="inside"&&!e.label?"outside":s},[e.labelPlacement,n,e.label])}function o5(e){const t=Ti(),n=t?.labelPlacement;return S.useMemo(()=>{var r,i;const s=(i=(r=e.labelPlacement)!=null?r:n)!=null?i:"inside";return s==="inside"&&!e.label?"outside":s},[e.labelPlacement,n,e.label])}function _i(e){return S.forwardRef(e)}var ta=(e,t,n=!0)=>{if(!t)return[e,{}];const r=t.reduce((i,s)=>s in e?{...i,[s]:e[s]}:i,{});return n?[Object.keys(e).filter(s=>!t.includes(s)).reduce((s,a)=>({...s,[a]:e[a]}),{}),r]:[e,r]},s5={default:"bg-default text-default-foreground",primary:"bg-primary text-primary-foreground",secondary:"bg-secondary text-secondary-foreground",success:"bg-success text-success-foreground",warning:"bg-warning text-warning-foreground",danger:"bg-danger text-danger-foreground",foreground:"bg-foreground text-background"},l5={default:"shadow-lg shadow-default/50 bg-default text-default-foreground",primary:"shadow-lg shadow-primary/40 bg-primary text-primary-foreground",secondary:"shadow-lg shadow-secondary/40 bg-secondary text-secondary-foreground",success:"shadow-lg shadow-success/40 bg-success text-success-foreground",warning:"shadow-lg shadow-warning/40 bg-warning text-warning-foreground",danger:"shadow-lg shadow-danger/40 bg-danger text-danger-foreground"},a5={default:"bg-transparent border-default text-foreground",primary:"bg-transparent border-primary text-primary",secondary:"bg-transparent border-secondary text-secondary",success:"bg-transparent border-success text-success",warning:"bg-transparent border-warning text-warning",danger:"bg-transparent border-danger text-danger"},u5={default:"bg-default/40 text-default-700",primary:"bg-primary/20 text-primary-600",secondary:"bg-secondary/20 text-secondary-600",success:"bg-success/20 text-success-700 dark:text-success",warning:"bg-warning/20 text-warning-700 dark:text-warning",danger:"bg-danger/20 text-danger-600 dark:text-danger-500"},c5={default:"border-default bg-default-100 text-default-foreground",primary:"border-default bg-default-100 text-primary",secondary:"border-default bg-default-100 text-secondary",success:"border-default bg-default-100 text-success",warning:"border-default bg-default-100 text-warning",danger:"border-default bg-default-100 text-danger"},f5={default:"bg-transparent text-default-foreground",primary:"bg-transparent text-primary",secondary:"bg-transparent text-secondary",success:"bg-transparent text-success",warning:"bg-transparent text-warning",danger:"bg-transparent text-danger"},d5={default:"border-default text-default-foreground",primary:"border-primary text-primary",secondary:"border-secondary text-secondary",success:"border-success text-success",warning:"border-warning text-warning",danger:"border-danger text-danger"},Ze={solid:s5,shadow:l5,bordered:a5,flat:u5,faded:c5,light:f5,ghost:d5},p5={".spinner-bar-animation":{"animation-delay":"calc(-1.2s + (0.1s * var(--bar-index)))",transform:"rotate(calc(30deg * var(--bar-index)))translate(140%)"},".spinner-dot-animation":{"animation-delay":"calc(250ms * var(--dot-index))"},".spinner-dot-blink-animation":{"animation-delay":"calc(200ms * var(--dot-index))"}},h5={".leading-inherit":{"line-height":"inherit"},".bg-img-inherit":{"background-image":"inherit"},".bg-clip-inherit":{"background-clip":"inherit"},".text-fill-inherit":{"-webkit-text-fill-color":"inherit"},".tap-highlight-transparent":{"-webkit-tap-highlight-color":"transparent"},".input-search-cancel-button-none":{"&::-webkit-search-cancel-button":{"-webkit-appearance":"none"}}},m5={".scrollbar-hide":{"-ms-overflow-style":"none","scrollbar-width":"none","&::-webkit-scrollbar":{display:"none"}},".scrollbar-default":{"-ms-overflow-style":"auto","scrollbar-width":"auto","&::-webkit-scrollbar":{display:"block"}}},g5={".text-tiny":{"font-size":"var(--heroui-font-size-tiny)","line-height":"var(--heroui-line-height-tiny)"},".text-small":{"font-size":"var(--heroui-font-size-small)","line-height":"var(--heroui-line-height-small)"},".text-medium":{"font-size":"var(--heroui-font-size-medium)","line-height":"var(--heroui-line-height-medium)"},".text-large":{"font-size":"var(--heroui-font-size-large)","line-height":"var(--heroui-line-height-large)"}},is="250ms",v5={".transition-background":{"transition-property":"background","transition-timing-function":"ease","transition-duration":is},".transition-colors-opacity":{"transition-property":"color, background-color, border-color, text-decoration-color, fill, stroke, opacity","transition-timing-function":"ease","transition-duration":is},".transition-width":{"transition-property":"width","transition-timing-function":"ease","transition-duration":is},".transition-height":{"transition-property":"height","transition-timing-function":"ease","transition-duration":is},".transition-size":{"transition-property":"width, height","transition-timing-function":"ease","transition-duration":is},".transition-left":{"transition-property":"left","transition-timing-function":"ease","transition-duration":is},".transition-transform-opacity":{"transition-property":"transform, scale, opacity rotate","transition-timing-function":"ease","transition-duration":is},".transition-transform-background":{"transition-property":"transform, scale, background","transition-timing-function":"ease","transition-duration":is},".transition-transform-colors":{"transition-property":"transform, scale, color, background, background-color, border-color, text-decoration-color, fill, stroke","transition-timing-function":"ease","transition-duration":is},".transition-transform-colors-opacity":{"transition-property":"transform, scale, color, background, background-color, border-color, text-decoration-color, fill, stroke, opacity","transition-timing-function":"ease","transition-duration":is}},y5={...h5,...v5,...m5,...g5,...p5},fg=["small","medium","large"],xb={theme:{spacing:["divider"],radius:fg},classGroups:{shadow:[{shadow:fg}],opacity:[{opacity:["disabled"]}],"font-size":[{text:["tiny",...fg]}],"border-w":[{border:fg}],"bg-image":["bg-stripe-gradient-default","bg-stripe-gradient-primary","bg-stripe-gradient-secondary","bg-stripe-gradient-success","bg-stripe-gradient-warning","bg-stripe-gradient-danger"],transition:Object.keys(y5).filter(e=>e.includes(".transition")).map(e=>e.replace(".",""))}},ZS=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,ei=e=>!e||typeof e!="object"||Object.keys(e).length===0,b5=(e,t)=>JSON.stringify(e)===JSON.stringify(t);function a_(e,t){e.forEach(function(n){Array.isArray(n)?a_(n,t):t.push(n)})}function u_(e){let t=[];return a_(e,t),t}var c_=(...e)=>u_(e).filter(Boolean),f_=(e,t)=>{let n={},r=Object.keys(e),i=Object.keys(t);for(let s of r)if(i.includes(s)){let a=e[s],c=t[s];Array.isArray(a)||Array.isArray(c)?n[s]=c_(c,a):typeof a=="object"&&typeof c=="object"?n[s]=f_(a,c):n[s]=c+" "+a}else n[s]=e[s];for(let s of i)r.includes(s)||(n[s]=t[s]);return n},ek=e=>!e||typeof e!="string"?e:e.replace(/\s+/g," ").trim();const Hx="-",x5=e=>{const t=S5(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const c=a.split(Hx);return c[0]===""&&c.length!==1&&c.shift(),d_(c,t)||w5(a)},getConflictingClassGroupIds:(a,c)=>{const d=n[a]||[];return c&&r[a]?[...d,...r[a]]:d}}},d_=(e,t)=>{if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),i=r?d_(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;const s=e.join(Hx);return t.validators.find(({validator:a})=>a(s))?.classGroupId},tk=/^\[(.+)\]$/,w5=e=>{if(tk.test(e)){const t=tk.exec(e)[1],n=t?.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},S5=e=>{const{theme:t,classGroups:n}=e,r={nextPart:new Map,validators:[]};for(const i in n)wb(n[i],r,i,t);return r},wb=(e,t,n,r)=>{e.forEach(i=>{if(typeof i=="string"){const s=i===""?t:nk(t,i);s.classGroupId=n;return}if(typeof i=="function"){if(k5(i)){wb(i(r),t,n,r);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([s,a])=>{wb(a,nk(t,s),n,r)})})},nk=(e,t)=>{let n=e;return t.split(Hx).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},k5=e=>e.isThemeGetter,C5=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const i=(s,a)=>{n.set(s,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(s){let a=n.get(s);if(a!==void 0)return a;if((a=r.get(s))!==void 0)return i(s,a),a},set(s,a){n.has(s)?n.set(s,a):i(s,a)}}},Sb="!",kb=":",E5=kb.length,P5=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=i=>{const s=[];let a=0,c=0,d=0,h;for(let E=0;Ed?h-d:void 0;return{modifiers:s,hasImportantModifier:b,baseClassName:g,maybePostfixModifierPosition:x}};if(t){const i=t+kb,s=r;r=a=>a.startsWith(i)?s(a.substring(i.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:a,maybePostfixModifierPosition:void 0}}if(n){const i=r;r=s=>n({className:s,parseClassName:i})}return r},T5=e=>e.endsWith(Sb)?e.substring(0,e.length-1):e.startsWith(Sb)?e.substring(1):e,_5=e=>{const t=Object.fromEntries(e.orderSensitiveModifiers.map(r=>[r,!0]));return r=>{if(r.length<=1)return r;const i=[];let s=[];return r.forEach(a=>{a[0]==="["||t[a]?(i.push(...s.sort(),a),s=[]):s.push(a)}),i.push(...s.sort()),i}},I5=e=>({cache:C5(e.cacheSize),parseClassName:P5(e),sortModifiers:_5(e),...x5(e)}),$5=/\s+/,A5=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:s}=t,a=[],c=e.trim().split($5);let d="";for(let h=c.length-1;h>=0;h-=1){const m=c[h],{isExternal:g,modifiers:b,hasImportantModifier:x,baseClassName:E,maybePostfixModifierPosition:P}=n(m);if(g){d=m+(d.length>0?" "+d:d);continue}let _=!!P,T=r(_?E.substring(0,P):E);if(!T){if(!_){d=m+(d.length>0?" "+d:d);continue}if(T=r(E),!T){d=m+(d.length>0?" "+d:d);continue}_=!1}const R=s(b).join(":"),M=x?R+Sb:R,j=M+T;if(a.includes(j))continue;a.push(j);const H=i(T,_);for(let L=0;L0?" "+d:d)}return d};function R5(){let e=0,t,n,r="";for(;e{if(typeof e=="string")return e;let t,n="";for(let r=0;rg(m),e());return n=I5(h),r=n.cache.get,i=n.cache.set,s=c,c(d)}function c(d){const h=r(d);if(h)return h;const m=A5(d,n);return i(d,m),m}return function(){return s(R5.apply(null,arguments))}}const qn=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},h_=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,m_=/^\((?:(\w[\w-]*):)?(.+)\)$/i,L5=/^\d+\/\d+$/,M5=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,D5=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,N5=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,F5=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,O5=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Qc=e=>L5.test(e),mt=e=>!!e&&!Number.isNaN(Number(e)),ru=e=>!!e&&Number.isInteger(Number(e)),rk=e=>e.endsWith("%")&&mt(e.slice(0,-1)),Kl=e=>M5.test(e),z5=()=>!0,j5=e=>D5.test(e)&&!N5.test(e),Gx=()=>!1,B5=e=>F5.test(e),V5=e=>O5.test(e),U5=e=>!Ne(e)&&!Fe(e),K5=e=>Mf(e,y_,Gx),Ne=e=>h_.test(e),iu=e=>Mf(e,b_,j5),a0=e=>Mf(e,tO,mt),W5=e=>Mf(e,g_,Gx),H5=e=>Mf(e,v_,V5),G5=e=>Mf(e,Gx,B5),Fe=e=>m_.test(e),dg=e=>Df(e,b_),q5=e=>Df(e,nO),Y5=e=>Df(e,g_),X5=e=>Df(e,y_),Q5=e=>Df(e,v_),J5=e=>Df(e,rO,!0),Mf=(e,t,n)=>{const r=h_.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Df=(e,t,n=!1)=>{const r=m_.exec(e);return r?r[1]?t(r[1]):n:!1},g_=e=>e==="position",Z5=new Set(["image","url"]),v_=e=>Z5.has(e),eO=new Set(["length","size","percentage"]),y_=e=>eO.has(e),b_=e=>e==="length",tO=e=>e==="number",nO=e=>e==="family-name",rO=e=>e==="shadow",Eb=()=>{const e=qn("color"),t=qn("font"),n=qn("text"),r=qn("font-weight"),i=qn("tracking"),s=qn("leading"),a=qn("breakpoint"),c=qn("container"),d=qn("spacing"),h=qn("radius"),m=qn("shadow"),g=qn("inset-shadow"),b=qn("drop-shadow"),x=qn("blur"),E=qn("perspective"),P=qn("aspect"),_=qn("ease"),T=qn("animate"),R=()=>["auto","avoid","all","avoid-page","page","left","right","column"],M=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],j=()=>["auto","hidden","clip","visible","scroll"],H=()=>["auto","contain","none"],L=()=>[Fe,Ne,d],Z=()=>[Qc,"full","auto",...L()],ne=()=>[ru,"none","subgrid",Fe,Ne],ae=()=>["auto",{span:["full",ru,Fe,Ne]},Fe,Ne],O=()=>[ru,"auto",Fe,Ne],U=()=>["auto","min","max","fr",Fe,Ne],X=()=>["start","end","center","between","around","evenly","stretch","baseline"],re=()=>["start","end","center","stretch"],G=()=>["auto",...L()],fe=()=>[Qc,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...L()],J=()=>[e,Fe,Ne],q=()=>[rk,iu],K=()=>["","none","full",h,Fe,Ne],se=()=>["",mt,dg,iu],A=()=>["solid","dashed","dotted","double"],B=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],oe=()=>["","none",x,Fe,Ne],z=()=>["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Fe,Ne],me=()=>["none",mt,Fe,Ne],Ee=()=>["none",mt,Fe,Ne],we=()=>[mt,Fe,Ne],je=()=>[Qc,"full",...L()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Kl],breakpoint:[Kl],color:[z5],container:[Kl],"drop-shadow":[Kl],ease:["in","out","in-out"],font:[U5],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Kl],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Kl],shadow:[Kl],spacing:["px",mt],text:[Kl],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Qc,Ne,Fe,P]}],container:["container"],columns:[{columns:[mt,Ne,Fe,c]}],"break-after":[{"break-after":R()}],"break-before":[{"break-before":R()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...M(),Ne,Fe]}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:H()}],"overscroll-x":[{"overscroll-x":H()}],"overscroll-y":[{"overscroll-y":H()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Z()}],"inset-x":[{"inset-x":Z()}],"inset-y":[{"inset-y":Z()}],start:[{start:Z()}],end:[{end:Z()}],top:[{top:Z()}],right:[{right:Z()}],bottom:[{bottom:Z()}],left:[{left:Z()}],visibility:["visible","invisible","collapse"],z:[{z:[ru,"auto",Fe,Ne]}],basis:[{basis:[Qc,"full","auto",c,...L()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[mt,Qc,"auto","initial","none",Ne]}],grow:[{grow:["",mt,Fe,Ne]}],shrink:[{shrink:["",mt,Fe,Ne]}],order:[{order:[ru,"first","last","none",Fe,Ne]}],"grid-cols":[{"grid-cols":ne()}],"col-start-end":[{col:ae()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":ne()}],"row-start-end":[{row:ae()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":U()}],"auto-rows":[{"auto-rows":U()}],gap:[{gap:L()}],"gap-x":[{"gap-x":L()}],"gap-y":[{"gap-y":L()}],"justify-content":[{justify:[...X(),"normal"]}],"justify-items":[{"justify-items":[...re(),"normal"]}],"justify-self":[{"justify-self":["auto",...re()]}],"align-content":[{content:["normal",...X()]}],"align-items":[{items:[...re(),"baseline"]}],"align-self":[{self:["auto",...re(),"baseline"]}],"place-content":[{"place-content":X()}],"place-items":[{"place-items":[...re(),"baseline"]}],"place-self":[{"place-self":["auto",...re()]}],p:[{p:L()}],px:[{px:L()}],py:[{py:L()}],ps:[{ps:L()}],pe:[{pe:L()}],pt:[{pt:L()}],pr:[{pr:L()}],pb:[{pb:L()}],pl:[{pl:L()}],m:[{m:G()}],mx:[{mx:G()}],my:[{my:G()}],ms:[{ms:G()}],me:[{me:G()}],mt:[{mt:G()}],mr:[{mr:G()}],mb:[{mb:G()}],ml:[{ml:G()}],"space-x":[{"space-x":L()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":L()}],"space-y-reverse":["space-y-reverse"],size:[{size:fe()}],w:[{w:[c,"screen",...fe()]}],"min-w":[{"min-w":[c,"screen","none",...fe()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[a]},...fe()]}],h:[{h:["screen",...fe()]}],"min-h":[{"min-h":["screen","none",...fe()]}],"max-h":[{"max-h":["screen",...fe()]}],"font-size":[{text:["base",n,dg,iu]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Fe,a0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",rk,Ne]}],"font-family":[{font:[q5,Ne,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[i,Fe,Ne]}],"line-clamp":[{"line-clamp":[mt,"none",Fe,a0]}],leading:[{leading:[s,...L()]}],"list-image":[{"list-image":["none",Fe,Ne]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Fe,Ne]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:J()}],"text-color":[{text:J()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...A(),"wavy"]}],"text-decoration-thickness":[{decoration:[mt,"from-font","auto",Fe,iu]}],"text-decoration-color":[{decoration:J()}],"underline-offset":[{"underline-offset":[mt,"auto",Fe,Ne]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:L()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Fe,Ne]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Fe,Ne]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...M(),Y5,W5]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","space","round"]}]}],"bg-size":[{bg:["auto","cover","contain",X5,K5]}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ru,Fe,Ne],radial:["",Fe,Ne],conic:[ru,Fe,Ne]},Q5,H5]}],"bg-color":[{bg:J()}],"gradient-from-pos":[{from:q()}],"gradient-via-pos":[{via:q()}],"gradient-to-pos":[{to:q()}],"gradient-from":[{from:J()}],"gradient-via":[{via:J()}],"gradient-to":[{to:J()}],rounded:[{rounded:K()}],"rounded-s":[{"rounded-s":K()}],"rounded-e":[{"rounded-e":K()}],"rounded-t":[{"rounded-t":K()}],"rounded-r":[{"rounded-r":K()}],"rounded-b":[{"rounded-b":K()}],"rounded-l":[{"rounded-l":K()}],"rounded-ss":[{"rounded-ss":K()}],"rounded-se":[{"rounded-se":K()}],"rounded-ee":[{"rounded-ee":K()}],"rounded-es":[{"rounded-es":K()}],"rounded-tl":[{"rounded-tl":K()}],"rounded-tr":[{"rounded-tr":K()}],"rounded-br":[{"rounded-br":K()}],"rounded-bl":[{"rounded-bl":K()}],"border-w":[{border:se()}],"border-w-x":[{"border-x":se()}],"border-w-y":[{"border-y":se()}],"border-w-s":[{"border-s":se()}],"border-w-e":[{"border-e":se()}],"border-w-t":[{"border-t":se()}],"border-w-r":[{"border-r":se()}],"border-w-b":[{"border-b":se()}],"border-w-l":[{"border-l":se()}],"divide-x":[{"divide-x":se()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":se()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...A(),"hidden","none"]}],"divide-style":[{divide:[...A(),"hidden","none"]}],"border-color":[{border:J()}],"border-color-x":[{"border-x":J()}],"border-color-y":[{"border-y":J()}],"border-color-s":[{"border-s":J()}],"border-color-e":[{"border-e":J()}],"border-color-t":[{"border-t":J()}],"border-color-r":[{"border-r":J()}],"border-color-b":[{"border-b":J()}],"border-color-l":[{"border-l":J()}],"divide-color":[{divide:J()}],"outline-style":[{outline:[...A(),"none","hidden"]}],"outline-offset":[{"outline-offset":[mt,Fe,Ne]}],"outline-w":[{outline:["",mt,dg,iu]}],"outline-color":[{outline:[e]}],shadow:[{shadow:["","none",m,J5,G5]}],"shadow-color":[{shadow:J()}],"inset-shadow":[{"inset-shadow":["none",Fe,Ne,g]}],"inset-shadow-color":[{"inset-shadow":J()}],"ring-w":[{ring:se()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:J()}],"ring-offset-w":[{"ring-offset":[mt,iu]}],"ring-offset-color":[{"ring-offset":J()}],"inset-ring-w":[{"inset-ring":se()}],"inset-ring-color":[{"inset-ring":J()}],opacity:[{opacity:[mt,Fe,Ne]}],"mix-blend":[{"mix-blend":[...B(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":B()}],filter:[{filter:["","none",Fe,Ne]}],blur:[{blur:oe()}],brightness:[{brightness:[mt,Fe,Ne]}],contrast:[{contrast:[mt,Fe,Ne]}],"drop-shadow":[{"drop-shadow":["","none",b,Fe,Ne]}],grayscale:[{grayscale:["",mt,Fe,Ne]}],"hue-rotate":[{"hue-rotate":[mt,Fe,Ne]}],invert:[{invert:["",mt,Fe,Ne]}],saturate:[{saturate:[mt,Fe,Ne]}],sepia:[{sepia:["",mt,Fe,Ne]}],"backdrop-filter":[{"backdrop-filter":["","none",Fe,Ne]}],"backdrop-blur":[{"backdrop-blur":oe()}],"backdrop-brightness":[{"backdrop-brightness":[mt,Fe,Ne]}],"backdrop-contrast":[{"backdrop-contrast":[mt,Fe,Ne]}],"backdrop-grayscale":[{"backdrop-grayscale":["",mt,Fe,Ne]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[mt,Fe,Ne]}],"backdrop-invert":[{"backdrop-invert":["",mt,Fe,Ne]}],"backdrop-opacity":[{"backdrop-opacity":[mt,Fe,Ne]}],"backdrop-saturate":[{"backdrop-saturate":[mt,Fe,Ne]}],"backdrop-sepia":[{"backdrop-sepia":["",mt,Fe,Ne]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":L()}],"border-spacing-x":[{"border-spacing-x":L()}],"border-spacing-y":[{"border-spacing-y":L()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Fe,Ne]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[mt,"initial",Fe,Ne]}],ease:[{ease:["linear","initial",_,Fe,Ne]}],delay:[{delay:[mt,Fe,Ne]}],animate:[{animate:["none",T,Fe,Ne]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[E,Fe,Ne]}],"perspective-origin":[{"perspective-origin":z()}],rotate:[{rotate:me()}],"rotate-x":[{"rotate-x":me()}],"rotate-y":[{"rotate-y":me()}],"rotate-z":[{"rotate-z":me()}],scale:[{scale:Ee()}],"scale-x":[{"scale-x":Ee()}],"scale-y":[{"scale-y":Ee()}],"scale-z":[{"scale-z":Ee()}],"scale-3d":["scale-3d"],skew:[{skew:we()}],"skew-x":[{"skew-x":we()}],"skew-y":[{"skew-y":we()}],transform:[{transform:[Fe,Ne,"","none","gpu","cpu"]}],"transform-origin":[{origin:z()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:je()}],"translate-x":[{"translate-x":je()}],"translate-y":[{"translate-y":je()}],"translate-z":[{"translate-z":je()}],"translate-none":["translate-none"],accent:[{accent:J()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:J()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Fe,Ne]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":L()}],"scroll-mx":[{"scroll-mx":L()}],"scroll-my":[{"scroll-my":L()}],"scroll-ms":[{"scroll-ms":L()}],"scroll-me":[{"scroll-me":L()}],"scroll-mt":[{"scroll-mt":L()}],"scroll-mr":[{"scroll-mr":L()}],"scroll-mb":[{"scroll-mb":L()}],"scroll-ml":[{"scroll-ml":L()}],"scroll-p":[{"scroll-p":L()}],"scroll-px":[{"scroll-px":L()}],"scroll-py":[{"scroll-py":L()}],"scroll-ps":[{"scroll-ps":L()}],"scroll-pe":[{"scroll-pe":L()}],"scroll-pt":[{"scroll-pt":L()}],"scroll-pr":[{"scroll-pr":L()}],"scroll-pb":[{"scroll-pb":L()}],"scroll-pl":[{"scroll-pl":L()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Fe,Ne]}],fill:[{fill:["none",...J()]}],"stroke-w":[{stroke:[mt,dg,iu,a0]}],stroke:[{stroke:["none",...J()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["before","after","placeholder","file","marker","selection","first-line","first-letter","backdrop","*","**"]}},iO=(e,{cacheSize:t,prefix:n,experimentalParseClassName:r,extend:i={},override:s={}})=>(Ip(e,"cacheSize",t),Ip(e,"prefix",n),Ip(e,"experimentalParseClassName",r),pg(e.theme,s.theme),pg(e.classGroups,s.classGroups),pg(e.conflictingClassGroups,s.conflictingClassGroups),pg(e.conflictingClassGroupModifiers,s.conflictingClassGroupModifiers),Ip(e,"orderSensitiveModifiers",s.orderSensitiveModifiers),hg(e.theme,i.theme),hg(e.classGroups,i.classGroups),hg(e.conflictingClassGroups,i.conflictingClassGroups),hg(e.conflictingClassGroupModifiers,i.conflictingClassGroupModifiers),x_(e,i,"orderSensitiveModifiers"),e),Ip=(e,t,n)=>{n!==void 0&&(e[t]=n)},pg=(e,t)=>{if(t)for(const n in t)Ip(e,n,t[n])},hg=(e,t)=>{if(t)for(const n in t)x_(e,t,n)},x_=(e,t,n)=>{const r=t[n];r!==void 0&&(e[n]=e[n]?e[n].concat(r):r)},w_=(e,...t)=>typeof e=="function"?Cb(Eb,e,...t):Cb(()=>iO(Eb(),e),...t),oO=Cb(Eb);var sO={twMerge:!0,twMergeConfig:{},responsiveVariants:!1},S_=e=>e||void 0,ih=(...e)=>S_(u_(e).filter(Boolean).join(" ")),u0=null,qs={},Pb=!1,hp=(...e)=>t=>t.twMerge?((!u0||Pb)&&(Pb=!1,u0=ei(qs)?oO:w_({...qs,extend:{theme:qs.theme,classGroups:qs.classGroups,conflictingClassGroupModifiers:qs.conflictingClassGroupModifiers,conflictingClassGroups:qs.conflictingClassGroups,...qs.extend}})),S_(u0(ih(e)))):ih(e),ik=(e,t)=>{for(let n in t)e.hasOwnProperty(n)?e[n]=ih(e[n],t[n]):e[n]=t[n];return e},lO=(e,t)=>{let{extend:n=null,slots:r={},variants:i={},compoundVariants:s=[],compoundSlots:a=[],defaultVariants:c={}}=e,d={...sO,...t},h=n!=null&&n.base?ih(n.base,e?.base):e?.base,m=n!=null&&n.variants&&!ei(n.variants)?f_(i,n.variants):i,g=n!=null&&n.defaultVariants&&!ei(n.defaultVariants)?{...n.defaultVariants,...c}:c;!ei(d.twMergeConfig)&&!b5(d.twMergeConfig,qs)&&(Pb=!0,qs=d.twMergeConfig);let b=ei(n?.slots),x=ei(r)?{}:{base:ih(e?.base,b&&n?.base),...r},E=b?x:ik({...n?.slots},ei(x)?{base:e?.base}:x),P=ei(n?.compoundVariants)?s:c_(n?.compoundVariants,s),_=R=>{if(ei(m)&&ei(r)&&b)return hp(h,R?.class,R?.className)(d);if(P&&!Array.isArray(P))throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof P}`);if(a&&!Array.isArray(a))throw new TypeError(`The "compoundSlots" prop must be an array. Received: ${typeof a}`);let M=(X,re,G=[],fe)=>{let J=G;if(typeof re=="string")J=J.concat(ek(re).split(" ").map(q=>`${X}:${q}`));else if(Array.isArray(re))J=J.concat(re.reduce((q,K)=>q.concat(`${X}:${K}`),[]));else if(typeof re=="object"&&typeof fe=="string"){for(let q in re)if(re.hasOwnProperty(q)&&q===fe){let K=re[q];if(K&&typeof K=="string"){let se=ek(K);J[fe]?J[fe]=J[fe].concat(se.split(" ").map(A=>`${X}:${A}`)):J[fe]=se.split(" ").map(A=>`${X}:${A}`)}else Array.isArray(K)&&K.length>0&&(J[fe]=K.reduce((se,A)=>se.concat(`${X}:${A}`),[]))}}return J},j=(X,re=m,G=null,fe=null)=>{var J;let q=re[X];if(!q||ei(q))return null;let K=(J=fe?.[X])!=null?J:R?.[X];if(K===null)return null;let se=ZS(K),A=Array.isArray(d.responsiveVariants)&&d.responsiveVariants.length>0||d.responsiveVariants===!0,B=g?.[X],oe=[];if(typeof se=="object"&&A)for(let[Ee,we]of Object.entries(se)){let je=q[we];if(Ee==="initial"){B=we;continue}Array.isArray(d.responsiveVariants)&&!d.responsiveVariants.includes(Ee)||(oe=M(Ee,je,oe,G))}let z=se!=null&&typeof se!="object"?se:ZS(B),me=q[z||"false"];return typeof oe=="object"&&typeof G=="string"&&oe[G]?ik(oe,me):oe.length>0?(oe.push(me),G==="base"?oe.join(" "):oe):me},H=()=>m?Object.keys(m).map(X=>j(X,m)):null,L=(X,re)=>{if(!m||typeof m!="object")return null;let G=new Array;for(let fe in m){let J=j(fe,m,X,re),q=X==="base"&&typeof J=="string"?J:J&&J[X];q&&(G[G.length]=q)}return G},Z={};for(let X in R)R[X]!==void 0&&(Z[X]=R[X]);let ne=(X,re)=>{var G;let fe=typeof R?.[X]=="object"?{[X]:(G=R[X])==null?void 0:G.initial}:{};return{...g,...Z,...fe,...re}},ae=(X=[],re)=>{let G=[];for(let{class:fe,className:J,...q}of X){let K=!0;for(let[se,A]of Object.entries(q)){let B=ne(se,re)[se];if(Array.isArray(A)){if(!A.includes(B)){K=!1;break}}else{let oe=z=>z==null||z===!1;if(oe(A)&&oe(B))continue;if(B!==A){K=!1;break}}}K&&(fe&&G.push(fe),J&&G.push(J))}return G},O=X=>{let re=ae(P,X);if(!Array.isArray(re))return re;let G={};for(let fe of re)if(typeof fe=="string"&&(G.base=hp(G.base,fe)(d)),typeof fe=="object")for(let[J,q]of Object.entries(fe))G[J]=hp(G[J],q)(d);return G},U=X=>{if(a.length<1)return null;let re={};for(let{slots:G=[],class:fe,className:J,...q}of a){if(!ei(q)){let K=!0;for(let se of Object.keys(q)){let A=ne(se,X)[se];if(A===void 0||(Array.isArray(q[se])?!q[se].includes(A):q[se]!==A)){K=!1;break}}if(!K)continue}for(let K of G)re[K]=re[K]||[],re[K].push([fe,J])}return re};if(!ei(r)||!b){let X={};if(typeof E=="object"&&!ei(E))for(let re of Object.keys(E))X[re]=G=>{var fe,J;return hp(E[re],L(re,G),((fe=O(G))!=null?fe:[])[re],((J=U(G))!=null?J:[])[re],G?.class,G?.className)(d)};return X}return hp(h,H(),ae(P),R?.class,R?.className)(d)},T=()=>{if(!(!m||typeof m!="object"))return Object.keys(m)};return _.variantKeys=T(),_.extend=n,_.base=h,_.slots=E,_.variants=m,_.defaultVariants=g,_.compoundSlots=a,_.compoundVariants=P,_},Dr=(e,t)=>{var n,r,i;return lO(e,{...t,twMerge:(n=t?.twMerge)!=null?n:!0,twMergeConfig:{...t?.twMergeConfig,theme:{...(r=t?.twMergeConfig)==null?void 0:r.theme,...xb.theme},classGroups:{...(i=t?.twMergeConfig)==null?void 0:i.classGroups,...xb.classGroups}}})},ok=Dr({slots:{base:"relative inline-flex flex-col gap-2 items-center justify-center",wrapper:"relative flex",label:"text-foreground dark:text-foreground-dark font-regular",circle1:"absolute w-full h-full rounded-full",circle2:"absolute w-full h-full rounded-full",dots:"relative rounded-full mx-auto",spinnerBars:["absolute","animate-fade-out","rounded-full","w-[25%]","h-[8%]","left-[calc(37.5%)]","top-[calc(46%)]","spinner-bar-animation"]},variants:{size:{sm:{wrapper:"w-5 h-5",circle1:"border-2",circle2:"border-2",dots:"size-1",label:"text-small"},md:{wrapper:"w-8 h-8",circle1:"border-3",circle2:"border-3",dots:"size-1.5",label:"text-medium"},lg:{wrapper:"w-10 h-10",circle1:"border-3",circle2:"border-3",dots:"size-2",label:"text-large"}},color:{current:{circle1:"border-b-current",circle2:"border-b-current",dots:"bg-current",spinnerBars:"bg-current"},white:{circle1:"border-b-white",circle2:"border-b-white",dots:"bg-white",spinnerBars:"bg-white"},default:{circle1:"border-b-default",circle2:"border-b-default",dots:"bg-default",spinnerBars:"bg-default"},primary:{circle1:"border-b-primary",circle2:"border-b-primary",dots:"bg-primary",spinnerBars:"bg-primary"},secondary:{circle1:"border-b-secondary",circle2:"border-b-secondary",dots:"bg-secondary",spinnerBars:"bg-secondary"},success:{circle1:"border-b-success",circle2:"border-b-success",dots:"bg-success",spinnerBars:"bg-success"},warning:{circle1:"border-b-warning",circle2:"border-b-warning",dots:"bg-warning",spinnerBars:"bg-warning"},danger:{circle1:"border-b-danger",circle2:"border-b-danger",dots:"bg-danger",spinnerBars:"bg-danger"}},labelColor:{foreground:{label:"text-foreground"},primary:{label:"text-primary"},secondary:{label:"text-secondary"},success:{label:"text-success"},warning:{label:"text-warning"},danger:{label:"text-danger"}},variant:{default:{circle1:["animate-spinner-ease-spin","border-solid","border-t-transparent","border-l-transparent","border-r-transparent"],circle2:["opacity-75","animate-spinner-linear-spin","border-dotted","border-t-transparent","border-l-transparent","border-r-transparent"]},gradient:{circle1:["border-0","bg-gradient-to-b","from-transparent","via-transparent","to-primary","animate-spinner-linear-spin","[animation-duration:1s]","[-webkit-mask:radial-gradient(closest-side,rgba(0,0,0,0.0)calc(100%-3px),rgba(0,0,0,1)calc(100%-3px))]"],circle2:["hidden"]},wave:{wrapper:"translate-y-3/4",dots:["animate-sway","spinner-dot-animation"]},dots:{wrapper:"translate-y-2/4",dots:["animate-blink","spinner-dot-blink-animation"]},spinner:{},simple:{wrapper:"text-foreground h-5 w-5 animate-spin",circle1:"opacity-25",circle2:"opacity-75"}}},defaultVariants:{size:"md",color:"primary",labelColor:"foreground",variant:"default"},compoundVariants:[{variant:"gradient",color:"current",class:{circle1:"to-current"}},{variant:"gradient",color:"white",class:{circle1:"to-white"}},{variant:"gradient",color:"default",class:{circle1:"to-default"}},{variant:"gradient",color:"primary",class:{circle1:"to-primary"}},{variant:"gradient",color:"secondary",class:{circle1:"to-secondary"}},{variant:"gradient",color:"success",class:{circle1:"to-success"}},{variant:"gradient",color:"warning",class:{circle1:"to-warning"}},{variant:"gradient",color:"danger",class:{circle1:"to-danger"}},{variant:"wave",size:"sm",class:{wrapper:"w-5 h-5"}},{variant:"wave",size:"md",class:{wrapper:"w-8 h-8"}},{variant:"wave",size:"lg",class:{wrapper:"w-12 h-12"}},{variant:"dots",size:"sm",class:{wrapper:"w-5 h-5"}},{variant:"dots",size:"md",class:{wrapper:"w-8 h-8"}},{variant:"dots",size:"lg",class:{wrapper:"w-12 h-12"}},{variant:"simple",size:"sm",class:{wrapper:"w-5 h-5"}},{variant:"simple",size:"md",class:{wrapper:"w-8 h-8"}},{variant:"simple",size:"lg",class:{wrapper:"w-12 h-12"}},{variant:"simple",color:"current",class:{wrapper:"text-current"}},{variant:"simple",color:"white",class:{wrapper:"text-white"}},{variant:"simple",color:"default",class:{wrapper:"text-default"}},{variant:"simple",color:"primary",class:{wrapper:"text-primary"}},{variant:"simple",color:"secondary",class:{wrapper:"text-secondary"}},{variant:"simple",color:"success",class:{wrapper:"text-success"}},{variant:"simple",color:"warning",class:{wrapper:"text-warning"}},{variant:"simple",color:"danger",class:{wrapper:"text-danger"}}]}),vh=["outline-hidden","data-[focus-visible=true]:z-10","data-[focus-visible=true]:outline-2","data-[focus-visible=true]:outline-focus","data-[focus-visible=true]:outline-offset-2"],aO=["outline-hidden","group-data-[focus-visible=true]:z-10","group-data-[focus-visible=true]:ring-2","group-data-[focus-visible=true]:ring-focus","group-data-[focus-visible=true]:ring-offset-2","group-data-[focus-visible=true]:ring-offset-background"],Jc={default:["[&+.border-medium.border-default]:ms-[calc(var(--heroui-border-width-medium)*-1)]"],primary:["[&+.border-medium.border-primary]:ms-[calc(var(--heroui-border-width-medium)*-1)]"],secondary:["[&+.border-medium.border-secondary]:ms-[calc(var(--heroui-border-width-medium)*-1)]"],success:["[&+.border-medium.border-success]:ms-[calc(var(--heroui-border-width-medium)*-1)]"],warning:["[&+.border-medium.border-warning]:ms-[calc(var(--heroui-border-width-medium)*-1)]"],danger:["[&+.border-medium.border-danger]:ms-[calc(var(--heroui-border-width-medium)*-1)]"]},sk=Dr({slots:{base:["z-0","relative","bg-transparent","before:content-['']","before:hidden","before:z-[-1]","before:absolute","before:rotate-45","before:w-2.5","before:h-2.5","before:rounded-sm","data-[arrow=true]:before:block","data-[placement=top]:before:-bottom-[calc(theme(spacing.5)/4_-_1.5px)]","data-[placement=top]:before:left-1/2","data-[placement=top]:before:-translate-x-1/2","data-[placement=top-start]:before:-bottom-[calc(theme(spacing.5)/4_-_1.5px)]","data-[placement=top-start]:before:left-3","data-[placement=top-end]:before:-bottom-[calc(theme(spacing.5)/4_-_1.5px)]","data-[placement=top-end]:before:right-3","data-[placement=bottom]:before:-top-[calc(theme(spacing.5)/4_-_1.5px)]","data-[placement=bottom]:before:left-1/2","data-[placement=bottom]:before:-translate-x-1/2","data-[placement=bottom-start]:before:-top-[calc(theme(spacing.5)/4_-_1.5px)]","data-[placement=bottom-start]:before:left-3","data-[placement=bottom-end]:before:-top-[calc(theme(spacing.5)/4_-_1.5px)]","data-[placement=bottom-end]:before:right-3","data-[placement=left]:before:-right-[calc(theme(spacing.5)/4_-_2px)]","data-[placement=left]:before:top-1/2","data-[placement=left]:before:-translate-y-1/2","data-[placement=left-start]:before:-right-[calc(theme(spacing.5)/4_-_3px)]","data-[placement=left-start]:before:top-1/4","data-[placement=left-end]:before:-right-[calc(theme(spacing.5)/4_-_3px)]","data-[placement=left-end]:before:bottom-1/4","data-[placement=right]:before:-left-[calc(theme(spacing.5)/4_-_2px)]","data-[placement=right]:before:top-1/2","data-[placement=right]:before:-translate-y-1/2","data-[placement=right-start]:before:-left-[calc(theme(spacing.5)/4_-_3px)]","data-[placement=right-start]:before:top-1/4","data-[placement=right-end]:before:-left-[calc(theme(spacing.5)/4_-_3px)]","data-[placement=right-end]:before:bottom-1/4",...vh],content:["z-10","px-2.5","py-1","w-full","inline-flex","flex-col","items-center","justify-center","box-border","subpixel-antialiased","outline-hidden","box-border"],trigger:["z-10"],backdrop:["hidden"],arrow:[]},variants:{size:{sm:{content:"text-tiny"},md:{content:"text-small"},lg:{content:"text-medium"}},color:{default:{base:"before:bg-content1 before:shadow-small",content:"bg-content1"},foreground:{base:"before:bg-foreground",content:Ze.solid.foreground},primary:{base:"before:bg-primary",content:Ze.solid.primary},secondary:{base:"before:bg-secondary",content:Ze.solid.secondary},success:{base:"before:bg-success",content:Ze.solid.success},warning:{base:"before:bg-warning",content:Ze.solid.warning},danger:{base:"before:bg-danger",content:Ze.solid.danger}},radius:{none:{content:"rounded-none"},sm:{content:"rounded-small"},md:{content:"rounded-medium"},lg:{content:"rounded-large"},full:{content:"rounded-full"}},shadow:{none:{content:"shadow-none"},sm:{content:"shadow-small"},md:{content:"shadow-medium"},lg:{content:"shadow-large"}},backdrop:{transparent:{},opaque:{backdrop:"bg-overlay/50 backdrop-opacity-disabled"},blur:{backdrop:"backdrop-blur-sm backdrop-saturate-150 bg-overlay/30"}},triggerScaleOnOpen:{true:{trigger:["aria-expanded:scale-[0.97]","aria-expanded:opacity-70","subpixel-antialiased"]},false:{}},disableAnimation:{true:{base:"animate-none"}},isTriggerDisabled:{true:{trigger:"opacity-disabled pointer-events-none"},false:{}}},defaultVariants:{color:"default",radius:"lg",size:"md",shadow:"md",backdrop:"transparent",triggerScaleOnOpen:!0},compoundVariants:[{backdrop:["opaque","blur"],class:{backdrop:"block w-full h-full fixed inset-0 -z-30"}}]});Dr({slots:{base:"flex flex-col gap-2 w-full",label:"",labelWrapper:"flex justify-between",value:"",track:"z-0 relative bg-default-300/50 overflow-hidden rtl:rotate-180",indicator:"h-full"},variants:{color:{default:{indicator:"bg-default-400"},primary:{indicator:"bg-primary"},secondary:{indicator:"bg-secondary"},success:{indicator:"bg-success"},warning:{indicator:"bg-warning"},danger:{indicator:"bg-danger"}},size:{sm:{label:"text-small",value:"text-small",track:"h-1"},md:{label:"text-medium",value:"text-medium",track:"h-3"},lg:{label:"text-large",value:"text-large",track:"h-5"}},radius:{none:{track:"rounded-none",indicator:"rounded-none"},sm:{track:"rounded-small",indicator:"rounded-small"},md:{track:"rounded-medium",indicator:"rounded-medium"},lg:{track:"rounded-large",indicator:"rounded-large"},full:{track:"rounded-full",indicator:"rounded-full"}},isStriped:{true:{indicator:"bg-stripe-gradient-default bg-stripe-size"}},isIndeterminate:{true:{indicator:["absolute","w-full","origin-left","animate-indeterminate-bar"]}},isDisabled:{true:{base:"opacity-disabled cursor-not-allowed"}},disableAnimation:{true:{},false:{indicator:"transition-transform !duration-500"}}},defaultVariants:{color:"primary",size:"md",radius:"full",isStriped:!1,isIndeterminate:!1,isDisabled:!1},compoundVariants:[{disableAnimation:!0,isIndeterminate:!1,class:{indicator:"!transition-none motion-reduce:transition-none"}},{color:"primary",isStriped:!0,class:{indicator:"bg-stripe-gradient-primary bg-stripe-size"}},{color:"secondary",isStriped:!0,class:{indicator:"bg-stripe-gradient-secondary bg-stripe-size"}},{color:"success",isStriped:!0,class:{indicator:"bg-stripe-gradient-success bg-stripe-size"}},{color:"warning",isStriped:!0,class:{indicator:"bg-stripe-gradient-warning bg-stripe-size"}},{color:"danger",isStriped:!0,class:{indicator:"bg-stripe-gradient-danger bg-stripe-size"}}]},{twMerge:!0});var lk=Dr({slots:{base:"flex flex-col justify-center gap-1 max-w-fit items-center",label:"",svgWrapper:"relative block",svg:"z-0 relative overflow-hidden",track:"h-full stroke-default-300/50",indicator:"h-full stroke-current",value:"absolute font-normal inset-0 flex items-center justify-center"},variants:{color:{default:{svg:"text-default-400"},primary:{svg:"text-primary"},secondary:{svg:"text-secondary"},success:{svg:"text-success"},warning:{svg:"text-warning"},danger:{svg:"text-danger"}},size:{sm:{svg:"w-8 h-8",label:"text-small",value:"text-[0.5rem]"},md:{svg:"w-10 h-10",label:"text-small",value:"text-[0.55rem]"},lg:{svg:"w-12 h-12",label:"text-medium",value:"text-[0.6rem]"}},isIndeterminate:{true:{svg:"animate-spinner-ease-spin"}},isDisabled:{true:{base:"opacity-disabled cursor-not-allowed"}},disableAnimation:{true:{},false:{indicator:"transition-all !duration-500"}}},defaultVariants:{color:"primary",size:"md",isDisabled:!1},compoundVariants:[{disableAnimation:!0,isIndeterminate:!1,class:{svg:"!transition-none motion-reduce:transition-none"}}]}),uO=["data-[top-scroll=true]:[mask-image:linear-gradient(0deg,#000_calc(100%_-_var(--scroll-shadow-size)),transparent)]","data-[bottom-scroll=true]:[mask-image:linear-gradient(180deg,#000_calc(100%_-_var(--scroll-shadow-size)),transparent)]","data-[top-bottom-scroll=true]:[mask-image:linear-gradient(#000,#000,transparent_0,#000_var(--scroll-shadow-size),#000_calc(100%_-_var(--scroll-shadow-size)),transparent)]"],cO=["data-[left-scroll=true]:[mask-image:linear-gradient(270deg,#000_calc(100%_-_var(--scroll-shadow-size)),transparent)]","data-[right-scroll=true]:[mask-image:linear-gradient(90deg,#000_calc(100%_-_var(--scroll-shadow-size)),transparent)]","data-[left-right-scroll=true]:[mask-image:linear-gradient(to_right,#000,#000,transparent_0,#000_var(--scroll-shadow-size),#000_calc(100%_-_var(--scroll-shadow-size)),transparent)]"],ak=Dr({base:[],variants:{orientation:{vertical:["overflow-y-auto",...uO],horizontal:["overflow-x-auto",...cO]},hideScrollBar:{true:"scrollbar-hide",false:""}},defaultVariants:{orientation:"vertical",hideScrollBar:!1}}),uk=Dr({slots:{base:["group","relative","overflow-hidden","bg-content3 dark:bg-content2","pointer-events-none","before:opacity-100","before:absolute","before:inset-0","before:-translate-x-full","before:animate-shimmer","before:border-t","before:border-content4/30","before:bg-gradient-to-r","before:from-transparent","before:via-content4","dark:before:via-default-700/10","before:to-transparent","after:opacity-100","after:absolute","after:inset-0","after:-z-10","after:bg-content3","dark:after:bg-content2","data-[loaded=true]:pointer-events-auto","data-[loaded=true]:overflow-visible","data-[loaded=true]:!bg-transparent","data-[loaded=true]:before:opacity-0 data-[loaded=true]:before:-z-10 data-[loaded=true]:before:animate-none","data-[loaded=true]:after:opacity-0"],content:["opacity-0","group-data-[loaded=true]:opacity-100"]},variants:{disableAnimation:{true:{base:"before:animate-none before:transition-none after:transition-none",content:"transition-none"},false:{base:"transition-background !duration-300",content:"transition-opacity motion-reduce:transition-none !duration-300"}}},defaultVariants:{}}),ck=Dr({slots:{base:"group flex flex-col data-[hidden=true]:hidden",label:["absolute","z-10","pointer-events-none","origin-top-left","shrink-0","rtl:origin-top-right","subpixel-antialiased","block","text-small","text-foreground-500"],mainWrapper:"h-full",inputWrapper:"relative w-full inline-flex tap-highlight-transparent flex-row items-center shadow-xs px-3 gap-3",innerWrapper:"inline-flex w-full items-center h-full box-border",input:["w-full font-normal bg-transparent !outline-hidden placeholder:text-foreground-500 focus-visible:outline-hidden","data-[has-start-content=true]:ps-1.5","data-[has-end-content=true]:pe-1.5","data-[type=color]:rounded-none","file:cursor-pointer file:bg-transparent file:border-0","autofill:bg-transparent bg-clip-text"],clearButton:["p-2","-m-2","z-10","absolute","end-3","start-auto","pointer-events-none","appearance-none","outline-hidden","select-none","opacity-0","cursor-pointer","active:!opacity-70","rounded-full",...vh],helperWrapper:"hidden group-data-[has-helper=true]:flex p-1 relative flex-col gap-1.5",description:"text-tiny text-foreground-400",errorMessage:"text-tiny text-danger"},variants:{variant:{flat:{inputWrapper:["bg-default-100","data-[hover=true]:bg-default-200","group-data-[focus=true]:bg-default-100"]},faded:{inputWrapper:["bg-default-100","border-medium","border-default-200","data-[hover=true]:border-default-400 focus-within:border-default-400"],value:"group-data-[has-value=true]:text-default-foreground"},bordered:{inputWrapper:["border-medium","border-default-200","data-[hover=true]:border-default-400","group-data-[focus=true]:border-default-foreground"]},underlined:{inputWrapper:["!px-1","!pb-0","!gap-0","relative","box-border","border-b-medium","shadow-[0_1px_0px_0_rgba(0,0,0,0.05)]","border-default-200","!rounded-none","hover:border-default-300","after:content-['']","after:w-0","after:origin-center","after:bg-default-foreground","after:absolute","after:left-1/2","after:-translate-x-1/2","after:-bottom-[2px]","after:h-[2px]","group-data-[focus=true]:after:w-full"],innerWrapper:"pb-1",label:"group-data-[filled-within=true]:text-foreground"}},color:{default:{},primary:{},secondary:{},success:{},warning:{},danger:{}},size:{sm:{label:"text-tiny",inputWrapper:"h-8 min-h-8 px-2 rounded-small",input:"text-small",clearButton:"text-medium"},md:{inputWrapper:"h-10 min-h-10 rounded-medium",input:"text-small",clearButton:"text-large hover:!opacity-100"},lg:{label:"text-medium",inputWrapper:"h-12 min-h-12 rounded-large",input:"text-medium",clearButton:"text-large hover:!opacity-100"}},radius:{none:{inputWrapper:"rounded-none"},sm:{inputWrapper:"rounded-small"},md:{inputWrapper:"rounded-medium"},lg:{inputWrapper:"rounded-large"},full:{inputWrapper:"rounded-full"}},labelPlacement:{outside:{mainWrapper:"flex flex-col"},"outside-left":{base:"flex-row items-center flex-nowrap data-[has-helper=true]:items-start",inputWrapper:"flex-1",mainWrapper:"flex flex-col",label:"relative text-foreground pe-2 ps-2 pointer-events-auto"},"outside-top":{mainWrapper:"flex flex-col",label:"relative text-foreground pb-2 pointer-events-auto"},inside:{label:"cursor-text",inputWrapper:"flex-col items-start justify-center gap-0",innerWrapper:"group-data-[has-label=true]:items-end"}},fullWidth:{true:{base:"w-full"},false:{}},isClearable:{true:{input:"peer pe-6 input-search-cancel-button-none",clearButton:["peer-data-[filled=true]:pointer-events-auto","peer-data-[filled=true]:opacity-70 peer-data-[filled=true]:block","peer-data-[filled=true]:scale-100"]}},isDisabled:{true:{base:"opacity-disabled pointer-events-none",inputWrapper:"pointer-events-none",label:"pointer-events-none"}},isInvalid:{true:{label:"!text-danger",input:"!placeholder:text-danger !text-danger"}},isRequired:{true:{label:"after:content-['*'] after:text-danger after:ms-0.5"}},isMultiline:{true:{label:"relative",inputWrapper:"!h-auto",innerWrapper:"items-start group-data-[has-label=true]:items-start",input:"resize-none data-[hide-scroll=true]:scrollbar-hide",clearButton:"absolute top-2 right-2 rtl:right-auto rtl:left-2 z-10"}},disableAnimation:{true:{input:"transition-none",inputWrapper:"transition-none",label:"transition-none"},false:{inputWrapper:"transition-background motion-reduce:transition-none !duration-150",label:["will-change-auto","!duration-200","!ease-out","motion-reduce:transition-none","transition-[transform,color,left,opacity,translate,scale]"],clearButton:["scale-90","ease-out","duration-150","transition-[opacity,transform]","motion-reduce:transition-none","motion-reduce:scale-100"]}}},defaultVariants:{variant:"flat",color:"default",size:"md",fullWidth:!0,isDisabled:!1,isMultiline:!1},compoundVariants:[{variant:"flat",color:"default",class:{input:"group-data-[has-value=true]:text-default-foreground"}},{variant:"flat",color:"primary",class:{inputWrapper:["bg-primary-100","data-[hover=true]:bg-primary-50","text-primary","group-data-[focus=true]:bg-primary-50","placeholder:text-primary"],input:"placeholder:text-primary",label:"text-primary"}},{variant:"flat",color:"secondary",class:{inputWrapper:["bg-secondary-100","text-secondary","data-[hover=true]:bg-secondary-50","group-data-[focus=true]:bg-secondary-50","placeholder:text-secondary"],input:"placeholder:text-secondary",label:"text-secondary"}},{variant:"flat",color:"success",class:{inputWrapper:["bg-success-100","text-success-600","dark:text-success","placeholder:text-success-600","dark:placeholder:text-success","data-[hover=true]:bg-success-50","group-data-[focus=true]:bg-success-50"],input:"placeholder:text-success-600 dark:placeholder:text-success",label:"text-success-600 dark:text-success"}},{variant:"flat",color:"warning",class:{inputWrapper:["bg-warning-100","text-warning-600","dark:text-warning","placeholder:text-warning-600","dark:placeholder:text-warning","data-[hover=true]:bg-warning-50","group-data-[focus=true]:bg-warning-50"],input:"placeholder:text-warning-600 dark:placeholder:text-warning",label:"text-warning-600 dark:text-warning"}},{variant:"flat",color:"danger",class:{inputWrapper:["bg-danger-100","text-danger","dark:text-danger-500","placeholder:text-danger","dark:placeholder:text-danger-500","data-[hover=true]:bg-danger-50","group-data-[focus=true]:bg-danger-50"],input:"placeholder:text-danger dark:placeholder:text-danger-500",label:"text-danger dark:text-danger-500"}},{variant:"faded",color:"primary",class:{label:"text-primary",inputWrapper:"data-[hover=true]:border-primary focus-within:border-primary"}},{variant:"faded",color:"secondary",class:{label:"text-secondary",inputWrapper:"data-[hover=true]:border-secondary focus-within:border-secondary"}},{variant:"faded",color:"success",class:{label:"text-success",inputWrapper:"data-[hover=true]:border-success focus-within:border-success"}},{variant:"faded",color:"warning",class:{label:"text-warning",inputWrapper:"data-[hover=true]:border-warning focus-within:border-warning"}},{variant:"faded",color:"danger",class:{label:"text-danger",inputWrapper:"data-[hover=true]:border-danger focus-within:border-danger"}},{variant:"underlined",color:"default",class:{input:"group-data-[has-value=true]:text-foreground"}},{variant:"underlined",color:"primary",class:{inputWrapper:"after:bg-primary",label:"text-primary"}},{variant:"underlined",color:"secondary",class:{inputWrapper:"after:bg-secondary",label:"text-secondary"}},{variant:"underlined",color:"success",class:{inputWrapper:"after:bg-success",label:"text-success"}},{variant:"underlined",color:"warning",class:{inputWrapper:"after:bg-warning",label:"text-warning"}},{variant:"underlined",color:"danger",class:{inputWrapper:"after:bg-danger",label:"text-danger"}},{variant:"bordered",color:"primary",class:{inputWrapper:"group-data-[focus=true]:border-primary",label:"text-primary"}},{variant:"bordered",color:"secondary",class:{inputWrapper:"group-data-[focus=true]:border-secondary",label:"text-secondary"}},{variant:"bordered",color:"success",class:{inputWrapper:"group-data-[focus=true]:border-success",label:"text-success"}},{variant:"bordered",color:"warning",class:{inputWrapper:"group-data-[focus=true]:border-warning",label:"text-warning"}},{variant:"bordered",color:"danger",class:{inputWrapper:"group-data-[focus=true]:border-danger",label:"text-danger"}},{labelPlacement:"inside",color:"default",class:{label:"group-data-[filled-within=true]:text-default-600"}},{labelPlacement:"outside",color:"default",class:{label:"group-data-[filled-within=true]:text-foreground"}},{radius:"full",size:["sm"],class:{inputWrapper:"px-3"}},{radius:"full",size:"md",class:{inputWrapper:"px-4"}},{radius:"full",size:"lg",class:{inputWrapper:"px-5"}},{disableAnimation:!1,variant:["faded","bordered"],class:{inputWrapper:"transition-colors motion-reduce:transition-none"}},{disableAnimation:!1,variant:"underlined",class:{inputWrapper:"after:transition-width motion-reduce:after:transition-none"}},{variant:["flat","faded"],class:{inputWrapper:[...aO]}},{isInvalid:!0,variant:"flat",class:{inputWrapper:["!bg-danger-50","data-[hover=true]:!bg-danger-100","group-data-[focus=true]:!bg-danger-50"]}},{isInvalid:!0,variant:"bordered",class:{inputWrapper:"!border-danger group-data-[focus=true]:!border-danger"}},{isInvalid:!0,variant:"underlined",class:{inputWrapper:"after:!bg-danger"}},{labelPlacement:"inside",size:"sm",class:{inputWrapper:"h-12 py-1.5 px-3"}},{labelPlacement:"inside",size:"md",class:{inputWrapper:"h-14 py-2"}},{labelPlacement:"inside",size:"lg",class:{inputWrapper:"h-16 py-2.5 gap-0"}},{labelPlacement:"inside",size:"sm",variant:["bordered","faded"],class:{inputWrapper:"py-1"}},{labelPlacement:["inside","outside"],class:{label:["group-data-[filled-within=true]:pointer-events-auto"]}},{labelPlacement:"outside",isMultiline:!1,class:{base:"relative justify-end",label:["pb-0","z-20","top-1/2","-translate-y-1/2","group-data-[filled-within=true]:start-0"]}},{labelPlacement:["inside"],class:{label:["group-data-[filled-within=true]:scale-85"]}},{labelPlacement:["inside"],variant:"flat",class:{innerWrapper:"pb-0.5"}},{variant:"underlined",size:"sm",class:{innerWrapper:"pb-1"}},{variant:"underlined",size:["md","lg"],class:{innerWrapper:"pb-1.5"}},{labelPlacement:"inside",size:["sm","md"],class:{label:"text-small"}},{labelPlacement:"inside",isMultiline:!1,size:"sm",class:{label:["group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-tiny)/2_-_8px)]"]}},{labelPlacement:"inside",isMultiline:!1,size:"md",class:{label:["group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-small)/2_-_6px)]"]}},{labelPlacement:"inside",isMultiline:!1,size:"lg",class:{label:["text-medium","group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-small)/2_-_8px)]"]}},{labelPlacement:"inside",variant:["faded","bordered"],isMultiline:!1,size:"sm",class:{label:["group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-tiny)/2_-_8px_-_var(--heroui-border-width-medium))]"]}},{labelPlacement:"inside",variant:["faded","bordered"],isMultiline:!1,size:"md",class:{label:["group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-small)/2_-_6px_-_var(--heroui-border-width-medium))]"]}},{labelPlacement:"inside",variant:["faded","bordered"],isMultiline:!1,size:"lg",class:{label:["text-medium","group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-small)/2_-_8px_-_var(--heroui-border-width-medium))]"]}},{labelPlacement:"inside",variant:"underlined",isMultiline:!1,size:"sm",class:{label:["group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-tiny)/2_-_5px)]"]}},{labelPlacement:"inside",variant:"underlined",isMultiline:!1,size:"md",class:{label:["group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-small)/2_-_3.5px)]"]}},{labelPlacement:"inside",variant:"underlined",size:"lg",isMultiline:!1,class:{label:["text-medium","group-data-[filled-within=true]:-translate-y-[calc(50%_+_var(--heroui-font-size-small)/2_-_4px)]"]}},{labelPlacement:"outside",size:"sm",isMultiline:!1,class:{label:["start-2","text-tiny","group-data-[filled-within=true]:-translate-y-[calc(100%_+_var(--heroui-font-size-tiny)/2_+_16px)]"],base:"data-[has-label=true]:mt-[calc(var(--heroui-font-size-small)_+_8px)]"}},{labelPlacement:"outside",size:"md",isMultiline:!1,class:{label:["start-3","end-auto","text-small","group-data-[filled-within=true]:-translate-y-[calc(100%_+_var(--heroui-font-size-small)/2_+_20px)]"],base:"data-[has-label=true]:mt-[calc(var(--heroui-font-size-small)_+_10px)]"}},{labelPlacement:"outside",size:"lg",isMultiline:!1,class:{label:["start-3","end-auto","text-medium","group-data-[filled-within=true]:-translate-y-[calc(100%_+_var(--heroui-font-size-small)/2_+_24px)]"],base:"data-[has-label=true]:mt-[calc(var(--heroui-font-size-small)_+_12px)]"}},{labelPlacement:"outside-left",size:"sm",class:{label:"group-data-[has-helper=true]:pt-2"}},{labelPlacement:"outside-left",size:"md",class:{label:"group-data-[has-helper=true]:pt-3"}},{labelPlacement:"outside-left",size:"lg",class:{label:"group-data-[has-helper=true]:pt-4"}},{labelPlacement:["outside","outside-left"],isMultiline:!0,class:{inputWrapper:"py-2"}},{labelPlacement:"outside",isMultiline:!0,class:{label:"pb-1.5"}},{labelPlacement:"inside",isMultiline:!0,class:{label:"pb-0.5",input:"pt-0"}},{isMultiline:!0,disableAnimation:!1,class:{input:"transition-height !duration-100 motion-reduce:transition-none"}},{labelPlacement:["inside","outside"],class:{label:["pe-2","max-w-full","text-ellipsis","overflow-hidden"]}},{isMultiline:!0,radius:"full",class:{inputWrapper:"data-[has-multiple-rows=true]:rounded-large"}},{isClearable:!0,isMultiline:!0,class:{clearButton:["group-data-[has-value=true]:opacity-70 group-data-[has-value=true]:block","group-data-[has-value=true]:scale-100","group-data-[has-value=true]:pointer-events-auto"]}}]}),fk=Dr({slots:{wrapper:["flex","w-screen","h-[100dvh]","fixed","inset-0","z-50","overflow-x-auto","justify-center","h-[--visual-viewport-height]"],base:["flex","flex-col","relative","bg-white","z-50","w-full","box-border","bg-content1","outline-hidden","mx-1","my-1","sm:mx-6","sm:my-16"],backdrop:"z-50",header:"flex py-4 px-6 flex-initial text-large font-semibold",body:"flex flex-1 flex-col gap-3 px-6 py-2",footer:"flex flex-row gap-2 px-6 py-4 justify-end",closeButton:["absolute","appearance-none","outline-hidden","select-none","top-1","end-1","p-2","text-foreground-500","rounded-full","hover:bg-default-100","active:bg-default-200","tap-highlight-transparent",...vh]},variants:{size:{xs:{base:"max-w-xs"},sm:{base:"max-w-sm"},md:{base:"max-w-md"},lg:{base:"max-w-lg"},xl:{base:"max-w-xl"},"2xl":{base:"max-w-2xl"},"3xl":{base:"max-w-3xl"},"4xl":{base:"max-w-4xl"},"5xl":{base:"max-w-5xl"},full:{base:"my-0 mx-0 sm:mx-0 sm:my-0 max-w-full h-[100dvh] min-h-[100dvh] !rounded-none"}},radius:{none:{base:"rounded-none"},sm:{base:"rounded-small"},md:{base:"rounded-medium"},lg:{base:"rounded-large"}},placement:{auto:{wrapper:"items-end sm:items-center"},center:{wrapper:"items-center sm:items-center"},top:{wrapper:"items-start sm:items-start"},"top-center":{wrapper:"items-start sm:items-center"},bottom:{wrapper:"items-end sm:items-end"},"bottom-center":{wrapper:"items-end sm:items-center"}},shadow:{none:{base:"shadow-none"},sm:{base:"shadow-small"},md:{base:"shadow-medium"},lg:{base:"shadow-large"}},backdrop:{transparent:{backdrop:"hidden"},opaque:{backdrop:"bg-overlay/50 backdrop-opacity-disabled"},blur:{backdrop:"backdrop-blur-md backdrop-saturate-150 bg-overlay/30"}},scrollBehavior:{normal:{base:"overflow-y-hidden"},inside:{base:"max-h-[calc(100%_-_8rem)]",body:"overflow-y-auto"},outside:{wrapper:"items-start sm:items-start overflow-y-auto",base:"my-16"}},disableAnimation:{false:{wrapper:["[--scale-enter:100%]","[--scale-exit:100%]","[--slide-enter:0px]","[--slide-exit:80px]","sm:[--scale-enter:100%]","sm:[--scale-exit:103%]","sm:[--slide-enter:0px]","sm:[--slide-exit:0px]"]}}},defaultVariants:{size:"md",radius:"lg",shadow:"sm",placement:"auto",backdrop:"opaque",scrollBehavior:"normal"},compoundVariants:[{backdrop:["opaque","blur"],class:{backdrop:"w-screen h-screen fixed inset-0"}}]}),fO=Dr({base:"shrink-0 bg-divider border-none",variants:{orientation:{horizontal:"w-full h-divider",vertical:"h-full w-divider"}},defaultVariants:{orientation:"horizontal"}}),dO=Dr({base:"flex flex-col gap-2 items-start"}),dk=Dr({slots:{wrapper:"relative shadow-black/5",zoomedWrapper:"relative overflow-hidden rounded-inherit",img:"relative z-10 opacity-0 shadow-black/5 data-[loaded=true]:opacity-100",blurredImg:["absolute","z-0","inset-0","w-full","h-full","object-cover","filter","blur-lg","scale-105","saturate-150","opacity-30","translate-y-1"]},variants:{radius:{none:{},sm:{},md:{},lg:{},full:{}},shadow:{none:{wrapper:"shadow-none",img:"shadow-none"},sm:{wrapper:"shadow-small",img:"shadow-small"},md:{wrapper:"shadow-medium",img:"shadow-medium"},lg:{wrapper:"shadow-large",img:"shadow-large"}},isZoomed:{true:{img:["object-cover","transform","hover:scale-125"]}},showSkeleton:{true:{wrapper:["group","relative","overflow-hidden","bg-content3 dark:bg-content2"],img:"opacity-0"}},disableAnimation:{true:{img:"transition-none"},false:{img:"transition-transform-opacity motion-reduce:transition-none !duration-300"}}},defaultVariants:{radius:"lg",shadow:"none",isZoomed:!1,isBlurred:!1,showSkeleton:!1},compoundVariants:[{showSkeleton:!0,disableAnimation:!1,class:{wrapper:["before:opacity-100","before:absolute","before:inset-0","before:-translate-x-full","before:animate-shimmer","before:border-t","before:border-content4/30","before:bg-gradient-to-r","before:from-transparent","before:via-content4","dark:before:via-default-700/10","before:to-transparent","after:opacity-100","after:absolute","after:inset-0","after:-z-10","after:bg-content3","dark:after:bg-content2"]}}],compoundSlots:[{slots:["wrapper","img","blurredImg","zoomedWrapper"],radius:"none",class:"rounded-none"},{slots:["wrapper","img","blurredImg","zoomedWrapper"],radius:"full",class:"rounded-full"},{slots:["wrapper","img","blurredImg","zoomedWrapper"],radius:"sm",class:"rounded-small"},{slots:["wrapper","img","blurredImg","zoomedWrapper"],radius:"md",class:"rounded-md"},{slots:["wrapper","img","blurredImg","zoomedWrapper"],radius:"lg",class:"rounded-large"}]}),pO=Dr({base:["z-0","group","relative","inline-flex","items-center","justify-center","box-border","appearance-none","outline-hidden","select-none","whitespace-nowrap","min-w-max","font-normal","subpixel-antialiased","overflow-hidden","tap-highlight-transparent","transform-gpu data-[pressed=true]:scale-[0.97]","cursor-pointer",...vh],variants:{variant:{solid:"",bordered:"border-medium bg-transparent",light:"bg-transparent",flat:"",faded:"border-medium",shadow:"",ghost:"border-medium bg-transparent"},size:{sm:"px-3 min-w-16 h-8 text-tiny gap-2 rounded-small",md:"px-4 min-w-20 h-10 text-small gap-2 rounded-medium",lg:"px-6 min-w-24 h-12 text-medium gap-3 rounded-large"},color:{default:"",primary:"",secondary:"",success:"",warning:"",danger:""},radius:{none:"rounded-none",sm:"rounded-small",md:"rounded-medium",lg:"rounded-large",full:"rounded-full"},fullWidth:{true:"w-full"},isDisabled:{true:"opacity-disabled pointer-events-none"},isInGroup:{true:"[&:not(:first-child):not(:last-child)]:rounded-none"},isIconOnly:{true:"px-0 !gap-0",false:"[&>svg]:max-w-[theme(spacing.8)]"},disableAnimation:{true:"!transition-none data-[pressed=true]:scale-100",false:"transition-transform-colors-opacity motion-reduce:transition-none"}},defaultVariants:{size:"md",variant:"solid",color:"default",fullWidth:!1,isDisabled:!1,isInGroup:!1},compoundVariants:[{variant:"solid",color:"default",class:Ze.solid.default},{variant:"solid",color:"primary",class:Ze.solid.primary},{variant:"solid",color:"secondary",class:Ze.solid.secondary},{variant:"solid",color:"success",class:Ze.solid.success},{variant:"solid",color:"warning",class:Ze.solid.warning},{variant:"solid",color:"danger",class:Ze.solid.danger},{variant:"shadow",color:"default",class:Ze.shadow.default},{variant:"shadow",color:"primary",class:Ze.shadow.primary},{variant:"shadow",color:"secondary",class:Ze.shadow.secondary},{variant:"shadow",color:"success",class:Ze.shadow.success},{variant:"shadow",color:"warning",class:Ze.shadow.warning},{variant:"shadow",color:"danger",class:Ze.shadow.danger},{variant:"bordered",color:"default",class:Ze.bordered.default},{variant:"bordered",color:"primary",class:Ze.bordered.primary},{variant:"bordered",color:"secondary",class:Ze.bordered.secondary},{variant:"bordered",color:"success",class:Ze.bordered.success},{variant:"bordered",color:"warning",class:Ze.bordered.warning},{variant:"bordered",color:"danger",class:Ze.bordered.danger},{variant:"flat",color:"default",class:Ze.flat.default},{variant:"flat",color:"primary",class:Ze.flat.primary},{variant:"flat",color:"secondary",class:Ze.flat.secondary},{variant:"flat",color:"success",class:Ze.flat.success},{variant:"flat",color:"warning",class:Ze.flat.warning},{variant:"flat",color:"danger",class:Ze.flat.danger},{variant:"faded",color:"default",class:Ze.faded.default},{variant:"faded",color:"primary",class:Ze.faded.primary},{variant:"faded",color:"secondary",class:Ze.faded.secondary},{variant:"faded",color:"success",class:Ze.faded.success},{variant:"faded",color:"warning",class:Ze.faded.warning},{variant:"faded",color:"danger",class:Ze.faded.danger},{variant:"light",color:"default",class:[Ze.light.default,"data-[hover=true]:bg-default/40"]},{variant:"light",color:"primary",class:[Ze.light.primary,"data-[hover=true]:bg-primary/20"]},{variant:"light",color:"secondary",class:[Ze.light.secondary,"data-[hover=true]:bg-secondary/20"]},{variant:"light",color:"success",class:[Ze.light.success,"data-[hover=true]:bg-success/20"]},{variant:"light",color:"warning",class:[Ze.light.warning,"data-[hover=true]:bg-warning/20"]},{variant:"light",color:"danger",class:[Ze.light.danger,"data-[hover=true]:bg-danger/20"]},{variant:"ghost",color:"default",class:[Ze.ghost.default,"data-[hover=true]:!bg-default"]},{variant:"ghost",color:"primary",class:[Ze.ghost.primary,"data-[hover=true]:!bg-primary data-[hover=true]:!text-primary-foreground"]},{variant:"ghost",color:"secondary",class:[Ze.ghost.secondary,"data-[hover=true]:!bg-secondary data-[hover=true]:!text-secondary-foreground"]},{variant:"ghost",color:"success",class:[Ze.ghost.success,"data-[hover=true]:!bg-success data-[hover=true]:!text-success-foreground"]},{variant:"ghost",color:"warning",class:[Ze.ghost.warning,"data-[hover=true]:!bg-warning data-[hover=true]:!text-warning-foreground"]},{variant:"ghost",color:"danger",class:[Ze.ghost.danger,"data-[hover=true]:!bg-danger data-[hover=true]:!text-danger-foreground"]},{isInGroup:!0,class:"rounded-none first:rounded-s-medium last:rounded-e-medium"},{isInGroup:!0,size:"sm",class:"rounded-none first:rounded-s-small last:rounded-e-small"},{isInGroup:!0,size:"md",class:"rounded-none first:rounded-s-medium last:rounded-e-medium"},{isInGroup:!0,size:"lg",class:"rounded-none first:rounded-s-large last:rounded-e-large"},{isInGroup:!0,isRounded:!0,class:"rounded-none first:rounded-s-full last:rounded-e-full"},{isInGroup:!0,radius:"none",class:"rounded-none first:rounded-s-none last:rounded-e-none"},{isInGroup:!0,radius:"sm",class:"rounded-none first:rounded-s-small last:rounded-e-small"},{isInGroup:!0,radius:"md",class:"rounded-none first:rounded-s-medium last:rounded-e-medium"},{isInGroup:!0,radius:"lg",class:"rounded-none first:rounded-s-large last:rounded-e-large"},{isInGroup:!0,radius:"full",class:"rounded-none first:rounded-s-full last:rounded-e-full"},{isInGroup:!0,variant:["ghost","bordered"],color:"default",className:Jc.default},{isInGroup:!0,variant:["ghost","bordered"],color:"primary",className:Jc.primary},{isInGroup:!0,variant:["ghost","bordered"],color:"secondary",className:Jc.secondary},{isInGroup:!0,variant:["ghost","bordered"],color:"success",className:Jc.success},{isInGroup:!0,variant:["ghost","bordered"],color:"warning",className:Jc.warning},{isInGroup:!0,variant:["ghost","bordered"],color:"danger",className:Jc.danger},{isIconOnly:!0,size:"sm",class:"min-w-8 w-8 h-8"},{isIconOnly:!0,size:"md",class:"min-w-10 w-10 h-10"},{isIconOnly:!0,size:"lg",class:"min-w-12 w-12 h-12"},{variant:["solid","faded","flat","bordered","shadow"],class:"data-[hover=true]:opacity-hover"}]});Dr({base:"inline-flex items-center justify-center h-auto",variants:{fullWidth:{true:"w-full"}},defaultVariants:{fullWidth:!1}});var hO=Dr({base:"px-2",variants:{variant:{light:"",shadow:"px-4 shadow-medium rounded-medium bg-content1",bordered:"px-4 border-medium border-divider rounded-medium",splitted:"flex flex-col gap-2"},fullWidth:{true:"w-full"}},defaultVariants:{variant:"light",fullWidth:!0}}),mO=Dr({slots:{base:"",heading:"",trigger:["flex py-4 w-full h-full gap-3 outline-hidden items-center tap-highlight-transparent",...vh],startContent:"shrink-0",indicator:"text-default-400",titleWrapper:"flex-1 flex flex-col text-start",title:"text-foreground text-medium",subtitle:"text-small text-foreground-500 font-normal",content:"py-2"},variants:{variant:{splitted:{base:"px-4 bg-content1 shadow-medium rounded-medium"}},isCompact:{true:{trigger:"py-2",title:"text-medium",subtitle:"text-small",indicator:"text-medium",content:"py-1"}},isDisabled:{true:{base:"opacity-disabled pointer-events-none"}},hideIndicator:{true:{indicator:"hidden"}},disableAnimation:{true:{content:"hidden data-[open=true]:block"},false:{indicator:"transition-transform",trigger:"transition-opacity"}},disableIndicatorAnimation:{true:{indicator:"transition-none"},false:{indicator:"rotate-0 data-[open=true]:-rotate-90 rtl:-rotate-180 rtl:data-[open=true]:-rotate-90"}}},defaultVariants:{size:"md",radius:"lg",isDisabled:!1,hideIndicator:!1,disableIndicatorAnimation:!1}});function k_(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t0){let d=function(h){return Promise.all(h.map(m=>Promise.resolve(m).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),c=a?.nonce||a?.getAttribute("nonce");i=d(n.map(h=>{if(h=bO(h),h in pk)return;pk[h]=!0;const m=h.endsWith(".css"),g=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${h}"]${g}`))return;const b=document.createElement("link");if(b.rel=m?"stylesheet":yO,m||(b.as="script"),b.crossOrigin="",b.href=h,c&&b.setAttribute("nonce",c),document.head.appendChild(b),m)return new Promise((x,E)=>{b.addEventListener("load",x),b.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${h}`)))})}))}function s(a){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=a,window.dispatchEvent(c),!c.defaultPrevented)throw a}return i.then(a=>{for(const c of a||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})};function xO(e,t){let{elementType:n="button",isDisabled:r,onPress:i,onPressStart:s,onPressEnd:a,onPressUp:c,onPressChange:d,preventFocusOnPress:h,allowFocusWhenDisabled:m,onClick:g,href:b,target:x,rel:E,type:P="button"}=e,_;n==="button"?_={type:P,disabled:r}:_={role:"button",href:n==="a"&&!r?b:void 0,target:n==="a"?x:void 0,type:n==="input"?P:void 0,disabled:n==="input"?r:void 0,"aria-disabled":!r||n==="input"?void 0:r,rel:n==="a"?E:void 0};let{pressProps:T,isPressed:R}=pv({onPressStart:s,onPressEnd:a,onPressChange:d,onPress:i,onPressUp:c,onClick:g,isDisabled:r,preventFocusOnPress:h,ref:t}),{focusableProps:M}=mv(e,t);m&&(M.tabIndex=r?-1:M.tabIndex);let j=lr(M,T,If(e,{labelable:!0}));return{isPressed:R,buttonProps:lr(_,j,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],"aria-current":e["aria-current"]})}}function wO(e,t,n){let{item:r,isDisabled:i}=e,s=r.key,a=t.selectionManager,c=S.useId(),d=S.useId(),h=t.disabledKeys.has(r.key)||i;S.useEffect(()=>{s===t.focusedKey&&document.activeElement!==n.current&&n.current&&bu(n.current)},[n,s,t.focusedKey]);let m=S.useCallback(P=>{a.canSelectItem(s)&&(a.select(s,P),t.toggleKey(s))},[s,a]);const g=S.useCallback(P=>{a.selectionBehavior==="replace"&&a.extendSelection(P),a.setFocusedKey(P)},[a]),b=S.useCallback(P=>{const T={ArrowDown:()=>{const R=t.collection.getKeyAfter(s);if(R&&t.disabledKeys.has(R)){const M=t.collection.getKeyAfter(R);M&&g(M)}else R&&g(R)},ArrowUp:()=>{const R=t.collection.getKeyBefore(s);if(R&&t.disabledKeys.has(R)){const M=t.collection.getKeyBefore(R);M&&g(M)}else R&&g(R)},Home:()=>{const R=t.collection.getFirstKey();R&&g(R)},End:()=>{const R=t.collection.getLastKey();R&&g(R)}}[P.key];T&&(P.preventDefault(),a.canSelectItem(s)&&T(P))},[s,a]);let{buttonProps:x}=xO({id:c,elementType:"button",isDisabled:h,onKeyDown:b,onPress:m},n),E=t.selectionManager.isSelected(r.key);return{buttonProps:{...x,"aria-expanded":E,"aria-controls":E?d:void 0},regionProps:{id:d,role:"region","aria-labelledby":c}}}function hk(e){return HL()?e.altKey:e.ctrlKey}function Tg(e,t){var n,r;let i=`[data-key="${CSS.escape(String(t))}"]`,s=(n=e.current)===null||n===void 0?void 0:n.dataset.collection;return s&&(i=`[data-collection="${CSS.escape(s)}"]${i}`),(r=e.current)===null||r===void 0?void 0:r.querySelector(i)}const C_=new WeakMap;function SO(e){let t=yf();return C_.set(e,t),t}function oG(e){return C_.get(e)}const kO=1e3;function CO(e){let{keyboardDelegate:t,selectionManager:n,onTypeSelect:r}=e,i=S.useRef({search:"",timeout:void 0}).current,s=a=>{let c=EO(a.key);if(!(!c||a.ctrlKey||a.metaKey||!a.currentTarget.contains(a.target))){if(c===" "&&i.search.trim().length>0&&(a.preventDefault(),"continuePropagation"in a||a.stopPropagation()),i.search+=c,t.getKeyForSearch!=null){let d=t.getKeyForSearch(i.search,n.focusedKey);d==null&&(d=t.getKeyForSearch(i.search)),d!=null&&(n.setFocusedKey(d),r&&r(d))}clearTimeout(i.timeout),i.timeout=setTimeout(()=>{i.search=""},kO)}};return{typeSelectProps:{onKeyDownCapture:t.getKeyForSearch?s:void 0}}}function EO(e){return e.length===1||!/^[A-Z]/i.test(e)?e:""}function PO(e){let{selectionManager:t,keyboardDelegate:n,ref:r,autoFocus:i=!1,shouldFocusWrap:s=!1,disallowEmptySelection:a=!1,disallowSelectAll:c=!1,escapeKeyBehavior:d="clearSelection",selectOnFocus:h=t.selectionBehavior==="replace",disallowTypeAhead:m=!1,shouldUseVirtualFocus:g,allowsTabNavigation:b=!1,isVirtualized:x,scrollRef:E=r,linkBehavior:P="action"}=e,{direction:_}=fh(),T=bE(),R=q=>{var K;if(q.altKey&&q.key==="Tab"&&q.preventDefault(),!(!((K=r.current)===null||K===void 0)&&K.contains(q.target)))return;const se=(Ie,Rt)=>{if(Ie!=null){if(t.isLink(Ie)&&P==="selection"&&h&&!hk(q)){TE.flushSync(()=>{t.setFocusedKey(Ie,Rt)});let bt=Tg(r,Ie),Xt=t.getItemProps(Ie);bt&&T.open(bt,q,Xt.href,Xt.routerOptions);return}if(t.setFocusedKey(Ie,Rt),t.isLink(Ie)&&P==="override")return;q.shiftKey&&t.selectionMode==="multiple"?t.extendSelection(Ie):h&&!hk(q)&&t.replaceSelection(Ie)}};switch(q.key){case"ArrowDown":if(n.getKeyBelow){var A,B,oe;let Ie=t.focusedKey!=null?(A=n.getKeyBelow)===null||A===void 0?void 0:A.call(n,t.focusedKey):(B=n.getFirstKey)===null||B===void 0?void 0:B.call(n);Ie==null&&s&&(Ie=(oe=n.getFirstKey)===null||oe===void 0?void 0:oe.call(n,t.focusedKey)),Ie!=null&&(q.preventDefault(),se(Ie))}break;case"ArrowUp":if(n.getKeyAbove){var z,me,Ee;let Ie=t.focusedKey!=null?(z=n.getKeyAbove)===null||z===void 0?void 0:z.call(n,t.focusedKey):(me=n.getLastKey)===null||me===void 0?void 0:me.call(n);Ie==null&&s&&(Ie=(Ee=n.getLastKey)===null||Ee===void 0?void 0:Ee.call(n,t.focusedKey)),Ie!=null&&(q.preventDefault(),se(Ie))}break;case"ArrowLeft":if(n.getKeyLeftOf){var we,je,Oe;let Ie=t.focusedKey!=null?(we=n.getKeyLeftOf)===null||we===void 0?void 0:we.call(n,t.focusedKey):null;Ie==null&&s&&(Ie=_==="rtl"?(je=n.getFirstKey)===null||je===void 0?void 0:je.call(n,t.focusedKey):(Oe=n.getLastKey)===null||Oe===void 0?void 0:Oe.call(n,t.focusedKey)),Ie!=null&&(q.preventDefault(),se(Ie,_==="rtl"?"first":"last"))}break;case"ArrowRight":if(n.getKeyRightOf){var Te,tt,yt;let Ie=t.focusedKey!=null?(Te=n.getKeyRightOf)===null||Te===void 0?void 0:Te.call(n,t.focusedKey):null;Ie==null&&s&&(Ie=_==="rtl"?(tt=n.getLastKey)===null||tt===void 0?void 0:tt.call(n,t.focusedKey):(yt=n.getFirstKey)===null||yt===void 0?void 0:yt.call(n,t.focusedKey)),Ie!=null&&(q.preventDefault(),se(Ie,_==="rtl"?"last":"first"))}break;case"Home":if(n.getFirstKey){if(t.focusedKey===null&&q.shiftKey)return;q.preventDefault();let Ie=n.getFirstKey(t.focusedKey,cp(q));t.setFocusedKey(Ie),Ie!=null&&(cp(q)&&q.shiftKey&&t.selectionMode==="multiple"?t.extendSelection(Ie):h&&t.replaceSelection(Ie))}break;case"End":if(n.getLastKey){if(t.focusedKey===null&&q.shiftKey)return;q.preventDefault();let Ie=n.getLastKey(t.focusedKey,cp(q));t.setFocusedKey(Ie),Ie!=null&&(cp(q)&&q.shiftKey&&t.selectionMode==="multiple"?t.extendSelection(Ie):h&&t.replaceSelection(Ie))}break;case"PageDown":if(n.getKeyPageBelow&&t.focusedKey!=null){let Ie=n.getKeyPageBelow(t.focusedKey);Ie!=null&&(q.preventDefault(),se(Ie))}break;case"PageUp":if(n.getKeyPageAbove&&t.focusedKey!=null){let Ie=n.getKeyPageAbove(t.focusedKey);Ie!=null&&(q.preventDefault(),se(Ie))}break;case"a":cp(q)&&t.selectionMode==="multiple"&&c!==!0&&(q.preventDefault(),t.selectAll());break;case"Escape":d==="clearSelection"&&!a&&t.selectedKeys.size!==0&&(q.stopPropagation(),q.preventDefault(),t.clearSelection());break;case"Tab":if(!b){if(q.shiftKey)r.current.focus();else{let Ie=Xs(r.current,{tabbable:!0}),Rt,bt;do bt=Ie.lastChild(),bt&&(Rt=bt);while(bt);Rt&&!Rt.contains(document.activeElement)&&Ql(Rt)}break}}},M=S.useRef({top:0,left:0});ng(E,"scroll",x?void 0:()=>{var q,K,se,A;M.current={top:(se=(q=E.current)===null||q===void 0?void 0:q.scrollTop)!==null&&se!==void 0?se:0,left:(A=(K=E.current)===null||K===void 0?void 0:K.scrollLeft)!==null&&A!==void 0?A:0}});let j=q=>{if(t.isFocused){q.currentTarget.contains(q.target)||t.setFocused(!1);return}if(q.currentTarget.contains(q.target)){if(t.setFocused(!0),t.focusedKey==null){var K,se;let oe=me=>{me!=null&&(t.setFocusedKey(me),h&&!t.isSelected(me)&&t.replaceSelection(me))},z=q.relatedTarget;var A,B;z&&q.currentTarget.compareDocumentPosition(z)&Node.DOCUMENT_POSITION_FOLLOWING?oe((A=t.lastSelectedKey)!==null&&A!==void 0?A:(K=n.getLastKey)===null||K===void 0?void 0:K.call(n)):oe((B=t.firstSelectedKey)!==null&&B!==void 0?B:(se=n.getFirstKey)===null||se===void 0?void 0:se.call(n))}else!x&&E.current&&(E.current.scrollTop=M.current.top,E.current.scrollLeft=M.current.left);if(t.focusedKey!=null&&E.current){let oe=Tg(r,t.focusedKey);oe instanceof HTMLElement&&(!oe.contains(document.activeElement)&&!g&&Ql(oe),nh()==="keyboard"&&g1(oe,{containingElement:r.current}))}}},H=q=>{q.currentTarget.contains(q.relatedTarget)||t.setFocused(!1)},L=S.useRef(!1);ng(r,rM,g?q=>{let{detail:K}=q;q.stopPropagation(),t.setFocused(!0),K?.focusStrategy==="first"&&(L.current=!0)}:void 0);let Z=Fn(()=>{var q,K;let se=(K=(q=n.getFirstKey)===null||q===void 0?void 0:q.call(n))!==null&&K!==void 0?K:null;se==null?(jF(r.current),t.collection.size>0&&(L.current=!1)):(t.setFocusedKey(se),L.current=!1)});p1(()=>{L.current&&Z()},[t.collection,Z]);let ne=Fn(()=>{t.collection.size>0&&(L.current=!1)});p1(()=>{ne()},[t.focusedKey,ne]),ng(r,nM,g?q=>{var K;q.stopPropagation(),t.setFocused(!1),!((K=q.detail)===null||K===void 0)&&K.clearFocusKey&&t.setFocusedKey(null)}:void 0);const ae=S.useRef(i),O=S.useRef(!1);S.useEffect(()=>{if(ae.current){var q,K;let B=null;var se;i==="first"&&(B=(se=(q=n.getFirstKey)===null||q===void 0?void 0:q.call(n))!==null&&se!==void 0?se:null);var A;i==="last"&&(B=(A=(K=n.getLastKey)===null||K===void 0?void 0:K.call(n))!==null&&A!==void 0?A:null);let oe=t.selectedKeys;if(oe.size){for(let z of oe)if(t.canSelectItem(z)){B=z;break}}t.setFocused(!0),t.setFocusedKey(B),B==null&&!g&&r.current&&bu(r.current),t.collection.size>0&&(ae.current=!1,O.current=!0)}});let U=S.useRef(t.focusedKey),X=S.useRef(null);S.useEffect(()=>{if(t.isFocused&&t.focusedKey!=null&&(t.focusedKey!==U.current||O.current)&&E.current&&r.current){let q=nh(),K=Tg(r,t.focusedKey);if(!(K instanceof HTMLElement))return;(q==="keyboard"||O.current)&&(X.current&&cancelAnimationFrame(X.current),X.current=requestAnimationFrame(()=>{E.current&&(EE(E.current,K),q!=="virtual"&&g1(K,{containingElement:r.current}))}))}!g&&t.isFocused&&t.focusedKey==null&&U.current!=null&&r.current&&bu(r.current),U.current=t.focusedKey,O.current=!1}),S.useEffect(()=>()=>{X.current&&cancelAnimationFrame(X.current)},[]),ng(r,"react-aria-focus-scope-restore",q=>{q.preventDefault(),t.setFocused(!0)});let re={onKeyDown:R,onFocus:j,onBlur:H,onMouseDown(q){E.current===q.target&&q.preventDefault()}},{typeSelectProps:G}=CO({keyboardDelegate:n,selectionManager:t});m||(re=lr(G,re));let fe;g||(fe=t.focusedKey==null?0:-1);let J=SO(t.collection);return{collectionProps:lr(re,{tabIndex:fe,"data-collection":J})}}class mk{getItemRect(t){let n=this.ref.current;if(!n)return null;let r=t!=null?Tg(this.ref,t):null;if(!r)return null;let i=n.getBoundingClientRect(),s=r.getBoundingClientRect();return{x:s.left-i.left+n.scrollLeft,y:s.top-i.top+n.scrollTop,width:s.width,height:s.height}}getContentSize(){let t=this.ref.current;var n,r;return{width:(n=t?.scrollWidth)!==null&&n!==void 0?n:0,height:(r=t?.scrollHeight)!==null&&r!==void 0?r:0}}getVisibleRect(){let t=this.ref.current;var n,r,i,s;return{x:(n=t?.scrollLeft)!==null&&n!==void 0?n:0,y:(r=t?.scrollTop)!==null&&r!==void 0?r:0,width:(i=t?.offsetWidth)!==null&&i!==void 0?i:0,height:(s=t?.offsetHeight)!==null&&s!==void 0?s:0}}constructor(t){this.ref=t}}class TO{isDisabled(t){var n;return this.disabledBehavior==="all"&&(((n=t.props)===null||n===void 0?void 0:n.isDisabled)||this.disabledKeys.has(t.key))}findNextNonDisabled(t,n){let r=t;for(;r!=null;){let i=this.collection.getItem(r);if(i?.type==="item"&&!this.isDisabled(i))return r;r=n(r)}return null}getNextKey(t){let n=t;return n=this.collection.getKeyAfter(n),this.findNextNonDisabled(n,r=>this.collection.getKeyAfter(r))}getPreviousKey(t){let n=t;return n=this.collection.getKeyBefore(n),this.findNextNonDisabled(n,r=>this.collection.getKeyBefore(r))}findKey(t,n,r){let i=t,s=this.layoutDelegate.getItemRect(i);if(!s||i==null)return null;let a=s;do{if(i=n(i),i==null)break;s=this.layoutDelegate.getItemRect(i)}while(s&&r(a,s)&&i!=null);return i}isSameRow(t,n){return t.y===n.y||t.x!==n.x}isSameColumn(t,n){return t.x===n.x||t.y!==n.y}getKeyBelow(t){return this.layout==="grid"&&this.orientation==="vertical"?this.findKey(t,n=>this.getNextKey(n),this.isSameRow):this.getNextKey(t)}getKeyAbove(t){return this.layout==="grid"&&this.orientation==="vertical"?this.findKey(t,n=>this.getPreviousKey(n),this.isSameRow):this.getPreviousKey(t)}getNextColumn(t,n){return n?this.getPreviousKey(t):this.getNextKey(t)}getKeyRightOf(t){let n=this.direction==="ltr"?"getKeyRightOf":"getKeyLeftOf";return this.layoutDelegate[n]?(t=this.layoutDelegate[n](t),this.findNextNonDisabled(t,r=>this.layoutDelegate[n](r))):this.layout==="grid"?this.orientation==="vertical"?this.getNextColumn(t,this.direction==="rtl"):this.findKey(t,r=>this.getNextColumn(r,this.direction==="rtl"),this.isSameColumn):this.orientation==="horizontal"?this.getNextColumn(t,this.direction==="rtl"):null}getKeyLeftOf(t){let n=this.direction==="ltr"?"getKeyLeftOf":"getKeyRightOf";return this.layoutDelegate[n]?(t=this.layoutDelegate[n](t),this.findNextNonDisabled(t,r=>this.layoutDelegate[n](r))):this.layout==="grid"?this.orientation==="vertical"?this.getNextColumn(t,this.direction==="ltr"):this.findKey(t,r=>this.getNextColumn(r,this.direction==="ltr"),this.isSameColumn):this.orientation==="horizontal"?this.getNextColumn(t,this.direction==="ltr"):null}getFirstKey(){let t=this.collection.getFirstKey();return this.findNextNonDisabled(t,n=>this.collection.getKeyAfter(n))}getLastKey(){let t=this.collection.getLastKey();return this.findNextNonDisabled(t,n=>this.collection.getKeyBefore(n))}getKeyPageAbove(t){let n=this.ref.current,r=this.layoutDelegate.getItemRect(t);if(!r)return null;if(n&&!Hp(n))return this.getFirstKey();let i=t;if(this.orientation==="horizontal"){let s=Math.max(0,r.x+r.width-this.layoutDelegate.getVisibleRect().width);for(;r&&r.x>s&&i!=null;)i=this.getKeyAbove(i),r=i==null?null:this.layoutDelegate.getItemRect(i)}else{let s=Math.max(0,r.y+r.height-this.layoutDelegate.getVisibleRect().height);for(;r&&r.y>s&&i!=null;)i=this.getKeyAbove(i),r=i==null?null:this.layoutDelegate.getItemRect(i)}return i??this.getFirstKey()}getKeyPageBelow(t){let n=this.ref.current,r=this.layoutDelegate.getItemRect(t);if(!r)return null;if(n&&!Hp(n))return this.getLastKey();let i=t;if(this.orientation==="horizontal"){let s=Math.min(this.layoutDelegate.getContentSize().width,r.y-r.width+this.layoutDelegate.getVisibleRect().width);for(;r&&r.xs||new TO({collection:n,disabledKeys:r,disabledBehavior:d,ref:i,collator:c,layoutDelegate:a}),[s,a,n,r,i,c,d]),{collectionProps:m}=PO({...e,ref:i,selectionManager:t,keyboardDelegate:h});return{listProps:m}}function IO(e,t,n){let{listProps:r}=_O({...e,...t,allowsTabNavigation:!0,disallowSelectAll:!0,ref:n});return delete r.onKeyDownCapture,{accordionProps:{...r,tabIndex:void 0}}}function $O(e){var t,n;const r=Ti(),{ref:i,as:s,item:a,onFocusChange:c}=e,{state:d,className:h,indicator:m,children:g,title:b,subtitle:x,startContent:E,motionProps:P,focusedKey:_,variant:T,isCompact:R=!1,classNames:M={},isDisabled:j=!1,hideIndicator:H=!1,disableAnimation:L=(t=r?.disableAnimation)!=null?t:!1,keepContentMounted:Z=!1,disableIndicatorAnimation:ne=!1,HeadingComponent:ae=s||"h2",onPress:O,onPressStart:U,onPressEnd:X,onPressChange:re,onPressUp:G,onClick:fe,...J}=e,q=s||"div",K=typeof q=="string",se=Qi(i),A=d.disabledKeys.has(a.key)||j,B=d.selectionManager.isSelected(a.key),{buttonProps:oe,regionProps:z}=wO({item:a,isDisabled:A},{...d,focusedKey:_},se),{onFocus:me,onBlur:Ee,...we}=oe,{isFocused:je,isFocusVisible:Oe,focusProps:Te}=rh({autoFocus:(n=a.props)==null?void 0:n.autoFocus}),{isHovered:tt,hoverProps:yt}=Cf({isDisabled:A}),{pressProps:Ie,isPressed:Rt}=pv({ref:se,isDisabled:A,onPress:O,onPressStart:U,onPressEnd:X,onPressChange:re,onPressUp:G}),bt=S.useCallback(()=>{c?.(!0,a.key)},[]),Xt=S.useCallback(()=>{c?.(!1,a.key)},[]),Ue=S.useMemo(()=>({...M}),[el(M)]),st=S.useMemo(()=>mO({isCompact:R,isDisabled:A,hideIndicator:H,disableAnimation:L,disableIndicatorAnimation:ne,variant:T}),[R,A,H,L,ne,T]),An=pn(Ue?.base,h),Nr=S.useCallback((pe={})=>({"data-open":Me(B),"data-disabled":Me(A),"data-slot":"base",className:st.base({class:An}),...hn(vf(J,{enabled:K}),pe)}),[An,K,J,st,a.props,B,A]),Sn=(pe={})=>{var ke,Be;return{ref:se,"data-open":Me(B),"data-focus":Me(je),"data-focus-visible":Me(Oe),"data-disabled":Me(A),"data-hover":Me(tt),"data-pressed":Me(Rt),"data-slot":"trigger",className:st.trigger({class:Ue?.trigger}),onFocus:r1(bt,me,Te.onFocus,J.onFocus,(ke=a.props)==null?void 0:ke.onFocus),onBlur:r1(Xt,Ee,Te.onBlur,J.onBlur,(Be=a.props)==null?void 0:Be.onBlur),...hn(we,yt,Ie,pe,{onClick:gf(Ie.onClick,fe)})}},Lt=S.useCallback((pe={})=>({"data-open":Me(B),"data-disabled":Me(A),"data-slot":"content",className:st.content({class:Ue?.content}),...hn(z,pe)}),[st,Ue,z,B,A,Ue?.content]),zt=S.useCallback((pe={})=>({"aria-hidden":Me(!0),"data-open":Me(B),"data-disabled":Me(A),"data-slot":"indicator",className:st.indicator({class:Ue?.indicator}),...pe}),[st,Ue?.indicator,B,A,Ue?.indicator]),ar=S.useCallback((pe={})=>({"data-open":Me(B),"data-disabled":Me(A),"data-slot":"heading",className:st.heading({class:Ue?.heading}),...pe}),[st,Ue?.heading,B,A,Ue?.heading]),no=S.useCallback((pe={})=>({"data-open":Me(B),"data-disabled":Me(A),"data-slot":"title",className:st.title({class:Ue?.title}),...pe}),[st,Ue?.title,B,A,Ue?.title]),Yn=S.useCallback((pe={})=>({"data-open":Me(B),"data-disabled":Me(A),"data-slot":"subtitle",className:st.subtitle({class:Ue?.subtitle}),...pe}),[st,Ue,B,A,Ue?.subtitle]);return{Component:q,HeadingComponent:ae,item:a,slots:st,classNames:Ue,domRef:se,indicator:m,children:g,title:b,subtitle:x,startContent:E,isOpen:B,isDisabled:A,hideIndicator:H,keepContentMounted:Z,disableAnimation:L,motionProps:P,getBaseProps:Nr,getHeadingProps:ar,getButtonProps:Sn,getContentProps:Lt,getIndicatorProps:zt,getTitleProps:no,getSubtitleProps:Yn}}var gk=e=>N.jsx("svg",{"aria-hidden":"true",fill:"none",focusable:"false",height:"1em",role:"presentation",viewBox:"0 0 24 24",width:"1em",...e,children:N.jsx("path",{d:"M15.5 19l-7-7 7-7",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})}),AO=e=>N.jsx("svg",{"aria-hidden":"true",focusable:"false",height:"1em",role:"presentation",viewBox:"0 0 24 24",width:"1em",...e,children:N.jsx("path",{d:"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z",fill:"currentColor"})}),RO=e=>{const{isSelected:t,isIndeterminate:n,disableAnimation:r,...i}=e;return N.jsx("svg",{"aria-hidden":"true",className:"fill-current",fill:"none",focusable:"false",height:"1em",role:"presentation",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:"1em",...i,children:N.jsx("path",{d:"M18 6L6 18M6 6l12 12"})})},Op={ease:[.36,.66,.4,1]},Wg={scaleSpring:{enter:{transform:"scale(1)",opacity:1,transition:{type:"spring",bounce:0,duration:.2}},exit:{transform:"scale(0.85)",opacity:0,transition:{type:"easeOut",duration:.15}}},scaleSpringOpacity:{initial:{opacity:0,transform:"scale(0.8)"},enter:{opacity:1,transform:"scale(1)",transition:{type:"spring",bounce:0,duration:.3}},exit:{opacity:0,transform:"scale(0.96)",transition:{type:"easeOut",bounce:0,duration:.15}}},fade:{enter:{opacity:1,transition:{duration:.4,ease:Op.ease}},exit:{opacity:0,transition:{duration:.3,ease:Op.ease}}},collapse:{enter:{opacity:1,height:"auto",transition:{height:{type:"spring",bounce:0,duration:.3},opacity:{easings:"ease",duration:.4}}},exit:{opacity:0,height:0,transition:{easings:"ease",duration:.3}}}},vk=()=>$o(()=>import("./index-pa97nhJc.js"),[]).then(e=>e.default),E_=_i((e,t)=>{const{Component:n,HeadingComponent:r,classNames:i,slots:s,indicator:a,children:c,title:d,subtitle:h,startContent:m,isOpen:g,isDisabled:b,hideIndicator:x,keepContentMounted:E,disableAnimation:P,motionProps:_,getBaseProps:T,getHeadingProps:R,getButtonProps:M,getTitleProps:j,getSubtitleProps:H,getContentProps:L,getIndicatorProps:Z}=$O({...e,ref:t}),ne=XN(),O=S.useMemo(()=>typeof a=="function"?a({indicator:N.jsx(gk,{}),isOpen:g,isDisabled:b}):a||null,[a,g,b])||N.jsx(gk,{}),U=S.useMemo(()=>{if(P)return E?N.jsx("div",{...L(),children:c}):g&&N.jsx("div",{...L(),children:c});const X={exit:{...Wg.collapse.exit,overflowY:"hidden"},enter:{...Wg.collapse.enter,overflowY:"unset"}};return E?N.jsx(Sf,{features:vk,children:N.jsx(kf.section,{animate:g?"enter":"exit",exit:"exit",initial:"exit",style:{willChange:ne},variants:X,onKeyDown:re=>{re.stopPropagation()},..._,children:N.jsx("div",{...L(),children:c})},"accordion-content")}):N.jsx(Lf,{initial:!1,children:g&&N.jsx(Sf,{features:vk,children:N.jsx(kf.section,{animate:"enter",exit:"exit",initial:"exit",style:{willChange:ne},variants:X,onKeyDown:re=>{re.stopPropagation()},..._,children:N.jsx("div",{...L(),children:c})},"accordion-content")})})},[g,P,E,c,_]);return N.jsxs(n,{...T(),children:[N.jsx(r,{...R(),children:N.jsxs("button",{...M(),children:[m&&N.jsx("div",{className:s.startContent({class:i?.startContent}),children:m}),N.jsxs("div",{className:s.titleWrapper({class:i?.titleWrapper}),children:[d&&N.jsx("span",{...j(),children:d}),h&&N.jsx("span",{...H(),children:h})]}),!x&&O&&N.jsx("span",{...Z(),children:O})]})}),U]})});E_.displayName="HeroUI.AccordionItem";var LO=E_;class MO{*[Symbol.iterator](){yield*this.iterable}get size(){return this.keyMap.size}getKeys(){return this.keyMap.keys()}getKeyBefore(t){let n=this.keyMap.get(t);var r;return n&&(r=n.prevKey)!==null&&r!==void 0?r:null}getKeyAfter(t){let n=this.keyMap.get(t);var r;return n&&(r=n.nextKey)!==null&&r!==void 0?r:null}getFirstKey(){return this.firstKey}getLastKey(){return this.lastKey}getItem(t){var n;return(n=this.keyMap.get(t))!==null&&n!==void 0?n:null}at(t){const n=[...this.getKeys()];return this.getItem(n[t])}constructor(t,{expandedKeys:n}={}){this.keyMap=new Map,this.firstKey=null,this.lastKey=null,this.iterable=t,n=n||new Set;let r=c=>{if(this.keyMap.set(c.key,c),c.childNodes&&(c.type==="section"||n.has(c.key)))for(let d of c.childNodes)r(d)};for(let c of t)r(c);let i=null,s=0;for(let[c,d]of this.keyMap)i?(i.nextKey=c,d.prevKey=i.key):(this.firstKey=c,d.prevKey=void 0),d.type==="item"&&(d.index=s++),i=d,i.nextKey=void 0;var a;this.lastKey=(a=i?.key)!==null&&a!==void 0?a:null}}class Co extends Set{constructor(t,n,r){super(t),t instanceof Co?(this.anchorKey=n??t.anchorKey,this.currentKey=r??t.currentKey):(this.anchorKey=n??null,this.currentKey=r??null)}}function DO(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function NO(e){let{selectionMode:t="none",disallowEmptySelection:n=!1,allowDuplicateSelectionEvents:r,selectionBehavior:i="toggle",disabledBehavior:s="all"}=e,a=S.useRef(!1),[,c]=S.useState(!1),d=S.useRef(null),h=S.useRef(null),[,m]=S.useState(null),g=S.useMemo(()=>yk(e.selectedKeys),[e.selectedKeys]),b=S.useMemo(()=>yk(e.defaultSelectedKeys,new Co),[e.defaultSelectedKeys]),[x,E]=$f(g,b,e.onSelectionChange),P=S.useMemo(()=>e.disabledKeys?new Set(e.disabledKeys):new Set,[e.disabledKeys]),[_,T]=S.useState(i);i==="replace"&&_==="toggle"&&typeof x=="object"&&x.size===0&&T("replace");let R=S.useRef(i);return S.useEffect(()=>{i!==R.current&&(T(i),R.current=i)},[i]),{selectionMode:t,disallowEmptySelection:n,selectionBehavior:_,setSelectionBehavior:T,get isFocused(){return a.current},setFocused(M){a.current=M,c(M)},get focusedKey(){return d.current},get childFocusStrategy(){return h.current},setFocusedKey(M,j="first"){d.current=M,h.current=j,m(M)},selectedKeys:x,setSelectedKeys(M){(r||!DO(M,x))&&E(M)},disabledKeys:P,disabledBehavior:s}}function yk(e,t){return e?e==="all"?"all":new Co(e):t}function P_(e){return null}P_.getCollectionNode=function*(t,n){let{childItems:r,title:i,children:s}=t,a=t.title||t.children,c=t.textValue||(typeof a=="string"?a:"")||t["aria-label"]||"";!c&&n?.suppressTextValueWarning,yield{type:"item",props:t,rendered:a,textValue:c,"aria-label":t["aria-label"],hasChildNodes:FO(t),*childNodes(){if(r)for(let d of r)yield{type:"item",value:d};else if(i){let d=[];We.Children.forEach(s,h=>{d.push({type:"item",element:h})}),yield*d}}}};function FO(e){return e.hasChildItems!=null?e.hasChildItems:!!(e.childItems||e.title&&We.Children.count(e.children)>0)}let OO=P_;class zO{build(t,n){return this.context=n,bk(()=>this.iterateCollection(t))}*iterateCollection(t){let{children:n,items:r}=t;if(We.isValidElement(n)&&n.type===We.Fragment)yield*this.iterateCollection({children:n.props.children,items:r});else if(typeof n=="function"){if(!r)throw new Error("props.children was a function but props.items is missing");let i=0;for(let s of r)yield*this.getFullNode({value:s,index:i},{renderer:n}),i++}else{let i=[];We.Children.forEach(n,a=>{a&&i.push(a)});let s=0;for(let a of i){let c=this.getFullNode({element:a,index:s},{});for(let d of c)s++,yield d}}}getKey(t,n,r,i){if(t.key!=null)return t.key;if(n.type==="cell"&&n.key!=null)return`${i}${n.key}`;let s=n.value;if(s!=null){var a;let c=(a=s.key)!==null&&a!==void 0?a:s.id;if(c==null)throw new Error("No key found for item");return c}return i?`${i}.${n.index}`:`$.${n.index}`}getChildState(t,n){return{renderer:n.renderer||t.renderer}}*getFullNode(t,n,r,i){if(We.isValidElement(t.element)&&t.element.type===We.Fragment){let _=[];We.Children.forEach(t.element.props.children,R=>{_.push(R)});var s;let T=(s=t.index)!==null&&s!==void 0?s:0;for(const R of _)yield*this.getFullNode({element:R,index:T++},n,r,i);return}let a=t.element;if(!a&&t.value&&n&&n.renderer){let _=this.cache.get(t.value);if(_&&(!_.shouldInvalidate||!_.shouldInvalidate(this.context))){_.index=t.index,_.parentKey=i?i.key:null,yield _;return}a=n.renderer(t.value)}if(We.isValidElement(a)){let _=a.type;if(typeof _!="function"&&typeof _.getCollectionNode!="function"){let j=a.type;throw new Error(`Unknown element <${j}> in collection.`)}let T=_.getCollectionNode(a.props,this.context);var c;let R=(c=t.index)!==null&&c!==void 0?c:0,M=T.next();for(;!M.done&&M.value;){let j=M.value;t.index=R;var d;let H=(d=j.key)!==null&&d!==void 0?d:null;H==null&&(H=j.element?null:this.getKey(a,t,n,r));let Z=[...this.getFullNode({...j,key:H,index:R,wrapper:jO(t.wrapper,j.wrapper)},this.getChildState(n,j),r?`${r}${a.key}`:a.key,i)];for(let ne of Z){var h,m;ne.value=(m=(h=j.value)!==null&&h!==void 0?h:t.value)!==null&&m!==void 0?m:null,ne.value&&this.cache.set(ne.value,ne);var g;if(t.type&&ne.type!==t.type)throw new Error(`Unsupported type <${c0(ne.type)}> in <${c0((g=i?.type)!==null&&g!==void 0?g:"unknown parent type")}>. Only <${c0(t.type)}> is supported.`);R++,yield ne}M=T.next(Z)}return}if(t.key==null||t.type==null)return;let b=this;var x,E;let P={type:t.type,props:t.props,key:t.key,parentKey:i?i.key:null,value:(x=t.value)!==null&&x!==void 0?x:null,level:i?i.level+1:0,index:t.index,rendered:t.rendered,textValue:(E=t.textValue)!==null&&E!==void 0?E:"","aria-label":t["aria-label"],wrapper:t.wrapper,shouldInvalidate:t.shouldInvalidate,hasChildNodes:t.hasChildNodes||!1,childNodes:bk(function*(){if(!t.hasChildNodes||!t.childNodes)return;let _=0;for(let T of t.childNodes()){T.key!=null&&(T.key=`${P.key}${T.key}`);let R=b.getFullNode({...T,index:_},b.getChildState(n,T),P.key,P);for(let M of R)_++,yield M}})};yield P}constructor(){this.cache=new WeakMap}}function bk(e){let t=[],n=null;return{*[Symbol.iterator](){for(let r of t)yield r;n||(n=e());for(let r of n)t.push(r),yield r}}}function jO(e,t){if(e&&t)return n=>e(t(n));if(e)return e;if(t)return t}function c0(e){return e[0].toUpperCase()+e.slice(1)}function BO(e,t,n){let r=S.useMemo(()=>new zO,[]),{children:i,items:s,collection:a}=e;return S.useMemo(()=>{if(a)return a;let d=r.build({children:i,items:s},n);return t(d)},[r,i,s,a,n,t])}function VO(e,t){return typeof t.getChildren=="function"?t.getChildren(e.key):e.childNodes}function UO(e){return KO(e)}function KO(e,t){for(let n of e)return n}function f0(e,t,n){if(t.parentKey===n.parentKey)return t.index-n.index;let r=[...xk(e,t),t],i=[...xk(e,n),n],s=r.slice(0,i.length).findIndex((a,c)=>a!==i[c]);return s!==-1?(t=r[s],n=i[s],t.index-n.index):r.findIndex(a=>a===n)>=0?1:(i.findIndex(a=>a===t)>=0,-1)}function xk(e,t){let n=[],r=t;for(;r?.parentKey!=null;)r=e.getItem(r.parentKey),r&&n.unshift(r);return n}class qx{get selectionMode(){return this.state.selectionMode}get disallowEmptySelection(){return this.state.disallowEmptySelection}get selectionBehavior(){return this.state.selectionBehavior}setSelectionBehavior(t){this.state.setSelectionBehavior(t)}get isFocused(){return this.state.isFocused}setFocused(t){this.state.setFocused(t)}get focusedKey(){return this.state.focusedKey}get childFocusStrategy(){return this.state.childFocusStrategy}setFocusedKey(t,n){(t==null||this.collection.getItem(t))&&this.state.setFocusedKey(t,n)}get selectedKeys(){return this.state.selectedKeys==="all"?new Set(this.getSelectAllKeys()):this.state.selectedKeys}get rawSelection(){return this.state.selectedKeys}isSelected(t){if(this.state.selectionMode==="none")return!1;let n=this.getKey(t);return n==null?!1:this.state.selectedKeys==="all"?this.canSelectItem(n):this.state.selectedKeys.has(n)}get isEmpty(){return this.state.selectedKeys!=="all"&&this.state.selectedKeys.size===0}get isSelectAll(){if(this.isEmpty)return!1;if(this.state.selectedKeys==="all")return!0;if(this._isSelectAll!=null)return this._isSelectAll;let t=this.getSelectAllKeys(),n=this.state.selectedKeys;return this._isSelectAll=t.every(r=>n.has(r)),this._isSelectAll}get firstSelectedKey(){let t=null;for(let r of this.state.selectedKeys){let i=this.collection.getItem(r);(!t||i&&f0(this.collection,i,t)<0)&&(t=i)}var n;return(n=t?.key)!==null&&n!==void 0?n:null}get lastSelectedKey(){let t=null;for(let r of this.state.selectedKeys){let i=this.collection.getItem(r);(!t||i&&f0(this.collection,i,t)>0)&&(t=i)}var n;return(n=t?.key)!==null&&n!==void 0?n:null}get disabledKeys(){return this.state.disabledKeys}get disabledBehavior(){return this.state.disabledBehavior}extendSelection(t){if(this.selectionMode==="none")return;if(this.selectionMode==="single"){this.replaceSelection(t);return}let n=this.getKey(t);if(n==null)return;let r;if(this.state.selectedKeys==="all")r=new Co([n],n,n);else{let a=this.state.selectedKeys;var i;let c=(i=a.anchorKey)!==null&&i!==void 0?i:n;r=new Co(a,c,n);var s;for(let d of this.getKeyRange(c,(s=a.currentKey)!==null&&s!==void 0?s:n))r.delete(d);for(let d of this.getKeyRange(n,c))this.canSelectItem(d)&&r.add(d)}this.state.setSelectedKeys(r)}getKeyRange(t,n){let r=this.collection.getItem(t),i=this.collection.getItem(n);return r&&i?f0(this.collection,r,i)<=0?this.getKeyRangeInternal(t,n):this.getKeyRangeInternal(n,t):[]}getKeyRangeInternal(t,n){var r;if(!((r=this.layoutDelegate)===null||r===void 0)&&r.getKeyRange)return this.layoutDelegate.getKeyRange(t,n);let i=[],s=t;for(;s!=null;){let a=this.collection.getItem(s);if(a&&(a.type==="item"||a.type==="cell"&&this.allowsCellSelection)&&i.push(s),s===n)return i;s=this.collection.getKeyAfter(s)}return[]}getKey(t){let n=this.collection.getItem(t);if(!n||n.type==="cell"&&this.allowsCellSelection)return t;for(;n&&n.type!=="item"&&n.parentKey!=null;)n=this.collection.getItem(n.parentKey);return!n||n.type!=="item"?null:n.key}toggleSelection(t){if(this.selectionMode==="none")return;if(this.selectionMode==="single"&&!this.isSelected(t)){this.replaceSelection(t);return}let n=this.getKey(t);if(n==null)return;let r=new Co(this.state.selectedKeys==="all"?this.getSelectAllKeys():this.state.selectedKeys);r.has(n)?r.delete(n):this.canSelectItem(n)&&(r.add(n),r.anchorKey=n,r.currentKey=n),!(this.disallowEmptySelection&&r.size===0)&&this.state.setSelectedKeys(r)}replaceSelection(t){if(this.selectionMode==="none")return;let n=this.getKey(t);if(n==null)return;let r=this.canSelectItem(n)?new Co([n],n,n):new Co;this.state.setSelectedKeys(r)}setSelectedKeys(t){if(this.selectionMode==="none")return;let n=new Co;for(let r of t){let i=this.getKey(r);if(i!=null&&(n.add(i),this.selectionMode==="single"))break}this.state.setSelectedKeys(n)}getSelectAllKeys(){let t=[],n=r=>{for(;r!=null;){if(this.canSelectItem(r)){var i;let a=this.collection.getItem(r);a?.type==="item"&&t.push(r);var s;a?.hasChildNodes&&(this.allowsCellSelection||a.type!=="item")&&n((s=(i=UO(VO(a,this.collection)))===null||i===void 0?void 0:i.key)!==null&&s!==void 0?s:null)}r=this.collection.getKeyAfter(r)}};return n(this.collection.getFirstKey()),t}selectAll(){!this.isSelectAll&&this.selectionMode==="multiple"&&this.state.setSelectedKeys("all")}clearSelection(){!this.disallowEmptySelection&&(this.state.selectedKeys==="all"||this.state.selectedKeys.size>0)&&this.state.setSelectedKeys(new Co)}toggleSelectAll(){this.isSelectAll?this.clearSelection():this.selectAll()}select(t,n){this.selectionMode!=="none"&&(this.selectionMode==="single"?this.isSelected(t)&&!this.disallowEmptySelection?this.toggleSelection(t):this.replaceSelection(t):this.selectionBehavior==="toggle"||n&&(n.pointerType==="touch"||n.pointerType==="virtual")?this.toggleSelection(t):this.replaceSelection(t))}isSelectionEqual(t){if(t===this.state.selectedKeys)return!0;let n=this.selectedKeys;if(t.size!==n.size)return!1;for(let r of t)if(!n.has(r))return!1;for(let r of n)if(!t.has(r))return!1;return!0}canSelectItem(t){var n;if(this.state.selectionMode==="none"||this.state.disabledKeys.has(t))return!1;let r=this.collection.getItem(t);return!(!r||!(r==null||(n=r.props)===null||n===void 0)&&n.isDisabled||r.type==="cell"&&!this.allowsCellSelection)}isDisabled(t){var n,r;return this.state.disabledBehavior==="all"&&(this.state.disabledKeys.has(t)||!!(!((r=this.collection.getItem(t))===null||r===void 0||(n=r.props)===null||n===void 0)&&n.isDisabled))}isLink(t){var n,r;return!!(!((r=this.collection.getItem(t))===null||r===void 0||(n=r.props)===null||n===void 0)&&n.href)}getItemProps(t){var n;return(n=this.collection.getItem(t))===null||n===void 0?void 0:n.props}withCollection(t){return new qx(t,this.state,{allowsCellSelection:this.allowsCellSelection,layoutDelegate:this.layoutDelegate||void 0})}constructor(t,n,r){this.collection=t,this.state=n;var i;this.allowsCellSelection=(i=r?.allowsCellSelection)!==null&&i!==void 0?i:!1,this._isSelectAll=null,this.layoutDelegate=r?.layoutDelegate||null}}function WO(e){let{onExpandedChange:t}=e,[n,r]=$f(e.expandedKeys?new Set(e.expandedKeys):void 0,e.defaultExpandedKeys?new Set(e.defaultExpandedKeys):new Set,t),i=NO(e),s=S.useMemo(()=>e.disabledKeys?new Set(e.disabledKeys):new Set,[e.disabledKeys]),a=BO(e,S.useCallback(d=>new MO(d,{expandedKeys:n}),[n]),null);return S.useEffect(()=>{i.focusedKey!=null&&!a.getItem(i.focusedKey)&&i.setFocusedKey(null)},[a,i.focusedKey]),{collection:a,expandedKeys:n,disabledKeys:s,toggleKey:d=>{r(HO(n,d))},setExpandedKeys:r,selectionManager:new qx(a,i)}}function HO(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function GO(e){var t;const n=Ti(),{ref:r,as:i,className:s,items:a,variant:c,motionProps:d,expandedKeys:h,disabledKeys:m,selectedKeys:g,children:b,defaultExpandedKeys:x,selectionMode:E="single",selectionBehavior:P="toggle",keepContentMounted:_=!1,disallowEmptySelection:T,defaultSelectedKeys:R,onExpandedChange:M,onSelectionChange:j,dividerProps:H={},isCompact:L=!1,isDisabled:Z=!1,showDivider:ne=!0,hideIndicator:ae=!1,disableAnimation:O=(t=n?.disableAnimation)!=null?t:!1,disableIndicatorAnimation:U=!1,itemClasses:X,...re}=e,[G,fe]=S.useState(null),J=i||"div",q=typeof J=="string",K=Qi(r),se=S.useMemo(()=>hO({variant:c,className:s}),[c,s]),B={children:S.useMemo(()=>{let Te=[];return We.Children.map(b,tt=>{var yt;if(We.isValidElement(tt)&&typeof((yt=tt.props)==null?void 0:yt.children)!="string"){const Ie=We.cloneElement(tt,{hasChildItems:!1});Te.push(Ie)}else Te.push(tt)}),Te},[b]),items:a},oe={expandedKeys:h,defaultExpandedKeys:x,onExpandedChange:M},z={disabledKeys:m,selectedKeys:g,selectionMode:E,selectionBehavior:P,disallowEmptySelection:T,defaultSelectedKeys:R??x,onSelectionChange:j,...B,...oe},me=WO(z);me.selectionManager.setFocusedKey=Te=>{fe(Te)};const{accordionProps:Ee}=IO({...B,...oe},me,K),we=S.useMemo(()=>({state:me,focusedKey:G,motionProps:d,isCompact:L,isDisabled:Z,hideIndicator:ae,disableAnimation:O,keepContentMounted:_,disableIndicatorAnimation:U}),[G,L,Z,ae,g,O,_,me?.expandedKeys.values,U,me.expandedKeys.size,me.disabledKeys.size,d]),je=S.useCallback((Te={})=>({ref:K,className:se,"data-orientation":"vertical",...hn(Ee,vf(re,{enabled:q}),Te)}),[]),Oe=S.useCallback((Te,tt)=>{Te&&fe(tt)},[]);return{Component:J,values:we,state:me,focusedKey:G,getBaseProps:je,isSplitted:c==="splitted",classNames:se,showDivider:ne,dividerProps:H,disableAnimation:O,handleFocusChanged:Oe,itemClasses:X}}function qO(e){let t=vf(e,{enabled:typeof e.elementType=="string"}),n;return e.orientation==="vertical"&&(n="vertical"),e.elementType!=="hr"?{separatorProps:{...t,role:"separator","aria-orientation":n}}:{separatorProps:t}}function YO(e){const{as:t,className:n,orientation:r,...i}=e;let s=t||"hr";s==="hr"&&r==="vertical"&&(s="div");const{separatorProps:a}=qO({elementType:typeof s=="string"?s:"hr",orientation:r}),c=S.useMemo(()=>fO({orientation:r,className:n}),[r,n]),d=S.useCallback((h={})=>({className:c,role:"separator","data-orientation":r,...a,...i,...h}),[c,r,a,i]);return{Component:s,getDividerProps:d}}var T_=_i((e,t)=>{const{Component:n,getDividerProps:r}=YO({...e});return N.jsx(n,{ref:t,...r()})});T_.displayName="HeroUI.Divider";var XO=T_,__=_i((e,t)=>{const{Component:n,values:r,state:i,isSplitted:s,showDivider:a,getBaseProps:c,disableAnimation:d,handleFocusChanged:h,itemClasses:m,dividerProps:g}=GO({...e,ref:t}),b=S.useCallback((E,P)=>h(E,P),[h]),x=S.useMemo(()=>[...i.collection].map((E,P)=>{const _={...m,...E.props.classNames||{}};return N.jsxs(S.Fragment,{children:[N.jsx(LO,{item:E,variant:e.variant,onFocusChange:b,...r,...E.props,classNames:_}),!E.props.hidden&&!s&&a&&P{const t={top:{originY:1},bottom:{originY:0},left:{originX:1},right:{originX:0},"top-start":{originX:0,originY:1},"top-end":{originX:1,originY:1},"bottom-start":{originX:0,originY:0},"bottom-end":{originX:1,originY:0},"right-start":{originX:0,originY:0},"right-end":{originX:0,originY:1},"left-start":{originX:1,originY:0},"left-end":{originX:1,originY:1}};return t?.[e]||{}},JO=e=>({top:"top",bottom:"bottom",left:"left",right:"right","top-start":"top start","top-end":"top end","bottom-start":"bottom start","bottom-end":"bottom end","left-start":"left top","left-end":"left bottom","right-start":"right top","right-end":"right bottom"})[e],sG=(e,t)=>{if(t.includes("-")){const[n]=t.split("-");if(n.includes(e))return!1}return!0},Sk=(e,t)=>{if(t.includes("-")){const[,n]=t.split("-");return`${e}-${n}`}return e},ZO=OO,mp=ZO,vv=globalThis?.document?S.useLayoutEffect:S.useEffect;function e6(e={}){const{onLoad:t,onError:n,ignoreFallback:r,src:i,crossOrigin:s,srcSet:a,sizes:c,loading:d,shouldBypassImageLoad:h=!1}=e,m=nL(),g=S.useRef(m?new Image:null),[b,x]=S.useState("pending");S.useEffect(()=>{g.current&&(g.current.onload=_=>{E(),x("loaded"),t?.(_)},g.current.onerror=_=>{E(),x("failed"),n?.(_)})},[g.current]);const E=()=>{g.current&&(g.current.onload=null,g.current.onerror=null,g.current=null)},P=S.useCallback(()=>{if(!i)return"pending";if(r||h)return"loaded";const _=new Image;return _.src=i,s&&(_.crossOrigin=s),a&&(_.srcset=a),c&&(_.sizes=c),d&&(_.loading=d),g.current=_,_.complete&&_.naturalWidth?"loaded":"loading"},[i,s,a,c,t,n,d,h]);return vv(()=>{m&&x(P())},[m,P]),r?"loaded":b}var[lG,t6]=nx({name:"ButtonGroupContext",strict:!1});function I_(e,t){let{elementType:n="button",isDisabled:r,onPress:i,onPressStart:s,onPressEnd:a,onPressUp:c,onPressChange:d,preventFocusOnPress:h,allowFocusWhenDisabled:m,onClick:g,href:b,target:x,rel:E,type:P="button",allowTextSelectionOnPress:_}=e,T;n==="button"?T={type:P,disabled:r}:T={role:"button",href:n==="a"&&!r?b:void 0,target:n==="a"?x:void 0,type:n==="input"?P:void 0,disabled:n==="input"?r:void 0,"aria-disabled":!r||n==="input"?void 0:r,rel:n==="a"?E:void 0};let{pressProps:R,isPressed:M}=pv({onClick:g,onPressStart:s,onPressEnd:a,onPressUp:c,onPressChange:d,onPress:i,isDisabled:r,preventFocusOnPress:h,allowTextSelectionOnPress:_,ref:t}),{focusableProps:j}=mv(e,t);m&&(j.tabIndex=r?-1:j.tabIndex);let H=lr(j,R,If(e,{labelable:!0}));return{isPressed:M,buttonProps:lr(T,H,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],"aria-current":e["aria-current"]})}}var n6=()=>$o(()=>import("./index-pa97nhJc.js"),[]).then(e=>e.default),$_=e=>{const{ripples:t=[],motionProps:n,color:r="currentColor",style:i,onClear:s}=e;return N.jsx(N.Fragment,{children:t.map(a=>{const c=XR(.01*a.size,.2,a.size>100?.75:.5);return N.jsx(Sf,{features:n6,children:N.jsx(Lf,{mode:"popLayout",children:N.jsx(kf.span,{animate:{transform:"scale(2)",opacity:0},className:"heroui-ripple",exit:{opacity:0},initial:{transform:"scale(0)",opacity:.35},style:{position:"absolute",backgroundColor:r,borderRadius:"100%",transformOrigin:"center",pointerEvents:"none",overflow:"hidden",inset:0,zIndex:0,top:a.y,left:a.x,width:`${a.size}px`,height:`${a.size}px`,...i},transition:{duration:c},onAnimationComplete:()=>{s(a.key)},...n})})},a.key)})})};$_.displayName="HeroUI.Ripple";var r6=$_;function i6(e={}){const[t,n]=S.useState([]),r=S.useCallback(s=>{const a=s.target,c=Math.max(a.clientWidth,a.clientHeight);n(d=>[...d,{key:YR(d.length.toString()),size:c,x:s.x-c/2,y:s.y-c/2}])},[]),i=S.useCallback(s=>{n(a=>a.filter(c=>c.key!==s))},[]);return{ripples:t,onClear:i,onPress:r,...e}}function o6(e){var t,n,r,i,s,a,c,d,h;const m=t6(),g=Ti(),b=!!m,{ref:x,as:E,children:P,startContent:_,endContent:T,autoFocus:R,className:M,spinner:j,isLoading:H=!1,disableRipple:L=!1,fullWidth:Z=(t=m?.fullWidth)!=null?t:!1,radius:ne=m?.radius,size:ae=(n=m?.size)!=null?n:"md",color:O=(r=m?.color)!=null?r:"default",variant:U=(i=m?.variant)!=null?i:"solid",disableAnimation:X=(a=(s=m?.disableAnimation)!=null?s:g?.disableAnimation)!=null?a:!1,isDisabled:re=(c=m?.isDisabled)!=null?c:!1,isIconOnly:G=(d=m?.isIconOnly)!=null?d:!1,spinnerPlacement:fe="start",onPress:J,onClick:q,...K}=e,se=E||"button",A=typeof se=="string",B=Qi(x),oe=(h=L||g?.disableRipple)!=null?h:X,{isFocusVisible:z,isFocused:me,focusProps:Ee}=rh({autoFocus:R}),we=re||H,je=S.useMemo(()=>pO({size:ae,color:O,variant:U,radius:ne,fullWidth:Z,isDisabled:we,isInGroup:b,disableAnimation:X,isIconOnly:G,className:M}),[ae,O,U,ne,Z,we,b,G,X,M]),{onPress:Oe,onClear:Te,ripples:tt}=i6(),yt=S.useCallback(zt=>{oe||we||X||B.current&&Oe(zt)},[oe,we,X,B,Oe]),{buttonProps:Ie,isPressed:Rt}=I_({elementType:E,isDisabled:we,onPress:gf(J,yt),onClick:q,...K},B),{isHovered:bt,hoverProps:Xt}=Cf({isDisabled:we}),Ue=S.useCallback((zt={})=>({"data-disabled":Me(we),"data-focus":Me(me),"data-pressed":Me(Rt),"data-focus-visible":Me(z),"data-hover":Me(bt),"data-loading":Me(H),...hn(Ie,Ee,Xt,vf(K,{enabled:A}),vf(zt)),className:je}),[H,we,me,Rt,A,z,bt,Ie,Ee,Xt,K,je]),st=zt=>S.isValidElement(zt)?S.cloneElement(zt,{"aria-hidden":!0,focusable:!1}):null,An=st(_),Nr=st(T),Sn=S.useMemo(()=>({sm:"sm",md:"sm",lg:"md"})[ae],[ae]),Lt=S.useCallback(()=>({ripples:tt,onClear:Te}),[tt,Te]);return{Component:se,children:P,domRef:B,spinner:j,styles:je,startContent:An,endContent:Nr,isLoading:H,spinnerPlacement:fe,spinnerSize:Sn,disableRipple:oe,getButtonProps:Ue,getRippleProps:Lt,isIconOnly:G}}function s6(e){var t,n;const[r,i]=ta(e,ok.variantKeys),s=Ti(),a=(n=(t=e?.variant)!=null?t:s?.spinnerVariant)!=null?n:"default",{children:c,className:d,classNames:h,label:m,...g}=r,b=S.useMemo(()=>ok({...i}),[el(i)]),x=pn(h?.base,d),E=m||c,P=S.useMemo(()=>E&&typeof E=="string"?E:g["aria-label"]?"":"Loading",[c,E,g["aria-label"]]),_=S.useCallback(()=>({"aria-label":P,className:b.base({class:x}),...g}),[P,b,x,g]);return{label:E,slots:b,classNames:h,variant:a,getSpinnerProps:_}}var A_=_i((e,t)=>{const{slots:n,classNames:r,label:i,variant:s,getSpinnerProps:a}=s6({...e});return s==="wave"||s==="dots"?N.jsxs("div",{ref:t,...a(),children:[N.jsx("div",{className:n.wrapper({class:r?.wrapper}),children:[...new Array(3)].map((c,d)=>N.jsx("i",{className:n.dots({class:r?.dots}),style:{"--dot-index":d}},`dot-${d}`))}),i&&N.jsx("span",{className:n.label({class:r?.label}),children:i})]}):s==="simple"?N.jsxs("div",{ref:t,...a(),children:[N.jsxs("svg",{className:n.wrapper({class:r?.wrapper}),fill:"none",viewBox:"0 0 24 24",children:[N.jsx("circle",{className:n.circle1({class:r?.circle1}),cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),N.jsx("path",{className:n.circle2({class:r?.circle2}),d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z",fill:"currentColor"})]}),i&&N.jsx("span",{className:n.label({class:r?.label}),children:i})]}):s==="spinner"?N.jsxs("div",{ref:t,...a(),children:[N.jsx("div",{className:n.wrapper({class:r?.wrapper}),children:[...new Array(12)].map((c,d)=>N.jsx("i",{className:n.spinnerBars({class:r?.spinnerBars}),style:{"--bar-index":d}},`star-${d}`))}),i&&N.jsx("span",{className:n.label({class:r?.label}),children:i})]}):N.jsxs("div",{ref:t,...a(),children:[N.jsxs("div",{className:n.wrapper({class:r?.wrapper}),children:[N.jsx("i",{className:n.circle1({class:r?.circle1})}),N.jsx("i",{className:n.circle2({class:r?.circle2})})]}),i&&N.jsx("span",{className:n.label({class:r?.label}),children:i})]})});A_.displayName="HeroUI.Spinner";var l6=A_,R_=_i((e,t)=>{const{Component:n,domRef:r,children:i,spinnerSize:s,spinner:a=N.jsx(l6,{color:"current",size:s}),spinnerPlacement:c,startContent:d,endContent:h,isLoading:m,disableRipple:g,getButtonProps:b,getRippleProps:x,isIconOnly:E}=o6({...e,ref:t});return N.jsxs(n,{ref:r,...b(),children:[d,m&&c==="start"&&a,m&&E?null:i,m&&c==="end"&&a,h,!g&&N.jsx(r6,{...x()})]})});R_.displayName="HeroUI.Button";var To=R_;const L_={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},M_={...L_,customError:!0,valid:!1},gp={isInvalid:!1,validationDetails:L_,validationErrors:[]},D_=S.createContext({}),kk="__formValidationState"+Date.now();function a6(e){if(e[kk]){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:s}=e[kk];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:s}}return u6(e)}function u6(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:s,validate:a,validationBehavior:c="aria"}=e;n&&(t||(t=n==="invalid"));let d=t!==void 0?{isInvalid:t,validationErrors:[],validationDetails:M_}:null,h=S.useMemo(()=>{if(!a||i==null)return null;let O=c6(a,i);return Ck(O)},[a,i]);s?.validationDetails.valid&&(s=void 0);let m=S.useContext(D_),g=S.useMemo(()=>r?Array.isArray(r)?r.flatMap(O=>Tb(m[O])):Tb(m[r]):[],[m,r]),[b,x]=S.useState(m),[E,P]=S.useState(!1);m!==b&&(x(m),P(!1));let _=S.useMemo(()=>Ck(E?[]:g),[E,g]),T=S.useRef(gp),[R,M]=S.useState(gp),j=S.useRef(gp),H=()=>{if(!L)return;Z(!1);let O=h||s||T.current;d0(O,j.current)||(j.current=O,M(O))},[L,Z]=S.useState(!1);return S.useEffect(H),{realtimeValidation:d||_||h||s||gp,displayValidation:c==="native"?d||_||R:d||_||h||s||R,updateValidation(O){c==="aria"&&!d0(R,O)?M(O):T.current=O},resetValidation(){let O=gp;d0(O,j.current)||(j.current=O,M(O)),c==="native"&&Z(!1),P(!0)},commitValidation(){c==="native"&&Z(!0),P(!0)}}}function Tb(e){return e?Array.isArray(e)?e:[e]:[]}function c6(e,t){if(typeof e=="function"){let n=e(t);if(n&&typeof n!="boolean")return Tb(n)}return[]}function Ck(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:M_}:null}function d0(e,t){return e===t?!0:!!e&&!!t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((n,r)=>n===t.validationErrors[r])&&Object.entries(e.validationDetails).every(([n,r])=>t.validationDetails[n]===r)}function f6(e,t,n){let{validationBehavior:r,focus:i}=e;Zt(()=>{if(r==="native"&&n?.current&&!n.current.disabled){let d=t.realtimeValidation.isInvalid?t.realtimeValidation.validationErrors.join(" ")||"Invalid value.":"";n.current.setCustomValidity(d),n.current.hasAttribute("title")||(n.current.title=""),t.realtimeValidation.isInvalid||t.updateValidation(p6(n.current))}});let s=Fn(()=>{t.resetValidation()}),a=Fn(d=>{var h;t.displayValidation.isInvalid||t.commitValidation();let m=n==null||(h=n.current)===null||h===void 0?void 0:h.form;if(!d.defaultPrevented&&n&&m&&h6(m)===n.current){var g;i?i():(g=n.current)===null||g===void 0||g.focus(),SF("keyboard")}d.preventDefault()}),c=Fn(()=>{t.commitValidation()});S.useEffect(()=>{let d=n?.current;if(!d)return;let h=d.form;return d.addEventListener("invalid",a),d.addEventListener("change",c),h?.addEventListener("reset",s),()=>{d.removeEventListener("invalid",a),d.removeEventListener("change",c),h?.removeEventListener("reset",s)}},[n,a,c,s,r])}function d6(e){let t=e.validity;return{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing,valid:t.valid}}function p6(e){return{isInvalid:!e.validity.valid,validationDetails:d6(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function h6(e){for(let t=0;t{if(typeof e=="function"){const s=e,a=s(i);return()=>{typeof a=="function"?a():s(null)}}else if(e)return e.current=i,()=>{e.current=null}},[e]);return S.useMemo(()=>({get current(){return t.current},set current(i){t.current=i,n.current&&(n.current(),n.current=void 0),i!=null&&(n.current=r(i))}}),[r])}function F_(e,t){let n=S.useContext(e);if(t===null)return null;if(n&&typeof n=="object"&&"slots"in n&&n.slots){let r=new Intl.ListFormat().format(Object.keys(n.slots).map(s=>`"${s}"`));if(!t&&!n.slots[Ek])throw new Error(`A slot prop is required. Valid slot names are ${r}.`);let i=t||Ek;if(!n.slots[i])throw new Error(`Invalid slot "${t}". Valid slot names are ${r}.`);return n.slots[i]}return n}function v6(e,t,n){let r=F_(n,e.slot)||{},{ref:i,...s}=r,a=g6(S.useMemo(()=>lE(t,i),[t,i])),c=hn(s,e);return"style"in s&&s.style&&"style"in e&&e.style&&(typeof s.style=="function"||typeof e.style=="function"?c.style=d=>{let h=typeof s.style=="function"?s.style(d):s.style,m={...d.defaultStyle,...h},g=typeof e.style=="function"?e.style({...d,defaultStyle:m}):e.style;return{...m,...g}}:c.style={...s.style,...e.style}),[c,a]}var _b=S.createContext(null),y6=S.forwardRef(function(t,n){[t,n]=v6(t,n,_b);let{validationErrors:r,validationBehavior:i="native",children:s,className:a,...c}=t;const d=S.useMemo(()=>dO({className:a}),[a]);return N.jsx("form",{noValidate:i!=="native",...c,ref:n,className:d,children:N.jsx(_b.Provider,{value:{...t,validationBehavior:i},children:N.jsx(D_.Provider,{value:r??{},children:s})})})}),b6=S.forwardRef(function(t,n){var r,i;const s=Ti(),a=(i=(r=t.validationBehavior)!=null?r:s?.validationBehavior)!=null?i:"native";return N.jsx(y6,{...t,ref:n,validationBehavior:a})});function Pk(e,t=[]){const n=S.useRef(e);return vv(()=>{n.current=e}),S.useCallback((...r)=>{var i;return(i=n.current)==null?void 0:i.call(n,...r)},t)}function O_(e){let[t,n]=$f(e.isOpen,e.defaultOpen||!1,e.onOpenChange);const r=S.useCallback(()=>{n(!0)},[n]),i=S.useCallback(()=>{n(!1)},[n]),s=S.useCallback(()=>{n(!t)},[n,t]);return{isOpen:t,setOpen:n,open:r,close:i,toggle:s}}const x6=1500,Tk=500;let ou={},w6=0,vp=!1,Hs=null,su=null;function S6(e={}){let{delay:t=x6,closeDelay:n=Tk}=e,{isOpen:r,open:i,close:s}=O_(e),a=S.useMemo(()=>`${++w6}`,[]),c=S.useRef(null),d=S.useRef(s),h=()=>{ou[a]=b},m=()=>{for(let E in ou)E!==a&&(ou[E](!0),delete ou[E])},g=()=>{c.current&&clearTimeout(c.current),c.current=null,m(),h(),vp=!0,i(),Hs&&(clearTimeout(Hs),Hs=null),su&&(clearTimeout(su),su=null)},b=E=>{E||n<=0?(c.current&&clearTimeout(c.current),c.current=null,d.current()):c.current||(c.current=setTimeout(()=>{c.current=null,d.current()},n)),Hs&&(clearTimeout(Hs),Hs=null),vp&&(su&&clearTimeout(su),su=setTimeout(()=>{delete ou[a],su=null,vp=!1},Math.max(Tk,n)))},x=()=>{m(),h(),!r&&!Hs&&!vp?Hs=setTimeout(()=>{Hs=null,vp=!0,g()},t):r||g()};return S.useEffect(()=>{d.current=s},[s]),S.useEffect(()=>()=>{c.current&&clearTimeout(c.current),ou[a]&&delete ou[a]},[a]),{isOpen:r,open:E=>{!E&&t>0&&!c.current?x():g()},close:b}}function k6(e,t){let n=If(e,{labelable:!0}),{hoverProps:r}=Cf({onHoverStart:()=>t?.open(!0),onHoverEnd:()=>t?.close()});return{tooltipProps:lr(n,r,{role:"tooltip"})}}function C6(e,t,n){let{isDisabled:r,trigger:i}=e,s=yf(),a=S.useRef(!1),c=S.useRef(!1),d=()=>{(a.current||c.current)&&t.open(c.current)},h=T=>{!a.current&&!c.current&&t.close(T)};S.useEffect(()=>{let T=R=>{n&&n.current&&R.key==="Escape"&&(R.stopPropagation(),t.close(!0))};if(t.isOpen)return document.addEventListener("keydown",T,!0),()=>{document.removeEventListener("keydown",T,!0)}},[n,t]);let m=()=>{i!=="focus"&&(nh()==="pointer"?a.current=!0:a.current=!1,d())},g=()=>{i!=="focus"&&(c.current=!1,a.current=!1,h())},b=()=>{c.current=!1,a.current=!1,h(!0)},x=()=>{Kx()&&(c.current=!0,d())},E=()=>{c.current=!1,a.current=!1,h(!0)},{hoverProps:P}=Cf({isDisabled:r,onHoverStart:m,onHoverEnd:g}),{focusableProps:_}=mv({isDisabled:r,onFocus:x,onBlur:E},n);return{triggerProps:{"aria-describedby":t.isOpen?s:void 0,...lr(_,P,{onPointerDown:b,onKeyDown:b,tabIndex:void 0})},tooltipProps:{id:s}}}var Gs=[];function z_(e,t){const{disableOutsideEvents:n=!0,isDismissable:r=!1,isKeyboardDismissDisabled:i=!1,isOpen:s,onClose:a,shouldCloseOnBlur:c,shouldCloseOnInteractOutside:d}=e;S.useEffect(()=>(s&&Gs.push(t),()=>{const P=Gs.indexOf(t);P>=0&&Gs.splice(P,1)}),[s,t]);const h=()=>{Gs[Gs.length-1]===t&&a&&a()},m=P=>{(!d||d(P.target))&&(Gs[Gs.length-1]===t&&n&&(P.stopPropagation(),P.preventDefault()),P.pointerType!=="touch"&&h())},g=P=>{P.pointerType==="touch"&&(!d||d(P.target))&&(Gs[Gs.length-1]===t&&n&&(P.stopPropagation(),P.preventDefault()),h())},b=P=>{P.key==="Escape"&&!i&&!P.nativeEvent.isComposing&&(P.stopPropagation(),P.preventDefault(),h())};RF({isDisabled:!(r&&s),onInteractOutside:r&&s?g:void 0,onInteractOutsideStart:m,ref:t});const{focusWithinProps:x}=gv({isDisabled:!c,onBlurWithin:P=>{!P.relatedTarget||NF(P.relatedTarget)||(!d||d(P.relatedTarget))&&h()}}),E=P=>{P.target===P.currentTarget&&P.preventDefault()};return{overlayProps:{onKeyDown:b,...x},underlayProps:{onPointerDown:E}}}function E6(e){var t,n;const r=Ti(),[i,s]=ta(e,sk.variantKeys),{ref:a,as:c,isOpen:d,content:h,children:m,defaultOpen:g,onOpenChange:b,isDisabled:x,trigger:E,shouldFlip:P=!0,containerPadding:_=12,placement:T="top",delay:R=0,closeDelay:M=500,showArrow:j=!1,offset:H=7,crossOffset:L=0,isDismissable:Z,shouldCloseOnBlur:ne=!0,portalContainer:ae,isKeyboardDismissDisabled:O=!1,updatePositionDeps:U=[],shouldCloseOnInteractOutside:X,className:re,onClose:G,motionProps:fe,classNames:J,...q}=i,K=c||"div",se=(n=(t=e?.disableAnimation)!=null?t:r?.disableAnimation)!=null?n:!1,A=S6({delay:R,closeDelay:M,isDisabled:x,defaultOpen:g,isOpen:d,onOpenChange:Ue=>{b?.(Ue),Ue||G?.()}}),B=S.useRef(null),oe=S.useRef(null),z=S.useId(),me=A.isOpen&&!x;S.useImperativeHandle(a,()=>VR(oe));const{triggerProps:Ee,tooltipProps:we}=C6({isDisabled:x,trigger:E},A,B),{tooltipProps:je}=k6({isOpen:me,...hn(i,we)},A),{overlayProps:Oe,placement:Te,updatePosition:tt}=sF({isOpen:me,targetRef:B,placement:JO(T),overlayRef:oe,offset:j?H+3:H,crossOffset:L,shouldFlip:P,containerPadding:_});vv(()=>{U.length&&tt()},U);const{overlayProps:yt}=z_({isOpen:me,onClose:A.close,isDismissable:Z,shouldCloseOnBlur:ne,isKeyboardDismissDisabled:O,shouldCloseOnInteractOutside:X},oe),Ie=S.useMemo(()=>{var Ue,st,An;return sk({...s,disableAnimation:se,radius:(Ue=e?.radius)!=null?Ue:"md",size:(st=e?.size)!=null?st:"md",shadow:(An=e?.shadow)!=null?An:"sm"})},[el(s),se,e?.radius,e?.size,e?.shadow]),Rt=S.useCallback((Ue={},st=null)=>({...hn(Ee,Ue),ref:tL(st,B),"aria-describedby":me?z:void 0}),[Ee,me,z,A]),bt=S.useCallback(()=>({ref:oe,"data-slot":"base","data-open":Me(me),"data-arrow":Me(j),"data-disabled":Me(x),"data-placement":Sk(Te||"top",T),...hn(je,yt,q),style:hn(Oe.style,q.style,i.style),className:Ie.base({class:J?.base}),id:z}),[Ie,me,j,x,Te,T,je,yt,q,Oe,i,z]),Xt=S.useCallback(()=>({"data-slot":"content","data-open":Me(me),"data-arrow":Me(j),"data-disabled":Me(x),"data-placement":Sk(Te||"top",T),className:Ie.content({class:pn(J?.content,re)})}),[Ie,me,j,x,Te,T,J]);return{Component:K,content:h,children:m,isOpen:me,triggerRef:B,showArrow:j,portalContainer:ae,placement:T,disableAnimation:se,isDisabled:x,motionProps:fe,getTooltipContentProps:Xt,getTriggerProps:Rt,getTooltipProps:bt}}var P6=()=>$o(()=>import("./index-pa97nhJc.js"),[]).then(e=>e.default),j_=_i((e,t)=>{var n;const{Component:r,children:i,content:s,isOpen:a,portalContainer:c,placement:d,disableAnimation:h,motionProps:m,getTriggerProps:g,getTooltipProps:b,getTooltipContentProps:x}=E6({...e,ref:t});let E;try{if(S.Children.count(i)!==1)throw new Error;if(!S.isValidElement(i))E=N.jsx("p",{...g(),children:i});else{const H=i,L=(n=H.props.ref)!=null?n:H.ref;E=S.cloneElement(H,g(H.props,L))}}catch{E=N.jsx("span",{}),JR("Tooltip must have only one child node. Please, check your code.")}const{ref:P,id:_,style:T,...R}=b(),M=N.jsx("div",{ref:P,id:_,style:T,children:N.jsx(kf.div,{animate:"enter",exit:"exit",initial:"exit",variants:Wg.scaleSpring,...hn(m,R),style:{...QO(d)},children:N.jsx(r,{...x(),children:s})},`${_}-tooltip-inner`)},`${_}-tooltip-content`);return N.jsxs(N.Fragment,{children:[E,h?a&&N.jsx(XS,{portalContainer:c,children:N.jsx("div",{ref:P,id:_,style:T,...R,children:N.jsx(r,{...x(),children:s})})}):N.jsx(Sf,{features:P6,children:N.jsx(Lf,{children:a&&N.jsx(XS,{portalContainer:c,children:M})})})]})});j_.displayName="HeroUI.Tooltip";var T6=j_;function _6(e={}){const{rerender:t=!1,delay:n=0}=e,r=S.useRef(!1),[i,s]=S.useState(!1);return S.useEffect(()=>{r.current=!0;let a=null;return t&&(n>0?a=setTimeout(()=>{s(!0)},n):s(!0)),()=>{r.current=!1,t&&s(!1),a&&clearTimeout(a)}},[t]),[S.useCallback(()=>r.current,[]),i]}function I6(e){let{value:t=0,minValue:n=0,maxValue:r=100,valueLabel:i,isIndeterminate:s,formatOptions:a={style:"percent"}}=e,c=If(e,{labelable:!0}),{labelProps:d,fieldProps:h}=N_({...e,labelElementType:"span"});t=Mg(t,n,r);let m=(t-n)/(r-n),g=cM(a);if(!s&&!i){let b=a.style==="percent"?m:t;i=g.format(b)}return{progressBarProps:lr(c,{...h,"aria-valuenow":s?void 0:t,"aria-valuemin":n,"aria-valuemax":r,"aria-valuetext":s?void 0:i,role:"progressbar"}),labelProps:d}}function $6(e){var t,n,r;const i=Ti(),[s,a]=ta(e,lk.variantKeys),{ref:c,as:d,id:h,className:m,classNames:g,label:b,valueLabel:x,value:E=void 0,minValue:P=0,maxValue:_=100,strokeWidth:T,showValueLabel:R=!1,formatOptions:M={style:"percent"},...j}=s,H=d||"div",L=Qi(c),Z=pn(g?.base,m),[,ne]=_6({rerender:!0,delay:100}),ae=((t=e.isIndeterminate)!=null?t:!0)&&E===void 0,O=(r=(n=e.disableAnimation)!=null?n:i?.disableAnimation)!=null?r:!1,{progressBarProps:U,labelProps:X}=I6({id:h,label:b,value:E,minValue:P,maxValue:_,valueLabel:x,formatOptions:M,isIndeterminate:ae,"aria-labelledby":e["aria-labelledby"],"aria-label":e["aria-label"]}),re=S.useMemo(()=>lk({...a,disableAnimation:O,isIndeterminate:ae}),[el(a),O,ae]),G=O?!0:ne,fe=16,J=T||(e.size==="sm"?2:3),q=16-J,K=2*q*Math.PI,se=S.useMemo(()=>G?ae?.25:E?QR((E-P)/(_-P),1):0:0,[G,E,P,_,ae]),A=K-se*K,B=S.useCallback((we={})=>({ref:L,"data-indeterminate":Me(ae),"data-disabled":Me(e.isDisabled),className:re.base({class:Z}),...hn(U,j,we)}),[L,re,ae,e.isDisabled,Z,U,j]),oe=S.useCallback((we={})=>({className:re.label({class:g?.label}),...hn(X,we)}),[re,g,X]),z=S.useCallback((we={})=>({viewBox:"0 0 32 32",fill:"none",strokeWidth:J,className:re.svg({class:g?.svg}),...we}),[J,re,g]),me=S.useCallback((we={})=>({cx:fe,cy:fe,r:q,role:"presentation",strokeDasharray:`${K} ${K}`,strokeDashoffset:A,transform:"rotate(-90 16 16)",strokeLinecap:"round",className:re.indicator({class:g?.indicator}),...we}),[re,g,A,K,q]),Ee=S.useCallback((we={})=>({cx:fe,cy:fe,r:q,role:"presentation",strokeDasharray:`${K} ${K}`,strokeDashoffset:0,transform:"rotate(-90 16 16)",strokeLinecap:"round",className:re.track({class:g?.track}),...we}),[re,g,K,q]);return{Component:H,domRef:L,slots:re,classNames:g,label:b,showValueLabel:R,getProgressBarProps:B,getLabelProps:oe,getSvgProps:z,getIndicatorProps:me,getTrackProps:Ee}}var B_=_i((e,t)=>{const{Component:n,slots:r,classNames:i,label:s,showValueLabel:a,getProgressBarProps:c,getLabelProps:d,getSvgProps:h,getIndicatorProps:m,getTrackProps:g}=$6({ref:t,...e}),b=c();return N.jsxs(n,{...b,children:[N.jsxs("div",{className:r.svgWrapper({class:i?.svgWrapper}),children:[N.jsxs("svg",{...h(),children:[N.jsx("circle",{...g()}),N.jsx("circle",{...m()})]}),a&&N.jsx("span",{className:r.value({class:i?.value}),children:b["aria-valuetext"]})]}),s&&N.jsx("span",{...d(),children:s})]})});B_.displayName="HeroUI.CircularProgress";var A6=B_;function R6(e,t){let{inputElementType:n="input",isDisabled:r=!1,isRequired:i=!1,isReadOnly:s=!1,type:a="text",validationBehavior:c="aria"}=e,[d,h]=$f(e.value,e.defaultValue||"",e.onChange),{focusableProps:m}=mv(e,t),g=a6({...e,value:d}),{isInvalid:b,validationErrors:x,validationDetails:E}=g.displayValidation,{labelProps:P,fieldProps:_,descriptionProps:T,errorMessageProps:R}=m6({...e,isInvalid:b,errorMessage:e.errorMessage||x}),M=If(e,{labelable:!0});const j={type:a,pattern:e.pattern};return tM(t,d,h),f6(e,g,t),S.useEffect(()=>{if(t.current instanceof Ji(t.current).HTMLTextAreaElement){let H=t.current;Object.defineProperty(H,"defaultValue",{get:()=>H.value,set:()=>{},configurable:!0})}},[t]),{labelProps:P,inputProps:lr(M,n==="input"?j:void 0,{disabled:r,readOnly:s,required:i&&c==="native","aria-required":i&&c==="aria"||void 0,"aria-invalid":b||void 0,"aria-errormessage":e["aria-errormessage"],"aria-activedescendant":e["aria-activedescendant"],"aria-autocomplete":e["aria-autocomplete"],"aria-haspopup":e["aria-haspopup"],"aria-controls":e["aria-controls"],value:d,onChange:H=>h(H.target.value),autoComplete:e.autoComplete,autoCapitalize:e.autoCapitalize,maxLength:e.maxLength,minLength:e.minLength,name:e.name,placeholder:e.placeholder,inputMode:e.inputMode,autoCorrect:e.autoCorrect,spellCheck:e.spellCheck,[parseInt(We.version,10)>=17?"enterKeyHint":"enterkeyhint"]:e.enterKeyHint,onCopy:e.onCopy,onCut:e.onCut,onPaste:e.onPaste,onCompositionEnd:e.onCompositionEnd,onCompositionStart:e.onCompositionStart,onCompositionUpdate:e.onCompositionUpdate,onSelect:e.onSelect,onBeforeInput:e.onBeforeInput,onInput:e.onInput,...m,..._}),descriptionProps:T,errorMessageProps:R,isInvalid:b,validationErrors:x,validationDetails:E}}function L6(e){var t,n,r,i,s,a,c;const d=Ti(),{validationBehavior:h}=F_(_b)||{},[m,g]=ta(e,ck.variantKeys),{ref:b,as:x,type:E,label:P,baseRef:_,wrapperRef:T,description:R,className:M,classNames:j,autoFocus:H,startContent:L,endContent:Z,onClear:ne,onChange:ae,validationState:O,validationBehavior:U=(t=h??d?.validationBehavior)!=null?t:"native",innerWrapperRef:X,onValueChange:re=()=>{},...G}=m,fe=S.useCallback(Ye=>{re(Ye??"")},[re]),[J,q]=S.useState(!1),K=x||"div",se=(r=(n=e.disableAnimation)!=null?n:d?.disableAnimation)!=null?r:!1,A=Qi(b),B=Qi(_),oe=Qi(T),z=Qi(X),[me,Ee]=$f(m.value,(i=m.defaultValue)!=null?i:"",fe),we=E==="file",je=((c=(a=(s=A?.current)==null?void 0:s.files)==null?void 0:a.length)!=null?c:0)>0,Oe=["date","time","month","week","range"].includes(E),Te=!WR(me)||Oe||je,tt=Te||J,yt=E==="hidden",Ie=e.isMultiline,Rt=pn(j?.base,M,Te?"is-filled":""),bt=S.useCallback(()=>{var Ye;we?A.current.value="":Ee(""),ne?.(),(Ye=A.current)==null||Ye.focus()},[Ee,ne,we]);vv(()=>{A.current&&Ee(A.current.value)},[A.current]);const{labelProps:Xt,inputProps:Ue,isInvalid:st,validationErrors:An,validationDetails:Nr,descriptionProps:Sn,errorMessageProps:Lt}=R6({...e,validationBehavior:U,autoCapitalize:e.autoCapitalize,value:me,"aria-label":e.label?e["aria-label"]:GR(e["aria-label"],e.placeholder),inputElementType:Ie?"textarea":"input",onChange:Ee},A);we&&(delete Ue.value,delete Ue.onChange);const{isFocusVisible:zt,isFocused:ar,focusProps:no}=rh({autoFocus:H,isTextInput:!0}),{isHovered:Yn,hoverProps:pe}=Cf({isDisabled:!!e?.isDisabled}),{isHovered:ke,hoverProps:Be}=Cf({isDisabled:!!e?.isDisabled}),{focusProps:rt,isFocusVisible:ct}=rh(),{focusWithinProps:Qt}=gv({onFocusWithinChange:q}),{pressProps:ur}=pv({isDisabled:!!e?.isDisabled||!!e?.isReadOnly,onPress:bt}),en=O==="invalid"||st,ln=o5({labelPlacement:e.labelPlacement,label:P}),wr=typeof m.errorMessage=="function"?m.errorMessage({isInvalid:en,validationErrors:An,validationDetails:Nr}):m.errorMessage||An?.join(" "),Mt=!!ne||e.isClearable,Xn=!!P||!!R||!!wr,tn=!!m.placeholder,il=!!P,ps=!!R||!!wr,si=ln==="outside-left",li=ln==="outside-top",ia=ln==="outside"||si||li,Pu=ln==="inside",hs=A.current?(!A.current.value||A.current.value===""||!me||me==="")&&tn:!1,Fr=!!L,oa=ia?si||li||tn||ln==="outside"&&Fr:!1,sa=ln==="outside"&&!tn&&!Fr,Ht=S.useMemo(()=>ck({...g,isInvalid:en,labelPlacement:ln,isClearable:Mt,disableAnimation:se}),[el(g),en,ln,Mt,Fr,se]),ms=S.useCallback((Ye={})=>({ref:B,className:Ht.base({class:Rt}),"data-slot":"base","data-filled":Me(Te||tn||Fr||hs||we),"data-filled-within":Me(tt||tn||Fr||hs||we),"data-focus-within":Me(J),"data-focus-visible":Me(zt),"data-readonly":Me(e.isReadOnly),"data-focus":Me(ar),"data-hover":Me(Yn||ke),"data-required":Me(e.isRequired),"data-invalid":Me(en),"data-disabled":Me(e.isDisabled),"data-has-elements":Me(Xn),"data-has-helper":Me(ps),"data-has-label":Me(il),"data-has-value":Me(!hs),"data-hidden":Me(yt),...Qt,...Ye}),[Ht,Rt,Te,ar,Yn,ke,en,ps,il,Xn,hs,Fr,J,zt,tt,tn,Qt,yt,e.isReadOnly,e.isRequired,e.isDisabled]),gs=S.useCallback((Ye={})=>({"data-slot":"label",className:Ht.label({class:j?.label}),...hn(Xt,Be,Ye)}),[Ht,ke,Xt,j?.label]),Ro=S.useCallback(Ye=>{Ye.key==="Escape"&&me&&(Mt||ne)&&!e.isReadOnly&&(Ee(""),ne?.())},[me,Ee,ne,Mt,e.isReadOnly]),la=S.useCallback((Ye={})=>({"data-slot":"input","data-filled":Me(Te),"data-filled-within":Me(tt),"data-has-start-content":Me(Fr),"data-has-end-content":Me(!!Z),"data-type":E,className:Ht.input({class:pn(j?.input,Te?"is-filled":"",Ie?"pe-0":"",E==="password"?"[&::-ms-reveal]:hidden":"")}),...hn(no,Ue,vf(G,{enabled:!0,labelable:!0,omitEventNames:new Set(Object.keys(Ue))}),Ye),"aria-readonly":Me(e.isReadOnly),onChange:gf(Ue.onChange,ae),onKeyDown:gf(Ue.onKeyDown,Ye.onKeyDown,Ro),ref:A}),[Ht,me,no,Ue,G,Te,tt,Fr,Z,j?.input,e.isReadOnly,e.isRequired,ae,Ro]),vs=S.useCallback((Ye={})=>({ref:oe,"data-slot":"input-wrapper","data-hover":Me(Yn||ke),"data-focus-visible":Me(zt),"data-focus":Me(ar),className:Ht.inputWrapper({class:pn(j?.inputWrapper,Te?"is-filled":"")}),...hn(Ye,pe),onClick:ro=>{A.current&&ro.currentTarget===ro.target&&A.current.focus()},style:{cursor:"text",...Ye.style}}),[Ht,Yn,ke,zt,ar,me,j?.inputWrapper]),ol=S.useCallback((Ye={})=>({...Ye,ref:z,"data-slot":"inner-wrapper",onClick:ro=>{A.current&&ro.currentTarget===ro.target&&A.current.focus()},className:Ht.innerWrapper({class:pn(j?.innerWrapper,Ye?.className)})}),[Ht,j?.innerWrapper]),sl=S.useCallback((Ye={})=>({...Ye,"data-slot":"main-wrapper",className:Ht.mainWrapper({class:pn(j?.mainWrapper,Ye?.className)})}),[Ht,j?.mainWrapper]),aa=S.useCallback((Ye={})=>({...Ye,"data-slot":"helper-wrapper",className:Ht.helperWrapper({class:pn(j?.helperWrapper,Ye?.className)})}),[Ht,j?.helperWrapper]),jf=S.useCallback((Ye={})=>({...Ye,...Sn,"data-slot":"description",className:Ht.description({class:pn(j?.description,Ye?.className)})}),[Ht,j?.description]),Bf=S.useCallback((Ye={})=>({...Ye,...Lt,"data-slot":"error-message",className:Ht.errorMessage({class:pn(j?.errorMessage,Ye?.className)})}),[Ht,Lt,j?.errorMessage]),Vf=S.useCallback((Ye={})=>({...Ye,type:"button",tabIndex:-1,disabled:e.isDisabled,"aria-label":"clear input","data-slot":"clear-button","data-focus-visible":Me(ct),className:Ht.clearButton({class:pn(j?.clearButton,Ye?.className)}),...hn(ur,rt)}),[Ht,ct,ur,rt,j?.clearButton]);return{Component:K,classNames:j,domRef:A,label:P,description:R,startContent:L,endContent:Z,labelPlacement:ln,isClearable:Mt,hasHelper:ps,hasStartContent:Fr,isLabelOutside:oa,isOutsideLeft:si,isOutsideTop:li,isLabelOutsideAsPlaceholder:sa,shouldLabelBeOutside:ia,shouldLabelBeInside:Pu,hasPlaceholder:tn,isInvalid:en,errorMessage:wr,getBaseProps:ms,getLabelProps:gs,getInputProps:la,getMainWrapperProps:sl,getInputWrapperProps:vs,getInnerWrapperProps:ol,getHelperWrapperProps:aa,getDescriptionProps:jf,getErrorMessageProps:Bf,getClearButtonProps:Vf}}function Ib(){return Ib=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{Component:d,label:h,description:m,startContent:g,endContent:b,hasHelper:x,shouldLabelBeOutside:E,shouldLabelBeInside:P,isInvalid:_,errorMessage:T,getBaseProps:R,getLabelProps:M,getInputProps:j,getInnerWrapperProps:H,getInputWrapperProps:L,getHelperWrapperProps:Z,getDescriptionProps:ne,getErrorMessageProps:ae,isClearable:O,getClearButtonProps:U}=L6({...a,ref:c,isMultiline:!0}),[X,re]=S.useState(t>1),[G,fe]=S.useState(!1),J=h?N.jsx("label",{...M(),children:h}):null,q=j(),K=(me,Ee)=>{if(t===1&&re(me>=Ee.rowHeight*2),n>t){const we=me>=n*Ee.rowHeight;fe(we)}s?.(me,Ee)},se=i?N.jsx("textarea",{...q,style:hn(q.style,e??{})}):N.jsx(X6,{...q,cacheMeasurements:r,"data-hide-scroll":Me(!G),maxRows:n,minRows:t,style:hn(q.style,e??{}),onHeightChange:K}),A=S.useMemo(()=>O?N.jsx("button",{...U(),children:N.jsx(AO,{})}):null,[O,U]),B=S.useMemo(()=>g||b?N.jsxs("div",{...H(),children:[g,se,b]}):N.jsx("div",{...H(),children:se}),[g,q,b,H]),oe=_&&T,z=oe||m;return N.jsxs(d,{...R(),children:[E?J:null,N.jsxs("div",{...L(),"data-has-multiple-rows":Me(X),children:[P?J:null,B,A]}),x&&z?N.jsx("div",{...Z(),children:oe?N.jsx("div",{...ae(),children:T}):N.jsx("div",{...ne(),children:m})}):null]})});V_.displayName="HeroUI.Textarea";var Q6=V_;function J6(e,t){let{role:n="dialog"}=e,r=j0();r=e["aria-label"]?void 0:r;let i=S.useRef(!1);return S.useEffect(()=>{if(t.current&&!t.current.contains(document.activeElement)){bu(t.current);let s=setTimeout(()=>{document.activeElement===t.current&&(i.current=!0,t.current&&(t.current.blur(),bu(t.current)),i.current=!1)},500);return()=>{clearTimeout(s)}}},[t]),l_(),{dialogProps:{...If(e,{labelable:!0}),role:n,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||r,onBlur:s=>{i.current&&s.stopPropagation()}},titleProps:{id:r}}}function Z6(e){var t,n;const r=Ti(),[i,s]=ta(e,dk.variantKeys),{ref:a,as:c,src:d,className:h,classNames:m,loading:g,isBlurred:b,fallbackSrc:x,isLoading:E,disableSkeleton:P=!!x,removeWrapper:_=!1,onError:T,onLoad:R,srcSet:M,sizes:j,crossOrigin:H,...L}=i,Z=e6({src:d,loading:g,onError:T,onLoad:R,ignoreFallback:!1,srcSet:M,sizes:j,crossOrigin:H,shouldBypassImageLoad:c!==void 0}),ne=(n=(t=e.disableAnimation)!=null?t:r?.disableAnimation)!=null?n:!1,ae=Z==="loaded"&&!E,O=Z==="loading"||E,U=e.isZoomed,X=c||"img",re=Qi(a),{w:G,h:fe}=S.useMemo(()=>({w:i.width?typeof i.width=="number"?`${i.width}px`:i.width:"fit-content",h:i.height?typeof i.height=="number"?`${i.height}px`:i.height:"auto"}),[i?.width,i?.height]),J=(!d||!ae)&&!!x,q=O&&!P,K=S.useMemo(()=>dk({...s,disableAnimation:ne,showSkeleton:q}),[el(s),ne,q]),se=pn(h,m?.img),A=(z={})=>{const me=pn(se,z?.className);return{src:d,ref:re,"data-loaded":Me(ae),className:K.img({class:me}),loading:g,srcSet:M,sizes:j,crossOrigin:H,...L,style:{...L?.height&&{height:fe},...z.style,...L.style}}},B=S.useCallback(()=>{const z=J?{backgroundImage:`url(${x})`}:{};return{className:K.wrapper({class:m?.wrapper}),style:{...z,maxWidth:G}}},[K,J,x,m?.wrapper,G]),oe=S.useCallback(()=>({src:d,"aria-hidden":Me(!0),className:K.blurredImg({class:m?.blurredImg})}),[K,d,m?.blurredImg]);return{Component:X,domRef:re,slots:K,classNames:m,isBlurred:b,disableSkeleton:P,fallbackSrc:x,removeWrapper:_,isZoomed:U,isLoading:O,getImgProps:A,getWrapperProps:B,getBlurredImgProps:oe}}var U_=_i((e,t)=>{const{Component:n,domRef:r,slots:i,classNames:s,isBlurred:a,isZoomed:c,fallbackSrc:d,removeWrapper:h,disableSkeleton:m,getImgProps:g,getWrapperProps:b,getBlurredImgProps:x}=Z6({...e,ref:t}),E=N.jsx(n,{ref:r,...g()});if(h)return E;const P=N.jsx("div",{className:i.zoomedWrapper({class:s?.zoomedWrapper}),children:E});return a?N.jsxs("div",{...b(),children:[c?P:E,S.cloneElement(E,x())]}):c||!m||d?N.jsxs("div",{...b(),children:[" ",c?P:E]}):E});U_.displayName="HeroUI.Image";var p0=U_,[ez,K_]=nx({name:"ModalContext",errorMessage:"useModalContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),W_=_i((e,t)=>{const{as:n,children:r,className:i,...s}=e,{slots:a,classNames:c,bodyId:d,setBodyMounted:h}=K_(),m=Qi(t),g=n||"div";return S.useEffect(()=>(h(!0),()=>h(!1)),[h]),N.jsx(g,{ref:m,className:a.body({class:pn(c?.body,i)}),id:d,...s,children:r})});W_.displayName="HeroUI.ModalBody";var tz=W_,nz={enter:{scale:"var(--scale-enter)",y:"var(--slide-enter)",opacity:1,willChange:"auto",transition:{scale:{duration:.4,ease:Op.ease},opacity:{duration:.4,ease:Op.ease},y:{type:"spring",bounce:0,duration:.6}}},exit:{scale:"var(--scale-exit)",y:"var(--slide-exit)",opacity:0,willChange:"transform",transition:{duration:.3,ease:Op.ease}}},ss=typeof document<"u"&&window.visualViewport,rz=We.createContext(!1);function iz(){return!1}function oz(){return!0}function sz(e){return()=>{}}function lz(){return typeof We.useSyncExternalStore=="function"?We.useSyncExternalStore(sz,iz,oz):S.useContext(rz)}function az(){let e=lz(),[t,n]=S.useState(()=>e?{width:0,height:0}:Lk());return S.useEffect(()=>{let r=()=>{n(i=>{let s=Lk();return s.width===i.width&&s.height===i.height?i:s})};return ss?ss.addEventListener("resize",r):window.addEventListener("resize",r),()=>{ss?ss.removeEventListener("resize",r):window.removeEventListener("resize",r)}},[]),t}function Lk(){return{width:ss&&ss?.width||window.innerWidth,height:ss&&ss?.height||window.innerHeight}}var Mk=()=>$o(()=>import("./index-pa97nhJc.js"),[]).then(e=>e.default),H_=e=>{const{as:t,children:n,role:r="dialog",...i}=e,{Component:s,domRef:a,slots:c,classNames:d,motionProps:h,backdrop:m,closeButton:g,hideCloseButton:b,disableAnimation:x,getDialogProps:E,getBackdropProps:P,getCloseButtonProps:_,onClose:T}=K_(),R=t||s||"div",M=az(),{dialogProps:j}=J6({role:r},a),H=S.isValidElement(g)?S.cloneElement(g,_()):N.jsx("button",{..._(),children:N.jsx(RO,{})}),L=S.useCallback(X=>{X.key==="Tab"&&X.nativeEvent.isComposing&&(X.stopPropagation(),X.preventDefault())},[]),Z=E(hn(j,i)),ne=N.jsxs(R,{...Z,onKeyDown:gf(Z.onKeyDown,L),children:[N.jsx(JS,{onDismiss:T}),!b&&H,typeof n=="function"?n(T):n,N.jsx(JS,{onDismiss:T})]}),ae=S.useMemo(()=>m==="transparent"?null:x?N.jsx("div",{...P()}):N.jsx(Sf,{features:Mk,children:N.jsx(kf.div,{animate:"enter",exit:"exit",initial:"exit",variants:Wg.fade,...P()})}),[m,x,P]),O={"--visual-viewport-height":M.height+"px"},U=x?N.jsx("div",{className:c.wrapper({class:d?.wrapper}),"data-slot":"wrapper",style:O,children:ne}):N.jsx(Sf,{features:Mk,children:N.jsx(kf.div,{animate:"enter",className:c.wrapper({class:d?.wrapper}),"data-slot":"wrapper",exit:"exit",initial:"exit",variants:nz,...h,style:O,children:ne})});return N.jsxs("div",{tabIndex:-1,children:[ae,U]})};H_.displayName="HeroUI.ModalContent";var uz=H_;function cz(e={shouldBlockScroll:!0},t,n){let{overlayProps:r,underlayProps:i}=z_({...e,isOpen:t.isOpen,onClose:t.close},n);return WF({isDisabled:!t.isOpen||!e.shouldBlockScroll}),l_(),S.useEffect(()=>{if(t.isOpen&&n.current)return n5([n.current])},[t.isOpen,n]),{modalProps:lr(r),underlayProps:i}}function fz(e){var t,n,r;const i=Ti(),[s,a]=ta(e,fk.variantKeys),{ref:c,as:d,className:h,classNames:m,isOpen:g,defaultOpen:b,onOpenChange:x,motionProps:E,closeButton:P,isDismissable:_=!0,hideCloseButton:T=!1,shouldBlockScroll:R=!0,portalContainer:M,isKeyboardDismissDisabled:j=!1,onClose:H,...L}=s,Z=d||"section",ne=Qi(c),ae=S.useRef(null),[O,U]=S.useState(!1),[X,re]=S.useState(!1),G=(n=(t=e.disableAnimation)!=null?t:i?.disableAnimation)!=null?n:!1,fe=S.useId(),J=S.useId(),q=S.useId(),K=O_({isOpen:g,defaultOpen:b,onOpenChange:Te=>{x?.(Te),Te||H?.()}}),{modalProps:se,underlayProps:A}=cz({isDismissable:_,shouldBlockScroll:R,isKeyboardDismissDisabled:j},K,ne),{buttonProps:B}=I_({onPress:K.close},ae),{isFocusVisible:oe,focusProps:z}=rh(),me=pn(m?.base,h),Ee=S.useMemo(()=>fk({...a,disableAnimation:G}),[el(a),G]),we=(Te={},tt=null)=>{var yt;return{ref:lE(tt,ne),...hn(se,L,Te),className:Ee.base({class:pn(me,Te.className)}),id:fe,"data-open":Me(K.isOpen),"data-dismissable":Me(_),"aria-modal":Me(!0),"data-placement":(yt=e?.placement)!=null?yt:"right","aria-labelledby":O?J:void 0,"aria-describedby":X?q:void 0}},je=S.useCallback((Te={})=>({className:Ee.backdrop({class:m?.backdrop}),...A,...Te}),[Ee,m,A]),Oe=()=>({role:"button",tabIndex:0,"aria-label":"Close","data-focus-visible":Me(oe),className:Ee.closeButton({class:m?.closeButton}),...hn(B,z)});return{Component:Z,slots:Ee,domRef:ne,headerId:J,bodyId:q,motionProps:E,classNames:m,isDismissable:_,closeButton:P,hideCloseButton:T,portalContainer:M,shouldBlockScroll:R,backdrop:(r=e.backdrop)!=null?r:"opaque",isOpen:K.isOpen,onClose:K.close,disableAnimation:G,setBodyMounted:re,setHeaderMounted:U,getDialogProps:we,getBackdropProps:je,getCloseButtonProps:Oe}}var G_=_i((e,t)=>{const{children:n,...r}=e,i=fz({...r,ref:t}),s=N.jsx(r5,{portalContainer:i.portalContainer,children:n});return N.jsx(ez,{value:i,children:i.disableAnimation&&i.isOpen?s:N.jsx(Lf,{children:i.isOpen?s:null})})});G_.displayName="HeroUI.Modal";var dz=G_;function pz(e={}){const{id:t,defaultOpen:n,isOpen:r,onClose:i,onOpen:s,onChange:a=()=>{}}=e,c=Pk(s),d=Pk(i),[h,m]=$f(r,n||!1,a),g=S.useId(),b=t||g,x=r!==void 0,E=S.useCallback(()=>{x||m(!1),d?.()},[x,d]),P=S.useCallback(()=>{x||m(!0),c?.()},[x,c]),_=S.useCallback(()=>{(h?E:P)()},[h,P,E]);return{isOpen:!!h,onOpen:P,onClose:E,onOpenChange:_,isControlled:x,getButtonProps:(T={})=>({...T,"aria-expanded":h,"aria-controls":b,onClick:bf(T.onClick,_)}),getDisclosureProps:(T={})=>({...T,hidden:!h,id:b})}}function hz(e){var t,n;const r=Ti(),[i,s]=ta(e,uk.variantKeys),{as:a,children:c,isLoaded:d=!1,className:h,classNames:m,...g}=i,b=a||"div",x=(n=(t=e.disableAnimation)!=null?t:r?.disableAnimation)!=null?n:!1,E=S.useMemo(()=>uk({...s,disableAnimation:x}),[el(s),x,c]),P=pn(m?.base,h);return{Component:b,children:c,slots:E,classNames:m,getSkeletonProps:(R={})=>({"data-loaded":Me(d),className:E.base({class:pn(P,R?.className)}),...g}),getContentProps:(R={})=>({className:E.content({class:pn(m?.content,R?.className)})})}}var q_=_i((e,t)=>{const{Component:n,children:r,getSkeletonProps:i,getContentProps:s}=hz({...e});return N.jsx(n,{ref:t,...i(),children:N.jsx("div",{...s(),children:r})})});q_.displayName="HeroUI.Skeleton";var mz=q_;function gz(e={}){const{domRef:t,isEnabled:n=!0,overflowCheck:r="vertical",visibility:i="auto",offset:s=0,onVisibilityChange:a,updateDeps:c=[]}=e,d=S.useRef(i);S.useEffect(()=>{const h=t?.current;if(!h||!n)return;const m=(x,E,P,_,T)=>{if(i==="auto"){const R=`${_}${qR(T)}Scroll`;E&&P?(h.dataset[R]="true",h.removeAttribute(`data-${_}-scroll`),h.removeAttribute(`data-${T}-scroll`)):(h.dataset[`${_}Scroll`]=E.toString(),h.dataset[`${T}Scroll`]=P.toString(),h.removeAttribute(`data-${_}-${T}-scroll`))}else{const R=E&&P?"both":E?_:P?T:"none";R!==d.current&&(a?.(R),d.current=R)}},g=()=>{var x,E;const P=[{type:"vertical",prefix:"top",suffix:"bottom"},{type:"horizontal",prefix:"left",suffix:"right"}],_=h.querySelector('ul[data-slot="list"]'),T=+((x=_?.getAttribute("data-virtual-scroll-height"))!=null?x:h.scrollHeight),R=+((E=_?.getAttribute("data-virtual-scroll-top"))!=null?E:h.scrollTop);for(const{type:M,prefix:j,suffix:H}of P)if(r===M||r==="both"){const L=M==="vertical"?R>s:h.scrollLeft>s,Z=M==="vertical"?R+h.clientHeight+s{["top","bottom","top-bottom","left","right","left-right"].forEach(x=>{h.removeAttribute(`data-${x}-scroll`)})};return g(),h.addEventListener("scroll",g,!0),i!=="auto"&&(b(),i==="both"?(h.dataset.topBottomScroll=String(r==="vertical"),h.dataset.leftRightScroll=String(r==="horizontal")):(h.dataset.topBottomScroll="false",h.dataset.leftRightScroll="false",["top","bottom","left","right"].forEach(x=>{h.dataset[`${x}Scroll`]=String(i===x)}))),()=>{h.removeEventListener("scroll",g,!0),b()}},[...c,n,i,r,a,t])}function vz(e){var t;const[n,r]=ta(e,ak.variantKeys),{ref:i,as:s,children:a,className:c,style:d,size:h=40,offset:m=0,visibility:g="auto",isEnabled:b=!0,onVisibilityChange:x,...E}=n,P=s||"div",_=Qi(i);gz({domRef:_,offset:m,visibility:g,isEnabled:b,onVisibilityChange:x,updateDeps:[a],overflowCheck:(t=e.orientation)!=null?t:"vertical"});const T=S.useMemo(()=>ak({...r,className:c}),[el(r),c]);return{Component:P,styles:T,domRef:_,children:a,getBaseProps:(M={})=>{var j;return{ref:_,className:T,"data-orientation":(j=e.orientation)!=null?j:"vertical",style:{"--scroll-shadow-size":`${h}px`,...d,...M.style},...E,...M}}}}var Y_=_i((e,t)=>{const{Component:n,children:r,getBaseProps:i}=vz({...e,ref:t});return N.jsx(n,{...i(),children:r})});Y_.displayName="HeroUI.ScrollShadow";var X_=Y_,Eo=(e=>(e.LIGHT="light",e.DARK="dark",e))(Eo||{});const Q_=S.createContext(null);function yz(){return window.matchMedia("(prefers-color-scheme: dark)").matches?Eo.DARK:Eo.LIGHT}function Dk(){const e=window.localStorage.getItem("theme");return e===Eo.DARK||e===Eo.LIGHT?e:yz()}function bz(e){return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}const xz=({children:e})=>{const t=S.useSyncExternalStore(bz,Dk,Dk);S.useEffect(()=>{document.documentElement.classList.toggle("dark",t===Eo.DARK)},[t]);const n=S.useCallback(i=>{window.localStorage.setItem("theme",i),window.dispatchEvent(new Event("storage"))},[]),r=S.useMemo(()=>({theme:t,setTheme:n}),[t,n]);return N.jsx(Q_.Provider,{value:r,children:e})},Si={Text:"text",Reference:"reference",StateUpdate:"state_update",MessageId:"message_id",ConversationId:"conversation_id",LiveUpdate:"live_update",FollowupMessages:"followup_messages",Image:"image"},aG={Like:"like",Dislike:"dislike"},wz={Start:"START"},pf={User:"user",Assistant:"assistant"};class J_{constructor(t={}){if(this.baseUrl=t.baseUrl??"",this.baseUrl.endsWith("/")&&(this.baseUrl=this.baseUrl.slice(0,-1)),!!this.baseUrl)try{new URL(this.baseUrl)}catch{throw new Error(`Invalid base URL: ${this.baseUrl}. Please provide a valid URL.`)}}getBaseUrl(){return this.baseUrl}_buildApiUrl(t){return`${this.baseUrl}${t}`}async _makeRequest(t,n={}){const i=await fetch(t,{...{headers:{"Content-Type":"application/json"}},...n});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return i}async makeRequest(t,n){const{method:r="GET",body:i,headers:s={},...a}=n||{},c={method:r,headers:s,...a};return i&&r!=="GET"&&(c.body=typeof i=="string"?i:JSON.stringify(i)),(await this._makeRequest(this._buildApiUrl(t.toString()),c)).json()}makeStreamRequest(t,n,r,i,s){let a=!1;const c=async h=>{const m=h.body?.pipeThrough(new TextDecoderStream).getReader();if(!m)throw new Error("Response body is null");for(;!a&&!i?.aborted;)try{const{value:g,done:b}=await m.read();if(b){r.onClose?.();break}const x=g.split(` +`);for(const E of x)if(E.startsWith("data: "))try{const P=E.replace("data: ","").trim(),_=JSON.parse(P);await r.onMessage(_)}catch(P){console.error("Error parsing JSON:",P),await r.onError(new Error("Error processing server response"))}}catch(g){if(i?.aborted)return;console.error("Stream error:",g),await r.onError(new Error("Error reading stream"));break}},d=async()=>{try{const h=await fetch(this._buildApiUrl(t.toString()),{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream",...s},body:JSON.stringify(n),signal:i});if(!h.ok)throw new Error(`HTTP error! status: ${h.status}`);await c(h)}catch(h){if(i?.aborted)return;console.error("Request error:",h);const m=h instanceof Error?h.message:"Error connecting to server";await r.onError(new Error(m))}};try{d()}catch(h){const m=h instanceof Error?h.message:"Failed to start stream";r.onError(new Error(m))}return()=>{a=!0}}}const Z_=S.createContext(null);function Sz({children:e,...t}){const n=S.useMemo(()=>new J_(t),[t]),r=S.useMemo(()=>({client:n}),[n]);return N.jsx(Z_.Provider,{value:r,children:e})}function kz(){const e=S.useContext(Z_);if(!e)throw new Error("useRagbitsContext must be used within a RagbitsProvider");return e}function Cz(e,t){const{client:n}=kz(),[r,i]=S.useState(null),[s,a]=S.useState(null),[c,d]=S.useState(!1),h=S.useRef(null),m=S.useCallback(()=>{if(!h.current)return null;h.current.abort(),h.current=null,d(!1)},[]),g=S.useCallback(async(x={})=>{h.current&&c&&h.current.abort();const E=new AbortController;h.current=E,d(!0),a(null);try{const _={...{...t,...x,headers:{...t?.headers,...x.headers}},signal:E.signal},T=await n.makeRequest(e,_);return E.signal.aborted||(i(T),h.current=null),T}catch(P){if(!E.signal.aborted){const _=P instanceof Error?P:new Error("API call failed");throw a(_),h.current=null,_}throw P}finally{E.signal.aborted||d(!1)}},[n,e,t,c]),b=S.useCallback(()=>{m(),i(null),a(null),d(!1)},[m]);return{data:r,error:s,isLoading:c,call:g,reset:b,abort:m}}const e2=Object.freeze({left:0,top:0,width:16,height:16}),Hg=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Xx=Object.freeze({...e2,...Hg}),$b=Object.freeze({...Xx,body:"",hidden:!1});function Ez(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const r=((e.rotate||0)+(t.rotate||0))%4;return r&&(n.rotate=r),n}function Nk(e,t){const n=Ez(e,t);for(const r in $b)r in Hg?r in e&&!(r in n)&&(n[r]=Hg[r]):r in t?n[r]=t[r]:r in e&&(n[r]=e[r]);return n}function Pz(e,t){const n=e.icons,r=e.aliases||Object.create(null),i=Object.create(null);function s(a){if(n[a])return i[a]=[];if(!(a in i)){i[a]=null;const c=r[a]&&r[a].parent,d=c&&s(c);d&&(i[a]=[c].concat(d))}return i[a]}return Object.keys(n).concat(Object.keys(r)).forEach(s),i}function Tz(e,t,n){const r=e.icons,i=e.aliases||Object.create(null);let s={};function a(c){s=Nk(r[c]||i[c],s)}return a(t),n.forEach(a),Nk(e,s)}function t2(e,t){const n=[];if(typeof e!="object"||typeof e.icons!="object")return n;e.not_found instanceof Array&&e.not_found.forEach(i=>{t(i,null),n.push(i)});const r=Pz(e);for(const i in r){const s=r[i];s&&(t(i,Tz(e,i,s)),n.push(i))}return n}const _z={provider:"",aliases:{},not_found:{},...e2};function h0(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function n2(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!h0(e,_z))return null;const n=t.icons;for(const i in n){const s=n[i];if(!i||typeof s.body!="string"||!h0(s,$b))return null}const r=t.aliases||Object.create(null);for(const i in r){const s=r[i],a=s.parent;if(!i||typeof a!="string"||!n[a]&&!r[a]||!h0(s,$b))return null}return t}const r2=/^[a-z0-9]+(-[a-z0-9]+)*$/,yv=(e,t,n,r="")=>{const i=e.split(":");if(e.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;r=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){const c=i.pop(),d=i.pop(),h={provider:i.length>0?i[0]:r,prefix:d,name:c};return t&&!_g(h)?null:h}const s=i[0],a=s.split("-");if(a.length>1){const c={provider:r,prefix:a.shift(),name:a.join("-")};return t&&!_g(c)?null:c}if(n&&r===""){const c={provider:r,prefix:"",name:s};return t&&!_g(c,n)?null:c}return null},_g=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1,Fk=Object.create(null);function Iz(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function Ef(e,t){const n=Fk[e]||(Fk[e]=Object.create(null));return n[t]||(n[t]=Iz(e,t))}function i2(e,t){return n2(t)?t2(t,(n,r)=>{r?e.icons[n]=r:e.missing.add(n)}):[]}function $z(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}let oh=!1;function o2(e){return typeof e=="boolean"&&(oh=e),oh}function Ok(e){const t=typeof e=="string"?yv(e,!0,oh):e;if(t){const n=Ef(t.provider,t.prefix),r=t.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function Az(e,t){const n=yv(e,!0,oh);if(!n)return!1;const r=Ef(n.provider,n.prefix);return t?$z(r,n.name,t):(r.missing.add(n.name),!0)}function Rz(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),oh&&!t&&!e.prefix){let i=!1;return n2(e)&&(e.prefix="",t2(e,(s,a)=>{Az(s,a)&&(i=!0)})),i}const n=e.prefix;if(!_g({prefix:n,name:"a"}))return!1;const r=Ef(t,n);return!!i2(r,e)}const s2=Object.freeze({width:null,height:null}),l2=Object.freeze({...s2,...Hg}),Lz=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Mz=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function zk(e,t,n){if(t===1)return e;if(n=n||100,typeof e=="number")return Math.ceil(e*t*n)/n;if(typeof e!="string")return e;const r=e.split(Lz);if(r===null||!r.length)return e;const i=[];let s=r.shift(),a=Mz.test(s);for(;;){if(a){const c=parseFloat(s);isNaN(c)?i.push(s):i.push(Math.ceil(c*t*n)/n)}else i.push(s);if(s=r.shift(),s===void 0)return i.join("");a=!a}}function Dz(e,t="defs"){let n="";const r=e.indexOf("<"+t);for(;r>=0;){const i=e.indexOf(">",r),s=e.indexOf("",s);if(a===-1)break;n+=e.slice(i+1,s).trim(),e=e.slice(0,r).trim()+e.slice(a+1)}return{defs:n,content:e}}function Nz(e,t){return e?""+e+""+t:t}function Fz(e,t,n){const r=Dz(e);return Nz(r.defs,t+r.content+n)}const Oz=e=>e==="unset"||e==="undefined"||e==="none";function zz(e,t){const n={...Xx,...e},r={...l2,...t},i={left:n.left,top:n.top,width:n.width,height:n.height};let s=n.body;[n,r].forEach(P=>{const _=[],T=P.hFlip,R=P.vFlip;let M=P.rotate;T?R?M+=2:(_.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),_.push("scale(-1 1)"),i.top=i.left=0):R&&(_.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),_.push("scale(1 -1)"),i.top=i.left=0);let j;switch(M<0&&(M-=Math.floor(M/4)*4),M=M%4,M){case 1:j=i.height/2+i.top,_.unshift("rotate(90 "+j.toString()+" "+j.toString()+")");break;case 2:_.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:j=i.width/2+i.left,_.unshift("rotate(-90 "+j.toString()+" "+j.toString()+")");break}M%2===1&&(i.left!==i.top&&(j=i.left,i.left=i.top,i.top=j),i.width!==i.height&&(j=i.width,i.width=i.height,i.height=j)),_.length&&(s=Fz(s,'',""))});const a=r.width,c=r.height,d=i.width,h=i.height;let m,g;a===null?(g=c===null?"1em":c==="auto"?h:c,m=zk(g,d/h)):(m=a==="auto"?d:a,g=c===null?zk(m,h/d):c==="auto"?h:c);const b={},x=(P,_)=>{Oz(_)||(b[P]=_.toString())};x("width",m),x("height",g);const E=[i.left,i.top,d,h];return b.viewBox=E.join(" "),{attributes:b,viewBox:E,body:s}}const jz=/\sid="(\S+)"/g,Bz="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Vz=0;function Uz(e,t=Bz){const n=[];let r;for(;r=jz.exec(e);)n.push(r[1]);if(!n.length)return e;const i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(s=>{const a=typeof t=="function"?t(s):t+(Vz++).toString(),c=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+c+')([")]|\\.[a-z])',"g"),"$1"+a+i+"$3")}),e=e.replace(new RegExp(i,"g"),""),e}const Ab=Object.create(null);function Kz(e,t){Ab[e]=t}function Rb(e){return Ab[e]||Ab[""]}function Qx(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const Jx=Object.create(null),yp=["https://api.simplesvg.com","https://api.unisvg.com"],Ig=[];for(;yp.length>0;)yp.length===1||Math.random()>.5?Ig.push(yp.shift()):Ig.push(yp.pop());Jx[""]=Qx({resources:["https://api.iconify.design"].concat(Ig)});function Wz(e,t){const n=Qx(t);return n===null?!1:(Jx[e]=n,!0)}function Zx(e){return Jx[e]}const Hz=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let jk=Hz();function Gz(e,t){const n=Zx(e);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let i=0;n.resources.forEach(a=>{i=Math.max(i,a.length)});const s=t+".json?icons=";r=n.maxURL-i-n.path.length-s.length}return r}function qz(e){return e===404}const Yz=(e,t,n)=>{const r=[],i=Gz(e,t),s="icons";let a={type:s,provider:e,prefix:t,icons:[]},c=0;return n.forEach((d,h)=>{c+=d.length+1,c>=i&&h>0&&(r.push(a),a={type:s,provider:e,prefix:t,icons:[]},c=d.length),a.icons.push(d)}),r.push(a),r};function Xz(e){if(typeof e=="string"){const t=Zx(e);if(t)return t.path}return"/"}const Qz=(e,t,n)=>{if(!jk){n("abort",424);return}let r=Xz(t.provider);switch(t.type){case"icons":{const s=t.prefix,c=t.icons.join(","),d=new URLSearchParams({icons:c});r+=s+".json?"+d.toString();break}case"custom":{const s=t.uri;r+=s.slice(0,1)==="/"?s.slice(1):s;break}default:n("abort",400);return}let i=503;jk(e+r).then(s=>{const a=s.status;if(a!==200){setTimeout(()=>{n(qz(a)?"abort":"next",a)});return}return i=501,s.json()}).then(s=>{if(typeof s!="object"||s===null){setTimeout(()=>{s===404?n("abort",s):n("next",i)});return}setTimeout(()=>{n("success",s)})}).catch(()=>{n("next",i)})},Jz={prepare:Yz,send:Qz};function Zz(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((i,s)=>i.provider!==s.provider?i.provider.localeCompare(s.provider):i.prefix!==s.prefix?i.prefix.localeCompare(s.prefix):i.name.localeCompare(s.name));let r={provider:"",prefix:"",name:""};return e.forEach(i=>{if(r.name===i.name&&r.prefix===i.prefix&&r.provider===i.provider)return;r=i;const s=i.provider,a=i.prefix,c=i.name,d=n[s]||(n[s]=Object.create(null)),h=d[a]||(d[a]=Ef(s,a));let m;c in h.icons?m=t.loaded:a===""||h.missing.has(c)?m=t.missing:m=t.pending;const g={provider:s,prefix:a,name:c};m.push(g)}),t}function a2(e,t){e.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(i=>i.id!==t))})}function e8(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const r=e.provider,i=e.prefix;t.forEach(s=>{const a=s.icons,c=a.pending.length;a.pending=a.pending.filter(d=>{if(d.prefix!==i)return!0;const h=d.name;if(e.icons[h])a.loaded.push({provider:r,prefix:i,name:h});else if(e.missing.has(h))a.missing.push({provider:r,prefix:i,name:h});else return n=!0,!0;return!1}),a.pending.length!==c&&(n||a2([e],s.id),s.callback(a.loaded.slice(0),a.missing.slice(0),a.pending.slice(0),s.abort))})}))}let t8=0;function n8(e,t,n){const r=t8++,i=a2.bind(null,n,r);if(!t.pending.length)return i;const s={id:r,icons:t,callback:e,abort:i};return n.forEach(a=>{(a.loaderCallbacks||(a.loaderCallbacks=[])).push(s)}),i}function r8(e,t=!0,n=!1){const r=[];return e.forEach(i=>{const s=typeof i=="string"?yv(i,t,n):i;s&&r.push(s)}),r}var i8={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function o8(e,t,n,r){const i=e.resources.length,s=e.random?Math.floor(Math.random()*i):e.index;let a;if(e.random){let L=e.resources.slice(0);for(a=[];L.length>1;){const Z=Math.floor(Math.random()*L.length);a.push(L[Z]),L=L.slice(0,Z).concat(L.slice(Z+1))}a=a.concat(L)}else a=e.resources.slice(s).concat(e.resources.slice(0,s));const c=Date.now();let d="pending",h=0,m,g=null,b=[],x=[];typeof r=="function"&&x.push(r);function E(){g&&(clearTimeout(g),g=null)}function P(){d==="pending"&&(d="aborted"),E(),b.forEach(L=>{L.status==="pending"&&(L.status="aborted")}),b=[]}function _(L,Z){Z&&(x=[]),typeof L=="function"&&x.push(L)}function T(){return{startTime:c,payload:t,status:d,queriesSent:h,queriesPending:b.length,subscribe:_,abort:P}}function R(){d="failed",x.forEach(L=>{L(void 0,m)})}function M(){b.forEach(L=>{L.status==="pending"&&(L.status="aborted")}),b=[]}function j(L,Z,ne){const ae=Z!=="success";switch(b=b.filter(O=>O!==L),d){case"pending":break;case"failed":if(ae||!e.dataAfterTimeout)return;break;default:return}if(Z==="abort"){m=ne,R();return}if(ae){m=ne,b.length||(a.length?H():R());return}if(E(),M(),!e.random){const O=e.resources.indexOf(L.resource);O!==-1&&O!==e.index&&(e.index=O)}d="completed",x.forEach(O=>{O(ne)})}function H(){if(d!=="pending")return;E();const L=a.shift();if(L===void 0){if(b.length){g=setTimeout(()=>{E(),d==="pending"&&(M(),R())},e.timeout);return}R();return}const Z={status:"pending",resource:L,callback:(ne,ae)=>{j(Z,ne,ae)}};b.push(Z),h++,g=setTimeout(H,e.rotate),n(L,t,Z.callback)}return setTimeout(H),T}function u2(e){const t={...i8,...e};let n=[];function r(){n=n.filter(c=>c().status==="pending")}function i(c,d,h){const m=o8(t,c,d,(g,b)=>{r(),h&&h(g,b)});return n.push(m),m}function s(c){return n.find(d=>c(d))||null}return{query:i,find:s,setIndex:c=>{t.index=c},getIndex:()=>t.index,cleanup:r}}function Bk(){}const m0=Object.create(null);function s8(e){if(!m0[e]){const t=Zx(e);if(!t)return;const n=u2(t),r={config:t,redundancy:n};m0[e]=r}return m0[e]}function l8(e,t,n){let r,i;if(typeof e=="string"){const s=Rb(e);if(!s)return n(void 0,424),Bk;i=s.send;const a=s8(e);a&&(r=a.redundancy)}else{const s=Qx(e);if(s){r=u2(s);const a=e.resources?e.resources[0]:"",c=Rb(a);c&&(i=c.send)}}return!r||!i?(n(void 0,424),Bk):r.query(t,i,n)().abort}function Vk(){}function a8(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,e8(e)}))}function u8(e){const t=[],n=[];return e.forEach(r=>{(r.match(r2)?t:n).push(r)}),{valid:t,invalid:n}}function bp(e,t,n){function r(){const i=e.pendingIcons;t.forEach(s=>{i&&i.delete(s),e.icons[s]||e.missing.add(s)})}if(n&&typeof n=="object")try{if(!i2(e,n).length){r();return}}catch(i){console.error(i)}r(),a8(e)}function Uk(e,t){e instanceof Promise?e.then(n=>{t(n)}).catch(()=>{t(null)}):t(e)}function c8(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:n,prefix:r}=e,i=e.iconsToLoad;if(delete e.iconsToLoad,!i||!i.length)return;const s=e.loadIcon;if(e.loadIcons&&(i.length>1||!s)){Uk(e.loadIcons(i,r,n),m=>{bp(e,i,m)});return}if(s){i.forEach(m=>{const g=s(m,r,n);Uk(g,b=>{const x=b?{prefix:r,icons:{[m]:b}}:null;bp(e,[m],x)})});return}const{valid:a,invalid:c}=u8(i);if(c.length&&bp(e,c,null),!a.length)return;const d=r.match(r2)?Rb(n):null;if(!d){bp(e,a,null);return}d.prepare(n,r,a).forEach(m=>{l8(n,m,g=>{bp(e,m.icons,g)})})}))}const c2=(e,t)=>{const n=r8(e,!0,o2()),r=Zz(n);if(!r.pending.length){let d=!0;return t&&setTimeout(()=>{d&&t(r.loaded,r.missing,r.pending,Vk)}),()=>{d=!1}}const i=Object.create(null),s=[];let a,c;return r.pending.forEach(d=>{const{provider:h,prefix:m}=d;if(m===c&&h===a)return;a=h,c=m,s.push(Ef(h,m));const g=i[h]||(i[h]=Object.create(null));g[m]||(g[m]=[])}),r.pending.forEach(d=>{const{provider:h,prefix:m,name:g}=d,b=Ef(h,m),x=b.pendingIcons||(b.pendingIcons=new Set);x.has(g)||(x.add(g),i[h][m].push(g))}),s.forEach(d=>{const h=i[d.provider][d.prefix];h.length&&c8(d,h)}),t?n8(t,r,s):Vk};function f8(e,t){const n={...e};for(const r in t){const i=t[r],s=typeof i;r in s2?(i===null||i&&(s==="string"||s==="number"))&&(n[r]=i):s===typeof n[r]&&(n[r]=r==="rotate"?i%4:i)}return n}const d8=/[\s,]+/;function p8(e,t){t.split(d8).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function h8(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function r(i){for(;i<0;)i+=4;return i%4}if(n===""){const i=parseInt(e);return isNaN(i)?0:r(i)}else if(n!==e){let i=0;switch(n){case"%":i=25;break;case"deg":i=90}if(i){let s=parseFloat(e.slice(0,e.length-n.length));return isNaN(s)?0:(s=s/i,s%1===0?r(s):0)}}return t}function m8(e,t){let n=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in t)n+=" "+r+'="'+t[r]+'"';return'"+e+""}function g8(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function v8(e){return"data:image/svg+xml,"+g8(e)}function y8(e){return'url("'+v8(e)+'")'}let zp;function b8(){try{zp=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{zp=null}}function x8(e){return zp===void 0&&b8(),zp?zp.createHTML(e):e}const f2={...l2,inline:!1},w8={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},S8={display:"inline-block"},Lb={backgroundColor:"currentColor"},d2={backgroundColor:"transparent"},Kk={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Wk={WebkitMask:Lb,mask:Lb,background:d2};for(const e in Wk){const t=Wk[e];for(const n in Kk)t[e+n]=Kk[n]}const k8={...f2,inline:!0};function Hk(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const C8=(e,t,n)=>{const r=t.inline?k8:f2,i=f8(r,t),s=t.mode||"svg",a={},c=t.style||{},d={...s==="svg"?w8:{}};if(n){const _=yv(n,!1,!0);if(_){const T=["iconify"],R=["provider","prefix"];for(const M of R)_[M]&&T.push("iconify--"+_[M]);d.className=T.join(" ")}}for(let _ in t){const T=t[_];if(T!==void 0)switch(_){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":break;case"_ref":d.ref=T;break;case"className":d[_]=(d[_]?d[_]+" ":"")+T;break;case"inline":case"hFlip":case"vFlip":i[_]=T===!0||T==="true"||T===1;break;case"flip":typeof T=="string"&&p8(i,T);break;case"color":a.color=T;break;case"rotate":typeof T=="string"?i[_]=h8(T):typeof T=="number"&&(i[_]=T);break;case"ariaHidden":case"aria-hidden":T!==!0&&T!=="true"&&delete d["aria-hidden"];break;default:r[_]===void 0&&(d[_]=T)}}const h=zz(e,i),m=h.attributes;if(i.inline&&(a.verticalAlign="-0.125em"),s==="svg"){d.style={...a,...c},Object.assign(d,m);let _=0,T=t.id;return typeof T=="string"&&(T=T.replace(/-/g,"_")),d.dangerouslySetInnerHTML={__html:x8(Uz(h.body,T?()=>T+"ID"+_++:"iconifyReact"))},S.createElement("svg",d)}const{body:g,width:b,height:x}=e,E=s==="mask"||(s==="bg"?!1:g.indexOf("currentColor")!==-1),P=m8(g,{...m,width:b+"",height:x+""});return d.style={...a,"--svg":y8(P),width:Hk(m.width),height:Hk(m.height),...S8,...E?Lb:d2,...c},S.createElement("span",d)};o2(!0);Kz("",Jz);if(typeof document<"u"&&typeof window<"u"){const e=window;if(e.IconifyPreload!==void 0){const t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof t=="object"&&t!==null&&(t instanceof Array?t:[t]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!Rz(r))&&console.error(n)}catch{console.error(n)}})}if(e.IconifyProviders!==void 0){const t=e.IconifyProviders;if(typeof t=="object"&&t!==null)for(let n in t){const r="IconifyProviders["+n+"] is invalid.";try{const i=t[n];if(typeof i!="object"||!i||i.resources===void 0)continue;Wz(n,i)||console.error(r)}catch{console.error(r)}}}}function p2(e){const[t,n]=S.useState(!!e.ssr),[r,i]=S.useState({});function s(x){if(x){const E=e.icon;if(typeof E=="object")return{name:"",data:E};const P=Ok(E);if(P)return{name:E,data:P}}return{name:""}}const[a,c]=S.useState(s(!!e.ssr));function d(){const x=r.callback;x&&(x(),i({}))}function h(x){if(JSON.stringify(a)!==JSON.stringify(x))return d(),c(x),!0}function m(){var x;const E=e.icon;if(typeof E=="object"){h({name:"",data:E});return}const P=Ok(E);if(h({name:E,data:P}))if(P===void 0){const _=c2([E],m);i({callback:_})}else P&&((x=e.onLoad)===null||x===void 0||x.call(e,E))}S.useEffect(()=>(n(!0),d),[]),S.useEffect(()=>{t&&m()},[e.icon,t]);const{name:g,data:b}=a;return b?C8({...Xx,...b},e,g):e.children?e.children:e.fallback?e.fallback:S.createElement("span",{})}const ki=S.forwardRef((e,t)=>p2({...e,_ref:t}));S.forwardRef((e,t)=>p2({inline:!0,...e,_ref:t}));var $p={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */var E8=$p.exports,Gk;function P8(){return Gk||(Gk=1,function(e,t){(function(){var n,r="4.17.21",i=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",c="Invalid `variable` option passed into `_.template`",d="__lodash_hash_undefined__",h=500,m="__lodash_placeholder__",g=1,b=2,x=4,E=1,P=2,_=1,T=2,R=4,M=8,j=16,H=32,L=64,Z=128,ne=256,ae=512,O=30,U="...",X=800,re=16,G=1,fe=2,J=3,q=1/0,K=9007199254740991,se=17976931348623157e292,A=NaN,B=4294967295,oe=B-1,z=B>>>1,me=[["ary",Z],["bind",_],["bindKey",T],["curry",M],["curryRight",j],["flip",ae],["partial",H],["partialRight",L],["rearg",ne]],Ee="[object Arguments]",we="[object Array]",je="[object AsyncFunction]",Oe="[object Boolean]",Te="[object Date]",tt="[object DOMException]",yt="[object Error]",Ie="[object Function]",Rt="[object GeneratorFunction]",bt="[object Map]",Xt="[object Number]",Ue="[object Null]",st="[object Object]",An="[object Promise]",Nr="[object Proxy]",Sn="[object RegExp]",Lt="[object Set]",zt="[object String]",ar="[object Symbol]",no="[object Undefined]",Yn="[object WeakMap]",pe="[object WeakSet]",ke="[object ArrayBuffer]",Be="[object DataView]",rt="[object Float32Array]",ct="[object Float64Array]",Qt="[object Int8Array]",ur="[object Int16Array]",en="[object Int32Array]",ln="[object Uint8Array]",wr="[object Uint8ClampedArray]",Mt="[object Uint16Array]",Xn="[object Uint32Array]",tn=/\b__p \+= '';/g,il=/\b(__p \+=) '' \+/g,ps=/(__e\(.*?\)|\b__t\)) \+\n'';/g,si=/&(?:amp|lt|gt|quot|#39);/g,li=/[&<>"']/g,ia=RegExp(si.source),Pu=RegExp(li.source),hs=/<%-([\s\S]+?)%>/g,Fr=/<%([\s\S]+?)%>/g,oa=/<%=([\s\S]+?)%>/g,sa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ht=/^\w*$/,ms=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,gs=/[\\^$.*+?()[\]{}|]/g,Ro=RegExp(gs.source),la=/^\s+/,vs=/\s/,ol=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,sl=/\{\n\/\* \[wrapped with (.+)\] \*/,aa=/,? & /,jf=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Bf=/[()=,{}\[\]\/\s]/,Vf=/\\(\\)?/g,Ye=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ro=/\w*$/,Ch=/^[-+]0x[0-9a-f]+$/i,Lv=/^0b[01]+$/i,Eh=/^\[object .+?Constructor\]$/,Ph=/^0o[0-7]+$/i,Th=/^(?:0|[1-9]\d*)$/,_h=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Tu=/($^)/,Mv=/['\n\r\u2028\u2029\\]/g,jt="\\ud800-\\udfff",Dv="\\u0300-\\u036f",Uf="\\ufe20-\\ufe2f",Ih="\\u20d0-\\u20ff",ua=Dv+Uf+Ih,$h="\\u2700-\\u27bf",Kf="a-z\\xdf-\\xf6\\xf8-\\xff",_u="\\xac\\xb1\\xd7\\xf7",Ii="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Nv="\\u2000-\\u206f",ai=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ah="A-Z\\xc0-\\xd6\\xd8-\\xde",Rh="\\ufe0e\\ufe0f",Lh=_u+Ii+Nv+ai,ll="['’]",Iu="["+jt+"]",al="["+Lh+"]",ys="["+ua+"]",Mh="\\d+",Fv="["+$h+"]",$u="["+Kf+"]",Wf="[^"+jt+Lh+Mh+$h+Kf+Ah+"]",ca="\\ud83c[\\udffb-\\udfff]",fa="(?:"+ys+"|"+ca+")",Dh="[^"+jt+"]",da="(?:\\ud83c[\\udde6-\\uddff]){2}",Ct="[\\ud800-\\udbff][\\udc00-\\udfff]",bs="["+Ah+"]",Hf="\\u200d",Au="(?:"+$u+"|"+Wf+")",Nh="(?:"+bs+"|"+Wf+")",Gf="(?:"+ll+"(?:d|ll|m|re|s|t|ve))?",qf="(?:"+ll+"(?:D|LL|M|RE|S|T|VE))?",Ru=fa+"?",pa="["+Rh+"]?",Lo="(?:"+Hf+"(?:"+[Dh,da,Ct].join("|")+")"+pa+Ru+")*",Mo="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Do="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",ul=pa+Ru+Lo,ha="(?:"+[Fv,da,Ct].join("|")+")"+ul,No="(?:"+[Dh+ys+"?",ys,da,Ct,Iu].join("|")+")",Ov=RegExp(ll,"g"),Fh=RegExp(ys,"g"),xs=RegExp(ca+"(?="+ca+")|"+No+ul,"g"),zv=RegExp([bs+"?"+$u+"+"+Gf+"(?="+[al,bs,"$"].join("|")+")",Nh+"+"+qf+"(?="+[al,bs+Au,"$"].join("|")+")",bs+"?"+Au+"+"+Gf,bs+"+"+qf,Do,Mo,Mh,ha].join("|"),"g"),Oh=RegExp("["+Hf+jt+ua+Rh+"]"),Lu=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,zh=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],jv=-1,Pt={};Pt[rt]=Pt[ct]=Pt[Qt]=Pt[ur]=Pt[en]=Pt[ln]=Pt[wr]=Pt[Mt]=Pt[Xn]=!0,Pt[Ee]=Pt[we]=Pt[ke]=Pt[Oe]=Pt[Be]=Pt[Te]=Pt[yt]=Pt[Ie]=Pt[bt]=Pt[Xt]=Pt[st]=Pt[Sn]=Pt[Lt]=Pt[zt]=Pt[Yn]=!1;var Et={};Et[Ee]=Et[we]=Et[ke]=Et[Be]=Et[Oe]=Et[Te]=Et[rt]=Et[ct]=Et[Qt]=Et[ur]=Et[en]=Et[bt]=Et[Xt]=Et[st]=Et[Sn]=Et[Lt]=Et[zt]=Et[ar]=Et[ln]=Et[wr]=Et[Mt]=Et[Xn]=!0,Et[yt]=Et[Ie]=Et[Yn]=!1;var cl={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Mu={"&":"&","<":"<",">":">",'"':""","'":"'"},Bv={"&":"&","<":"<",">":">",""":'"',"'":"'"},Vv={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Yf=parseFloat,Du=parseInt,Nu=typeof Jm=="object"&&Jm&&Jm.Object===Object&&Jm,jh=typeof self=="object"&&self&&self.Object===Object&&self,Bt=Nu||jh||Function("return this")(),ma=t&&!t.nodeType&&t,$i=ma&&!0&&e&&!e.nodeType&&e,Xf=$i&&$i.exports===ma,fl=Xf&&Nu.process,Qn=function(){try{var te=$i&&$i.require&&$i.require("util").types;return te||fl&&fl.binding&&fl.binding("util")}catch{}}(),Qf=Qn&&Qn.isArrayBuffer,cr=Qn&&Qn.isDate,ws=Qn&&Qn.isMap,Fu=Qn&&Qn.isRegExp,dl=Qn&&Qn.isSet,Bh=Qn&&Qn.isTypedArray;function Jn(te,he,ce){switch(ce.length){case 0:return te.call(he);case 1:return te.call(he,ce[0]);case 2:return te.call(he,ce[0],ce[1]);case 3:return te.call(he,ce[0],ce[1],ce[2])}return te.apply(he,ce)}function Jf(te,he,ce,$e){for(var nt=-1,xt=te==null?0:te.length;++nt-1}function ed(te,he,ce){for(var $e=-1,nt=te==null?0:te.length;++$e-1;);return ce}function ld(te,he){for(var ce=te.length;ce--&&pl(he,te[ce],0)>-1;);return ce}function Yh(te,he){for(var ce=te.length,$e=0;ce--;)te[ce]===he&&++$e;return $e}var Xh=Bu(cl),Qh=Bu(Mu);function Jh(te){return"\\"+Vv[te]}function hl(te,he){return te==null?n:te[he]}function ml(te){return Oh.test(te)}function qv(te){return Lu.test(te)}function Yv(te){for(var he,ce=[];!(he=te.next()).done;)ce.push(he.value);return ce}function Vu(te){var he=-1,ce=Array(te.size);return te.forEach(function($e,nt){ce[++he]=[nt,$e]}),ce}function ad(te,he){return function(ce){return te(he(ce))}}function Or(te,he){for(var ce=-1,$e=te.length,nt=0,xt=[];++ce<$e;){var an=te[ce];(an===he||an===m)&&(te[ce]=m,xt[nt++]=ce)}return xt}function zo(te){var he=-1,ce=Array(te.size);return te.forEach(function($e){ce[++he]=$e}),ce}function Xv(te){var he=-1,ce=Array(te.size);return te.forEach(function($e){ce[++he]=[$e,$e]}),ce}function Uu(te,he,ce){for(var $e=ce-1,nt=te.length;++$e-1}function um(u,f){var y=this.__data__,C=Un(y,u);return C<0?(++this.size,y.push([u,f])):y[C][1]=f,this}Zn.prototype.clear=Pl,Zn.prototype.delete=pr,Zn.prototype.get=nc,Zn.prototype.has=am,Zn.prototype.set=um;function jr(u){var f=-1,y=u==null?0:u.length;for(this.clear();++f=f?u:f)),u}function hr(u,f,y,C,I,F){var W,Q=f&g,ie=f&b,ge=f&x;if(y&&(W=I?y(u,C,I,F):y(u)),W!==n)return W;if(!on(u))return u;var ve=ot(u);if(ve){if(W=Ka(u),!Q)return er(u,W)}else{var xe=Mn(u),_e=xe==Ie||xe==Rt;if(Ul(u))return $d(u,Q);if(xe==st||xe==Ee||_e&&!I){if(W=ie||_e?{}:Dn(u),!Q)return ie?ry(u,ci(W,u)):bc(u,Ft(W,u))}else{if(!Et[xe])return I?u:{};W=iy(u,xe,Q)}}F||(F=new Vn);var Ve=F.get(u);if(Ve)return Ve;F.set(u,W),Lw(u)?u.forEach(function(Je){W.add(hr(Je,f,y,Je,u,F))}):Aw(u)&&u.forEach(function(Je,pt){W.set(pt,hr(Je,f,y,pt,u,F))});var Qe=ge?ie?Ba:ja:ie?Qr:Hn,ft=ve?n:Qe(u);return On(ft||u,function(Je,pt){ft&&(pt=Je,Je=u[pt]),Is(W,pt,hr(Je,f,y,pt,u,F))}),W}function pm(u){var f=Hn(u);return function(y){return _a(y,u,f)}}function _a(u,f,y){var C=y.length;if(u==null)return!C;for(u=Tt(u);C--;){var I=y[C],F=f[I],W=u[I];if(W===n&&!(I in u)||!F(W))return!1}return!0}function gd(u,f,y){if(typeof u!="function")throw new zr(a);return jl(function(){u.apply(n,y)},f)}function Fi(u,f,y,C){var I=-1,F=zu,W=!0,Q=u.length,ie=[],ge=f.length;if(!Q)return ie;y&&(f=It(f,Sr(y))),C?(F=ed,W=!1):f.length>=i&&(F=io,W=!1,f=new Ps(f));e:for(;++II?0:I+y),C=C===n||C>I?I:at(C),C<0&&(C+=I),C=y>C?0:Dw(C);y0&&y(Q)?f>1?Jt(Q,f-1,y,C,I):Oo(I,Q):C||(I[I.length]=Q)}return I}var lc=wc(),$a=wc(!0);function Pr(u,f){return u&&lc(u,f,Hn)}function Ho(u,f){return u&&$a(u,f,Hn)}function _l(u,f){return Fo(f,function(y){return Us(u[y])})}function co(u,f){f=Bi(f,u);for(var y=0,C=f.length;u!=null&&yf}function Ur(u,f){return u!=null&&wt.call(u,f)}function As(u,f){return u!=null&&f in Tt(u)}function yd(u,f,y){return u>=zn(f,y)&&u=120&&ve.length>=120)?new Ps(W&&ve):n}ve=u[0];var xe=-1,_e=Q[0];e:for(;++xe-1;)Q!==u&&Yu.call(Q,ie,1),Yu.call(u,ie,1);return u}function mn(u,f){for(var y=u?f.length:0,C=y-1;y--;){var I=f[y];if(y==C||I!==F){var F=I;Ut(I)?Yu.call(u,I,1):gc(u,I)}}return u}function Al(u,f){return u+jo(ka()*(f-u+1))}function Ma(u,f,y,C){for(var I=-1,F=un(Cs((f-u)/(y||1)),0),W=ce(F);F--;)W[C?F:++I]=u,u+=y;return W}function Ls(u,f){var y="";if(!u||f<1||f>K)return y;do f%2&&(y+=u),f=jo(f/2),f&&(u+=u);while(f);return y}function lt(u,f){return Tr($c(u,f,Jr),u+"")}function Kn(u){return Di(Yc(u))}function Cd(u,f){var y=Yc(u);return Ac(y,uo(f,0,y.length))}function Ms(u,f,y,C){if(!on(u))return u;f=Bi(f,u);for(var I=-1,F=f.length,W=F-1,Q=u;Q!=null&&++II?0:I+f),y=y>I?I:y,y<0&&(y+=I),I=f>y?0:y-f>>>0,f>>>=0;for(var F=ce(I);++C>>1,W=u[F];W!==null&&!yi(W)&&(y?W<=f:W=i){var ge=f?null:Pm(u);if(ge)return zo(ge);W=!1,I=io,ie=new Ps}else ie=f?[]:Q;e:for(;++C=C?u:Wn(u,f,y)}var Id=om||function(u){return Bt.clearTimeout(u)};function $d(u,f){if(f)return u.slice();var y=u.length,C=cd?cd(y):new u.constructor(y);return u.copy(C),C}function Fa(u){var f=new u.constructor(u.byteLength);return new wa(f).set(new wa(u)),f}function bm(u,f){var y=f?Fa(u.buffer):u.buffer;return new u.constructor(y,u.byteOffset,u.byteLength)}function xm(u){var f=new u.constructor(u.source,ro.exec(u));return f.lastIndex=u.lastIndex,f}function wm(u){return Cr?Tt(Cr.call(u)):{}}function Sm(u,f){var y=f?Fa(u.buffer):u.buffer;return new u.constructor(y,u.byteOffset,u.length)}function Ad(u,f){if(u!==f){var y=u!==n,C=u===null,I=u===u,F=yi(u),W=f!==n,Q=f===null,ie=f===f,ge=yi(f);if(!Q&&!ge&&!F&&u>f||F&&W&&ie&&!Q&&!ge||C&&W&&ie||!y&&ie||!I)return 1;if(!C&&!F&&!ge&&u=Q)return ie;var ge=y[C];return ie*(ge=="desc"?-1:1)}}return u.index-f.index}function km(u,f,y,C){for(var I=-1,F=u.length,W=y.length,Q=-1,ie=f.length,ge=un(F-W,0),ve=ce(ie+ge),xe=!C;++Q1?y[I-1]:n,W=I>2?y[2]:n;for(F=u.length>3&&typeof F=="function"?(I--,F):n,W&&nr(y[0],y[1],W)&&(F=I<3?n:F,I=1),f=Tt(f);++C-1?I[F?f[W]:W]:n}}function kc(u){return Ui(function(f){var y=f.length,C=y,I=jn.prototype.thru;for(u&&f.reverse();C--;){var F=f[C];if(typeof F!="function")throw new zr(a);if(I&&!W&&Ol(F)=="wrapper")var W=new jn([],!0)}for(C=W?C:y;++C1&&vt.reverse(),ve&&ieQ))return!1;var ge=F.get(u),ve=F.get(f);if(ge&&ve)return ge==f&&ve==u;var xe=-1,_e=!0,Ve=y&P?new Ps:n;for(F.set(u,f),F.set(f,u);++xe1?"& ":"")+f[C],f=f.join(y>2?", ":" "),u.replace(ol,`{ +/* [wrapped with `+f+`] */ +`)}function _c(u){return ot(u)||eu(u)||!!(im&&u&&u[im])}function Ut(u,f){var y=typeof u;return f=f??K,!!f&&(y=="number"||y!="symbol"&&Th.test(u))&&u>-1&&u%1==0&&u0){if(++f>=X)return arguments[0]}else f=0;return u.apply(n,arguments)}}function Ac(u,f){var y=-1,C=u.length,I=C-1;for(f=f===n?C:f;++y1?u[f-1]:n;return y=typeof y=="function"?(u.pop(),y):n,qt(u,y)});function jc(u){var f=D(u);return f.__chain__=!0,f}function my(u,f){return f(u),u}function vi(u,f){return f(u)}var Bc=Ui(function(u){var f=u.length,y=f?u[0]:0,C=this.__wrapped__,I=function(F){return sc(F,u)};return f>1||this.__actions__.length||!(C instanceof it)||!Ut(y)?this.thru(I):(C=C.slice(y,+y+(f?1:0)),C.__actions__.push({func:vi,args:[I],thisArg:n}),new jn(C,this.__chain__).thru(function(F){return f&&!F.length&&F.push(n),F}))});function Bs(){return jc(this)}function Vc(){return new jn(this.value(),this.__chain__)}function rp(){this.__values__===n&&(this.__values__=Mw(this.value()));var u=this.__index__>=this.__values__.length,f=u?n:this.__values__[this.__index__++];return{done:u,value:f}}function ip(){return this}function gy(u){for(var f,y=this;y instanceof Li;){var C=Dm(y);C.__index__=0,C.__values__=n,f?I.__wrapped__=C:f=C;var I=C;y=y.__wrapped__}return I.__wrapped__=u,f}function op(){var u=this.__wrapped__;if(u instanceof it){var f=u;return this.__actions__.length&&(f=new it(this)),f=f.reverse(),f.__actions__.push({func:vi,args:[Fc],thisArg:n}),new jn(f,this.__chain__)}return this.thru(Fc)}function vy(){return Ll(this.__wrapped__,this.__actions__)}var Km=xc(function(u,f,y){wt.call(u,y)?++u[y]:Ni(u,y,1)});function Wm(u,f,y){var C=ot(u)?Zf:Ia;return y&&nr(u,f,y)&&(f=n),C(u,Ge(f,3))}function Uc(u,f){var y=ot(u)?Fo:vd;return y(u,Ge(f,3))}var Kc=Ns(Jo),Hm=Ns(qa);function sp(u,f){return Jt(Vs(u,f),1)}function yy(u,f){return Jt(Vs(u,f),q)}function Gm(u,f,y){return y=y===n?1:at(y),Jt(Vs(u,f),y)}function Wc(u,f){var y=ot(u)?On:Oi;return y(u,Ge(f,3))}function Ja(u,f){var y=ot(u)?Ou:hm;return y(u,Ge(f,3))}var lp=xc(function(u,f,y){wt.call(u,y)?u[y].push(f):Ni(u,y,[f])});function Hc(u,f,y,C){u=Xr(u)?u:Yc(u),y=y&&!C?at(y):0;var I=u.length;return y<0&&(y=un(I+y,0)),Xm(u)?y<=I&&u.indexOf(f,y)>-1:!!I&&pl(u,f,y)>-1}var qm=lt(function(u,f,y){var C=-1,I=typeof f=="function",F=Xr(u)?ce(u.length):[];return Oi(u,function(W){F[++C]=I?Jn(f,W,y):Kr(W,f,y)}),F}),by=xc(function(u,f,y){Ni(u,y,f)});function Vs(u,f){var y=ot(u)?It:wd;return y(u,Ge(f,3))}function xy(u,f,y,C){return u==null?[]:(ot(f)||(f=f==null?[]:[f]),y=C?n:y,ot(y)||(y=y==null?[]:[y]),La(u,f,y))}var Za=xc(function(u,f,y){u[y?0:1].push(f)},function(){return[[],[]]});function wy(u,f,y){var C=ot(u)?td:Hh,I=arguments.length<3;return C(u,Ge(f,4),y,I,Oi)}function Gc(u,f,y){var C=ot(u)?Uv:Hh,I=arguments.length<3;return C(u,Ge(f,4),y,I,hm)}function o(u,f){var y=ot(u)?Fo:vd;return y(u,Ce(Ge(f,3)))}function l(u){var f=ot(u)?Di:Kn;return f(u)}function p(u,f,y){(y?nr(u,f,y):f===n)?f=1:f=at(f);var C=ot(u)?_s:Cd;return C(u,f)}function v(u){var f=ot(u)?dm:Hr;return f(u)}function w(u){if(u==null)return 0;if(Xr(u))return Xm(u)?Ss(u):u.length;var f=Mn(u);return f==bt||f==Lt?u.size:ho(u).length}function k(u,f,y){var C=ot(u)?nd:Ed;return y&&nr(u,f,y)&&(f=n),C(u,Ge(f,3))}var $=lt(function(u,f){if(u==null)return[];var y=f.length;return y>1&&nr(u,f[0],f[1])?f=[]:y>2&&nr(f[0],f[1],f[2])&&(f=[f[0]]),La(u,Jt(f,1),[])}),V=Dt||function(){return Bt.Date.now()};function Y(u,f){if(typeof f!="function")throw new zr(a);return u=at(u),function(){if(--u<1)return f.apply(this,arguments)}}function de(u,f,y){return f=y?n:f,f=u&&f==null?u.length:f,Vi(u,Z,n,n,n,n,f)}function be(u,f){var y;if(typeof f!="function")throw new zr(a);return u=at(u),function(){return--u>0&&(y=f.apply(this,arguments)),u<=1&&(f=n),y}}var Se=lt(function(u,f,y){var C=_;if(y.length){var I=Or(y,vo(Se));C|=H}return Vi(u,C,f,y,I)}),ye=lt(function(u,f,y){var C=_|T;if(y.length){var I=Or(y,vo(ye));C|=H}return Vi(f,C,u,y,I)});function Ae(u,f,y){f=y?n:f;var C=Vi(u,M,n,n,n,n,n,f);return C.placeholder=Ae.placeholder,C}function Le(u,f,y){f=y?n:f;var C=Vi(u,j,n,n,n,n,n,f);return C.placeholder=Le.placeholder,C}function De(u,f,y){var C,I,F,W,Q,ie,ge=0,ve=!1,xe=!1,_e=!0;if(typeof u!="function")throw new zr(a);f=Wi(f)||0,on(y)&&(ve=!!y.leading,xe="maxWait"in y,F=xe?un(Wi(y.maxWait)||0,f):F,_e="trailing"in y?!!y.trailing:_e);function Ve(yn){var wo=C,Ws=I;return C=I=n,ge=yn,W=u.apply(Ws,wo),W}function Qe(yn){return ge=yn,Q=jl(pt,f),ve?Ve(yn):W}function ft(yn){var wo=yn-ie,Ws=yn-ge,Gw=f-wo;return xe?zn(Gw,F-Ws):Gw}function Je(yn){var wo=yn-ie,Ws=yn-ge;return ie===n||wo>=f||wo<0||xe&&Ws>=F}function pt(){var yn=V();if(Je(yn))return vt(yn);Q=jl(pt,ft(yn))}function vt(yn){return Q=n,_e&&C?Ve(yn):(C=I=n,W)}function bi(){Q!==n&&Id(Q),ge=0,C=ie=I=Q=n}function Ir(){return Q===n?W:vt(V())}function xi(){var yn=V(),wo=Je(yn);if(C=arguments,I=this,ie=yn,wo){if(Q===n)return Qe(ie);if(xe)return Id(Q),Q=jl(pt,f),Ve(ie)}return Q===n&&(Q=jl(pt,f)),W}return xi.cancel=bi,xi.flush=Ir,xi}var rn=lt(function(u,f){return gd(u,1,f)}),le=lt(function(u,f,y){return gd(u,Wi(f)||0,y)});function ee(u){return Vi(u,ae)}function ue(u,f){if(typeof u!="function"||f!=null&&typeof f!="function")throw new zr(a);var y=function(){var C=arguments,I=f?f.apply(this,C):C[0],F=y.cache;if(F.has(I))return F.get(I);var W=u.apply(this,C);return y.cache=F.set(I,W)||F,W};return y.cache=new(ue.Cache||jr),y}ue.Cache=jr;function Ce(u){if(typeof u!="function")throw new zr(a);return function(){var f=arguments;switch(f.length){case 0:return!u.call(this);case 1:return!u.call(this,f[0]);case 2:return!u.call(this,f[0],f[1]);case 3:return!u.call(this,f[0],f[1],f[2])}return!u.apply(this,f)}}function ze(u){return be(2,u)}var He=ym(function(u,f){f=f.length==1&&ot(f[0])?It(f[0],Sr(Ge())):It(Jt(f,1),Sr(Ge()));var y=f.length;return lt(function(C){for(var I=-1,F=zn(C.length,y);++I=f}),eu=cc(function(){return arguments}())?cc:function(u){return fn(u)&&wt.call(u,"callee")&&!qu.call(u,"callee")},ot=ce.isArray,w$=Qf?Sr(Qf):gm;function Xr(u){return u!=null&&Ym(u.length)&&!Us(u)}function vn(u){return fn(u)&&Xr(u)}function S$(u){return u===!0||u===!1||fn(u)&&Rn(u)==Oe}var Ul=dd||Ly,k$=cr?Sr(cr):po;function C$(u){return fn(u)&&u.nodeType===1&&!ap(u)}function E$(u){if(u==null)return!0;if(Xr(u)&&(ot(u)||typeof u=="string"||typeof u.splice=="function"||Ul(u)||qc(u)||eu(u)))return!u.length;var f=Mn(u);if(f==bt||f==Lt)return!u.size;if(yo(u))return!ho(u).length;for(var y in u)if(wt.call(u,y))return!1;return!0}function P$(u,f){return Wr(u,f)}function T$(u,f,y){y=typeof y=="function"?y:n;var C=y?y(u,f):n;return C===n?Wr(u,f,n,y):!!C}function ky(u){if(!fn(u))return!1;var f=Rn(u);return f==yt||f==tt||typeof u.message=="string"&&typeof u.name=="string"&&!ap(u)}function _$(u){return typeof u=="number"&&bl(u)}function Us(u){if(!on(u))return!1;var f=Rn(u);return f==Ie||f==Rt||f==je||f==Nr}function $w(u){return typeof u=="number"&&u==at(u)}function Ym(u){return typeof u=="number"&&u>-1&&u%1==0&&u<=K}function on(u){var f=typeof u;return u!=null&&(f=="object"||f=="function")}function fn(u){return u!=null&&typeof u=="object"}var Aw=ws?Sr(ws):vm;function I$(u,f){return u===f||Il(u,f,Ua(f))}function $$(u,f,y){return y=typeof y=="function"?y:n,Il(u,f,Ua(f),y)}function A$(u){return Rw(u)&&u!=+u}function R$(u){if(sy(u))throw new nt(s);return bd(u)}function L$(u){return u===null}function M$(u){return u==null}function Rw(u){return typeof u=="number"||fn(u)&&Rn(u)==Xt}function ap(u){if(!fn(u)||Rn(u)!=st)return!1;var f=ui(u);if(f===null)return!0;var y=wt.call(f,"constructor")&&f.constructor;return typeof y=="function"&&y instanceof y&&ya.call(y)==Hu}var Cy=Fu?Sr(Fu):Aa;function D$(u){return $w(u)&&u>=-K&&u<=K}var Lw=dl?Sr(dl):zi;function Xm(u){return typeof u=="string"||!ot(u)&&fn(u)&&Rn(u)==zt}function yi(u){return typeof u=="symbol"||fn(u)&&Rn(u)==ar}var qc=Bh?Sr(Bh):Ra;function N$(u){return u===n}function F$(u){return fn(u)&&Mn(u)==Yn}function O$(u){return fn(u)&&Rn(u)==pe}var z$=Ec(qo),j$=Ec(function(u,f){return u<=f});function Mw(u){if(!u)return[];if(Xr(u))return Xm(u)?kr(u):er(u);if(lo&&u[lo])return Yv(u[lo]());var f=Mn(u),y=f==bt?Vu:f==Lt?zo:Yc;return y(u)}function Ks(u){if(!u)return u===0?u:0;if(u=Wi(u),u===q||u===-q){var f=u<0?-1:1;return f*se}return u===u?u:0}function at(u){var f=Ks(u),y=f%1;return f===f?y?f-y:f:0}function Dw(u){return u?uo(at(u),0,B):0}function Wi(u){if(typeof u=="number")return u;if(yi(u))return A;if(on(u)){var f=typeof u.valueOf=="function"?u.valueOf():u;u=on(f)?f+"":f}if(typeof u!="string")return u===0?u:+u;u=Gh(u);var y=Lv.test(u);return y||Ph.test(u)?Du(u.slice(2),y?2:8):Ch.test(u)?A:+u}function Nw(u){return fi(u,Qr(u))}function B$(u){return u?uo(at(u),-K,K):u===0?u:0}function _t(u){return u==null?"":mr(u)}var V$=Dl(function(u,f){if(yo(f)||Xr(f)){fi(f,Hn(f),u);return}for(var y in f)wt.call(f,y)&&Is(u,y,f[y])}),Fw=Dl(function(u,f){fi(f,Qr(f),u)}),Qm=Dl(function(u,f,y,C){fi(f,Qr(f),u,C)}),U$=Dl(function(u,f,y,C){fi(f,Hn(f),u,C)}),K$=Ui(sc);function W$(u,f){var y=Cl(u);return f==null?y:Ft(y,f)}var H$=lt(function(u,f){u=Tt(u);var y=-1,C=f.length,I=C>2?f[2]:n;for(I&&nr(f[0],f[1],I)&&(C=1);++y1),F}),fi(u,Ba(u),y),C&&(y=hr(y,g|b|x,zd));for(var I=f.length;I--;)gc(y,f[I]);return y});function cA(u,f){return zw(u,Ce(Ge(f)))}var fA=Ui(function(u,f){return u==null?{}:kd(u,f)});function zw(u,f){if(u==null)return{};var y=It(Ba(u),function(C){return[C]});return f=Ge(f),Yo(u,y,function(C,I){return f(C,I[0])})}function dA(u,f,y){f=Bi(f,u);var C=-1,I=f.length;for(I||(I=1,u=n);++Cf){var C=u;u=f,f=C}if(y||u%1||f%1){var I=ka();return zn(u+I*(f-u+Yf("1e-"+((I+"").length-1))),f)}return Al(u,f)}var kA=Ds(function(u,f,y){return f=f.toLowerCase(),u+(y?Vw(f):f)});function Vw(u){return Ty(_t(u).toLowerCase())}function Uw(u){return u=_t(u),u&&u.replace(_h,Xh).replace(Fh,"")}function CA(u,f,y){u=_t(u),f=mr(f);var C=u.length;y=y===n?C:uo(at(y),0,C);var I=y;return y-=f.length,y>=0&&u.slice(y,I)==f}function EA(u){return u=_t(u),u&&Pu.test(u)?u.replace(li,Qh):u}function PA(u){return u=_t(u),u&&Ro.test(u)?u.replace(gs,"\\$&"):u}var TA=Ds(function(u,f,y){return u+(y?"-":"")+f.toLowerCase()}),_A=Ds(function(u,f,y){return u+(y?" ":"")+f.toLowerCase()}),IA=Ld("toLowerCase");function $A(u,f,y){u=_t(u),f=at(f);var C=f?Ss(u):0;if(!f||C>=f)return u;var I=(f-C)/2;return za(jo(I),y)+u+za(Cs(I),y)}function AA(u,f,y){u=_t(u),f=at(f);var C=f?Ss(u):0;return f&&C>>0,y?(u=_t(u),u&&(typeof f=="string"||f!=null&&!Cy(f))&&(f=mr(f),!f&&ml(u))?go(kr(u),0,y):u.split(f,y)):[]}var OA=Ds(function(u,f,y){return u+(y?" ":"")+Ty(f)});function zA(u,f,y){return u=_t(u),y=y==null?0:uo(at(y),0,u.length),f=mr(f),u.slice(y,y+f.length)==f}function jA(u,f,y){var C=D.templateSettings;y&&nr(u,f,y)&&(f=n),u=_t(u),f=Qm({},f,C,Fd);var I=Qm({},f.imports,C.imports,Fd),F=Hn(I),W=ga(I,F),Q,ie,ge=0,ve=f.interpolate||Tu,xe="__p += '",_e=va((f.escape||Tu).source+"|"+ve.source+"|"+(ve===oa?Ye:Tu).source+"|"+(f.evaluate||Tu).source+"|$","g"),Ve="//# sourceURL="+(wt.call(f,"sourceURL")?(f.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++jv+"]")+` +`;u.replace(_e,function(Je,pt,vt,bi,Ir,xi){return vt||(vt=bi),xe+=u.slice(ge,xi).replace(Mv,Jh),pt&&(Q=!0,xe+=`' + +__e(`+pt+`) + +'`),Ir&&(ie=!0,xe+=`'; +`+Ir+`; +__p += '`),vt&&(xe+=`' + +((__t = (`+vt+`)) == null ? '' : __t) + +'`),ge=xi+Je.length,Je}),xe+=`'; +`;var Qe=wt.call(f,"variable")&&f.variable;if(!Qe)xe=`with (obj) { +`+xe+` +} +`;else if(Bf.test(Qe))throw new nt(c);xe=(ie?xe.replace(tn,""):xe).replace(il,"$1").replace(ps,"$1;"),xe="function("+(Qe||"obj")+`) { +`+(Qe?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(Q?", __e = _.escape":"")+(ie?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+xe+`return __p +}`;var ft=Ww(function(){return xt(F,Ve+"return "+xe).apply(n,W)});if(ft.source=xe,ky(ft))throw ft;return ft}function BA(u){return _t(u).toLowerCase()}function VA(u){return _t(u).toUpperCase()}function UA(u,f,y){if(u=_t(u),u&&(y||f===n))return Gh(u);if(!u||!(f=mr(f)))return u;var C=kr(u),I=kr(f),F=qh(C,I),W=ld(C,I)+1;return go(C,F,W).join("")}function KA(u,f,y){if(u=_t(u),u&&(y||f===n))return u.slice(0,Ku(u)+1);if(!u||!(f=mr(f)))return u;var C=kr(u),I=ld(C,kr(f))+1;return go(C,0,I).join("")}function WA(u,f,y){if(u=_t(u),u&&(y||f===n))return u.replace(la,"");if(!u||!(f=mr(f)))return u;var C=kr(u),I=qh(C,kr(f));return go(C,I).join("")}function HA(u,f){var y=O,C=U;if(on(f)){var I="separator"in f?f.separator:I;y="length"in f?at(f.length):y,C="omission"in f?mr(f.omission):C}u=_t(u);var F=u.length;if(ml(u)){var W=kr(u);F=W.length}if(y>=F)return u;var Q=y-Ss(C);if(Q<1)return C;var ie=W?go(W,0,Q).join(""):u.slice(0,Q);if(I===n)return ie+C;if(W&&(Q+=ie.length-Q),Cy(I)){if(u.slice(Q).search(I)){var ge,ve=ie;for(I.global||(I=va(I.source,_t(ro.exec(I))+"g")),I.lastIndex=0;ge=I.exec(ve);)var xe=ge.index;ie=ie.slice(0,xe===n?Q:xe)}}else if(u.indexOf(mr(I),Q)!=Q){var _e=ie.lastIndexOf(I);_e>-1&&(ie=ie.slice(0,_e))}return ie+C}function GA(u){return u=_t(u),u&&ia.test(u)?u.replace(si,Zh):u}var qA=Ds(function(u,f,y){return u+(y?" ":"")+f.toUpperCase()}),Ty=Ld("toUpperCase");function Kw(u,f,y){return u=_t(u),f=y?n:f,f===n?qv(u)?Jv(u):Wv(u):u.match(f)||[]}var Ww=lt(function(u,f){try{return Jn(u,n,f)}catch(y){return ky(y)?y:new nt(y)}}),YA=Ui(function(u,f){return On(f,function(y){y=mi(y),Ni(u,y,Se(u[y],u))}),u});function XA(u){var f=u==null?0:u.length,y=Ge();return u=f?It(u,function(C){if(typeof C[1]!="function")throw new zr(a);return[y(C[0]),C[1]]}):[],lt(function(C){for(var I=-1;++IK)return[];var y=B,C=zn(u,B);f=Ge(f),u-=B;for(var I=sd(C,f);++y0||f<0)?new it(y):(u<0?y=y.takeRight(-u):u&&(y=y.drop(u)),f!==n&&(f=at(f),y=f<0?y.dropRight(-f):y.take(f-u)),y)},it.prototype.takeRightWhile=function(u){return this.reverse().takeWhile(u).reverse()},it.prototype.toArray=function(){return this.take(B)},Pr(it.prototype,function(u,f){var y=/^(?:filter|find|map|reject)|While$/.test(f),C=/^(?:head|last)$/.test(f),I=D[C?"take"+(f=="last"?"Right":""):f],F=C||/^find/.test(f);I&&(D.prototype[f]=function(){var W=this.__wrapped__,Q=C?[1]:arguments,ie=W instanceof it,ge=Q[0],ve=ie||ot(W),xe=function(pt){var vt=I.apply(D,Oo([pt],Q));return C&&_e?vt[0]:vt};ve&&y&&typeof ge=="function"&&ge.length!=1&&(ie=ve=!1);var _e=this.__chain__,Ve=!!this.__actions__.length,Qe=F&&!_e,ft=ie&&!Ve;if(!F&&ve){W=ft?W:new it(this);var Je=u.apply(W,Q);return Je.__actions__.push({func:vi,args:[xe],thisArg:n}),new jn(Je,_e)}return Qe&&ft?u.apply(this,Q):(Je=this.thru(xe),Qe?C?Je.value()[0]:Je.value():Je)})}),On(["pop","push","shift","sort","splice","unshift"],function(u){var f=oo[u],y=/^(?:push|sort|unshift)$/.test(u)?"tap":"thru",C=/^(?:pop|shift)$/.test(u);D.prototype[u]=function(){var I=arguments;if(C&&!this.__chain__){var F=this.value();return f.apply(ot(F)?F:[],I)}return this[y](function(W){return f.apply(ot(W)?W:[],I)})}}),Pr(it.prototype,function(u,f){var y=D[f];if(y){var C=y.name+"";wt.call(Sl,C)||(Sl[C]=[]),Sl[C].push({name:f,func:y})}}),Sl[Fl(n,T).name]=[{name:"wrapper",func:n}],it.prototype.clone=tc,it.prototype.reverse=hd,it.prototype.value=El,D.prototype.at=Bc,D.prototype.chain=Bs,D.prototype.commit=Vc,D.prototype.next=rp,D.prototype.plant=gy,D.prototype.reverse=op,D.prototype.toJSON=D.prototype.valueOf=D.prototype.value=vy,D.prototype.first=D.prototype.head,lo&&(D.prototype[lo]=ip),D},gl=Zv();$i?(($i.exports=gl)._=gl,ma._=gl):Bt._=gl}).call(E8)}($p,$p.exports)),$p.exports}var hf=P8();class T8{plugins={};activePlugins=[];listeners=new Set;register(t){this.plugins[t.name]={isActivated:!1,config:t},this.notify()}activate(t){const n=this.plugins[t];!n||n.isActivated||(n.isActivated=!0,n.config.onActivate&&n.config.onActivate(),this.produceActivePlugins(),this.notify())}deactivate(t){const n=this.plugins[t];!n||!n.isActivated||(n.isActivated=!1,n.config.onDeactivate&&n.config.onDeactivate(),this.produceActivePlugins(),this.notify())}isPluginActivated(t){const n=this.plugins[t];return!!n&&n.isActivated}getPlugin(t){const n=this.plugins[t];return!n||!n.isActivated?null:n}getActivePlugins(){return this.activePlugins}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notify(){this.listeners.forEach(t=>t())}produceActivePlugins(){this.activePlugins=hf.transform(this.plugins,(t,n)=>{n.isActivated&&t.push(n.config)},[])}}const ri=new T8;function _8(e){const t=S.useContext(e),n=S.useSyncExternalStore(t?t.subscribe:()=>hf.noop,()=>t?hf.identity(t.getState()):null,()=>t?hf.identity(t.getInitialState()):null);return r=>t?[r(n),!0]:[void 0,!1]}const h2="FeedbackFormPlugin",m2={name:h2,components:{FeedbackForm:S.lazy(()=>$o(()=>import("./FeedbackForm-AHbpBR0A.js"),__vite__mapDeps([0,1,2,3])))}},g2="ChatOptionsPlugin",v2={name:g2,components:{ChatOptionsForm:S.lazy(()=>$o(()=>import("./ChatOptionsForm-v2JnxfkR.js"),__vite__mapDeps([4,1,2,3])))}},y2=S.createContext(void 0),b2="SharePluginName",x2={name:b2,components:{ShareButton:S.lazy(()=>$o(()=>import("./ShareButton-CWaGPVMq.js"),__vite__mapDeps([5,3])))}},qk=e=>{let t;const n=new Set,r=(h,m)=>{const g=typeof h=="function"?h(t):h;if(!Object.is(g,t)){const b=t;t=m??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(x=>x(t,b))}},i=()=>t,c={setState:r,getState:i,getInitialState:()=>d,subscribe:h=>(n.add(h),()=>n.delete(h))},d=t=e(r,i,c);return c},Yk=e=>e?qk(e):qk,I8=e=>e;function $8(e,t=I8){const n=We.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return We.useDebugValue(n),n}const or=[];for(let e=0;e<256;++e)or.push((e+256).toString(16).slice(1));function A8(e,t=0){return(or[e[t+0]]+or[e[t+1]]+or[e[t+2]]+or[e[t+3]]+"-"+or[e[t+4]]+or[e[t+5]]+"-"+or[e[t+6]]+or[e[t+7]]+"-"+or[e[t+8]]+or[e[t+9]]+"-"+or[e[t+10]]+or[e[t+11]]+or[e[t+12]]+or[e[t+13]]+or[e[t+14]]+or[e[t+15]]).toLowerCase()}let g0;const R8=new Uint8Array(16);function L8(){if(!g0){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");g0=crypto.getRandomValues.bind(crypto)}return g0(R8)}const M8=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Xk={randomUUID:M8};function w2(e,t,n){if(Xk.randomUUID&&!e)return Xk.randomUUID();e=e||{};const r=e.random??e.rng?.()??L8();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,A8(r)}var S2=Symbol.for("immer-nothing"),Qk=Symbol.for("immer-draftable"),Ei=Symbol.for("immer-state");function Po(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Pf=Object.getPrototypeOf;function Tf(e){return!!e&&!!e[Ei]}function xu(e){return e?k2(e)||Array.isArray(e)||!!e[Qk]||!!e.constructor?.[Qk]||xv(e)||wv(e):!1}var D8=Object.prototype.constructor.toString();function k2(e){if(!e||typeof e!="object")return!1;const t=Pf(e);if(t===null)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object?!0:typeof n=="function"&&Function.toString.call(n)===D8}function Gg(e,t){bv(e)===0?Reflect.ownKeys(e).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function bv(e){const t=e[Ei];return t?t.type_:Array.isArray(e)?1:xv(e)?2:wv(e)?3:0}function Mb(e,t){return bv(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function C2(e,t,n){const r=bv(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function N8(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function xv(e){return e instanceof Map}function wv(e){return e instanceof Set}function uu(e){return e.copy_||e.base_}function Db(e,t){if(xv(e))return new Map(e);if(wv(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=k2(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[Ei];let i=Reflect.ownKeys(r);for(let s=0;s1&&(e.set=e.add=e.clear=e.delete=F8),Object.freeze(e),t&&Object.entries(e).forEach(([n,r])=>ew(r,!0))),e}function F8(){Po(2)}function Sv(e){return Object.isFrozen(e)}var O8={};function wu(e){const t=O8[e];return t||Po(0,e),t}var sh;function E2(){return sh}function z8(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Jk(e,t){t&&(wu("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Nb(e){Fb(e),e.drafts_.forEach(j8),e.drafts_=null}function Fb(e){e===sh&&(sh=e.parent_)}function Zk(e){return sh=z8(sh,e)}function j8(e){const t=e[Ei];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function eC(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[Ei].modified_&&(Nb(t),Po(4)),xu(e)&&(e=qg(t,e),t.parent_||Yg(t,e)),t.patches_&&wu("Patches").generateReplacementPatches_(n[Ei].base_,e,t.patches_,t.inversePatches_)):e=qg(t,n,[]),Nb(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==S2?e:void 0}function qg(e,t,n){if(Sv(t))return t;const r=t[Ei];if(!r)return Gg(t,(i,s)=>tC(e,r,t,i,s,n)),t;if(r.scope_!==e)return t;if(!r.modified_)return Yg(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const i=r.copy_;let s=i,a=!1;r.type_===3&&(s=new Set(i),i.clear(),a=!0),Gg(s,(c,d)=>tC(e,r,i,c,d,n,a)),Yg(e,i,!1),n&&e.patches_&&wu("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function tC(e,t,n,r,i,s,a){if(Tf(i)){const c=s&&t&&t.type_!==3&&!Mb(t.assigned_,r)?s.concat(r):void 0,d=qg(e,i,c);if(C2(n,r,d),Tf(d))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(xu(i)&&!Sv(i)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;qg(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&Object.prototype.propertyIsEnumerable.call(n,r)&&Yg(e,i)}}function Yg(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&ew(t,n)}function B8(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:E2(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,s=tw;n&&(i=[r],s=lh);const{revoke:a,proxy:c}=Proxy.revocable(i,s);return r.draft_=c,r.revoke_=a,c}var tw={get(e,t){if(t===Ei)return e;const n=uu(e);if(!Mb(n,t))return V8(e,n,t);const r=n[t];return e.finalized_||!xu(r)?r:r===v0(e.base_,t)?(y0(e),e.copy_[t]=zb(r,e)):r},has(e,t){return t in uu(e)},ownKeys(e){return Reflect.ownKeys(uu(e))},set(e,t,n){const r=P2(uu(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=v0(uu(e),t),s=i?.[Ei];if(s&&s.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(N8(n,i)&&(n!==void 0||Mb(e.base_,t)))return!0;y0(e),Ob(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return v0(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,y0(e),Ob(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=uu(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){Po(11)},getPrototypeOf(e){return Pf(e.base_)},setPrototypeOf(){Po(12)}},lh={};Gg(tw,(e,t)=>{lh[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});lh.deleteProperty=function(e,t){return lh.set.call(this,e,t,void 0)};lh.set=function(e,t,n){return tw.set.call(this,e[0],t,n,e[0])};function v0(e,t){const n=e[Ei];return(n?uu(n):e)[t]}function V8(e,t,n){const r=P2(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}function P2(e,t){if(!(t in e))return;let n=Pf(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Pf(n)}}function Ob(e){e.modified_||(e.modified_=!0,e.parent_&&Ob(e.parent_))}function y0(e){e.copy_||(e.copy_=Db(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var U8=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const s=n;n=t;const a=this;return function(d=s,...h){return a.produce(d,m=>n.call(this,m,...h))}}typeof n!="function"&&Po(6),r!==void 0&&typeof r!="function"&&Po(7);let i;if(xu(t)){const s=Zk(this),a=zb(t,void 0);let c=!0;try{i=n(a),c=!1}finally{c?Nb(s):Fb(s)}return Jk(s,r),eC(i,s)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===S2&&(i=void 0),this.autoFreeze_&&ew(i,!0),r){const s=[],a=[];wu("Patches").generateReplacementPatches_(t,i,s,a),r(s,a)}return i}else Po(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(a,...c)=>this.produceWithPatches(a,d=>t(d,...c));let r,i;return[this.produce(t,n,(a,c)=>{r=a,i=c}),r,i]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){xu(e)||Po(8),Tf(e)&&(e=K8(e));const t=Zk(this),n=zb(e,void 0);return n[Ei].isManual_=!0,Fb(t),n}finishDraft(e,t){const n=e&&e[Ei];(!n||!n.isManual_)&&Po(9);const{scope_:r}=n;return Jk(r,t),eC(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=wu("Patches").applyPatches_;return Tf(e)?r(e,t):this.produce(e,i=>r(i,t))}};function zb(e,t){const n=xv(e)?wu("MapSet").proxyMap_(e,t):wv(e)?wu("MapSet").proxySet_(e,t):B8(e,t);return(t?t.scope_:E2()).drafts_.push(n),n}function K8(e){return Tf(e)||Po(10,e),T2(e)}function T2(e){if(!xu(e)||Sv(e))return e;const t=e[Ei];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Db(e,t.scope_.immer_.useStrictShallowCopy_)}else n=Db(e,!0);return Gg(n,(r,i)=>{C2(n,r,T2(i))}),t&&(t.finalized_=!1),n}var Pi=new U8,Xg=Pi.produce;Pi.produceWithPatches.bind(Pi);Pi.setAutoFreeze.bind(Pi);Pi.setUseStrictShallowCopy.bind(Pi);Pi.applyPatches.bind(Pi);Pi.createDraft.bind(Pi);Pi.finishDraft.bind(Pi);function W8(e){return Object.values(e).map(t=>({role:t.role,content:t.content}))}function H8(){const e=S.useContext(Q_);if(!e)throw new Error("useThemeContext must be used within a ThemeContextProvider");return e}const $g=e=>N.jsx(T6,{delay:300,closeDelay:0,...e}),nw=()=>{const e=S.useContext(y2);if(!e)throw new Error("useChat must be used within a ConfigContextProvider");return e},G8=e=>typeof e=="boolean"||e instanceof Boolean,q8=e=>typeof e=="number"||e instanceof Number,Y8=e=>typeof e=="bigint"||e instanceof BigInt,_2=e=>!!e&&e instanceof Date,X8=e=>typeof e=="string"||e instanceof String,Q8=e=>Array.isArray(e),J8=e=>typeof e=="object"&&e!==null,I2=e=>!!e&&e instanceof Object&&typeof e=="function";function Qg(e,t){return t===void 0&&(t=!1),!e||t?`"${e}"`:e}function Z8(e,t,n){return n?JSON.stringify(e):t?`"${e}"`:e}function $2(e){let{field:t,value:n,data:r,lastElement:i,openBracket:s,closeBracket:a,level:c,style:d,shouldExpandNode:h,clickToExpandNode:m,outerRef:g,beforeExpandChange:b}=e;const x=S.useRef(!1),[E,P]=S.useState(()=>h(c,n,t)),_=S.useRef(null);S.useEffect(()=>{x.current?P(h(c,n,t)):x.current=!0},[h]);const T=S.useId();if(r.length===0)return e7({field:t,openBracket:s,closeBracket:a,lastElement:i,style:d});const R=E?d.collapseIcon:d.expandIcon,M=E?d.ariaLables.collapseJson:d.ariaLables.expandJson,j=c+1,H=r.length-1,L=ae=>{E!==ae&&(!b||b({level:c,value:n,field:t,newExpandValue:ae}))&&P(ae)},Z=ae=>{if(ae.key==="ArrowRight"||ae.key==="ArrowLeft")ae.preventDefault(),L(ae.key==="ArrowRight");else if(ae.key==="ArrowUp"||ae.key==="ArrowDown"){ae.preventDefault();const O=ae.key==="ArrowUp"?-1:1;if(!g.current)return;const U=g.current.querySelectorAll("[role=button]");let X=-1;for(let G=0;G{var ae;L(!E);const O=_.current;if(!O)return;const U=(ae=g.current)===null||ae===void 0?void 0:ae.querySelector('[role=button][tabindex="0"]');U&&(U.tabIndex=-1),O.tabIndex=0,O.focus()};return S.createElement("div",{className:d.basicChildStyle,role:"treeitem","aria-expanded":E,"aria-selected":void 0},S.createElement("span",{className:R,onClick:ne,onKeyDown:Z,role:"button","aria-label":M,"aria-expanded":E,"aria-controls":E?T:void 0,ref:_,tabIndex:c===0?0:-1}),(t||t==="")&&(m?S.createElement("span",{className:d.clickableLabel,onClick:ne,onKeyDown:Z},Qg(t,d.quotesForFieldNames),":"):S.createElement("span",{className:d.label},Qg(t,d.quotesForFieldNames),":")),S.createElement("span",{className:d.punctuation},s),E?S.createElement("ul",{id:T,role:"group",className:d.childFieldsContainer},r.map((ae,O)=>S.createElement(A2,{key:ae[0]||O,field:ae[0],value:ae[1],style:d,lastElement:O===H,level:j,shouldExpandNode:h,clickToExpandNode:m,outerRef:g}))):S.createElement("span",{className:d.collapsedContent,onClick:ne,onKeyDown:Z}),S.createElement("span",{className:d.punctuation},a),!i&&S.createElement("span",{className:d.punctuation},","))}function e7(e){let{field:t,openBracket:n,closeBracket:r,lastElement:i,style:s}=e;return S.createElement("div",{className:s.basicChildStyle,role:"treeitem","aria-selected":void 0},(t||t==="")&&S.createElement("span",{className:s.label},Qg(t,s.quotesForFieldNames),":"),S.createElement("span",{className:s.punctuation},n),S.createElement("span",{className:s.punctuation},r),!i&&S.createElement("span",{className:s.punctuation},","))}function t7(e){let{field:t,value:n,style:r,lastElement:i,shouldExpandNode:s,clickToExpandNode:a,level:c,outerRef:d,beforeExpandChange:h}=e;return $2({field:t,value:n,lastElement:i||!1,level:c,openBracket:"{",closeBracket:"}",style:r,shouldExpandNode:s,clickToExpandNode:a,data:Object.keys(n).map(m=>[m,n[m]]),outerRef:d,beforeExpandChange:h})}function n7(e){let{field:t,value:n,style:r,lastElement:i,level:s,shouldExpandNode:a,clickToExpandNode:c,outerRef:d,beforeExpandChange:h}=e;return $2({field:t,value:n,lastElement:i||!1,level:s,openBracket:"[",closeBracket:"]",style:r,shouldExpandNode:a,clickToExpandNode:c,data:n.map(m=>[void 0,m]),outerRef:d,beforeExpandChange:h})}function r7(e){let{field:t,value:n,style:r,lastElement:i}=e,s,a=r.otherValue;return n===null?(s="null",a=r.nullValue):n===void 0?(s="undefined",a=r.undefinedValue):X8(n)?(s=Z8(n,!r.noQuotesForStringValues,r.stringifyStringValues),a=r.stringValue):G8(n)?(s=n?"true":"false",a=r.booleanValue):q8(n)?(s=n.toString(),a=r.numberValue):Y8(n)?(s=`${n.toString()}n`,a=r.numberValue):_2(n)?s=n.toISOString():I2(n)?s="function() { }":s=n.toString(),S.createElement("div",{className:r.basicChildStyle,role:"treeitem","aria-selected":void 0},(t||t==="")&&S.createElement("span",{className:r.label},Qg(t,r.quotesForFieldNames),":"),S.createElement("span",{className:a},s),!i&&S.createElement("span",{className:r.punctuation},","))}function A2(e){const t=e.value;return Q8(t)?S.createElement(n7,Object.assign({},e)):J8(t)&&!_2(t)&&!I2(t)?S.createElement(t7,Object.assign({},e)):S.createElement(r7,Object.assign({},e))}var Ar={"container-light":"_2IvMF _GzYRV","basic-element-style":"_2bkNM","child-fields-container":"_1BXBN","label-light":"_1MGIk","clickable-label-light":"_2YKJg _1MGIk _1MFti","punctuation-light":"_3uHL6 _3eOF8","value-null-light":"_2T6PJ","value-undefined-light":"_1Gho6","value-string-light":"_vGjyY","value-number-light":"_1bQdo","value-boolean-light":"_3zQKs","value-other-light":"_1xvuR","collapse-icon-light":"_oLqym _f10Tu _1MFti _1LId0","expand-icon-light":"_2AXVT _f10Tu _1MFti _1UmXx","collapsed-content-light":"_2KJWg _1pNG9 _1MFti"};const i7={collapseJson:"collapse JSON",expandJson:"expand JSON"},Yi={container:Ar["container-light"],basicChildStyle:Ar["basic-element-style"],childFieldsContainer:Ar["child-fields-container"],label:Ar["label-light"],clickableLabel:Ar["clickable-label-light"],nullValue:Ar["value-null-light"],undefinedValue:Ar["value-undefined-light"],stringValue:Ar["value-string-light"],booleanValue:Ar["value-boolean-light"],numberValue:Ar["value-number-light"],otherValue:Ar["value-other-light"],punctuation:Ar["punctuation-light"],collapseIcon:Ar["collapse-icon-light"],expandIcon:Ar["expand-icon-light"],collapsedContent:Ar["collapsed-content-light"],noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:i7,stringifyStringValues:!1},Ap=()=>!0,mg=e=>{let{data:t,style:n=Yi,shouldExpandNode:r=Ap,clickToExpandNode:i=!1,beforeExpandChange:s,...a}=e;const c=S.useRef(null);return S.createElement("div",Object.assign({"aria-label":"JSON view"},a,{className:n.container,ref:c,role:"tree"}),S.createElement(A2,{value:t,style:{...Yi,...n},lastElement:!0,level:0,shouldExpandNode:r,clickToExpandNode:i,outerRef:c,beforeExpandChange:s}))};function o7(e){return typeof e=="string"?e:`map:${String(e)}`}function Yl(e,t=new WeakSet){if(e===null||typeof e!="object")return typeof e=="bigint"?e.toString():typeof e>"u"||typeof e=="function"?void 0:e;if(t.has(e))return"[Circular]";if(t.add(e),e instanceof Date)return e.toISOString();if(e instanceof Map){const r={};for(const[i,s]of e.entries())r[o7(i)]=Yl(s,t);return r}if(e instanceof Set)return Array.from(e).map(r=>Yl(r,t));if(Array.isArray(e))return e.map(r=>Yl(r,t));const n={};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const i=Yl(e[r],t);i!==void 0&&(n[r]=i)}return n}const nC=e=>Symbol.iterator in e,rC=e=>"entries"in e,iC=(e,t)=>{const n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(const[i,s]of n)if(!Object.is(s,r.get(i)))return!1;return!0},s7=(e,t)=>{const n=e[Symbol.iterator](),r=t[Symbol.iterator]();let i=n.next(),s=r.next();for(;!i.done&&!s.done;){if(!Object.is(i.value,s.value))return!1;i=n.next(),s=r.next()}return!!i.done&&!!s.done};function l7(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:nC(e)&&nC(t)?rC(e)&&rC(t)?iC(e,t):s7(e,t):iC({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function yh(e){const t=We.useRef(void 0);return n=>{const r=e(n);return l7(t.current,r)?t.current:t.current=r}}const R2=S.createContext(null),nl=e=>{const t=S.useContext(R2);if(!t||!t.store)throw new Error("useHistoryStore must be used within a HistoryStoreContextProvider");return $8(t.store,e)},kv=()=>nl(e=>e.actions),uG=()=>nl(e=>e.primitives),Xl=e=>nl(yh(t=>e(t.primitives.getCurrentConversation()))),L2=e=>nl(t=>e?t.primitives.getCurrentConversation().history[e]:void 0),a7=()=>nl(yh(e=>Object.keys(e.primitives.getCurrentConversation().history))),u7=()=>nl(yh(e=>Object.values(e.primitives.getCurrentConversation().history))),gg={container:"max-w-full overflow-auto rounded bg-default p-2 font-mono font-normal",label:`${Yi.label} !text-default-900`,collapseIcon:`${Yi.collapseIcon} !text-default-900`,expandIcon:`${Yi.expandIcon} !text-default-900`,collapsedContent:`${Yi.collapsedContent} !text-default-900`,punctuation:"!text-default-900",stringValue:`${Yi.stringValue} !text-green-600`,otherValue:`${Yi.otherValue} !text-purple-500`,numberValue:`${Yi.numberValue}`,nullValue:`${Yi.nullValue}`,booleanValue:`${Yi.booleanValue} !text-yellow-600`,undefinedValue:`${Yi.undefinedValue}`};function c7({isOpen:e}){const t=Xl(s=>s.history),n=Xl(s=>s.followupMessages),r=Xl(s=>s.eventsLog),i=nl(yh(s=>s.computed.getContext()));return N.jsx(Lf,{children:e&&N.jsx(cf.div,{initial:{scale:.6,opacity:0,width:0},animate:{scale:1,opacity:1,width:"100%"},exit:{scale:.6,opacity:0,width:0},className:"w-full max-w-[33%] overflow-hidden px-4",children:N.jsxs("div",{className:"rounded-medium border-small border-divider mr-4 h-full overflow-auto","data-testid":"debug-panel",children:[N.jsx("div",{className:"border-b-small border-divider min-h-16 p-4 text-lg font-bold",children:N.jsx("span",{children:"Debug"})}),N.jsxs(wk,{className:"max-h-full",children:[N.jsx(mp,{"aria-label":"Context",title:"Context",children:N.jsx("div",{className:"max-h-[664px] overflow-auto",children:N.jsx(mg,{data:Yl(i)??{},shouldExpandNode:Ap,style:gg})})},"context"),N.jsx(mp,{"aria-label":"History",title:"History",children:N.jsx("div",{className:"max-h-[664px] overflow-auto",children:N.jsx(mg,{data:Yl(t)??{},shouldExpandNode:Ap,style:gg})})},"history"),N.jsx(mp,{"aria-label":"Followup messages",title:"Followup messages",children:N.jsx("div",{className:"max-h-[664px] overflow-auto",children:N.jsx(mg,{data:Yl(n)??{},shouldExpandNode:Ap,style:gg})})},"folowup-messages"),N.jsx(mp,{"aria-label":"Events",title:"Events",children:r.length===0?N.jsx("p",{children:"No events in the log"}):N.jsx(wk,{children:r.map((s,a)=>N.jsx(mp,{"aria-label":`Events for response number ${a+1}`,title:`Events for response number ${a+1}`,children:N.jsx(mg,{data:Yl(s)??{},shouldExpandNode:Ap,style:gg})},`events-${a+1}`))})},"events")]})]})})})}const M2=e=>{const t=r=>ri.subscribe(r),n=()=>ri.getPlugin(e);return S.useSyncExternalStore(t,n)},jp=({plugin:e,component:t,skeletonSize:n,disableSkeleton:r,componentProps:i})=>{const s=M2(e.name),a=n?{width:n.width,height:n.height}:{};if(!s)return null;const c=s.config.components[t];try{return N.jsx(S.Suspense,{fallback:r?null:N.jsx(mz,{className:"rounded-lg",style:a}),children:N.jsx(c,{...i||{}})})}catch(d){return console.error(d),null}};/** + * react-router v7.7.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */var oC="popstate";function f7(e={}){function t(r,i){let{pathname:s,search:a,hash:c}=r.location;return jb("",{pathname:s,search:a,hash:c},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:ah(i)}return p7(t,n,null,e)}function $n(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Io(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function d7(){return Math.random().toString(36).substring(2,10)}function sC(e,t){return{usr:e.state,key:e.key,idx:t}}function jb(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?bh(t):t,state:n,key:t&&t.key||r||d7()}}function ah({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function bh(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function p7(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:s=!1}=r,a=i.history,c="POP",d=null,h=m();h==null&&(h=0,a.replaceState({...a.state,idx:h},""));function m(){return(a.state||{idx:null}).idx}function g(){c="POP";let _=m(),T=_==null?null:_-h;h=_,d&&d({action:c,location:P.location,delta:T})}function b(_,T){c="PUSH";let R=jb(P.location,_,T);h=m()+1;let M=sC(R,h),j=P.createHref(R);try{a.pushState(M,"",j)}catch(H){if(H instanceof DOMException&&H.name==="DataCloneError")throw H;i.location.assign(j)}s&&d&&d({action:c,location:P.location,delta:1})}function x(_,T){c="REPLACE";let R=jb(P.location,_,T);h=m();let M=sC(R,h),j=P.createHref(R);a.replaceState(M,"",j),s&&d&&d({action:c,location:P.location,delta:0})}function E(_){return h7(_)}let P={get action(){return c},get location(){return e(i,a)},listen(_){if(d)throw new Error("A history only accepts one active listener");return i.addEventListener(oC,g),d=_,()=>{i.removeEventListener(oC,g),d=null}},createHref(_){return t(i,_)},createURL:E,encodeLocation(_){let T=E(_);return{pathname:T.pathname,search:T.search,hash:T.hash}},push:b,replace:x,go(_){return a.go(_)}};return P}function h7(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),$n(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:ah(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function D2(e,t,n="/"){return m7(e,t,n,!1)}function m7(e,t,n,r){let i=typeof t=="string"?bh(t):t,s=Zs(i.pathname||"/",n);if(s==null)return null;let a=N2(e);g7(a);let c=null;for(let d=0;c==null&&d{let d={relativePath:c===void 0?s.path||"":c,caseSensitive:s.caseSensitive===!0,childrenIndex:a,route:s};d.relativePath.startsWith("/")&&($n(d.relativePath.startsWith(r),`Absolute route path "${d.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),d.relativePath=d.relativePath.slice(r.length));let h=Qs([r,d.relativePath]),m=n.concat(d);s.children&&s.children.length>0&&($n(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${h}".`),N2(s.children,t,m,h)),!(s.path==null&&!s.index)&&t.push({path:h,score:k7(h,s.index),routesMeta:m})};return e.forEach((s,a)=>{if(s.path===""||!s.path?.includes("?"))i(s,a);else for(let c of F2(s.path))i(s,a,c)}),t}function F2(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return i?[s,""]:[s];let a=F2(r.join("/")),c=[];return c.push(...a.map(d=>d===""?s:[s,d].join("/"))),i&&c.push(...a),c.map(d=>e.startsWith("/")&&d===""?"/":d)}function g7(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:C7(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var v7=/^:[\w-]+$/,y7=3,b7=2,x7=1,w7=10,S7=-2,lC=e=>e==="*";function k7(e,t){let n=e.split("/"),r=n.length;return n.some(lC)&&(r+=S7),t&&(r+=b7),n.filter(i=>!lC(i)).reduce((i,s)=>i+(v7.test(s)?y7:s===""?x7:w7),r)}function C7(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function E7(e,t,n=!1){let{routesMeta:r}=e,i={},s="/",a=[];for(let c=0;c{if(m==="*"){let E=c[b]||"";a=s.slice(0,s.length-E.length).replace(/(.)\/+$/,"$1")}const x=c[b];return g&&!x?h[m]=void 0:h[m]=(x||"").replace(/%2F/g,"/"),h},{}),pathname:s,pathnameBase:a,pattern:e}}function P7(e,t=!1,n=!0){Io(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,c,d)=>(r.push({paramName:c,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function T7(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Io(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Zs(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function _7(e,t="/"){let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?bh(e):e;return{pathname:n?n.startsWith("/")?n:I7(n,t):t,search:R7(r),hash:L7(i)}}function I7(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function b0(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function $7(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function rw(e){let t=$7(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function iw(e,t,n,r=!1){let i;typeof e=="string"?i=bh(e):(i={...e},$n(!i.pathname||!i.pathname.includes("?"),b0("?","pathname","search",i)),$n(!i.pathname||!i.pathname.includes("#"),b0("#","pathname","hash",i)),$n(!i.search||!i.search.includes("#"),b0("#","search","hash",i)));let s=e===""||i.pathname==="",a=s?"/":i.pathname,c;if(a==null)c=n;else{let g=t.length-1;if(!r&&a.startsWith("..")){let b=a.split("/");for(;b[0]==="..";)b.shift(),g-=1;i.pathname=b.join("/")}c=g>=0?t[g]:"/"}let d=_7(i,c),h=a&&a!=="/"&&a.endsWith("/"),m=(s||a===".")&&n.endsWith("/");return!d.pathname.endsWith("/")&&(h||m)&&(d.pathname+="/"),d}var Qs=e=>e.join("/").replace(/\/\/+/g,"/"),A7=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),R7=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,L7=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function M7(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var O2=["POST","PUT","PATCH","DELETE"];new Set(O2);var D7=["GET",...O2];new Set(D7);var Nf=S.createContext(null);Nf.displayName="DataRouter";var Cv=S.createContext(null);Cv.displayName="DataRouterState";S.createContext(!1);var z2=S.createContext({isTransitioning:!1});z2.displayName="ViewTransition";var N7=S.createContext(new Map);N7.displayName="Fetchers";var F7=S.createContext(null);F7.displayName="Await";var Ao=S.createContext(null);Ao.displayName="Navigation";var Ev=S.createContext(null);Ev.displayName="Location";var to=S.createContext({outlet:null,matches:[],isDataRoute:!1});to.displayName="Route";var ow=S.createContext(null);ow.displayName="RouteError";function O7(e,{relative:t}={}){$n(Ff(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=S.useContext(Ao),{hash:i,pathname:s,search:a}=xh(e,{relative:t}),c=s;return n!=="/"&&(c=s==="/"?n:Qs([n,s])),r.createHref({pathname:c,search:a,hash:i})}function Ff(){return S.useContext(Ev)!=null}function na(){return $n(Ff(),"useLocation() may be used only in the context of a component."),S.useContext(Ev).location}var j2="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function B2(e){S.useContext(Ao).static||S.useLayoutEffect(e)}function V2(){let{isDataRoute:e}=S.useContext(to);return e?Z7():z7()}function z7(){$n(Ff(),"useNavigate() may be used only in the context of a component.");let e=S.useContext(Nf),{basename:t,navigator:n}=S.useContext(Ao),{matches:r}=S.useContext(to),{pathname:i}=na(),s=JSON.stringify(rw(r)),a=S.useRef(!1);return B2(()=>{a.current=!0}),S.useCallback((d,h={})=>{if(Io(a.current,j2),!a.current)return;if(typeof d=="number"){n.go(d);return}let m=iw(d,JSON.parse(s),i,h.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:Qs([t,m.pathname])),(h.replace?n.replace:n.push)(m,h.state,h)},[t,n,s,i,e])}var j7=S.createContext(null);function B7(e){let t=S.useContext(to).outlet;return t&&S.createElement(j7.Provider,{value:e},t)}function U2(){let{matches:e}=S.useContext(to),t=e[e.length-1];return t?t.params:{}}function xh(e,{relative:t}={}){let{matches:n}=S.useContext(to),{pathname:r}=na(),i=JSON.stringify(rw(n));return S.useMemo(()=>iw(e,JSON.parse(i),r,t==="path"),[e,i,r,t])}function V7(e,t){return K2(e)}function K2(e,t,n,r){$n(Ff(),"useRoutes() may be used only in the context of a component.");let{navigator:i}=S.useContext(Ao),{matches:s}=S.useContext(to),a=s[s.length-1],c=a?a.params:{},d=a?a.pathname:"/",h=a?a.pathnameBase:"/",m=a&&a.route;{let T=m&&m.path||"";W2(d,!m||T.endsWith("*")||T.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${d}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let g=na(),b;b=g;let x=b.pathname||"/",E=x;if(h!=="/"){let T=h.replace(/^\//,"").split("/");E="/"+x.replace(/^\//,"").split("/").slice(T.length).join("/")}let P=D2(e,{pathname:E});return Io(m||P!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),Io(P==null||P[P.length-1].route.element!==void 0||P[P.length-1].route.Component!==void 0||P[P.length-1].route.lazy!==void 0,`Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`),G7(P&&P.map(T=>Object.assign({},T,{params:Object.assign({},c,T.params),pathname:Qs([h,i.encodeLocation?i.encodeLocation(T.pathname).pathname:T.pathname]),pathnameBase:T.pathnameBase==="/"?h:Qs([h,i.encodeLocation?i.encodeLocation(T.pathnameBase).pathname:T.pathnameBase])})),s,n,r)}function U7(){let e=J7(),t=M7(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:r},s={padding:"2px 4px",backgroundColor:r},a=null;return console.error("Error handled by React Router default ErrorBoundary:",e),a=S.createElement(S.Fragment,null,S.createElement("p",null,"💿 Hey developer 👋"),S.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",S.createElement("code",{style:s},"ErrorBoundary")," or"," ",S.createElement("code",{style:s},"errorElement")," prop on your route.")),S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},t),n?S.createElement("pre",{style:i},n):null,a)}var K7=S.createElement(U7,null),W7=class extends S.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error!==void 0?S.createElement(to.Provider,{value:this.props.routeContext},S.createElement(ow.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function H7({routeContext:e,match:t,children:n}){let r=S.useContext(Nf);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),S.createElement(to.Provider,{value:e},n)}function G7(e,t=[],n=null,r=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,s=n?.errors;if(s!=null){let d=i.findIndex(h=>h.route.id&&s?.[h.route.id]!==void 0);$n(d>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),i=i.slice(0,Math.min(i.length,d+1))}let a=!1,c=-1;if(n)for(let d=0;d=0?i=i.slice(0,c+1):i=[i[0]];break}}}return i.reduceRight((d,h,m)=>{let g,b=!1,x=null,E=null;n&&(g=s&&h.route.id?s[h.route.id]:void 0,x=h.route.errorElement||K7,a&&(c<0&&m===0?(W2("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),b=!0,E=null):c===m&&(b=!0,E=h.route.hydrateFallbackElement||null)));let P=t.concat(i.slice(0,m+1)),_=()=>{let T;return g?T=x:b?T=E:h.route.Component?T=S.createElement(h.route.Component,null):h.route.element?T=h.route.element:T=d,S.createElement(H7,{match:h,routeContext:{outlet:d,matches:P,isDataRoute:n!=null},children:T})};return n&&(h.route.ErrorBoundary||h.route.errorElement||m===0)?S.createElement(W7,{location:n.location,revalidation:n.revalidation,component:x,error:g,children:_(),routeContext:{outlet:null,matches:P,isDataRoute:!0}}):_()},null)}function sw(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function q7(e){let t=S.useContext(Nf);return $n(t,sw(e)),t}function Y7(e){let t=S.useContext(Cv);return $n(t,sw(e)),t}function X7(e){let t=S.useContext(to);return $n(t,sw(e)),t}function lw(e){let t=X7(e),n=t.matches[t.matches.length-1];return $n(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Q7(){return lw("useRouteId")}function J7(){let e=S.useContext(ow),t=Y7("useRouteError"),n=lw("useRouteError");return e!==void 0?e:t.errors?.[n]}function Z7(){let{router:e}=q7("useNavigate"),t=lw("useNavigate"),n=S.useRef(!1);return B2(()=>{n.current=!0}),S.useCallback(async(i,s={})=>{Io(n.current,j2),n.current&&(typeof i=="number"?e.navigate(i):await e.navigate(i,{fromRouteId:t,...s}))},[e,t])}var aC={};function W2(e,t,n){!t&&!aC[e]&&(aC[e]=!0,Io(!1,n))}S.memo(e9);function e9({routes:e,future:t,state:n}){return K2(e,void 0,n,t)}function t9({to:e,replace:t,state:n,relative:r}){$n(Ff()," may be used only in the context of a component.");let{static:i}=S.useContext(Ao);Io(!i," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:s}=S.useContext(to),{pathname:a}=na(),c=V2(),d=iw(e,rw(s),a,r==="path"),h=JSON.stringify(d);return S.useEffect(()=>{c(JSON.parse(h),{replace:t,state:n,relative:r})},[c,h,r,t,n]),null}function n9(e){return B7(e.context)}function r9({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:i,static:s=!1}){$n(!Ff(),"You cannot render a inside another . You should never have more than one in your app.");let a=e.replace(/^\/*/,"/"),c=S.useMemo(()=>({basename:a,navigator:i,static:s,future:{}}),[a,i,s]);typeof n=="string"&&(n=bh(n));let{pathname:d="/",search:h="",hash:m="",state:g=null,key:b="default"}=n,x=S.useMemo(()=>{let E=Zs(d,a);return E==null?null:{location:{pathname:E,search:h,hash:m,state:g,key:b},navigationType:r}},[a,d,h,m,g,b,r]);return Io(x!=null,` is not able to match the URL "${d}${h}${m}" because it does not start with the basename, so the won't render anything.`),x==null?null:S.createElement(Ao.Provider,{value:c},S.createElement(Ev.Provider,{children:t,value:x}))}var Ag="get",Rg="application/x-www-form-urlencoded";function Pv(e){return e!=null&&typeof e.tagName=="string"}function i9(e){return Pv(e)&&e.tagName.toLowerCase()==="button"}function o9(e){return Pv(e)&&e.tagName.toLowerCase()==="form"}function s9(e){return Pv(e)&&e.tagName.toLowerCase()==="input"}function l9(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function a9(e,t){return e.button===0&&(!t||t==="_self")&&!l9(e)}var vg=null;function u9(){if(vg===null)try{new FormData(document.createElement("form"),0),vg=!1}catch{vg=!0}return vg}var c9=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function x0(e){return e!=null&&!c9.has(e)?(Io(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Rg}"`),null):e}function f9(e,t){let n,r,i,s,a;if(o9(e)){let c=e.getAttribute("action");r=c?Zs(c,t):null,n=e.getAttribute("method")||Ag,i=x0(e.getAttribute("enctype"))||Rg,s=new FormData(e)}else if(i9(e)||s9(e)&&(e.type==="submit"||e.type==="image")){let c=e.form;if(c==null)throw new Error('Cannot submit a