diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 53c3923f9..807129178 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -19,43 +19,19 @@ jobs: ref: develop fetch-depth: 0 - - name: Check if nightly build needed - id: check - run: | - # Get the latest commit hash on develop - COMMIT_HASH=$(git rev-parse --short HEAD) - echo "commit-hash=$COMMIT_HASH" >> "$GITHUB_OUTPUT" - - # Check if we already built this commit as nightly - LAST_NIGHTLY_TAG=$(git tag -l "*dev*" --sort=-version:refname | head -1) - if [ -n "$LAST_NIGHTLY_TAG" ]; then - # Get the commit that the last nightly tag points to - LAST_NIGHTLY_COMMIT=$(git rev-list -n 1 $LAST_NIGHTLY_TAG) - CURRENT_COMMIT=$(git rev-parse HEAD) - if [ "$CURRENT_COMMIT" = "$LAST_NIGHTLY_COMMIT" ]; then - echo "should-build=false" >> "$GITHUB_OUTPUT" - echo "No new commits since last nightly build" - exit 0 - fi - fi + - name: Install uv + uses: astral-sh/setup-uv@v2 + with: + version: ${{ vars.UV_VERSION || '0.6.9' }} - # Generate nightly version - BASE_VERSION=$(python -c " - try: - import tomllib - except ImportError: - import tomli as tomllib - with open('packages/ragbits/pyproject.toml', 'rb') as f: - data = tomllib.load(f) - print(data['project']['version']) - ") - # Use timestamp for unique nightly version (PEP 440 compliant) - TIMESTAMP=$(date +%Y%m%d%H%M) - NIGHTLY_VERSION="${BASE_VERSION}.dev${TIMESTAMP}" + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.10" - echo "should-build=true" >> "$GITHUB_OUTPUT" - echo "nightly-version=$NIGHTLY_VERSION" >> "$GITHUB_OUTPUT" - echo "Will build nightly version: $NIGHTLY_VERSION" + - name: Check if nightly build needed + id: check + run: uv run scripts/check_nightly_build.py build-and-publish: needs: check-for-changes @@ -100,6 +76,7 @@ jobs: git commit -m "chore: update package versions for nightly build ${{ env.NIGHTLY_VERSION }}" git tag "${{ env.NIGHTLY_VERSION }}" git push origin "${{ env.NIGHTLY_VERSION }}" + git push origin develop env: GH_TOKEN: ${{ secrets.GH_TOKEN }} NIGHTLY_VERSION: ${{ needs.check-for-changes.outputs.nightly-version }} @@ -114,7 +91,11 @@ jobs: - name: Deploy nightly documentation shell: bash - run: uv run mike deploy --push nightly + run: | + git config user.name "ds-ragbits-robot" + git config user.email "ds-ragbits-robot@users.noreply.github.com" + git fetch origin gh-pages + uv run mike deploy --push --alias-type copy nightly env: GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/publish-docs.yaml b/.github/workflows/publish-docs.yaml index de307fb8e..0dda20d56 100644 --- a/.github/workflows/publish-docs.yaml +++ b/.github/workflows/publish-docs.yaml @@ -15,6 +15,9 @@ jobs: contents: write steps: - uses: actions/checkout@v4 + with: + ref: gh-pages + fetch-depth: 1 - name: Deploy docs shell: bash diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 2f6068dec..a0d81276a 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -56,6 +56,7 @@ jobs: - name: Deploy documentation run: | - uv run mike deploy --push stable + git fetch origin gh-pages + uv run mike deploy --push --alias-type copy stable env: GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/docs/api_reference/agents/index.md b/docs/api_reference/agents/index.md index 2608a8eb4..70fbb771a 100644 --- a/docs/api_reference/agents/index.md +++ b/docs/api_reference/agents/index.md @@ -9,3 +9,9 @@ ::: ragbits.agents.AgentResultStreaming ::: ragbits.agents.a2a.server.create_agent_server + +::: ragbits.agents.post_processors.base + +::: ragbits.agents.post_processors.supervisor + +::: ragbits.agents.AgentRunContext diff --git a/docs/assets/chat.png b/docs/assets/chat.png new file mode 100644 index 000000000..3aa1e1736 Binary files /dev/null and b/docs/assets/chat.png differ diff --git a/docs/how-to/agents/define_and_use_agents.md b/docs/how-to/agents/define_and_use_agents.md index da3ccb6d5..20ffd615f 100644 --- a/docs/how-to/agents/define_and_use_agents.md +++ b/docs/how-to/agents/define_and_use_agents.md @@ -32,7 +32,7 @@ Use a structured prompt to instruct the LLM. For details on writing prompts with from pydantic import BaseModel from ragbits.core.prompt import Prompt ---8<-- "examples/agents/tool_use.py:51:70" +--8<-- "examples/agents/tool_use.py:51:72" ``` ### Run the agent @@ -49,6 +49,33 @@ 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). +### Alternative approach: inheritance with `prompt_config` + +In addition to explicitly attaching a Prompt instance, Ragbits also supports defining agents through a combination of inheritance and the `@Agent.prompt_config` decorator. + +This approach lets you bind input (and optionally output) models directly to your agent class. The agent then derives its prompt structure automatically, without requiring a prompt argument in the constructor. + +```python +from pydantic import BaseModel +from ragbits.agents import Agent + +--8<-- "examples/agents/with_decorator.py:51:71" +``` + +The decorator can also accept an output type, allowing you to strongly type both the inputs and outputs of the agent. If you do not explicitly define a `user_prompt`, Ragbits will default to `{{ input }}`. + +Once defined, the agent class can be used directly, just like any other subclass of Agent: + +```python +import asyncio +from ragbits.agents import Agent +from ragbits.core.llms import LiteLLM + +--8<-- "examples/agents/with_decorator.py:73:84" +``` + +You can find the complete code example in the Ragbits repository [here](https://github.com/deepsense-ai/ragbits/blob/main/examples/agents/with_decorator.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 @@ -84,6 +111,70 @@ In this scenario, the agent recognizes that the follow-up question "What about T AgentResult(content='The current temperature in Tokyo is 10°C.', ...) ``` +### Long term memory tool +While `keep_history` maintains context within a single session, long-term memory tool enables agents to store and retrieve information across multiple separate conversations. It uses a vector store for semantic search and organizes memories by keys, allowing personalized context based on provided id. +```python +from pydantic import BaseModel + +from ragbits.agents import Agent +from ragbits.agents.tools.memory import LongTermMemory, create_memory_tools +from ragbits.core.embeddings import LiteLLMEmbedder +from ragbits.core.llms import LiteLLM +from ragbits.core.prompt import Prompt +from ragbits.core.vector_stores.in_memory import InMemoryVectorStore + +class ConversationInput(BaseModel): + message: str + + +class ConversationPrompt(Prompt[ConversationInput, str]): + """Prompt for conversation with memory capabilities.""" + + system_prompt = """ + You are a helpful assistant with long-term memory. You can remember information + from previous conversations and use it to provide more personalized responses. + + You have access to memory tools that allow you to: + - Store important facts from conversations + - Retrieve relevant memories based on queries + + Store all information about the user that might be useful in future conversations. + Always start with retrieving memories (implicit) to provide more relevant and personalized experience. + """ + + user_prompt = """ + Message: {{ message }} + """ + +async def main() -> None: + # Initialize components + llm = LiteLLM(model_name="gpt-4o-mini") + embedder = LiteLLMEmbedder(model_name="text-embedding-3-small") + vector_store = InMemoryVectorStore(embedder=embedder) + long_term_memory = LongTermMemory(vector_store=vector_store) + + memory_tools = create_memory_tools(long_term_memory, user_id="user_1") + agent = Agent(llm=llm, prompt=ConversationPrompt, tools=[*memory_tools]) + + # Provide context + await agent.run(ConversationInput( + message="I love hiking in the mountains. I'm planning a trip to Rome next month." + )) + + # New session + llm = LiteLLM(model_name="gpt-4o-mini") + memory_tools = create_memory_tools(long_term_memory, user_id="user_1") + agent = Agent(llm=llm, prompt=ConversationPrompt, tools=[*memory_tools]) + + response2 = await agent.run(ConversationInput( + message="What outdoor activities would you recommend for my trip?" + )) + print(response2.content) + + # Agent remembers Rome trip and hiking preference, suggests Castelli Romani trails, etc. +``` +LongTermMemory class also provides internal methods for managing the memories. You can find the complete code example in the Ragbits repository [here](https://github.com/deepsense-ai/ragbits/blob/main/examples/agents/memory_tool_example.py). + ## Binding dependencies via AgentRunContext You can bind your external dependencies before the first access and safely use them in tools. After first attribute lookup, the dependencies container freezes to prevent mutation during a run. @@ -154,4 +245,4 @@ tool_params = { } } web_search_tool = get_web_search_tool("gpt-4o", tool_params) -``` \ No newline at end of file +``` diff --git a/docs/how-to/agents/stream_downstream_agents.md b/docs/how-to/agents/stream_downstream_agents.md new file mode 100644 index 000000000..1cbaccb62 --- /dev/null +++ b/docs/how-to/agents/stream_downstream_agents.md @@ -0,0 +1,48 @@ +# How-To: Stream downstream agents with Ragbits + +Ragbits [Agent][ragbits.agents.Agent] can call other agents as tools, creating a chain of reasoning where downstream agents provide structured results to the parent agent. + +Using the streaming API, you can observe every chunk of output as it is generated, including tool calls, tool results, and final text - perfect for real-time monitoring or chat interfaces. + +## Define a simple tool + +A tool is just a Python function returning a JSON-serializable result. Here’s an example tool returning the current time for a given location: + +```python +import json + +--8<-- "examples/agents/downstream_agents_streaming.py:33:51" +``` + +## Create a downstream agent + +The downstream agent wraps the tool with a prompt, allowing the LLM to use it as a function. + +```python +from pydantic import BaseModel +from ragbits.core.prompt import Prompt +from ragbits.agents import Agent +from ragbits.agents._main import AgentOptions +from ragbits.core.llms import LiteLLM + +--8<-- "examples/agents/downstream_agents_streaming.py:54:82" +``` + +## Create a parent QA agent + +The parent agent can call downstream agents as tools. This lets the LLM reason and decide when to invoke the downstream agent. + +```python +--8<-- "examples/agents/downstream_agents_streaming.py:85:111" +``` + +## Streaming output from downstream agents + +Use `run_streaming` with an [AgentRunContext][ragbits.agents.AgentRunContext] to see output as it happens. Each chunk contains either text, a tool call, or a tool result. You can print agent names when they change and handle downstream agent events. + +```python +import asyncio +from ragbits.agents import DownstreamAgentResult + +--8<-- "examples/agents/downstream_agents_streaming.py:114:133" +``` diff --git a/docs/how-to/agents/use_post_processors.md b/docs/how-to/agents/use_post_processors.md new file mode 100644 index 000000000..33893e63e --- /dev/null +++ b/docs/how-to/agents/use_post_processors.md @@ -0,0 +1,167 @@ +# How-To: Use Post-Processors with Ragbits Agents + +Ragbits Agents can be enhanced with post-processors to intercept, validate, log, filter, and modify their outputs. In this guide you will learn how to: + +- Create custom post-processors (streaming and non-streaming) +- Attach post-processors to agents in run and streaming modes +- Use and configure the built-in Supervisor post-processor + +## Post-Processors Overview + +Ragbits provides two types of post-processors: + +- **PostProcessor**: Processes the final output after generation, ideal for end-of-run processing. +- **StreamingPostProcessor**: Processes outputs as they are generated, suitable for real-time applications. + +### Implementing a custom Post-Processor + +To create a custom post-processor, inherit from the appropriate base class ([`PostProcessor`][ragbits.agents.post_processors.base.PostProcessor] or [`StreamingPostProcessor`][ragbits.agents.post_processors.base.StreamingPostProcessor]) and implement the required method. + +#### Post-Processor Example + +A non-streaming post-processor applies transformations after the entire content is generated. + +```python +class TruncateProcessor(PostProcessor): + def __init__(self, max_length: int = 50) -> None: + self.max_length = max_length + + async def process(self, result, agent, options=None, context=None): + content = result.content + if len(content) > self.max_length: + content = content[:self.max_length] + "... [TRUNCATED]" + result.content = content + return result +``` + +#### Streaming Post-Processor Example + +A streaming post-processor can manipulate all information returned during generation, including text, tool calls, etc. + +```python +class UpperCaseStreamingProcessor(StreamingPostProcessor): + async def process_streaming(self, chunk, agent): + if isinstance(chunk, str): + return chunk.upper() + return chunk +``` + +## Using Post-Processors + +To use post-processors, pass them to the `run` or `run_streaming` methods of the `Agent` class. If you pass a non-streaming processor to `run_streaming`, set `allow_non_streaming=True`. This allows streaming processors to handle content piece by piece during generation, while non-streaming processors apply transformations after the entire output is generated. + +```python +async def main() -> None: + llm = LiteLLM("gpt-4.1-mini") + agent = Agent(llm=llm, prompt="You are a helpful assistant.") + post_processors = [ + UpperCaseStreamingProcessor(), + TruncateProcessor(max_length=50), + ] + stream_result = agent.run_streaming( + "Tell me about the history of AI.", + post_processors=post_processors, + allow_non_streaming=True + ) + async for chunk in stream_result: + if isinstance(chunk, str): + print(chunk, end="") + print(f"\nFinal answer:\n{stream_result.content}") +``` + +Post-processors offer a flexible way to tailor agent outputs, whether filtering content in real-time or transforming final outputs. + +## Built-in Post-Processors + +### Supervisor + +The [`SupervisorPostProcessor`][ragbits.agents.post_processors.supervisor.SupervisorPostProcessor] validates the agent’s final response against the executed tool calls and, if needed, triggers an automatic rerun with a correction prompt. It helps catch inconsistencies (e.g., when the response contradicts tool output) and guide the agent to refine its answer. The Supervisor is a non-streaming post-processor: it runs after generation has completed, validating the final output before optionally issuing a correction rerun. + +Key capabilities: + +- Validates the last assistant response using an LLM-powered validation prompt +- Optionally reruns the agent with a formatted correction prompt derived from validation feedback +- Supports preserving or pruning intermediate history +- Attaches validation metadata to the final `AgentResult` + +#### Quick start + +```python +from ragbits.agents import Agent +from ragbits.agents.post_processors import SupervisorPostProcessor +from ragbits.agents.post_processors.supervisor import HistoryStrategy +from ragbits.core.llms.litellm import LiteLLM + +llm = LiteLLM("gpt-4o-mini", use_structured_output=True) +supervisor = SupervisorPostProcessor( + llm=llm, + max_retries=2, + fail_on_exceed=False, + history_strategy=HistoryStrategy.PRESERVE, # Default HistoryStrategy is REMOVE +) + +agent = Agent( + llm=llm, + prompt="You are a helpful assistant.", +) + +result = await agent.run( + "What is the weather in Tokyo?", + post_processors=[supervisor], +) +``` + +#### Configuration + +- **llm**: LLM used for validation and formatting structured outputs +- **validation_prompt**: Optional custom prompt class describing the validation output schema +- **correction_prompt**: Optional format string used to create a correction message from validation output +- **max_retries**: How many times to attempt correction-driven reruns +- **fail_on_exceed**: If `True`, raises when retries are exhausted; otherwise returns last result with metadata +- **history_strategy**: + - `PRESERVE`: keep all messages, including the correction user message and rerun assistant message + - `REMOVE`: prune the invalid assistant message and the correction user message, keeping the final assistant response succinctly + +#### Custom structured validation and correction + +You can define a custom validation output model and prompt to shape the supervisor feedback and correction message: + +```python +from pydantic import BaseModel +from ragbits.core.prompt.prompt import Prompt +from ragbits.agents.post_processors.supervisor import ValidationInput + +class MyValidationOutput(BaseModel): + is_valid: bool + errors: list[str] + fixes: list[str] + confidence: float + +class MyValidationPrompt(Prompt[ValidationInput, MyValidationOutput]): + system_prompt = "You are an expert validator. Provide clear, actionable feedback." + user_prompt = ( + "Chat History:\n" + "{% for message in chat_history %}" + "\n{{ message.role | title }}: {{ message.content }} (if None it means it's a tool call)" + "{% endfor %}" + "\n\nList all errors, possible fixes, and provide a confidence score (0.0-1.0) for your assessment.\n" + ) + +correction_prompt = ( + "Previous answer had issues:\n" + "Errors: {errors}\n" + "Fixes: {fixes}\n" + "Confidence: {confidence}\n" + "Please answer again using the fixes." +) + +supervisor = SupervisorPostProcessor( + llm=llm, + validation_prompt=MyValidationPrompt, + correction_prompt=correction_prompt, + max_retries=1, + history_strategy=HistoryStrategy.PRESERVE, +) +``` + +The Supervisor appends validation records to `result.metadata` under the `post_processors.supervisor` key as a list of dicts; each entry corresponds to a validation step. diff --git a/docs/index.md b/docs/index.md index 9e7f54f8e..8ed4d1283 100644 --- a/docs/index.md +++ b/docs/index.md @@ -37,6 +37,116 @@ hide: --- + +*Ragbits is a comprehensive Python framework providing modular building blocks for rapidly developing production-ready GenAI applications. It offers type-safe LLM interactions, flexible RAG pipelines with support for 20+ document formats, multi-agent coordination, real-time observability, and seamless integrations with vector stores, data sources, and chat interfaces.* + + +## Installation + +=== "pip" + + ```sh + pip install ragbits + ``` + +=== "uv" + + ```sh + uv add ragbits + ``` + +## Build your first agent and run it in CLI + +```python title="main.py" +import asyncio + +from ragbits.agents import Agent +from ragbits.core.llms import LiteLLM + +llm = LiteLLM(model_name="gpt-4.1-nano") +agent = Agent(llm=llm) + +async def main(): + response = await agent.run("Hello how are you?") + print(response.content) + +asyncio.run(main()) +``` + +```shell +python main.py + +Hello! I'm doing well, thank you. How can I assist you today? +``` + +## Expose it as a server and chat with UI + +```python hl_lines="4-7 13-34" title="main.py" +from ragbits.agents import Agent +from ragbits.core.llms import LiteLLM + +from collections.abc import AsyncGenerator +from ragbits.chat.interface import ChatInterface +from ragbits.chat.interface.types import ChatContext, ChatResponse, LiveUpdateType +from ragbits.core.prompt import ChatFormat + + +llm = LiteLLM(model_name="gpt-4.1-nano") +agent = Agent(llm=llm) + +class MyChat(ChatInterface): + async def chat( + self, + message: str, + history: ChatFormat, + context: ChatContext, + ) -> AsyncGenerator[ChatResponse]: + async for result in agent.run_streaming(message): + match result: + case str(): + yield self.create_live_update( + update_id="1", + type=LiveUpdateType.START, + label="Answering...", + ) + yield self.create_text_response(result) + + yield self.create_live_update( + update_id="1", + type=LiveUpdateType.FINISH, + label="Answer", + ) +``` + +```shell +ragbits api run main:MyChat + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +Open Your browser and go to `127.0.0.1:8000` and start chatting! + +![](assets/chat.png) + + +## Wants to add more? Check our how-to sections + +
+ Custom Prompts | + Tools | + MCP | + Agent to Agent (A2A) | + RAG | + Observability | + Evaluation | + Guardrails | + UI Customization +
+ + + +----------------------- + ## Features ### 🔨 Build Reliable & Scalable GenAI Apps @@ -70,8 +180,6 @@ hide: ## Installation -To get started quickly, you can install with: - === "pip" ```sh diff --git a/docs/tutorials/intro.md b/docs/tutorials/intro.md index 31fb830dc..49cad6e14 100644 --- a/docs/tutorials/intro.md +++ b/docs/tutorials/intro.md @@ -2,7 +2,7 @@ Let's walk through a quick example of **basic question answering**. Specifically, let's build **a system for answering tech questions**, e.g. about Linux or iPhone apps. -Install the latest Ragbits via `pip install -U ragbits` and follow along. +Install the latest Ragbits via `pip install -U ragbits ragbits-agents` and follow along. ## Configuring the environment diff --git a/examples/README.md b/examples/README.md index 981a2dc7a..d25dab54f 100644 --- a/examples/README.md +++ b/examples/README.md @@ -20,6 +20,7 @@ All necessary details are provided in the comments at the top of each script. | [Multimodal Prompt with PDF Input](/examples/core/prompt/multimodal_with_pdf.py) | [ragbits-core](/packages/ragbits-core) | Example of how to use the `Prompt` class to answer the question using an LLM with both text and PDF inputs. | | [Multimodal Prompt with Few Shots](/examples/core/prompt/multimodal_with_few_shots.py) | [ragbits-core](/packages/ragbits-core) | Example of how to use the `Prompt` class to generate themed text using an LLM with multimodal inputs and few-shot examples. | | [Tool Use with LLM](/examples/core/llms/tool_use.py) | [ragbits-core](/packages/ragbits-core) | Example of how to provide tools and return tool calls from LLM. | +| [Reasoning with LLM](/examples/core/llms/reasoning.py) | [ragbits-core](/packages/ragbits-core) | Example of how to use reasoning with LLM. | | [OpenTelemetry Audit](/examples/core/audit/otel.py) | [ragbits-core](/packages/ragbits-core) | Example of how to collect traces and metrics using Ragbits audit module with OpenTelemetry. | | [Logfire Audit](/examples/core/audit/logfire_.py) | [ragbits-core](/packages/ragbits-core) | Example of how to collect traces and metrics using Ragbits audit module with Logfire. | | [Basic Document Search](/examples/document-search/basic.py) | [ragbits-document-search](/packages/ragbits-document-search) | Example of how to use the `DocumentSearch` class to search for documents with the `InMemoryVectorStore` class to store the embeddings. | @@ -38,6 +39,13 @@ All necessary details are provided in the comments at the top of each script. | [Recontextualize Last Message](/examples/chat/recontextualize_message.py) | [ragbits-chat](/packages/ragbits-chat) | Example of how to use the `StandaloneMessageCompressor` compressor to recontextualize the last message in a conversation history. | | [Agents Tool Use](/examples/agents/tool_use.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to use agent with tools. | | [Agents OpenAI Native Tool Use](/examples/agents/openai_native_tool_use.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to use agent with OpenAI native tools. | +| [Agents Post Processors](/examples/agents/post_processors.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to use post-processors with agent. +| [Agents Downstream Streaming](/examples/agents/downstream_agents_streaming.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to stream outputs from downstream agents in real time. | | +| [Agents CLI](/examples/agents/cli_agent.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to use agent in CLI. | | [MCP Local](/examples/agents/mcp/local.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to use the `Agent` class to connect with a local MCP server. | | [MCP SSE](/examples/agents/mcp/sse.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to use the `Agent` class to connect with a remote MCP server via SSE. | | [MCP Streamable HTTP](/examples/agents/mcp/streamable_http.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to use the `Agent` class to connect with a remote MCP server via HTTP. | +| [A2A Orchestration](/examples/agents/a2a/run_orchestrator.py) | [ragbits-agents](/packages/ragbits-agents) | Example of how to setup A2A orchestration. | +| [Agent Benchmark: HotpotQA](/examples/evaluate/agent-benchmarking/run_hotpot.py) | [ragbits-evaluate](/packages/ragbits-evaluate) | Example of how to benchmark on HotpotQA comparing `Agent` and `TodoAgent`. | +| [Agent Benchmark: GAIA](/examples/evaluate/agent-benchmarking/run_gaia.py) | [ragbits-evaluate](/packages/ragbits-evaluate) | Example of how to benchmark on GAIA with tools comparing `Agent` and `TodoAgent`. | +| [Agent Benchmark: HumanEval](/examples/evaluate/agent-benchmarking/run_humaneval.py) | [ragbits-evaluate](/packages/ragbits-evaluate) | Example of how to benchmark on HumanEval comparing `Agent` and `TodoAgent`. | diff --git a/examples/agents/downstream_agents_streaming.py b/examples/agents/downstream_agents_streaming.py new file mode 100644 index 000000000..b68fb8dc3 --- /dev/null +++ b/examples/agents/downstream_agents_streaming.py @@ -0,0 +1,133 @@ +""" +Ragbits Agents Example: Multi-agent setup (QA agent + Time agent) + +This example demonstrates how to build a setup with two agents: +1. A Time Agent that returns the current time for a given location. +2. A QA Agent that answers user questions and can delegate to the Time Agent. + +To run the script, execute the following command: + + ```bash + uv run examples/agents/downstream_agents_streaming.py + ``` +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-core", +# "ragbits-agents", +# ] +# /// + +import asyncio +import json + +from pydantic import BaseModel + +from ragbits.agents import Agent, AgentOptions, AgentRunContext, DownstreamAgentResult +from ragbits.core.llms import LiteLLM +from ragbits.core.prompt import Prompt + + +def get_time(location: str) -> str: + """ + Returns the current time for a given location. + + Args: + location: The location to get the time for. + + Returns: + The current time for the given location. + """ + loc = location.lower() + if "tokyo" in loc: + return json.dumps({"location": "Tokyo", "time": "10:00 AM"}) + elif "paris" in loc: + return json.dumps({"location": "Paris", "time": "04:00 PM"}) + elif "san francisco" in loc: + return json.dumps({"location": "San Francisco", "time": "07:00 PM"}) + else: + return json.dumps({"location": location, "time": "unknown"}) + + +class TimePromptInput(BaseModel): + """Input schema for the TimePrompt, containing the target location.""" + + location: str + + +class TimePrompt(Prompt[TimePromptInput]): + """ + Provides instructions for generating the current time in a user-specified + location. + """ + + system_prompt = """ + You are a helpful assistant that tells the current time in a given city. + """ + user_prompt = """ + What time is it in {{ location }}? + """ + + +llm = LiteLLM(model_name="gpt-4o-2024-08-06", use_structured_output=True) +time_agent = Agent( + name="time_agent", + description="Returns current time for a given location", + llm=llm, + prompt=TimePrompt, + tools=[get_time], + default_options=AgentOptions(max_total_tokens=1000, max_turns=5), +) + + +class QAPromptInput(BaseModel): + """Input schema for the QA agent, containing a natural-language question.""" + + question: str + + +class QAPrompt(Prompt[QAPromptInput]): + """ + Guides the agent to respond to user questions. + """ + + system_prompt = """ + You are a helpful assistant that responds to user questions. + """ + user_prompt = """ + {{ question }}. + """ + + +llm = LiteLLM(model_name="gpt-4o-2024-08-06", use_structured_output=True) +qa_agent = Agent( + name="qa_agent", + llm=llm, + prompt=QAPrompt, + tools=[(time_agent, {"name": "time_agent"})], + default_options=AgentOptions(max_total_tokens=1000, max_turns=5), +) + + +async def main() -> None: + """ + Run the QA agent with downstream streaming enabled. + + The QA agent processes a sample question ("What time is it in Paris?") and delegates to + the Time Agent when necessary. Streamed results from both agents are printed in real time, + tagged by the agent that produced them. + """ + context = AgentRunContext(stream_downstream_events=True) + + async for chunk in qa_agent.run_streaming(QAPromptInput(question="What time is it in Paris?"), context=context): + if isinstance(chunk, DownstreamAgentResult): + agent_name = context.get_agent(chunk.agent_id).name + print(f"[{agent_name}] {chunk.item}") + else: + print(f"[{qa_agent.name}] {chunk}") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples/agents/memory_tool_example.py b/examples/agents/memory_tool_example.py new file mode 100644 index 000000000..65dd20573 --- /dev/null +++ b/examples/agents/memory_tool_example.py @@ -0,0 +1,242 @@ +""" +Example usage of the MemoryTool with a regular Agent. + +This example demonstrates how to add long-term memory capabilities +to any existing agent using the memory tool. +""" + +import asyncio + +from pydantic import BaseModel + +from ragbits.agents import Agent +from ragbits.agents.tools.memory import LongTermMemory, create_memory_tools +from ragbits.core.embeddings import LiteLLMEmbedder +from ragbits.core.llms import LiteLLM +from ragbits.core.prompt import Prompt +from ragbits.core.vector_stores.in_memory import InMemoryVectorStore + + +class ConversationInput(BaseModel): + """Input model for conversation prompts.""" + + message: str + + +class ConversationPrompt(Prompt[ConversationInput, str]): + """Prompt for conversation with memory capabilities.""" + + system_prompt = """ + You are a helpful assistant with long-term memory. You can remember information + from previous conversations and use it to provide more personalized responses. + + You have access to memory tools that allow you to: + - Store important facts from conversations + - Retrieve relevant memories based on queries + + Store all information about the user that might be useful in future conversations. + Always start with retrieving memories (implicit) to provide more relevant and personalized experience. + """ + + user_prompt = """ + Message: {{ message }} + """ + + +async def main() -> None: + """Demonstrate the memory tool functionality with comparison between agents with and without memory.""" + # Initialize components + embedder = LiteLLMEmbedder(model_name="text-embedding-3-small") + shared_vector_store = InMemoryVectorStore(embedder=embedder) + llm = LiteLLM(model_name="gpt-4o-mini") + + # Test conversations + conversations: list[dict[str, str | ConversationInput]] = [ + { + "title": "1. First conversation - storing information:", + "input": ConversationInput( + message="I love hiking in the mountains. I'm planning a trip to Rome next month." + ), + }, + { + "title": "2. Second conversation - retrieving context:", + "input": ConversationInput(message="What outdoor activities would you recommend for my trip?"), + }, + { + "title": "3. Different user (different memory key):", + "input": ConversationInput(message="Hi! I love cooking Asian food."), + }, + { + "title": "4. 2nd user asking about travel (should not know 1st user's info):", + "input": ConversationInput(message="What do you know about my travel interests?"), + }, + ] + + # Run conversations with both agents + for i, conv in enumerate(conversations, 1): + print(f"{conv['title']}") + print("=" * 60) + + long_term_memory = LongTermMemory(vector_store=shared_vector_store) + + # First two conversations use user_123, last two use user_456 + USER_123_THRESHOLD = 2 + user_id = "user_123" if i <= USER_123_THRESHOLD else "user_456" + + # Create fresh agent instances for each conversation + # (otherwise the agent remembers the previous conversation even without memory) + agent_with_memory = Agent( + llm=llm, prompt=ConversationPrompt, tools=create_memory_tools(long_term_memory, user_id), keep_history=False + ) + + agent_without_memory = Agent(llm=llm, prompt=ConversationPrompt, tools=[], keep_history=False) + + # Agent WITH memory + print("Agent WITH Memory:") + input_data = conv["input"] + if not isinstance(input_data, ConversationInput): + raise TypeError("Expected ConversationInput") + response_with = await agent_with_memory.run(input_data) + print(f"Response: {response_with.content}\n") + + # Agent WITHOUT memory + print("Agent WITHOUT Memory:") + response_without = await agent_without_memory.run(input_data) + print(f"Response: {response_without.content}\n") + + print("-" * 60) + print() + + # Manual memory operations (internal methods only) + print("7. Manual memory operations (internal methods):") + print("=" * 60) + + user_id = "user_123" + + # Store a specific memory + memory_id = await long_term_memory.store_memory( + user_id=user_id, content="User frequently visits his father in the countryside." + ) + print(f"Stored memory with ID: {memory_id}") + + # Retrieve memories + memories = await long_term_memory.retrieve_memories(user_id=user_id, query="travel plans", limit=1) + print(f"Retrieved {len(memories)} memory about travel arrangements:") + for memory in memories: + print(f" - {memory.content}") + memories = await long_term_memory.retrieve_memories(user_id=user_id, query="parents", limit=1) + print(f"Retrieved {len(memories)} memory about parents:") + for memory in memories: + print(f" - {memory.content}") + + # Get all memories for user_123 + all_memories = await long_term_memory.get_all_memories(user_id) + print(f"Total memories for user_123: {len(all_memories)}") + for i, memory in enumerate(all_memories, 1): + print(f" {i}. {memory.content} (ID: {memory.memory_id})") + + # Delete memory + if all_memories: + memory_to_delete = all_memories[0] + print(f"\nDeleting memory: {memory_to_delete.content}") + success = await long_term_memory.delete_memory(user_id, memory_to_delete.memory_id) + print(f"Delete successful: {success}") + + # Verify deletion + remaining_memories = await long_term_memory.get_all_memories(user_id) + print(f"Remaining memories: {len(remaining_memories)}") + + +if __name__ == "__main__": + asyncio.run(main()) + + +""" +Example output: + +1. First conversation - storing information: +============================================================ +Agent WITH Memory: +Response: I've noted that you love hiking in the mountains and that you're planning a trip to Rome next month! +If you need any tips or recommendations for either hiking or your trip to Rome, just let me know! + +Agent WITHOUT Memory: +Response: I've noted that you love hiking in the mountains and that you're planning a trip to Rome next month. +If you'd like recommendations for hiking spots, activities in Rome, or anything else related to your interests, +just let me know! + +------------------------------------------------------------ + +2. Second conversation - retrieving context: +============================================================ +Agent WITH Memory: +Response: Since you're planning a trip to Rome next month and love hiking in the mountains, +here are some outdoor activities I would recommend: + +1. **Hiking in the surrounding areas**: Consider day trips to the nearby hills, such as the **Castelli Romani**. +It's a beautiful area with great trails and stunning views. + +2. **Exploring parks**: Spend some time in **Villa Borghese**, which is a large park in the city. +You can rent a bike or simply walk around and enjoy the gardens. + +3. **Visit the Tiber River**: Take a stroll along the Tiber River. +There are plenty of areas to walk or cycle, plus you can stop for a drink or snack at one of the riverside cafes. + +4. **Day trips**: If you’re up for a bit of travel, +consider visiting the **Abruzzo National Park** or the **Gran Sasso** mountains for more intense hiking experiences. + +5. **Outdoor dining**: Enjoy al fresco dining at local trattorias, +which can be a delightful way to experience the local culture and cuisine in a pleasant setting. + +Let me know if you need more detailed information or other suggestions! + +Agent WITHOUT Memory: +Response: To suggest the best outdoor activities for your trip, +I’ll need to know the destination you're heading to and any specific interests you have, +like hiking, water sports, or wildlife watching. +Could you share more details? + +------------------------------------------------------------ + +3. Different user (different memory key): +============================================================ +Agent WITH Memory: +Response: Great to know that you love cooking Asian food! Do you have a favorite dish or recipe? + +Agent WITHOUT Memory: +Response: Hi! It's great to hear that you love cooking Asian food! Do you have a favorite dish or cuisine? + +------------------------------------------------------------ + +4. 2nd user asking about travel (should not know 1st user's info): +============================================================ +Agent WITH Memory: +Response: I currently have a note about you loving to cook Asian food, +which might hint at a travel interest in visiting Asian countries to explore their culinary culture. +If there are more specific travel interests you'd like me to remember +or if you want to share more about your travel preferences, feel free to let me know! + +Agent WITHOUT Memory: +Response: I don't have specific memories about your travel interests yet. +If you share some details about your preferences, favorite destinations, or types of travel experiences you enjoy, +I can remember that for future conversations! + +------------------------------------------------------------ + +7. Manual memory operations (internal methods): +============================================================ +Stored memory with ID: 6c2f8a4a-96ee-4b5d-9122-78358ea8d10d +Retrieved 1 memory about travel arrangements: + - User is planning a trip to Rome next month. +Retrieved 1 memory about parents: + - User frequently visits his father in the countryside. +Total memories for user_123: 3 + 1. User loves hiking in the mountains. (ID: cbbbaf09-67ec-4b82-8447-d2d22c825a0f) + 2. User is planning a trip to Rome next month. (ID: 7731fd53-d275-4e9f-a0a3-e48ebc8664cf) + 3. User frequently visits his father in the countryside. (ID: 6c2f8a4a-96ee-4b5d-9122-78358ea8d10d) + +Deleting memory: User loves hiking in the mountains. +Delete successful: True +Remaining memories: 2 + +""" diff --git a/examples/agents/post_processors.py b/examples/agents/post_processors.py new file mode 100644 index 000000000..5e2e00695 --- /dev/null +++ b/examples/agents/post_processors.py @@ -0,0 +1,97 @@ +""" +Ragbits Agents Example: Post-Processors + +This example demonstrates how to use post-processors with Agent.run() and Agent.run_streaming() methods. + +To run the script, execute the following command: + + ```bash + uv run examples/agents/post_processors.py + ``` +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-core", +# "ragbits-agents", +# ] +# /// + +import asyncio +from types import SimpleNamespace + +from ragbits.agents import Agent, AgentResult, PostProcessor, StreamingPostProcessor, ToolCallResult +from ragbits.core.llms.base import BasePrompt, ToolCall, Usage +from ragbits.core.llms.litellm import LiteLLM + + +class CustomStreamingPostProcessor(StreamingPostProcessor): + """ + Streaming post-processor that checks for forbidden words. + """ + + def __init__(self, forbidden_words: list[str]) -> None: + self.forbidden_words = forbidden_words + + async def process_streaming( + self, chunk: str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage, agent: Agent + ) -> str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage: + """ + Process chunks during streaming. + """ + if isinstance(chunk, str) and chunk.lower().strip() in self.forbidden_words: + return "[FORBIDDEN_WORD]" + return chunk + + +class CustomPostProcessor(PostProcessor): + """ + Non-streaming post-processor that truncates the content. + """ + + def __init__(self, max_length: int = 200) -> None: + self.max_length = max_length + + async def process(self, result: AgentResult, agent: Agent) -> AgentResult: + """ + Process the agent result. + """ + content = result.content + content_length = len(content) + + if content_length > self.max_length: + content = content[: self.max_length] + content += f"... [TRUNCATED] ({content_length} > {self.max_length} chars)" + + return AgentResult( + content=content, + metadata=result.metadata, + tool_calls=result.tool_calls, + history=result.history, + usage=result.usage, + ) + + +async def main() -> None: + """ + Run the example. + """ + llm = LiteLLM("gpt-4.1-mini") + agent: Agent = Agent(llm=llm, prompt="You are a helpful assistant.") + stream_result = agent.run_streaming( + "What is Python?", + post_processors=[ + CustomStreamingPostProcessor(forbidden_words=["python"]), + CustomPostProcessor(max_length=200), + ], + allow_non_streaming=True, + ) + async for chunk in stream_result: + if isinstance(chunk, str): + print(chunk, end="") + print(f"\n\nFinal answer:\n{stream_result.content}") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples/agents/todo_tools_example.py b/examples/agents/todo_tools_example.py new file mode 100644 index 000000000..b86cb9ca7 --- /dev/null +++ b/examples/agents/todo_tools_example.py @@ -0,0 +1,123 @@ +"""Example demonstrating the new orchestrator-based todo functionality with streaming.""" + +import asyncio +from types import SimpleNamespace + +from ragbits.agents import Agent, ToolCallResult +from ragbits.agents._main import DownstreamAgentResult +from ragbits.agents.tools.todo import TodoOrchestrator, TodoResult +from ragbits.core.llms import LiteLLM, ToolCall +from ragbits.core.llms.base import Usage +from ragbits.core.prompt.base import BasePrompt + +# Type alias for response types +ResponseType = ( + str | ToolCall | ToolCallResult | TodoResult | BasePrompt | Usage | SimpleNamespace | DownstreamAgentResult +) + + +def _handle_response(response: ResponseType) -> None: + """Handle different types of responses from the orchestrator.""" + match response: + case str(): + if response.strip(): + print(response, end="", flush=True) + case ToolCall(): + print(f"\n🔧 Tool Call: {response.name}") + if response.arguments: + print(f" Arguments: {response.arguments}") + case ToolCallResult(): + print(f"🔧 Tool Result: {response.result}") + case TodoResult(): + _handle_streaming_response(response) + + +def _handle_streaming_response(response: TodoResult) -> None: + """Handle TodoResult from the orchestrator.""" + if response.type in ("status"): + print(response.message or "") + elif response.type in ("task_list"): + for index, task in enumerate(response.tasks, 1): + print(f"{index}. {task.description}") + elif response.type in ("task_summary_start", "final_summary_start"): + print(response.message or "", end="", flush=True) + elif response.type in ("task_completed", "final_summary_end"): + print(response.message or "") + + +async def hiking_guide() -> None: + """Demonstrate the new orchestrator-based todo approach with streaming.""" + # Define the system prompt for hiking guide + hiking_system_prompt = """ + You are an expert hiking guide. Provide detailed, comprehensive information + about hiking routes, gear, transportation, and safety considerations. + """ + + # Create generic orchestrator with hiking domain context + todo_orchestrator = TodoOrchestrator(domain_context="hiking guide") + + # Create a simple agent - orchestrator handles the workflow + agent: Agent = Agent( + llm=LiteLLM("gpt-4o-mini"), + prompt=hiking_system_prompt, + ) + + # Test queries + query = ( + "Plan a 1-day hiking trip for 2 people in Tatra Mountains, Poland. " + "Focus on scenic routes under 15km, avoiding crowds." + ) + # query = "How long is hike to Giewont from Kuźnice?" + + print("=== Generic Todo Orchestrator - Hiking Example ===\n") + + # Run the complete workflow with orchestrator streaming + async for response in todo_orchestrator.run_todo_workflow_streaming(agent, query): + _handle_response(response) + + print("\n🎯 Workflow completed successfully!") + + +async def software_architecture_example() -> None: + """Example showing the orchestrator used for software architecture.""" + software_system_prompt = """ + You are an expert software architect. Provide detailed technical analysis, + system design recommendations, and implementation guidance. + + Always be specific with: + - Technology stack recommendations with versions + - Architecture patterns and design principles + - Performance and scalability considerations + - Security best practices + - Implementation roadmap with timelines + """ + + todo_orchestrator = TodoOrchestrator(domain_context="software architect") + + agent: Agent = Agent( + llm=LiteLLM("gpt-4o-mini"), + prompt=software_system_prompt, + ) + + query = ( + "Design a scalable e-commerce platform for 100k+ users with " + "real-time inventory management and payment processing." + ) + + print("\n" + "=" * 60) + print("=== Generic Todo Orchestrator - Software Architecture Example ===\n") + + async for response in todo_orchestrator.run_todo_workflow_streaming(agent, query): + _handle_response(response) + + print("\n🎯 Software architecture workflow completed!") + + +async def demonstrate_both() -> None: + """Demonstrate both hiking and software architecture examples.""" + await hiking_guide() + # await software_architecture_example() + + +if __name__ == "__main__": + asyncio.run(demonstrate_both()) diff --git a/examples/agents/with_decorator.py b/examples/agents/with_decorator.py new file mode 100644 index 000000000..c1ae47024 --- /dev/null +++ b/examples/agents/with_decorator.py @@ -0,0 +1,88 @@ +""" +Ragbits Agents Example: Syntax Sugar + +This example demonstrates how to use agent with tools by using new syntax sugar. +We provide a single method as a tool to the agent and expect it to call it when answering query. + +To run the script, execute the following command: + + ```bash + uv run examples/agents/tool_use.py + ``` +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-core", +# "ragbits-agents", +# ] +# /// +import asyncio +import json + +from pydantic import BaseModel + +from ragbits.agents import Agent +from ragbits.agents._main import AgentOptions +from ragbits.core.llms import LiteLLM + + +def get_weather(location: str) -> str: + """ + Returns the current weather for a given location. + + Args: + location: The location to get the weather for. + + Returns: + The current weather for the given location. + """ + if "tokyo" in location.lower(): + return json.dumps({"location": "Tokyo", "temperature": "10", "unit": "celsius"}) + elif "san francisco" in location.lower(): + return json.dumps({"location": "San Francisco", "temperature": "72", "unit": "fahrenheit"}) + elif "paris" in location.lower(): + return json.dumps({"location": "Paris", "temperature": "22", "unit": "celsius"}) + else: + return json.dumps({"location": location, "temperature": "unknown"}) + + +class WeatherAgentInput(BaseModel): + """ + Input format for the WeatherAgent + """ + + location: str + + +@Agent.prompt_config(WeatherAgentInput) +class WeatherAgent(Agent): + """ + Agent that returns weather for a given location. + """ + + system_prompt = """ + You are a helpful assistant that responds to user questions about weather. + """ + user_prompt = """ + Tell me the temperature in {{ location }}. + """ + + +async def main() -> None: + """ + Run the example. + """ + llm = LiteLLM(model_name="gpt-4o-2024-08-06", use_structured_output=True) + agent = WeatherAgent( + llm=llm, + tools=[get_weather], + default_options=AgentOptions(max_total_tokens=500, max_turns=5), + ) + response = await agent.run(WeatherAgentInput(location="Paris"), tool_choice=get_weather) + print(response) + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples/chat/chat.py b/examples/chat/chat.py index ccbac8bc6..5e81f72bf 100644 --- a/examples/chat/chat.py +++ b/examples/chat/chat.py @@ -7,7 +7,7 @@ To run the script, execute the following command: ```bash - ragbits api run examples.api.chat:MyChat + ragbits api run examples.chat.chat:MyChat ``` """ @@ -28,6 +28,7 @@ from ragbits.chat.interface import ChatInterface from ragbits.chat.interface.forms import FeedbackConfig, UserSettings +from ragbits.chat.interface.summary import HybridSummaryGenerator from ragbits.chat.interface.types import ChatContext, ChatResponse, LiveUpdateType from ragbits.chat.interface.ui_customization import HeaderCustomization, PageMetaCustomization, UICustomization from ragbits.core.llms import LiteLLM @@ -93,6 +94,7 @@ class MyChat(ChatInterface): def __init__(self) -> None: self.llm = LiteLLM(model_name="gpt-4o-mini") + self.summary_generator = HybridSummaryGenerator(self.llm) async def chat( self, diff --git a/examples/chat/custom-theme.json b/examples/chat/custom-theme.json new file mode 100644 index 000000000..c91c47545 --- /dev/null +++ b/examples/chat/custom-theme.json @@ -0,0 +1,223 @@ +{ + "themes": { + "light": { + "colors": { + "default": { + "50": "#f6f8f7", + "100": "#eaefec", + "200": "#dee5e0", + "300": "#d2dcd5", + "400": "#c5d2c9", + "500": "#b9c9be", + "600": "#99a69d", + "700": "#78837c", + "800": "#585f5a", + "900": "#383c39", + "foreground": "#000", + "DEFAULT": "#b9c9be" + }, + "primary": { + "50": "#ecf9f0", + "100": "#d1f0dc", + "200": "#b6e7c7", + "300": "#9cdeb3", + "400": "#81d59e", + "500": "#66cc8a", + "600": "#54a872", + "700": "#42855a", + "800": "#306142", + "900": "#1f3d29", + "foreground": "#000", + "DEFAULT": "#66cc8a" + }, + "secondary": { + "50": "#e6efff", + "100": "#c3d8fe", + "200": "#a0c1fd", + "300": "#7daafc", + "400": "#5a93fc", + "500": "#377cfb", + "600": "#2d66cf", + "700": "#2451a3", + "800": "#1a3b77", + "900": "#11254b", + "foreground": "#000", + "DEFAULT": "#377cfb" + }, + "success": { + "50": "#dff4ed", + "100": "#b3e5d4", + "200": "#86d6ba", + "300": "#59c7a1", + "400": "#2db887", + "500": "#00a96e", + "600": "#008b5b", + "700": "#006e48", + "800": "#005034", + "900": "#003321", + "foreground": "#000", + "DEFAULT": "#00a96e" + }, + "warning": { + "50": "#fff7df", + "100": "#ffecb3", + "200": "#ffe086", + "300": "#ffd559", + "400": "#ffc92d", + "500": "#ffbe00", + "600": "#d29d00", + "700": "#a67c00", + "800": "#795a00", + "900": "#4d3900", + "foreground": "#000", + "DEFAULT": "#ffbe00" + }, + "danger": { + "50": "#ffeaeb", + "100": "#ffcdd0", + "200": "#ffb0b4", + "300": "#ff9298", + "400": "#ff757d", + "500": "#ff5861", + "600": "#d24950", + "700": "#a6393f", + "800": "#792a2e", + "900": "#4d1a1d", + "foreground": "#000", + "DEFAULT": "#ff5861" + }, + "background": "#f6fffa", + "foreground": "#004c1b", + "content1": { + "DEFAULT": "#e0f5e8", + "foreground": "#000" + }, + "content2": { + "DEFAULT": "#c2ebd0", + "foreground": "#000" + }, + "content3": { + "DEFAULT": "#a3e0b9", + "foreground": "#000" + }, + "content4": { + "DEFAULT": "#85d6a1", + "foreground": "#000" + }, + "focus": "#66cc8a", + "overlay": "#000000" + } + }, + "dark": { + "colors": { + "default": { + "50": "#0e100e", + "100": "#1d211d", + "200": "#2b312b", + "300": "#3a423a", + "400": "#485248", + "500": "#6d756d", + "600": "#919791", + "700": "#b6bab6", + "800": "#dadcda", + "900": "#ffffff", + "foreground": "#fff", + "DEFAULT": "#485248" + }, + "primary": { + "50": "#1f3d29", + "100": "#306142", + "200": "#42855a", + "300": "#54a872", + "400": "#66cc8a", + "500": "#81d59e", + "600": "#9cdeb3", + "700": "#b6e7c7", + "800": "#d1f0dc", + "900": "#ecf9f0", + "foreground": "#000", + "DEFAULT": "#66cc8a" + }, + "secondary": { + "50": "#11254b", + "100": "#1a3b77", + "200": "#2451a3", + "300": "#2d66cf", + "400": "#377cfb", + "500": "#5a93fc", + "600": "#7daafc", + "700": "#a0c1fd", + "800": "#c3d8fe", + "900": "#e6efff", + "foreground": "#000", + "DEFAULT": "#377cfb" + }, + "success": { + "50": "#003321", + "100": "#005034", + "200": "#006e48", + "300": "#008b5b", + "400": "#00a96e", + "500": "#2db887", + "600": "#59c7a1", + "700": "#86d6ba", + "800": "#b3e5d4", + "900": "#dff4ed", + "foreground": "#000", + "DEFAULT": "#00a96e" + }, + "warning": { + "50": "#4d3900", + "100": "#795a00", + "200": "#a67c00", + "300": "#d29d00", + "400": "#ffbe00", + "500": "#ffc92d", + "600": "#ffd559", + "700": "#ffe086", + "800": "#ffecb3", + "900": "#fff7df", + "foreground": "#000", + "DEFAULT": "#ffbe00" + }, + "danger": { + "50": "#4d1a1d", + "100": "#792a2e", + "200": "#a6393f", + "300": "#d24950", + "400": "#ff5861", + "500": "#ff757d", + "600": "#ff9298", + "700": "#ffb0b4", + "800": "#ffcdd0", + "900": "#ffeaeb", + "foreground": "#000", + "DEFAULT": "#ff5861" + }, + "background": "#010b06", + "foreground": "#99d2ad", + "content1": { + "DEFAULT": "#14291c", + "foreground": "#fff" + }, + "content2": { + "DEFAULT": "#295237", + "foreground": "#fff" + }, + "content3": { + "DEFAULT": "#3d7a53", + "foreground": "#fff" + }, + "content4": { + "DEFAULT": "#52a36e", + "foreground": "#000" + }, + "focus": "#66cc8a", + "overlay": "#ffffff" + } + } + }, + "layout": { + "disabledOpacity": "0.5" + } +} diff --git a/examples/chat/hiking_agent.py b/examples/chat/hiking_agent.py new file mode 100644 index 000000000..2e8c8b6a6 --- /dev/null +++ b/examples/chat/hiking_agent.py @@ -0,0 +1,114 @@ +""" +Ragbits Chat Example: Chat Interface + +This example demonstrates how to use the ChatInterface to create a simple chat application with agent capabilities. +It showcases different response types, including text responses, live updates, and reference documents, as well as +the use of todo lists to help agents handle complex tasks. + +To run the script, execute the following command: + + ```bash + ragbits api run examples.chat.hiking_agent:MyChat + ``` +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-agents", +# "ragbits-chat", +# ] +# /// +# + +from collections.abc import AsyncGenerator + +from ragbits.agents import Agent +from ragbits.agents.tools.todo import TodoOrchestrator, TodoResult +from ragbits.chat.interface import ChatInterface +from ragbits.chat.interface.types import ChatContext, ChatResponse, LiveUpdateType +from ragbits.chat.interface.ui_customization import HeaderCustomization, PageMetaCustomization, UICustomization +from ragbits.core.llms import LiteLLM +from ragbits.core.prompt import ChatFormat + + +class MyChat(ChatInterface): + """A simple example implementation of the ChatInterface that demonstrates different response types.""" + + ui_customization = UICustomization( + header=HeaderCustomization(title="Example Ragbits Agent Chat", subtitle="by deepsense.ai", logo="🐰"), + welcome_message=( + "Hello! I'm your AI hiking trip assistant.\n\n How can I help you today? " + "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 + show_usage = True + + def __init__(self) -> None: + self.llm = LiteLLM(model_name="gpt-4o-mini") + self.todo_orchestrator = TodoOrchestrator() + self.agent = Agent( + llm=self.llm, + prompt=""" + You are an expert hiking guide. Provide detailed, comprehensive information + about hiking routes, gear, transportation, and safety considerations. + """, + ) + + async def chat( + self, + message: str, + history: ChatFormat, + context: ChatContext, + ) -> AsyncGenerator[ChatResponse, None]: + """ + Example implementation of the ChatInterface. + + Args: + message: The current user message + history: Optional list of previous messages in the conversation + context: Optional context + + Yields: + ChatResponse objects containing different types of content: + - Text chunks for the actual response + - Reference documents used to generate the response + """ + live_update_counter = 0 + + async for response in self.todo_orchestrator.run_todo_workflow_streaming( + self.agent, [*history, {"role": "user", "content": message}] + ): + match response: + case str(): + yield self.create_text_response(response) + case TodoResult(): + if response.type in ("status"): + yield self.create_live_update( + str(live_update_counter), LiveUpdateType.FINISH, response.message or "" + ) + live_update_counter += 1 + elif response.type in ("task_list"): + for task in response.tasks: + yield self.create_todo_item_response(task) + elif response.type in ("start_task"): + yield self.create_todo_item_response(response.current_task) + elif response.type in ("task_summary_start", "final_summary_start"): + yield self.create_live_update( + str(live_update_counter), LiveUpdateType.START, response.message or "" + ) + elif response.type in ("task_completed"): + yield self.create_live_update( + str(live_update_counter), LiveUpdateType.FINISH, response.message or "" + ) + yield self.create_todo_item_response(response.current_task) + live_update_counter += 1 + elif response.type in ("final_summary_end"): + yield self.create_live_update( + str(live_update_counter), LiveUpdateType.FINISH, response.message or "" + ) + live_update_counter += 1 diff --git a/examples/chat/themed_chat.py b/examples/chat/themed_chat.py new file mode 100644 index 000000000..e0d02b9ce --- /dev/null +++ b/examples/chat/themed_chat.py @@ -0,0 +1,49 @@ +""" +Example chat implementation with custom theme support. + +SUPER EASY USAGE: +1. Go to https://www.heroui.com/themes +2. Create your theme +3. Copy the JSON configuration +4. Save it as 'my-theme.json' +5. Run: ragbits api run examples.chat.themed_chat:MyChat --theme my-theme.json + +That's it! No manual conversion needed! +""" + +from collections.abc import AsyncGenerator + +from pydantic import BaseModel + +from ragbits.chat.interface import ChatInterface +from ragbits.chat.interface.types import ChatContext, ChatResponse +from ragbits.core.llms.litellm import LiteLLM +from ragbits.core.prompt import Prompt + + +class SimplePromptInput(BaseModel): + """Input for the simple chat prompt.""" + + query: str + + +class SimplePrompt(Prompt[SimplePromptInput]): + """Simple chat prompt with theme support.""" + + system_prompt = "You are a helpful assistant with a custom theme." + user_prompt = "User: {{ query }}" + + +class MyChat(ChatInterface): + """Chat interface implementation with custom theme support.""" + + def __init__(self): + self.llm = LiteLLM("gpt-3.5-turbo") + + async def chat(self, message: str, history: list[dict], context: ChatContext) -> AsyncGenerator[ChatResponse, None]: + """Handle chat messages and return streaming responses.""" + prompt_input = SimplePromptInput(query=message) + prompt = SimplePrompt(prompt_input) + response = await self.llm.generate(prompt) + + yield ChatInterface.create_text_response(str(response)) diff --git a/examples/evaluate/agent-benchmarking/example_agents.py b/examples/evaluate/agent-benchmarking/example_agents.py new file mode 100644 index 000000000..9bcecb191 --- /dev/null +++ b/examples/evaluate/agent-benchmarking/example_agents.py @@ -0,0 +1,314 @@ +""" +Agent definitions for benchmarking examples. + +Each agent is encapsulated in a class and instances are +declared at the bottom so they can be imported via the CLI helper +`import_agent_from_path` using file path forms, e.g.: + + - file path: "examples/evaluate/agent-benchmarking/example_agents.py:gaia_agent" + +Todo-augmented variants are exported as `_todo_agent` and wrap the base +agent with the `TodoAgent` orchestrator. +""" + +from collections.abc import Callable +from typing import Any, cast + +from ragbits.agents import Agent, AgentOptions, AgentResult +from ragbits.agents.tool import ToolCallResult +from ragbits.agents.tools.openai import get_web_search_tool +from ragbits.agents.tools.todo import TodoOrchestrator, TodoResult +from ragbits.core.llms import LiteLLM +from ragbits.core.llms.base import LLMClientOptionsT, Usage +from ragbits.core.prompt.base import BasePrompt + + +class TodoAgent(Agent[LLMClientOptionsT, None, str]): + """ + Agent wrapper that uses TodoOrchestrator to optionally decompose a query + into tasks and aggregate a final answer, while remaining compatible with + existing EvaluationPipelines that expect an Agent. + """ + + def __init__(self, agent: Agent[LLMClientOptionsT, None, str], domain_context: str = "") -> None: + super().__init__( + llm=agent.llm, + prompt=agent.prompt, + history=agent.history, + keep_history=False, + mcp_servers=agent.mcp_servers, + default_options=cast(AgentOptions[LLMClientOptionsT] | None, agent.default_options), + ) + self._inner_agent = agent + self._domain_context = domain_context + self._orchestrator = TodoOrchestrator(domain_context=domain_context) + + def __getattr__(self, name: str) -> object: + """Proxy missing attributes to the wrapped inner agent.""" + try: + return super().__getattribute__(name) + except AttributeError: + return getattr(self._inner_agent, name) + + async def run( + self, + input: str | None = None, + *_: Any, + **__: Any, + ) -> AgentResult[str]: + """Run the orchestrated flow and return a single final answer.""" + query = input or "" + + # Accumulate outputs from the orchestrated workflow + final_text: str = "" + tool_calls: list[ToolCallResult] | None = None + total_usage: Usage = Usage() + last_prompt: BasePrompt | None = None + + tasks_created = False + num_tasks = 0 + in_final_summary = False + final_summary_only: str = "" + + async for item in self._orchestrator.run_todo_workflow_streaming(self._inner_agent, query): + match item: + case str(): + final_text += item + if in_final_summary: + final_summary_only += item + case ToolCallResult(): + if tool_calls is None: + tool_calls = [] + tool_calls.append(item) + case Usage(): + total_usage += item + case BasePrompt(): + last_prompt = item + case TodoResult(): + if item.type == "final_summary_start": + in_final_summary = True + final_summary_only = "" + elif item.type == "final_summary_end": + in_final_summary = False + case _: + # Inspect orchestrator internal state to populate metadata + tasks_created = len(self._orchestrator.todo_list.tasks) > 0 + num_tasks = len(self._orchestrator.todo_list.tasks) + + # Compose metadata with TODO info + complexity = "COMPLEX" if tasks_created else "SIMPLE" + todo_meta: dict[str, Any] = { + "was_decomposed": bool(tasks_created), + "complexity_classification": complexity, + "num_tasks": int(num_tasks), + "domain_context": self._domain_context, + } + + # Build result compatible with existing pipelines + history = last_prompt.chat if last_prompt is not None else [] + + # If we had tasks and generated a final summary, use that; otherwise use all text + content_to_return = final_summary_only.strip() if final_summary_only else final_text.strip() + return AgentResult( + content=content_to_return, + metadata={"todo": todo_meta}, + tool_calls=tool_calls, + history=history, + usage=total_usage, + ) + + +class AgentHumanEval: + """Factory for the HumanEval base agent.""" + + @staticmethod + def build_system_prompt() -> str: + """Return the system prompt for HumanEval.""" + return "\n".join( + [ + "You are an expert Python engineer.", + "Implement exactly one function that solves the problem.", + "Output ONLY the function as plain Python (no markdown). Include necessary imports.", + "Do not include explanations or comments.", + ] + ) + + @classmethod + def build(cls) -> Agent: + """Build the HumanEval agent and attach code sanitization callable.""" + agent: Agent = Agent( + llm=LiteLLM("gpt-4.1-mini"), + prompt=cls.build_system_prompt(), + tools=[], + default_options=AgentOptions(max_turns=30), + ) + agent.code_sanitize_fn = cls.sanitize_code # type: ignore[attr-defined] + return agent + + @staticmethod + def sanitize_code(text: str) -> str: + """Remove markdown fences and keep only Python function text returned by the model.""" + cleaned = text.replace("\r\n", "\n").replace("\r", "\n").strip() + if "```" in cleaned: + start = cleaned.find("```") + end = cleaned.find("```", start + 3) + if end != -1: + inside = cleaned[start + 3 : end].lstrip() + if "\n" in inside: + first, rest = inside.split("\n", 1) + cleaned = rest if first.strip().lower().startswith("python") else inside + else: + cleaned = inside + return cleaned.strip() + + +class AgentHotpot: + """Factory for the HotpotQA base agent.""" + + @staticmethod + def build_system_prompt() -> str: + """Return the system prompt for HotpotQA.""" + return ( + "You are a helpful assistant. Use the provided context to answer.\n" + "Respond on a single line as: 'Answer: '.\n" + "- If yes/no, respond 'Answer: yes' or 'Answer: no'.\n" + "- If a name or title is required, provide only that after 'Answer:'.\n" + "- Do not add any extra text beyond the Answer line.\n" + "Keep the answer concise." + ) + + @classmethod + def build(cls) -> Agent: + """Build the HotpotQA agent and attach parsing helpers.""" + agent: Agent = Agent( + llm=LiteLLM("gpt-4.1-mini"), + prompt=cls.build_system_prompt(), + tools=[], + default_options=AgentOptions(max_turns=5), + ) + agent.parse_final_answer = cls.parse_final_answer # type: ignore[attr-defined] + agent.question_generation_prompt_fn = cls.build_question_generation_prompt # type: ignore[attr-defined] + return agent + + @staticmethod + def parse_final_answer(text: str) -> str: + """Extract and normalize the final answer from model text output.""" + marker = "Answer:" + idx = text.rfind(marker) + if idx == -1: + return text.strip() + candidate = text[idx + len(marker) :].strip() + if candidate.startswith("<") and candidate.endswith(">"): + candidate = candidate[1:-1].strip() + return candidate + + @staticmethod + def build_question_generation_prompt(original_question: str, accumulated_context: str) -> str: + """Construct the next-hop question prompt for multi-hop retrieval.""" + return ( + f"Original question: {original_question}\n\n" + f"Context so far: \n{accumulated_context}\n\n" + "Write ONE new, specific search question that fills the key missing info.\n" + "Do not repeat known facts. Return ONLY the question." + ) + + +class AgentGAIA: + """Factory for the GAIA base agent with extra tools.""" + + @staticmethod + def add(a: int, b: int) -> int: + """Add two integers.""" + return a + b + + @staticmethod + def subtract(a: int, b: int) -> int: + """Subtract two integers.""" + return a - b + + @staticmethod + def multiply(a: int, b: int) -> int: + """Multiply two integers.""" + return a * b + + @staticmethod + def divide(a: int, b: int) -> float: + """Divide two integers as float.""" + if b == 0: + raise ValueError("Cannot divide by zero.") + return a / b + + @staticmethod + def modulus(a: int, b: int) -> int: + """Compute remainder a % b.""" + if b == 0: + raise ValueError("Cannot divide by zero.") + return a % b + + @classmethod + def get_extra_instruction_tpl(cls) -> str: + """Return tool usage instruction template.""" + return ( + "Tools (use when needed):\n" + "- add(a, b), subtract(a, b), multiply(a, b), divide(a, b), modulus(a, b)\n" + "- web_search -> OpenAI websearch tool\n" + ) + + @classmethod + def build_system_prompt(cls) -> str: + """Return the GAIA system prompt with tool instructions.""" + gaia_prompt = ( + "You are a general AI assistant. Provide a concise solution and finish with:\n" + "FINAL ANSWER: [your final answer].\n" + "Rules for FINAL ANSWER: use digits for numbers (no units unless requested);\n" + "prefer few words for strings; for lists, return a comma-separated list." + ) + return "\n".join([gaia_prompt, cls.get_extra_instruction_tpl()]) + + @classmethod + def build_tools(cls) -> list[Callable[..., Any]]: + """Return the callable toolset used by the GAIA agent.""" + tools: list[Callable[..., Any]] = [ + cls.add, + cls.subtract, + cls.multiply, + cls.divide, + cls.modulus, + cast(Callable[..., Any], get_web_search_tool(model_name="gpt-4.1-mini")), + ] + return tools + + @classmethod + def build(cls) -> Agent: + """Build the GAIA agent and attach final-answer parser.""" + agent: Agent = Agent( + llm=LiteLLM("gpt-4.1-mini"), + prompt=cls.build_system_prompt(), + tools=cls.build_tools(), + default_options=AgentOptions(max_turns=30), + ) + agent.parse_final_answer = cls.parse_final_answer # type: ignore[attr-defined] + return agent + + @staticmethod + def parse_final_answer(text: str) -> str: + """Extract the FINAL ANSWER segment from model output.""" + marker = "FINAL ANSWER:" + idx = text.rfind(marker) + if idx == -1: + return text.strip() + candidate = text[idx + len(marker) :].strip() + if candidate.startswith("[") and candidate.endswith("]"): + candidate = candidate[1:-1].strip() + return candidate + + +# Export agent instances for import +humaneval_agent: Agent = AgentHumanEval.build() +humaneval_todo_agent: Agent = TodoAgent(agent=humaneval_agent, domain_context="python engineer") + +hotpot_agent: Agent = AgentHotpot.build() +hotpot_todo_agent: Agent = TodoAgent(agent=hotpot_agent, domain_context="research QA") + +gaia_agent: Agent = AgentGAIA.build() +gaia_todo_agent: Agent = TodoAgent(agent=gaia_agent, domain_context="general AI assistant") diff --git a/examples/evaluate/agent-benchmarking/run_gaia.py b/examples/evaluate/agent-benchmarking/run_gaia.py new file mode 100644 index 000000000..a3720c4f3 --- /dev/null +++ b/examples/evaluate/agent-benchmarking/run_gaia.py @@ -0,0 +1,88 @@ +""" +Ragbits Evaluation Example: GAIA + +This example evaluates GAIA using any agent provided via a path compatible with +the CLI's `import_agent_from_path` utility, e.g.: + +uv run python examples/evaluate/agent-benchmarking/run_gaia.py \ + --agent_path examples/evaluate/agent-benchmarking/example_agents.py:gaia_agent + +To use the Todo-enabled variant, pass `gaia_todo_agent`. The script will +conditionally print TODO stats when the agent is Todo-based and extended logs +are enabled. +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-agents", +# "ragbits-core", +# "ragbits-evaluate", +# ] +# /// + +import argparse +import asyncio +import logging +from pathlib import Path + +from ragbits.agents import Agent +from ragbits.agents.cli import import_agent_from_path +from ragbits.core.sources.hf import HuggingFaceSource +from ragbits.evaluate.dataloaders.gaia import GaiaDataLoader +from ragbits.evaluate.evaluator import Evaluator +from ragbits.evaluate.metrics.base import MetricSet +from ragbits.evaluate.metrics.gaia import GaiaEfficiency, GaiaOutcome, GaiaTooling +from ragbits.evaluate.pipelines.gaia import GaiaPipeline + + +async def main(agent_path: str | None) -> None: + """Run GAIA evaluation with a pluggable agent.""" + logging.getLogger("LiteLLM").setLevel(logging.ERROR) + + default_agent_path = "examples/evaluate/agent-benchmarking/example_agents.py:gaia_agent" + evaluation_target: Agent = import_agent_from_path(agent_path or default_agent_path) + + # Data loader + source = HuggingFaceSource(path="gaia-benchmark/GAIA", name="2023_level1", split="validation") + dataloader = GaiaDataLoader(source=source, split="data[:10]", skip_file_attachments=True) + + # Pipeline + use_todo = evaluation_target.__class__.__name__ == "TodoAgent" + log_file = "gaia_todo_examples.ndjson" if use_todo else "gaia_examples.ndjson" + log_path = Path(__file__).with_name(log_file) + + pipeline = GaiaPipeline( + evaluation_target=evaluation_target, + per_example_log_file=log_path, + extended_logs=use_todo, + parse_answer_fn=evaluation_target.parse_final_answer, + ) + + # Metrics + metrics = MetricSet(GaiaOutcome(), GaiaTooling(), GaiaEfficiency()) + + evaluator = Evaluator(batch_size=5, parallelize_batches=True) + results = await evaluator.compute(pipeline=pipeline, dataloader=dataloader, metricset=metrics) + + print("Metrics:") + for key, value in results.metrics.items(): + print(f" {key}: {value:.4f}") + + if use_todo: + from utils import print_todo_stats + + await print_todo_stats(log_path, dataloader) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="GAIA evaluation") + parser.add_argument( + "--agent_path", + type=str, + default=None, + help=("Path to agent 'path/to/file.py:var'. " "Defaults to exported gaia_agent in example_agents."), + ) + args = parser.parse_args() + + asyncio.run(main(args.agent_path)) diff --git a/examples/evaluate/agent-benchmarking/run_hotpot.py b/examples/evaluate/agent-benchmarking/run_hotpot.py new file mode 100644 index 000000000..e3cbed0c1 --- /dev/null +++ b/examples/evaluate/agent-benchmarking/run_hotpot.py @@ -0,0 +1,93 @@ +""" +Ragbits Evaluation Example: HotpotQA + +This example evaluates HotpotQA using any agent provided via a path compatible +with the CLI's `import_agent_from_path` utility, e.g.: + +uv run python examples/evaluate/agent-benchmarking/run_hotpot.py \ + --agent_path examples/evaluate/agent-benchmarking/example_agents.py:hotpot_agent + +If you want to use the Todo-enabled variant, pass `hotpot_todo_agent` instead. +The script will conditionally print TODO stats when the agent is Todo-based and +extended logs are enabled. +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-agents", +# "ragbits-core", +# "ragbits-document-search", +# "ragbits-evaluate", +# ] +# /// + +import argparse +import asyncio +import logging +from pathlib import Path + +from utils import build_hotpot_retriever, print_todo_stats + +from ragbits.agents import Agent +from ragbits.agents.cli import import_agent_from_path +from ragbits.core.sources.hf import HuggingFaceSource +from ragbits.evaluate.dataloaders.hotpot_qa import HotpotQADataLoader +from ragbits.evaluate.evaluator import Evaluator +from ragbits.evaluate.metrics.base import MetricSet +from ragbits.evaluate.metrics.hotpot_qa import HotpotQAExactMatch, HotpotQAF1 +from ragbits.evaluate.pipelines.hotpot_qa import HotpotQAPipeline + + +async def main(agent_path: str | None) -> None: + """Run HotpotQA evaluation with a pluggable agent.""" + logging.getLogger("LiteLLM").setLevel(logging.ERROR) + + # Load agent from path or fall back to default exported example agent + default_agent_path = "examples/evaluate/agent-benchmarking/example_agents.py:hotpot_agent" + evaluation_target: Agent = import_agent_from_path(agent_path or default_agent_path) + + # Data loader + source = HuggingFaceSource(path="hotpotqa/hotpot_qa", name="distractor", split="validation") + dataloader = HotpotQADataLoader(source=source, split="data[:5]", level_filter="hard") + + # Pipeline + use_todo = evaluation_target.__class__.__name__ == "TodoAgent" + log_file = "hotpot_todo_examples.ndjson" if use_todo else "hotpot_examples.ndjson" + log_path = Path(__file__).with_name(log_file) + + pipeline = HotpotQAPipeline( + evaluation_target=evaluation_target, + retriever=build_hotpot_retriever(), + hops=3, + per_example_log_file=log_path, + extended_logs=use_todo, + parse_answer_fn=evaluation_target.parse_final_answer, + question_generation_prompt_fn=evaluation_target.question_generation_prompt_fn, + ) + + # Metrics + metrics = MetricSet(HotpotQAExactMatch(), HotpotQAF1()) + + evaluator = Evaluator(batch_size=5, parallelize_batches=True) + results = await evaluator.compute(pipeline=pipeline, dataloader=dataloader, metricset=metrics) + + print("Metrics:") + for key, value in results.metrics.items(): + print(f" {key}: {value:.4f}") + + if use_todo: + await print_todo_stats(log_path, dataloader) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="HotpotQA evaluation") + parser.add_argument( + "--agent_path", + type=str, + default=None, + help=("Path to agent 'path/to/file.py:var'. " "Defaults to exported hotpot_agent in example_agents."), + ) + args = parser.parse_args() + + asyncio.run(main(args.agent_path)) diff --git a/examples/evaluate/agent-benchmarking/run_humaneval.py b/examples/evaluate/agent-benchmarking/run_humaneval.py new file mode 100644 index 000000000..d5a775f88 --- /dev/null +++ b/examples/evaluate/agent-benchmarking/run_humaneval.py @@ -0,0 +1,91 @@ +""" +Ragbits Evaluation Example: HumanEval + +This example evaluates HumanEval using any agent provided via a path compatible +with the CLI's `import_agent_from_path` utility, e.g.: + +uv run python examples/evaluate/agent-benchmarking/run_humaneval.py \ + --agent_path=examples/evaluate/agent-benchmarking/example_agents.py:humaneval_agent + +To run in Todo-enabled mode, pass `humaneval_todo_agent`. The script will +conditionally print TODO stats when the agent is Todo-based and extended logs +are enabled. +""" + +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ragbits-agents", +# "ragbits-core", +# "ragbits-evaluate", +# ] +# /// + +import argparse +import asyncio +import logging +from pathlib import Path + +from ragbits.agents import Agent +from ragbits.agents.cli import import_agent_from_path +from ragbits.core.sources.hf import HuggingFaceSource +from ragbits.evaluate.dataloaders.human_eval import HumanEvalDataLoader +from ragbits.evaluate.evaluator import Evaluator +from ragbits.evaluate.metrics.base import MetricSet +from ragbits.evaluate.metrics.human_eval import HumanEvalPassAtK, HumanEvalQualityPerf +from ragbits.evaluate.pipelines.human_eval import HumanEvalPipeline + + +async def main(agent_path: str | None) -> None: + """Run HumanEval with a pluggable agent.""" + logging.getLogger("LiteLLM").setLevel(logging.ERROR) + + default_agent_path = "examples/evaluate/agent-benchmarking/example_agents.py:humaneval_agent" + evaluation_target: Agent = import_agent_from_path(agent_path or default_agent_path) + + # Data + source = HuggingFaceSource(path="openai/openai_humaneval", split="test") + dataloader = HumanEvalDataLoader(source=source, split="data[:2]") + + # Pipeline + use_todo = evaluation_target.__class__.__name__ == "TodoAgent" + log_file = "humaneval_todo_examples.ndjson" if use_todo else "humaneval_examples.ndjson" + log_path = Path(__file__).with_name(log_file) + + pipeline = HumanEvalPipeline( + evaluation_target=evaluation_target, + n_samples=5, + timeout_sec=30, + per_example_log_file=log_path, + extended_logs=use_todo, + code_sanitize_fn=evaluation_target.code_sanitize_fn, + ) + + # Metrics + metrics = MetricSet(HumanEvalPassAtK(k=1), HumanEvalPassAtK(k=5), HumanEvalQualityPerf()) + + # Evaluate + evaluator = Evaluator(batch_size=5, parallelize_batches=True) + results = await evaluator.compute(pipeline=pipeline, dataloader=dataloader, metricset=metrics) + + print("Metrics:") + for key, value in results.metrics.items(): + print(f" {key}: {value:.4f}") + + if use_todo: + from utils import print_todo_stats + + await print_todo_stats(log_path, dataloader) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="HumanEval evaluation") + parser.add_argument( + "--agent_path", + type=str, + default=None, + help=("Path to agent 'path/to/file.py:var'. " "Defaults to exported humaneval_agent in example_agents."), + ) + args = parser.parse_args() + + asyncio.run(main(args.agent_path)) diff --git a/examples/evaluate/agent-benchmarking/utils.py b/examples/evaluate/agent-benchmarking/utils.py new file mode 100644 index 000000000..67df1b679 --- /dev/null +++ b/examples/evaluate/agent-benchmarking/utils.py @@ -0,0 +1,66 @@ +import json +from collections.abc import Iterable +from pathlib import Path +from typing import Any, Protocol + +from ragbits.core.embeddings import LiteLLMEmbedder +from ragbits.core.vector_stores import VectorStoreOptions +from ragbits.core.vector_stores.in_memory import InMemoryVectorStore +from ragbits.document_search import DocumentSearch +from ragbits.document_search.ingestion.strategies import BatchedIngestStrategy + + +def build_hotpot_retriever() -> DocumentSearch: + """Create a lightweight in-memory retriever for HotpotQA.""" + return DocumentSearch( + vector_store=InMemoryVectorStore( + embedder=LiteLLMEmbedder(model_name="text-embedding-3-small"), + default_options=VectorStoreOptions(k=5), + ), + ingest_strategy=BatchedIngestStrategy(index_batch_size=1000), + ) + + +class _SupportsLoad(Protocol): + async def load(self) -> Iterable[Any]: ... + + +async def print_todo_stats(log_path: Path, dataloader: _SupportsLoad) -> None: + """Print aggregated TODO-agent statistics from extended logs. + + Works across benchmarks if extended logs include the orchestrator metadata. + """ + print("\nTODO Orchestrator Statistics:") + decomposed_count = 0 + total_tasks = 0 + simple_count = 0 + complex_count = 0 + + if log_path.exists(): + with open(log_path, encoding="utf-8") as f: + for line in f: + record = json.loads(line) + debug_log = record.get("extended_debug_logging", "[]") + if debug_log and debug_log != "[]": + debug_data = json.loads(debug_log) + if debug_data and len(debug_data) > 0: + metadata = (debug_data[0] or {}).get("metadata", {}) + todo_meta = metadata.get("todo", {}) + + if todo_meta.get("was_decomposed"): + decomposed_count += 1 + total_tasks += int(todo_meta.get("num_tasks", 0)) + + if todo_meta.get("complexity_classification") == "SIMPLE": + simple_count += 1 + elif todo_meta.get("complexity_classification") == "COMPLEX": + complex_count += 1 + + loaded = await dataloader.load() + items = list(loaded) + total = len(items) + rate = (decomposed_count / total * 100) if total else 0.0 + avg_tasks = (total_tasks / decomposed_count) if decomposed_count else 0.0 + print(f" Decomposition rate: {decomposed_count}/{total} ({rate:.1f}%)") + print(f" Average tasks per decomposed query: {avg_tasks:.1f}") + print(f" Complexity classification: {simple_count} simple, {complex_count} complex") diff --git a/mkdocs.yml b/mkdocs.yml index e90e422ad..a62180d7c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -40,6 +40,8 @@ nav: - "Define and use agents": how-to/agents/define_and_use_agents.md - "Provide tools with MCP": how-to/agents/provide_mcp_tools.md - "Serve agents with A2A": how-to/agents/serve_ragbits_agents.md + - "Use post-processors": how-to/agents/use_post_processors.md + - "Stream downstream agents": how-to/agents/stream_downstream_agents.md - Guardrails: - "Setup guardrails": how-to/guardrails/use_guardrails.md - Chatbots: diff --git a/package-lock.json b/package-lock.json index fb44e87a5..50f24ad59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14988,7 +14988,7 @@ } }, "typescript/@ragbits/api-client": { - "version": "1.2.2", + "version": "1.3.0", "license": "MIT", "devDependencies": { "@eslint/js": "^9.17.0", @@ -15007,7 +15007,7 @@ } }, "typescript/@ragbits/api-client-react": { - "version": "1.2.2", + "version": "1.3.0", "license": "MIT", "dependencies": { "@ragbits/api-client": "*" @@ -15038,7 +15038,7 @@ } }, "typescript/ui": { - "version": "1.2.2", + "version": "1.3.0", "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 52949840d..22966f324 100644 --- a/packages/ragbits-agents/CHANGELOG.md +++ b/packages/ragbits-agents/CHANGELOG.md @@ -2,7 +2,23 @@ ## Unreleased +- Add Support for Thinking in agents (#837) +- Add parallel tool calling support to agents for concurrent tool execution (#836) +- TodoOrchestrator & Todo list for agent (#823) +- Support wrapping downstream agents as tools (#818) +- Add syntax sugar allowing easier Agents definition (#820) +- Add post-processors (#821) +- Support streaming from downstream agents (#812) +- Support wrapping downstream agents as tools (#818) +- Add syntax sugar allowing easier Agents definition (#820) +- Add post-processors (#821) +- Support streaming from downstream agents (#812) +- Add supervisor post-processor (#830) +- Add support for todo lists generated by agents with examples (#827) +- Add long-term semantic memory tools for agents (#839) + ## 1.3.0 (2025-09-11) + ### Changed - ragbits-core updated to version v1.3.0 @@ -13,6 +29,7 @@ - Add unique ID to each agent instance for better tracking and identification (#790) - Add audit tracing for tool calls to improve observability and debugging (#790) - Add AgentDependencies type (#781) +- Add parallel tool calling in agent ## 1.2.2 (2025-08-08) diff --git a/packages/ragbits-agents/pyproject.toml b/packages/ragbits-agents/pyproject.toml index 77a5137fb..c471c2af5 100644 --- a/packages/ragbits-agents/pyproject.toml +++ b/packages/ragbits-agents/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ragbits-agents" -version = "1.3.0" +version = "1.4.0.dev202509121038" description = "Building blocks for rapid development of GenAI applications" readme = "README.md" requires-python = ">=3.10" @@ -31,7 +31,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", ] -dependencies = ["ragbits-core==1.3.0"] +dependencies = ["ragbits-core==1.4.0.dev202509121038"] [project.optional-dependencies] a2a = [ diff --git a/packages/ragbits-agents/src/ragbits/agents/__init__.py b/packages/ragbits-agents/src/ragbits/agents/__init__.py index 7a7036895..6f770071e 100644 --- a/packages/ragbits-agents/src/ragbits/agents/__init__.py +++ b/packages/ragbits-agents/src/ragbits/agents/__init__.py @@ -5,8 +5,12 @@ AgentResult, AgentResultStreaming, AgentRunContext, + DownstreamAgentResult, + ToolCall, ToolCallResult, ) +from ragbits.agents.post_processors.base import PostProcessor, StreamingPostProcessor +from ragbits.agents.tools import LongTermMemory, MemoryEntry, create_memory_tools from ragbits.agents.types import QuestionAnswerAgent, QuestionAnswerPromptInput, QuestionAnswerPromptOutput __all__ = [ @@ -16,8 +20,15 @@ "AgentResult", "AgentResultStreaming", "AgentRunContext", + "DownstreamAgentResult", + "LongTermMemory", + "MemoryEntry", + "PostProcessor", "QuestionAnswerAgent", "QuestionAnswerPromptInput", "QuestionAnswerPromptOutput", + "StreamingPostProcessor", + "ToolCall", "ToolCallResult", + "create_memory_tools", ] diff --git a/packages/ragbits-agents/src/ragbits/agents/_main.py b/packages/ragbits-agents/src/ragbits/agents/_main.py index d6e08f7a6..43783c1c4 100644 --- a/packages/ragbits-agents/src/ragbits/agents/_main.py +++ b/packages/ragbits-agents/src/ragbits/agents/_main.py @@ -1,19 +1,25 @@ import asyncio +import types import uuid from collections.abc import AsyncGenerator, AsyncIterator, Callable +from collections.abc import AsyncGenerator as _AG 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, TypeVar, cast, overload +from typing import Any, ClassVar, Generic, Literal, TypeVar, Union, cast, overload -from pydantic import BaseModel, Field +from pydantic import ( + BaseModel, + Field, +) from typing_extensions import Self from ragbits import agents from ragbits.agents.exceptions import ( + AgentInvalidPostProcessorError, AgentInvalidPromptInputError, AgentMaxTokensExceededError, AgentMaxTurnsExceededError, @@ -25,9 +31,23 @@ ) from ragbits.agents.mcp.server import MCPServer, MCPServerStdio, MCPServerStreamableHttp from ragbits.agents.mcp.utils import get_tools +from ragbits.agents.post_processors.base import ( + BasePostProcessor, + PostProcessor, + StreamingPostProcessor, + stream_with_post_processing, +) 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.llms.base import ( + LLM, + LLMClientOptionsT, + LLMOptions, + LLMResponseWithMetadata, + Reasoning, + ToolCall, + Usage, +) from ragbits.core.options import Options from ragbits.core.prompt.base import BasePrompt, ChatFormat, SimplePrompt from ragbits.core.prompt.prompt import Prompt, PromptInputT, PromptOutputT @@ -42,6 +62,29 @@ from ragbits.core.llms import LiteLLM +_Input = TypeVar("_Input", bound=BaseModel) +_Output = TypeVar("_Output") + + +@dataclass +class DownstreamAgentResult: + """ + Represents a streamed item from a downstream agent while executing a tool. + """ + + agent_id: str | None + """ID of the downstream agent.""" + item: Union[ + str, + ToolCall, + ToolCallResult, + "DownstreamAgentResult", + BasePrompt, + Usage, + SimpleNamespace, + ] + """The streamed item from the downstream agent.""" + @dataclass class AgentResult(Generic[PromptOutputT]): @@ -59,6 +102,8 @@ class AgentResult(Generic[PromptOutputT]): """Tool calls run by the agent.""" usage: Usage = Field(default_factory=Usage) """The token usage of the agent run.""" + reasoning_traces: list[str] | None = None + """Reasoning traces from the agent run (only if log_reasoning is enabled).""" class AgentOptions(Options, Generic[LLMClientOptionsT]): @@ -80,6 +125,11 @@ class AgentOptions(Options, Generic[LLMClientOptionsT]): max_completion_tokens: int | None | NotGiven = NOT_GIVEN """The maximum number of completion tokens the agent can use, if NOT_GIVEN or None, agent will run forever""" + log_reasoning: bool = False + """Whether to log/persist reasoning traces for debugging and evaluation.""" + parallel_tool_calling: bool = False + """Whether to run the tools concurrently if multiple of them are requested by an LLM. Synchronous tools will be + run in a separate thread using `asyncio.to_thread`""" DepsT = TypeVar("DepsT") @@ -144,13 +194,42 @@ def __contains__(self, key: str) -> bool: class AgentRunContext(BaseModel, Generic[DepsT]): """Context for the agent run.""" + model_config = {"arbitrary_types_allowed": True} + deps: AgentDependencies[DepsT] = Field(default_factory=lambda: AgentDependencies()) """Container for external dependencies.""" usage: Usage = Field(default_factory=Usage) """The usage of the agent.""" + stream_downstream_events: bool = False + """Whether to stream events from downstream agents when tools execute other agents.""" + downstream_agents: dict[str, "Agent"] = Field(default_factory=dict) + """Registry of all agents that participated in this run""" + + def register_agent(self, agent: "Agent") -> None: + """ + Register a downstream agent in this context. + Args: + agent: The agent instance to register. + """ + self.downstream_agents[agent.id] = agent -class AgentResultStreaming(AsyncIterator[str | ToolCall | ToolCallResult]): + def get_agent(self, agent_id: str) -> "Agent | None": + """ + Retrieve a registered downstream agent by its ID. + + Args: + agent_id: The unique identifier of the agent. + + Returns: + The Agent instance if found, otherwise None. + """ + return self.downstream_agents.get(agent_id) + + +class AgentResultStreaming( + AsyncIterator[str | ToolCall | ToolCallResult | BasePrompt | Usage | SimpleNamespace | DownstreamAgentResult] +): """ An async iterator that will collect all yielded items by LLM.generate_streaming(). This object is returned by `run_streaming`. It can be used in an `async for` loop to process items as they arrive. After the loop completes, @@ -158,21 +237,30 @@ class AgentResultStreaming(AsyncIterator[str | ToolCall | ToolCallResult]): """ def __init__( - self, generator: AsyncGenerator[str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage] + self, + generator: AsyncGenerator[ + str | ToolCall | ToolCallResult | DownstreamAgentResult | SimpleNamespace | BasePrompt | Usage + ], ): self._generator = generator self.content: str = "" self.tool_calls: list[ToolCallResult] | None = None + self.downstream: dict[str | None, list[str | ToolCall | ToolCallResult]] = {} self.metadata: dict = {} self.history: ChatFormat self.usage: Usage = Usage() - def __aiter__(self) -> AsyncIterator[str | ToolCall | ToolCallResult]: + def __aiter__( + self, + ) -> AsyncIterator[str | ToolCall | ToolCallResult | BasePrompt | Usage | SimpleNamespace | DownstreamAgentResult]: return self - async def __anext__(self) -> str | ToolCall | ToolCallResult: + async def __anext__( + self, + ) -> str | ToolCall | ToolCallResult | BasePrompt | Usage | SimpleNamespace | DownstreamAgentResult: try: item = await self._generator.__anext__() + match item: case str(): self.content += item @@ -182,23 +270,28 @@ async def __anext__(self) -> str | ToolCall | ToolCallResult: if self.tool_calls is None: self.tool_calls = [] self.tool_calls.append(item) + case DownstreamAgentResult(): + if item.agent_id not in self.downstream: + self.downstream[item.agent_id] = [] + if isinstance(item.item, str | ToolCall | ToolCallResult): + self.downstream[item.agent_id].append(item.item) case BasePrompt(): item.add_assistant_message(self.content) self.history = item.chat - item = await self._generator.__anext__() - item = cast(SimpleNamespace, item) - item.result = { - "content": self.content, - "metadata": self.metadata, - "tool_calls": self.tool_calls, - } - raise StopAsyncIteration case Usage(): self.usage = item + # continue loop instead of tail recursion return await self.__anext__() + case SimpleNamespace(): + result_dict = getattr(item, "result", {}) + self.content = result_dict.get("content", self.content) + self.metadata = result_dict.get("metadata", self.metadata) + self.tool_calls = result_dict.get("tool_calls", self.tool_calls) case _: raise ValueError(f"Unexpected item: {item}") + return item + except StopAsyncIteration: raise @@ -215,10 +308,17 @@ class Agent( options_cls: type[AgentOptions] = AgentOptions default_module: ClassVar[ModuleType | None] = agents configuration_key: ClassVar[str] = "agent" + # Syntax sugar fields + user_prompt: ClassVar[str] = "{{ input }}" + system_prompt: ClassVar[str | None] = None + input_type: PromptInputT | None = None + prompt_cls: ClassVar[type[Prompt] | None] = None def __init__( self, llm: LLM[LLMClientOptionsT], + name: str | None = None, + description: str | None = None, prompt: str | type[Prompt[PromptInputT, PromptOutputT]] | Prompt[PromptInputT, PromptOutputT] | None = None, *, history: ChatFormat | None = None, @@ -232,6 +332,8 @@ def __init__( Args: llm: The LLM to run the agent. + name: Optional name of the agent. Used to identify the agent instance. + description: Optional description of the agent. prompt: The prompt for the agent. Can be: - str: A string prompt that will be used as system message when combined with string input, or as the user message when no input is provided during run(). @@ -248,11 +350,27 @@ def __init__( self.id = uuid.uuid4().hex[:8] self.llm = llm self.prompt = prompt - self.tools = [Tool.from_callable(tool) for tool in tools or []] + self.name = name + self.description = description + self.tools = [] + for tool in tools or []: + if isinstance(tool, tuple): + agent, kwargs = tool + self.tools.append(Tool.from_agent(agent, **kwargs)) + elif isinstance(tool, Agent): + self.tools.append(Tool.from_agent(tool)) + else: + self.tools.append(Tool.from_callable(tool)) self.mcp_servers = mcp_servers or [] self.history = history or [] self.keep_history = keep_history + if getattr(self, "system_prompt", None) and not getattr(self, "input_type", None): + raise ValueError( + f"Agent {type(self).__name__} defines a system_prompt but has no input_type. ", + "Use Agent.prompt decorator to properly assign it.", + ) + @overload async def run( self: "Agent[LLMClientOptionsT, None, PromptOutputT]", @@ -260,6 +378,7 @@ async def run( options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, tool_choice: ToolChoice | None = None, + post_processors: list[PostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] | None = None, ) -> AgentResult[PromptOutputT]: ... @overload @@ -269,6 +388,7 @@ async def run( options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, tool_choice: ToolChoice | None = None, + post_processors: list[PostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] | None = None, ) -> AgentResult[PromptOutputT]: ... async def run( @@ -277,6 +397,7 @@ async def run( options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, tool_choice: ToolChoice | None = None, + post_processors: list[PostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] | None = None, ) -> AgentResult[PromptOutputT]: """ Run the agent. The method is experimental, inputs and outputs may change in the future. @@ -293,6 +414,7 @@ async def run( - "none": do not call tool - "required: enforce tool usage (model decides which one) - Callable: one of provided tools + post_processors: List of post-processors to apply to the response in order. Returns: The result of the agent run. @@ -304,6 +426,24 @@ async def run( AgentInvalidPromptInputError: If the prompt/input combination is invalid. AgentMaxTurnsExceededError: If the maximum number of turns is exceeded. """ + result = await self._run_without_post_processing(input, options, context, tool_choice) + + if post_processors: + for processor in post_processors: + result = await processor.process(result, self, options, context) + + return result + + async def _run_without_post_processing( + self, + input: str | PromptInputT | None, + options: AgentOptions[LLMClientOptionsT] | None = None, + context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, + ) -> AgentResult[PromptOutputT]: + """ + Run the agent without applying post-processors. + """ if context is None: context = AgentRunContext() @@ -314,6 +454,7 @@ async def run( prompt_with_history = self._get_prompt_with_history(input) tools_mapping = await self._get_all_tools() tool_calls = [] + reasoning_traces: list[str] = [] turn_count = 0 max_turns = merged_options.max_turns @@ -332,14 +473,18 @@ async def run( ) context.usage += response.usage or Usage() + if merged_options.log_reasoning and response.reasoning: + reasoning_traces.append(response.reasoning) + if not response.tool_calls: break - for tool_call in response.tool_calls: - result = await self._execute_tool(tool_call=tool_call, tools_mapping=tools_mapping, context=context) - tool_calls.append(result) - - prompt_with_history = prompt_with_history.add_tool_use_message(**result.__dict__) + async for result in self._execute_tool_calls( + response.tool_calls, tools_mapping, context, merged_options.parallel_tool_calling + ): + if isinstance(result, ToolCallResult): + tool_calls.append(result) + prompt_with_history = prompt_with_history.add_tool_use_message(**result.__dict__) turn_count += 1 else: @@ -350,6 +495,8 @@ async def run( "metadata": response.metadata, "tool_calls": tool_calls or None, } + if merged_options.log_reasoning and reasoning_traces: + outputs.result["reasoning_traces"] = reasoning_traces prompt_with_history = prompt_with_history.add_assistant_message(response.content) @@ -362,6 +509,7 @@ async def run( tool_calls=tool_calls or None, history=prompt_with_history.chat, usage=context.usage, + reasoning_traces=reasoning_traces or None, ) @overload @@ -371,6 +519,33 @@ def run_streaming( options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, tool_choice: ToolChoice | None = None, + post_processors: list[StreamingPostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] | None = None, + *, + allow_non_streaming: bool = False, + ) -> AgentResultStreaming: ... + + @overload + def run_streaming( + self: "Agent[LLMClientOptionsT, None, PromptOutputT]", + input: str | None = None, + options: AgentOptions[LLMClientOptionsT] | None = None, + context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, + post_processors: list[BasePostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] | None = None, + *, + allow_non_streaming: Literal[True], + ) -> AgentResultStreaming: ... + + @overload + def run_streaming( + self: "Agent[LLMClientOptionsT, PromptInputT, PromptOutputT]", + input: PromptInputT, + options: AgentOptions[LLMClientOptionsT] | None = None, + context: AgentRunContext | None = None, + tool_choice: ToolChoice | None = None, + post_processors: list[StreamingPostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] | None = None, + *, + allow_non_streaming: bool = False, ) -> AgentResultStreaming: ... @overload @@ -380,6 +555,9 @@ def run_streaming( options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, tool_choice: ToolChoice | None = None, + post_processors: list[BasePostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] | None = None, + *, + allow_non_streaming: Literal[True], ) -> AgentResultStreaming: ... def run_streaming( @@ -388,6 +566,13 @@ def run_streaming( options: AgentOptions[LLMClientOptionsT] | None = None, context: AgentRunContext | None = None, tool_choice: ToolChoice | None = None, + post_processors: ( + list[StreamingPostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] + | list[BasePostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] + | None + ) = None, + *, + allow_non_streaming: bool = False, ) -> AgentResultStreaming: """ This method returns an `AgentResultStreaming` object that can be asynchronously @@ -402,6 +587,8 @@ def run_streaming( - "none": do not call tool - "required: enforce tool usage (model decides which one) - Callable: one of provided tools + post_processors: List of post-processors to apply to the response in order. + allow_non_streaming: Whether to allow non-streaming post-processors. Returns: A `StreamingResult` object for iteration and collection. @@ -412,20 +599,41 @@ def run_streaming( AgentToolNotAvailableError: If the selected tool is not available. AgentInvalidPromptInputError: If the prompt/input combination is invalid. AgentMaxTurnsExceededError: If the maximum number of turns is exceeded. + AgentInvalidPostProcessorError: If the post-processor is invalid. """ - generator = self._stream_internal(input, options, context, tool_choice) + generator = self._stream_internal( + input=input, + options=options, + context=context, + tool_choice=tool_choice, + ) + + if post_processors: + if not allow_non_streaming and any(not p.supports_streaming for p in post_processors): + raise AgentInvalidPostProcessorError( + reason="Non-streaming post-processors are not allowed when allow_non_streaming is False" + ) + + generator = cast( + _AG[str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage], + generator, + ) + generator = stream_with_post_processing(generator, post_processors, self) + return AgentResultStreaming(generator) - async def _stream_internal( + async def _stream_internal( # noqa: PLR0912 self, 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]: + ) -> AsyncGenerator[str | ToolCall | ToolCallResult | DownstreamAgentResult | SimpleNamespace | BasePrompt | Usage]: if context is None: context = AgentRunContext() + context.register_agent(cast(Agent[Any, Any, str], self)) + input = cast(PromptInputT, input) merged_options = (self.default_options | options) if options else self.default_options llm_options = merged_options.llm_options or self.llm.default_options @@ -435,24 +643,36 @@ async def _stream_internal( turn_count = 0 max_turns = merged_options.max_turns max_turns = 10 if max_turns is NOT_GIVEN else max_turns + reasoning_traces: list[str] = [] + with trace(input=input, options=merged_options) as outputs: while not max_turns or turn_count < max_turns: returned_tool_call = False self._check_token_limits(merged_options, context.usage, prompt_with_history, self.llm) + 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), ) + tool_chunks = [] async for chunk in streaming_result: + if isinstance(chunk, Reasoning) and merged_options.log_reasoning: + reasoning_traces.append(str(chunk)) yield chunk - if isinstance(chunk, ToolCall): - result = await self._execute_tool(tool_call=chunk, tools_mapping=tools_mapping, context=context) + tool_chunks.append(chunk) + + if len(tool_chunks) > 0: + async for result in self._execute_tool_calls( + tool_chunks, tools_mapping, context, merged_options.parallel_tool_calling + ): yield result - prompt_with_history = prompt_with_history.add_tool_use_message(**result.__dict__) + if isinstance(result, ToolCallResult): + prompt_with_history = prompt_with_history.add_tool_use_message(**result.__dict__) returned_tool_call = True + turn_count += 1 if streaming_result.usage: context.usage += streaming_result.usage @@ -466,8 +686,48 @@ async def _stream_internal( yield prompt_with_history if self.keep_history: self.history = prompt_with_history.chat + + if merged_options.log_reasoning and reasoning_traces: + outputs.result = {"reasoning_traces": reasoning_traces} + yield outputs + async def _execute_tool_calls( + self, + tool_calls: list[ToolCall], + tools_mapping: dict[str, Tool], + context: AgentRunContext, + parallel_tool_calling: bool, + ) -> AsyncGenerator[ToolCallResult | DownstreamAgentResult, None]: + """Execute tool calls either in parallel or sequentially based on `parallel_tool_calling` value.""" + if parallel_tool_calling: + queue: asyncio.Queue = asyncio.Queue() + + async def consume_tool(tool: ToolCall) -> None: + async for tool_result in self._execute_tool( + tool_call=tool, tools_mapping=tools_mapping, context=context + ): + await queue.put(tool_result) + + async def monitor() -> None: + tasks = [asyncio.create_task(consume_tool(tool)) for tool in tool_calls] + await asyncio.gather(*tasks) + await queue.put(None) + + asyncio.create_task(monitor()) + while True: + item = await queue.get() + if item is None: + break + yield item + + else: + for tool_call in tool_calls: + async for result in self._execute_tool( + tool_call=tool_call, tools_mapping=tools_mapping, context=context + ): + yield result + @staticmethod def _check_token_limits( options: AgentOptions[LLMClientOptionsT], usage: Usage, prompt: BasePrompt, llm: LLM[LLMClientOptionsT] @@ -504,14 +764,38 @@ def _get_llm_options( llm_options.max_tokens = min(actual_limits) - usage.total_tokens return llm_options - def _get_prompt_with_history(self, input: PromptInputT) -> SimplePrompt | Prompt[PromptInputT, PromptOutputT]: + def _prepare_synthesized_prompt( + self, input: PromptInputT + ) -> SimplePrompt | Prompt[PromptInputT, PromptOutputT] | None: curr_history = deepcopy(self.history) + if ( + hasattr(self, "prompt_cls") + and self.prompt_cls + and isinstance(self.prompt_cls, type) + and issubclass(self.prompt_cls, Prompt) + ): + prompt_cls = cast(type[Prompt[PromptInputT, PromptOutputT]], self.prompt_cls) + if self.keep_history: + self.prompt = cast(Prompt[PromptInputT, PromptOutputT], prompt_cls(input, curr_history)) + return self.prompt + else: + return cast(Prompt[PromptInputT, PromptOutputT], prompt_cls(input)) + if isinstance(self.prompt, type) and issubclass(self.prompt, Prompt): if self.keep_history: self.prompt = self.prompt(input, curr_history) return self.prompt else: - return self.prompt(input, curr_history) + return self.prompt(input) + + return None + + def _get_prompt_with_history(self, input: PromptInputT) -> SimplePrompt | Prompt[PromptInputT, PromptOutputT]: + curr_history = deepcopy(self.history) + new_prompt = self._prepare_synthesized_prompt(input) + + if new_prompt: + return new_prompt if isinstance(self.prompt, Prompt): self.prompt.add_user_message(input) @@ -555,11 +839,13 @@ async def _get_all_tools(self) -> dict[str, Tool]: return tools_mapping async def _execute_tool( - self, tool_call: ToolCall, tools_mapping: dict[str, Tool], context: AgentRunContext | None = None - ) -> ToolCallResult: + self, + tool_call: ToolCall, + tools_mapping: dict[str, Tool], + context: AgentRunContext, + ) -> AsyncGenerator[ToolCallResult | DownstreamAgentResult, None]: if tool_call.type != "function": raise AgentToolNotSupportedError(tool_call.type) - if tool_call.name not in tools_mapping: raise AgentToolNotAvailableError(tool_call.name) @@ -571,16 +857,29 @@ async def _execute_tool( if tool.context_var_name: call_args[tool.context_var_name] = context - tool_output = ( - await tool.on_tool_call(**call_args) + tool_output = await ( + tool.on_tool_call(**call_args) if iscoroutinefunction(tool.on_tool_call) - else tool.on_tool_call(**call_args) + else asyncio.to_thread(tool.on_tool_call, **call_args) ) + if isinstance(tool_output, AgentResultStreaming): + async for downstream_item in tool_output: + if context.stream_downstream_events: + yield DownstreamAgentResult(agent_id=tool.id, item=downstream_item) + + tool_output = { + "content": tool_output.content, + "metadata": tool_output.metadata, + "tool_calls": tool_output.tool_calls, + "usage": tool_output.usage, + } + outputs.result = { "tool_output": tool_output, "tool_call_id": tool_call.id, } + except Exception as e: outputs.result = { "error": str(e), @@ -588,7 +887,7 @@ async def _execute_tool( } raise AgentToolExecutionError(tool_call.name, e) from e - return ToolCallResult( + yield ToolCallResult( id=tool_call.id, name=tool_call.name, arguments=tool_call.arguments, @@ -758,3 +1057,81 @@ def from_pydantic_ai(cls, pydantic_ai_agent: "PydanticAIAgent") -> Self: tools=[tool.function for _, tool in pydantic_ai_agent._function_tools.items()], mcp_servers=cast(list[MCPServer], mcp_servers), ) + + def to_tool(self, name: str | None = None, description: str | None = None) -> Tool: + """ + Convert the agent into a Tool instance. + + Args: + name: Optional override for the tool name. + description: Optional override for the tool description. + + Returns: + Tool instance representing the agent. + """ + return Tool.from_agent(self, name=name or self.name, description=description or self.description) + + @staticmethod + def _make_prompt_class_for_agent_subclass(agent_cls: type["Agent[Any, Any, Any]"]) -> type[Prompt] | None: + system = getattr(agent_cls, "system_prompt", None) + if not system: + raise ValueError(f"Agent {agent_cls.__name__} has no system_prompt") + user = getattr(agent_cls, "user_prompt", "{{ input }}") + + input_type: type[BaseModel] | None = getattr(agent_cls, "input_type", None) + if input_type is None: + raise ValueError(f"Agent {agent_cls.__name__} cannot build a Prompt without input_type") + + base_generic = Prompt + base = base_generic[input_type] + + attrs = { + "system_prompt": system, + "user_prompt": user, + } + + return types.new_class( + f"_{agent_cls.__name__}Prompt", + (base,), + exec_body=lambda ns: ns.update(attrs), + ) + + @overload + @staticmethod + def prompt_config( + input_model: type[_Input], + ) -> Callable[[type[Any]], type["Agent[LLMOptions, _Input, str]"]]: ... + @overload + @staticmethod + def prompt_config( + input_model: type[_Input], + output_model: type[_Output], + ) -> Callable[[type[Any]], type["Agent[LLMOptions, _Input, _Output]"]]: ... + @staticmethod + def prompt_config( + input_model: type[_Input], + output_model: type[_Output] | type[NotGiven] = NotGiven, + ) -> Callable[[type[Any]], type["Agent[LLMOptions, _Input, _Output]"]]: + """ + Decorator to bind both input and output types of an Agent subclass, with runtime checks. + + Raises: + TypeError: if the decorated class is not a subclass of Agent, + or if input_model is not a Pydantic BaseModel. + """ + if not isinstance(input_model, type) or not issubclass(input_model, BaseModel): + raise TypeError(f"input_model must be a subclass of pydantic.BaseModel, got {input_model}") + + if not isinstance(output_model, type): + raise TypeError(f"output_model must be a type, got {output_model}") + + def decorator(cls: type[Any]) -> type["Agent[LLMOptions, _Input, _Output]"]: + if not isinstance(cls, type) or not issubclass(cls, Agent): + raise TypeError(f"Can only decorate subclasses of Agent, got {cls}") + + cls.input_type = input_model + cls.prompt_cls = Agent._make_prompt_class_for_agent_subclass(cls) + + return cast(type["Agent[LLMOptions, _Input, _Output]"], cls) + + return decorator diff --git a/packages/ragbits-agents/src/ragbits/agents/cli.py b/packages/ragbits-agents/src/ragbits/agents/cli.py index a4cb2b116..33895d74e 100644 --- a/packages/ragbits-agents/src/ragbits/agents/cli.py +++ b/packages/ragbits-agents/src/ragbits/agents/cli.py @@ -9,6 +9,7 @@ from ragbits.agents import Agent, ToolCallResult from ragbits.agents._main import AgentResult +from ragbits.core.llms.base import Reasoning agents_app = typer.Typer(help="Commands for managing agents") @@ -308,17 +309,32 @@ async def _run_agent(self, message: str) -> None: tools_log.write_line(f"🔧 Tool calls for message '{message[:50]}...':") first_response = True + in_reasoning_mode = False agent_results = self.agent.run_streaming(message) async for result in agent_results: match result: - case str(): - if first_response: - # Hide loading indicator and start agent response + case Reasoning(): + if not in_reasoning_mode: loading.display = False - chat_log.write("\n🤖 Agent: ") + chat_log.write( + "\n🧠⚡ Thinking...: " if first_response else "\n\n🧠⚡ Thinking Further...: " + ) + in_reasoning_mode = True + first_response = False + chat_log.write(str(result)) + + case str(): + if in_reasoning_mode or first_response: + if in_reasoning_mode: + chat_log.write("\n\n🤖 Agent: ") + in_reasoning_mode = False + else: # first output (no reasoning before) + loading.display = False + chat_log.write("\n🤖 Agent: ") first_response = False chat_log.write(result) + case ToolCallResult(): tools_log.write_line(f" • {result.name}({result.arguments}) → {result.result}") diff --git a/packages/ragbits-agents/src/ragbits/agents/exceptions.py b/packages/ragbits-agents/src/ragbits/agents/exceptions.py index c474e6ac7..a80e76314 100644 --- a/packages/ragbits-agents/src/ragbits/agents/exceptions.py +++ b/packages/ragbits-agents/src/ragbits/agents/exceptions.py @@ -106,3 +106,13 @@ def __init__( self.limit = limit self.actual = actual self.next_prompt_tokens = next_prompt_tokens + + +class AgentInvalidPostProcessorError(AgentError): + """ + Raised when the post-processor is invalid. + """ + + def __init__(self, reason: str) -> None: + super().__init__(f"Invalid post-processor: {reason}") + self.reason = reason diff --git a/packages/ragbits-agents/src/ragbits/agents/post_processors/__init__.py b/packages/ragbits-agents/src/ragbits/agents/post_processors/__init__.py new file mode 100644 index 000000000..f291a1d99 --- /dev/null +++ b/packages/ragbits-agents/src/ragbits/agents/post_processors/__init__.py @@ -0,0 +1,8 @@ +""" +Post-processors for agent responses. +""" + +from .base import BasePostProcessor, PostProcessor, StreamingPostProcessor +from .supervisor import SupervisorPostProcessor + +__all__ = ["BasePostProcessor", "PostProcessor", "StreamingPostProcessor", "SupervisorPostProcessor"] diff --git a/packages/ragbits-agents/src/ragbits/agents/post_processors/base.py b/packages/ragbits-agents/src/ragbits/agents/post_processors/base.py new file mode 100644 index 000000000..c1e46b1e7 --- /dev/null +++ b/packages/ragbits-agents/src/ragbits/agents/post_processors/base.py @@ -0,0 +1,154 @@ +from abc import ABC, abstractmethod +from collections.abc import AsyncGenerator +from types import SimpleNamespace +from typing import TYPE_CHECKING, Generic, Optional, cast + +from ragbits.agents.tool import ToolCallResult +from ragbits.core.llms.base import LLMClientOptionsT, ToolCall, Usage +from ragbits.core.prompt.base import BasePrompt +from ragbits.core.prompt.prompt import PromptInputT, PromptOutputT + +if TYPE_CHECKING: + from ragbits.agents._main import Agent, AgentOptions, AgentResult, AgentRunContext + + +class BasePostProcessor(Generic[LLMClientOptionsT, PromptInputT, PromptOutputT]): + """Base class for post-processors.""" + + @property + @abstractmethod + def supports_streaming(self) -> bool: + """ + Whether this post-processor supports streaming mode. + + If True, the processor can work with content during streaming + via process_streaming() method. + + If False, the processor will only be called after streaming is complete + with the full result via process() method. + """ + + +class PostProcessor(ABC, BasePostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]): + """Base class for non-streaming post-processors.""" + + @property + def supports_streaming(self) -> bool: + """Whether this post-processor supports streaming mode.""" + return False + + @abstractmethod + async def process( + self, + result: "AgentResult[PromptOutputT]", + agent: "Agent[LLMClientOptionsT, PromptInputT, PromptOutputT]", + options: Optional["AgentOptions[LLMClientOptionsT]"] = None, + context: Optional["AgentRunContext"] = None, + ) -> "AgentResult[PromptOutputT]": + """ + Process the complete agent result. + + Args: + result: The complete AgentResult from the agent or previous post-processor. + agent: The Agent instance that generated the result. Can be used to re-run + the agent with modified input if needed. + options: The options for the agent run. + context: The context for the agent run. + + Returns: + Modified AgentResult to pass to the next processor or return as final result. + """ + + +class StreamingPostProcessor(ABC, BasePostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]): + """Base class for streaming post-processors.""" + + @property + def supports_streaming(self) -> bool: + """Whether this post-processor supports streaming mode.""" + return True + + @abstractmethod + async def process_streaming( + self, + chunk: str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage, + agent: "Agent[LLMClientOptionsT, PromptInputT, PromptOutputT]", + ) -> str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage: + """ + Process chunks during streaming. + + Args: + chunk: The current chunk being streamed. + agent: The Agent instance generating the content. + + Returns: + Modified chunk to yield, or None to suppress this chunk. + Return the same chunk if no modification needed. + """ + + +async def stream_with_post_processing( + generator: AsyncGenerator[str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage], + post_processors: ( + list[StreamingPostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] + | list[BasePostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT]] + ), + agent: "Agent[LLMClientOptionsT, PromptInputT, PromptOutputT]", +) -> AsyncGenerator[str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage]: + """ + Stream with support for both streaming and non-streaming post-processors. + + Streaming processors get chunks in real-time via process_streaming(). + Non-streaming processors get the complete result via process(). + """ + from ragbits.agents import AgentResult + + streaming_processors = [p for p in post_processors or [] if isinstance(p, StreamingPostProcessor)] + non_streaming_processors = [p for p in post_processors or [] if isinstance(p, PostProcessor)] + + accumulated_content = "" + tool_call_results: list[ToolCallResult] = [] + usage: Usage = Usage() + prompt_with_history: BasePrompt | None = None + + async for chunk in generator: + processed_chunk = chunk + for streaming_processor in streaming_processors: + processed_chunk = await streaming_processor.process_streaming(chunk=processed_chunk, agent=agent) + if processed_chunk is None: + break + + if isinstance(processed_chunk, str): + accumulated_content += processed_chunk + elif isinstance(processed_chunk, ToolCallResult): + tool_call_results.append(processed_chunk) + elif isinstance(processed_chunk, Usage): + usage = processed_chunk + elif isinstance(processed_chunk, BasePrompt): + prompt_with_history = processed_chunk + + if processed_chunk is not None: + yield processed_chunk + + if non_streaming_processors and prompt_with_history: + agent_result = AgentResult( + content=cast(PromptOutputT, accumulated_content), + metadata={}, + tool_calls=tool_call_results or None, + history=prompt_with_history.chat, + usage=usage, + ) + + current_result = agent_result + for non_streaming_processor in non_streaming_processors: + current_result = await non_streaming_processor.process(current_result, agent) + + yield current_result.usage + yield prompt_with_history + yield SimpleNamespace( + result={ + "content": current_result.content, + "metadata": current_result.metadata, + "tool_calls": current_result.tool_calls, + } + ) diff --git a/packages/ragbits-agents/src/ragbits/agents/post_processors/exceptions.py b/packages/ragbits-agents/src/ragbits/agents/post_processors/exceptions.py new file mode 100644 index 000000000..f7588038d --- /dev/null +++ b/packages/ragbits-agents/src/ragbits/agents/post_processors/exceptions.py @@ -0,0 +1,17 @@ +class SupervisorMaxRetriesExceededError(Exception): + """Raised when SupervisorPostProcessor exceeds the maximum number of retries.""" + + def __init__(self, max_retries: int, last_validations: list | None = None) -> None: + self.max_retries = max_retries + self.last_validations = last_validations or [] + super().__init__(f"Supervisor: maximum retries ({max_retries}) exceeded.") + + +class SupervisorCorrectionPromptFormatError(Exception): + """Raised when SupervisorPostProcessor cannot format the correction prompt.""" + + def __init__(self, missing_keys: list[str] | None = None, original_error: Exception | None = None) -> None: + self.missing_keys = missing_keys or [] + self.original_error = original_error + details = f" Missing keys: {', '.join(self.missing_keys)}." if self.missing_keys else "" + super().__init__(f"Supervisor: failed to format correction prompt.{details}") diff --git a/packages/ragbits-agents/src/ragbits/agents/post_processors/supervisor.py b/packages/ragbits-agents/src/ragbits/agents/post_processors/supervisor.py new file mode 100644 index 000000000..4eece4b24 --- /dev/null +++ b/packages/ragbits-agents/src/ragbits/agents/post_processors/supervisor.py @@ -0,0 +1,236 @@ +from enum import Enum +from typing import TYPE_CHECKING, Any, Generic, Optional, Protocol, TypeVar, cast + +from pydantic import BaseModel + +from ragbits.agents.post_processors.base import PostProcessor +from ragbits.agents.post_processors.exceptions import ( + SupervisorCorrectionPromptFormatError, + SupervisorMaxRetriesExceededError, +) +from ragbits.core.llms.base import LLM, LLMClientOptionsT +from ragbits.core.prompt.prompt import ChatFormat, Prompt, PromptInputT, PromptOutputT + +if TYPE_CHECKING: + from ragbits.agents._main import Agent, AgentOptions, AgentResult, AgentRunContext + + +class HistoryStrategy(str, Enum): + """Strategy for handling the chat history.""" + + PRESERVE = "preserve" + REMOVE = "remove" + + +class SupportsValidation(Protocol): + """Protocol for post-processors that support validation.""" + + is_valid: bool + + def model_dump(self, *args: Any, **kwargs: Any) -> dict[str, Any]: + """Return a dict of model fields (compatible with BaseModel.model_dump).""" + ... + + +ValidationOutputT = TypeVar("ValidationOutputT", bound=SupportsValidation) + + +class ValidationOutput(BaseModel): + """Result of the validation process for agent responses.""" + + is_valid: bool + """Whether the response is valid based on tool calls.""" + + reasoning: str + """Explanation of the validation decision.""" + + suggestion: str + """Suggestion for correction.""" + + +class ValidationInput(BaseModel): + """Input data for the validation prompt.""" + + chat_history: ChatFormat + """The complete chat history for context.""" + + +class DefaultSupervisorPrompt(Prompt[ValidationInput, ValidationOutput]): + """ + Default prompt for validating agent responses against tool call results. + """ + + system_prompt = """ + You are an expert validator that analyzes whether an AI agent's response is logically consistent + with the tool calls it executed and their results. Your job is to determine if the response + could reasonably be generated based on the available information from the tools. + + Analyze the following: + 1. Whether the response content is supported by the tool call results + 2. If any claims in the response contradict the tool data + 3. If the response makes assumptions not supported by the tool results + 4. Whether the response appropriately handles cases where tools failed or returned no data + 5. Whether the response actually answers the user's question + 6. Whether the response is factually correct based on available evidence + + IMPORTANT VALIDATION RULES: + - Only flag as INVALID if the answer is clearly incorrect or contradicts the tool results + - If the answer cannot be determined to be true because it's basic/common knowledge not covered by tools, + consider it as VALID + - If the response doesn't directly answer the user's question, flag as INVALID + - Be strict but fair - flag clear inconsistencies while allowing for reasonable inference + and interpretation of the tool results + """ + + user_prompt = ( + "Chat History:\n" + "{% for message in chat_history %}\n" + "{{ message.role | title }}: " + "{% if message.content is none %}" + "{% for tool_call in message.tool_calls %}" + "called tool: " + "{{ tool_call.function.name }}({{ tool_call.function.arguments | tojson }})" + "{% if not loop.last %} {% endif %}" + "{% endfor %}" + "{% else %}{{ message.content }}{% endif %}" + "{% endfor %}\n" + "\nPlease validate whether the last assistant's response is logically consistent with the tool call results " + "and the conversation context." + ) + + +DEFAULT_CORRECTION_PROMPT = ( + "Your answer is incorrect. Below you will find the reasoning and suggestion for correction.\n" + "Reasoning: {reasoning}\n" + "Suggestion: {suggestion}\n" + "Please answer again, considering the reasoning and suggestion.\n" +) + + +class SupervisorPostProcessor( + PostProcessor[LLMClientOptionsT, PromptInputT, PromptOutputT], + Generic[LLMClientOptionsT, PromptInputT, ValidationOutputT, PromptOutputT], +): + """ + Post-processor that validates agent responses against executed tool calls. + + This supervisor uses an LLM to analyze whether the agent's final response + is logically consistent with the results of the tool calls it executed. + """ + + def __init__( + self, + llm: LLM[LLMClientOptionsT], + validation_prompt: type[Prompt[ValidationInput, ValidationOutputT]] | None = None, + correction_prompt: str | None = None, + max_retries: int = 3, + fail_on_exceed: bool = True, + history_strategy: HistoryStrategy = HistoryStrategy.REMOVE, + ) -> None: + self.llm = llm + self.validation_prompt: type[Prompt[ValidationInput, ValidationOutputT]] = cast( + type[Prompt[ValidationInput, ValidationOutputT]], + validation_prompt or DefaultSupervisorPrompt, + ) + self.correction_prompt = correction_prompt or DEFAULT_CORRECTION_PROMPT + self.max_retries = max_retries + self.fail_on_exceed = fail_on_exceed + self.history_strategy = history_strategy + + async def process( + self, + result: "AgentResult[PromptOutputT]", + agent: "Agent[LLMClientOptionsT, PromptInputT, PromptOutputT]", + options: Optional["AgentOptions[LLMClientOptionsT]"] = None, + context: Optional["AgentRunContext"] = None, + ) -> "AgentResult[PromptOutputT]": + """ + Validate the agent's response and, if necessary, rerun with corrections. + """ + retries = 0 + current_result = result + validations: list[ValidationOutputT] = [] + accumulated_tool_calls: list = [] + agent.history = result.history + + while retries <= self.max_retries: + validation = await self._validate(current_result) + validations.append(validation) + accumulated_tool_calls.extend(current_result.tool_calls or []) + current_result.tool_calls = accumulated_tool_calls + + if validation.is_valid: + if not agent.keep_history: + agent.history = [] + return self._attach_metadata(current_result, validations) + + if retries == self.max_retries: + if self.fail_on_exceed: + raise SupervisorMaxRetriesExceededError(self.max_retries, validations) + if not agent.keep_history: + agent.history = [] + return self._attach_metadata(current_result, validations) + + last_assistant_index = len(current_result.history) - 1 + current_result = await self._rerun(agent, validation, options, context) + current_result = self._handle_history(current_result, last_assistant_index) + retries += 1 + + if not agent.keep_history: + agent.history = [] + return self._attach_metadata(current_result, validations) + + async def _validate(self, result: "AgentResult[PromptOutputT]") -> ValidationOutputT: + """ + Run the validation prompt on the agent result. + """ + input_data = ValidationInput(chat_history=result.history) + prompt = self.validation_prompt(input_data) + return await self.llm.generate(prompt) + + async def _rerun( + self, + agent: "Agent[LLMClientOptionsT, PromptInputT, PromptOutputT]", + validation: ValidationOutputT, + options: Optional["AgentOptions[LLMClientOptionsT]"] = None, + context: Optional["AgentRunContext"] = None, + ) -> "AgentResult[PromptOutputT]": + """ + Rerun the agent with a correction prompt based on validation feedback. + """ + try: + correction_prompt = self.correction_prompt.format(**validation.model_dump()) + except KeyError as exc: + missing = [str(exc).strip("'\"")] + raise SupervisorCorrectionPromptFormatError(missing_keys=missing, original_error=exc) from exc + except Exception as exc: + raise SupervisorCorrectionPromptFormatError(original_error=exc) from exc + + return await agent._run_without_post_processing(correction_prompt, options, context) + + @staticmethod + def _attach_metadata( + result: "AgentResult[PromptOutputT]", + validations: list[ValidationOutputT], + ) -> "AgentResult[PromptOutputT]": + """ + Attach validation metadata to the agent result. + """ + result.metadata.setdefault("post_processors", {}).setdefault("supervisor", []).extend( + [v.model_dump() for v in validations] + ) + return result + + def _handle_history( + self, + result: "AgentResult[PromptOutputT]", + last_assistant_index: int, + ) -> "AgentResult[PromptOutputT]": + """ + Handle the chat history according to the configured strategy. + """ + if self.history_strategy == HistoryStrategy.REMOVE: + result.history.pop(last_assistant_index + 1) + result.history.pop(last_assistant_index) + + return result diff --git a/packages/ragbits-agents/src/ragbits/agents/tool.py b/packages/ragbits-agents/src/ragbits/agents/tool.py index eebdf5b21..c8e279f29 100644 --- a/packages/ragbits-agents/src/ragbits/agents/tool.py +++ b/packages/ragbits-agents/src/ragbits/agents/tool.py @@ -1,13 +1,19 @@ from collections.abc import Callable from contextlib import suppress from dataclasses import dataclass -from typing import Any, Literal +from typing import TYPE_CHECKING, Any, Literal, cast +from pydantic import BaseModel from typing_extensions import Self +from ragbits.core.llms.base import LLMClientOptionsT +from ragbits.core.prompt.prompt import PromptInputT, PromptOutputT from ragbits.core.utils.decorators import requires_dependencies from ragbits.core.utils.function_schema import convert_function_to_function_schema, get_context_variable_name +if TYPE_CHECKING: + from ragbits.agents import Agent, AgentResultStreaming, AgentRunContext + with suppress(ImportError): from pydantic_ai import Tool as PydanticAITool @@ -44,6 +50,7 @@ class Tool: """The actual callable function to execute when the tool is called.""" context_var_name: str | None = None """The name of the context variable that this tool accepts.""" + id: str | None = None @classmethod def from_callable(cls, callable: Callable) -> Self: @@ -96,5 +103,77 @@ def to_pydantic_ai(self) -> "PydanticAITool": description=self.description, ) + @classmethod + def from_agent( + cls, + agent: "Agent[LLMClientOptionsT, PromptInputT, PromptOutputT]", + name: str | None = None, + description: str | None = None, + ) -> "Tool": + """ + Wraps a downstream agent as a single tool. The tool parameters are inferred from + the downstream agent's prompt input. + + Args: + agent: The downstream agent to wrap as a tool. + name: Optional override for the tool name. + description: Optional override for the tool description. + + Returns: + Tool instance representing the agent. + """ + display_name = name or agent.name or "agent" + variable_name = display_name.replace(" ", "_").lower() + description = description or agent.description + + input_model_cls = getattr(agent.prompt, "input_type", None) + if input_model_cls and issubclass(input_model_cls, BaseModel): + fields = input_model_cls.model_fields + properties = {} + required = list(fields.keys()) + + for field_name in fields: + param_desc = None + for t in getattr(agent, "tools", []): + t_params = getattr(t, "parameters", {}).get("properties", {}) + if field_name in t_params: + param_desc = t_params[field_name].get("description") + break + + properties[field_name] = { + "type": "string", + "title": field_name.capitalize(), + "description": param_desc, + } + else: + properties = {"input": {"type": "string", "description": "Input for the downstream agent"}} + required = ["input"] + + parameters = {"type": "object", "properties": properties, "required": required} + + context_var_name = get_context_variable_name(agent.run) + + def _on_tool_call(**kwargs: dict) -> "AgentResultStreaming": + if context_var_name: + context = cast("AgentRunContext[Any] | None", kwargs.get(context_var_name)) + if context is not None: + context.register_agent(cast("Agent[Any, Any, str]", agent)) + + if input_model_cls and issubclass(input_model_cls, BaseModel): + model_input = input_model_cls(**kwargs) + else: + model_input = kwargs.get("input") + + return agent.run_streaming(model_input, context=context) + + return cls( + name=variable_name, + id=agent.id, + description=description, + parameters=parameters, + on_tool_call=_on_tool_call, + context_var_name=context_var_name, + ) + ToolChoice = Literal["auto", "none", "required"] | Callable diff --git a/packages/ragbits-agents/src/ragbits/agents/tools/__init__.py b/packages/ragbits-agents/src/ragbits/agents/tools/__init__.py index 9bb922491..ce026d709 100644 --- a/packages/ragbits-agents/src/ragbits/agents/tools/__init__.py +++ b/packages/ragbits-agents/src/ragbits/agents/tools/__init__.py @@ -1,3 +1,13 @@ +from ragbits.agents.tools.memory import LongTermMemory, MemoryEntry, create_memory_tools from ragbits.agents.tools.openai import get_code_interpreter_tool, get_image_generation_tool, get_web_search_tool +from ragbits.agents.tools.todo import TodoOrchestrator -__all__ = ["get_code_interpreter_tool", "get_image_generation_tool", "get_web_search_tool"] +__all__ = [ + "LongTermMemory", + "MemoryEntry", + "TodoOrchestrator", + "create_memory_tools", + "get_code_interpreter_tool", + "get_image_generation_tool", + "get_web_search_tool", +] diff --git a/packages/ragbits-agents/src/ragbits/agents/tools/memory.py b/packages/ragbits-agents/src/ragbits/agents/tools/memory.py new file mode 100644 index 000000000..78b8f646d --- /dev/null +++ b/packages/ragbits-agents/src/ragbits/agents/tools/memory.py @@ -0,0 +1,218 @@ +""" +Long-term memory functionality for agents. + +This module provides tools for agents to store and retrieve information +across conversations using vector stores and key-based organization. +""" + +import uuid +from datetime import datetime +from typing import Any +from uuid import UUID + +from pydantic import BaseModel, Field + +from ragbits.core.vector_stores.base import VectorStore, VectorStoreEntry, VectorStoreOptions, WhereQuery + + +class MemoryEntry(BaseModel): + """Represents a memory entry with key-based organization.""" + + key: str = Field(..., description="The key used to organize memories (user_id)") + content: str = Field(..., description="The content to be remembered") + timestamp: datetime = Field(default_factory=datetime.now, description="When this memory was created") + memory_id: str = Field(default_factory=lambda: str(uuid.uuid4()), description="Unique identifier for this memory") + + +class LongTermMemory: + """ + Allows to store and retrieve long-term memories. + Use create_memory_tools() to get a list of functions available for agents. + + Uses a vector store to enable semantic search of stored memories + and organizes them by keys (e.g., user_id) for context-aware retrieval. + """ + + def __init__( + self, + vector_store: VectorStore, + max_retrieval_results: int = 5, + ): + """ + Args: + vector_store: The vector store to use for storing and retrieving memories + max_retrieval_results: Default maximum number of memories to retrieve per query + """ + self.vector_store = vector_store + self.max_retrieval_results = max_retrieval_results + + async def store_memory(self, user_id: str, content: str) -> str: + """ + Args: + user_id: The user ID to store the memory for + content: The content to remember + + Returns: + The memory ID of the stored memory + """ + memory = MemoryEntry(key=user_id, content=content) + + # Create vector store entry and store it + vector_entry = LongTermMemory._create_vector_entry(memory) + await self.vector_store.store([vector_entry]) + + return memory.memory_id + + async def retrieve_memories(self, user_id: str, query: str, limit: int | None = None) -> list[MemoryEntry]: + """ + Retrieve memories using the provided user_id and semantic search. + + Args: + user_id: The user ID to search memories for + query: The query to search for relevant memories + limit: Maximum number of memories to return (uses max_retrieval_results if None) + + Returns: + List of relevant memories ordered by relevance + """ + limit = limit or self.max_retrieval_results + + # Create vector store options with key filter + options = VectorStoreOptions( + k=limit, + where={"key": user_id}, # Filter by user_id + ) + + # Search the vector store with key filter + results = await self.vector_store.retrieve(query, options) + + # Convert to MemoryEntry + memories = [] + for result in results: + memory = MemoryEntry( + key=result.entry.metadata["key"], + content=result.entry.text or "", + timestamp=datetime.fromisoformat(result.entry.metadata["timestamp"]), + memory_id=result.entry.metadata["memory_id"], + ) + memories.append(memory) + + return memories + + async def get_all_memories(self, user_id: str) -> list[MemoryEntry]: + """ + Get all memories for the provided user_id from the vector store. + + Args: + user_id: The user ID to get memories for + + Returns: + List of all memories for the user_id + """ + where_query: WhereQuery = {"key": user_id} + entries = await self.vector_store.list(where=where_query) + + memories = [] + for entry in entries: + memory = MemoryEntry( + key=entry.metadata["key"], + content=entry.text or "", + timestamp=datetime.fromisoformat(entry.metadata["timestamp"]), + memory_id=entry.metadata["memory_id"], + ) + memories.append(memory) + + return memories + + async def delete_memory(self, user_id: str, memory_id: str) -> bool: + """ + Delete a specific memory for the provided user_id. + + Args: + user_id: The user ID the memory belongs to + memory_id: The ID of the memory to delete + + Returns: + True if memory was deleted, False if not found + """ + # Check if it exists + all_memories = await self.get_all_memories(user_id) + memory_to_delete = None + for memory in all_memories: + if memory.memory_id == memory_id: + memory_to_delete = memory + break + + if memory_to_delete is None: + return False + + memory_uuid = UUID(memory_to_delete.memory_id) + await self.vector_store.remove([memory_uuid]) + return True + + @staticmethod + def _create_vector_entry(memory: MemoryEntry) -> VectorStoreEntry: + """Create a VectorStoreEntry from a MemoryEntry.""" + return VectorStoreEntry( + id=UUID(memory.memory_id), + text=memory.content, + metadata={ + "key": memory.key, + "timestamp": memory.timestamp.isoformat(), + "memory_id": memory.memory_id, + "element_type": "TextElement", + }, + ) + + +def create_memory_tools(memory_tool: LongTermMemory, user_id: str) -> list[Any]: + """ + Create tool functions bound to a specific memory tool instance and user_id. + + Args: + memory_tool: The memory tool instance to bind to + user_id: The user ID to use for memory operations + + Returns: + List of tool functions available for agent + """ + + async def store_memory(content: str) -> str: + """ + Store a memory entry using the provided user_id. + + Args: + content: The content to remember + + Returns: + The memory ID of the stored memory + """ + return await memory_tool.store_memory(user_id, content) + + async def retrieve_memories(query: str, limit: int | None = None) -> str: + """ + Retrieve memories using the provided user_id and semantic search. + + Args: + query: The query to search for relevant memories + limit: Maximum number of memories to return + + Returns: + Formatted string of retrieved memories + """ + memories = await memory_tool.retrieve_memories(user_id, query, limit) + + if not memories: + return f"No memories found for user '{user_id}' with given query" + + # Sort memories by timestamp (oldest to newest) + sorted_memories = sorted(memories, key=lambda m: m.timestamp) + + result = f"Found {len(sorted_memories)} relevant memories for user '{user_id}':\n\n" + for i, memory in enumerate(sorted_memories, 1): + result += f"{i}. {memory.content}\n" + result += f" Created: {memory.timestamp.strftime('%Y-%m-%d %H:%M:%S')}\n\n" + + return result + + return [store_memory, retrieve_memories] diff --git a/packages/ragbits-agents/src/ragbits/agents/tools/todo.py b/packages/ragbits-agents/src/ragbits/agents/tools/todo.py new file mode 100644 index 000000000..699c50dfb --- /dev/null +++ b/packages/ragbits-agents/src/ragbits/agents/tools/todo.py @@ -0,0 +1,486 @@ +"""Todo list management tool for agents.""" + +import uuid +from collections.abc import AsyncGenerator +from enum import Enum +from types import SimpleNamespace + +from pydantic import BaseModel, Field + +from ragbits.agents import Agent +from ragbits.agents._main import DownstreamAgentResult +from ragbits.agents.tool import ToolCallResult +from ragbits.core.llms import ToolCall +from ragbits.core.llms.base import Usage +from ragbits.core.prompt.base import BasePrompt + +# Constants +MAX_SUMMARY_LENGTH = 300 + + +class TaskStatus(str, Enum): + """Task status options.""" + + PENDING = "pending" + IN_PROGRESS = "in_progress" + COMPLETED = "completed" + FAILED = "failed" + CANCELLED = "cancelled" + RETRYING = "retrying" + + +class Task(BaseModel): + """Simple task representation.""" + + id: str + description: str + status: TaskStatus = TaskStatus.PENDING + order: int = 0 + summary: str | None = None + parent_id: str | None = None + full_response: str | None = None + dependencies: list[str] = Field(default_factory=list) + + +class TodoResult(BaseModel): + """Result type for todo workflow.""" + + type: str + message: str | None = None + current_task: Task | None = None + next_task: Task | None = None + tasks: list[Task] = Field(default_factory=list) + tasks_count: int | None = None + progress: str | None = None + + +# Type alias for the streaming response union +StreamingResponseType = ( + str | TodoResult | ToolCall | ToolCallResult | BasePrompt | Usage | SimpleNamespace | DownstreamAgentResult +) + + +class TodoList(BaseModel): + """Simple todo list for one agent run.""" + + tasks: list[Task] = Field(default_factory=list) + current_index: int = 0 + + def get_current_task(self) -> Task | None: + """Get current task to work on.""" + if self.current_index < len(self.tasks): + return self.tasks[self.current_index] + return None + + def advance_to_next(self) -> None: + """Move to next task.""" + self.current_index += 1 + + def create_tasks(self, task_descriptions: list[str]) -> TodoResult: + """Create tasks from descriptions.""" + if not task_descriptions: + raise ValueError("Tasks required for create action") + + # Clear existing tasks + self.tasks.clear() + self.current_index = 0 + + for i, desc in enumerate(task_descriptions): + task = Task(id=str(uuid.uuid4()), description=desc.strip(), order=i) + self.tasks.append(task) + + return TodoResult( + type="create", + message=f"Created {len(task_descriptions)} tasks", + tasks=self.tasks.copy(), + tasks_count=len(self.tasks), + ) + + def get_current(self) -> TodoResult: + """Get current task information.""" + current = self.get_current_task() + if not current: + return TodoResult(type="get_current", message="All tasks completed!", current_task=None) + + return TodoResult( + type="get_current", + message=f"Current task: {current.description}", + current_task=current, + progress=f"{self.current_index + 1}/{len(self.tasks)}", + ) + + def start_current_task(self) -> Task: + """Start the current task.""" + current = self.get_current_task() + if not current: + raise ValueError("No current task to start") + + current.status = TaskStatus.IN_PROGRESS + return current + + def complete_current_task(self, summary: str) -> TodoResult: + """Complete the current task with summary.""" + if not summary: + raise ValueError("Summary required for complete_task") + + current = self.get_current_task() + if not current: + raise ValueError("No current task to complete") + + if current.status != TaskStatus.IN_PROGRESS: + raise ValueError("Task must be started before completing") + + current.status = TaskStatus.COMPLETED + current.summary = summary.strip() + self.advance_to_next() + + next_task = self.get_current_task() + completed_count = sum(1 for t in self.tasks if t.status == TaskStatus.COMPLETED) + + return TodoResult( + type="complete_task", + message=f"Completed: {current.description}", + current_task=current, + next_task=next_task, + progress=f"{completed_count}/{len(self.tasks)}", + ) + + def get_completed_context(self) -> str: + """Get context from all completed tasks.""" + completed_tasks = [t for t in self.tasks if t.status == TaskStatus.COMPLETED] + if not completed_tasks: + return "No previous tasks completed yet." + + context_parts = [] + for i, task in enumerate(completed_tasks, 1): + context_parts.append(f"{i}. {task.description}: {task.summary or 'Completed'}") + + return "Previous completed tasks:\n" + "\n".join(context_parts) + + +class TodoOrchestrator(BaseModel): + """High-level orchestrator for managing todo workflow with context passing.""" + + todo_list: TodoList = Field(default_factory=TodoList) + domain_context: str = "" + + def __init__(self, domain_context: str = "") -> None: + """ + Initialize TodoOrchestrator with domain-specific prompts. + + Args: + domain_context: Additional context about the domain (e.g., "hiking guide", "software architect", etc.) + """ + super().__init__(domain_context=domain_context) + + async def run_todo_workflow_streaming( + self, agent: Agent, initial_query: str + ) -> AsyncGenerator[StreamingResponseType, None]: + """ + Run complete todo workflow with streaming responses. + + Yields: + Various response types: str, ToolCall, ToolResult, dict (status updates) + """ + yield TodoResult(type="status", message="🚀 Starting todo workflow...") + + # Step 1: Analyze complexity and create tasks if needed + yield TodoResult(type="status", message="🔍 Analyzing query complexity...") + + tasks = await self._create_tasks_simple(agent, initial_query) + + if not tasks: + # Query is simple - answer directly without task breakdown + yield TodoResult(type="status", message="💡 Simple query detected - providing direct answer...") + + # Create a focused prompt for direct answering + direct_prompt = f""" + Answer this query directly and comprehensively: + + "{initial_query}" + + {f"Context: You are working as a {self.domain_context}." if self.domain_context else ""} + + Provide a clear, complete answer without unnecessary complexity. + """ + + # Stream the direct answer + async for response in agent.run_streaming(direct_prompt): + if isinstance(response, str): + yield response + else: + yield response # Pass through tool calls, etc. + + yield TodoResult(type="status", message="\n🎯 Direct answer completed!") + return + + # Complex query - proceed with task breakdown + yield TodoResult(type="status", message=f"📋 Complex query - created {len(tasks)} tasks:") + yield TodoResult(type="task_list", tasks=tasks, tasks_count=len(tasks)) + + # Step 2: Execute each task with context from previous tasks + task_summaries = [] + + while True: + current_task_info = self.todo_list.get_current() + current_task = current_task_info.current_task + if current_task is None: + break + + yield TodoResult( + type="task_summary_start", + message=f"\n🔧 Task {current_task_info.progress}: {current_task.description}\n", + ) + + # Get context from previous completed tasks + context = self.todo_list.get_completed_context() + + # Execute single task with focused context and stream summary + async for task_response in self._execute_single_task_focused(agent, current_task, context, initial_query): + yield task_response + yield "\n\n" + + # Get the completed task summary + completed_tasks = [t for t in self.todo_list.tasks if t.status == TaskStatus.COMPLETED] + if completed_tasks: + latest_summary = completed_tasks[-1].summary + task_summaries.append(latest_summary) + yield TodoResult( + type="task_completed", message="\n✅ Task completed\n", current_task=completed_tasks[-1] + ) + + # Step 3: Generate comprehensive final summary with streaming + yield TodoResult(type="status", message="📝 Generating comprehensive final summary...") + yield TodoResult( + type="final_summary_start", + message=f"\n📊 Comprehensive {self.domain_context} summary:\n", + ) + + async for summary_response in self._generate_comprehensive_summary_streaming( + agent, initial_query, task_summaries + ): + yield summary_response + + yield TodoResult(type="final_summary_end", message="\n") + yield TodoResult(type="status", message="🎉 All tasks completed!") + + @staticmethod + async def _analyze_query_complexity(agent: Agent, query: str) -> bool: + """ + Analyze if the query requires task breakdown or can be answered directly. + Returns True if complex (needs tasks), False if simple (direct answer). + """ + complexity_prompt = f""" + Analyze this query and determine if it requires a multi-step breakdown or can be answered directly. + + Query: "{query}" + + Consider these factors: + - Simple factual questions (What is...? Who is...? When did...?) = SIMPLE + - Yes/No questions = SIMPLE + - Single concept explanations = SIMPLE + - Questions requiring research, planning, or multiple steps = COMPLEX + - Questions asking for comprehensive analysis, comparisons, or detailed guides = COMPLEX + - Questions with multiple parts or requiring extensive information = COMPLEX + + Respond with ONLY one word: "SIMPLE" or "COMPLEX" + """ + + agent_result = await agent.run(complexity_prompt) + response = agent_result.content.strip().upper() + + # Default to COMPLEX if we can't determine (safer approach) + return response != "SIMPLE" + + async def _create_tasks_simple(self, agent: Agent, initial_query: str) -> list[Task]: + """Create tasks based on initial query - simple, non-streaming.""" + # First, analyze if the query actually needs task breakdown + is_complex = await TodoOrchestrator._analyze_query_complexity(agent, initial_query) + + if not is_complex: + # Query is simple enough to answer directly - return empty task list + return [] + + task_creation_prompt = f""" + Based on this query: "{initial_query}" + + Create 3-5 specific, actionable tasks that will comprehensively address this query. + Each task should be clear and focused on one specific aspect. + + {f"Context: You are working as a {self.domain_context}." if self.domain_context else ""} + + CRITICAL: Respond with ONLY a Python list of task descriptions, nothing else: + ["Task 1: Specific description", "Task 2: Specific description", "Task 3: Specific description"] + """ + + agent_result = await agent.run(task_creation_prompt) + response = agent_result.content + + # Parse tasks from the response + tasks = self._parse_tasks_from_response(response) + if tasks: + self.todo_list.create_tasks(tasks) + return self.todo_list.tasks # Return the actual Task objects + + return [] + + async def _execute_single_task_focused( + self, agent: Agent, current_task: Task, context: str, original_query: str + ) -> AsyncGenerator[StreamingResponseType, None]: + """Execute a single task with focused context - stream only essential info.""" + task_prompt = f""" + You are working on ONE SPECIFIC TASK as part of a larger workflow. + + ORIGINAL QUERY: {original_query} + + YOUR CURRENT TASK: {current_task.description} + + CONTEXT FROM PREVIOUS TASKS: + {context} + + CRITICAL INSTRUCTIONS: + 1. Focus EXCLUSIVELY on your current task - do not overlap with other tasks + 2. Use previous context to avoid repetition but DO NOT duplicate their work + 3. Be comprehensive but stay within your task scope + 4. End with: TASK SUMMARY: [2-3 sentence summary] + + Complete ONLY your assigned task now. + """ + + # Mark task as started + current_task = self.todo_list.start_current_task() + yield TodoResult( + type="start_task", message=f"Started task: {current_task.description}", current_task=current_task + ) + + full_response = "" + last_summary_length = 0 + + # Stream the task execution but only show summary parts + async for response in agent.run_streaming(task_prompt): + if isinstance(response, str): + full_response += response + # Only stream text that comes after "TASK SUMMARY:" marker + if "TASK SUMMARY:" in full_response: + summary_start = full_response.find("TASK SUMMARY:") + len("TASK SUMMARY:") + summary_text = full_response[summary_start:].strip() + if summary_text and len(summary_text) > last_summary_length: + # Stream only new characters + new_chars = summary_text[last_summary_length:] + if new_chars: + yield new_chars + last_summary_length = len(summary_text) + else: + yield response # Pass through tool calls, etc. + + # Extract final summary and complete task + summary = self._extract_summary_from_response(full_response) + + # Store the full response for final summary generation + current_task_obj = self.todo_list.get_current_task() + if current_task_obj: + current_task_obj.full_response = full_response + + self.todo_list.complete_current_task(summary) + + async def _generate_comprehensive_summary_streaming( + self, agent: Agent, original_query: str, task_summaries: list[str | None] + ) -> AsyncGenerator[StreamingResponseType, None]: + """Generate a comprehensive final summary with streaming.""" + # Get full responses from completed tasks + full_responses = [] + for task in self.todo_list.tasks: + if task.status == TaskStatus.COMPLETED and hasattr(task, "full_response"): + full_responses.append(f"**{task.description}**:\n{task.full_response}") + + # Create domain-specific summary instructions + domain_instructions = "" + if self.domain_context: + domain_instructions = ( + f"Format as a comprehensive {self.domain_context} response that someone " + "could use to address their needs." + ) + else: + domain_instructions = "Format as a comprehensive, well-structured response." + + summary_prompt = f""" + You need to create a comprehensive final summary for this query: "{original_query}" + + Here are the detailed results from all completed tasks: + + {chr(10).join(full_responses)} + + Create a comprehensive, well-structured final summary that: + 1. Directly answers the original query + 2. Combines all the detailed information from the tasks + 3. Organizes information logically and coherently + 4. Provides actionable recommendations + 5. Is complete and self-contained + + {domain_instructions} + """ + + # Stream the comprehensive summary generation + async for response in agent.run_streaming(summary_prompt): + if isinstance(response, str): + yield response # Stream each character as it comes + else: + yield response # Pass through tool calls, etc. + + @staticmethod + def _parse_tasks_from_response(response: str) -> list[str]: + """Parse task list from agent response.""" + try: + import ast + + # The prompt asks for ONLY a Python list, so try direct parsing first + response = response.strip() + + # Try to parse the entire response as a Python literal + try: + tasks = ast.literal_eval(response) + if isinstance(tasks, list) and all(isinstance(t, str) for t in tasks): + return tasks + except (ValueError, SyntaxError): + pass + + # Fallback: Look for the first list in the response + import re + + list_pattern = r"\[.*?\]" + match = re.search(list_pattern, response, re.DOTALL) + if match: + try: + tasks = ast.literal_eval(match.group()) + if isinstance(tasks, list) and all(isinstance(t, str) for t in tasks): + return tasks + except (ValueError, SyntaxError): + pass + + print(f"Could not parse tasks from response: {response[:200]}...") + + except Exception as e: + print(f"Failed to parse tasks: {e}") + + return [] + + @staticmethod + def _extract_summary_from_response(response: str) -> str: + """Extract task summary from agent response.""" + summary_marker = "TASK SUMMARY:" + if summary_marker in response: + parts = response.split(summary_marker) + summary = parts[-1].strip() + # Clean up the summary (remove extra formatting) + summary = summary.replace("\n", " ").strip() + return summary + else: + # Fallback: use last paragraph as summary + paragraphs = [p.strip() for p in response.split("\n\n") if p.strip()] + if paragraphs: + summary = paragraphs[-1] + # Limit length and clean up + if len(summary) > MAX_SUMMARY_LENGTH: + summary = summary[:MAX_SUMMARY_LENGTH] + "..." + return summary + return "Task completed" diff --git a/packages/ragbits-agents/tests/unit/post_processors/test_base_post_processors.py b/packages/ragbits-agents/tests/unit/post_processors/test_base_post_processors.py new file mode 100644 index 000000000..1fa0d592b --- /dev/null +++ b/packages/ragbits-agents/tests/unit/post_processors/test_base_post_processors.py @@ -0,0 +1,173 @@ +from types import SimpleNamespace + +import pytest + +from ragbits.agents import Agent, AgentOptions, AgentResult, AgentRunContext, ToolCallResult +from ragbits.agents.exceptions import AgentInvalidPostProcessorError +from ragbits.agents.post_processors.base import PostProcessor, StreamingPostProcessor +from ragbits.core.llms.base import BasePrompt, ToolCall, Usage +from ragbits.core.llms.mock import MockLLM, MockLLMOptions + + +class MockPostProcessor(PostProcessor): + def __init__(self, append_content: str = " - processed"): + self.append_content = append_content + + async def process( + self, + result: AgentResult, + agent: Agent, + options: AgentOptions | None = None, + context: AgentRunContext | None = None, + ) -> AgentResult: + result.content += self.append_content + return result + + +class MockStreamingPostProcessor(StreamingPostProcessor): + def __init__(self, append_content: str = " - streamed"): + self.append_content = append_content + + async def process_streaming( + self, chunk: str | ToolCall | ToolCallResult | SimpleNamespace | BasePrompt | Usage, agent: Agent + ): + if isinstance(chunk, str): + return chunk + self.append_content + return chunk + + +@pytest.fixture +def mock_llm() -> MockLLM: + options = MockLLMOptions(response="Initial response") + return MockLLM(default_options=options) + + +@pytest.mark.asyncio +async def test_non_streaming_post_processor(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + post_processor = MockPostProcessor() + + result = await agent.run(post_processors=[post_processor]) + + assert result.content == "Initial response - processed" + + +@pytest.mark.asyncio +async def test_streaming_post_processor(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + post_processor = MockStreamingPostProcessor() + + result = agent.run_streaming(post_processors=[post_processor]) + async for chunk in result: + if isinstance(chunk, str): + assert chunk.endswith(" - streamed") + + +@pytest.mark.asyncio +async def test_non_streaming_processor_in_streaming_mode_raises_error(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + post_processor = MockPostProcessor() + + with pytest.raises(AgentInvalidPostProcessorError): + await anext(agent.run_streaming(post_processors=[post_processor])) # type: ignore # ignore type-checking to test raising the error + + +@pytest.mark.asyncio +async def test_non_streaming_processor_in_streaming_mode_with_allow_non_streaming(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + post_processor = MockPostProcessor() + + result = agent.run_streaming(post_processors=[post_processor], allow_non_streaming=True) + + async for _ in result: + pass + + assert result.content == "Initial response - processed" + + +@pytest.mark.asyncio +async def test_streaming_and_non_streaming_processors(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + non_streaming_processor = MockPostProcessor() + streaming_processor = MockStreamingPostProcessor() + + result = agent.run_streaming( + post_processors=[streaming_processor, non_streaming_processor], allow_non_streaming=True + ) + + async for _ in result: + pass + + assert result.content == "Initial response - streamed - processed" + + +@pytest.mark.asyncio +async def test_streaming_processor_always_runs_before_non_streaming_processor(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + non_streaming_processor = MockPostProcessor() + streaming_processor = MockStreamingPostProcessor() + + result = agent.run_streaming( + post_processors=[streaming_processor, non_streaming_processor], allow_non_streaming=True + ) + async for _ in result: + pass + + assert result.content == "Initial response - streamed - processed" + + result = agent.run_streaming( + post_processors=[non_streaming_processor, streaming_processor], allow_non_streaming=True + ) + async for _ in result: + pass + + assert result.content == "Initial response - streamed - processed" + + +@pytest.mark.asyncio +async def test_multiple_non_streaming_processors_order(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + non_streaming_processor_1 = MockPostProcessor(append_content=" - processed 1") + non_streaming_processor_2 = MockPostProcessor(append_content=" - processed 2") + + result = await agent.run(post_processors=[non_streaming_processor_2, non_streaming_processor_1]) + + assert result.content == "Initial response - processed 2 - processed 1" + + +@pytest.mark.asyncio +async def test_multiple_streaming_processors_order(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + streaming_processor_1 = MockStreamingPostProcessor(append_content=" - streamed 1") + streaming_processor_2 = MockStreamingPostProcessor(append_content=" - streamed 2") + + result = agent.run_streaming( + post_processors=[streaming_processor_2, streaming_processor_1], + ) + async for _ in result: + pass + + assert result.content == "Initial response - streamed 2 - streamed 1" + + +@pytest.mark.asyncio +async def test_multiple_streaming_and_non_streaming_processors_order(mock_llm: MockLLM): + agent: Agent = Agent(llm=mock_llm, prompt="Test prompt") + streaming_processor_1 = MockStreamingPostProcessor(append_content=" - streamed 1") + streaming_processor_2 = MockStreamingPostProcessor(append_content=" - streamed 2") + non_streaming_processor_1 = MockPostProcessor(append_content=" - processed 1") + non_streaming_processor_2 = MockPostProcessor(append_content=" - processed 2") + + result = agent.run_streaming( + post_processors=[ + non_streaming_processor_2, + streaming_processor_1, + non_streaming_processor_1, + streaming_processor_2, + ], + allow_non_streaming=True, + ) + async for _ in result: + pass + + assert result.content == "Initial response - streamed 1 - streamed 2 - processed 2 - processed 1" diff --git a/packages/ragbits-agents/tests/unit/post_processors/test_supervisor.py b/packages/ragbits-agents/tests/unit/post_processors/test_supervisor.py new file mode 100644 index 000000000..96057248c --- /dev/null +++ b/packages/ragbits-agents/tests/unit/post_processors/test_supervisor.py @@ -0,0 +1,263 @@ +import pytest +from pydantic import BaseModel + +from ragbits.agents import Agent +from ragbits.agents.post_processors.exceptions import ( + SupervisorCorrectionPromptFormatError, + SupervisorMaxRetriesExceededError, +) +from ragbits.agents.post_processors.supervisor import ( + HistoryStrategy, + SupervisorPostProcessor, + ValidationInput, + ValidationOutput, +) +from ragbits.core.llms.mock import MockLLM, MockLLMOptions +from ragbits.core.prompt.prompt import Prompt + + +class AlwaysValidPrompt(Prompt[ValidationInput, ValidationOutput]): + system_prompt = "You are a validator." + user_prompt = "Validate last response." + + +class AlwaysInvalidPrompt(Prompt[ValidationInput, ValidationOutput]): + system_prompt = "You are a validator." + user_prompt = "Validate last response." + + +@pytest.fixture +def agent_llm() -> MockLLM: + return MockLLM(default_options=MockLLMOptions(response="Agent answer")) + + +@pytest.mark.asyncio +async def test_supervisor_accepts_valid_response_and_attaches_metadata(agent_llm: MockLLM) -> None: + agent: Agent = Agent(llm=agent_llm, prompt="System prompt for agent") + + validation_llm = MockLLM( + default_options=MockLLMOptions(response='{"is_valid": true, "reasoning": "ok", "suggestion": ""}') + ) + + supervisor: SupervisorPostProcessor = SupervisorPostProcessor( + llm=validation_llm, + validation_prompt=AlwaysValidPrompt, + max_retries=2, + ) + + result = await agent.run("What is the weather in Tokyo?", post_processors=[supervisor]) + + assert result.content == "Agent answer" + assert "post_processors" in result.metadata + assert "supervisor" in result.metadata["post_processors"] + + validations = result.metadata["post_processors"]["supervisor"] + assert isinstance(validations, list) + assert len(validations) == 1 + assert validations[0]["is_valid"] is True + + +@pytest.mark.asyncio +async def test_supervisor_returns_after_retry_limit_when_fail_on_exceed_false(agent_llm: MockLLM) -> None: + agent: Agent = Agent(llm=agent_llm, prompt="System prompt for agent") + + validation_llm = MockLLM( + default_options=MockLLMOptions(response='{"is_valid": false, "reasoning": "bad", "suggestion": "fix"}') + ) + + supervisor: SupervisorPostProcessor = SupervisorPostProcessor( + llm=validation_llm, + validation_prompt=AlwaysInvalidPrompt, + max_retries=2, + fail_on_exceed=False, + history_strategy=HistoryStrategy.REMOVE, + ) + + result = await agent.run("Q?", post_processors=[supervisor]) + + assert "post_processors" in result.metadata + validations = result.metadata["post_processors"]["supervisor"] + assert isinstance(validations, list) + assert len(validations) == 3 + assert all(v["is_valid"] is False for v in validations) + + +@pytest.mark.asyncio +async def test_supervisor_raises_after_retry_limit_when_fail_on_exceed_true(agent_llm: MockLLM) -> None: + agent: Agent = Agent(llm=agent_llm, prompt="System prompt for agent") + + validation_llm = MockLLM( + default_options=MockLLMOptions(response='{"is_valid": false, "reasoning": "bad", "suggestion": "fix"}') + ) + + supervisor: SupervisorPostProcessor = SupervisorPostProcessor( + llm=validation_llm, + validation_prompt=AlwaysInvalidPrompt, + max_retries=2, + fail_on_exceed=True, + ) + + with pytest.raises(SupervisorMaxRetriesExceededError) as exc: + await agent.run("Q?", post_processors=[supervisor]) + + err = exc.value + assert err.max_retries == 2 + assert len(err.last_validations) == 3 + assert all(v.is_valid is False for v in err.last_validations) + + +@pytest.mark.asyncio +async def test_supervisor_history_remove_prunes_invalid_and_correction_user(agent_llm: MockLLM) -> None: + agent: Agent = Agent(llm=agent_llm, prompt="System prompt for agent") + + validation_llm = MockLLM( + default_options=MockLLMOptions(response='{"is_valid": false, "reasoning": "bad", "suggestion": "fix"}') + ) + + supervisor: SupervisorPostProcessor = SupervisorPostProcessor( + llm=validation_llm, + validation_prompt=AlwaysInvalidPrompt, + max_retries=1, + fail_on_exceed=False, + history_strategy=HistoryStrategy.REMOVE, + ) + + result = await agent.run("Q?", post_processors=[supervisor]) + + history = result.history + assert len(history) == 3 + assert history[0]["role"] == "system" + assert history[1]["role"] == "user" + assert history[1]["content"] == "Q?" + assert history[2]["role"] == "assistant" + assert history[2]["content"] == "Agent answer" + + +@pytest.mark.asyncio +async def test_supervisor_history_preserve_keeps_invalid_and_correction_user(agent_llm: MockLLM) -> None: + agent: Agent = Agent(llm=agent_llm, prompt="System prompt for agent") + + validation_llm = MockLLM( + default_options=MockLLMOptions(response='{"is_valid": false, "reasoning": "bad", "suggestion": "fix"}') + ) + + supervisor: SupervisorPostProcessor = SupervisorPostProcessor( + llm=validation_llm, + validation_prompt=AlwaysInvalidPrompt, + max_retries=1, + fail_on_exceed=False, + history_strategy=HistoryStrategy.PRESERVE, + ) + + result = await agent.run("Q?", post_processors=[supervisor]) + + history = result.history + assert len(history) == 5 + assert history[0]["role"] == "system" + assert history[1]["role"] == "user" + assert history[1]["content"] == "Q?" + assert history[2]["role"] == "assistant" + assert history[2]["content"] == "Agent answer" + assert history[3]["role"] == "user" + assert isinstance(history[3]["content"], str) + assert "Your answer is incorrect" in history[3]["content"] + assert history[4]["role"] == "assistant" + assert history[4]["content"] == "Agent answer" + + +class MyValidationOutput(BaseModel): + is_valid: bool + errors: list[str] + fixes: list[str] + confidence: float + + +class MyValidationPrompt(Prompt[ValidationInput, MyValidationOutput]): + system_prompt = "Mocked system prompt" + user_prompt = "Mocked user prompt" + + +@pytest.mark.asyncio +async def test_supervisor_custom_validation_and_correction_prompt_preserve_history(agent_llm: MockLLM) -> None: + agent: Agent = Agent(llm=agent_llm, prompt="You are a professional weather reporter.") + + validation_llm = MockLLM( + default_options=MockLLMOptions( + response=( + '{"is_valid": false, "errors": ["not detailed enough"], ' + '"fixes": ["add more details"], "confidence": 0.9}' + ) + ) + ) + + correction_prompt = ( + "Previous answer had issues:\n" + "Errors: {errors}\n" + "Fixes: {fixes}\n" + "Confidence: {confidence}\n" + "Please answer again using the fixes." + ) + + supervisor: SupervisorPostProcessor = SupervisorPostProcessor( + llm=validation_llm, + validation_prompt=MyValidationPrompt, + correction_prompt=correction_prompt, + max_retries=1, + fail_on_exceed=False, + history_strategy=HistoryStrategy.PRESERVE, + ) + + result = await agent.run("What is the weather in Tokyo?", post_processors=[supervisor]) + + validations = result.metadata["post_processors"]["supervisor"] + assert isinstance(validations, list) + assert len(validations) == 2 + assert all("errors" in v and "fixes" in v and v["is_valid"] is False for v in validations) + + history = result.history + assert len(history) == 5 + assert history[0]["role"] == "system" + assert history[0]["content"] + assert history[1]["role"] == "user" + assert history[1]["content"] + assert history[2]["role"] == "assistant" + assert history[3]["role"] == "user" + assert history[3]["content"] + + corr = history[3]["content"] + assert "Previous answer had issues:" in corr + assert "Errors:" in corr + assert "not detailed enough" in corr + assert "Fixes:" in corr + assert "add more details" in corr + assert "Confidence: 0.9" in corr + assert history[4]["role"] == "assistant" + + +@pytest.mark.asyncio +async def test_supervisor_raises_when_correction_prompt_has_missing_fields(agent_llm: MockLLM) -> None: + agent: Agent = Agent(llm=agent_llm, prompt="System prompt for agent") + + validation_llm = MockLLM( + default_options=MockLLMOptions(response='{"is_valid": false, "reasoning": "bad", "suggestion": "fix"}') + ) + + bad_correction_prompt = "Missing field here: {nonexistent}" + + supervisor: SupervisorPostProcessor = SupervisorPostProcessor( + llm=validation_llm, + validation_prompt=AlwaysInvalidPrompt, + correction_prompt=bad_correction_prompt, + max_retries=1, + fail_on_exceed=False, + history_strategy=HistoryStrategy.PRESERVE, + ) + + with pytest.raises(SupervisorCorrectionPromptFormatError) as exc: + await agent.run("Q?", post_processors=[supervisor]) + + err = exc.value + msg = str(err) + assert "failed to format correction prompt" in msg.lower() + assert "nonexistent" in msg.lower() + assert err.missing_keys == ["nonexistent"] diff --git a/packages/ragbits-agents/tests/unit/test_agent.py b/packages/ragbits-agents/tests/unit/test_agent.py index 10fd2efbf..4444e4c53 100644 --- a/packages/ragbits-agents/tests/unit/test_agent.py +++ b/packages/ragbits-agents/tests/unit/test_agent.py @@ -769,3 +769,47 @@ async def test_tool_choice_history_preservation(llm_with_tool_call: MockLLM, met # 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 + + +async def test_explicit_input_type_prompt_creation(): + class CustomInput(BaseModel): + foo: int + bar: str + + @Agent.prompt_config(CustomInput) + class AgentWithExplicitInput(Agent): + system_prompt = "System prompt" + user_prompt = "{{ foo }} {{ bar }}" + + prompt_cls = AgentWithExplicitInput.prompt_cls + assert prompt_cls is not None + assert issubclass(prompt_cls, Prompt) + assert prompt_cls.system_prompt == "System prompt" + assert prompt_cls.user_prompt == "{{ foo }} {{ bar }}" + + +async def test_default_user_prompt_is_input_placeholder(): + class CustomInputModel(BaseModel): + input: int + + @Agent.prompt_config(CustomInputModel) + class AgentExplicitPrompt(Agent): + system_prompt = "Explicit system" + + prompt_cls2 = AgentExplicitPrompt.prompt_cls + assert prompt_cls2 is not None + assert issubclass(prompt_cls2, Prompt) + assert prompt_cls2.user_prompt == "{{ input }}" + + +async def test_input_type_check_with_system_prompt(llm_with_tool_call: MockLLM): + class AgentExplicitPrompt(Agent): + system_prompt = "Explicit system" + + with pytest.raises(ValueError): + AgentExplicitPrompt( + llm=llm_with_tool_call, + prompt="You are a helpful assistant", + tools=[get_weather], + keep_history=True, + ) diff --git a/packages/ragbits-agents/tests/unit/tools/test_memory.py b/packages/ragbits-agents/tests/unit/tools/test_memory.py new file mode 100644 index 000000000..32309c40e --- /dev/null +++ b/packages/ragbits-agents/tests/unit/tools/test_memory.py @@ -0,0 +1,159 @@ +from datetime import datetime +from unittest.mock import AsyncMock, MagicMock + +import pytest + +from ragbits.agents.tools.memory import LongTermMemory, MemoryEntry, create_memory_tools +from ragbits.core.embeddings.base import VectorSize +from ragbits.core.vector_stores.in_memory import InMemoryVectorStore + + +@pytest.fixture +def mock_embedder() -> MagicMock: + """Fixture for mocking the embedder.""" + mock = MagicMock() + mock.embed_text = AsyncMock(return_value=[[0.1, 0.2, 0.3, 0.4, 0.5]]) + mock.get_vector_size = AsyncMock(return_value=VectorSize(size=5, is_sparse=False)) + return mock + + +@pytest.fixture +def vector_store(mock_embedder: MagicMock) -> InMemoryVectorStore: + """Fixture for creating a real InMemoryVectorStore with mocked embedder.""" + return InMemoryVectorStore(embedder=mock_embedder) + + +@pytest.fixture +def memory_tool(vector_store: InMemoryVectorStore) -> LongTermMemory: + """Fixture for creating a LongTermMemory instance.""" + return LongTermMemory(vector_store=vector_store) + + +class TestMemoryEntry: + """Test cases for MemoryEntry model.""" + + @staticmethod + def test_memory_entry_creation() -> None: + """Test that MemoryEntry can be created with required fields and auto-generates timestamp and ID.""" + memory = MemoryEntry( + key="user_123", + content="Test content", + ) + + assert memory.key == "user_123" + assert memory.content == "Test content" + assert isinstance(memory.timestamp, datetime) + assert isinstance(memory.memory_id, str) + assert len(memory.memory_id) > 0 + + +class TestLongTermMemory: + """Test cases for LongTermMemory class.""" + + @staticmethod + async def test_store_memory(memory_tool: LongTermMemory) -> None: + """Test that store_memory returns a memory ID.""" + memory_id = await memory_tool.store_memory("user_123", "User loves hiking") + + assert isinstance(memory_id, str) + assert len(memory_id) > 0 + + @staticmethod + async def test_store_and_retrieve_memory(memory_tool: LongTermMemory) -> None: + """Test storing and retrieving a memory.""" + memory_id = await memory_tool.store_memory("user_123", "User loves hiking in the mountains") + memories = await memory_tool.retrieve_memories("user_123", "hobbies", 1) + + assert len(memories) == 1 + assert memories[0].content == "User loves hiking in the mountains" + assert memories[0].key == "user_123" + assert memories[0].memory_id == memory_id + + @staticmethod + async def test_retrieve_memories_empty(memory_tool: LongTermMemory) -> None: + """Test retrieve_memories when no memories are found.""" + memories = await memory_tool.retrieve_memories("user_123", "hiking") + + assert memories == [] + + @staticmethod + async def test_get_all_memories(memory_tool: LongTermMemory) -> None: + """Test get_all_memories returns all memories for a user.""" + await memory_tool.store_memory("user_123", "User loves hiking") + await memory_tool.store_memory("user_123", "User loves cooking") + await memory_tool.store_memory("user_456", "User loves reading") + + memories = await memory_tool.get_all_memories("user_123") + + assert len(memories) == 2 + assert all(memory.key == "user_123" for memory in memories) + + @staticmethod + async def test_delete_memory(memory_tool: LongTermMemory) -> None: + """Test delete_memory removes the correct memory.""" + memory_id = await memory_tool.store_memory("user_123", "User loves hiking") + + # Verify it exists + memories = await memory_tool.get_all_memories("user_123") + assert len(memories) == 1 + + # Delete it + success = await memory_tool.delete_memory("user_123", memory_id) + assert success is True + + # Verify it's gone + memories = await memory_tool.get_all_memories("user_123") + assert len(memories) == 0 + + @staticmethod + async def test_delete_memory_not_found(memory_tool: LongTermMemory) -> None: + """Test delete_memory when memory doesn't exist.""" + success = await memory_tool.delete_memory("user_123", "non-existent-id") + + assert success is False + + +class TestCreateMemoryTools: + """Test cases for create_memory_tools function.""" + + @staticmethod + async def test_create_memory_tools_returns_functions(memory_tool: LongTermMemory) -> None: + """Test that create_memory_tools returns a list of callable functions.""" + tools = create_memory_tools(memory_tool, "user_123") + + assert len(tools) == 2 + assert callable(tools[0]) # store_memory + assert callable(tools[1]) # retrieve_memories + + @staticmethod + async def test_store_memory_tool(memory_tool: LongTermMemory) -> None: + """Test that the store_memory tool function works correctly.""" + tools = create_memory_tools(memory_tool, "user_123") + store_memory = tools[0] + + memory_id = await store_memory("User loves cooking") + + assert isinstance(memory_id, str) + + @staticmethod + async def test_retrieve_memories_tool_no_memories(memory_tool: LongTermMemory) -> None: + """Test retrieve_memories tool when no memories are found.""" + tools = create_memory_tools(memory_tool, "user_123") + retrieve_memories = tools[1] + + result = await retrieve_memories("cooking") + + assert result == "No memories found for user 'user_123' with given query" + + @staticmethod + async def test_retrieve_memories_tool_with_memories(memory_tool: LongTermMemory) -> None: + """Test retrieve_memories tool when memories are found.""" + tools = create_memory_tools(memory_tool, "user_123") + store_memory = tools[0] + retrieve_memories = tools[1] + + await store_memory("User loves preparing Italian food") + result = await retrieve_memories("cooking") + + assert "Found 1 relevant memories for user 'user_123':" in result + assert "User loves preparing Italian food" in result diff --git a/packages/ragbits-chat/CHANGELOG.md b/packages/ragbits-chat/CHANGELOG.md index aebabd8c1..8cb944606 100644 --- a/packages/ragbits-chat/CHANGELOG.md +++ b/packages/ragbits-chat/CHANGELOG.md @@ -1,6 +1,10 @@ # CHANGELOG ## Unreleased +- Add automatic topic extraction to be used as conversation title with ability to edit in the client side (#840) +- Add todo list component to the UI, add support for todo events in API (#827) + +- customizable HeroUI theme (#841) ## 1.3.0 (2025-09-11) diff --git a/packages/ragbits-chat/pyproject.toml b/packages/ragbits-chat/pyproject.toml index 908e33ba4..21f6c1740 100644 --- a/packages/ragbits-chat/pyproject.toml +++ b/packages/ragbits-chat/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ragbits-chat" -version = "1.3.0" +version = "1.4.0.dev202509121038" description = "Building blocks for rapid development of GenAI applications" readme = "README.md" requires-python = ">=3.10" @@ -31,7 +31,7 @@ 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", "bcrypt>=4.2.0", "python-jose[cryptography]>=3.5.0", "ragbits-core==1.3.0"] +dependencies = ["fastapi>=0.115.0,<1.0.0", "uvicorn>=0.31.0,<1.0.0", "httpx>=0.28.1,<1.0.0", "bcrypt>=4.2.0", "python-jose[cryptography]>=3.5.0", "ragbits-core==1.4.0.dev202509121038"] [project.urls] "Homepage" = "https://github.com/deepsense-ai/ragbits" diff --git a/packages/ragbits-chat/src/ragbits/chat/api.py b/packages/ragbits-chat/src/ragbits/chat/api.py index 042e79da9..13f938d45 100644 --- a/packages/ragbits-chat/src/ragbits/chat/api.py +++ b/packages/ragbits-chat/src/ragbits/chat/api.py @@ -1,6 +1,7 @@ import importlib import json import logging +import re import time from collections.abc import AsyncGenerator from contextlib import asynccontextmanager @@ -11,7 +12,7 @@ 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.responses import HTMLResponse, JSONResponse, PlainTextResponse, StreamingResponse from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from fastapi.staticfiles import StaticFiles from pydantic import BaseModel @@ -59,6 +60,7 @@ def __init__( ui_build_dir: str | None = None, debug_mode: bool = False, auth_backend: AuthenticationBackend | type[AuthenticationBackend] | str | None = None, + theme_path: str | None = None, ) -> None: """ Initialize the RagbitsAPI. @@ -70,6 +72,7 @@ def __init__( 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. + theme_path: Path to a JSON file containing HeroUI theme configuration from heroui.com/themes """ 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" @@ -77,6 +80,7 @@ def __init__( 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 + self.theme_path = Path(theme_path) if theme_path else None @asynccontextmanager async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]: @@ -188,6 +192,25 @@ async def config() -> JSONResponse: return JSONResponse(content=config_response.model_dump()) + # Theme CSS endpoint - always available, returns 404 if no theme configured + @self.app.get("/api/theme", response_class=PlainTextResponse) + async def theme() -> PlainTextResponse: + if not self.theme_path or not self.theme_path.exists(): + raise HTTPException(status_code=404, detail="No theme configured") + + try: + with open(self.theme_path, encoding="utf-8") as f: + json_content = f.read().strip() + + css_content = RagbitsAPI._convert_heroui_json_to_css(json_content) + + return PlainTextResponse( + content=css_content, media_type="text/css", headers={"Cache-Control": "public, max-age=3600"} + ) + except Exception as e: + logger.error(f"Error serving theme: {e}") + raise HTTPException(status_code=500, detail="Error loading theme") from e + @self.app.get("/{full_path:path}", response_class=HTMLResponse) async def root() -> HTMLResponse: index_file = self.dist_dir / "index.html" @@ -680,3 +703,78 @@ def run(self, host: str = "127.0.0.1", port: int = 8000) -> None: Used for starting the API """ uvicorn.run(self.app, host=host, port=port) + + @staticmethod + def _convert_heroui_json_to_css(json_content: str) -> str: + """Convert HeroUI JSON theme configuration to CSS variables.""" + try: + theme_config = json.loads(json_content) + css_lines = [ + "/* Auto-generated CSS from HeroUI theme configuration */", + "", + ":root {", + ] + + # Process light theme + if "themes" in theme_config and "light" in theme_config["themes"]: + light_colors = theme_config["themes"]["light"]["colors"] + css_lines.extend(RagbitsAPI._process_theme_colors(light_colors)) + + # Add layout properties + if "layout" in theme_config: + for prop, value in theme_config["layout"].items(): + css_prop = re.sub(r"([A-Z])", r"-\1", prop).lower() + css_lines.append(f" --heroui-{css_prop}: {value};") + + css_lines.append("}") + css_lines.append("") + + # Process dark theme + if "themes" in theme_config and "dark" in theme_config["themes"]: + css_lines.append(".dark {") + dark_colors = theme_config["themes"]["dark"]["colors"] + css_lines.extend(RagbitsAPI._process_theme_colors(dark_colors)) + + if "layout" in theme_config: + for prop, value in theme_config["layout"].items(): + css_prop = re.sub(r"([A-Z])", r"-\1", prop).lower() + css_lines.append(f" --heroui-{css_prop}: {value};") + + css_lines.append("}") + + # Add body styling + css_lines.extend( + [ + "", + "body {", + " background-color: var(--heroui-background);", + " color: var(--heroui-foreground);", + "}", + ] + ) + + return "\n".join(css_lines) + + except json.JSONDecodeError as e: + logger.error(f"Invalid JSON in theme file: {e}") + raise HTTPException(status_code=400, detail="Invalid JSON theme file") from e + except Exception as e: + logger.error(f"Error converting theme: {e}") + raise HTTPException(status_code=500, detail="Error processing theme") from e + + @staticmethod + def _process_theme_colors(colors: dict) -> list[str]: + """Process theme colors and return CSS variable declarations.""" + css_lines = [] + + for color_name, color_value in colors.items(): + if isinstance(color_value, dict): + for shade, value in color_value.items(): + if shade == "DEFAULT": + css_lines.append(f" --heroui-{color_name}: {value};") + elif isinstance(value, str): + css_lines.append(f" --heroui-{color_name}-{shade}: {value};") + elif isinstance(color_value, str): + css_lines.append(f" --heroui-{color_name}: {color_value};") + + return css_lines diff --git a/packages/ragbits-chat/src/ragbits/chat/cli.py b/packages/ragbits-chat/src/ragbits/chat/cli.py index e4643d43e..0780615c6 100644 --- a/packages/ragbits-chat/src/ragbits/chat/cli.py +++ b/packages/ragbits-chat/src/ragbits/chat/cli.py @@ -32,6 +32,11 @@ def run( ), 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"), + theme: str = typer.Option( + None, + "--theme", + help="Path to a HeroUI theme JSON file from heroui.com/themes", + ), ) -> None: """ Run API service with UI demo @@ -42,5 +47,6 @@ def run( ui_build_dir=ui_build_dir, debug_mode=debug_mode, auth_backend=auth, + theme_path=theme, ) 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 8e4b73df2..ad0153212 100644 --- a/packages/ragbits-chat/src/ragbits/chat/interface/_interface.py +++ b/packages/ragbits-chat/src/ragbits/chat/interface/_interface.py @@ -9,6 +9,8 @@ from collections.abc import AsyncGenerator, Callable from typing import Any +from ragbits.agents.tools.todo import Task +from ragbits.chat.interface.summary import SummaryGenerator from ragbits.chat.interface.ui_customization import UICustomization from ragbits.core.audit.metrics import record_metric from ragbits.core.audit.metrics.base import MetricType @@ -84,6 +86,13 @@ async def wrapper( interface_class=self.__class__.__name__, ) + # Generate summary to serve as title for new conversations + try: + summary = await self.generate_conversation_summary(message, history, context) + yield ChatResponse(type=ChatResponseType.CONVERSATION_SUMMARY, content=summary) + except Exception: + logger.exception("Failed to generate conversation title") + responses = [] main_response = "" extra_responses = [] @@ -184,6 +193,7 @@ class ChatInterface(ABC): show_usage: bool = False ui_customization: UICustomization | None = None history_persistence: HistoryPersistenceStrategy | None = None + summary_generator: SummaryGenerator | None = None def __init_subclass__(cls, **kwargs: dict) -> None: """Automatically apply the with_chat_metadata decorator to the chat method in subclasses.""" @@ -251,6 +261,10 @@ def create_usage_response(usage: Usage) -> ChatResponse: content={model: MessageUsage.from_usage(usage) for model, usage in usage.model_breakdown.items()}, ) + @staticmethod + def create_todo_item_response(task: Task) -> ChatResponse: + return ChatResponse(type=ChatResponseType.TODO_ITEM, content=task) + @staticmethod def _sign_state(state: dict[str, Any]) -> str: """ @@ -366,3 +380,10 @@ async def save_feedback( ) logger.info(f"[{self.__class__.__name__}] Saving {feedback} for message {message_id} with payload {payload}") + + async def generate_conversation_summary(self, message: str, history: ChatFormat, context: ChatContext) -> str: + """Delegate to the configured summary generator.""" + if not self.summary_generator: + raise Exception("Tried to invoke `generate_conversation_summary`. No SummaryGenerator found.") + + return await self.summary_generator.generate(message, history, context) diff --git a/packages/ragbits-chat/src/ragbits/chat/interface/summary.py b/packages/ragbits-chat/src/ragbits/chat/interface/summary.py new file mode 100644 index 000000000..c27e3d513 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/interface/summary.py @@ -0,0 +1,82 @@ +import asyncio +import logging +from abc import ABC, abstractmethod + +from ragbits.chat.interface.types import ChatContext +from ragbits.core.llms.base import LLM +from ragbits.core.prompt.base import ChatFormat + +logger = logging.getLogger(__name__) + + +class SummaryGenerator(ABC): + """Base class for summary generators.""" + + @abstractmethod + async def generate(self, message: str, history: ChatFormat, context: ChatContext) -> str: + """Generate a concise conversation title.""" + ... + + +class HeuristicSummaryGenerator(SummaryGenerator): + """Simple title generator using heuristics (no LLM).""" + + SIMPLE_MESSAGE_LENGTH = 2 + + def __init__(self, max_words: int = 6, fallback_title: str = "New chat"): + self.max_words = max_words + self.fallback_title = fallback_title + + async def generate(self, message: str, _history: ChatFormat, _context: ChatContext) -> str: + """Generate a concise conversation title using heuristic approach.""" + t = (message or "").strip() + if not t or len(t.split()) <= self.SIMPLE_MESSAGE_LENGTH: + return self.fallback_title + return " ".join(t.split()[: self.max_words]) + + +class LLMSummaryGenerator(SummaryGenerator): + """Generates a short conversation title using an LLM.""" + + DEFAULT_PROMPT = ( + "You are a concise title generator for conversation threads. " + "Given the user's first message, return a single short title (3–8 words) summarizing the topic. " + "If the message is just a greeting or otherwise generic, respond exactly with: New chat\n\n" + "User message:\n{message}\n\nTitle:" + ) + DEFAULT_TIMEOUT = 5 + + def __init__(self, llm: LLM, timeout: int = DEFAULT_TIMEOUT, prompt_template: str | None = None): + self.llm = llm + self.timeout = timeout + self.prompt_template = prompt_template or self.DEFAULT_PROMPT + + async def generate(self, message: str, _history: ChatFormat, _context: ChatContext) -> str: + """Generate a concise conversation title using LLM.""" + prompt = self.prompt_template.format(message=message) + try: + raw = await asyncio.wait_for(self.llm.generate(prompt), self.timeout) + title = str(raw).strip().splitlines()[0] + return title or "New chat" + except asyncio.TimeoutError: + logger.warning("LLM title generation timed out — using fallback.") + return "New chat" + except Exception: + logger.exception("Error generating title with LLM — using fallback.") + return "New chat" + + +class HybridSummaryGenerator(SummaryGenerator): + """Generates a short conversation title using an LLM with heuristic approach as a fallback.""" + + def __init__(self, llm: LLM): + self.llm_gen = LLMSummaryGenerator(llm) + self.heuristic = HeuristicSummaryGenerator() + + async def generate(self, message: str, history: ChatFormat, context: ChatContext) -> str: + """Generate summary using either LLM with heuristic approach as a fallback.""" + try: + title = await self.llm_gen.generate(message, history, context) + return title or await self.heuristic.generate(message, history, context) + except Exception: + return await self.heuristic.generate(message, history, context) diff --git a/packages/ragbits-chat/src/ragbits/chat/interface/types.py b/packages/ragbits-chat/src/ragbits/chat/interface/types.py index 920003651..6c465d5af 100644 --- a/packages/ragbits-chat/src/ragbits/chat/interface/types.py +++ b/packages/ragbits-chat/src/ragbits/chat/interface/types.py @@ -3,6 +3,7 @@ from pydantic import BaseModel, ConfigDict, Field +from ragbits.agents.tools.todo import Task from ragbits.chat.auth.types import User from ragbits.chat.interface.forms import UserSettings from ragbits.chat.interface.ui_customization import UICustomization @@ -116,12 +117,14 @@ class ChatResponseType(str, Enum): STATE_UPDATE = "state_update" MESSAGE_ID = "message_id" CONVERSATION_ID = "conversation_id" + CONVERSATION_SUMMARY = "conversation_summary" LIVE_UPDATE = "live_update" FOLLOWUP_MESSAGES = "followup_messages" IMAGE = "image" CHUNKED_CONTENT = "chunked_content" CLEAR_MESSAGE = "clear_message" USAGE = "usage" + TODO_ITEM = "todo_item" class ChatContext(BaseModel): @@ -140,7 +143,16 @@ class ChatResponse(BaseModel): type: ChatResponseType content: ( - str | Reference | StateUpdate | LiveUpdate | list[str] | Image | dict[str, MessageUsage] | ChunkedContent | None + str + | Reference + | StateUpdate + | LiveUpdate + | list[str] + | Image + | dict[str, MessageUsage] + | ChunkedContent + | None + | Task ) def as_text(self) -> str | None: @@ -217,6 +229,18 @@ def as_usage(self) -> dict[str, MessageUsage] | None: """ return cast(dict[str, MessageUsage], self.content) if self.type == ChatResponseType.USAGE else None + def as_task(self) -> Task | None: + """ + Return the content as Task if this is an todo_item response, else None. + """ + return cast(Task, self.content) if self.type == ChatResponseType.TODO_ITEM else None + + def as_conversation_summary(self) -> str | None: + """ + Return the content as string if this is an conversation summary response, else None + """ + return cast(str, self.content) if self.type == ChatResponseType.CONVERSATION_SUMMARY else None + class ChatMessageRequest(BaseModel): """Client-side chat request interface.""" diff --git a/packages/ragbits-chat/src/ragbits/chat/providers/model_provider.py b/packages/ragbits-chat/src/ragbits/chat/providers/model_provider.py index 6b1191c74..b94bfe4bc 100644 --- a/packages/ragbits-chat/src/ragbits/chat/providers/model_provider.py +++ b/packages/ragbits-chat/src/ragbits/chat/providers/model_provider.py @@ -10,6 +10,7 @@ from pydantic import BaseModel +from ragbits.agents.tools.todo import Task, TaskStatus from ragbits.chat.interface.types import AuthType @@ -82,6 +83,7 @@ def get_models(self) -> dict[str, type[BaseModel | Enum]]: "FeedbackType": FeedbackType, "LiveUpdateType": LiveUpdateType, "MessageRole": MessageRole, + "TaskStatus": TaskStatus, # Core data models "ChatContext": ChatContext, "ChunkedContent": ChunkedContent, @@ -93,6 +95,7 @@ def get_models(self) -> dict[str, type[BaseModel | Enum]]: "FeedbackItem": FeedbackItem, "Image": Image, "MessageUsage": MessageUsage, + "Task": Task, # Configuration models "HeaderCustomization": HeaderCustomization, "UICustomization": UICustomization, @@ -151,6 +154,8 @@ def get_categories(self) -> dict[str, list[str]]: "JWTToken", "User", "MessageUsage", + "Task", + "TaskStatus", ], "configuration": [ "HeaderCustomization", diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-B3JOY-uC.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-D7uykMTl.js similarity index 81% rename from packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-B3JOY-uC.js rename to packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-D7uykMTl.js index e7e8303be..a46081ddd 100644 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-B3JOY-uC.js +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/AuthGuard-D7uykMTl.js @@ -1 +1 @@ -import{r as a,j as s,aN as c,h as x,aJ as g,bs as m,bt as p,bu as v,bv as b,bw as j}from"./index-C75huGqt.js";import{a as r}from"./authStore-DLhLSjcY.js";const k=a.createContext(null);function A({children:o}){const[n]=a.useState(()=>r);return s.jsx(k.Provider,{value:n,children:o})}function C(){const{token:o,tokenExpiration:n,logout:l}=c(r,e=>e),i=x(e=>e.isLoading),u=g(),d=a.useRef(i);a.useEffect(()=>{d.current=i},[i]);const t=a.useCallback(()=>{const e=()=>{d.current?setTimeout(e,500):(l(),u("/login"))};e()},[l,u]);return a.useEffect(()=>{if(!o||!n)return;const e=Date.now(),h=n-e;if(h<=0){t();return}const f=setTimeout(()=>{t()},h);return()=>clearTimeout(f)},[o,n,t]),null}function S({children:o}){const n=m(),l=c(r,t=>t.isAuthenticated),i=c(r,t=>t.hasHydrated),u=c(r,t=>t.token?.access_token),d=c(r,t=>t.logout);return i?n.pathname==="/login"?o:l&&u?s.jsx(A,{children:s.jsxs(v,{baseUrl:b,auth:{getToken:()=>u,onUnauthorized:d},children:[o,s.jsx(C,{})]})}):s.jsx(j,{to:"/login",replace:!0}):s.jsx(p,{})}export{S as default}; +import{r as a,j as s,aW as c,h as x,aE as g,bp as m,bq as p,br as v,bs as b,bt as j}from"./index-BTi2GGnV.js";import{a as r}from"./authStore-DeDSU5YK.js";const k=a.createContext(null);function A({children:o}){const[n]=a.useState(()=>r);return s.jsx(k.Provider,{value:n,children:o})}function C(){const{token:o,tokenExpiration:n,logout:l}=c(r,e=>e),i=x(e=>e.isLoading),u=g(),d=a.useRef(i);a.useEffect(()=>{d.current=i},[i]);const t=a.useCallback(()=>{const e=()=>{d.current?setTimeout(e,500):(l(),u("/login"))};e()},[l,u]);return a.useEffect(()=>{if(!o||!n)return;const e=Date.now(),h=n-e;if(h<=0){t();return}const f=setTimeout(()=>{t()},h);return()=>clearTimeout(f)},[o,n,t]),null}function S({children:o}){const n=m(),l=c(r,t=>t.isAuthenticated),i=c(r,t=>t.hasHydrated),u=c(r,t=>t.token?.access_token),d=c(r,t=>t.logout);return i?n.pathname==="/login"?o:l&&u?s.jsx(A,{children:s.jsxs(v,{baseUrl:b,auth:{getToken:()=>u,onUnauthorized:d},children:[o,s.jsx(C,{})]})}):s.jsx(j,{to:"/login",replace:!0}):s.jsx(p,{})}export{S as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-BCtc0BUi.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-BCtc0BUi.js new file mode 100644 index 000000000..2499b21c2 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-BCtc0BUi.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-d6pKlm-a.js","assets/index-BTi2GGnV.js","assets/index-DlZV-Rce.css"])))=>i.map(i=>d[i]); +import{r as P,t as ae,k as Xe,Z as W,ax as Me,$ as Ze,j as t,q as me,L as xe,_ as Ye,n as ye,T as Pe,s as et,v as R,V as tt,d as X,l as se,aq as Ie,o as ot,H as ke,a9 as rt,J as Ne,ay as at,ac as pe,U as st,X as _e,af as he,az as nt,aA as lt,ag as it,K as dt,O as be,Q as ct,W as ut,a0 as pt,ah as ft,a2 as K,a3 as Ae,ai as vt,R as ht,aB as bt,a8 as gt,aC as mt,aD as xt,a5 as yt,a as Pt,aE as Ct,i as fe,aF as Ce,aG as ve,D as we,I as Q,as as wt,aH as $t,aI as $e}from"./index-BTi2GGnV.js";import{u as jt,b as St,c as je,d as Dt,e as Mt,m as It,$ as kt,a as Nt}from"./useMenuTriggerState-GcYmjJio.js";import{$ as _t}from"./useSelectableItem-Cd2eAf2I.js";import{i as At}from"./chunk-SSA7SXE4-4ESFtvtR.js";var Ot=(e,r)=>{var n;let s=[];const a=(n=P.Children.map(e,d=>P.isValidElement(d)&&d.type===r?(s.push(d),null):d))==null?void 0:n.filter(Boolean),u=s.length>=0?s:void 0;return[a,u]},Ft=ae({base:["w-full","p-1","min-w-[200px]"]});ae({slots:{base:["flex","group","gap-2","items-center","justify-between","relative","px-2","py-1.5","w-full","h-full","box-border","rounded-small","outline-hidden","cursor-pointer","tap-highlight-transparent","data-[pressed=true]:opacity-70",...Xe,"data-[focus-visible=true]:dark:ring-offset-background-content1"],wrapper:"w-full flex flex-col items-start justify-center",title:"flex-1 text-small font-normal truncate",description:["w-full","text-tiny","text-foreground-500","group-hover:text-current"],selectedIcon:["text-inherit","w-3","h-3","shrink-0"],shortcut:["px-1","py-0.5","rounded-sm","font-sans","text-foreground-500","text-tiny","border-small","border-default-300","group-hover:border-current"]},variants:{variant:{solid:{base:""},bordered:{base:"border-medium border-transparent bg-transparent"},light:{base:"bg-transparent"},faded:{base:"border-small border-transparent hover:border-default data-[hover=true]:bg-default-100"},flat:{base:""},shadow:{base:"data-[hover=true]:shadow-lg"}},color:{default:{},primary:{},secondary:{},success:{},warning:{},danger:{}},isDisabled:{true:{base:"opacity-disabled pointer-events-none"}},disableAnimation:{true:{},false:{}}},defaultVariants:{variant:"solid",color:"default"},compoundVariants:[{variant:"solid",color:"default",class:{base:"data-[hover=true]:bg-default data-[hover=true]:text-default-foreground"}},{variant:"solid",color:"primary",class:{base:"data-[hover=true]:bg-primary data-[hover=true]:text-primary-foreground"}},{variant:"solid",color:"secondary",class:{base:"data-[hover=true]:bg-secondary data-[hover=true]:text-secondary-foreground"}},{variant:"solid",color:"success",class:{base:"data-[hover=true]:bg-success data-[hover=true]:text-success-foreground"}},{variant:"solid",color:"warning",class:{base:"data-[hover=true]:bg-warning data-[hover=true]:text-warning-foreground"}},{variant:"solid",color:"danger",class:{base:"data-[hover=true]:bg-danger data-[hover=true]:text-danger-foreground"}},{variant:"shadow",color:"default",class:{base:"data-[hover=true]:shadow-default/50 data-[hover=true]:bg-default data-[hover=true]:text-default-foreground"}},{variant:"shadow",color:"primary",class:{base:"data-[hover=true]:shadow-primary/30 data-[hover=true]:bg-primary data-[hover=true]:text-primary-foreground"}},{variant:"shadow",color:"secondary",class:{base:"data-[hover=true]:shadow-secondary/30 data-[hover=true]:bg-secondary data-[hover=true]:text-secondary-foreground"}},{variant:"shadow",color:"success",class:{base:"data-[hover=true]:shadow-success/30 data-[hover=true]:bg-success data-[hover=true]:text-success-foreground"}},{variant:"shadow",color:"warning",class:{base:"data-[hover=true]:shadow-warning/30 data-[hover=true]:bg-warning data-[hover=true]:text-warning-foreground"}},{variant:"shadow",color:"danger",class:{base:"data-[hover=true]:shadow-danger/30 data-[hover=true]:bg-danger data-[hover=true]:text-danger-foreground"}},{variant:"bordered",color:"default",class:{base:"data-[hover=true]:border-default"}},{variant:"bordered",color:"primary",class:{base:"data-[hover=true]:border-primary data-[hover=true]:text-primary"}},{variant:"bordered",color:"secondary",class:{base:"data-[hover=true]:border-secondary data-[hover=true]:text-secondary"}},{variant:"bordered",color:"success",class:{base:"data-[hover=true]:border-success data-[hover=true]:text-success"}},{variant:"bordered",color:"warning",class:{base:"data-[hover=true]:border-warning data-[hover=true]:text-warning"}},{variant:"bordered",color:"danger",class:{base:"data-[hover=true]:border-danger data-[hover=true]:text-danger"}},{variant:"flat",color:"default",class:{base:"data-[hover=true]:bg-default/40 data-[hover=true]:text-default-foreground"}},{variant:"flat",color:"primary",class:{base:"data-[hover=true]:bg-primary/20 data-[hover=true]:text-primary"}},{variant:"flat",color:"secondary",class:{base:"data-[hover=true]:bg-secondary/20 data-[hover=true]:text-secondary"}},{variant:"flat",color:"success",class:{base:"data-[hover=true]:bg-success/20 data-[hover=true]:text-success "}},{variant:"flat",color:"warning",class:{base:"data-[hover=true]:bg-warning/20 data-[hover=true]:text-warning"}},{variant:"flat",color:"danger",class:{base:"data-[hover=true]:bg-danger/20 data-[hover=true]:text-danger"}},{variant:"faded",color:"default",class:{base:"data-[hover=true]:text-default-foreground"}},{variant:"faded",color:"primary",class:{base:"data-[hover=true]:text-primary"}},{variant:"faded",color:"secondary",class:{base:"data-[hover=true]:text-secondary"}},{variant:"faded",color:"success",class:{base:"data-[hover=true]:text-success"}},{variant:"faded",color:"warning",class:{base:"data-[hover=true]:text-warning"}},{variant:"faded",color:"danger",class:{base:"data-[hover=true]:text-danger"}},{variant:"light",color:"default",class:{base:"data-[hover=true]:text-default-500"}},{variant:"light",color:"primary",class:{base:"data-[hover=true]:text-primary"}},{variant:"light",color:"secondary",class:{base:"data-[hover=true]:text-secondary"}},{variant:"light",color:"success",class:{base:"data-[hover=true]:text-success"}},{variant:"light",color:"warning",class:{base:"data-[hover=true]:text-warning"}},{variant:"light",color:"danger",class:{base:"data-[hover=true]:text-danger"}}]});ae({slots:{base:"relative mb-2",heading:"pl-1 text-tiny text-foreground-500",group:"data-[has-title=true]:pt-1",divider:"mt-2"}});ae({base:"w-full flex flex-col gap-0.5 p-1"});var Et=(e,r)=>{if(!e&&!r)return{};const n=new Set([...Object.keys(e||{}),...Object.keys(r||{})]);return Array.from(n).reduce((s,a)=>({...s,[a]:W(e?.[a],r?.[a])}),{})},[Tt,Oe]=Me({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),Se=()=>Ye(()=>import("./index-d6pKlm-a.js"),__vite__mapDeps([0,1,2])).then(e=>e.default),Fe=e=>{const{as:r,children:n,className:s,...a}=e,{Component:u,placement:d,backdrop:h,motionProps:l,disableAnimation:c,getPopoverProps:p,getDialogProps:w,getBackdropProps:b,getContentProps:x,isNonModal:I,onClose:j}=Oe(),f=P.useRef(null),{dialogProps:M,titleProps:D}=Ze({},f),y=w({ref:f,...M,...a}),S=r||u||"div",i=t.jsxs(t.Fragment,{children:[!I&&t.jsx(me,{onDismiss:j}),t.jsx(S,{...y,children:t.jsx("div",{...x({className:s}),children:typeof n=="function"?n(D):n})}),t.jsx(me,{onDismiss:j})]}),v=P.useMemo(()=>h==="transparent"?null:c?t.jsx("div",{...b()}):t.jsx(xe,{features:Se,children:t.jsx(ye.div,{animate:"enter",exit:"exit",initial:"exit",variants:Pe.fade,...b()})}),[h,c,b]),k=d?et(d==="center"?"top":d):void 0,o=t.jsx(t.Fragment,{children:c?i:t.jsx(xe,{features:Se,children:t.jsx(ye.div,{animate:"enter",exit:"exit",initial:"initial",style:k,variants:Pe.scaleSpringOpacity,...l,children:i})})});return t.jsxs("div",{...p(),children:[v,o]})};Fe.displayName="HeroUI.PopoverContent";var Rt=Fe,Ee=e=>{var r;const{triggerRef:n,getTriggerProps:s}=Oe(),{children:a,...u}=e,d=P.useMemo(()=>typeof a=="string"?t.jsx("p",{children:a}):P.Children.only(a),[a]),h=(r=d.props.ref)!=null?r:d.ref,{onPress:l,isDisabled:c,...p}=P.useMemo(()=>s(R(u,d.props),h),[s,d.props,u,h]),[,w]=Ot(a,X),{buttonProps:b}=tt({onPress:l,isDisabled:c},n),x=P.useMemo(()=>w?.[0]!==void 0,[w]);return x||delete p.preventFocusOnPress,P.cloneElement(d,R(p,x?{onPress:l,isDisabled:c}:b))};Ee.displayName="HeroUI.PopoverTrigger";var Ht=Ee,Te=se((e,r)=>{const{children:n,...s}=e,a=jt({...s,ref:r}),[u,d]=P.Children.toArray(n),h=t.jsx(ot,{portalContainer:a.portalContainer,children:d});return t.jsxs(Tt,{value:a,children:[u,a.disableAnimation&&a.isOpen?h:t.jsx(Ie,{children:a.isOpen?h:null})]})});Te.displayName="HeroUI.Popover";var Ut=Te,[Kt,Re]=Me({name:"DropdownContext",errorMessage:"useDropdownContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"});function Bt(e){const{isSelected:r,disableAnimation:n,...s}=e;return t.jsx("svg",{"aria-hidden":"true","data-selected":r,role:"presentation",viewBox:"0 0 17 18",...s,children:t.jsx("polyline",{fill:"none",points:"1 9 7 14 15 4",stroke:"currentColor",strokeDasharray:22,strokeDashoffset:r?44:66,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,style:n?{}:{transition:"stroke-dashoffset 200ms ease"}})})}const He=new WeakMap;function Vt(e,r,n){let{shouldFocusWrap:s=!0,onKeyDown:a,onKeyUp:u,...d}=e;!e["aria-label"]&&e["aria-labelledby"];let h=ke(e,{labelable:!0}),{listProps:l}=rt({...d,ref:n,selectionManager:r.selectionManager,collection:r.collection,disabledKeys:r.disabledKeys,shouldFocusWrap:s,linkBehavior:"override"});return He.set(r,{onClose:e.onClose,onAction:e.onAction,shouldUseVirtualFocus:e.shouldUseVirtualFocus}),{menuProps:Ne(h,{onKeyDown:a,onKeyUp:u},{role:"menu",...l,onKeyDown:c=>{var p;(c.key!=="Escape"||e.shouldUseVirtualFocus)&&((p=l.onKeyDown)===null||p===void 0||p.call(l,c))}})}}function Lt(e,r,n){let{id:s,key:a,closeOnSelect:u,isVirtualized:d,"aria-haspopup":h,onPressStart:l,onPressUp:c,onPress:p,onPressChange:w,onPressEnd:b,onHoverStart:x,onHoverChange:I,onHoverEnd:j,onKeyDown:f,onKeyUp:M,onFocus:D,onFocusChange:y,onBlur:S,selectionManager:i=r.selectionManager}=e,v=!!h,k=v&&e["aria-expanded"]==="true";var o;let C=(o=e.isDisabled)!==null&&o!==void 0?o:i.isDisabled(a);var _;let A=(_=e.isSelected)!==null&&_!==void 0?_:i.isSelected(a),N=He.get(r),g=r.collection.getItem(a),T=e.onClose||N.onClose,B=at(),$=m=>{var J;if(!v){if(!(g==null||(J=g.props)===null||J===void 0)&&J.onAction?g.props.onAction():e.onAction&&e.onAction(a),N.onAction){let ce=N.onAction;ce(a)}m.target instanceof HTMLAnchorElement&&g&&B.open(m.target,m,g.props.href,g.props.routerOptions)}},E="menuitem";v||(i.selectionMode==="single"?E="menuitemradio":i.selectionMode==="multiple"&&(E="menuitemcheckbox"));let O=pe(),H=pe(),q=pe(),V={id:s,"aria-disabled":C||void 0,role:E,"aria-label":e["aria-label"],"aria-labelledby":O,"aria-describedby":[H,q].filter(Boolean).join(" ")||void 0,"aria-controls":e["aria-controls"],"aria-haspopup":h,"aria-expanded":e["aria-expanded"]};i.selectionMode!=="none"&&!v&&(V["aria-checked"]=A),d&&(V["aria-posinset"]=g?.index,V["aria-setsize"]=St(r.collection));let G=m=>{m.pointerType==="keyboard"&&$(m),l?.(m)},Z=()=>{!v&&T&&(u??(i.selectionMode!=="multiple"||i.isLink(a)))&&T()},Y=m=>{m.pointerType==="mouse"&&($(m),Z()),c?.(m)},ne=m=>{m.pointerType!=="keyboard"&&m.pointerType!=="mouse"&&($(m),Z()),p?.(m)},{itemProps:L,isFocused:ee}=_t({id:s,selectionManager:i,key:a,ref:n,shouldSelectOnPressUp:!0,allowsDifferentPressOrigin:!0,linkBehavior:"none",shouldUseVirtualFocus:N.shouldUseVirtualFocus}),{pressProps:le,isPressed:te}=st({onPressStart:G,onPress:ne,onPressUp:Y,onPressChange:w,onPressEnd:b,isDisabled:C}),{hoverProps:ie}=_e({isDisabled:C,onHoverStart(m){!he()&&!(k&&h)&&(i.setFocused(!0),i.setFocusedKey(a)),x?.(m)},onHoverChange:I,onHoverEnd:j}),{keyboardProps:oe}=nt({onKeyDown:m=>{if(m.repeat){m.continuePropagation();return}switch(m.key){case" ":!C&&i.selectionMode==="none"&&!v&&u!==!1&&T&&T();break;case"Enter":!C&&u!==!1&&!v&&T&&T();break;default:v||m.continuePropagation(),f?.(m);break}},onKeyUp:M}),{focusProps:U}=lt({onBlur:S,onFocus:D,onFocusChange:y}),re=ke(g?.props);delete re.id;let de=it(g?.props);return{menuItemProps:{...V,...Ne(re,de,v?{onFocus:L.onFocus,"data-collection":L["data-collection"],"data-key":L["data-key"]}:L,le,ie,oe,U,N.shouldUseVirtualFocus||v?{onMouseDown:m=>m.preventDefault()}:void 0),tabIndex:L.tabIndex!=null&&k&&!N.shouldUseVirtualFocus?-1:L.tabIndex},labelProps:{id:O},descriptionProps:{id:H},keyboardShortcutProps:{id:q},isFocused:ee,isFocusVisible:ee&&i.isFocused&&he()&&!k,isSelected:A,isPressed:te,isDisabled:C}}function zt(e){let{heading:r,"aria-label":n}=e,s=dt();return{itemProps:{role:"presentation"},headingProps:r?{id:s,role:"presentation"}:{},groupProps:{role:"group","aria-label":n,"aria-labelledby":r?s:void 0}}}function Wt(e){var r,n;const s=be(),[a,u]=ct(e,je.variantKeys),{as:d,item:h,state:l,shortcut:c,description:p,startContent:w,endContent:b,isVirtualized:x,selectedIcon:I,className:j,classNames:f,onAction:M,autoFocus:D,onPress:y,onPressStart:S,onPressUp:i,onPressEnd:v,onPressChange:k,onHoverStart:o,onHoverChange:C,onHoverEnd:_,hideSelectedIcon:A=!1,isReadOnly:N=!1,closeOnSelect:g,onClose:T,onClick:B,...$}=a,E=(n=(r=e.disableAnimation)!=null?r:s?.disableAnimation)!=null?n:!1,O=P.useRef(null),H=d||($?.href?"a":"li"),q=typeof H=="string",{rendered:V,key:G}=h,Z=l.disabledKeys.has(G)||e.isDisabled,Y=l.selectionManager.selectionMode!=="none",ne=Dt(),{isFocusVisible:L,focusProps:ee}=ut({autoFocus:D}),le=P.useCallback(F=>{B?.(F),y?.(F)},[B,y]),{isPressed:te,isFocused:ie,isSelected:oe,isDisabled:U,menuItemProps:re,labelProps:de,descriptionProps:m,keyboardShortcutProps:J}=Lt({key:G,onClose:T,isDisabled:Z,onPress:le,onPressStart:S,onPressUp:i,onPressEnd:v,onPressChange:k,"aria-label":a["aria-label"],closeOnSelect:g,isVirtualized:x,onAction:M},l,O);let{hoverProps:ce,isHovered:ge}=_e({isDisabled:U,onHoverStart(F){he()||(l.selectionManager.setFocused(!0),l.selectionManager.setFocusedKey(G)),o?.(F)},onHoverChange:C,onHoverEnd:_}),ue=re;const z=P.useMemo(()=>je({...u,isDisabled:U,disableAnimation:E,hasTitleTextChild:typeof V=="string",hasDescriptionTextChild:typeof p=="string"}),[pt(u),U,E,V,p]),ze=W(f?.base,j);N&&(ue=ft(ue));const We=(F={})=>({ref:O,...R(N?{}:ee,Ae($,{enabled:q}),ue,ce,F),"data-focus":K(ie),"data-selectable":K(Y),"data-hover":K(ne?ge||te:ge),"data-disabled":K(U),"data-selected":K(oe),"data-pressed":K(te),"data-focus-visible":K(L),className:z.base({class:W(ze,F.className)})}),qe=(F={})=>({...R(de,F),className:z.title({class:f?.title})}),Ge=(F={})=>({...R(m,F),className:z.description({class:f?.description})}),Je=(F={})=>({...R(J,F),className:z.shortcut({class:f?.shortcut})}),Qe=P.useCallback((F={})=>({"aria-hidden":K(!0),"data-disabled":K(U),className:z.selectedIcon({class:f?.selectedIcon}),...F}),[U,z,f]);return{Component:H,domRef:O,slots:z,classNames:f,isSelectable:Y,isSelected:oe,isDisabled:U,rendered:V,shortcut:c,description:p,startContent:w,endContent:b,selectedIcon:I,disableAnimation:E,getItemProps:We,getLabelProps:qe,hideSelectedIcon:A,getDescriptionProps:Ge,getKeyboardShortcutProps:Je,getSelectedIconProps:Qe}}var Ue=e=>{const{Component:r,slots:n,classNames:s,rendered:a,shortcut:u,description:d,isSelectable:h,isSelected:l,isDisabled:c,selectedIcon:p,startContent:w,endContent:b,disableAnimation:x,hideSelectedIcon:I,getItemProps:j,getLabelProps:f,getDescriptionProps:M,getKeyboardShortcutProps:D,getSelectedIconProps:y}=Wt(e),S=P.useMemo(()=>{const i=t.jsx(Bt,{disableAnimation:x,isSelected:l});return typeof p=="function"?p({icon:i,isSelected:l,isDisabled:c}):p||i},[p,l,c,x]);return t.jsxs(r,{...j(),children:[w,d?t.jsxs("div",{className:n.wrapper({class:s?.wrapper}),children:[t.jsx("span",{...f(),children:a}),t.jsx("span",{...M(),children:d})]}):t.jsx("span",{...f(),children:a}),u&&t.jsx("kbd",{...D(),children:u}),h&&!I&&t.jsx("span",{...y(),children:S}),b]})};Ue.displayName="HeroUI.MenuItem";var Ke=Ue,Be=se(({item:e,state:r,as:n,variant:s,color:a,disableAnimation:u,onAction:d,closeOnSelect:h,className:l,classNames:c,showDivider:p=!1,hideSelectedIcon:w,dividerProps:b={},itemClasses:x,title:I,...j},f)=>{const M=n||"li",D=P.useMemo(()=>Mt(),[]),y=W(c?.base,l),S=W(c?.divider,b?.className),{itemProps:i,headingProps:v,groupProps:k}=zt({heading:e.rendered,"aria-label":e["aria-label"]});return t.jsxs(M,{"data-slot":"base",...R(i,j),className:D.base({class:y}),children:[e.rendered&&t.jsx("span",{...v,className:D.heading({class:c?.heading}),"data-slot":"heading",children:e.rendered}),t.jsxs("ul",{...k,className:D.group({class:c?.group}),"data-has-title":!!e.rendered,"data-slot":"group",children:[[...e.childNodes].map(o=>{const{key:C,props:_}=o;let A=t.jsx(Ke,{classNames:x,closeOnSelect:h,color:a,disableAnimation:u,hideSelectedIcon:w,item:o,state:r,variant:s,onAction:d,..._},C);return o.wrapper&&(A=o.wrapper(A)),A}),p&&t.jsx(vt,{as:"li",className:D.divider({class:S}),...b})]})]})});Be.displayName="HeroUI.MenuSection";var qt=Be;function Gt(e){var r;const n=be(),{as:s,ref:a,variant:u,color:d,children:h,disableAnimation:l=(r=n?.disableAnimation)!=null?r:!1,onAction:c,closeOnSelect:p,itemClasses:w,className:b,state:x,topContent:I,bottomContent:j,hideEmptyContent:f=!1,hideSelectedIcon:M=!1,emptyContent:D="No items.",menuProps:y,onClose:S,classNames:i,...v}=e,k=s||"ul",o=ht(a),C=typeof k=="string",_=bt({...v,...y,children:h}),A=x||_,{menuProps:N}=Vt({...v,...y,onAction:c},A,o),g=P.useMemo(()=>It({className:b}),[b]),T=W(i?.base,b);return{Component:k,state:A,variant:u,color:d,disableAnimation:l,onClose:S,topContent:I,bottomContent:j,closeOnSelect:p,className:b,itemClasses:w,getBaseProps:(O={})=>({ref:o,"data-slot":"base",className:g.base({class:T}),...Ae(v,{enabled:C}),...O}),getListProps:(O={})=>({"data-slot":"list",className:g.list({class:i?.list}),...N,...O}),hideEmptyContent:f,hideSelectedIcon:M,getEmptyContentProps:(O={})=>({children:D,className:g.emptyContent({class:i?.emptyContent}),...O})}}var Jt=se(function(r,n){const{Component:s,state:a,closeOnSelect:u,color:d,disableAnimation:h,hideSelectedIcon:l,hideEmptyContent:c,variant:p,onClose:w,topContent:b,bottomContent:x,itemClasses:I,getBaseProps:j,getListProps:f,getEmptyContentProps:M}=Gt({...r,ref:n}),D=t.jsxs(s,{...f(),children:[!a.collection.size&&!c&&t.jsx("li",{children:t.jsx("div",{...M()})}),[...a.collection].map(y=>{const S={closeOnSelect:u,color:d,disableAnimation:h,item:y,state:a,variant:p,onClose:w,hideSelectedIcon:l,...y.props},i=Et(I,S?.classNames);if(y.type==="section")return t.jsx(qt,{...S,itemClasses:i},y.key);let v=t.jsx(Ke,{...S,classNames:i},y.key);return y.wrapper&&(v=y.wrapper(v)),v})]});return t.jsxs("div",{...j(),children:[b,D,x]})}),Qt=Jt,Xt=gt,De=Xt,Zt=se(function(r,n){const{getMenuProps:s}=Re();return t.jsx(Rt,{children:t.jsx(mt,{contain:!0,restoreFocus:!0,children:t.jsx(Qt,{...s(r,n)})})})}),Yt=Zt,Ve=e=>{const{getMenuTriggerProps:r}=Re(),{children:n,...s}=e;return t.jsx(Ht,{...r(s),children:n})};Ve.displayName="HeroUI.DropdownTrigger";var eo=Ve,to=(e,r)=>{if(e){const n=Array.isArray(e.children)?e.children:[...e?.items||[]];if(n&&n.length)return n.find(a=>{if(a&&a.key===r)return a})||{}}return null},oo=(e,r,n)=>{const s=n||to(e,r);return s&&s.props&&"closeOnSelect"in s.props?s.props.closeOnSelect:e?.closeOnSelect};function ro(e){var r;const n=be(),{as:s,triggerRef:a,isOpen:u,defaultOpen:d,onOpenChange:h,isDisabled:l,type:c="menu",trigger:p="press",placement:w="bottom",closeOnSelect:b=!0,shouldBlockScroll:x=!0,classNames:I,disableAnimation:j=(r=n?.disableAnimation)!=null?r:!1,onClose:f,className:M,...D}=e,y=s||"div",S=P.useRef(null),i=a||S,v=P.useRef(null),k=P.useRef(null),o=kt({trigger:p,isOpen:u,defaultOpen:d,onOpenChange:$=>{h?.($),$||f?.()}}),{menuTriggerProps:C,menuProps:_}=Nt({type:c,trigger:p,isDisabled:l},o,i),A=P.useMemo(()=>Ft({className:M}),[M]),N=$=>{$!==void 0&&!$||b&&o.close()},g=($={})=>{const E=R(D,$);return{state:o,placement:w,ref:k,disableAnimation:j,shouldBlockScroll:x,scrollRef:v,triggerRef:i,...E,classNames:{...I,...$.classNames,content:W(A,I?.content,$.className)}}},T=($={})=>{const{onPress:E,onPressStart:O,...H}=C;return R(H,{isDisabled:l},$)},B=($,E=null)=>({ref:xt(E,v),menuProps:_,closeOnSelect:b,...R($,{onAction:(O,H)=>{const q=oo($,O,H);N(q)},onClose:o.close})});return{Component:y,menuRef:v,menuProps:_,closeOnSelect:b,onClose:o.close,autoFocus:o.focusStrategy||!0,disableAnimation:j,getPopoverProps:g,getMenuProps:B,getMenuTriggerProps:T}}var Le=e=>{const{children:r,...n}=e,s=ro(n),[a,u]=yt.Children.toArray(r);return t.jsx(Kt,{value:s,children:t.jsxs(Ut,{...s.getPopoverProps(),children:[a,u]})})};Le.displayName="HeroUI.Dropdown";var ao=Le;function co(){const{selectConversation:e,deleteConversation:r,newConversation:n,setConversationProperties:s}=Pt(),a=Ct(),u=fe(Ce(o=>Object.keys(o.conversations).reverse())),d=fe(Ce(o=>Object.values(o.conversations).reverse().map(C=>C.summary))),h=fe(o=>o.currentConversation),[l,c]=P.useState(!1),[p,w]=P.useState(null),[b,x]=P.useState(""),[I,j]=P.useState(!1),f=P.useRef(null),M=l?"Open sidebar":"Close sidebar",D=t.jsx(Q,{icon:"heroicons:pencil-square"}),y=(o,C)=>{w(o),x(C??""),j(!0),setTimeout(()=>{f.current?.focus?.(),setTimeout(()=>j(!1),120)},0)},S=o=>{if(p!==o)return;const C=(b||"").trim();C&&s(o,{summary:C}),w(null),x(""),j(!1)},i=()=>{w(null),x(""),j(!1)},v=()=>{const o=n();a($e(o))},k=o=>{e(o),a($e(o))};return t.jsx(ve.div,{initial:!1,animate:{maxWidth:l?"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(Ie,{children:[t.jsx(we,{content:M,placement:"bottom",children:t.jsx(X,{isIconOnly:!0,"aria-label":M,variant:"ghost",onPress:()=>c(o=>!o),"data-testid":"chat-history-collapse-button",className:"ml-auto",children:t.jsx(Q,{icon:l?"heroicons:chevron-double-right":"heroicons:chevron-double-left"})})},"collapse-button"),!l&&t.jsx(ve.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(we,{content:"New conversation",placement:"right",children:t.jsx(X,{"aria-label":"New conversation",variant:"ghost",onPress:v,"data-testid":"chat-history-clear-chat-button",startContent:D,isIconOnly:l,children:!l&&"New conversation"})},"new-conversation-button"),!l&&t.jsx(ve.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:wt.zip(u,d).map(([o,C])=>{if(!o||$t(o))return null;const _=o===h,A=o===p,N=_?"solid":"light";return t.jsxs("div",{className:"flex w-full justify-between gap-2",children:[A?t.jsx(At,{ref:f,size:"sm",variant:"bordered",value:b,onChange:g=>x(g.target.value),onBlur:()=>{I||S(o)},onKeyDown:g=>{g.key==="Enter"&&S(o),g.key==="Escape"&&i()},className:"flex-1","data-testid":`input-conversation-${o}`}):t.jsx(X,{variant:N,"aria-label":`Select conversation ${o}`,"data-active":_,onPress:()=>k(o),title:C??o,"data-testid":`select-conversation-${o}`,className:"flex-1 justify-start",children:t.jsx("div",{className:"text-small truncate",children:C??o})}),t.jsxs(ao,{children:[t.jsx(eo,{children:t.jsx(X,{isIconOnly:!0,variant:"light","aria-label":`Conversation actions for ${o}`,"data-testid":`dropdown-conversation-${o}`,children:t.jsx(Q,{icon:"heroicons:ellipsis-vertical",className:"rotate-90"})})}),t.jsxs(Yt,{"aria-label":"Conversation actions",children:[t.jsx(De,{startContent:t.jsx(Q,{icon:"heroicons:pencil-square",className:"mb-0.5"}),onPress:()=>y(o,C??o),"data-testid":`edit-conversation-${o}`,children:"Edit"},"edit"),t.jsx(De,{className:"text-danger mb-0.5",color:"danger",startContent:t.jsx(Q,{icon:"heroicons:trash"}),onPress:()=>r(o),"data-testid":`delete-conversation-${o}`,children:"Delete conversation"},"delete")]})]})]},`${o}-${N}`)})},"conversation-list")]})})}export{co as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-D2Pd5V75.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-D2Pd5V75.js deleted file mode 100644 index 75bfe6406..000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatHistory-D2Pd5V75.js +++ /dev/null @@ -1 +0,0 @@ -import{a as C,aJ as N,i as h,r as y,j as t,aK as n,aD as I,D as o,d as s,I as i,aL as D,aM as m}from"./index-C75huGqt.js";function P(){const{selectConversation:u,deleteConversation:v,newConversation:x}=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=x();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(D(c.conversationId))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:()=>v(e),variant:"ghost","data-testid":`delete-conversation-${e}`,children:t.jsx(i,{icon:"heroicons:trash"})})})]},e)})},"conversation-list")]})})}export{P as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-CWUB2vvd.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-CWUB2vvd.js new file mode 100644 index 000000000..c4e7b0fd4 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-CWUB2vvd.js @@ -0,0 +1 @@ +import{g as z,r as f,u as ie,h as ce,a as ue,i as le,b as fe,p as Y,C as Q,j as l,D as de,d as A,I as me,m as ge,e as he,f as pe}from"./index-BTi2GGnV.js";import{g as Z,v as W,F as ve,t as be}from"./index-BWl2IJFv.js";import{m as Se}from"./chunk-IGSAU2ZA-BGelxbrz.js";import"./chunk-SSA7SXE4-4ESFtvtR.js";import"./useMenuTriggerState-GcYmjJio.js";import"./useSelectableItem-Cd2eAf2I.js";import"./index-B4da2YBv.js";var B,V;function xe(){if(V)return B;V=1;var n="Expected a function",t=NaN,s="[object Symbol]",m=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,i=/^0o[0-7]+$/i,b=parseInt,S=typeof z=="object"&&z&&z.Object===Object&&z,y=typeof self=="object"&&self&&self.Object===Object&&self,C=S||y||Function("return this")(),d=Object.prototype,r=d.toString,c=Math.max,O=Math.min,E=function(){return C.Date.now()};function $(e,u,v){var T,L,P,I,p,j,R=0,G=!1,D=!1,k=!0;if(typeof e!="function")throw new TypeError(n);u=q(u)||0,_(v)&&(G=!!v.leading,D="maxWait"in v,P=D?c(q(v.maxWait)||0,u):P,k="trailing"in v?!!v.trailing:k);function H(o){var x=T,F=L;return T=L=void 0,R=o,I=e.apply(F,x),I}function re(o){return R=o,p=setTimeout(N,u),G?H(o):I}function oe(o){var x=o-j,F=o-R,X=u-x;return D?O(X,P-F):X}function U(o){var x=o-j,F=o-R;return j===void 0||x>=u||x<0||D&&F>=P}function N(){var o=E();if(U(o))return K(o);p=setTimeout(N,oe(o))}function K(o){return p=void 0,k&&T?H(o):(T=L=void 0,I)}function se(){p!==void 0&&clearTimeout(p),R=0,T=j=L=p=void 0}function ae(){return p===void 0?I:K(E())}function M(){var o=E(),x=U(o);if(T=arguments,L=this,j=o,x){if(p===void 0)return re(j);if(D)return p=setTimeout(N,u),H(j)}return p===void 0&&(p=setTimeout(N,u)),I}return M.cancel=se,M.flush=ae,M}function _(e){var u=typeof e;return!!e&&(u=="object"||u=="function")}function a(e){return!!e&&typeof e=="object"}function w(e){return typeof e=="symbol"||a(e)&&r.call(e)==s}function q(e){if(typeof e=="number")return e;if(w(e))return t;if(_(e)){var u=typeof e.valueOf=="function"?e.valueOf():e;e=_(u)?u+"":u}if(typeof e!="string")return e===0?e:+e;e=e.replace(m,"");var v=h.test(e);return v||i.test(e)?b(e.slice(2),v?2:8):g.test(e)?t:+e}return B=$,B}xe();var ne=typeof window<"u"?f.useLayoutEffect:f.useEffect;function ee(n,t,s,m){const g=f.useRef(t);ne(()=>{g.current=t},[t]),f.useEffect(()=>{const h=window;if(!(h&&h.addEventListener))return;const i=b=>{g.current(b)};return h.addEventListener(n,i,m),()=>{h.removeEventListener(n,i,m)}},[n,s,m])}function te(n){const t=f.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return ne(()=>{t.current=n},[n]),f.useCallback((...s)=>{var m;return(m=t.current)==null?void 0:m.call(t,...s)},[t])}var J=typeof window>"u";function ye(n,t,s={}){const{initializeWithValue:m=!0}=s,g=f.useCallback(r=>s.serializer?s.serializer(r):JSON.stringify(r),[s]),h=f.useCallback(r=>{if(s.deserializer)return s.deserializer(r);if(r==="undefined")return;const c=t instanceof Function?t():t;let O;try{O=JSON.parse(r)}catch(E){return console.error("Error parsing JSON:",E),c}return O},[s,t]),i=f.useCallback(()=>{const r=t instanceof Function?t():t;if(J)return r;try{const c=window.localStorage.getItem(n);return c?h(c):r}catch(c){return console.warn(`Error reading localStorage key “${n}”:`,c),r}},[t,n,h]),[b,S]=f.useState(()=>m?i():t instanceof Function?t():t),y=te(r=>{J&&console.warn(`Tried setting localStorage key “${n}” even though environment is not a client`);try{const c=r instanceof Function?r(i()):r;window.localStorage.setItem(n,g(c)),S(c),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))}catch(c){console.warn(`Error setting localStorage key “${n}”:`,c)}}),C=te(()=>{J&&console.warn(`Tried removing localStorage key “${n}” even though environment is not a client`);const r=t instanceof Function?t():t;window.localStorage.removeItem(n),S(r),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))});f.useEffect(()=>{S(i())},[n]);const d=f.useCallback(r=>{r.key&&r.key!==n||S(i())},[n,i]);return ee("storage",d),ee("local-storage",d),[b,y,C]}const Ce="ragbits-no-history-chat-options";function Le(){const{isOpen:n,onOpen:t,onClose:s}=ie(),m=ce(a=>a.chatOptions),g=f.useRef(null),{setConversationProperties:h,initializeChatOptions:i}=ue(),b=le(a=>a.currentConversation),{config:{user_settings:S}}=fe(),[y,C]=ye(Ce,null),d=S?.form,r=a=>{Y.isPluginActivated(Q.name)||C(a)},c=()=>{t()},O=(a,w)=>{w.preventDefault(),g.current=a.formData,s()},E=()=>{if(!d)return;const a=Z(W,d);g.current=a,s()},$=()=>{s()},_=a=>{if(a!=="exit"||!g.current)return;const w=g.current;h(b,{chatOptions:w}),r(w),g.current=null};return f.useEffect(()=>{if(!d)return;const a=Z(W,d);Y.isPluginActivated(Q.name)?i(a):y!==null?i(y):(i(a),C(a))},[i,d,b,y,C]),d?l.jsxs(l.Fragment,{children:[l.jsx(de,{content:"Chat Options",placement:"bottom",children:l.jsx(A,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open chat options",onPress:c,"data-testid":"open-chat-options",children:l.jsx(me,{icon:"heroicons:cog-6-tooth"})})}),l.jsx(ge,{isOpen:n,onOpenChange:$,motionProps:{onAnimationComplete:_},children:l.jsxs(he,{children:[l.jsx(Se,{className:"text-default-900 flex flex-col gap-1",children:d.title||"Chat Options"}),l.jsx(pe,{children:l.jsx("div",{className:"flex flex-col gap-4",children:l.jsx(ve,{schema:d,validator:W,formData:m,onSubmit:O,transformErrors:be,liveValidate:!0,children:l.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[l.jsx(A,{className:"mr-auto",color:"primary",variant:"light",onPress:E,"aria-label":"Restore default user settings",children:"Restore defaults"}),l.jsx(A,{color:"danger",variant:"light",onPress:s,"aria-label":"Close chat options form",children:"Cancel"}),l.jsx(A,{color:"primary",type:"submit","aria-label":"Save chat options","data-testid":"chat-options-submit",children:"Save"})]})})})})]})})]}):null}export{Le as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-DYA6GEAP.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-DYA6GEAP.js deleted file mode 100644 index 30415d2a3..000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ChatOptionsForm-DYA6GEAP.js +++ /dev/null @@ -1 +0,0 @@ -import{g as z,r as f,u as ie,h as ce,a as ue,i as le,b as fe,p as Y,C as Q,j as l,D as de,d as A,I as me,m as ge,e as he,f as pe}from"./index-C75huGqt.js";import{g as Z,v as W,F as be,t as ve}from"./index-VYICyW2P.js";import{m as Se}from"./chunk-IGSAU2ZA-DUS7ku-0.js";import"./chunk-SSA7SXE4-DnKzYyYP.js";import"./index-I-Ja0wkh.js";var B,V;function xe(){if(V)return B;V=1;var n="Expected a function",t=NaN,s="[object Symbol]",m=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,i=/^0o[0-7]+$/i,x=parseInt,v=typeof z=="object"&&z&&z.Object===Object&&z,y=typeof self=="object"&&self&&self.Object===Object&&self,C=v||y||Function("return this")(),d=Object.prototype,r=d.toString,c=Math.max,O=Math.min,E=function(){return C.Date.now()};function $(e,u,b){var T,L,N,I,p,j,R=0,G=!1,D=!1,k=!0;if(typeof e!="function")throw new TypeError(n);u=q(u)||0,_(b)&&(G=!!b.leading,D="maxWait"in b,N=D?c(q(b.maxWait)||0,u):N,k="trailing"in b?!!b.trailing:k);function H(o){var S=T,F=L;return T=L=void 0,R=o,I=e.apply(F,S),I}function re(o){return R=o,p=setTimeout(P,u),G?H(o):I}function oe(o){var S=o-j,F=o-R,X=u-S;return D?O(X,N-F):X}function U(o){var S=o-j,F=o-R;return j===void 0||S>=u||S<0||D&&F>=N}function P(){var o=E();if(U(o))return K(o);p=setTimeout(P,oe(o))}function K(o){return p=void 0,k&&T?H(o):(T=L=void 0,I)}function se(){p!==void 0&&clearTimeout(p),R=0,T=j=L=p=void 0}function ae(){return p===void 0?I:K(E())}function M(){var o=E(),S=U(o);if(T=arguments,L=this,j=o,S){if(p===void 0)return re(j);if(D)return p=setTimeout(P,u),H(j)}return p===void 0&&(p=setTimeout(P,u)),I}return M.cancel=se,M.flush=ae,M}function _(e){var u=typeof e;return!!e&&(u=="object"||u=="function")}function a(e){return!!e&&typeof e=="object"}function w(e){return typeof e=="symbol"||a(e)&&r.call(e)==s}function q(e){if(typeof e=="number")return e;if(w(e))return t;if(_(e)){var u=typeof e.valueOf=="function"?e.valueOf():e;e=_(u)?u+"":u}if(typeof e!="string")return e===0?e:+e;e=e.replace(m,"");var b=h.test(e);return b||i.test(e)?x(e.slice(2),b?2:8):g.test(e)?t:+e}return B=$,B}xe();var ne=typeof window<"u"?f.useLayoutEffect:f.useEffect;function ee(n,t,s,m){const g=f.useRef(t);ne(()=>{g.current=t},[t]),f.useEffect(()=>{const h=window;if(!(h&&h.addEventListener))return;const i=x=>{g.current(x)};return h.addEventListener(n,i,m),()=>{h.removeEventListener(n,i,m)}},[n,s,m])}function te(n){const t=f.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return ne(()=>{t.current=n},[n]),f.useCallback((...s)=>{var m;return(m=t.current)==null?void 0:m.call(t,...s)},[t])}var J=typeof window>"u";function ye(n,t,s={}){const{initializeWithValue:m=!0}=s,g=f.useCallback(r=>s.serializer?s.serializer(r):JSON.stringify(r),[s]),h=f.useCallback(r=>{if(s.deserializer)return s.deserializer(r);if(r==="undefined")return;const c=t instanceof Function?t():t;let O;try{O=JSON.parse(r)}catch(E){return console.error("Error parsing JSON:",E),c}return O},[s,t]),i=f.useCallback(()=>{const r=t instanceof Function?t():t;if(J)return r;try{const c=window.localStorage.getItem(n);return c?h(c):r}catch(c){return console.warn(`Error reading localStorage key “${n}”:`,c),r}},[t,n,h]),[x,v]=f.useState(()=>m?i():t instanceof Function?t():t),y=te(r=>{J&&console.warn(`Tried setting localStorage key “${n}” even though environment is not a client`);try{const c=r instanceof Function?r(i()):r;window.localStorage.setItem(n,g(c)),v(c),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))}catch(c){console.warn(`Error setting localStorage key “${n}”:`,c)}}),C=te(()=>{J&&console.warn(`Tried removing localStorage key “${n}” even though environment is not a client`);const r=t instanceof Function?t():t;window.localStorage.removeItem(n),v(r),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))});f.useEffect(()=>{v(i())},[n]);const d=f.useCallback(r=>{r.key&&r.key!==n||v(i())},[n,i]);return ee("storage",d),ee("local-storage",d),[x,y,C]}const Ce="ragbits-no-history-chat-options";function Ie(){const{isOpen:n,onOpen:t,onClose:s}=ie(),m=ce(a=>a.chatOptions),g=f.useRef(null),{setChatOptions:h,initializeChatOptions:i}=ue(),x=le(a=>a.currentConversation),{config:{user_settings:v}}=fe(),[y,C]=ye(Ce,null),d=v?.form,r=a=>{Y.isPluginActivated(Q.name)||C(a)},c=()=>{t()},O=(a,w)=>{w.preventDefault(),g.current=a.formData,s()},E=()=>{if(!d)return;const a=Z(W,d);g.current=a,s()},$=()=>{s()},_=a=>{if(a!=="exit"||!g.current)return;const w=g.current;h(w),r(w),g.current=null};return f.useEffect(()=>{if(!d)return;const a=Z(W,d);Y.isPluginActivated(Q.name)?i(a):y!==null?i(y):(i(a),C(a))},[i,d,x,y,C]),d?l.jsxs(l.Fragment,{children:[l.jsx(de,{content:"Chat Options",placement:"bottom",children:l.jsx(A,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open chat options",onPress:c,"data-testid":"open-chat-options",children:l.jsx(me,{icon:"heroicons:cog-6-tooth"})})}),l.jsx(ge,{isOpen:n,onOpenChange:$,motionProps:{onAnimationComplete:_},children:l.jsxs(he,{children:[l.jsx(Se,{className:"text-default-900 flex flex-col gap-1",children:d.title||"Chat Options"}),l.jsx(pe,{children:l.jsx("div",{className:"flex flex-col gap-4",children:l.jsx(be,{schema:d,validator:W,formData:m,onSubmit:O,transformErrors:ve,liveValidate:!0,children:l.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[l.jsx(A,{className:"mr-auto",color:"primary",variant:"light",onPress:E,"aria-label":"Restore default user settings",children:"Restore defaults"}),l.jsx(A,{color:"danger",variant:"light",onPress:s,"aria-label":"Close chat options form",children:"Cancel"}),l.jsx(A,{color:"primary",type:"submit","aria-label":"Save chat options","data-testid":"chat-options-submit",children:"Save"})]})})})})]})})]}):null}export{Ie as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-Bovwe8ia.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-Bovwe8ia.js deleted file mode 100644 index 8b9f54d5f..000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-Bovwe8ia.js +++ /dev/null @@ -1 +0,0 @@ -import{u as g,a as v,b as C,r as _,F as s,c as T,j as e,D as b,d as n,I as u,m as w,e as D,f as I}from"./index-C75huGqt.js";import{F as O,t as S,v as E}from"./index-VYICyW2P.js";import{m as N}from"./chunk-IGSAU2ZA-DUS7ku-0.js";import"./chunk-SSA7SXE4-DnKzYyYP.js";import"./index-I-Ja0wkh.js";function V({message:t}){const{isOpen:f,onOpen:h,onClose:r}=g(),{mergeExtensions:p}=v(),{config:{feedback:o}}=C(),[l,x]=_.useState(s.Like),k=T("/api/feedback",{headers:{"Content-Type":"application/json"},method:"POST"}),i=o[l].form,j=()=>{r()},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:l,payload:a??{}}})}catch(F){console.error(F)}},y=a=>{p(t.id,{feedbackType:l}),c(a.formData),r()},d=async a=>{if(x(a),o[a].form===null){await c(null);return}h()};if(!i)return null;const m=t.extensions?.feedbackType;return e.jsxs(e.Fragment,{children:[o.like.enabled&&e.jsx(b,{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(u,{icon:m===s.Like?"heroicons:hand-thumb-up-solid":"heroicons:hand-thumb-up"})})}),o.dislike.enabled&&e.jsx(b,{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(u,{icon:m===s.Dislike?"heroicons:hand-thumb-down-solid":"heroicons:hand-thumb-down"})})}),e.jsx(w,{isOpen:f,onOpenChange:j,children:e.jsx(D,{children:a=>e.jsxs(e.Fragment,{children:[e.jsx(N,{className:"text-default-900 flex flex-col gap-1",children:i.title}),e.jsx(I,{children:e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx(O,{schema:i,validator:E,onSubmit:y,transformErrors:S,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{V as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-UCmFF8zf.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-UCmFF8zf.js new file mode 100644 index 000000000..de006a076 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/FeedbackForm-UCmFF8zf.js @@ -0,0 +1 @@ +import{u as g,a as v,b as C,r as _,F as s,c as T,j as e,D as b,d as n,I as u,m as w,e as D,f as I}from"./index-BTi2GGnV.js";import{F as O,t as S,v as E}from"./index-BWl2IJFv.js";import{m as N}from"./chunk-IGSAU2ZA-BGelxbrz.js";import"./chunk-SSA7SXE4-4ESFtvtR.js";import"./useMenuTriggerState-GcYmjJio.js";import"./useSelectableItem-Cd2eAf2I.js";import"./index-B4da2YBv.js";function z({message:t}){const{isOpen:f,onOpen:h,onClose:r}=g(),{mergeExtensions:p}=v(),{config:{feedback:o}}=C(),[i,x]=_.useState(s.Like),k=T("/api/feedback",{headers:{"Content-Type":"application/json"},method:"POST"}),l=o[i].form,j=()=>{r()},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:i,payload:a??{}}})}catch(F){console.error(F)}},y=a=>{p(t.id,{feedbackType:i}),c(a.formData),r()},d=async a=>{if(x(a),o[a].form===null){await c(null);return}h()};if(!l)return null;const m=t.extensions?.feedbackType;return e.jsxs(e.Fragment,{children:[o.like.enabled&&e.jsx(b,{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(u,{icon:m===s.Like?"heroicons:hand-thumb-up-solid":"heroicons:hand-thumb-up"})})}),o.dislike.enabled&&e.jsx(b,{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(u,{icon:m===s.Dislike?"heroicons:hand-thumb-down-solid":"heroicons:hand-thumb-down"})})}),e.jsx(w,{isOpen:f,onOpenChange:j,children:e.jsx(D,{children:a=>e.jsxs(e.Fragment,{children:[e.jsx(N,{className:"text-default-900 flex flex-col gap-1",children:l.title}),e.jsx(I,{children:e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx(O,{schema:l,validator:E,onSubmit:y,transformErrors:S,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{z as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-B2kPNK-w.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-CUehgF7-.js similarity index 82% rename from packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-B2kPNK-w.js rename to packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-CUehgF7-.js index 8095219ac..83a61ad2b 100644 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-B2kPNK-w.js +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/Login-CUehgF7-.js @@ -1 +1 @@ -import{r as n,bp as w,c as y,aN as b,aJ as S,j as e,aD as j,aK as v,d as C,bq as N}from"./index-C75huGqt.js";import{a as P}from"./authStore-DLhLSjcY.js";import{i as c}from"./chunk-SSA7SXE4-DnKzYyYP.js";const q=()=>{const a=n.useContext(w);if(!a)throw new Error("useInitializeUserStore must be used within a HistoryStoreContextProvider");return a.initializeUserStore};function U(){const[a,m]=n.useState({username:"",password:""}),u=y("/api/auth/login",{headers:{"Content-Type":"application/json"},method:"POST"}),p=b(P,s=>s.login),g=S(),x=q(),[f,o]=n.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 u.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 n.useEffect(()=>{document.title="Login"},[]),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(j,{children:f&&!u.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{U as default}; +import{r as n,bm as w,c as y,aW as b,aE as S,j as e,aq as j,aG as v,d as C,bn as P}from"./index-BTi2GGnV.js";import{a as E}from"./authStore-DeDSU5YK.js";import{i as c}from"./chunk-SSA7SXE4-4ESFtvtR.js";const N=()=>{const a=n.useContext(w);if(!a)throw new Error("useInitializeUserStore must be used within a HistoryStoreContextProvider");return a.initializeUserStore};function U(){const[a,m]=n.useState({username:"",password:""}),u=y("/api/auth/login",{headers:{"Content-Type":"application/json"},method:"POST"}),p=b(E,s=>s.login),g=S(),x=N(),[f,o]=n.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 u.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=>P(i,l=>{l[s]=r.target.value}));return n.useEffect(()=>{document.title="Login"},[]),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(j,{children:f&&!u.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{U as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-Bspy5P1_.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-B-0gbx_k.js similarity index 81% rename from packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-Bspy5P1_.js rename to packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-B-0gbx_k.js index 1cd873c59..e00402fcc 100644 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-Bspy5P1_.js +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/LogoutButton-B-0gbx_k.js @@ -1 +1 @@ -import{c as u,aN as s,aJ as i,j as o,D as g,d,I as p}from"./index-C75huGqt.js";import{a as n}from"./authStore-DLhLSjcY.js";function m(){const r=u("/api/auth/logout",{headers:{"Content-Type":"application/json"},method:"POST"}),c=s(n,t=>t.logout),e=s(n,t=>t.token?.access_token),a=i(),l=async()=>{if(!e){a("/login");return}try{if(!(await r.call({body:{token:e}})).success)return;c(),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:l,"data-testid":"logout-button",children:o.jsx(p,{icon:"heroicons:arrow-left-start-on-rectangle"})})})}export{m as default}; +import{c as u,aW as s,aE as i,j as o,D as g,d,I as p}from"./index-BTi2GGnV.js";import{a as n}from"./authStore-DeDSU5YK.js";function m(){const r=u("/api/auth/logout",{headers:{"Content-Type":"application/json"},method:"POST"}),c=s(n,t=>t.logout),e=s(n,t=>t.token?.access_token),a=i(),l=async()=>{if(!e){a("/login");return}try{if(!(await r.call({body:{token:e}})).success)return;c(),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:l,"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-BvHR4xdz.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-C-29ZlnC.js similarity index 80% rename from packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-BvHR4xdz.js rename to packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-C-29ZlnC.js index b17161ec2..eafc36130 100644 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-BvHR4xdz.js +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/ShareButton-C-29ZlnC.js @@ -1 +1 @@ -import{aH as Gr,u as Jr,r as hr,i as Wr,j as k,D as qr,d as gr,I as Yr,m as Kr,e as Lr,f as Qr,aI as Vr}from"./index-C75huGqt.js";import{m as Xr}from"./chunk-IGSAU2ZA-DUS7ku-0.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]),Nr=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 R=J(r,i+1,3);if(i+=3,R)if(R==1)x=ee,S=ne,w=9,d=5;else if(R==2){var N=J(r,i,31)+257,A=J(r,i+10,15)+4,g=N+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 z=s.subarray(0,N),F=s.subarray(N);w=wr(z),d=wr(F),x=q(z,w,1),S=q(F,d,1)}else G(1);else{var j=Ar(i)+4,D=r[j-4]|r[j-3]<<8,I=j+D;if(I>t){h&&G(0);break}l&&c(u+D),a.set(r.subarray(j,I),u),e.b=u+=D,e.p=i=I*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 D=o[n].s;x[D]==e&&(--x[D],++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[O-1]];--O);var L=c+5<<3,U=or(t,V)+or(o,fr)+v,_=or(t,u)+or(o,w)+v+14+3*O+or(A,M)+2*A[16]+3*A[17]+7*A[18];if(h>=0&&L<=U&&L<=_)return Ur(e,f,r.subarray(h,h+c));var E,b,z,F;if(K(e,f,1+(_15&&(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 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,D,I,N,g,M,O,s-O,f),M=A=g=0,O=s;for(var b=0;b<286;++b)I[b]=0;for(var b=0;b<30;++b)N[b]=0}var z=2,F=0,er=x,B=U-_&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!=_;){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,_=Z)}}}U=_,_=w[U],B+=U-_&32767}if(F){D[M++]=268435456|mr[z]<<18|Mr[F];var ar=mr[z]&31,nr=Mr[F]&31;g+=lr[ar]+sr[nr],++I[257+ar],++N[nr],C=s+z,++A}else D[M++]=r[s],++I[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 Ir=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 Or(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 kr(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(Dr),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=Or(`${Sr}${JSON.stringify(w)}${br}`),m=btoa(kr(ce(d,{level:9}),!0));navigator.clipboard.writeText(m),o(we),n(),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{o(Dr)},2e3)},c=()=>{n()};return hr.useEffect(()=>{const f=i=>{if(!i.clipboardData)return;const u=i.clipboardData.types;if(!u.includes("text/plain")&&!u.includes("text"))return;const x=i.clipboardData.getData("text/plain")??i.clipboardData.getData("text");try{const S=atob(x);if(!S.startsWith("xÚ"))return;const w=kr(ue(Or(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)}}),k.jsxs(k.Fragment,{children:[k.jsx(qr,{content:"Share conversation",placement:"bottom",children:k.jsx(gr,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Share conversation",onPress:a,children:k.jsx(Yr,{icon:t})})}),k.jsx(Kr,{isOpen:e,onOpenChange:c,children:k.jsx(Lr,{children:f=>k.jsxs(k.Fragment,{children:[k.jsx(Xr,{className:"text-default-900 flex flex-col gap-1",children:"Share conversation"}),k.jsx(Qr,{children:k.jsxs("div",{className:"flex flex-col gap-4",children:[k.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."}),k.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[k.jsx(gr,{color:"danger",variant:"light",onPress:f,"aria-label":"Close share modal",children:"Cancel"}),k.jsx(gr,{color:"primary",onPress:h,"aria-label":"Copy to clipboard to share the conversation",children:"Copy to clipboard"})]})]})})]})})})]})}export{be as default}; +import{av as Gr,u as Jr,r as hr,i as Wr,j as I,D as qr,d as gr,I as Yr,m as Kr,e as Lr,f as Qr,aw as Vr}from"./index-BTi2GGnV.js";import{m as Xr}from"./chunk-IGSAU2ZA-BGelxbrz.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]),Nr=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 R=J(r,i+1,3);if(i+=3,R)if(R==1)x=ee,S=ne,w=9,d=5;else if(R==2){var N=J(r,i,31)+257,A=J(r,i+10,15)+4,g=N+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 z=s.subarray(0,N),F=s.subarray(N);w=wr(z),d=wr(F),x=q(z,w,1),S=q(F,d,1)}else G(1);else{var j=Ar(i)+4,D=r[j-4]|r[j-3]<<8,O=j+D;if(O>t){h&&G(0);break}l&&c(u+D),a.set(r.subarray(j,O),u),e.b=u+=D,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 D=o[n].s;x[D]==e&&(--x[D],++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,_=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<=_)return Ur(e,f,r.subarray(h,h+c));var E,b,z,F;if(K(e,f,1+(_15&&(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 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,D,O,N,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)N[b]=0}var z=2,F=0,er=x,B=U-_&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!=_;){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,_=Z)}}}U=_,_=w[U],B+=U-_&32767}if(F){D[M++]=268435456|mr[z]<<18|Mr[F];var ar=mr[z]&31,nr=Mr[F]&31;g+=lr[ar]+sr[nr],++O[257+ar],++N[nr],C=s+z,++A}else D[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(Dr),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(Dr)},2e3)},c=()=>{n()};return hr.useEffect(()=>{const f=i=>{if(!i.clipboardData)return;const u=i.clipboardData.types;if(!u.includes("text/plain")&&!u.includes("text"))return;const x=i.clipboardData.getData("text/plain")??i.clipboardData.getData("text");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}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/UsageButton-BMDI2IGg.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/UsageButton-BMDI2IGg.js deleted file mode 100644 index bd62ffe45..000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/UsageButton-BMDI2IGg.js +++ /dev/null @@ -1 +0,0 @@ -import{r as B,aO as Ml,aP as ae,t as Ne,l as ie,n as z,aQ as W,aR as U,aS as te,aT as Tl,W as _,aU as Rl,aV as Vl,a3 as ze,aW as ue,aX as Ol,k as pe,a7 as Hl,a8 as J,a9 as Ll,aY as L,as as Ul,aZ as Y,a_ as Z,a$ as le,ac as Wl,b0 as Gl,b1 as Ce,b2 as Yl,O as T,A as M,G as X,J as K,j as h,w as I,M as w,aC as be,ag as O,Z as Zl,a1 as _l,a0 as ql,ai as q,x as Jl,y as Fe,H as Pe,ae as Ke,u as Xl,aF as De,D as Ql,d as eu,I as tu,m as lu,e as uu,f as nu,b3 as ou}from"./index-C75huGqt.js";import{b as fe,a as Ie,c as je,C as su,u as iu}from"./index-I-Ja0wkh.js";import{m as ru}from"./chunk-IGSAU2ZA-DUS7ku-0.js";function Me(e,t){const l=B.useRef(!0),u=B.useRef(null);B.useEffect(()=>(l.current=!0,()=>{l.current=!1}),[]),B.useEffect(()=>{let o=u.current;l.current?l.current=!1:(!o||t.some((n,i)=>!Object.is(n,o[i])))&&e(),u.current=t},t)}function au(e,t){let l=t?.isDisabled,[u,o]=B.useState(!1);return Ml(()=>{if(e?.current&&!l){let n=()=>{if(e.current){let a=ae(e.current,{tabbable:!0});o(!!a.nextNode())}};n();let i=new MutationObserver(n);return i.observe(e.current,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["tabIndex","disabled"]}),()=>{i.disconnect()}}}),l?!1:u}var Be=Ne({base:"w-px h-px inline-block",variants:{isInline:{true:"inline-block",false:"block"}},defaultVariants:{isInline:!1}}),ke=Ne({slots:{base:"flex flex-col relative gap-4",wrapper:["p-4","z-0","flex","flex-col","relative","justify-between","gap-4","shadow-small","bg-content1","overflow-auto"],table:"min-w-full h-auto",thead:"[&>tr]:first:rounded-lg",tbody:"after:block",tr:["group/tr","outline-hidden",...ie],th:["group/th","px-3","h-10","text-start","align-middle","bg-default-100","whitespace-nowrap","text-foreground-500","text-tiny","font-semibold","first:rounded-s-lg","last:rounded-e-lg","outline-hidden","data-[sortable=true]:cursor-pointer","data-[hover=true]:text-foreground-400",...ie],td:["py-2","px-3","relative","align-middle","whitespace-normal","text-small","font-normal","outline-hidden","[&>*]:z-1","[&>*]:relative",...ie,"before:pointer-events-none","before:content-['']","before:absolute","before:z-0","before:inset-0","before:opacity-0","data-[selected=true]:before:opacity-100","group-data-[disabled=true]/tr:text-foreground-300","group-data-[disabled=true]/tr:cursor-not-allowed"],tfoot:"",sortIcon:["ms-2","mb-px","opacity-0","text-inherit","inline-block","transition-transform-opacity","data-[visible=true]:opacity-100","group-data-[hover=true]/th:opacity-100","data-[direction=ascending]:rotate-180"],emptyWrapper:"text-foreground-400 align-middle text-center h-40",loadingWrapper:"absolute inset-0 flex items-center justify-center"},variants:{color:{default:{td:"before:bg-default/60 data-[selected=true]:text-default-foreground"},primary:{td:"before:bg-primary/20 data-[selected=true]:text-primary"},secondary:{td:"before:bg-secondary/20 data-[selected=true]:text-secondary"},success:{td:"before:bg-success/20 data-[selected=true]:text-success-600 dark:data-[selected=true]:text-success"},warning:{td:"before:bg-warning/20 data-[selected=true]:text-warning-600 dark:data-[selected=true]:text-warning"},danger:{td:"before:bg-danger/20 data-[selected=true]:text-danger dark:data-[selected=true]:text-danger-500"}},layout:{auto:{table:"table-auto"},fixed:{table:"table-fixed"}},shadow:{none:{wrapper:"shadow-none"},sm:{wrapper:"shadow-small"},md:{wrapper:"shadow-medium"},lg:{wrapper:"shadow-large"}},hideHeader:{true:{thead:"hidden"}},isStriped:{true:{td:["group-data-[odd=true]/tr:before:bg-default-100","group-data-[odd=true]/tr:before:opacity-100","group-data-[odd=true]/tr:before:-z-10"]}},isCompact:{true:{td:"py-1"},false:{}},isHeaderSticky:{true:{thead:"sticky top-0 z-20 [&>tr]:first:shadow-small"}},isSelectable:{true:{tr:"cursor-default",td:["group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:bg-default-100","group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:opacity-70"]}},isMultiSelectable:{true:{td:["group-data-[first=true]/tr:first:before:rounded-ss-lg","group-data-[first=true]/tr:last:before:rounded-se-lg","group-data-[middle=true]/tr:before:rounded-none","group-data-[last=true]/tr:first:before:rounded-es-lg","group-data-[last=true]/tr:last:before:rounded-ee-lg"]},false:{td:["first:before:rounded-s-lg","last:before:rounded-e-lg"]}},radius:{none:{wrapper:"rounded-none",th:["first:rounded-s-none","first:before:rounded-s-none","last:rounded-e-none","last:before:rounded-e-none"],td:["first:before:rounded-s-none","last:before:rounded-e-none","group-data-[first=true]/tr:first:before:rounded-ss-none","group-data-[first=true]/tr:last:before:rounded-se-none","group-data-[last=true]/tr:first:before:rounded-es-none","group-data-[last=true]/tr:last:before:rounded-ee-none"]},sm:{wrapper:"rounded-small"},md:{wrapper:"rounded-medium"},lg:{wrapper:"rounded-large"}},fullWidth:{true:{base:"w-full",wrapper:"w-full",table:"w-full"}},align:{start:{th:"text-start",td:"text-start"},center:{th:"text-center",td:"text-center"},end:{th:"text-end",td:"text-end"}}},defaultVariants:{layout:"auto",shadow:"sm",radius:"lg",color:"default",isCompact:!1,hideHeader:!1,isStriped:!1,fullWidth:!0,align:"start"},compoundVariants:[{isStriped:!0,color:"default",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-default/60"}},{isStriped:!0,color:"primary",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-primary/20"}},{isStriped:!0,color:"secondary",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-secondary/20"}},{isStriped:!0,color:"success",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-success/20"}},{isStriped:!0,color:"warning",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-warning/20"}},{isStriped:!0,color:"danger",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-danger/20"}}]});const he=new WeakMap;function ce(e){return typeof e=="string"?e.replace(/\s*/g,""):""+e}function cu(e,t){let l=he.get(e);if(!l)throw new Error("Unknown grid");return`${l}-${ce(t)}`}function Te(e,t,l){let u=he.get(e);if(!u)throw new Error("Unknown grid");return`${u}-${ce(t)}-${ce(l)}`}function Re(e,t){return[...e.collection.rowHeaderColumnKeys].map(l=>Te(e,t,l)).join(" ")}var Ve={};Ve={ascending:"تصاعدي",ascendingSort:e=>`ترتيب حسب العمود ${e.columnName} بترتيب تصاعدي`,columnSize:e=>`${e.value} بالبكسل`,descending:"تنازلي",descendingSort:e=>`ترتيب حسب العمود ${e.columnName} بترتيب تنازلي`,resizerDescription:"اضغط على مفتاح Enter لبدء تغيير الحجم",select:"تحديد",selectAll:"تحديد الكل",sortable:"عمود قابل للترتيب"};var Oe={};Oe={ascending:"възходящ",ascendingSort:e=>`сортирано по колона ${e.columnName} във възходящ ред`,columnSize:e=>`${e.value} пиксела`,descending:"низходящ",descendingSort:e=>`сортирано по колона ${e.columnName} в низходящ ред`,resizerDescription:"Натиснете „Enter“, за да започнете да преоразмерявате",select:"Изберете",selectAll:"Изберете всичко",sortable:"сортираща колона"};var He={};He={ascending:"vzestupně",ascendingSort:e=>`řazeno vzestupně podle sloupce ${e.columnName}`,columnSize:e=>`${e.value} pixelů`,descending:"sestupně",descendingSort:e=>`řazeno sestupně podle sloupce ${e.columnName}`,resizerDescription:"Stisknutím klávesy Enter začnete měnit velikost",select:"Vybrat",selectAll:"Vybrat vše",sortable:"sloupec s možností řazení"};var Le={};Le={ascending:"stigende",ascendingSort:e=>`sorteret efter kolonne ${e.columnName} i stigende rækkefølge`,columnSize:e=>`${e.value} pixels`,descending:"faldende",descendingSort:e=>`sorteret efter kolonne ${e.columnName} i faldende rækkefølge`,resizerDescription:"Tryk på Enter for at ændre størrelse",select:"Vælg",selectAll:"Vælg alle",sortable:"sorterbar kolonne"};var Ue={};Ue={ascending:"aufsteigend",ascendingSort:e=>`sortiert nach Spalte ${e.columnName} in aufsteigender Reihenfolge`,columnSize:e=>`${e.value} Pixel`,descending:"absteigend",descendingSort:e=>`sortiert nach Spalte ${e.columnName} in absteigender Reihenfolge`,resizerDescription:"Eingabetaste zum Starten der Größenänderung drücken",select:"Auswählen",selectAll:"Alles auswählen",sortable:"sortierbare Spalte"};var We={};We={ascending:"αύξουσα",ascendingSort:e=>`διαλογή ανά στήλη ${e.columnName} σε αύξουσα σειρά`,columnSize:e=>`${e.value} pixel`,descending:"φθίνουσα",descendingSort:e=>`διαλογή ανά στήλη ${e.columnName} σε φθίνουσα σειρά`,resizerDescription:"Πατήστε Enter για έναρξη της αλλαγής μεγέθους",select:"Επιλογή",selectAll:"Επιλογή όλων",sortable:"Στήλη διαλογής"};var Ge={};Ge={select:"Select",selectAll:"Select All",sortable:"sortable column",ascending:"ascending",descending:"descending",ascendingSort:e=>`sorted by column ${e.columnName} in ascending order`,descendingSort:e=>`sorted by column ${e.columnName} in descending order`,columnSize:e=>`${e.value} pixels`,resizerDescription:"Press Enter to start resizing"};var Ye={};Ye={ascending:"ascendente",ascendingSort:e=>`ordenado por columna ${e.columnName} en sentido ascendente`,columnSize:e=>`${e.value} píxeles`,descending:"descendente",descendingSort:e=>`ordenado por columna ${e.columnName} en orden descendente`,resizerDescription:"Pulse Intro para empezar a redimensionar",select:"Seleccionar",selectAll:"Seleccionar todos",sortable:"columna ordenable"};var Ze={};Ze={ascending:"tõusev järjestus",ascendingSort:e=>`sorditud veeru järgi ${e.columnName} tõusvas järjestuses`,columnSize:e=>`${e.value} pikslit`,descending:"laskuv järjestus",descendingSort:e=>`sorditud veeru järgi ${e.columnName} laskuvas järjestuses`,resizerDescription:"Suuruse muutmise alustamiseks vajutage klahvi Enter",select:"Vali",selectAll:"Vali kõik",sortable:"sorditav veerg"};var _e={};_e={ascending:"nouseva",ascendingSort:e=>`lajiteltu sarakkeen ${e.columnName} mukaan nousevassa järjestyksessä`,columnSize:e=>`${e.value} pikseliä`,descending:"laskeva",descendingSort:e=>`lajiteltu sarakkeen ${e.columnName} mukaan laskevassa järjestyksessä`,resizerDescription:"Aloita koon muutos painamalla Enter-näppäintä",select:"Valitse",selectAll:"Valitse kaikki",sortable:"lajiteltava sarake"};var qe={};qe={ascending:"croissant",ascendingSort:e=>`trié en fonction de la colonne ${e.columnName} par ordre croissant`,columnSize:e=>`${e.value} pixels`,descending:"décroissant",descendingSort:e=>`trié en fonction de la colonne ${e.columnName} par ordre décroissant`,resizerDescription:"Appuyez sur Entrée pour commencer le redimensionnement.",select:"Sélectionner",selectAll:"Sélectionner tout",sortable:"colonne triable"};var Je={};Je={ascending:"עולה",ascendingSort:e=>`מוין לפי עמודה ${e.columnName} בסדר עולה`,columnSize:e=>`${e.value} פיקסלים`,descending:"יורד",descendingSort:e=>`מוין לפי עמודה ${e.columnName} בסדר יורד`,resizerDescription:"הקש Enter כדי לשנות את הגודל",select:"בחר",selectAll:"בחר הכול",sortable:"עמודה שניתן למיין"};var Xe={};Xe={ascending:"rastući",ascendingSort:e=>`razvrstano po stupcima ${e.columnName} rastućem redoslijedom`,columnSize:e=>`${e.value} piksela`,descending:"padajući",descendingSort:e=>`razvrstano po stupcima ${e.columnName} padajućim redoslijedom`,resizerDescription:"Pritisnite Enter da biste započeli promenu veličine",select:"Odaberite",selectAll:"Odaberite sve",sortable:"stupac koji se može razvrstati"};var Qe={};Qe={ascending:"növekvő",ascendingSort:e=>`rendezve a(z) ${e.columnName} oszlop szerint, növekvő sorrendben`,columnSize:e=>`${e.value} képpont`,descending:"csökkenő",descendingSort:e=>`rendezve a(z) ${e.columnName} oszlop szerint, csökkenő sorrendben`,resizerDescription:"Nyomja le az Enter billentyűt az átméretezés megkezdéséhez",select:"Kijelölés",selectAll:"Összes kijelölése",sortable:"rendezendő oszlop"};var et={};et={ascending:"crescente",ascendingSort:e=>`in ordine crescente in base alla colonna ${e.columnName}`,columnSize:e=>`${e.value} pixel`,descending:"decrescente",descendingSort:e=>`in ordine decrescente in base alla colonna ${e.columnName}`,resizerDescription:"Premi Invio per iniziare a ridimensionare",select:"Seleziona",selectAll:"Seleziona tutto",sortable:"colonna ordinabile"};var tt={};tt={ascending:"昇順",ascendingSort:e=>`列 ${e.columnName} を昇順で並べ替え`,columnSize:e=>`${e.value} ピクセル`,descending:"降順",descendingSort:e=>`列 ${e.columnName} を降順で並べ替え`,resizerDescription:"Enter キーを押してサイズ変更を開始",select:"選択",selectAll:"すべて選択",sortable:"並べ替え可能な列"};var lt={};lt={ascending:"오름차순",ascendingSort:e=>`${e.columnName} 열을 기준으로 오름차순으로 정렬됨`,columnSize:e=>`${e.value} 픽셀`,descending:"내림차순",descendingSort:e=>`${e.columnName} 열을 기준으로 내림차순으로 정렬됨`,resizerDescription:"크기 조정을 시작하려면 Enter를 누르세요.",select:"선택",selectAll:"모두 선택",sortable:"정렬 가능한 열"};var ut={};ut={ascending:"didėjančia tvarka",ascendingSort:e=>`surikiuota pagal stulpelį ${e.columnName} didėjančia tvarka`,columnSize:e=>`${e.value} piks.`,descending:"mažėjančia tvarka",descendingSort:e=>`surikiuota pagal stulpelį ${e.columnName} mažėjančia tvarka`,resizerDescription:"Paspauskite „Enter“, kad pradėtumėte keisti dydį",select:"Pasirinkti",selectAll:"Pasirinkti viską",sortable:"rikiuojamas stulpelis"};var nt={};nt={ascending:"augošā secībā",ascendingSort:e=>`kārtots pēc kolonnas ${e.columnName} augošā secībā`,columnSize:e=>`${e.value} pikseļi`,descending:"dilstošā secībā",descendingSort:e=>`kārtots pēc kolonnas ${e.columnName} dilstošā secībā`,resizerDescription:"Nospiediet Enter, lai sāktu izmēru mainīšanu",select:"Atlasīt",selectAll:"Atlasīt visu",sortable:"kārtojamā kolonna"};var ot={};ot={ascending:"stigende",ascendingSort:e=>`sortert etter kolonne ${e.columnName} i stigende rekkefølge`,columnSize:e=>`${e.value} piksler`,descending:"synkende",descendingSort:e=>`sortert etter kolonne ${e.columnName} i synkende rekkefølge`,resizerDescription:"Trykk på Enter for å starte størrelsesendring",select:"Velg",selectAll:"Velg alle",sortable:"kolonne som kan sorteres"};var st={};st={ascending:"oplopend",ascendingSort:e=>`gesorteerd in oplopende volgorde in kolom ${e.columnName}`,columnSize:e=>`${e.value} pixels`,descending:"aflopend",descendingSort:e=>`gesorteerd in aflopende volgorde in kolom ${e.columnName}`,resizerDescription:"Druk op Enter om het formaat te wijzigen",select:"Selecteren",selectAll:"Alles selecteren",sortable:"sorteerbare kolom"};var it={};it={ascending:"rosnąco",ascendingSort:e=>`posortowano według kolumny ${e.columnName} w porządku rosnącym`,columnSize:e=>`Liczba pikseli: ${e.value}`,descending:"malejąco",descendingSort:e=>`posortowano według kolumny ${e.columnName} w porządku malejącym`,resizerDescription:"Naciśnij Enter, aby rozpocząć zmienianie rozmiaru",select:"Zaznacz",selectAll:"Zaznacz wszystko",sortable:"kolumna z możliwością sortowania"};var rt={};rt={ascending:"crescente",ascendingSort:e=>`classificado pela coluna ${e.columnName} em ordem crescente`,columnSize:e=>`${e.value} pixels`,descending:"decrescente",descendingSort:e=>`classificado pela coluna ${e.columnName} em ordem decrescente`,resizerDescription:"Pressione Enter para começar a redimensionar",select:"Selecionar",selectAll:"Selecionar tudo",sortable:"coluna classificável"};var at={};at={ascending:"ascendente",ascendingSort:e=>`Ordenar por coluna ${e.columnName} em ordem ascendente`,columnSize:e=>`${e.value} pixels`,descending:"descendente",descendingSort:e=>`Ordenar por coluna ${e.columnName} em ordem descendente`,resizerDescription:"Prima Enter para iniciar o redimensionamento",select:"Selecionar",selectAll:"Selecionar tudo",sortable:"Coluna ordenável"};var ct={};ct={ascending:"crescătoare",ascendingSort:e=>`sortate după coloana ${e.columnName} în ordine crescătoare`,columnSize:e=>`${e.value} pixeli`,descending:"descrescătoare",descendingSort:e=>`sortate după coloana ${e.columnName} în ordine descrescătoare`,resizerDescription:"Apăsați pe Enter pentru a începe redimensionarea",select:"Selectare",selectAll:"Selectare totală",sortable:"coloană sortabilă"};var dt={};dt={ascending:"возрастание",ascendingSort:e=>`сортировать столбец ${e.columnName} в порядке возрастания`,columnSize:e=>`${e.value} пикс.`,descending:"убывание",descendingSort:e=>`сортировать столбец ${e.columnName} в порядке убывания`,resizerDescription:"Нажмите клавишу Enter для начала изменения размеров",select:"Выбрать",selectAll:"Выбрать все",sortable:"сортируемый столбец"};var mt={};mt={ascending:"vzostupne",ascendingSort:e=>`zoradené zostupne podľa stĺpca ${e.columnName}`,columnSize:e=>`Počet pixelov: ${e.value}`,descending:"zostupne",descendingSort:e=>`zoradené zostupne podľa stĺpca ${e.columnName}`,resizerDescription:"Stlačením klávesu Enter začnete zmenu veľkosti",select:"Vybrať",selectAll:"Vybrať všetko",sortable:"zoraditeľný stĺpec"};var pt={};pt={ascending:"naraščajoče",ascendingSort:e=>`razvrščeno po stolpcu ${e.columnName} v naraščajočem vrstnem redu`,columnSize:e=>`${e.value} slikovnih pik`,descending:"padajoče",descendingSort:e=>`razvrščeno po stolpcu ${e.columnName} v padajočem vrstnem redu`,resizerDescription:"Pritisnite tipko Enter da začnete spreminjati velikost",select:"Izberite",selectAll:"Izberite vse",sortable:"razvrstljivi stolpec"};var bt={};bt={ascending:"rastući",ascendingSort:e=>`sortirano po kolonama ${e.columnName} rastućim redosledom`,columnSize:e=>`${e.value} piksela`,descending:"padajući",descendingSort:e=>`sortirano po kolonama ${e.columnName} padajućim redosledom`,resizerDescription:"Pritisnite Enter da biste započeli promenu veličine",select:"Izaberite",selectAll:"Izaberite sve",sortable:"kolona koja se može sortirati"};var ft={};ft={ascending:"stigande",ascendingSort:e=>`sorterat på kolumn ${e.columnName} i stigande ordning`,columnSize:e=>`${e.value} pixlar`,descending:"fallande",descendingSort:e=>`sorterat på kolumn ${e.columnName} i fallande ordning`,resizerDescription:"Tryck på Retur för att börja ändra storlek",select:"Markera",selectAll:"Markera allt",sortable:"sorterbar kolumn"};var ht={};ht={ascending:"artan sırada",ascendingSort:e=>`${e.columnName} sütuna göre artan düzende sırala`,columnSize:e=>`${e.value} piksel`,descending:"azalan sırada",descendingSort:e=>`${e.columnName} sütuna göre azalan düzende sırala`,resizerDescription:"Yeniden boyutlandırmak için Enter'a basın",select:"Seç",selectAll:"Tümünü Seç",sortable:"Sıralanabilir sütun"};var vt={};vt={ascending:"висхідний",ascendingSort:e=>`відсортовано за стовпцем ${e.columnName} у висхідному порядку`,columnSize:e=>`${e.value} пікс.`,descending:"низхідний",descendingSort:e=>`відсортовано за стовпцем ${e.columnName} у низхідному порядку`,resizerDescription:"Натисніть Enter, щоб почати зміну розміру",select:"Вибрати",selectAll:"Вибрати все",sortable:"сортувальний стовпець"};var gt={};gt={ascending:"升序",ascendingSort:e=>`按列 ${e.columnName} 升序排序`,columnSize:e=>`${e.value} 像素`,descending:"降序",descendingSort:e=>`按列 ${e.columnName} 降序排序`,resizerDescription:"按“输入”键开始调整大小。",select:"选择",selectAll:"全选",sortable:"可排序的列"};var $t={};$t={ascending:"遞增",ascendingSort:e=>`已依據「${e.columnName}」欄遞增排序`,columnSize:e=>`${e.value} 像素`,descending:"遞減",descendingSort:e=>`已依據「${e.columnName}」欄遞減排序`,resizerDescription:"按 Enter 鍵以開始調整大小",select:"選取",selectAll:"全選",sortable:"可排序的欄"};var ne={};ne={"ar-AE":Ve,"bg-BG":Oe,"cs-CZ":He,"da-DK":Le,"de-DE":Ue,"el-GR":We,"en-US":Ge,"es-ES":Ye,"et-EE":Ze,"fi-FI":_e,"fr-FR":qe,"he-IL":Je,"hr-HR":Xe,"hu-HU":Qe,"it-IT":et,"ja-JP":tt,"ko-KR":lt,"lt-LT":ut,"lv-LV":nt,"nb-NO":ot,"nl-NL":st,"pl-PL":it,"pt-BR":rt,"pt-PT":at,"ro-RO":ct,"ru-RU":dt,"sk-SK":mt,"sl-SI":pt,"sr-SP":bt,"sv-SE":ft,"tr-TR":ht,"uk-UA":vt,"zh-CN":gt,"zh-TW":$t};class yt{isCell(t){return t.type==="cell"}isRow(t){return t.type==="row"||t.type==="item"}isDisabled(t){var l;return this.disabledBehavior==="all"&&(((l=t.props)===null||l===void 0?void 0:l.isDisabled)||this.disabledKeys.has(t.key))}findPreviousKey(t,l){let u=t!=null?this.collection.getKeyBefore(t):this.collection.getLastKey();for(;u!=null;){let o=this.collection.getItem(u);if(!o)return null;if(!this.isDisabled(o)&&(!l||l(o)))return u;u=this.collection.getKeyBefore(u)}return null}findNextKey(t,l){let u=t!=null?this.collection.getKeyAfter(t):this.collection.getFirstKey();for(;u!=null;){let o=this.collection.getItem(u);if(!o)return null;if(!this.isDisabled(o)&&(!l||l(o)))return u;if(u=this.collection.getKeyAfter(u),u==null)return null}return null}getKeyForItemInRowByIndex(t,l=0){if(l<0)return null;let u=this.collection.getItem(t);if(!u)return null;let o=0;for(let a of z(u,this.collection)){var n;if(a.colSpan&&a.colSpan+o>l)return(n=a.key)!==null&&n!==void 0?n:null;a.colSpan&&(o=o+a.colSpan-1);var i;if(o===l)return(i=a.key)!==null&&i!==void 0?i:null;o++}return null}getKeyBelow(t){let l=t,u=this.collection.getItem(l);if(!u)return null;var o;if(this.isCell(u)&&(l=(o=u.parentKey)!==null&&o!==void 0?o:null),l==null)return null;if(l=this.findNextKey(l,n=>n.type==="item"),l!=null){if(this.isCell(u)){let n=u.colIndex?u.colIndex:u.index;return this.getKeyForItemInRowByIndex(l,n)}if(this.focusMode==="row")return l}return null}getKeyAbove(t){let l=t,u=this.collection.getItem(l);if(!u)return null;var o;if(this.isCell(u)&&(l=(o=u.parentKey)!==null&&o!==void 0?o:null),l==null)return null;if(l=this.findPreviousKey(l,n=>n.type==="item"),l!=null){if(this.isCell(u)){let n=u.colIndex?u.colIndex:u.index;return this.getKeyForItemInRowByIndex(l,n)}if(this.focusMode==="row")return l}return null}getKeyRightOf(t){let l=this.collection.getItem(t);if(!l)return null;if(this.isRow(l)){var u,o;let d=z(l,this.collection);var n;return(n=this.direction==="rtl"?(u=W(d))===null||u===void 0?void 0:u.key:(o=U(d))===null||o===void 0?void 0:o.key)!==null&&n!==void 0?n:null}if(this.isCell(l)&&l.parentKey!=null){let d=this.collection.getItem(l.parentKey);if(!d)return null;let r=z(d,this.collection);var i;let p=(i=this.direction==="rtl"?te(r,l.index-1):te(r,l.index+1))!==null&&i!==void 0?i:null;var a;if(p)return(a=p.key)!==null&&a!==void 0?a:null;var m;if(this.focusMode==="row")return(m=l.parentKey)!==null&&m!==void 0?m:null;var c;return(c=this.direction==="rtl"?this.getFirstKey(t):this.getLastKey(t))!==null&&c!==void 0?c:null}return null}getKeyLeftOf(t){let l=this.collection.getItem(t);if(!l)return null;if(this.isRow(l)){var u,o;let d=z(l,this.collection);var n;return(n=this.direction==="rtl"?(u=U(d))===null||u===void 0?void 0:u.key:(o=W(d))===null||o===void 0?void 0:o.key)!==null&&n!==void 0?n:null}if(this.isCell(l)&&l.parentKey!=null){let d=this.collection.getItem(l.parentKey);if(!d)return null;let r=z(d,this.collection);var i;let p=(i=this.direction==="rtl"?te(r,l.index+1):te(r,l.index-1))!==null&&i!==void 0?i:null;var a;if(p)return(a=p.key)!==null&&a!==void 0?a:null;var m;if(this.focusMode==="row")return(m=l.parentKey)!==null&&m!==void 0?m:null;var c;return(c=this.direction==="rtl"?this.getLastKey(t):this.getFirstKey(t))!==null&&c!==void 0?c:null}return null}getFirstKey(t,l){let u=t??null,o;if(u!=null){if(o=this.collection.getItem(u),!o)return null;if(this.isCell(o)&&!l&&o.parentKey!=null){var n;let c=this.collection.getItem(o.parentKey);if(!c)return null;var i;return(i=(n=U(z(c,this.collection)))===null||n===void 0?void 0:n.key)!==null&&i!==void 0?i:null}}if(u=this.findNextKey(void 0,c=>c.type==="item"),u!=null&&(o&&this.isCell(o)&&l||this.focusMode==="cell")){var a;let c=this.collection.getItem(u);if(!c)return null;var m;u=(m=(a=U(z(c,this.collection)))===null||a===void 0?void 0:a.key)!==null&&m!==void 0?m:null}return u}getLastKey(t,l){let u=t??null,o;if(u!=null){if(o=this.collection.getItem(u),!o)return null;if(this.isCell(o)&&!l&&o.parentKey!=null){var n;let c=this.collection.getItem(o.parentKey);if(!c)return null;let d=z(c,this.collection);var i;return(i=(n=W(d))===null||n===void 0?void 0:n.key)!==null&&i!==void 0?i:null}}if(u=this.findPreviousKey(void 0,c=>c.type==="item"),u!=null&&(o&&this.isCell(o)&&l||this.focusMode==="cell")){var a;let c=this.collection.getItem(u);if(!c)return null;let d=z(c,this.collection);var m;u=(m=(a=W(d))===null||a===void 0?void 0:a.key)!==null&&m!==void 0?m:null}return u}getKeyPageAbove(t){let l=t,u=this.layoutDelegate.getItemRect(l);if(!u)return null;let o=Math.max(0,u.y+u.height-this.layoutDelegate.getVisibleRect().height);for(;u&&u.y>o&&l!=null;){var n;if(l=(n=this.getKeyAbove(l))!==null&&n!==void 0?n:null,l==null)break;u=this.layoutDelegate.getItemRect(l)}return l}getKeyPageBelow(t){let l=t,u=this.layoutDelegate.getItemRect(l);if(!u)return null;let o=this.layoutDelegate.getVisibleRect().height,n=Math.min(this.layoutDelegate.getContentSize().height,u.y+o);for(;u&&u.y+u.heightr.type==="item"),u==null&&!a&&(u=this.getFirstKey(),a=!0)}return null}constructor(t){if(this.collection=t.collection,this.disabledKeys=t.disabledKeys,this.disabledBehavior=t.disabledBehavior||"all",this.direction=t.direction,this.collator=t.collator,!t.layout&&!t.ref)throw new Error("Either a layout or a ref must be specified.");this.layoutDelegate=t.layoutDelegate||(t.layout?new du(t.layout):new Tl(t.ref)),this.focusMode=t.focusMode||"row"}}class du{getContentSize(){return this.layout.getContentSize()}getItemRect(t){var l;return((l=this.layout.getLayoutInfo(t))===null||l===void 0?void 0:l.rect)||null}getVisibleRect(){return this.layout.virtualizer.visibleRect}constructor(t){this.layout=t}}const ve=new WeakMap;var xt={};xt={deselectedItem:e=>`${e.item} غير المحدد`,longPressToSelect:"اضغط مطولًا للدخول إلى وضع التحديد.",select:"تحديد",selectedAll:"جميع العناصر المحددة.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"لم يتم تحديد عناصر",one:()=>`${t.number(e.count)} عنصر محدد`,other:()=>`${t.number(e.count)} عنصر محدد`})}.`,selectedItem:e=>`${e.item} المحدد`};var Ct={};Ct={deselectedItem:e=>`${e.item} не е избран.`,longPressToSelect:"Натиснете и задръжте за да влезете в избирателен режим.",select:"Изберете",selectedAll:"Всички елементи са избрани.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Няма избрани елементи",one:()=>`${t.number(e.count)} избран елемент`,other:()=>`${t.number(e.count)} избрани елементи`})}.`,selectedItem:e=>`${e.item} избран.`};var Dt={};Dt={deselectedItem:e=>`Položka ${e.item} není vybrána.`,longPressToSelect:"Dlouhým stisknutím přejdete do režimu výběru.",select:"Vybrat",selectedAll:"Vybrány všechny položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nevybrány žádné položky",one:()=>`Vybrána ${t.number(e.count)} položka`,other:()=>`Vybráno ${t.number(e.count)} položek`})}.`,selectedItem:e=>`Vybrána položka ${e.item}.`};var Bt={};Bt={deselectedItem:e=>`${e.item} ikke valgt.`,longPressToSelect:"Lav et langt tryk for at aktivere valgtilstand.",select:"Vælg",selectedAll:"Alle elementer valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer valgt",one:()=>`${t.number(e.count)} element valgt`,other:()=>`${t.number(e.count)} elementer valgt`})}.`,selectedItem:e=>`${e.item} valgt.`};var kt={};kt={deselectedItem:e=>`${e.item} nicht ausgewählt.`,longPressToSelect:"Gedrückt halten, um Auswahlmodus zu öffnen.",select:"Auswählen",selectedAll:"Alle Elemente ausgewählt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Keine Elemente ausgewählt",one:()=>`${t.number(e.count)} Element ausgewählt`,other:()=>`${t.number(e.count)} Elemente ausgewählt`})}.`,selectedItem:e=>`${e.item} ausgewählt.`};var Et={};Et={deselectedItem:e=>`Δεν επιλέχθηκε το στοιχείο ${e.item}.`,longPressToSelect:"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.",select:"Επιλογή",selectedAll:"Επιλέχθηκαν όλα τα στοιχεία.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Δεν επιλέχθηκαν στοιχεία",one:()=>`Επιλέχθηκε ${t.number(e.count)} στοιχείο`,other:()=>`Επιλέχθηκαν ${t.number(e.count)} στοιχεία`})}.`,selectedItem:e=>`Επιλέχθηκε το στοιχείο ${e.item}.`};var St={};St={deselectedItem:e=>`${e.item} not selected.`,select:"Select",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"No items selected",one:()=>`${t.number(e.count)} item selected`,other:()=>`${t.number(e.count)} items selected`})}.`,selectedAll:"All items selected.",selectedItem:e=>`${e.item} selected.`,longPressToSelect:"Long press to enter selection mode."};var At={};At={deselectedItem:e=>`${e.item} no seleccionado.`,longPressToSelect:"Mantenga pulsado para abrir el modo de selección.",select:"Seleccionar",selectedAll:"Todos los elementos seleccionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ningún elemento seleccionado",one:()=>`${t.number(e.count)} elemento seleccionado`,other:()=>`${t.number(e.count)} elementos seleccionados`})}.`,selectedItem:e=>`${e.item} seleccionado.`};var wt={};wt={deselectedItem:e=>`${e.item} pole valitud.`,longPressToSelect:"Valikurežiimi sisenemiseks vajutage pikalt.",select:"Vali",selectedAll:"Kõik üksused valitud.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Üksusi pole valitud",one:()=>`${t.number(e.count)} üksus valitud`,other:()=>`${t.number(e.count)} üksust valitud`})}.`,selectedItem:e=>`${e.item} valitud.`};var Nt={};Nt={deselectedItem:e=>`Kohdetta ${e.item} ei valittu.`,longPressToSelect:"Siirry valintatilaan painamalla pitkään.",select:"Valitse",selectedAll:"Kaikki kohteet valittu.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ei yhtään kohdetta valittu",one:()=>`${t.number(e.count)} kohde valittu`,other:()=>`${t.number(e.count)} kohdetta valittu`})}.`,selectedItem:e=>`${e.item} valittu.`};var zt={};zt={deselectedItem:e=>`${e.item} non sélectionné.`,longPressToSelect:"Appuyez de manière prolongée pour passer en mode de sélection.",select:"Sélectionner",selectedAll:"Tous les éléments sélectionnés.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Aucun élément sélectionné",one:()=>`${t.number(e.count)} élément sélectionné`,other:()=>`${t.number(e.count)} éléments sélectionnés`})}.`,selectedItem:e=>`${e.item} sélectionné.`};var Ft={};Ft={deselectedItem:e=>`${e.item} לא נבחר.`,longPressToSelect:"הקשה ארוכה לכניסה למצב בחירה.",select:"בחר",selectedAll:"כל הפריטים נבחרו.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"לא נבחרו פריטים",one:()=>`פריט ${t.number(e.count)} נבחר`,other:()=>`${t.number(e.count)} פריטים נבחרו`})}.`,selectedItem:e=>`${e.item} נבחר.`};var Pt={};Pt={deselectedItem:e=>`Stavka ${e.item} nije odabrana.`,longPressToSelect:"Dugo pritisnite za ulazak u način odabira.",select:"Odaberite",selectedAll:"Odabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije odabrana nijedna stavka",one:()=>`Odabrana je ${t.number(e.count)} stavka`,other:()=>`Odabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`Stavka ${e.item} je odabrana.`};var Kt={};Kt={deselectedItem:e=>`${e.item} nincs kijelölve.`,longPressToSelect:"Nyomja hosszan a kijelöléshez.",select:"Kijelölés",selectedAll:"Az összes elem kijelölve.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Egy elem sincs kijelölve",one:()=>`${t.number(e.count)} elem kijelölve`,other:()=>`${t.number(e.count)} elem kijelölve`})}.`,selectedItem:e=>`${e.item} kijelölve.`};var It={};It={deselectedItem:e=>`${e.item} non selezionato.`,longPressToSelect:"Premi a lungo per passare alla modalità di selezione.",select:"Seleziona",selectedAll:"Tutti gli elementi selezionati.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nessun elemento selezionato",one:()=>`${t.number(e.count)} elemento selezionato`,other:()=>`${t.number(e.count)} elementi selezionati`})}.`,selectedItem:e=>`${e.item} selezionato.`};var jt={};jt={deselectedItem:e=>`${e.item} が選択されていません。`,longPressToSelect:"長押しして選択モードを開きます。",select:"選択",selectedAll:"すべての項目を選択しました。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"項目が選択されていません",one:()=>`${t.number(e.count)} 項目を選択しました`,other:()=>`${t.number(e.count)} 項目を選択しました`})}。`,selectedItem:e=>`${e.item} を選択しました。`};var Mt={};Mt={deselectedItem:e=>`${e.item}이(가) 선택되지 않았습니다.`,longPressToSelect:"선택 모드로 들어가려면 길게 누르십시오.",select:"선택",selectedAll:"모든 항목이 선택되었습니다.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"선택된 항목이 없습니다",one:()=>`${t.number(e.count)}개 항목이 선택되었습니다`,other:()=>`${t.number(e.count)}개 항목이 선택되었습니다`})}.`,selectedItem:e=>`${e.item}이(가) 선택되었습니다.`};var Tt={};Tt={deselectedItem:e=>`${e.item} nepasirinkta.`,longPressToSelect:"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.",select:"Pasirinkti",selectedAll:"Pasirinkti visi elementai.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nepasirinktas nė vienas elementas",one:()=>`Pasirinktas ${t.number(e.count)} elementas`,other:()=>`Pasirinkta elementų: ${t.number(e.count)}`})}.`,selectedItem:e=>`Pasirinkta: ${e.item}.`};var Rt={};Rt={deselectedItem:e=>`Vienums ${e.item} nav atlasīts.`,longPressToSelect:"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.",select:"Atlasīt",selectedAll:"Atlasīti visi vienumi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nav atlasīts neviens vienums",one:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`,other:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`})}.`,selectedItem:e=>`Atlasīts vienums ${e.item}.`};var Vt={};Vt={deselectedItem:e=>`${e.item} er ikke valgt.`,longPressToSelect:"Bruk et langt trykk for å gå inn i valgmodus.",select:"Velg",selectedAll:"Alle elementer er valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer er valgt",one:()=>`${t.number(e.count)} element er valgt`,other:()=>`${t.number(e.count)} elementer er valgt`})}.`,selectedItem:e=>`${e.item} er valgt.`};var Ot={};Ot={deselectedItem:e=>`${e.item} niet geselecteerd.`,longPressToSelect:"Druk lang om de selectiemodus te openen.",select:"Selecteren",selectedAll:"Alle items geselecteerd.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Geen items geselecteerd",one:()=>`${t.number(e.count)} item geselecteerd`,other:()=>`${t.number(e.count)} items geselecteerd`})}.`,selectedItem:e=>`${e.item} geselecteerd.`};var Ht={};Ht={deselectedItem:e=>`Nie zaznaczono ${e.item}.`,longPressToSelect:"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.",select:"Zaznacz",selectedAll:"Wszystkie zaznaczone elementy.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nie zaznaczono żadnych elementów",one:()=>`${t.number(e.count)} zaznaczony element`,other:()=>`${t.number(e.count)} zaznaczonych elementów`})}.`,selectedItem:e=>`Zaznaczono ${e.item}.`};var Lt={};Lt={deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Mantenha pressionado para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`};var Ut={};Ut={deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Prima continuamente para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`};var Wt={};Wt={deselectedItem:e=>`${e.item} neselectat.`,longPressToSelect:"Apăsați lung pentru a intra în modul de selectare.",select:"Selectare",selectedAll:"Toate elementele selectate.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Niciun element selectat",one:()=>`${t.number(e.count)} element selectat`,other:()=>`${t.number(e.count)} elemente selectate`})}.`,selectedItem:e=>`${e.item} selectat.`};var Gt={};Gt={deselectedItem:e=>`${e.item} не выбрано.`,longPressToSelect:"Нажмите и удерживайте для входа в режим выбора.",select:"Выбрать",selectedAll:"Выбраны все элементы.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Нет выбранных элементов",one:()=>`${t.number(e.count)} элемент выбран`,other:()=>`${t.number(e.count)} элементов выбрано`})}.`,selectedItem:e=>`${e.item} выбрано.`};var Yt={};Yt={deselectedItem:e=>`Nevybraté položky: ${e.item}.`,longPressToSelect:"Dlhším stlačením prejdite do režimu výberu.",select:"Vybrať",selectedAll:"Všetky vybraté položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Žiadne vybraté položky",one:()=>`${t.number(e.count)} vybratá položka`,other:()=>`Počet vybratých položiek:${t.number(e.count)}`})}.`,selectedItem:e=>`Vybraté položky: ${e.item}.`};var Zt={};Zt={deselectedItem:e=>`Element ${e.item} ni izbran.`,longPressToSelect:"Za izbirni način pritisnite in dlje časa držite.",select:"Izberite",selectedAll:"Vsi elementi so izbrani.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Noben element ni izbran",one:()=>`${t.number(e.count)} element je izbran`,other:()=>`${t.number(e.count)} elementov je izbranih`})}.`,selectedItem:e=>`Element ${e.item} je izbran.`};var _t={};_t={deselectedItem:e=>`${e.item} nije izabrano.`,longPressToSelect:"Dugo pritisnite za ulazak u režim biranja.",select:"Izaberite",selectedAll:"Izabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije izabrana nijedna stavka",one:()=>`Izabrana je ${t.number(e.count)} stavka`,other:()=>`Izabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`${e.item} je izabrano.`};var qt={};qt={deselectedItem:e=>`${e.item} ej markerat.`,longPressToSelect:"Tryck länge när du vill öppna väljarläge.",select:"Markera",selectedAll:"Alla markerade objekt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Inga markerade objekt",one:()=>`${t.number(e.count)} markerat objekt`,other:()=>`${t.number(e.count)} markerade objekt`})}.`,selectedItem:e=>`${e.item} markerat.`};var Jt={};Jt={deselectedItem:e=>`${e.item} seçilmedi.`,longPressToSelect:"Seçim moduna girmek için uzun basın.",select:"Seç",selectedAll:"Tüm ögeler seçildi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Hiçbir öge seçilmedi",one:()=>`${t.number(e.count)} öge seçildi`,other:()=>`${t.number(e.count)} öge seçildi`})}.`,selectedItem:e=>`${e.item} seçildi.`};var Xt={};Xt={deselectedItem:e=>`${e.item} не вибрано.`,longPressToSelect:"Виконайте довге натиснення, щоб перейти в режим вибору.",select:"Вибрати",selectedAll:"Усі елементи вибрано.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Жодних елементів не вибрано",one:()=>`${t.number(e.count)} елемент вибрано`,other:()=>`Вибрано елементів: ${t.number(e.count)}`})}.`,selectedItem:e=>`${e.item} вибрано.`};var Qt={};Qt={deselectedItem:e=>`未选择 ${e.item}。`,longPressToSelect:"长按以进入选择模式。",select:"选择",selectedAll:"已选择所有项目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未选择项目",one:()=>`已选择 ${t.number(e.count)} 个项目`,other:()=>`已选择 ${t.number(e.count)} 个项目`})}。`,selectedItem:e=>`已选择 ${e.item}。`};var el={};el={deselectedItem:e=>`未選取「${e.item}」。`,longPressToSelect:"長按以進入選擇模式。",select:"選取",selectedAll:"已選取所有項目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未選取任何項目",one:()=>`已選取 ${t.number(e.count)} 個項目`,other:()=>`已選取 ${t.number(e.count)} 個項目`})}。`,selectedItem:e=>`已選取「${e.item}」。`};var oe={};oe={"ar-AE":xt,"bg-BG":Ct,"cs-CZ":Dt,"da-DK":Bt,"de-DE":kt,"el-GR":Et,"en-US":St,"es-ES":At,"et-EE":wt,"fi-FI":Nt,"fr-FR":zt,"he-IL":Ft,"hr-HR":Pt,"hu-HU":Kt,"it-IT":It,"ja-JP":jt,"ko-KR":Mt,"lt-LT":Tt,"lv-LV":Rt,"nb-NO":Vt,"nl-NL":Ot,"pl-PL":Ht,"pt-BR":Lt,"pt-PT":Ut,"ro-RO":Wt,"ru-RU":Gt,"sk-SK":Yt,"sl-SI":Zt,"sr-SP":_t,"sv-SE":qt,"tr-TR":Jt,"uk-UA":Xt,"zh-CN":Qt,"zh-TW":el};const tl=7e3;let V=null;function ll(e,t="assertive",l=tl){V?V.announce(e,t,l):(V=new mu,(typeof IS_REACT_ACT_ENVIRONMENT=="boolean"?IS_REACT_ACT_ENVIRONMENT:typeof jest<"u")?V.announce(e,t,l):setTimeout(()=>{V?.isAttached()&&V?.announce(e,t,l)},100))}class mu{isAttached(){var t;return(t=this.node)===null||t===void 0?void 0:t.isConnected}createLog(t){let l=document.createElement("div");return l.setAttribute("role","log"),l.setAttribute("aria-live",t),l.setAttribute("aria-relevant","additions"),l}destroy(){this.node&&(document.body.removeChild(this.node),this.node=null)}announce(t,l="assertive",u=tl){var o,n;if(!this.node)return;let i=document.createElement("div");typeof t=="object"?(i.setAttribute("role","img"),i.setAttribute("aria-labelledby",t["aria-labelledby"])):i.textContent=t,l==="assertive"?(o=this.assertiveLog)===null||o===void 0||o.appendChild(i):(n=this.politeLog)===null||n===void 0||n.appendChild(i),t!==""&&setTimeout(()=>{i.remove()},u)}clear(t){this.node&&((!t||t==="assertive")&&this.assertiveLog&&(this.assertiveLog.innerHTML=""),(!t||t==="polite")&&this.politeLog&&(this.politeLog.innerHTML=""))}constructor(){this.node=null,this.assertiveLog=null,this.politeLog=null,typeof document<"u"&&(this.node=document.createElement("div"),this.node.dataset.liveAnnouncer="true",Object.assign(this.node.style,{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"}),this.assertiveLog=this.createLog("assertive"),this.node.appendChild(this.assertiveLog),this.politeLog=this.createLog("polite"),this.node.appendChild(this.politeLog),document.body.prepend(this.node))}}function pu(e){return e&&e.__esModule?e.default:e}function bu(e,t){let{getRowText:l=a=>{var m,c,d,r;return(r=(m=(c=t.collection).getTextValue)===null||m===void 0?void 0:m.call(c,a))!==null&&r!==void 0?r:(d=t.collection.getItem(a))===null||d===void 0?void 0:d.textValue}}=e,u=_(pu(oe),"@react-aria/grid"),o=t.selectionManager.rawSelection,n=B.useRef(o),i=Rl(()=>{var a;if(!t.selectionManager.isFocused||o===n.current){n.current=o;return}let m=Ee(o,n.current),c=Ee(n.current,o),d=t.selectionManager.selectionBehavior==="replace",r=[];if(t.selectionManager.selectedKeys.size===1&&d){let p=t.selectionManager.selectedKeys.keys().next().value;if(p!=null&&t.collection.getItem(p)){let s=l(p);s&&r.push(u.format("selectedItem",{item:s}))}}else if(m.size===1&&c.size===0){let p=m.keys().next().value;if(p!=null){let s=l(p);s&&r.push(u.format("selectedItem",{item:s}))}}else if(c.size===1&&m.size===0){let p=c.keys().next().value;if(p!=null&&t.collection.getItem(p)){let s=l(p);s&&r.push(u.format("deselectedItem",{item:s}))}}t.selectionManager.selectionMode==="multiple"&&(r.length===0||o==="all"||o.size>1||n.current==="all"||((a=n.current)===null||a===void 0?void 0:a.size)>1)&&r.push(o==="all"?u.format("selectedAll"):u.format("selectedCount",{count:o.size})),r.length>0&&ll(r.join(" ")),n.current=o});Me(()=>{if(t.selectionManager.isFocused)i();else{let a=requestAnimationFrame(i);return()=>cancelAnimationFrame(a)}},[o,t.selectionManager.isFocused])}function Ee(e,t){let l=new Set;if(e==="all"||t==="all")return l;for(let u of e.keys())t.has(u)||l.add(u);return l}function fu(e){return e&&e.__esModule?e.default:e}function hu(e){let t=_(fu(oe),"@react-aria/grid"),l=Vl(),u=(l==="pointer"||l==="virtual"||l==null)&&typeof window<"u"&&"ontouchstart"in window,o=B.useMemo(()=>{let i=e.selectionManager.selectionMode,a=e.selectionManager.selectionBehavior,m;return u&&(m=t.format("longPressToSelect")),a==="replace"&&i!=="none"&&e.hasItemActions?m:void 0},[e.selectionManager.selectionMode,e.selectionManager.selectionBehavior,e.hasItemActions,t,u]);return fe(o)}function vu(e,t,l){let{isVirtualized:u,disallowTypeAhead:o,keyboardDelegate:n,focusMode:i,scrollRef:a,getRowText:m,onRowAction:c,onCellAction:d,escapeKeyBehavior:r="clearSelection",shouldSelectOnPressUp:p}=e,{selectionManager:s}=t;!e["aria-label"]&&!e["aria-labelledby"]&&console.warn("An aria-label or aria-labelledby prop is required for accessibility.");let b=ze({usage:"search",sensitivity:"base"}),{direction:v}=ue(),g=t.selectionManager.disabledBehavior,x=B.useMemo(()=>n||new yt({collection:t.collection,disabledKeys:t.disabledKeys,disabledBehavior:g,ref:l,direction:v,collator:b,focusMode:i}),[n,t.collection,t.disabledKeys,g,l,v,b,i]),{collectionProps:D}=Ol({ref:l,selectionManager:s,keyboardDelegate:x,isVirtualized:u,scrollRef:a,disallowTypeAhead:o,escapeKeyBehavior:r}),y=pe(e.id);ve.set(t,{keyboardDelegate:x,actions:{onRowAction:c,onCellAction:d},shouldSelectOnPressUp:p});let $=hu({selectionManager:s,hasItemActions:!!(c||d)}),f=Hl(e,{labelable:!0}),E=B.useCallback(C=>{if(s.isFocused){C.currentTarget.contains(C.target)||s.setFocused(!1);return}C.currentTarget.contains(C.target)&&s.setFocused(!0)},[s]),S=B.useMemo(()=>({onBlur:D.onBlur,onFocus:E}),[E,D.onBlur]),A=au(l,{isDisabled:t.collection.size!==0}),k=J(f,{role:"grid",id:y,"aria-multiselectable":s.selectionMode==="multiple"?"true":void 0},t.isKeyboardNavigationDisabled?S:D,t.collection.size===0&&{tabIndex:A?-1:0}||void 0,$);return u&&(k["aria-rowcount"]=t.collection.size,k["aria-colcount"]=t.collection.columnCount),bu({getRowText:m},t),{gridProps:k}}function gu(){return{rowGroupProps:{role:"rowgroup"}}}function $u(e,t,l){var u,o;let{node:n,isVirtualized:i,shouldSelectOnPressUp:a,onAction:m}=e,{actions:c,shouldSelectOnPressUp:d}=ve.get(t),r=c.onRowAction?()=>{var g;return(g=c.onRowAction)===null||g===void 0?void 0:g.call(c,n.key)}:m,{itemProps:p,...s}=Ie({selectionManager:t.selectionManager,key:n.key,ref:l,isVirtualized:i,shouldSelectOnPressUp:d||a,onAction:r||!(n==null||(u=n.props)===null||u===void 0)&&u.onAction?Ll(n==null||(o=n.props)===null||o===void 0?void 0:o.onAction,r):void 0,isDisabled:t.collection.size===0}),b=t.selectionManager.isSelected(n.key),v={role:"row","aria-selected":t.selectionManager.selectionMode!=="none"?b:void 0,"aria-disabled":s.isDisabled||void 0,...p};return i&&(v["aria-rowindex"]=n.index+1),{rowProps:v,...s}}function ul(e,t,l){let{node:u,isVirtualized:o,focusMode:n="child",shouldSelectOnPressUp:i,onAction:a}=e,{direction:m}=ue(),{keyboardDelegate:c,actions:{onCellAction:d}}=ve.get(t),r=B.useRef(null),p=()=>{if(l.current){let y=ae(l.current);if(n==="child"){if(l.current.contains(document.activeElement)&&l.current!==document.activeElement)return;let $=t.selectionManager.childFocusStrategy==="last"?re(y):y.firstChild();if($){L($);return}}(r.current!=null&&u.key!==r.current||!l.current.contains(document.activeElement))&&L(l.current)}},{itemProps:s,isPressed:b}=Ie({selectionManager:t.selectionManager,key:u.key,ref:l,isVirtualized:o,focus:p,shouldSelectOnPressUp:i,onAction:d?()=>d(u.key):a,isDisabled:t.collection.size===0}),v=y=>{if(!y.currentTarget.contains(y.target)||t.isKeyboardNavigationDisabled||!l.current||!document.activeElement)return;let $=ae(l.current);switch($.currentNode=document.activeElement,y.key){case"ArrowLeft":{let C=m==="rtl"?$.nextNode():$.previousNode();if(n==="child"&&C===l.current&&(C=null),y.preventDefault(),y.stopPropagation(),C)L(C),Y(C,{containingElement:Z(l.current)});else{var f;if(((f=c.getKeyLeftOf)===null||f===void 0?void 0:f.call(c,u.key))!==u.key){var E;(E=l.current.parentElement)===null||E===void 0||E.dispatchEvent(new KeyboardEvent(y.nativeEvent.type,y.nativeEvent));break}n==="cell"&&m==="rtl"?(L(l.current),Y(l.current,{containingElement:Z(l.current)})):($.currentNode=l.current,C=m==="rtl"?$.firstChild():re($),C&&(L(C),Y(C,{containingElement:Z(l.current)})))}break}case"ArrowRight":{let C=m==="rtl"?$.previousNode():$.nextNode();if(n==="child"&&C===l.current&&(C=null),y.preventDefault(),y.stopPropagation(),C)L(C),Y(C,{containingElement:Z(l.current)});else{var S;if(((S=c.getKeyRightOf)===null||S===void 0?void 0:S.call(c,u.key))!==u.key){var A;(A=l.current.parentElement)===null||A===void 0||A.dispatchEvent(new KeyboardEvent(y.nativeEvent.type,y.nativeEvent));break}n==="cell"&&m==="ltr"?(L(l.current),Y(l.current,{containingElement:Z(l.current)})):($.currentNode=l.current,C=m==="rtl"?re($):$.firstChild(),C&&(L(C),Y(C,{containingElement:Z(l.current)})))}break}case"ArrowUp":case"ArrowDown":if(!y.altKey&&l.current.contains(y.target)){var k;y.stopPropagation(),y.preventDefault(),(k=l.current.parentElement)===null||k===void 0||k.dispatchEvent(new KeyboardEvent(y.nativeEvent.type,y.nativeEvent))}break}},g=y=>{if(r.current=u.key,y.target!==l.current){Ul()||t.selectionManager.setFocusedKey(u.key);return}requestAnimationFrame(()=>{n==="child"&&document.activeElement===l.current&&p()})},x=J(s,{role:"gridcell",onKeyDownCapture:v,"aria-colspan":u.colSpan,"aria-colindex":u.colIndex!=null?u.colIndex+1:void 0,colSpan:o?void 0:u.colSpan,onFocus:g});var D;return o&&(x["aria-colindex"]=((D=u.colIndex)!==null&&D!==void 0?D:u.index)+1),i&&x.tabIndex!=null&&x.onPointerDown==null&&(x.onPointerDown=y=>{let $=y.currentTarget,f=$.getAttribute("tabindex");$.removeAttribute("tabindex"),requestAnimationFrame(()=>{f!=null&&$.setAttribute("tabindex",f)})}),{gridCellProps:x,isPressed:b}}function re(e){let t=null,l=null;do l=e.lastChild(),l&&(t=l);while(l);return t}function yu(e){return e&&e.__esModule?e.default:e}function xu(e,t){let{key:l}=e,u=t.selectionManager,o=pe(),n=!t.selectionManager.canSelectItem(l),i=t.selectionManager.isSelected(l),a=()=>u.toggleSelection(l);const m=_(yu(oe),"@react-aria/grid");return{checkboxProps:{id:o,"aria-label":m.format("select"),isSelected:i,isDisabled:n,onChange:a}}}class Cu extends yt{isCell(t){return t.type==="cell"||t.type==="rowheader"||t.type==="column"}getKeyBelow(t){let l=this.collection.getItem(t);if(!l)return null;if(l.type==="column"){let u=U(z(l,this.collection));if(u)return u.key;let o=this.getFirstKey();return o==null||!this.collection.getItem(o)?null:super.getKeyForItemInRowByIndex(o,l.index)}return super.getKeyBelow(t)}getKeyAbove(t){let l=this.collection.getItem(t);if(!l)return null;if(l.type==="column"){let n=l.parentKey!=null?this.collection.getItem(l.parentKey):null;return n&&n.type==="column"?n.key:null}let u=super.getKeyAbove(t),o=u!=null?this.collection.getItem(u):null;return o&&o.type!=="headerrow"?u:this.isCell(l)?this.collection.columns[l.index].key:this.collection.columns[0].key}findNextColumnKey(t){let l=this.findNextKey(t.key,o=>o.type==="column");if(l!=null)return l;let u=this.collection.headerRows[t.level];for(let o of z(u,this.collection))if(o.type==="column")return o.key;return null}findPreviousColumnKey(t){let l=this.findPreviousKey(t.key,n=>n.type==="column");if(l!=null)return l;let u=this.collection.headerRows[t.level],o=[...z(u,this.collection)];for(let n=o.length-1;n>=0;n--){let i=o[n];if(i.type==="column")return i.key}return null}getKeyRightOf(t){let l=this.collection.getItem(t);return l?l.type==="column"?this.direction==="rtl"?this.findPreviousColumnKey(l):this.findNextColumnKey(l):super.getKeyRightOf(t):null}getKeyLeftOf(t){let l=this.collection.getItem(t);return l?l.type==="column"?this.direction==="rtl"?this.findNextColumnKey(l):this.findPreviousColumnKey(l):super.getKeyLeftOf(t):null}getKeyForSearch(t,l){if(!this.collator)return null;let u=this.collection,o=l??this.getFirstKey();if(o==null)return null;let n=u.getItem(o);var i;n?.type==="cell"&&(o=(i=n.parentKey)!==null&&i!==void 0?i:null);let a=!1;for(;o!=null;){let m=u.getItem(o);if(!m)return null;if(m.textValue){let c=m.textValue.slice(0,t.length);if(this.collator.compare(c,t)===0)return m.key}for(let c of z(m,this.collection)){let d=u.columns[c.index];if(u.rowHeaderColumnKeys.has(d.key)&&c.textValue){let r=c.textValue.slice(0,t.length);if(this.collator.compare(r,t)===0){let p=l!=null?u.getItem(l):n;return p?.type==="cell"?c.key:m.key}}}o=this.getKeyBelow(o),o==null&&!a&&(o=this.getFirstKey(),a=!0)}return null}}function Du(e){return e&&e.__esModule?e.default:e}function Bu(e,t,l){let{keyboardDelegate:u,isVirtualized:o,layoutDelegate:n,layout:i}=e,a=ze({usage:"search",sensitivity:"base"}),{direction:m}=ue(),c=t.selectionManager.disabledBehavior,d=B.useMemo(()=>u||new Cu({collection:t.collection,disabledKeys:t.disabledKeys,disabledBehavior:c,ref:l,direction:m,collator:a,layoutDelegate:n,layout:i}),[u,t.collection,t.disabledKeys,c,l,m,a,n,i]),r=pe(e.id);he.set(t,r);let{gridProps:p}=vu({...e,id:r,keyboardDelegate:d},t,l);o&&(p["aria-rowcount"]=t.collection.size+t.collection.headerRows.length),le()&&"expandedKeys"in t&&(p.role="treegrid");let{column:s,direction:b}=t.sortDescriptor||{},v=_(Du(ne),"@react-aria/table"),g=B.useMemo(()=>{var D,y;let $=(y=(D=t.collection.columns.find(f=>f.key===s))===null||D===void 0?void 0:D.textValue)!==null&&y!==void 0?y:"";return b&&s?v.format(`${b}Sort`,{columnName:$}):void 0},[b,s,t.collection.columns]),x=fe(g);return Me(()=>{g&&ll(g,"assertive",500)},[g]),{gridProps:J(p,x,{"aria-describedby":[x["aria-describedby"],p["aria-describedby"]].filter(Boolean).join(" ")})}}function ku(e){return e&&e.__esModule?e.default:e}function nl(e,t,l){var u,o;let{node:n}=e,i=n.props.allowsSorting,{gridCellProps:a}=ul({...e,focusMode:"child"},t,l),m=n.props.isSelectionCell&&t.selectionManager.selectionMode==="single",{pressProps:c}=Wl({isDisabled:!i||m,onPress(){t.sort(n.key)},ref:l}),{focusableProps:d}=Gl({},l),r,p=((u=t.sortDescriptor)===null||u===void 0?void 0:u.column)===n.key,s=(o=t.sortDescriptor)===null||o===void 0?void 0:o.direction;n.props.allowsSorting&&!Ce()&&(r=p?s:"none");let b=_(ku(ne),"@react-aria/table"),v;i&&(v=`${b.format("sortable")}`,p&&s&&Ce()&&(v=`${v}, ${b.format(s)}`));let g=fe(v),x=t.collection.size===0;return B.useEffect(()=>{x&&t.selectionManager.focusedKey===n.key&&t.selectionManager.setFocusedKey(null)},[x,t.selectionManager,n.key]),{columnHeaderProps:{...J(d,a,c,g,x?{tabIndex:-1}:null),role:"columnheader",id:cu(t,n.key),"aria-colspan":n.colSpan&&n.colSpan>1?n.colSpan:void 0,"aria-sort":r}}}const Se={expand:{ltr:"ArrowRight",rtl:"ArrowLeft"},collapse:{ltr:"ArrowLeft",rtl:"ArrowRight"}};function Eu(e,t,l){let{node:u,isVirtualized:o}=e,{rowProps:n,...i}=$u(e,t,l),{direction:a}=ue();o&&!(le()&&"expandedKeys"in t)?n["aria-rowindex"]=u.index+1+t.collection.headerRows.length:delete n["aria-rowindex"];let m={};if(le()&&"expandedKeys"in t){let f=t.keyMap.get(u.key);if(f!=null){var c,d,r,p,s,b;let E=((c=f.props)===null||c===void 0?void 0:c.UNSTABLE_childItems)||((r=f.props)===null||r===void 0||(d=r.children)===null||d===void 0?void 0:d.length)>t.userColumnCount;var v,g,x,D;m={onKeyDown:S=>{(S.key===Se.expand[a]&&t.selectionManager.focusedKey===f.key&&E&&t.expandedKeys!=="all"&&!t.expandedKeys.has(f.key)||S.key===Se.collapse[a]&&t.selectionManager.focusedKey===f.key&&E&&(t.expandedKeys==="all"||t.expandedKeys.has(f.key)))&&(t.toggleKey(f.key),S.stopPropagation())},"aria-expanded":E?t.expandedKeys==="all"||t.expandedKeys.has(u.key):void 0,"aria-level":f.level,"aria-posinset":((v=f.indexOfType)!==null&&v!==void 0?v:0)+1,"aria-setsize":f.level>1?((x=(p=W((g=(s=t.keyMap.get(f.parentKey))===null||s===void 0?void 0:s.childNodes)!==null&&g!==void 0?g:[]))===null||p===void 0?void 0:p.indexOfType)!==null&&x!==void 0?x:0)+1:((D=(b=W(t.collection.body.childNodes))===null||b===void 0?void 0:b.indexOfType)!==null&&D!==void 0?D:0)+1}}}let y=Yl(u.props),$=i.hasAction?y:{};return{rowProps:{...J(n,m,$),"aria-labelledby":Re(t,u.key)},...i}}function Su(e,t,l){let{node:u,isVirtualized:o}=e,n={role:"row"};return o&&!(le()&&"expandedKeys"in t)&&(n["aria-rowindex"]=u.index+1),{rowProps:n}}function ol(e,t,l){var u;let{gridCellProps:o,isPressed:n}=ul(e,t,l),i=(u=e.node.column)===null||u===void 0?void 0:u.key;return i!=null&&t.collection.rowHeaderColumnKeys.has(i)&&(o.role="rowheader",o.id=Te(t,e.node.parentKey,i)),{gridCellProps:o,isPressed:n}}function Au(e){return e&&e.__esModule?e.default:e}function wu(e,t){let{key:l}=e;const{checkboxProps:u}=xu(e,t);return{checkboxProps:{...u,"aria-labelledby":`${u.id} ${Re(t,l)}`}}}function Nu(e){let{isEmpty:t,isSelectAll:l,selectionMode:u}=e.selectionManager;return{checkboxProps:{"aria-label":_(Au(ne),"@react-aria/table").format(u==="single"?"select":"selectAll"),isSelected:l,isDisabled:u!=="multiple"||e.collection.size===0||e.collection.rows.length===1&&e.collection.rows[0].type==="loader",isIndeterminate:!t&&!l,onChange:()=>e.selectionManager.toggleSelectAll()}}}function ge(){return gu()}var sl=T((e,t)=>{var l,u;const{as:o,className:n,node:i,slots:a,state:m,selectionMode:c,color:d,checkboxesProps:r,disableAnimation:p,classNames:s,...b}=e,v=o||"th",g=typeof v=="string",x=M(t),{columnHeaderProps:D}=nl({node:i},m,x),{isFocusVisible:y,focusProps:$}=X(),{checkboxProps:f}=Nu(m),E=K(s?.th,n,(l=i.props)==null?void 0:l.className),S=c==="single",{onChange:A,...k}=f;return h.jsx(v,{ref:x,"data-focus-visible":w(y),...I(D,$,O(i.props,{enabled:g}),O(b,{enabled:g})),className:(u=a.th)==null?void 0:u.call(a,{class:E}),children:S?h.jsx(be,{children:f["aria-label"]}):h.jsx(je,{color:d,disableAnimation:p,onValueChange:A,...I(r,k)})})});sl.displayName="HeroUI.TableSelectAllCheckbox";var il=sl;function zu(e){let{collection:t,focusMode:l}=e,u=e.UNSAFE_selectionState||Zl(e),o=B.useMemo(()=>e.disabledKeys?new Set(e.disabledKeys):new Set,[e.disabledKeys]),n=u.setFocusedKey;u.setFocusedKey=(m,c)=>{if(l==="cell"&&m!=null){let b=t.getItem(m);if(b?.type==="item"){var d,r;let v=z(b,t);var p,s;c==="last"?m=(p=(d=W(v))===null||d===void 0?void 0:d.key)!==null&&p!==void 0?p:null:m=(s=(r=U(v))===null||r===void 0?void 0:r.key)!==null&&s!==void 0?s:null}}n(m,c)};let i=B.useMemo(()=>new _l(t,u),[t,u]);const a=B.useRef(null);return B.useEffect(()=>{if(u.focusedKey!=null&&a.current&&!t.getItem(u.focusedKey)){const m=a.current.getItem(u.focusedKey),c=m?.parentKey!=null&&(m.type==="cell"||m.type==="rowheader"||m.type==="column")?a.current.getItem(m.parentKey):m;if(!c){u.setFocusedKey(null);return}const d=a.current.rows,r=t.rows,p=d.length-r.length;let s=Math.min(p>1?Math.max(c.index-p+1,0):c.index,r.length-1),b=null;for(;s>=0;){if(!i.isDisabled(r[s].key)&&r[s].type!=="headerrow"){b=r[s];break}sc.index&&(s=c.index),s--)}if(b){const v=b.hasChildNodes?[...z(b,t)]:[],g=b.hasChildNodes&&c!==m&&m&&m.index{let p=this.keyMap.get(r.key);t.visitNode&&(r=t.visitNode(r)),this.keyMap.set(r.key,r);let s=new Set,b=null,v=!1;if(r.type==="item"){var g;for(let f of r.childNodes)if(((g=f.props)===null||g===void 0?void 0:g.colSpan)!==void 0){v=!0;break}}for(let f of r.childNodes){if(f.type==="cell"&&v){var x,D;f.colspan=(x=f.props)===null||x===void 0?void 0:x.colSpan,f.colSpan=(D=f.props)===null||D===void 0?void 0:D.colSpan;var y,$;f.colIndex=b?((y=b.colIndex)!==null&&y!==void 0?y:b.index)+(($=b.colSpan)!==null&&$!==void 0?$:1):f.index}f.type==="cell"&&f.parentKey==null&&(f.parentKey=r.key),s.add(f.key),b?(b.nextKey=f.key,f.prevKey=b.key):f.prevKey=null,l(f),b=f}if(b&&(b.nextKey=null),p)for(let f of p.childNodes)s.has(f.key)||u(f)},u=r=>{this.keyMap.delete(r.key);for(let p of r.childNodes)this.keyMap.get(p.key)===p&&u(p)},o=null;for(let[r,p]of t.items.entries()){var n,i,a,m,c,d;let s={...p,level:(n=p.level)!==null&&n!==void 0?n:0,key:(i=p.key)!==null&&i!==void 0?i:"row-"+r,type:(a=p.type)!==null&&a!==void 0?a:"row",value:(m=p.value)!==null&&m!==void 0?m:null,hasChildNodes:!0,childNodes:[...p.childNodes],rendered:p.rendered,textValue:(c=p.textValue)!==null&&c!==void 0?c:"",index:(d=p.index)!==null&&d!==void 0?d:r};o?(o.nextKey=s.key,s.prevKey=o.key):s.prevKey=null,this.rows.push(s),l(s),o=s}o&&(o.nextKey=null)}}const rl="row-header-column-"+Math.random().toString(36).slice(2);let de="row-header-column-"+Math.random().toString(36).slice(2);for(;rl===de;)de="row-header-column-"+Math.random().toString(36).slice(2);function Pu(e,t){if(t.length===0)return[];let l=[],u=new Map;for(let d of t){let r=d.parentKey,p=[d];for(;r;){let s=e.get(r);if(!s)break;if(u.has(s)){var o,n;(n=(o=s).colSpan)!==null&&n!==void 0||(o.colSpan=0),s.colSpan++,s.colspan=s.colSpan;let{column:b,index:v}=u.get(s);if(v>p.length)break;for(let g=v;gd.length)),a=Array(i).fill(0).map(()=>[]),m=0;for(let d of l){let r=i-1;for(let p of d){if(p){let s=a[r],b=s.reduce((v,g)=>{var x;return v+((x=g.colSpan)!==null&&x!==void 0?x:1)},0);if(b0&&(s[s.length-1].nextKey=v.key,v.prevKey=s[s.length-1].key),s.push(v)}s.length>0&&(s[s.length-1].nextKey=p.key,p.prevKey=s[s.length-1].key),p.level=r,p.colIndex=m,s.push(p)}r--}m++}let c=0;for(let d of a){let r=d.reduce((p,s)=>{var b;return p+((b=s.colSpan)!==null&&b!==void 0?b:1)},0);if(r({type:"headerrow",key:"headerrow-"+r,index:r,value:null,rendered:null,level:0,hasChildNodes:!0,childNodes:d,textValue:""}))}class Ku extends Fu{*[Symbol.iterator](){yield*this.body.childNodes}get size(){return this._size}getKeys(){return this.keyMap.keys()}getKeyBefore(t){let l=this.keyMap.get(t);var u;return(u=l?.prevKey)!==null&&u!==void 0?u:null}getKeyAfter(t){let l=this.keyMap.get(t);var u;return(u=l?.nextKey)!==null&&u!==void 0?u:null}getFirstKey(){var t,l;return(l=(t=U(this.body.childNodes))===null||t===void 0?void 0:t.key)!==null&&l!==void 0?l:null}getLastKey(){var t,l;return(l=(t=W(this.body.childNodes))===null||t===void 0?void 0:t.key)!==null&&l!==void 0?l:null}getItem(t){var l;return(l=this.keyMap.get(t))!==null&&l!==void 0?l:null}at(t){const l=[...this.getKeys()];return this.getItem(l[t])}getChildren(t){return t===this.body.key?this.body.childNodes:super.getChildren(t)}getTextValue(t){let l=this.getItem(t);if(!l)return"";if(l.textValue)return l.textValue;let u=this.rowHeaderColumnKeys;if(u){let o=[];for(let n of l.childNodes){let i=this.columns[n.index];if(u.has(i.key)&&n.textValue&&o.push(n.textValue),o.length===u.size)break}return o.join(" ")}return""}constructor(t,l,u){let o=new Set,n=null,i=[];if(u?.showSelectionCheckboxes){let r={type:"column",key:rl,value:null,textValue:"",level:0,index:u?.showDragButtons?1:0,hasChildNodes:!1,rendered:null,childNodes:[],props:{isSelectionCell:!0}};i.unshift(r)}if(u?.showDragButtons){let r={type:"column",key:de,value:null,textValue:"",level:0,index:0,hasChildNodes:!1,rendered:null,childNodes:[],props:{isDragButtonCell:!0}};i.unshift(r)}let a=[],m=new Map,c=r=>{switch(r.type){case"body":n=r;break;case"column":m.set(r.key,r),r.hasChildNodes||(i.push(r),r.props.isRowHeader&&o.add(r.key));break;case"item":a.push(r);return}for(let p of r.childNodes)c(p)};for(let r of t)c(r);let d=Pu(m,i);if(d.forEach((r,p)=>a.splice(p,0,r)),super({columnCount:i.length,items:a,visitNode:r=>(r.column=i[r.index],r)}),this._size=0,this.columns=i,this.rowHeaderColumnKeys=o,this.body=n,this.headerRows=d,this._size=[...n.childNodes].length,this.rowHeaderColumnKeys.size===0){let r=this.columns.find(p=>{var s,b;return!(!((s=p.props)===null||s===void 0)&&s.isDragButtonCell)&&!(!((b=p.props)===null||b===void 0)&&b.isSelectionCell)});r&&this.rowHeaderColumnKeys.add(r.key)}}}const Iu={ascending:"descending",descending:"ascending"};function ju(e){let[t,l]=B.useState(!1),{selectionMode:u="none",showSelectionCheckboxes:o,showDragButtons:n}=e,i=B.useMemo(()=>({showSelectionCheckboxes:o&&u!=="none",showDragButtons:n,selectionMode:u,columns:[]}),[e.children,o,u,n]),a=ql(e,B.useCallback(r=>new Ku(r,null,i),[i]),i),{disabledKeys:m,selectionManager:c}=zu({...e,collection:a,disabledBehavior:e.disabledBehavior||"selection"});var d;return{collection:a,disabledKeys:m,selectionManager:c,showSelectionCheckboxes:e.showSelectionCheckboxes||!1,sortDescriptor:(d=e.sortDescriptor)!==null&&d!==void 0?d:null,isKeyboardNavigationDisabled:a.size===0||t,setKeyboardNavigationDisabled:l,sort(r,p){var s,b;(b=e.onSortChange)===null||b===void 0||b.call(e,{column:r,direction:p??(((s=e.sortDescriptor)===null||s===void 0?void 0:s.column)===r?Iu[e.sortDescriptor.direction]:"ascending")})}}}function al(e){return null}al.getCollectionNode=function*(t,l){let{children:u,columns:o}=t;if(l.columns=[],typeof u=="function"){if(!o)throw new Error("props.children was a function but props.columns is missing");for(let n of o)yield{type:"column",value:n,renderer:u}}else{let n=[];q.Children.forEach(u,i=>{n.push({type:"column",element:i})}),yield*n}};let Mu=al;function cl(e){return null}cl.getCollectionNode=function*(t){let{children:l,items:u}=t;yield{type:"body",hasChildNodes:!0,props:t,*childNodes(){if(typeof l=="function"){if(!u)throw new Error("props.children was a function but props.items is missing");for(let o of u)yield{type:"item",value:o,renderer:l}}else{let o=[];q.Children.forEach(l,n=>{o.push({type:"item",element:n})}),yield*o}}}};let Tu=cl;function dl(e){return null}dl.getCollectionNode=function*(t,l){let{title:u,children:o,childColumns:n}=t,i=u||o,a=t.textValue||(typeof i=="string"?i:"")||t["aria-label"],m=yield{type:"column",hasChildNodes:!!n||!!u&&q.Children.count(o)>0,rendered:i,textValue:a,props:t,*childNodes(){if(n)for(let d of n)yield{type:"column",value:d};else if(u){let d=[];q.Children.forEach(o,r=>{d.push({type:"column",element:r})}),yield*d}},shouldInvalidate(d){return c(d),!1}},c=d=>{for(let r of m)r.hasChildNodes||d.columns.push(r)};c(l)};let Ru=dl;function me(e){return null}me.getCollectionNode=function*(t,l){let{children:u,textValue:o,UNSTABLE_childItems:n}=t;yield{type:"item",props:t,textValue:o,"aria-label":t["aria-label"],hasChildNodes:!0,*childNodes(){if(l.showDragButtons&&(yield{type:"cell",key:"header-drag",props:{isDragButtonCell:!0}}),l.showSelectionCheckboxes&&l.selectionMode!=="none"&&(yield{type:"cell",key:"header",props:{isSelectionCell:!0}}),typeof u=="function"){for(let i of l.columns)yield{type:"cell",element:u(i.key),key:i.key};if(n)for(let i of n)yield{type:"item",value:i}}else{let i=[],a=[],m=0;if(q.Children.forEach(u,c=>{if(c.type===me){if(i.lengtha.key!==l.columns[m].key)||i.showSelectionCheckboxes!==l.showSelectionCheckboxes||i.showDragButtons!==l.showDragButtons||i.selectionMode!==l.selectionMode}}};let Vu=me;function ml(e){return null}ml.getCollectionNode=function*(t){let{children:l}=t,u=t.textValue||(typeof l=="string"?l:"")||t["aria-label"]||"";yield{type:"cell",props:t,rendered:l,textValue:u,"aria-label":t["aria-label"],hasChildNodes:!1}};let Ou=ml;function pl(e){var t;const l=Jl(),[u,o]=Fe(e,ke.variantKeys),{ref:n,as:i,baseRef:a,children:m,className:c,classNames:d,removeWrapper:r=!1,disableAnimation:p=(t=l?.disableAnimation)!=null?t:!1,isKeyboardNavigationDisabled:s=!1,selectionMode:b="none",topContentPlacement:v="inside",bottomContentPlacement:g="inside",selectionBehavior:x=b==="none"?null:"toggle",disabledBehavior:D="selection",showSelectionCheckboxes:y=b==="multiple"&&x!=="replace",BaseComponent:$="div",checkboxesProps:f,topContent:E,bottomContent:S,sortIcon:A,onRowAction:k,onCellAction:C,...N}=u,j=i||"table",F=typeof j=="string",R=M(n),Q=M(a),G=ju({...e,children:m,showSelectionCheckboxes:y});s&&!G.isKeyboardNavigationDisabled&&G.setKeyboardNavigationDisabled(!0);const{collection:se}=G,{layout:sn,...Fl}=e,{gridProps:$e}=Bu({...Fl},G,R),ee=b!=="none",ye=b==="multiple",H=B.useMemo(()=>ke({...o,isSelectable:ee,isMultiSelectable:ye}),[Pe(o),ee,ye]),xe=K(d?.base,c),Pl=B.useMemo(()=>{var P;return{state:G,slots:H,isSelectable:ee,collection:se,classNames:d,color:e?.color,disableAnimation:p,checkboxesProps:f,isHeaderSticky:(P=e?.isHeaderSticky)!=null?P:!1,selectionMode:b,selectionBehavior:x,disabledBehavior:D,showSelectionCheckboxes:y,onRowAction:k,onCellAction:C}},[H,G,se,ee,d,b,x,f,D,p,y,e?.color,e?.isHeaderSticky,k,C]),Kl=B.useCallback(P=>({...P,ref:Q,className:H.base({class:K(xe,P?.className)})}),[xe,H]),Il=B.useCallback(P=>({...P,ref:Q,className:H.wrapper({class:K(d?.wrapper,P?.className)})}),[d?.wrapper,H]),jl=B.useCallback(P=>({...I($e,O(N,{enabled:F}),P),onKeyDownCapture:void 0,ref:R,className:H.table({class:K(d?.table,P?.className)})}),[d?.table,F,H,$e,N]);return{BaseComponent:$,Component:j,children:m,state:G,collection:se,values:Pl,topContent:E,bottomContent:S,removeWrapper:r,topContentPlacement:v,bottomContentPlacement:g,sortIcon:A,getBaseProps:Kl,getWrapperProps:Il,getTableProps:jl}}var bl=T((e,t)=>{var l,u,o;const{as:n,className:i,node:a,rowKey:m,slots:c,state:d,classNames:r,...p}=e,s=n||"td",b=typeof s=="string",v=M(t),{gridCellProps:g}=ol({node:a},d,v),x=K(r?.td,i,(l=a.props)==null?void 0:l.className),{isFocusVisible:D,focusProps:y}=X(),$=d.selectionManager.isSelected(m),f=B.useMemo(()=>{const S=typeof a.rendered;return S!=="object"&&S!=="function"?h.jsx("span",{children:a.rendered}):a.rendered},[a.rendered]),E=((u=a.column)==null?void 0:u.props)||{};return h.jsx(s,{ref:v,"data-focus-visible":w(D),"data-selected":w($),...I(g,y,O(a.props,{enabled:b}),p),className:(o=c.td)==null?void 0:o.call(c,{align:E.align,class:x}),children:f})});bl.displayName="HeroUI.TableCell";var fl=bl,hl=T((e,t)=>{var l,u;const{as:o,className:n,node:i,rowKey:a,slots:m,state:c,color:d,disableAnimation:r,checkboxesProps:p,selectionMode:s,classNames:b,...v}=e,g=o||"td",x=typeof g=="string",D=M(t),{gridCellProps:y}=ol({node:i},c,D),{isFocusVisible:$,focusProps:f}=X(),{checkboxProps:E}=wu({key:i?.parentKey||i.key},c),S=K(b?.td,n,(l=i.props)==null?void 0:l.className),A=s==="single",{onChange:k,...C}=E,N=c.selectionManager.isSelected(a);return h.jsx(g,{ref:D,"data-focus-visible":w($),"data-selected":w(N),...I(y,f,O(i.props,{enabled:x}),v),className:(u=m.td)==null?void 0:u.call(m,{class:S}),children:A?h.jsx(be,{children:E["aria-label"]}):h.jsx(je,{color:d,disableAnimation:r,onValueChange:k,...I(p,C)})})});hl.displayName="HeroUI.TableCheckboxCell";var vl=hl,gl=T((e,t)=>{var l,u;const{as:o,className:n,children:i,node:a,slots:m,state:c,isSelectable:d,classNames:r,...p}=e,s=o||(e?.href?"a":"tr"),b=typeof s=="string",v=M(t),{rowProps:g}=Eu({node:a},c,v),x=K(r?.tr,n,(l=a.props)==null?void 0:l.className),{isFocusVisible:D,focusProps:y}=X(),$=c.disabledKeys.has(a.key),f=c.selectionManager.isSelected(a.key),{isHovered:E,hoverProps:S}=Ke({isDisabled:$}),{isFirst:A,isLast:k,isMiddle:C,isOdd:N}=B.useMemo(()=>{const j=a.key===c.collection.getFirstKey(),F=a.key===c.collection.getLastKey(),R=!j&&!F,Q=a?.index?(a.index+1)%2===0:!1;return{isFirst:j,isLast:F,isMiddle:R,isOdd:Q}},[a,c.collection]);return h.jsx(s,{ref:v,"data-disabled":w($),"data-first":w(A),"data-focus-visible":w(D),"data-hover":w(E),"data-last":w(k),"data-middle":w(C),"data-odd":w(N),"data-selected":w(f),...I(g,y,d?S:{},O(a.props,{enabled:b}),p),className:(u=m.tr)==null?void 0:u.call(m,{class:x}),children:i})});gl.displayName="HeroUI.TableRow";var $l=gl,yl=T((e,t)=>{var l;const{as:u,className:o,slots:n,state:i,collection:a,isSelectable:m,color:c,disableAnimation:d,checkboxesProps:r,selectionMode:p,classNames:s,rowVirtualizer:b,...v}=e,g=u||"tbody",x=typeof g=="string",D=M(t),{rowGroupProps:y}=ge(),$=K(s?.tbody,o),f=a?.body.props,E=f?.isLoading||f?.loadingState==="loading"||f?.loadingState==="loadingMore",S=[...a.body.childNodes],A=b.getVirtualItems();let k,C;return a.size===0&&f.emptyContent&&(k=h.jsx("tr",{role:"row",children:h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper}),colSpan:a.columnCount,role:"gridcell",children:!E&&f.emptyContent})})),E&&f.loadingContent&&(C=h.jsxs("tr",{role:"row",children:[h.jsx("td",{className:n?.loadingWrapper({class:s?.loadingWrapper}),colSpan:a.columnCount,role:"gridcell",children:f.loadingContent}),!k&&a.size===0?h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper})}):null]})),h.jsxs(g,{ref:D,...I(y,O(f,{enabled:x}),v),className:(l=n.tbody)==null?void 0:l.call(n,{class:$}),"data-empty":w(a.size===0),"data-loading":w(E),children:[A.map((N,j)=>{const F=S[N.index];return F?h.jsx($l,{classNames:s,isSelectable:m,node:F,slots:n,state:i,style:{transform:`translateY(${N.start-j*N.size}px)`,height:`${N.size}px`},children:[...F.childNodes].map(R=>R.props.isSelectionCell?h.jsx(vl,{checkboxesProps:r,classNames:s,color:c,disableAnimation:d,node:R,rowKey:F.key,selectionMode:p,slots:n,state:i},String(R.key)):h.jsx(fl,{classNames:s,node:R,rowKey:F.key,slots:n,state:i},String(R.key)))},String(F.key)):null}),C,k]})});yl.displayName="HeroUI.VirtualizedTableBody";var Hu=yl,xl=T((e,t)=>{var l,u,o,n,i;const{as:a,className:m,state:c,node:d,slots:r,classNames:p,sortIcon:s,...b}=e,v=a||"th",g=typeof v=="string",x=M(t),{columnHeaderProps:D}=nl({node:d},c,x),y=K(p?.th,m,(l=d.props)==null?void 0:l.className),{isFocusVisible:$,focusProps:f}=X(),{isHovered:E,hoverProps:S}=Ke({}),{hideHeader:A,align:k,...C}=d.props,N=C.allowsSorting,j={"aria-hidden":!0,"data-direction":(u=c.sortDescriptor)==null?void 0:u.direction,"data-visible":w(((o=c.sortDescriptor)==null?void 0:o.column)===d.key),className:(n=r.sortIcon)==null?void 0:n.call(r,{class:p?.sortIcon})},F=typeof s=="function"?s(j):B.isValidElement(s)&&B.cloneElement(s,j);return h.jsxs(v,{ref:x,colSpan:d.colspan,"data-focus-visible":w($),"data-hover":w(E),"data-sortable":w(N),...I(D,f,O(C,{enabled:g}),N?S:{},b),className:(i=r.th)==null?void 0:i.call(r,{align:k,class:y}),children:[A?h.jsx(be,{children:d.rendered}):d.rendered,N&&(F||h.jsx(su,{strokeWidth:3,...j}))]})});xl.displayName="HeroUI.TableColumnHeader";var Cl=xl,Dl=T((e,t)=>{var l,u;const{as:o,className:n,children:i,node:a,slots:m,classNames:c,state:d,...r}=e,p=o||"tr",s=typeof p=="string",b=M(t),{rowProps:v}=Su({node:a},d),g=K(c?.tr,n,(l=a.props)==null?void 0:l.className);return h.jsx(p,{ref:b,...I(v,O(a.props,{enabled:s}),r),className:(u=m.tr)==null?void 0:u.call(m,{class:g}),children:i})});Dl.displayName="HeroUI.TableHeaderRow";var Bl=Dl,kl=B.forwardRef((e,t)=>{var l;const{as:u,className:o,children:n,slots:i,classNames:a,...m}=e,c=u||"thead",d=M(t),{rowGroupProps:r}=ge(),p=K(a?.thead,o);return h.jsx(c,{ref:d,className:(l=i.thead)==null?void 0:l.call(i,{class:p}),...I(r,m),children:n})});kl.displayName="HeroUI.TableRowGroup";var El=kl,Lu={px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},Ae=e=>{var t;return(t=Lu[e])!=null?t:e};function Uu(e){const[t,l]=Fe(e,Be.variantKeys),{as:u,className:o,x:n=1,y:i=1,...a}=t,m=u||"span",c=B.useMemo(()=>Be({...l,className:o}),[Pe(l),o]),d=Ae(n),r=Ae(i);return{Component:m,getSpacerProps:(s={})=>({...s,...a,"aria-hidden":w(!0),className:K(c,s.className),style:{...s.style,...a.style,marginLeft:d,marginTop:r}})}}var Sl=T((e,t)=>{const{Component:l,getSpacerProps:u}=Uu({...e});return h.jsx(l,{ref:t,...u()})});Sl.displayName="HeroUI.Spacer";var Al=Sl,wl=T((e,t)=>{const{BaseComponent:l,Component:u,collection:o,values:n,topContent:i,topContentPlacement:a,bottomContentPlacement:m,bottomContent:c,getBaseProps:d,getWrapperProps:r,getTableProps:p}=pl({...e,ref:t}),{rowHeight:s=40,maxTableHeight:b=600}=e,v=B.useCallback(({children:A})=>h.jsx(l,{...r(),ref:D,style:{height:b,display:"block"},children:A}),[r,b]),x=[...o.body.childNodes].length,D=B.useRef(null),[y,$]=B.useState(0),f=B.useRef(null);B.useLayoutEffect(()=>{f.current&&$(f.current.getBoundingClientRect().height)},[f]);const E=iu({count:x,getScrollElement:()=>D.current,estimateSize:()=>s,overscan:5}),S=p();return h.jsxs("div",{...d(),children:[a==="outside"&&i,h.jsx(v,{children:h.jsxs(h.Fragment,{children:[a==="inside"&&i,h.jsxs(u,{...S,style:{height:`calc(${E.getTotalSize()+y}px)`,...S.style},children:[h.jsxs(El,{ref:f,classNames:n.classNames,slots:n.slots,children:[o.headerRows.map(A=>h.jsx(Bl,{classNames:n.classNames,node:A,slots:n.slots,state:n.state,children:[...A.childNodes].map(k=>{var C;return(C=k?.props)!=null&&C.isSelectionCell?h.jsx(il,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,color:n.color,disableAnimation:n.disableAnimation,node:k,selectionMode:n.selectionMode,slots:n.slots,state:n.state},k?.key):h.jsx(Cl,{classNames:n.classNames,node:k,slots:n.slots,state:n.state},k?.key)})},A?.key)),h.jsx(Al,{as:"tr",tabIndex:-1,y:1})]}),h.jsx(Hu,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,collection:n.collection,color:n.color,disableAnimation:n.disableAnimation,isSelectable:n.isSelectable,rowVirtualizer:E,selectionMode:n.selectionMode,slots:n.slots,state:n.state})]}),m==="inside"&&c]})}),m==="outside"&&c]})});wl.displayName="HeroUI.VirtualizedTable";var Wu=wl,Nl=T((e,t)=>{var l;const{as:u,className:o,slots:n,state:i,collection:a,isSelectable:m,color:c,disableAnimation:d,checkboxesProps:r,selectionMode:p,classNames:s,...b}=e,v=u||"tbody",g=typeof v=="string",x=M(t),{rowGroupProps:D}=ge(),y=K(s?.tbody,o),$=a?.body.props,f=$?.isLoading||$?.loadingState==="loading"||$?.loadingState==="loadingMore",E=B.useMemo(()=>[...a.body.childNodes].map(k=>h.jsx($l,{classNames:s,isSelectable:m,node:k,slots:n,state:i,children:[...k.childNodes].map(C=>C.props.isSelectionCell?h.jsx(vl,{checkboxesProps:r,classNames:s,color:c,disableAnimation:d,node:C,rowKey:k.key,selectionMode:p,slots:n,state:i},C.key):h.jsx(fl,{classNames:s,node:C,rowKey:k.key,slots:n,state:i},C.key))},k.key)),[a.body.childNodes,s,m,n,i]);let S,A;return a.size===0&&$.emptyContent&&(S=h.jsx("tr",{role:"row",children:h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper}),colSpan:a.columnCount,role:"gridcell",children:!f&&$.emptyContent})})),f&&$.loadingContent&&(A=h.jsxs("tr",{role:"row",children:[h.jsx("td",{className:n?.loadingWrapper({class:s?.loadingWrapper}),colSpan:a.columnCount,role:"gridcell",children:$.loadingContent}),!S&&a.size===0?h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper})}):null]})),h.jsxs(v,{ref:x,...I(D,O($,{enabled:g}),b),className:(l=n.tbody)==null?void 0:l.call(n,{class:y}),"data-empty":w(a.size===0),"data-loading":w(f),children:[E,A,S]})});Nl.displayName="HeroUI.TableBody";var Gu=Nl,zl=T((e,t)=>{const{BaseComponent:l,Component:u,collection:o,values:n,topContent:i,topContentPlacement:a,bottomContentPlacement:m,bottomContent:c,removeWrapper:d,sortIcon:r,getBaseProps:p,getWrapperProps:s,getTableProps:b}=pl({...e,ref:t}),{isVirtualized:v,rowHeight:g=40,maxTableHeight:x=600}=e,D=v,y=B.useCallback(({children:$})=>d?$:h.jsx(l,{...s(),children:$}),[d,s]);return D?h.jsx(Wu,{...e,ref:t,maxTableHeight:x,rowHeight:g}):h.jsxs("div",{...p(),children:[a==="outside"&&i,h.jsx(y,{children:h.jsxs(h.Fragment,{children:[a==="inside"&&i,h.jsxs(u,{...b(),children:[h.jsxs(El,{classNames:n.classNames,slots:n.slots,children:[o.headerRows.map($=>h.jsx(Bl,{classNames:n.classNames,node:$,slots:n.slots,state:n.state,children:[...$.childNodes].map(f=>{var E;return(E=f?.props)!=null&&E.isSelectionCell?h.jsx(il,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,color:n.color,disableAnimation:n.disableAnimation,node:f,selectionMode:n.selectionMode,slots:n.slots,state:n.state},f?.key):h.jsx(Cl,{classNames:n.classNames,node:f,slots:n.slots,sortIcon:r,state:n.state},f?.key)})},$?.key)),h.jsx(Al,{as:"tr",tabIndex:-1,y:1})]}),h.jsx(Gu,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,collection:n.collection,color:n.color,disableAnimation:n.disableAnimation,isSelectable:n.isSelectable,selectionMode:n.selectionMode,slots:n.slots,state:n.state})]}),m==="inside"&&c]})}),m==="outside"&&c]})});zl.displayName="HeroUI.Table";var Yu=zl,Zu=Ru,_u=Zu,qu=Mu,Ju=qu,Xu=Vu,Qu=Xu,en=Tu,tn=en,ln=Ou,un=ln;const nn={n_requests:"Number Of Requests",estimated_cost:"Estimated Cost ($)"},we=["model","n_requests","prompt_tokens","completion_tokens","total_tokens","estimated_cost"];function on(e){return e.replace(/(-?)(\d*)\.?(\d*)e([+-]\d+)/,function(t,l,u,o,n){return n<0?l+"0."+Array(1-n-u.length).join("0")+o+u:l+u+o+Array(n-o.length+1).join("0")})}function dn({usage:e}){const t=Object.keys(e),{isOpen:l,onOpen:u,onClose:o}=Xl(),n=()=>{o()},i=Object.keys(e[t[0]]),a=[...we.filter(s=>s==="model"||i.includes(s)),...i.filter(s=>!we.includes(s))],m=i.reduce((s,b)=>({...s,[b]:0}),{}),c=t.reduce((s,b)=>(a.reduce((v,g)=>(g==="model"||(v[g]+=e[b][g]),v),s),s),m),d=[...a.map(s=>({key:s,label:nn[s]??De.words(s).map(De.upperFirst).join(" ")}))],r=[...t.map(s=>({model:s,...e[s]})),{model:"Total",...c}],p=h.jsxs("div",{className:"p-2",children:[h.jsxs("div",{className:"flex flex-col gap-2",children:[c.prompt_tokens!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Prompt tokens"}),h.jsx("span",{children:c.prompt_tokens})]}),c.completion_tokens!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Completion tokens"}),h.jsx("span",{children:c.completion_tokens})]}),c.total_tokens!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Total tokens"}),h.jsx("span",{children:c.total_tokens})]}),c.estimated_cost!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Estimated cost"}),h.jsxs("span",{children:[on(c.estimated_cost.toString()),"$"]})]})]}),h.jsx("p",{className:"m-auto mt-2 text-center",children:"Show detailed usage breakdown by model."})]});return h.jsxs(h.Fragment,{children:[h.jsx(Ql,{content:p,placement:"bottom",children:h.jsx(eu,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open usage details",onPress:u,children:h.jsx(tu,{icon:"heroicons:information-circle"})})}),h.jsx(lu,{isOpen:l,onOpenChange:n,size:"4xl",children:h.jsx(uu,{children:h.jsxs(h.Fragment,{children:[h.jsx(ru,{className:"text-default-900 flex flex-col gap-1",children:"Usage details"}),h.jsx(nu,{children:h.jsxs(Yu,{"aria-label":"Table with detailed usage statistics for each model used to generate the message.",fullWidth:!0,children:[h.jsx(Ju,{columns:d,children:s=>h.jsx(_u,{children:s.label},s.key)}),h.jsx(tn,{items:r,children:s=>h.jsx(Qu,{className:s.model==="Total"?"border-default-200 border-t-1":"",children:b=>h.jsx(un,{children:ou(s,b)})},s.model)})]})})]})})})]})}export{dn as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/UsageButton-o644g8HB.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/UsageButton-o644g8HB.js new file mode 100644 index 000000000..3de2214a6 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/UsageButton-o644g8HB.js @@ -0,0 +1 @@ +import{r as B,aX as Ml,aY as ae,t as Ne,k as ie,aK as z,aZ as W,a_ as U,a$ as te,b0 as Tl,aT as _,b1 as Rl,b2 as Vl,A as ze,b3 as ue,b4 as Ol,K as pe,H as Hl,J,M as Ll,b5 as L,af as Ul,b6 as Y,b7 as Z,b8 as le,U as Wl,b9 as Gl,ba as Ce,bb as Yl,l as T,R as M,W as X,Z as K,j as h,v as I,a2 as w,ap as be,au as Fe,a3 as O,w as Zl,y as _l,x as ql,a5 as q,O as Jl,Q as Pe,a0 as Ke,X as Ie,u as Xl,as as De,D as Ql,d as eu,I as tu,m as lu,e as uu,f as nu,bc as ou}from"./index-BTi2GGnV.js";import{b as fe,$ as je}from"./useSelectableItem-Cd2eAf2I.js";import{C as su,u as iu}from"./index-B4da2YBv.js";import{m as ru}from"./chunk-IGSAU2ZA-BGelxbrz.js";function Me(e,t){const l=B.useRef(!0),u=B.useRef(null);B.useEffect(()=>(l.current=!0,()=>{l.current=!1}),[]),B.useEffect(()=>{let o=u.current;l.current?l.current=!1:(!o||t.some((n,i)=>!Object.is(n,o[i])))&&e(),u.current=t},t)}function au(e,t){let l=t?.isDisabled,[u,o]=B.useState(!1);return Ml(()=>{if(e?.current&&!l){let n=()=>{if(e.current){let a=ae(e.current,{tabbable:!0});o(!!a.nextNode())}};n();let i=new MutationObserver(n);return i.observe(e.current,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["tabIndex","disabled"]}),()=>{i.disconnect()}}}),l?!1:u}var Be=Ne({base:"w-px h-px inline-block",variants:{isInline:{true:"inline-block",false:"block"}},defaultVariants:{isInline:!1}}),ke=Ne({slots:{base:"flex flex-col relative gap-4",wrapper:["p-4","z-0","flex","flex-col","relative","justify-between","gap-4","shadow-small","bg-content1","overflow-auto"],table:"min-w-full h-auto",thead:"[&>tr]:first:rounded-lg",tbody:"after:block",tr:["group/tr","outline-hidden",...ie],th:["group/th","px-3","h-10","text-start","align-middle","bg-default-100","whitespace-nowrap","text-foreground-500","text-tiny","font-semibold","first:rounded-s-lg","last:rounded-e-lg","outline-hidden","data-[sortable=true]:cursor-pointer","data-[hover=true]:text-foreground-400",...ie],td:["py-2","px-3","relative","align-middle","whitespace-normal","text-small","font-normal","outline-hidden","[&>*]:z-1","[&>*]:relative",...ie,"before:pointer-events-none","before:content-['']","before:absolute","before:z-0","before:inset-0","before:opacity-0","data-[selected=true]:before:opacity-100","group-data-[disabled=true]/tr:text-foreground-300","group-data-[disabled=true]/tr:cursor-not-allowed"],tfoot:"",sortIcon:["ms-2","mb-px","opacity-0","text-inherit","inline-block","transition-transform-opacity","data-[visible=true]:opacity-100","group-data-[hover=true]/th:opacity-100","data-[direction=ascending]:rotate-180"],emptyWrapper:"text-foreground-400 align-middle text-center h-40",loadingWrapper:"absolute inset-0 flex items-center justify-center"},variants:{color:{default:{td:"before:bg-default/60 data-[selected=true]:text-default-foreground"},primary:{td:"before:bg-primary/20 data-[selected=true]:text-primary"},secondary:{td:"before:bg-secondary/20 data-[selected=true]:text-secondary"},success:{td:"before:bg-success/20 data-[selected=true]:text-success-600 dark:data-[selected=true]:text-success"},warning:{td:"before:bg-warning/20 data-[selected=true]:text-warning-600 dark:data-[selected=true]:text-warning"},danger:{td:"before:bg-danger/20 data-[selected=true]:text-danger dark:data-[selected=true]:text-danger-500"}},layout:{auto:{table:"table-auto"},fixed:{table:"table-fixed"}},shadow:{none:{wrapper:"shadow-none"},sm:{wrapper:"shadow-small"},md:{wrapper:"shadow-medium"},lg:{wrapper:"shadow-large"}},hideHeader:{true:{thead:"hidden"}},isStriped:{true:{td:["group-data-[odd=true]/tr:before:bg-default-100","group-data-[odd=true]/tr:before:opacity-100","group-data-[odd=true]/tr:before:-z-10"]}},isCompact:{true:{td:"py-1"},false:{}},isHeaderSticky:{true:{thead:"sticky top-0 z-20 [&>tr]:first:shadow-small"}},isSelectable:{true:{tr:"cursor-default",td:["group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:bg-default-100","group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:opacity-70"]}},isMultiSelectable:{true:{td:["group-data-[first=true]/tr:first:before:rounded-ss-lg","group-data-[first=true]/tr:last:before:rounded-se-lg","group-data-[middle=true]/tr:before:rounded-none","group-data-[last=true]/tr:first:before:rounded-es-lg","group-data-[last=true]/tr:last:before:rounded-ee-lg"]},false:{td:["first:before:rounded-s-lg","last:before:rounded-e-lg"]}},radius:{none:{wrapper:"rounded-none",th:["first:rounded-s-none","first:before:rounded-s-none","last:rounded-e-none","last:before:rounded-e-none"],td:["first:before:rounded-s-none","last:before:rounded-e-none","group-data-[first=true]/tr:first:before:rounded-ss-none","group-data-[first=true]/tr:last:before:rounded-se-none","group-data-[last=true]/tr:first:before:rounded-es-none","group-data-[last=true]/tr:last:before:rounded-ee-none"]},sm:{wrapper:"rounded-small"},md:{wrapper:"rounded-medium"},lg:{wrapper:"rounded-large"}},fullWidth:{true:{base:"w-full",wrapper:"w-full",table:"w-full"}},align:{start:{th:"text-start",td:"text-start"},center:{th:"text-center",td:"text-center"},end:{th:"text-end",td:"text-end"}}},defaultVariants:{layout:"auto",shadow:"sm",radius:"lg",color:"default",isCompact:!1,hideHeader:!1,isStriped:!1,fullWidth:!0,align:"start"},compoundVariants:[{isStriped:!0,color:"default",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-default/60"}},{isStriped:!0,color:"primary",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-primary/20"}},{isStriped:!0,color:"secondary",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-secondary/20"}},{isStriped:!0,color:"success",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-success/20"}},{isStriped:!0,color:"warning",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-warning/20"}},{isStriped:!0,color:"danger",class:{td:"group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-danger/20"}}]});const he=new WeakMap;function ce(e){return typeof e=="string"?e.replace(/\s*/g,""):""+e}function cu(e,t){let l=he.get(e);if(!l)throw new Error("Unknown grid");return`${l}-${ce(t)}`}function Te(e,t,l){let u=he.get(e);if(!u)throw new Error("Unknown grid");return`${u}-${ce(t)}-${ce(l)}`}function Re(e,t){return[...e.collection.rowHeaderColumnKeys].map(l=>Te(e,t,l)).join(" ")}var Ve={};Ve={ascending:"تصاعدي",ascendingSort:e=>`ترتيب حسب العمود ${e.columnName} بترتيب تصاعدي`,columnSize:e=>`${e.value} بالبكسل`,descending:"تنازلي",descendingSort:e=>`ترتيب حسب العمود ${e.columnName} بترتيب تنازلي`,resizerDescription:"اضغط على مفتاح Enter لبدء تغيير الحجم",select:"تحديد",selectAll:"تحديد الكل",sortable:"عمود قابل للترتيب"};var Oe={};Oe={ascending:"възходящ",ascendingSort:e=>`сортирано по колона ${e.columnName} във възходящ ред`,columnSize:e=>`${e.value} пиксела`,descending:"низходящ",descendingSort:e=>`сортирано по колона ${e.columnName} в низходящ ред`,resizerDescription:"Натиснете „Enter“, за да започнете да преоразмерявате",select:"Изберете",selectAll:"Изберете всичко",sortable:"сортираща колона"};var He={};He={ascending:"vzestupně",ascendingSort:e=>`řazeno vzestupně podle sloupce ${e.columnName}`,columnSize:e=>`${e.value} pixelů`,descending:"sestupně",descendingSort:e=>`řazeno sestupně podle sloupce ${e.columnName}`,resizerDescription:"Stisknutím klávesy Enter začnete měnit velikost",select:"Vybrat",selectAll:"Vybrat vše",sortable:"sloupec s možností řazení"};var Le={};Le={ascending:"stigende",ascendingSort:e=>`sorteret efter kolonne ${e.columnName} i stigende rækkefølge`,columnSize:e=>`${e.value} pixels`,descending:"faldende",descendingSort:e=>`sorteret efter kolonne ${e.columnName} i faldende rækkefølge`,resizerDescription:"Tryk på Enter for at ændre størrelse",select:"Vælg",selectAll:"Vælg alle",sortable:"sorterbar kolonne"};var Ue={};Ue={ascending:"aufsteigend",ascendingSort:e=>`sortiert nach Spalte ${e.columnName} in aufsteigender Reihenfolge`,columnSize:e=>`${e.value} Pixel`,descending:"absteigend",descendingSort:e=>`sortiert nach Spalte ${e.columnName} in absteigender Reihenfolge`,resizerDescription:"Eingabetaste zum Starten der Größenänderung drücken",select:"Auswählen",selectAll:"Alles auswählen",sortable:"sortierbare Spalte"};var We={};We={ascending:"αύξουσα",ascendingSort:e=>`διαλογή ανά στήλη ${e.columnName} σε αύξουσα σειρά`,columnSize:e=>`${e.value} pixel`,descending:"φθίνουσα",descendingSort:e=>`διαλογή ανά στήλη ${e.columnName} σε φθίνουσα σειρά`,resizerDescription:"Πατήστε Enter για έναρξη της αλλαγής μεγέθους",select:"Επιλογή",selectAll:"Επιλογή όλων",sortable:"Στήλη διαλογής"};var Ge={};Ge={select:"Select",selectAll:"Select All",sortable:"sortable column",ascending:"ascending",descending:"descending",ascendingSort:e=>`sorted by column ${e.columnName} in ascending order`,descendingSort:e=>`sorted by column ${e.columnName} in descending order`,columnSize:e=>`${e.value} pixels`,resizerDescription:"Press Enter to start resizing"};var Ye={};Ye={ascending:"ascendente",ascendingSort:e=>`ordenado por columna ${e.columnName} en sentido ascendente`,columnSize:e=>`${e.value} píxeles`,descending:"descendente",descendingSort:e=>`ordenado por columna ${e.columnName} en orden descendente`,resizerDescription:"Pulse Intro para empezar a redimensionar",select:"Seleccionar",selectAll:"Seleccionar todos",sortable:"columna ordenable"};var Ze={};Ze={ascending:"tõusev järjestus",ascendingSort:e=>`sorditud veeru järgi ${e.columnName} tõusvas järjestuses`,columnSize:e=>`${e.value} pikslit`,descending:"laskuv järjestus",descendingSort:e=>`sorditud veeru järgi ${e.columnName} laskuvas järjestuses`,resizerDescription:"Suuruse muutmise alustamiseks vajutage klahvi Enter",select:"Vali",selectAll:"Vali kõik",sortable:"sorditav veerg"};var _e={};_e={ascending:"nouseva",ascendingSort:e=>`lajiteltu sarakkeen ${e.columnName} mukaan nousevassa järjestyksessä`,columnSize:e=>`${e.value} pikseliä`,descending:"laskeva",descendingSort:e=>`lajiteltu sarakkeen ${e.columnName} mukaan laskevassa järjestyksessä`,resizerDescription:"Aloita koon muutos painamalla Enter-näppäintä",select:"Valitse",selectAll:"Valitse kaikki",sortable:"lajiteltava sarake"};var qe={};qe={ascending:"croissant",ascendingSort:e=>`trié en fonction de la colonne ${e.columnName} par ordre croissant`,columnSize:e=>`${e.value} pixels`,descending:"décroissant",descendingSort:e=>`trié en fonction de la colonne ${e.columnName} par ordre décroissant`,resizerDescription:"Appuyez sur Entrée pour commencer le redimensionnement.",select:"Sélectionner",selectAll:"Sélectionner tout",sortable:"colonne triable"};var Je={};Je={ascending:"עולה",ascendingSort:e=>`מוין לפי עמודה ${e.columnName} בסדר עולה`,columnSize:e=>`${e.value} פיקסלים`,descending:"יורד",descendingSort:e=>`מוין לפי עמודה ${e.columnName} בסדר יורד`,resizerDescription:"הקש Enter כדי לשנות את הגודל",select:"בחר",selectAll:"בחר הכול",sortable:"עמודה שניתן למיין"};var Xe={};Xe={ascending:"rastući",ascendingSort:e=>`razvrstano po stupcima ${e.columnName} rastućem redoslijedom`,columnSize:e=>`${e.value} piksela`,descending:"padajući",descendingSort:e=>`razvrstano po stupcima ${e.columnName} padajućim redoslijedom`,resizerDescription:"Pritisnite Enter da biste započeli promenu veličine",select:"Odaberite",selectAll:"Odaberite sve",sortable:"stupac koji se može razvrstati"};var Qe={};Qe={ascending:"növekvő",ascendingSort:e=>`rendezve a(z) ${e.columnName} oszlop szerint, növekvő sorrendben`,columnSize:e=>`${e.value} képpont`,descending:"csökkenő",descendingSort:e=>`rendezve a(z) ${e.columnName} oszlop szerint, csökkenő sorrendben`,resizerDescription:"Nyomja le az Enter billentyűt az átméretezés megkezdéséhez",select:"Kijelölés",selectAll:"Összes kijelölése",sortable:"rendezendő oszlop"};var et={};et={ascending:"crescente",ascendingSort:e=>`in ordine crescente in base alla colonna ${e.columnName}`,columnSize:e=>`${e.value} pixel`,descending:"decrescente",descendingSort:e=>`in ordine decrescente in base alla colonna ${e.columnName}`,resizerDescription:"Premi Invio per iniziare a ridimensionare",select:"Seleziona",selectAll:"Seleziona tutto",sortable:"colonna ordinabile"};var tt={};tt={ascending:"昇順",ascendingSort:e=>`列 ${e.columnName} を昇順で並べ替え`,columnSize:e=>`${e.value} ピクセル`,descending:"降順",descendingSort:e=>`列 ${e.columnName} を降順で並べ替え`,resizerDescription:"Enter キーを押してサイズ変更を開始",select:"選択",selectAll:"すべて選択",sortable:"並べ替え可能な列"};var lt={};lt={ascending:"오름차순",ascendingSort:e=>`${e.columnName} 열을 기준으로 오름차순으로 정렬됨`,columnSize:e=>`${e.value} 픽셀`,descending:"내림차순",descendingSort:e=>`${e.columnName} 열을 기준으로 내림차순으로 정렬됨`,resizerDescription:"크기 조정을 시작하려면 Enter를 누르세요.",select:"선택",selectAll:"모두 선택",sortable:"정렬 가능한 열"};var ut={};ut={ascending:"didėjančia tvarka",ascendingSort:e=>`surikiuota pagal stulpelį ${e.columnName} didėjančia tvarka`,columnSize:e=>`${e.value} piks.`,descending:"mažėjančia tvarka",descendingSort:e=>`surikiuota pagal stulpelį ${e.columnName} mažėjančia tvarka`,resizerDescription:"Paspauskite „Enter“, kad pradėtumėte keisti dydį",select:"Pasirinkti",selectAll:"Pasirinkti viską",sortable:"rikiuojamas stulpelis"};var nt={};nt={ascending:"augošā secībā",ascendingSort:e=>`kārtots pēc kolonnas ${e.columnName} augošā secībā`,columnSize:e=>`${e.value} pikseļi`,descending:"dilstošā secībā",descendingSort:e=>`kārtots pēc kolonnas ${e.columnName} dilstošā secībā`,resizerDescription:"Nospiediet Enter, lai sāktu izmēru mainīšanu",select:"Atlasīt",selectAll:"Atlasīt visu",sortable:"kārtojamā kolonna"};var ot={};ot={ascending:"stigende",ascendingSort:e=>`sortert etter kolonne ${e.columnName} i stigende rekkefølge`,columnSize:e=>`${e.value} piksler`,descending:"synkende",descendingSort:e=>`sortert etter kolonne ${e.columnName} i synkende rekkefølge`,resizerDescription:"Trykk på Enter for å starte størrelsesendring",select:"Velg",selectAll:"Velg alle",sortable:"kolonne som kan sorteres"};var st={};st={ascending:"oplopend",ascendingSort:e=>`gesorteerd in oplopende volgorde in kolom ${e.columnName}`,columnSize:e=>`${e.value} pixels`,descending:"aflopend",descendingSort:e=>`gesorteerd in aflopende volgorde in kolom ${e.columnName}`,resizerDescription:"Druk op Enter om het formaat te wijzigen",select:"Selecteren",selectAll:"Alles selecteren",sortable:"sorteerbare kolom"};var it={};it={ascending:"rosnąco",ascendingSort:e=>`posortowano według kolumny ${e.columnName} w porządku rosnącym`,columnSize:e=>`Liczba pikseli: ${e.value}`,descending:"malejąco",descendingSort:e=>`posortowano według kolumny ${e.columnName} w porządku malejącym`,resizerDescription:"Naciśnij Enter, aby rozpocząć zmienianie rozmiaru",select:"Zaznacz",selectAll:"Zaznacz wszystko",sortable:"kolumna z możliwością sortowania"};var rt={};rt={ascending:"crescente",ascendingSort:e=>`classificado pela coluna ${e.columnName} em ordem crescente`,columnSize:e=>`${e.value} pixels`,descending:"decrescente",descendingSort:e=>`classificado pela coluna ${e.columnName} em ordem decrescente`,resizerDescription:"Pressione Enter para começar a redimensionar",select:"Selecionar",selectAll:"Selecionar tudo",sortable:"coluna classificável"};var at={};at={ascending:"ascendente",ascendingSort:e=>`Ordenar por coluna ${e.columnName} em ordem ascendente`,columnSize:e=>`${e.value} pixels`,descending:"descendente",descendingSort:e=>`Ordenar por coluna ${e.columnName} em ordem descendente`,resizerDescription:"Prima Enter para iniciar o redimensionamento",select:"Selecionar",selectAll:"Selecionar tudo",sortable:"Coluna ordenável"};var ct={};ct={ascending:"crescătoare",ascendingSort:e=>`sortate după coloana ${e.columnName} în ordine crescătoare`,columnSize:e=>`${e.value} pixeli`,descending:"descrescătoare",descendingSort:e=>`sortate după coloana ${e.columnName} în ordine descrescătoare`,resizerDescription:"Apăsați pe Enter pentru a începe redimensionarea",select:"Selectare",selectAll:"Selectare totală",sortable:"coloană sortabilă"};var dt={};dt={ascending:"возрастание",ascendingSort:e=>`сортировать столбец ${e.columnName} в порядке возрастания`,columnSize:e=>`${e.value} пикс.`,descending:"убывание",descendingSort:e=>`сортировать столбец ${e.columnName} в порядке убывания`,resizerDescription:"Нажмите клавишу Enter для начала изменения размеров",select:"Выбрать",selectAll:"Выбрать все",sortable:"сортируемый столбец"};var mt={};mt={ascending:"vzostupne",ascendingSort:e=>`zoradené zostupne podľa stĺpca ${e.columnName}`,columnSize:e=>`Počet pixelov: ${e.value}`,descending:"zostupne",descendingSort:e=>`zoradené zostupne podľa stĺpca ${e.columnName}`,resizerDescription:"Stlačením klávesu Enter začnete zmenu veľkosti",select:"Vybrať",selectAll:"Vybrať všetko",sortable:"zoraditeľný stĺpec"};var pt={};pt={ascending:"naraščajoče",ascendingSort:e=>`razvrščeno po stolpcu ${e.columnName} v naraščajočem vrstnem redu`,columnSize:e=>`${e.value} slikovnih pik`,descending:"padajoče",descendingSort:e=>`razvrščeno po stolpcu ${e.columnName} v padajočem vrstnem redu`,resizerDescription:"Pritisnite tipko Enter da začnete spreminjati velikost",select:"Izberite",selectAll:"Izberite vse",sortable:"razvrstljivi stolpec"};var bt={};bt={ascending:"rastući",ascendingSort:e=>`sortirano po kolonama ${e.columnName} rastućim redosledom`,columnSize:e=>`${e.value} piksela`,descending:"padajući",descendingSort:e=>`sortirano po kolonama ${e.columnName} padajućim redosledom`,resizerDescription:"Pritisnite Enter da biste započeli promenu veličine",select:"Izaberite",selectAll:"Izaberite sve",sortable:"kolona koja se može sortirati"};var ft={};ft={ascending:"stigande",ascendingSort:e=>`sorterat på kolumn ${e.columnName} i stigande ordning`,columnSize:e=>`${e.value} pixlar`,descending:"fallande",descendingSort:e=>`sorterat på kolumn ${e.columnName} i fallande ordning`,resizerDescription:"Tryck på Retur för att börja ändra storlek",select:"Markera",selectAll:"Markera allt",sortable:"sorterbar kolumn"};var ht={};ht={ascending:"artan sırada",ascendingSort:e=>`${e.columnName} sütuna göre artan düzende sırala`,columnSize:e=>`${e.value} piksel`,descending:"azalan sırada",descendingSort:e=>`${e.columnName} sütuna göre azalan düzende sırala`,resizerDescription:"Yeniden boyutlandırmak için Enter'a basın",select:"Seç",selectAll:"Tümünü Seç",sortable:"Sıralanabilir sütun"};var vt={};vt={ascending:"висхідний",ascendingSort:e=>`відсортовано за стовпцем ${e.columnName} у висхідному порядку`,columnSize:e=>`${e.value} пікс.`,descending:"низхідний",descendingSort:e=>`відсортовано за стовпцем ${e.columnName} у низхідному порядку`,resizerDescription:"Натисніть Enter, щоб почати зміну розміру",select:"Вибрати",selectAll:"Вибрати все",sortable:"сортувальний стовпець"};var gt={};gt={ascending:"升序",ascendingSort:e=>`按列 ${e.columnName} 升序排序`,columnSize:e=>`${e.value} 像素`,descending:"降序",descendingSort:e=>`按列 ${e.columnName} 降序排序`,resizerDescription:"按“输入”键开始调整大小。",select:"选择",selectAll:"全选",sortable:"可排序的列"};var $t={};$t={ascending:"遞增",ascendingSort:e=>`已依據「${e.columnName}」欄遞增排序`,columnSize:e=>`${e.value} 像素`,descending:"遞減",descendingSort:e=>`已依據「${e.columnName}」欄遞減排序`,resizerDescription:"按 Enter 鍵以開始調整大小",select:"選取",selectAll:"全選",sortable:"可排序的欄"};var ne={};ne={"ar-AE":Ve,"bg-BG":Oe,"cs-CZ":He,"da-DK":Le,"de-DE":Ue,"el-GR":We,"en-US":Ge,"es-ES":Ye,"et-EE":Ze,"fi-FI":_e,"fr-FR":qe,"he-IL":Je,"hr-HR":Xe,"hu-HU":Qe,"it-IT":et,"ja-JP":tt,"ko-KR":lt,"lt-LT":ut,"lv-LV":nt,"nb-NO":ot,"nl-NL":st,"pl-PL":it,"pt-BR":rt,"pt-PT":at,"ro-RO":ct,"ru-RU":dt,"sk-SK":mt,"sl-SI":pt,"sr-SP":bt,"sv-SE":ft,"tr-TR":ht,"uk-UA":vt,"zh-CN":gt,"zh-TW":$t};class yt{isCell(t){return t.type==="cell"}isRow(t){return t.type==="row"||t.type==="item"}isDisabled(t){var l;return this.disabledBehavior==="all"&&(((l=t.props)===null||l===void 0?void 0:l.isDisabled)||this.disabledKeys.has(t.key))}findPreviousKey(t,l){let u=t!=null?this.collection.getKeyBefore(t):this.collection.getLastKey();for(;u!=null;){let o=this.collection.getItem(u);if(!o)return null;if(!this.isDisabled(o)&&(!l||l(o)))return u;u=this.collection.getKeyBefore(u)}return null}findNextKey(t,l){let u=t!=null?this.collection.getKeyAfter(t):this.collection.getFirstKey();for(;u!=null;){let o=this.collection.getItem(u);if(!o)return null;if(!this.isDisabled(o)&&(!l||l(o)))return u;if(u=this.collection.getKeyAfter(u),u==null)return null}return null}getKeyForItemInRowByIndex(t,l=0){if(l<0)return null;let u=this.collection.getItem(t);if(!u)return null;let o=0;for(let a of z(u,this.collection)){var n;if(a.colSpan&&a.colSpan+o>l)return(n=a.key)!==null&&n!==void 0?n:null;a.colSpan&&(o=o+a.colSpan-1);var i;if(o===l)return(i=a.key)!==null&&i!==void 0?i:null;o++}return null}getKeyBelow(t){let l=t,u=this.collection.getItem(l);if(!u)return null;var o;if(this.isCell(u)&&(l=(o=u.parentKey)!==null&&o!==void 0?o:null),l==null)return null;if(l=this.findNextKey(l,n=>n.type==="item"),l!=null){if(this.isCell(u)){let n=u.colIndex?u.colIndex:u.index;return this.getKeyForItemInRowByIndex(l,n)}if(this.focusMode==="row")return l}return null}getKeyAbove(t){let l=t,u=this.collection.getItem(l);if(!u)return null;var o;if(this.isCell(u)&&(l=(o=u.parentKey)!==null&&o!==void 0?o:null),l==null)return null;if(l=this.findPreviousKey(l,n=>n.type==="item"),l!=null){if(this.isCell(u)){let n=u.colIndex?u.colIndex:u.index;return this.getKeyForItemInRowByIndex(l,n)}if(this.focusMode==="row")return l}return null}getKeyRightOf(t){let l=this.collection.getItem(t);if(!l)return null;if(this.isRow(l)){var u,o;let d=z(l,this.collection);var n;return(n=this.direction==="rtl"?(u=W(d))===null||u===void 0?void 0:u.key:(o=U(d))===null||o===void 0?void 0:o.key)!==null&&n!==void 0?n:null}if(this.isCell(l)&&l.parentKey!=null){let d=this.collection.getItem(l.parentKey);if(!d)return null;let r=z(d,this.collection);var i;let p=(i=this.direction==="rtl"?te(r,l.index-1):te(r,l.index+1))!==null&&i!==void 0?i:null;var a;if(p)return(a=p.key)!==null&&a!==void 0?a:null;var m;if(this.focusMode==="row")return(m=l.parentKey)!==null&&m!==void 0?m:null;var c;return(c=this.direction==="rtl"?this.getFirstKey(t):this.getLastKey(t))!==null&&c!==void 0?c:null}return null}getKeyLeftOf(t){let l=this.collection.getItem(t);if(!l)return null;if(this.isRow(l)){var u,o;let d=z(l,this.collection);var n;return(n=this.direction==="rtl"?(u=U(d))===null||u===void 0?void 0:u.key:(o=W(d))===null||o===void 0?void 0:o.key)!==null&&n!==void 0?n:null}if(this.isCell(l)&&l.parentKey!=null){let d=this.collection.getItem(l.parentKey);if(!d)return null;let r=z(d,this.collection);var i;let p=(i=this.direction==="rtl"?te(r,l.index+1):te(r,l.index-1))!==null&&i!==void 0?i:null;var a;if(p)return(a=p.key)!==null&&a!==void 0?a:null;var m;if(this.focusMode==="row")return(m=l.parentKey)!==null&&m!==void 0?m:null;var c;return(c=this.direction==="rtl"?this.getLastKey(t):this.getFirstKey(t))!==null&&c!==void 0?c:null}return null}getFirstKey(t,l){let u=t??null,o;if(u!=null){if(o=this.collection.getItem(u),!o)return null;if(this.isCell(o)&&!l&&o.parentKey!=null){var n;let c=this.collection.getItem(o.parentKey);if(!c)return null;var i;return(i=(n=U(z(c,this.collection)))===null||n===void 0?void 0:n.key)!==null&&i!==void 0?i:null}}if(u=this.findNextKey(void 0,c=>c.type==="item"),u!=null&&(o&&this.isCell(o)&&l||this.focusMode==="cell")){var a;let c=this.collection.getItem(u);if(!c)return null;var m;u=(m=(a=U(z(c,this.collection)))===null||a===void 0?void 0:a.key)!==null&&m!==void 0?m:null}return u}getLastKey(t,l){let u=t??null,o;if(u!=null){if(o=this.collection.getItem(u),!o)return null;if(this.isCell(o)&&!l&&o.parentKey!=null){var n;let c=this.collection.getItem(o.parentKey);if(!c)return null;let d=z(c,this.collection);var i;return(i=(n=W(d))===null||n===void 0?void 0:n.key)!==null&&i!==void 0?i:null}}if(u=this.findPreviousKey(void 0,c=>c.type==="item"),u!=null&&(o&&this.isCell(o)&&l||this.focusMode==="cell")){var a;let c=this.collection.getItem(u);if(!c)return null;let d=z(c,this.collection);var m;u=(m=(a=W(d))===null||a===void 0?void 0:a.key)!==null&&m!==void 0?m:null}return u}getKeyPageAbove(t){let l=t,u=this.layoutDelegate.getItemRect(l);if(!u)return null;let o=Math.max(0,u.y+u.height-this.layoutDelegate.getVisibleRect().height);for(;u&&u.y>o&&l!=null;){var n;if(l=(n=this.getKeyAbove(l))!==null&&n!==void 0?n:null,l==null)break;u=this.layoutDelegate.getItemRect(l)}return l}getKeyPageBelow(t){let l=t,u=this.layoutDelegate.getItemRect(l);if(!u)return null;let o=this.layoutDelegate.getVisibleRect().height,n=Math.min(this.layoutDelegate.getContentSize().height,u.y+o);for(;u&&u.y+u.heightr.type==="item"),u==null&&!a&&(u=this.getFirstKey(),a=!0)}return null}constructor(t){if(this.collection=t.collection,this.disabledKeys=t.disabledKeys,this.disabledBehavior=t.disabledBehavior||"all",this.direction=t.direction,this.collator=t.collator,!t.layout&&!t.ref)throw new Error("Either a layout or a ref must be specified.");this.layoutDelegate=t.layoutDelegate||(t.layout?new du(t.layout):new Tl(t.ref)),this.focusMode=t.focusMode||"row"}}class du{getContentSize(){return this.layout.getContentSize()}getItemRect(t){var l;return((l=this.layout.getLayoutInfo(t))===null||l===void 0?void 0:l.rect)||null}getVisibleRect(){return this.layout.virtualizer.visibleRect}constructor(t){this.layout=t}}const ve=new WeakMap;var xt={};xt={deselectedItem:e=>`${e.item} غير المحدد`,longPressToSelect:"اضغط مطولًا للدخول إلى وضع التحديد.",select:"تحديد",selectedAll:"جميع العناصر المحددة.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"لم يتم تحديد عناصر",one:()=>`${t.number(e.count)} عنصر محدد`,other:()=>`${t.number(e.count)} عنصر محدد`})}.`,selectedItem:e=>`${e.item} المحدد`};var Ct={};Ct={deselectedItem:e=>`${e.item} не е избран.`,longPressToSelect:"Натиснете и задръжте за да влезете в избирателен режим.",select:"Изберете",selectedAll:"Всички елементи са избрани.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Няма избрани елементи",one:()=>`${t.number(e.count)} избран елемент`,other:()=>`${t.number(e.count)} избрани елементи`})}.`,selectedItem:e=>`${e.item} избран.`};var Dt={};Dt={deselectedItem:e=>`Položka ${e.item} není vybrána.`,longPressToSelect:"Dlouhým stisknutím přejdete do režimu výběru.",select:"Vybrat",selectedAll:"Vybrány všechny položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nevybrány žádné položky",one:()=>`Vybrána ${t.number(e.count)} položka`,other:()=>`Vybráno ${t.number(e.count)} položek`})}.`,selectedItem:e=>`Vybrána položka ${e.item}.`};var Bt={};Bt={deselectedItem:e=>`${e.item} ikke valgt.`,longPressToSelect:"Lav et langt tryk for at aktivere valgtilstand.",select:"Vælg",selectedAll:"Alle elementer valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer valgt",one:()=>`${t.number(e.count)} element valgt`,other:()=>`${t.number(e.count)} elementer valgt`})}.`,selectedItem:e=>`${e.item} valgt.`};var kt={};kt={deselectedItem:e=>`${e.item} nicht ausgewählt.`,longPressToSelect:"Gedrückt halten, um Auswahlmodus zu öffnen.",select:"Auswählen",selectedAll:"Alle Elemente ausgewählt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Keine Elemente ausgewählt",one:()=>`${t.number(e.count)} Element ausgewählt`,other:()=>`${t.number(e.count)} Elemente ausgewählt`})}.`,selectedItem:e=>`${e.item} ausgewählt.`};var Et={};Et={deselectedItem:e=>`Δεν επιλέχθηκε το στοιχείο ${e.item}.`,longPressToSelect:"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.",select:"Επιλογή",selectedAll:"Επιλέχθηκαν όλα τα στοιχεία.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Δεν επιλέχθηκαν στοιχεία",one:()=>`Επιλέχθηκε ${t.number(e.count)} στοιχείο`,other:()=>`Επιλέχθηκαν ${t.number(e.count)} στοιχεία`})}.`,selectedItem:e=>`Επιλέχθηκε το στοιχείο ${e.item}.`};var St={};St={deselectedItem:e=>`${e.item} not selected.`,select:"Select",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"No items selected",one:()=>`${t.number(e.count)} item selected`,other:()=>`${t.number(e.count)} items selected`})}.`,selectedAll:"All items selected.",selectedItem:e=>`${e.item} selected.`,longPressToSelect:"Long press to enter selection mode."};var At={};At={deselectedItem:e=>`${e.item} no seleccionado.`,longPressToSelect:"Mantenga pulsado para abrir el modo de selección.",select:"Seleccionar",selectedAll:"Todos los elementos seleccionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ningún elemento seleccionado",one:()=>`${t.number(e.count)} elemento seleccionado`,other:()=>`${t.number(e.count)} elementos seleccionados`})}.`,selectedItem:e=>`${e.item} seleccionado.`};var wt={};wt={deselectedItem:e=>`${e.item} pole valitud.`,longPressToSelect:"Valikurežiimi sisenemiseks vajutage pikalt.",select:"Vali",selectedAll:"Kõik üksused valitud.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Üksusi pole valitud",one:()=>`${t.number(e.count)} üksus valitud`,other:()=>`${t.number(e.count)} üksust valitud`})}.`,selectedItem:e=>`${e.item} valitud.`};var Nt={};Nt={deselectedItem:e=>`Kohdetta ${e.item} ei valittu.`,longPressToSelect:"Siirry valintatilaan painamalla pitkään.",select:"Valitse",selectedAll:"Kaikki kohteet valittu.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ei yhtään kohdetta valittu",one:()=>`${t.number(e.count)} kohde valittu`,other:()=>`${t.number(e.count)} kohdetta valittu`})}.`,selectedItem:e=>`${e.item} valittu.`};var zt={};zt={deselectedItem:e=>`${e.item} non sélectionné.`,longPressToSelect:"Appuyez de manière prolongée pour passer en mode de sélection.",select:"Sélectionner",selectedAll:"Tous les éléments sélectionnés.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Aucun élément sélectionné",one:()=>`${t.number(e.count)} élément sélectionné`,other:()=>`${t.number(e.count)} éléments sélectionnés`})}.`,selectedItem:e=>`${e.item} sélectionné.`};var Ft={};Ft={deselectedItem:e=>`${e.item} לא נבחר.`,longPressToSelect:"הקשה ארוכה לכניסה למצב בחירה.",select:"בחר",selectedAll:"כל הפריטים נבחרו.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"לא נבחרו פריטים",one:()=>`פריט ${t.number(e.count)} נבחר`,other:()=>`${t.number(e.count)} פריטים נבחרו`})}.`,selectedItem:e=>`${e.item} נבחר.`};var Pt={};Pt={deselectedItem:e=>`Stavka ${e.item} nije odabrana.`,longPressToSelect:"Dugo pritisnite za ulazak u način odabira.",select:"Odaberite",selectedAll:"Odabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije odabrana nijedna stavka",one:()=>`Odabrana je ${t.number(e.count)} stavka`,other:()=>`Odabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`Stavka ${e.item} je odabrana.`};var Kt={};Kt={deselectedItem:e=>`${e.item} nincs kijelölve.`,longPressToSelect:"Nyomja hosszan a kijelöléshez.",select:"Kijelölés",selectedAll:"Az összes elem kijelölve.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Egy elem sincs kijelölve",one:()=>`${t.number(e.count)} elem kijelölve`,other:()=>`${t.number(e.count)} elem kijelölve`})}.`,selectedItem:e=>`${e.item} kijelölve.`};var It={};It={deselectedItem:e=>`${e.item} non selezionato.`,longPressToSelect:"Premi a lungo per passare alla modalità di selezione.",select:"Seleziona",selectedAll:"Tutti gli elementi selezionati.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nessun elemento selezionato",one:()=>`${t.number(e.count)} elemento selezionato`,other:()=>`${t.number(e.count)} elementi selezionati`})}.`,selectedItem:e=>`${e.item} selezionato.`};var jt={};jt={deselectedItem:e=>`${e.item} が選択されていません。`,longPressToSelect:"長押しして選択モードを開きます。",select:"選択",selectedAll:"すべての項目を選択しました。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"項目が選択されていません",one:()=>`${t.number(e.count)} 項目を選択しました`,other:()=>`${t.number(e.count)} 項目を選択しました`})}。`,selectedItem:e=>`${e.item} を選択しました。`};var Mt={};Mt={deselectedItem:e=>`${e.item}이(가) 선택되지 않았습니다.`,longPressToSelect:"선택 모드로 들어가려면 길게 누르십시오.",select:"선택",selectedAll:"모든 항목이 선택되었습니다.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"선택된 항목이 없습니다",one:()=>`${t.number(e.count)}개 항목이 선택되었습니다`,other:()=>`${t.number(e.count)}개 항목이 선택되었습니다`})}.`,selectedItem:e=>`${e.item}이(가) 선택되었습니다.`};var Tt={};Tt={deselectedItem:e=>`${e.item} nepasirinkta.`,longPressToSelect:"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.",select:"Pasirinkti",selectedAll:"Pasirinkti visi elementai.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nepasirinktas nė vienas elementas",one:()=>`Pasirinktas ${t.number(e.count)} elementas`,other:()=>`Pasirinkta elementų: ${t.number(e.count)}`})}.`,selectedItem:e=>`Pasirinkta: ${e.item}.`};var Rt={};Rt={deselectedItem:e=>`Vienums ${e.item} nav atlasīts.`,longPressToSelect:"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.",select:"Atlasīt",selectedAll:"Atlasīti visi vienumi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nav atlasīts neviens vienums",one:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`,other:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`})}.`,selectedItem:e=>`Atlasīts vienums ${e.item}.`};var Vt={};Vt={deselectedItem:e=>`${e.item} er ikke valgt.`,longPressToSelect:"Bruk et langt trykk for å gå inn i valgmodus.",select:"Velg",selectedAll:"Alle elementer er valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer er valgt",one:()=>`${t.number(e.count)} element er valgt`,other:()=>`${t.number(e.count)} elementer er valgt`})}.`,selectedItem:e=>`${e.item} er valgt.`};var Ot={};Ot={deselectedItem:e=>`${e.item} niet geselecteerd.`,longPressToSelect:"Druk lang om de selectiemodus te openen.",select:"Selecteren",selectedAll:"Alle items geselecteerd.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Geen items geselecteerd",one:()=>`${t.number(e.count)} item geselecteerd`,other:()=>`${t.number(e.count)} items geselecteerd`})}.`,selectedItem:e=>`${e.item} geselecteerd.`};var Ht={};Ht={deselectedItem:e=>`Nie zaznaczono ${e.item}.`,longPressToSelect:"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.",select:"Zaznacz",selectedAll:"Wszystkie zaznaczone elementy.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nie zaznaczono żadnych elementów",one:()=>`${t.number(e.count)} zaznaczony element`,other:()=>`${t.number(e.count)} zaznaczonych elementów`})}.`,selectedItem:e=>`Zaznaczono ${e.item}.`};var Lt={};Lt={deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Mantenha pressionado para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`};var Ut={};Ut={deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Prima continuamente para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`};var Wt={};Wt={deselectedItem:e=>`${e.item} neselectat.`,longPressToSelect:"Apăsați lung pentru a intra în modul de selectare.",select:"Selectare",selectedAll:"Toate elementele selectate.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Niciun element selectat",one:()=>`${t.number(e.count)} element selectat`,other:()=>`${t.number(e.count)} elemente selectate`})}.`,selectedItem:e=>`${e.item} selectat.`};var Gt={};Gt={deselectedItem:e=>`${e.item} не выбрано.`,longPressToSelect:"Нажмите и удерживайте для входа в режим выбора.",select:"Выбрать",selectedAll:"Выбраны все элементы.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Нет выбранных элементов",one:()=>`${t.number(e.count)} элемент выбран`,other:()=>`${t.number(e.count)} элементов выбрано`})}.`,selectedItem:e=>`${e.item} выбрано.`};var Yt={};Yt={deselectedItem:e=>`Nevybraté položky: ${e.item}.`,longPressToSelect:"Dlhším stlačením prejdite do režimu výberu.",select:"Vybrať",selectedAll:"Všetky vybraté položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Žiadne vybraté položky",one:()=>`${t.number(e.count)} vybratá položka`,other:()=>`Počet vybratých položiek:${t.number(e.count)}`})}.`,selectedItem:e=>`Vybraté položky: ${e.item}.`};var Zt={};Zt={deselectedItem:e=>`Element ${e.item} ni izbran.`,longPressToSelect:"Za izbirni način pritisnite in dlje časa držite.",select:"Izberite",selectedAll:"Vsi elementi so izbrani.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Noben element ni izbran",one:()=>`${t.number(e.count)} element je izbran`,other:()=>`${t.number(e.count)} elementov je izbranih`})}.`,selectedItem:e=>`Element ${e.item} je izbran.`};var _t={};_t={deselectedItem:e=>`${e.item} nije izabrano.`,longPressToSelect:"Dugo pritisnite za ulazak u režim biranja.",select:"Izaberite",selectedAll:"Izabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije izabrana nijedna stavka",one:()=>`Izabrana je ${t.number(e.count)} stavka`,other:()=>`Izabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`${e.item} je izabrano.`};var qt={};qt={deselectedItem:e=>`${e.item} ej markerat.`,longPressToSelect:"Tryck länge när du vill öppna väljarläge.",select:"Markera",selectedAll:"Alla markerade objekt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Inga markerade objekt",one:()=>`${t.number(e.count)} markerat objekt`,other:()=>`${t.number(e.count)} markerade objekt`})}.`,selectedItem:e=>`${e.item} markerat.`};var Jt={};Jt={deselectedItem:e=>`${e.item} seçilmedi.`,longPressToSelect:"Seçim moduna girmek için uzun basın.",select:"Seç",selectedAll:"Tüm ögeler seçildi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Hiçbir öge seçilmedi",one:()=>`${t.number(e.count)} öge seçildi`,other:()=>`${t.number(e.count)} öge seçildi`})}.`,selectedItem:e=>`${e.item} seçildi.`};var Xt={};Xt={deselectedItem:e=>`${e.item} не вибрано.`,longPressToSelect:"Виконайте довге натиснення, щоб перейти в режим вибору.",select:"Вибрати",selectedAll:"Усі елементи вибрано.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Жодних елементів не вибрано",one:()=>`${t.number(e.count)} елемент вибрано`,other:()=>`Вибрано елементів: ${t.number(e.count)}`})}.`,selectedItem:e=>`${e.item} вибрано.`};var Qt={};Qt={deselectedItem:e=>`未选择 ${e.item}。`,longPressToSelect:"长按以进入选择模式。",select:"选择",selectedAll:"已选择所有项目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未选择项目",one:()=>`已选择 ${t.number(e.count)} 个项目`,other:()=>`已选择 ${t.number(e.count)} 个项目`})}。`,selectedItem:e=>`已选择 ${e.item}。`};var el={};el={deselectedItem:e=>`未選取「${e.item}」。`,longPressToSelect:"長按以進入選擇模式。",select:"選取",selectedAll:"已選取所有項目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未選取任何項目",one:()=>`已選取 ${t.number(e.count)} 個項目`,other:()=>`已選取 ${t.number(e.count)} 個項目`})}。`,selectedItem:e=>`已選取「${e.item}」。`};var oe={};oe={"ar-AE":xt,"bg-BG":Ct,"cs-CZ":Dt,"da-DK":Bt,"de-DE":kt,"el-GR":Et,"en-US":St,"es-ES":At,"et-EE":wt,"fi-FI":Nt,"fr-FR":zt,"he-IL":Ft,"hr-HR":Pt,"hu-HU":Kt,"it-IT":It,"ja-JP":jt,"ko-KR":Mt,"lt-LT":Tt,"lv-LV":Rt,"nb-NO":Vt,"nl-NL":Ot,"pl-PL":Ht,"pt-BR":Lt,"pt-PT":Ut,"ro-RO":Wt,"ru-RU":Gt,"sk-SK":Yt,"sl-SI":Zt,"sr-SP":_t,"sv-SE":qt,"tr-TR":Jt,"uk-UA":Xt,"zh-CN":Qt,"zh-TW":el};const tl=7e3;let V=null;function ll(e,t="assertive",l=tl){V?V.announce(e,t,l):(V=new mu,(typeof IS_REACT_ACT_ENVIRONMENT=="boolean"?IS_REACT_ACT_ENVIRONMENT:typeof jest<"u")?V.announce(e,t,l):setTimeout(()=>{V?.isAttached()&&V?.announce(e,t,l)},100))}class mu{isAttached(){var t;return(t=this.node)===null||t===void 0?void 0:t.isConnected}createLog(t){let l=document.createElement("div");return l.setAttribute("role","log"),l.setAttribute("aria-live",t),l.setAttribute("aria-relevant","additions"),l}destroy(){this.node&&(document.body.removeChild(this.node),this.node=null)}announce(t,l="assertive",u=tl){var o,n;if(!this.node)return;let i=document.createElement("div");typeof t=="object"?(i.setAttribute("role","img"),i.setAttribute("aria-labelledby",t["aria-labelledby"])):i.textContent=t,l==="assertive"?(o=this.assertiveLog)===null||o===void 0||o.appendChild(i):(n=this.politeLog)===null||n===void 0||n.appendChild(i),t!==""&&setTimeout(()=>{i.remove()},u)}clear(t){this.node&&((!t||t==="assertive")&&this.assertiveLog&&(this.assertiveLog.innerHTML=""),(!t||t==="polite")&&this.politeLog&&(this.politeLog.innerHTML=""))}constructor(){this.node=null,this.assertiveLog=null,this.politeLog=null,typeof document<"u"&&(this.node=document.createElement("div"),this.node.dataset.liveAnnouncer="true",Object.assign(this.node.style,{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"}),this.assertiveLog=this.createLog("assertive"),this.node.appendChild(this.assertiveLog),this.politeLog=this.createLog("polite"),this.node.appendChild(this.politeLog),document.body.prepend(this.node))}}function pu(e){return e&&e.__esModule?e.default:e}function bu(e,t){let{getRowText:l=a=>{var m,c,d,r;return(r=(m=(c=t.collection).getTextValue)===null||m===void 0?void 0:m.call(c,a))!==null&&r!==void 0?r:(d=t.collection.getItem(a))===null||d===void 0?void 0:d.textValue}}=e,u=_(pu(oe),"@react-aria/grid"),o=t.selectionManager.rawSelection,n=B.useRef(o),i=Rl(()=>{var a;if(!t.selectionManager.isFocused||o===n.current){n.current=o;return}let m=Ee(o,n.current),c=Ee(n.current,o),d=t.selectionManager.selectionBehavior==="replace",r=[];if(t.selectionManager.selectedKeys.size===1&&d){let p=t.selectionManager.selectedKeys.keys().next().value;if(p!=null&&t.collection.getItem(p)){let s=l(p);s&&r.push(u.format("selectedItem",{item:s}))}}else if(m.size===1&&c.size===0){let p=m.keys().next().value;if(p!=null){let s=l(p);s&&r.push(u.format("selectedItem",{item:s}))}}else if(c.size===1&&m.size===0){let p=c.keys().next().value;if(p!=null&&t.collection.getItem(p)){let s=l(p);s&&r.push(u.format("deselectedItem",{item:s}))}}t.selectionManager.selectionMode==="multiple"&&(r.length===0||o==="all"||o.size>1||n.current==="all"||((a=n.current)===null||a===void 0?void 0:a.size)>1)&&r.push(o==="all"?u.format("selectedAll"):u.format("selectedCount",{count:o.size})),r.length>0&&ll(r.join(" ")),n.current=o});Me(()=>{if(t.selectionManager.isFocused)i();else{let a=requestAnimationFrame(i);return()=>cancelAnimationFrame(a)}},[o,t.selectionManager.isFocused])}function Ee(e,t){let l=new Set;if(e==="all"||t==="all")return l;for(let u of e.keys())t.has(u)||l.add(u);return l}function fu(e){return e&&e.__esModule?e.default:e}function hu(e){let t=_(fu(oe),"@react-aria/grid"),l=Vl(),u=(l==="pointer"||l==="virtual"||l==null)&&typeof window<"u"&&"ontouchstart"in window,o=B.useMemo(()=>{let i=e.selectionManager.selectionMode,a=e.selectionManager.selectionBehavior,m;return u&&(m=t.format("longPressToSelect")),a==="replace"&&i!=="none"&&e.hasItemActions?m:void 0},[e.selectionManager.selectionMode,e.selectionManager.selectionBehavior,e.hasItemActions,t,u]);return fe(o)}function vu(e,t,l){let{isVirtualized:u,disallowTypeAhead:o,keyboardDelegate:n,focusMode:i,scrollRef:a,getRowText:m,onRowAction:c,onCellAction:d,escapeKeyBehavior:r="clearSelection",shouldSelectOnPressUp:p}=e,{selectionManager:s}=t;!e["aria-label"]&&!e["aria-labelledby"]&&console.warn("An aria-label or aria-labelledby prop is required for accessibility.");let b=ze({usage:"search",sensitivity:"base"}),{direction:v}=ue(),g=t.selectionManager.disabledBehavior,x=B.useMemo(()=>n||new yt({collection:t.collection,disabledKeys:t.disabledKeys,disabledBehavior:g,ref:l,direction:v,collator:b,focusMode:i}),[n,t.collection,t.disabledKeys,g,l,v,b,i]),{collectionProps:D}=Ol({ref:l,selectionManager:s,keyboardDelegate:x,isVirtualized:u,scrollRef:a,disallowTypeAhead:o,escapeKeyBehavior:r}),y=pe(e.id);ve.set(t,{keyboardDelegate:x,actions:{onRowAction:c,onCellAction:d},shouldSelectOnPressUp:p});let $=hu({selectionManager:s,hasItemActions:!!(c||d)}),f=Hl(e,{labelable:!0}),E=B.useCallback(C=>{if(s.isFocused){C.currentTarget.contains(C.target)||s.setFocused(!1);return}C.currentTarget.contains(C.target)&&s.setFocused(!0)},[s]),S=B.useMemo(()=>({onBlur:D.onBlur,onFocus:E}),[E,D.onBlur]),A=au(l,{isDisabled:t.collection.size!==0}),k=J(f,{role:"grid",id:y,"aria-multiselectable":s.selectionMode==="multiple"?"true":void 0},t.isKeyboardNavigationDisabled?S:D,t.collection.size===0&&{tabIndex:A?-1:0}||void 0,$);return u&&(k["aria-rowcount"]=t.collection.size,k["aria-colcount"]=t.collection.columnCount),bu({getRowText:m},t),{gridProps:k}}function gu(){return{rowGroupProps:{role:"rowgroup"}}}function $u(e,t,l){var u,o;let{node:n,isVirtualized:i,shouldSelectOnPressUp:a,onAction:m}=e,{actions:c,shouldSelectOnPressUp:d}=ve.get(t),r=c.onRowAction?()=>{var g;return(g=c.onRowAction)===null||g===void 0?void 0:g.call(c,n.key)}:m,{itemProps:p,...s}=je({selectionManager:t.selectionManager,key:n.key,ref:l,isVirtualized:i,shouldSelectOnPressUp:d||a,onAction:r||!(n==null||(u=n.props)===null||u===void 0)&&u.onAction?Ll(n==null||(o=n.props)===null||o===void 0?void 0:o.onAction,r):void 0,isDisabled:t.collection.size===0}),b=t.selectionManager.isSelected(n.key),v={role:"row","aria-selected":t.selectionManager.selectionMode!=="none"?b:void 0,"aria-disabled":s.isDisabled||void 0,...p};return i&&(v["aria-rowindex"]=n.index+1),{rowProps:v,...s}}function ul(e,t,l){let{node:u,isVirtualized:o,focusMode:n="child",shouldSelectOnPressUp:i,onAction:a}=e,{direction:m}=ue(),{keyboardDelegate:c,actions:{onCellAction:d}}=ve.get(t),r=B.useRef(null),p=()=>{if(l.current){let y=ae(l.current);if(n==="child"){if(l.current.contains(document.activeElement)&&l.current!==document.activeElement)return;let $=t.selectionManager.childFocusStrategy==="last"?re(y):y.firstChild();if($){L($);return}}(r.current!=null&&u.key!==r.current||!l.current.contains(document.activeElement))&&L(l.current)}},{itemProps:s,isPressed:b}=je({selectionManager:t.selectionManager,key:u.key,ref:l,isVirtualized:o,focus:p,shouldSelectOnPressUp:i,onAction:d?()=>d(u.key):a,isDisabled:t.collection.size===0}),v=y=>{if(!y.currentTarget.contains(y.target)||t.isKeyboardNavigationDisabled||!l.current||!document.activeElement)return;let $=ae(l.current);switch($.currentNode=document.activeElement,y.key){case"ArrowLeft":{let C=m==="rtl"?$.nextNode():$.previousNode();if(n==="child"&&C===l.current&&(C=null),y.preventDefault(),y.stopPropagation(),C)L(C),Y(C,{containingElement:Z(l.current)});else{var f;if(((f=c.getKeyLeftOf)===null||f===void 0?void 0:f.call(c,u.key))!==u.key){var E;(E=l.current.parentElement)===null||E===void 0||E.dispatchEvent(new KeyboardEvent(y.nativeEvent.type,y.nativeEvent));break}n==="cell"&&m==="rtl"?(L(l.current),Y(l.current,{containingElement:Z(l.current)})):($.currentNode=l.current,C=m==="rtl"?$.firstChild():re($),C&&(L(C),Y(C,{containingElement:Z(l.current)})))}break}case"ArrowRight":{let C=m==="rtl"?$.previousNode():$.nextNode();if(n==="child"&&C===l.current&&(C=null),y.preventDefault(),y.stopPropagation(),C)L(C),Y(C,{containingElement:Z(l.current)});else{var S;if(((S=c.getKeyRightOf)===null||S===void 0?void 0:S.call(c,u.key))!==u.key){var A;(A=l.current.parentElement)===null||A===void 0||A.dispatchEvent(new KeyboardEvent(y.nativeEvent.type,y.nativeEvent));break}n==="cell"&&m==="ltr"?(L(l.current),Y(l.current,{containingElement:Z(l.current)})):($.currentNode=l.current,C=m==="rtl"?re($):$.firstChild(),C&&(L(C),Y(C,{containingElement:Z(l.current)})))}break}case"ArrowUp":case"ArrowDown":if(!y.altKey&&l.current.contains(y.target)){var k;y.stopPropagation(),y.preventDefault(),(k=l.current.parentElement)===null||k===void 0||k.dispatchEvent(new KeyboardEvent(y.nativeEvent.type,y.nativeEvent))}break}},g=y=>{if(r.current=u.key,y.target!==l.current){Ul()||t.selectionManager.setFocusedKey(u.key);return}requestAnimationFrame(()=>{n==="child"&&document.activeElement===l.current&&p()})},x=J(s,{role:"gridcell",onKeyDownCapture:v,"aria-colspan":u.colSpan,"aria-colindex":u.colIndex!=null?u.colIndex+1:void 0,colSpan:o?void 0:u.colSpan,onFocus:g});var D;return o&&(x["aria-colindex"]=((D=u.colIndex)!==null&&D!==void 0?D:u.index)+1),i&&x.tabIndex!=null&&x.onPointerDown==null&&(x.onPointerDown=y=>{let $=y.currentTarget,f=$.getAttribute("tabindex");$.removeAttribute("tabindex"),requestAnimationFrame(()=>{f!=null&&$.setAttribute("tabindex",f)})}),{gridCellProps:x,isPressed:b}}function re(e){let t=null,l=null;do l=e.lastChild(),l&&(t=l);while(l);return t}function yu(e){return e&&e.__esModule?e.default:e}function xu(e,t){let{key:l}=e,u=t.selectionManager,o=pe(),n=!t.selectionManager.canSelectItem(l),i=t.selectionManager.isSelected(l),a=()=>u.toggleSelection(l);const m=_(yu(oe),"@react-aria/grid");return{checkboxProps:{id:o,"aria-label":m.format("select"),isSelected:i,isDisabled:n,onChange:a}}}class Cu extends yt{isCell(t){return t.type==="cell"||t.type==="rowheader"||t.type==="column"}getKeyBelow(t){let l=this.collection.getItem(t);if(!l)return null;if(l.type==="column"){let u=U(z(l,this.collection));if(u)return u.key;let o=this.getFirstKey();return o==null||!this.collection.getItem(o)?null:super.getKeyForItemInRowByIndex(o,l.index)}return super.getKeyBelow(t)}getKeyAbove(t){let l=this.collection.getItem(t);if(!l)return null;if(l.type==="column"){let n=l.parentKey!=null?this.collection.getItem(l.parentKey):null;return n&&n.type==="column"?n.key:null}let u=super.getKeyAbove(t),o=u!=null?this.collection.getItem(u):null;return o&&o.type!=="headerrow"?u:this.isCell(l)?this.collection.columns[l.index].key:this.collection.columns[0].key}findNextColumnKey(t){let l=this.findNextKey(t.key,o=>o.type==="column");if(l!=null)return l;let u=this.collection.headerRows[t.level];for(let o of z(u,this.collection))if(o.type==="column")return o.key;return null}findPreviousColumnKey(t){let l=this.findPreviousKey(t.key,n=>n.type==="column");if(l!=null)return l;let u=this.collection.headerRows[t.level],o=[...z(u,this.collection)];for(let n=o.length-1;n>=0;n--){let i=o[n];if(i.type==="column")return i.key}return null}getKeyRightOf(t){let l=this.collection.getItem(t);return l?l.type==="column"?this.direction==="rtl"?this.findPreviousColumnKey(l):this.findNextColumnKey(l):super.getKeyRightOf(t):null}getKeyLeftOf(t){let l=this.collection.getItem(t);return l?l.type==="column"?this.direction==="rtl"?this.findNextColumnKey(l):this.findPreviousColumnKey(l):super.getKeyLeftOf(t):null}getKeyForSearch(t,l){if(!this.collator)return null;let u=this.collection,o=l??this.getFirstKey();if(o==null)return null;let n=u.getItem(o);var i;n?.type==="cell"&&(o=(i=n.parentKey)!==null&&i!==void 0?i:null);let a=!1;for(;o!=null;){let m=u.getItem(o);if(!m)return null;if(m.textValue){let c=m.textValue.slice(0,t.length);if(this.collator.compare(c,t)===0)return m.key}for(let c of z(m,this.collection)){let d=u.columns[c.index];if(u.rowHeaderColumnKeys.has(d.key)&&c.textValue){let r=c.textValue.slice(0,t.length);if(this.collator.compare(r,t)===0){let p=l!=null?u.getItem(l):n;return p?.type==="cell"?c.key:m.key}}}o=this.getKeyBelow(o),o==null&&!a&&(o=this.getFirstKey(),a=!0)}return null}}function Du(e){return e&&e.__esModule?e.default:e}function Bu(e,t,l){let{keyboardDelegate:u,isVirtualized:o,layoutDelegate:n,layout:i}=e,a=ze({usage:"search",sensitivity:"base"}),{direction:m}=ue(),c=t.selectionManager.disabledBehavior,d=B.useMemo(()=>u||new Cu({collection:t.collection,disabledKeys:t.disabledKeys,disabledBehavior:c,ref:l,direction:m,collator:a,layoutDelegate:n,layout:i}),[u,t.collection,t.disabledKeys,c,l,m,a,n,i]),r=pe(e.id);he.set(t,r);let{gridProps:p}=vu({...e,id:r,keyboardDelegate:d},t,l);o&&(p["aria-rowcount"]=t.collection.size+t.collection.headerRows.length),le()&&"expandedKeys"in t&&(p.role="treegrid");let{column:s,direction:b}=t.sortDescriptor||{},v=_(Du(ne),"@react-aria/table"),g=B.useMemo(()=>{var D,y;let $=(y=(D=t.collection.columns.find(f=>f.key===s))===null||D===void 0?void 0:D.textValue)!==null&&y!==void 0?y:"";return b&&s?v.format(`${b}Sort`,{columnName:$}):void 0},[b,s,t.collection.columns]),x=fe(g);return Me(()=>{g&&ll(g,"assertive",500)},[g]),{gridProps:J(p,x,{"aria-describedby":[x["aria-describedby"],p["aria-describedby"]].filter(Boolean).join(" ")})}}function ku(e){return e&&e.__esModule?e.default:e}function nl(e,t,l){var u,o;let{node:n}=e,i=n.props.allowsSorting,{gridCellProps:a}=ul({...e,focusMode:"child"},t,l),m=n.props.isSelectionCell&&t.selectionManager.selectionMode==="single",{pressProps:c}=Wl({isDisabled:!i||m,onPress(){t.sort(n.key)},ref:l}),{focusableProps:d}=Gl({},l),r,p=((u=t.sortDescriptor)===null||u===void 0?void 0:u.column)===n.key,s=(o=t.sortDescriptor)===null||o===void 0?void 0:o.direction;n.props.allowsSorting&&!Ce()&&(r=p?s:"none");let b=_(ku(ne),"@react-aria/table"),v;i&&(v=`${b.format("sortable")}`,p&&s&&Ce()&&(v=`${v}, ${b.format(s)}`));let g=fe(v),x=t.collection.size===0;return B.useEffect(()=>{x&&t.selectionManager.focusedKey===n.key&&t.selectionManager.setFocusedKey(null)},[x,t.selectionManager,n.key]),{columnHeaderProps:{...J(d,a,c,g,x?{tabIndex:-1}:null),role:"columnheader",id:cu(t,n.key),"aria-colspan":n.colSpan&&n.colSpan>1?n.colSpan:void 0,"aria-sort":r}}}const Se={expand:{ltr:"ArrowRight",rtl:"ArrowLeft"},collapse:{ltr:"ArrowLeft",rtl:"ArrowRight"}};function Eu(e,t,l){let{node:u,isVirtualized:o}=e,{rowProps:n,...i}=$u(e,t,l),{direction:a}=ue();o&&!(le()&&"expandedKeys"in t)?n["aria-rowindex"]=u.index+1+t.collection.headerRows.length:delete n["aria-rowindex"];let m={};if(le()&&"expandedKeys"in t){let f=t.keyMap.get(u.key);if(f!=null){var c,d,r,p,s,b;let E=((c=f.props)===null||c===void 0?void 0:c.UNSTABLE_childItems)||((r=f.props)===null||r===void 0||(d=r.children)===null||d===void 0?void 0:d.length)>t.userColumnCount;var v,g,x,D;m={onKeyDown:S=>{(S.key===Se.expand[a]&&t.selectionManager.focusedKey===f.key&&E&&t.expandedKeys!=="all"&&!t.expandedKeys.has(f.key)||S.key===Se.collapse[a]&&t.selectionManager.focusedKey===f.key&&E&&(t.expandedKeys==="all"||t.expandedKeys.has(f.key)))&&(t.toggleKey(f.key),S.stopPropagation())},"aria-expanded":E?t.expandedKeys==="all"||t.expandedKeys.has(u.key):void 0,"aria-level":f.level,"aria-posinset":((v=f.indexOfType)!==null&&v!==void 0?v:0)+1,"aria-setsize":f.level>1?((x=(p=W((g=(s=t.keyMap.get(f.parentKey))===null||s===void 0?void 0:s.childNodes)!==null&&g!==void 0?g:[]))===null||p===void 0?void 0:p.indexOfType)!==null&&x!==void 0?x:0)+1:((D=(b=W(t.collection.body.childNodes))===null||b===void 0?void 0:b.indexOfType)!==null&&D!==void 0?D:0)+1}}}let y=Yl(u.props),$=i.hasAction?y:{};return{rowProps:{...J(n,m,$),"aria-labelledby":Re(t,u.key)},...i}}function Su(e,t,l){let{node:u,isVirtualized:o}=e,n={role:"row"};return o&&!(le()&&"expandedKeys"in t)&&(n["aria-rowindex"]=u.index+1),{rowProps:n}}function ol(e,t,l){var u;let{gridCellProps:o,isPressed:n}=ul(e,t,l),i=(u=e.node.column)===null||u===void 0?void 0:u.key;return i!=null&&t.collection.rowHeaderColumnKeys.has(i)&&(o.role="rowheader",o.id=Te(t,e.node.parentKey,i)),{gridCellProps:o,isPressed:n}}function Au(e){return e&&e.__esModule?e.default:e}function wu(e,t){let{key:l}=e;const{checkboxProps:u}=xu(e,t);return{checkboxProps:{...u,"aria-labelledby":`${u.id} ${Re(t,l)}`}}}function Nu(e){let{isEmpty:t,isSelectAll:l,selectionMode:u}=e.selectionManager;return{checkboxProps:{"aria-label":_(Au(ne),"@react-aria/table").format(u==="single"?"select":"selectAll"),isSelected:l,isDisabled:u!=="multiple"||e.collection.size===0||e.collection.rows.length===1&&e.collection.rows[0].type==="loader",isIndeterminate:!t&&!l,onChange:()=>e.selectionManager.toggleSelectAll()}}}function ge(){return gu()}var sl=T((e,t)=>{var l,u;const{as:o,className:n,node:i,slots:a,state:m,selectionMode:c,color:d,checkboxesProps:r,disableAnimation:p,classNames:s,...b}=e,v=o||"th",g=typeof v=="string",x=M(t),{columnHeaderProps:D}=nl({node:i},m,x),{isFocusVisible:y,focusProps:$}=X(),{checkboxProps:f}=Nu(m),E=K(s?.th,n,(l=i.props)==null?void 0:l.className),S=c==="single",{onChange:A,...k}=f;return h.jsx(v,{ref:x,"data-focus-visible":w(y),...I(D,$,O(i.props,{enabled:g}),O(b,{enabled:g})),className:(u=a.th)==null?void 0:u.call(a,{class:E}),children:S?h.jsx(be,{children:f["aria-label"]}):h.jsx(Fe,{color:d,disableAnimation:p,onValueChange:A,...I(r,k)})})});sl.displayName="HeroUI.TableSelectAllCheckbox";var il=sl;function zu(e){let{collection:t,focusMode:l}=e,u=e.UNSAFE_selectionState||Zl(e),o=B.useMemo(()=>e.disabledKeys?new Set(e.disabledKeys):new Set,[e.disabledKeys]),n=u.setFocusedKey;u.setFocusedKey=(m,c)=>{if(l==="cell"&&m!=null){let b=t.getItem(m);if(b?.type==="item"){var d,r;let v=z(b,t);var p,s;c==="last"?m=(p=(d=W(v))===null||d===void 0?void 0:d.key)!==null&&p!==void 0?p:null:m=(s=(r=U(v))===null||r===void 0?void 0:r.key)!==null&&s!==void 0?s:null}}n(m,c)};let i=B.useMemo(()=>new _l(t,u),[t,u]);const a=B.useRef(null);return B.useEffect(()=>{if(u.focusedKey!=null&&a.current&&!t.getItem(u.focusedKey)){const m=a.current.getItem(u.focusedKey),c=m?.parentKey!=null&&(m.type==="cell"||m.type==="rowheader"||m.type==="column")?a.current.getItem(m.parentKey):m;if(!c){u.setFocusedKey(null);return}const d=a.current.rows,r=t.rows,p=d.length-r.length;let s=Math.min(p>1?Math.max(c.index-p+1,0):c.index,r.length-1),b=null;for(;s>=0;){if(!i.isDisabled(r[s].key)&&r[s].type!=="headerrow"){b=r[s];break}sc.index&&(s=c.index),s--)}if(b){const v=b.hasChildNodes?[...z(b,t)]:[],g=b.hasChildNodes&&c!==m&&m&&m.index{let p=this.keyMap.get(r.key);t.visitNode&&(r=t.visitNode(r)),this.keyMap.set(r.key,r);let s=new Set,b=null,v=!1;if(r.type==="item"){var g;for(let f of r.childNodes)if(((g=f.props)===null||g===void 0?void 0:g.colSpan)!==void 0){v=!0;break}}for(let f of r.childNodes){if(f.type==="cell"&&v){var x,D;f.colspan=(x=f.props)===null||x===void 0?void 0:x.colSpan,f.colSpan=(D=f.props)===null||D===void 0?void 0:D.colSpan;var y,$;f.colIndex=b?((y=b.colIndex)!==null&&y!==void 0?y:b.index)+(($=b.colSpan)!==null&&$!==void 0?$:1):f.index}f.type==="cell"&&f.parentKey==null&&(f.parentKey=r.key),s.add(f.key),b?(b.nextKey=f.key,f.prevKey=b.key):f.prevKey=null,l(f),b=f}if(b&&(b.nextKey=null),p)for(let f of p.childNodes)s.has(f.key)||u(f)},u=r=>{this.keyMap.delete(r.key);for(let p of r.childNodes)this.keyMap.get(p.key)===p&&u(p)},o=null;for(let[r,p]of t.items.entries()){var n,i,a,m,c,d;let s={...p,level:(n=p.level)!==null&&n!==void 0?n:0,key:(i=p.key)!==null&&i!==void 0?i:"row-"+r,type:(a=p.type)!==null&&a!==void 0?a:"row",value:(m=p.value)!==null&&m!==void 0?m:null,hasChildNodes:!0,childNodes:[...p.childNodes],rendered:p.rendered,textValue:(c=p.textValue)!==null&&c!==void 0?c:"",index:(d=p.index)!==null&&d!==void 0?d:r};o?(o.nextKey=s.key,s.prevKey=o.key):s.prevKey=null,this.rows.push(s),l(s),o=s}o&&(o.nextKey=null)}}const rl="row-header-column-"+Math.random().toString(36).slice(2);let de="row-header-column-"+Math.random().toString(36).slice(2);for(;rl===de;)de="row-header-column-"+Math.random().toString(36).slice(2);function Pu(e,t){if(t.length===0)return[];let l=[],u=new Map;for(let d of t){let r=d.parentKey,p=[d];for(;r;){let s=e.get(r);if(!s)break;if(u.has(s)){var o,n;(n=(o=s).colSpan)!==null&&n!==void 0||(o.colSpan=0),s.colSpan++,s.colspan=s.colSpan;let{column:b,index:v}=u.get(s);if(v>p.length)break;for(let g=v;gd.length)),a=Array(i).fill(0).map(()=>[]),m=0;for(let d of l){let r=i-1;for(let p of d){if(p){let s=a[r],b=s.reduce((v,g)=>{var x;return v+((x=g.colSpan)!==null&&x!==void 0?x:1)},0);if(b0&&(s[s.length-1].nextKey=v.key,v.prevKey=s[s.length-1].key),s.push(v)}s.length>0&&(s[s.length-1].nextKey=p.key,p.prevKey=s[s.length-1].key),p.level=r,p.colIndex=m,s.push(p)}r--}m++}let c=0;for(let d of a){let r=d.reduce((p,s)=>{var b;return p+((b=s.colSpan)!==null&&b!==void 0?b:1)},0);if(r({type:"headerrow",key:"headerrow-"+r,index:r,value:null,rendered:null,level:0,hasChildNodes:!0,childNodes:d,textValue:""}))}class Ku extends Fu{*[Symbol.iterator](){yield*this.body.childNodes}get size(){return this._size}getKeys(){return this.keyMap.keys()}getKeyBefore(t){let l=this.keyMap.get(t);var u;return(u=l?.prevKey)!==null&&u!==void 0?u:null}getKeyAfter(t){let l=this.keyMap.get(t);var u;return(u=l?.nextKey)!==null&&u!==void 0?u:null}getFirstKey(){var t,l;return(l=(t=U(this.body.childNodes))===null||t===void 0?void 0:t.key)!==null&&l!==void 0?l:null}getLastKey(){var t,l;return(l=(t=W(this.body.childNodes))===null||t===void 0?void 0:t.key)!==null&&l!==void 0?l:null}getItem(t){var l;return(l=this.keyMap.get(t))!==null&&l!==void 0?l:null}at(t){const l=[...this.getKeys()];return this.getItem(l[t])}getChildren(t){return t===this.body.key?this.body.childNodes:super.getChildren(t)}getTextValue(t){let l=this.getItem(t);if(!l)return"";if(l.textValue)return l.textValue;let u=this.rowHeaderColumnKeys;if(u){let o=[];for(let n of l.childNodes){let i=this.columns[n.index];if(u.has(i.key)&&n.textValue&&o.push(n.textValue),o.length===u.size)break}return o.join(" ")}return""}constructor(t,l,u){let o=new Set,n=null,i=[];if(u?.showSelectionCheckboxes){let r={type:"column",key:rl,value:null,textValue:"",level:0,index:u?.showDragButtons?1:0,hasChildNodes:!1,rendered:null,childNodes:[],props:{isSelectionCell:!0}};i.unshift(r)}if(u?.showDragButtons){let r={type:"column",key:de,value:null,textValue:"",level:0,index:0,hasChildNodes:!1,rendered:null,childNodes:[],props:{isDragButtonCell:!0}};i.unshift(r)}let a=[],m=new Map,c=r=>{switch(r.type){case"body":n=r;break;case"column":m.set(r.key,r),r.hasChildNodes||(i.push(r),r.props.isRowHeader&&o.add(r.key));break;case"item":a.push(r);return}for(let p of r.childNodes)c(p)};for(let r of t)c(r);let d=Pu(m,i);if(d.forEach((r,p)=>a.splice(p,0,r)),super({columnCount:i.length,items:a,visitNode:r=>(r.column=i[r.index],r)}),this._size=0,this.columns=i,this.rowHeaderColumnKeys=o,this.body=n,this.headerRows=d,this._size=[...n.childNodes].length,this.rowHeaderColumnKeys.size===0){let r=this.columns.find(p=>{var s,b;return!(!((s=p.props)===null||s===void 0)&&s.isDragButtonCell)&&!(!((b=p.props)===null||b===void 0)&&b.isSelectionCell)});r&&this.rowHeaderColumnKeys.add(r.key)}}}const Iu={ascending:"descending",descending:"ascending"};function ju(e){let[t,l]=B.useState(!1),{selectionMode:u="none",showSelectionCheckboxes:o,showDragButtons:n}=e,i=B.useMemo(()=>({showSelectionCheckboxes:o&&u!=="none",showDragButtons:n,selectionMode:u,columns:[]}),[e.children,o,u,n]),a=ql(e,B.useCallback(r=>new Ku(r,null,i),[i]),i),{disabledKeys:m,selectionManager:c}=zu({...e,collection:a,disabledBehavior:e.disabledBehavior||"selection"});var d;return{collection:a,disabledKeys:m,selectionManager:c,showSelectionCheckboxes:e.showSelectionCheckboxes||!1,sortDescriptor:(d=e.sortDescriptor)!==null&&d!==void 0?d:null,isKeyboardNavigationDisabled:a.size===0||t,setKeyboardNavigationDisabled:l,sort(r,p){var s,b;(b=e.onSortChange)===null||b===void 0||b.call(e,{column:r,direction:p??(((s=e.sortDescriptor)===null||s===void 0?void 0:s.column)===r?Iu[e.sortDescriptor.direction]:"ascending")})}}}function al(e){return null}al.getCollectionNode=function*(t,l){let{children:u,columns:o}=t;if(l.columns=[],typeof u=="function"){if(!o)throw new Error("props.children was a function but props.columns is missing");for(let n of o)yield{type:"column",value:n,renderer:u}}else{let n=[];q.Children.forEach(u,i=>{n.push({type:"column",element:i})}),yield*n}};let Mu=al;function cl(e){return null}cl.getCollectionNode=function*(t){let{children:l,items:u}=t;yield{type:"body",hasChildNodes:!0,props:t,*childNodes(){if(typeof l=="function"){if(!u)throw new Error("props.children was a function but props.items is missing");for(let o of u)yield{type:"item",value:o,renderer:l}}else{let o=[];q.Children.forEach(l,n=>{o.push({type:"item",element:n})}),yield*o}}}};let Tu=cl;function dl(e){return null}dl.getCollectionNode=function*(t,l){let{title:u,children:o,childColumns:n}=t,i=u||o,a=t.textValue||(typeof i=="string"?i:"")||t["aria-label"],m=yield{type:"column",hasChildNodes:!!n||!!u&&q.Children.count(o)>0,rendered:i,textValue:a,props:t,*childNodes(){if(n)for(let d of n)yield{type:"column",value:d};else if(u){let d=[];q.Children.forEach(o,r=>{d.push({type:"column",element:r})}),yield*d}},shouldInvalidate(d){return c(d),!1}},c=d=>{for(let r of m)r.hasChildNodes||d.columns.push(r)};c(l)};let Ru=dl;function me(e){return null}me.getCollectionNode=function*(t,l){let{children:u,textValue:o,UNSTABLE_childItems:n}=t;yield{type:"item",props:t,textValue:o,"aria-label":t["aria-label"],hasChildNodes:!0,*childNodes(){if(l.showDragButtons&&(yield{type:"cell",key:"header-drag",props:{isDragButtonCell:!0}}),l.showSelectionCheckboxes&&l.selectionMode!=="none"&&(yield{type:"cell",key:"header",props:{isSelectionCell:!0}}),typeof u=="function"){for(let i of l.columns)yield{type:"cell",element:u(i.key),key:i.key};if(n)for(let i of n)yield{type:"item",value:i}}else{let i=[],a=[],m=0;if(q.Children.forEach(u,c=>{if(c.type===me){if(i.lengtha.key!==l.columns[m].key)||i.showSelectionCheckboxes!==l.showSelectionCheckboxes||i.showDragButtons!==l.showDragButtons||i.selectionMode!==l.selectionMode}}};let Vu=me;function ml(e){return null}ml.getCollectionNode=function*(t){let{children:l}=t,u=t.textValue||(typeof l=="string"?l:"")||t["aria-label"]||"";yield{type:"cell",props:t,rendered:l,textValue:u,"aria-label":t["aria-label"],hasChildNodes:!1}};let Ou=ml;function pl(e){var t;const l=Jl(),[u,o]=Pe(e,ke.variantKeys),{ref:n,as:i,baseRef:a,children:m,className:c,classNames:d,removeWrapper:r=!1,disableAnimation:p=(t=l?.disableAnimation)!=null?t:!1,isKeyboardNavigationDisabled:s=!1,selectionMode:b="none",topContentPlacement:v="inside",bottomContentPlacement:g="inside",selectionBehavior:x=b==="none"?null:"toggle",disabledBehavior:D="selection",showSelectionCheckboxes:y=b==="multiple"&&x!=="replace",BaseComponent:$="div",checkboxesProps:f,topContent:E,bottomContent:S,sortIcon:A,onRowAction:k,onCellAction:C,...N}=u,j=i||"table",F=typeof j=="string",R=M(n),Q=M(a),G=ju({...e,children:m,showSelectionCheckboxes:y});s&&!G.isKeyboardNavigationDisabled&&G.setKeyboardNavigationDisabled(!0);const{collection:se}=G,{layout:sn,...Fl}=e,{gridProps:$e}=Bu({...Fl},G,R),ee=b!=="none",ye=b==="multiple",H=B.useMemo(()=>ke({...o,isSelectable:ee,isMultiSelectable:ye}),[Ke(o),ee,ye]),xe=K(d?.base,c),Pl=B.useMemo(()=>{var P;return{state:G,slots:H,isSelectable:ee,collection:se,classNames:d,color:e?.color,disableAnimation:p,checkboxesProps:f,isHeaderSticky:(P=e?.isHeaderSticky)!=null?P:!1,selectionMode:b,selectionBehavior:x,disabledBehavior:D,showSelectionCheckboxes:y,onRowAction:k,onCellAction:C}},[H,G,se,ee,d,b,x,f,D,p,y,e?.color,e?.isHeaderSticky,k,C]),Kl=B.useCallback(P=>({...P,ref:Q,className:H.base({class:K(xe,P?.className)})}),[xe,H]),Il=B.useCallback(P=>({...P,ref:Q,className:H.wrapper({class:K(d?.wrapper,P?.className)})}),[d?.wrapper,H]),jl=B.useCallback(P=>({...I($e,O(N,{enabled:F}),P),onKeyDownCapture:void 0,ref:R,className:H.table({class:K(d?.table,P?.className)})}),[d?.table,F,H,$e,N]);return{BaseComponent:$,Component:j,children:m,state:G,collection:se,values:Pl,topContent:E,bottomContent:S,removeWrapper:r,topContentPlacement:v,bottomContentPlacement:g,sortIcon:A,getBaseProps:Kl,getWrapperProps:Il,getTableProps:jl}}var bl=T((e,t)=>{var l,u,o;const{as:n,className:i,node:a,rowKey:m,slots:c,state:d,classNames:r,...p}=e,s=n||"td",b=typeof s=="string",v=M(t),{gridCellProps:g}=ol({node:a},d,v),x=K(r?.td,i,(l=a.props)==null?void 0:l.className),{isFocusVisible:D,focusProps:y}=X(),$=d.selectionManager.isSelected(m),f=B.useMemo(()=>{const S=typeof a.rendered;return S!=="object"&&S!=="function"?h.jsx("span",{children:a.rendered}):a.rendered},[a.rendered]),E=((u=a.column)==null?void 0:u.props)||{};return h.jsx(s,{ref:v,"data-focus-visible":w(D),"data-selected":w($),...I(g,y,O(a.props,{enabled:b}),p),className:(o=c.td)==null?void 0:o.call(c,{align:E.align,class:x}),children:f})});bl.displayName="HeroUI.TableCell";var fl=bl,hl=T((e,t)=>{var l,u;const{as:o,className:n,node:i,rowKey:a,slots:m,state:c,color:d,disableAnimation:r,checkboxesProps:p,selectionMode:s,classNames:b,...v}=e,g=o||"td",x=typeof g=="string",D=M(t),{gridCellProps:y}=ol({node:i},c,D),{isFocusVisible:$,focusProps:f}=X(),{checkboxProps:E}=wu({key:i?.parentKey||i.key},c),S=K(b?.td,n,(l=i.props)==null?void 0:l.className),A=s==="single",{onChange:k,...C}=E,N=c.selectionManager.isSelected(a);return h.jsx(g,{ref:D,"data-focus-visible":w($),"data-selected":w(N),...I(y,f,O(i.props,{enabled:x}),v),className:(u=m.td)==null?void 0:u.call(m,{class:S}),children:A?h.jsx(be,{children:E["aria-label"]}):h.jsx(Fe,{color:d,disableAnimation:r,onValueChange:k,...I(p,C)})})});hl.displayName="HeroUI.TableCheckboxCell";var vl=hl,gl=T((e,t)=>{var l,u;const{as:o,className:n,children:i,node:a,slots:m,state:c,isSelectable:d,classNames:r,...p}=e,s=o||(e?.href?"a":"tr"),b=typeof s=="string",v=M(t),{rowProps:g}=Eu({node:a},c,v),x=K(r?.tr,n,(l=a.props)==null?void 0:l.className),{isFocusVisible:D,focusProps:y}=X(),$=c.disabledKeys.has(a.key),f=c.selectionManager.isSelected(a.key),{isHovered:E,hoverProps:S}=Ie({isDisabled:$}),{isFirst:A,isLast:k,isMiddle:C,isOdd:N}=B.useMemo(()=>{const j=a.key===c.collection.getFirstKey(),F=a.key===c.collection.getLastKey(),R=!j&&!F,Q=a?.index?(a.index+1)%2===0:!1;return{isFirst:j,isLast:F,isMiddle:R,isOdd:Q}},[a,c.collection]);return h.jsx(s,{ref:v,"data-disabled":w($),"data-first":w(A),"data-focus-visible":w(D),"data-hover":w(E),"data-last":w(k),"data-middle":w(C),"data-odd":w(N),"data-selected":w(f),...I(g,y,d?S:{},O(a.props,{enabled:b}),p),className:(u=m.tr)==null?void 0:u.call(m,{class:x}),children:i})});gl.displayName="HeroUI.TableRow";var $l=gl,yl=T((e,t)=>{var l;const{as:u,className:o,slots:n,state:i,collection:a,isSelectable:m,color:c,disableAnimation:d,checkboxesProps:r,selectionMode:p,classNames:s,rowVirtualizer:b,...v}=e,g=u||"tbody",x=typeof g=="string",D=M(t),{rowGroupProps:y}=ge(),$=K(s?.tbody,o),f=a?.body.props,E=f?.isLoading||f?.loadingState==="loading"||f?.loadingState==="loadingMore",S=[...a.body.childNodes],A=b.getVirtualItems();let k,C;return a.size===0&&f.emptyContent&&(k=h.jsx("tr",{role:"row",children:h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper}),colSpan:a.columnCount,role:"gridcell",children:!E&&f.emptyContent})})),E&&f.loadingContent&&(C=h.jsxs("tr",{role:"row",children:[h.jsx("td",{className:n?.loadingWrapper({class:s?.loadingWrapper}),colSpan:a.columnCount,role:"gridcell",children:f.loadingContent}),!k&&a.size===0?h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper})}):null]})),h.jsxs(g,{ref:D,...I(y,O(f,{enabled:x}),v),className:(l=n.tbody)==null?void 0:l.call(n,{class:$}),"data-empty":w(a.size===0),"data-loading":w(E),children:[A.map((N,j)=>{const F=S[N.index];return F?h.jsx($l,{classNames:s,isSelectable:m,node:F,slots:n,state:i,style:{transform:`translateY(${N.start-j*N.size}px)`,height:`${N.size}px`},children:[...F.childNodes].map(R=>R.props.isSelectionCell?h.jsx(vl,{checkboxesProps:r,classNames:s,color:c,disableAnimation:d,node:R,rowKey:F.key,selectionMode:p,slots:n,state:i},String(R.key)):h.jsx(fl,{classNames:s,node:R,rowKey:F.key,slots:n,state:i},String(R.key)))},String(F.key)):null}),C,k]})});yl.displayName="HeroUI.VirtualizedTableBody";var Hu=yl,xl=T((e,t)=>{var l,u,o,n,i;const{as:a,className:m,state:c,node:d,slots:r,classNames:p,sortIcon:s,...b}=e,v=a||"th",g=typeof v=="string",x=M(t),{columnHeaderProps:D}=nl({node:d},c,x),y=K(p?.th,m,(l=d.props)==null?void 0:l.className),{isFocusVisible:$,focusProps:f}=X(),{isHovered:E,hoverProps:S}=Ie({}),{hideHeader:A,align:k,...C}=d.props,N=C.allowsSorting,j={"aria-hidden":!0,"data-direction":(u=c.sortDescriptor)==null?void 0:u.direction,"data-visible":w(((o=c.sortDescriptor)==null?void 0:o.column)===d.key),className:(n=r.sortIcon)==null?void 0:n.call(r,{class:p?.sortIcon})},F=typeof s=="function"?s(j):B.isValidElement(s)&&B.cloneElement(s,j);return h.jsxs(v,{ref:x,colSpan:d.colspan,"data-focus-visible":w($),"data-hover":w(E),"data-sortable":w(N),...I(D,f,O(C,{enabled:g}),N?S:{},b),className:(i=r.th)==null?void 0:i.call(r,{align:k,class:y}),children:[A?h.jsx(be,{children:d.rendered}):d.rendered,N&&(F||h.jsx(su,{strokeWidth:3,...j}))]})});xl.displayName="HeroUI.TableColumnHeader";var Cl=xl,Dl=T((e,t)=>{var l,u;const{as:o,className:n,children:i,node:a,slots:m,classNames:c,state:d,...r}=e,p=o||"tr",s=typeof p=="string",b=M(t),{rowProps:v}=Su({node:a},d),g=K(c?.tr,n,(l=a.props)==null?void 0:l.className);return h.jsx(p,{ref:b,...I(v,O(a.props,{enabled:s}),r),className:(u=m.tr)==null?void 0:u.call(m,{class:g}),children:i})});Dl.displayName="HeroUI.TableHeaderRow";var Bl=Dl,kl=B.forwardRef((e,t)=>{var l;const{as:u,className:o,children:n,slots:i,classNames:a,...m}=e,c=u||"thead",d=M(t),{rowGroupProps:r}=ge(),p=K(a?.thead,o);return h.jsx(c,{ref:d,className:(l=i.thead)==null?void 0:l.call(i,{class:p}),...I(r,m),children:n})});kl.displayName="HeroUI.TableRowGroup";var El=kl,Lu={px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},Ae=e=>{var t;return(t=Lu[e])!=null?t:e};function Uu(e){const[t,l]=Pe(e,Be.variantKeys),{as:u,className:o,x:n=1,y:i=1,...a}=t,m=u||"span",c=B.useMemo(()=>Be({...l,className:o}),[Ke(l),o]),d=Ae(n),r=Ae(i);return{Component:m,getSpacerProps:(s={})=>({...s,...a,"aria-hidden":w(!0),className:K(c,s.className),style:{...s.style,...a.style,marginLeft:d,marginTop:r}})}}var Sl=T((e,t)=>{const{Component:l,getSpacerProps:u}=Uu({...e});return h.jsx(l,{ref:t,...u()})});Sl.displayName="HeroUI.Spacer";var Al=Sl,wl=T((e,t)=>{const{BaseComponent:l,Component:u,collection:o,values:n,topContent:i,topContentPlacement:a,bottomContentPlacement:m,bottomContent:c,getBaseProps:d,getWrapperProps:r,getTableProps:p}=pl({...e,ref:t}),{rowHeight:s=40,maxTableHeight:b=600}=e,v=B.useCallback(({children:A})=>h.jsx(l,{...r(),ref:D,style:{height:b,display:"block"},children:A}),[r,b]),x=[...o.body.childNodes].length,D=B.useRef(null),[y,$]=B.useState(0),f=B.useRef(null);B.useLayoutEffect(()=>{f.current&&$(f.current.getBoundingClientRect().height)},[f]);const E=iu({count:x,getScrollElement:()=>D.current,estimateSize:()=>s,overscan:5}),S=p();return h.jsxs("div",{...d(),children:[a==="outside"&&i,h.jsx(v,{children:h.jsxs(h.Fragment,{children:[a==="inside"&&i,h.jsxs(u,{...S,style:{height:`calc(${E.getTotalSize()+y}px)`,...S.style},children:[h.jsxs(El,{ref:f,classNames:n.classNames,slots:n.slots,children:[o.headerRows.map(A=>h.jsx(Bl,{classNames:n.classNames,node:A,slots:n.slots,state:n.state,children:[...A.childNodes].map(k=>{var C;return(C=k?.props)!=null&&C.isSelectionCell?h.jsx(il,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,color:n.color,disableAnimation:n.disableAnimation,node:k,selectionMode:n.selectionMode,slots:n.slots,state:n.state},k?.key):h.jsx(Cl,{classNames:n.classNames,node:k,slots:n.slots,state:n.state},k?.key)})},A?.key)),h.jsx(Al,{as:"tr",tabIndex:-1,y:1})]}),h.jsx(Hu,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,collection:n.collection,color:n.color,disableAnimation:n.disableAnimation,isSelectable:n.isSelectable,rowVirtualizer:E,selectionMode:n.selectionMode,slots:n.slots,state:n.state})]}),m==="inside"&&c]})}),m==="outside"&&c]})});wl.displayName="HeroUI.VirtualizedTable";var Wu=wl,Nl=T((e,t)=>{var l;const{as:u,className:o,slots:n,state:i,collection:a,isSelectable:m,color:c,disableAnimation:d,checkboxesProps:r,selectionMode:p,classNames:s,...b}=e,v=u||"tbody",g=typeof v=="string",x=M(t),{rowGroupProps:D}=ge(),y=K(s?.tbody,o),$=a?.body.props,f=$?.isLoading||$?.loadingState==="loading"||$?.loadingState==="loadingMore",E=B.useMemo(()=>[...a.body.childNodes].map(k=>h.jsx($l,{classNames:s,isSelectable:m,node:k,slots:n,state:i,children:[...k.childNodes].map(C=>C.props.isSelectionCell?h.jsx(vl,{checkboxesProps:r,classNames:s,color:c,disableAnimation:d,node:C,rowKey:k.key,selectionMode:p,slots:n,state:i},C.key):h.jsx(fl,{classNames:s,node:C,rowKey:k.key,slots:n,state:i},C.key))},k.key)),[a.body.childNodes,s,m,n,i]);let S,A;return a.size===0&&$.emptyContent&&(S=h.jsx("tr",{role:"row",children:h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper}),colSpan:a.columnCount,role:"gridcell",children:!f&&$.emptyContent})})),f&&$.loadingContent&&(A=h.jsxs("tr",{role:"row",children:[h.jsx("td",{className:n?.loadingWrapper({class:s?.loadingWrapper}),colSpan:a.columnCount,role:"gridcell",children:$.loadingContent}),!S&&a.size===0?h.jsx("td",{className:n?.emptyWrapper({class:s?.emptyWrapper})}):null]})),h.jsxs(v,{ref:x,...I(D,O($,{enabled:g}),b),className:(l=n.tbody)==null?void 0:l.call(n,{class:y}),"data-empty":w(a.size===0),"data-loading":w(f),children:[E,A,S]})});Nl.displayName="HeroUI.TableBody";var Gu=Nl,zl=T((e,t)=>{const{BaseComponent:l,Component:u,collection:o,values:n,topContent:i,topContentPlacement:a,bottomContentPlacement:m,bottomContent:c,removeWrapper:d,sortIcon:r,getBaseProps:p,getWrapperProps:s,getTableProps:b}=pl({...e,ref:t}),{isVirtualized:v,rowHeight:g=40,maxTableHeight:x=600}=e,D=v,y=B.useCallback(({children:$})=>d?$:h.jsx(l,{...s(),children:$}),[d,s]);return D?h.jsx(Wu,{...e,ref:t,maxTableHeight:x,rowHeight:g}):h.jsxs("div",{...p(),children:[a==="outside"&&i,h.jsx(y,{children:h.jsxs(h.Fragment,{children:[a==="inside"&&i,h.jsxs(u,{...b(),children:[h.jsxs(El,{classNames:n.classNames,slots:n.slots,children:[o.headerRows.map($=>h.jsx(Bl,{classNames:n.classNames,node:$,slots:n.slots,state:n.state,children:[...$.childNodes].map(f=>{var E;return(E=f?.props)!=null&&E.isSelectionCell?h.jsx(il,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,color:n.color,disableAnimation:n.disableAnimation,node:f,selectionMode:n.selectionMode,slots:n.slots,state:n.state},f?.key):h.jsx(Cl,{classNames:n.classNames,node:f,slots:n.slots,sortIcon:r,state:n.state},f?.key)})},$?.key)),h.jsx(Al,{as:"tr",tabIndex:-1,y:1})]}),h.jsx(Gu,{checkboxesProps:n.checkboxesProps,classNames:n.classNames,collection:n.collection,color:n.color,disableAnimation:n.disableAnimation,isSelectable:n.isSelectable,selectionMode:n.selectionMode,slots:n.slots,state:n.state})]}),m==="inside"&&c]})}),m==="outside"&&c]})});zl.displayName="HeroUI.Table";var Yu=zl,Zu=Ru,_u=Zu,qu=Mu,Ju=qu,Xu=Vu,Qu=Xu,en=Tu,tn=en,ln=Ou,un=ln;const nn={n_requests:"Number Of Requests",estimated_cost:"Estimated Cost ($)"},we=["model","n_requests","prompt_tokens","completion_tokens","total_tokens","estimated_cost"];function on(e){return e.replace(/(-?)(\d*)\.?(\d*)e([+-]\d+)/,function(t,l,u,o,n){return n<0?l+"0."+Array(1-n-u.length).join("0")+o+u:l+u+o+Array(n-o.length+1).join("0")})}function mn({usage:e}){const t=Object.keys(e),{isOpen:l,onOpen:u,onClose:o}=Xl(),n=()=>{o()},i=Object.keys(e[t[0]]),a=[...we.filter(s=>s==="model"||i.includes(s)),...i.filter(s=>!we.includes(s))],m=i.reduce((s,b)=>({...s,[b]:0}),{}),c=t.reduce((s,b)=>(a.reduce((v,g)=>(g==="model"||(v[g]+=e[b][g]),v),s),s),m),d=[...a.map(s=>({key:s,label:nn[s]??De.words(s).map(De.upperFirst).join(" ")}))],r=[...t.map(s=>({model:s,...e[s]})),{model:"Total",...c}],p=h.jsxs("div",{className:"p-2",children:[h.jsxs("div",{className:"flex flex-col gap-2",children:[c.prompt_tokens!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Prompt tokens"}),h.jsx("span",{children:c.prompt_tokens})]}),c.completion_tokens!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Completion tokens"}),h.jsx("span",{children:c.completion_tokens})]}),c.total_tokens!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Total tokens"}),h.jsx("span",{children:c.total_tokens})]}),c.estimated_cost!==void 0&&h.jsxs("div",{className:"flex justify-between gap-2",children:[h.jsx("span",{className:"font-semibold",children:"Estimated cost"}),h.jsxs("span",{children:[on(c.estimated_cost.toString()),"$"]})]})]}),h.jsx("p",{className:"m-auto mt-2 text-center",children:"Show detailed usage breakdown by model."})]});return h.jsxs(h.Fragment,{children:[h.jsx(Ql,{content:p,placement:"bottom",children:h.jsx(eu,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open usage details",onPress:u,children:h.jsx(tu,{icon:"heroicons:information-circle"})})}),h.jsx(lu,{isOpen:l,onOpenChange:n,size:"4xl",children:h.jsx(uu,{children:h.jsxs(h.Fragment,{children:[h.jsx(ru,{className:"text-default-900 flex flex-col gap-1",children:"Usage details"}),h.jsx(nu,{children:h.jsxs(Yu,{"aria-label":"Table with detailed usage statistics for each model used to generate the message.",fullWidth:!0,children:[h.jsx(Ju,{columns:d,children:s=>h.jsx(_u,{children:s.label},s.key)}),h.jsx(tn,{items:r,children:s=>h.jsx(Qu,{className:s.model==="Total"?"border-default-200 border-t-1":"",children:b=>h.jsx(un,{children:ou(s,b)})},s.model)})]})})]})})})]})}export{mn as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-DLhLSjcY.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-DeDSU5YK.js similarity index 91% rename from packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-DLhLSjcY.js rename to packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-DeDSU5YK.js index 4bf39c7f1..7cf083c21 100644 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-DLhLSjcY.js +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/authStore-DeDSU5YK.js @@ -1 +1 @@ -import{bx as u,by as l,bz as c}from"./index-C75huGqt.js";const h=e=>({user_id:e.user_id,email:e.email}),d=u(l(c((e,i)=>({user:null,token:null,isAuthenticated:!1,tokenExpiration:null,hasHydrated:!1,onRehydrated:()=>{const{token:t,tokenExpiration:o,logout:n}=i(),a=Date.now(),s=(o??0)-a;!t||s<=0?n():e(r=>{r.isAuthenticated=!0}),e(r=>{r.hasHydrated=!0})},login:(t,o)=>e(n=>{n.user=t,n.token=o,n.tokenExpiration=Date.now()+o.expires_in*1e3,n.isAuthenticated=!0}),logout:()=>e(t=>{t.user=null,t.token=null,t.isAuthenticated=!1})})),{name:"ragbits-auth",partialize:e=>({token:e.token,tokenExpiration:e.tokenExpiration,user:e.user?h(e.user):null}),merge:(e,i)=>({...i,...e,isAuthenticated:!1}),onRehydrateStorage:e=>()=>{e.onRehydrated()}}));export{d as a}; +import{bu as u,bv as l,bw as c}from"./index-BTi2GGnV.js";const h=e=>({user_id:e.user_id,email:e.email}),d=u(l(c((e,i)=>({user:null,token:null,isAuthenticated:!1,tokenExpiration:null,hasHydrated:!1,onRehydrated:()=>{const{token:t,tokenExpiration:o,logout:n}=i(),a=Date.now(),s=(o??0)-a;!t||s<=0?n():e(r=>{r.isAuthenticated=!0}),e(r=>{r.hasHydrated=!0})},login:(t,o)=>e(n=>{n.user=t,n.token=o,n.tokenExpiration=Date.now()+o.expires_in*1e3,n.isAuthenticated=!0}),logout:()=>e(t=>{t.user=null,t.token=null,t.isAuthenticated=!1})})),{name:"ragbits-auth",partialize:e=>({token:e.token,tokenExpiration:e.tokenExpiration,user:e.user?h(e.user):null}),merge:(e,i)=>({...i,...e,isAuthenticated:!1}),onRehydrateStorage:e=>()=>{e.onRehydrated()}}));export{d as a}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BGelxbrz.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BGelxbrz.js new file mode 100644 index 000000000..8750c713d --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BGelxbrz.js @@ -0,0 +1 @@ +import{l as h,be as p,R as x,r as i,j as M,Z as R}from"./index-BTi2GGnV.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 N=s;export{N as m}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-DUS7ku-0.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-DUS7ku-0.js deleted file mode 100644 index 9841cc695..000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-DUS7ku-0.js +++ /dev/null @@ -1 +0,0 @@ -import{O as h,bo as p,A as x,r as i,j as M,J as H}from"./index-C75huGqt.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-SSA7SXE4-DnKzYyYP.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-4ESFtvtR.js similarity index 59% rename from packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-DnKzYyYP.js rename to packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-4ESFtvtR.js index 733f69aa8..1ab4565d1 100644 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-DnKzYyYP.js +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-4ESFtvtR.js @@ -1 +1 @@ -import{O as y,br as z,j as e,r as t,az as D}from"./index-C75huGqt.js";var E=y((O,B)=>{const{Component:H,label:u,description:r,isClearable:d,startContent:c,endContent:h,labelPlacement:L,hasHelper:x,isOutsideLeft:j,isOutsideTop:g,shouldLabelBeOutside:m,errorMessage:s,isInvalid:P,getBaseProps:w,getLabelProps:F,getInputProps:v,getInnerWrapperProps:b,getInputWrapperProps:o,getMainWrapperProps:C,getHelperWrapperProps:I,getDescriptionProps:l,getErrorMessageProps:i,getClearButtonProps:f}=z({...O,ref:B}),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]),p=t.useMemo(()=>{const W=P&&s;return!x||!(W||r)?null:e.jsx("div",{...I(),children:W?e.jsx("div",{...i(),children:s}):e.jsx("div",{...l(),children:r})})},[x,P,s,r,I,i,l]),a=t.useMemo(()=>e.jsxs("div",{...b(),children:[c,e.jsx("input",{...v()}),M]}),[c,M,v,b]),R=t.useMemo(()=>m?e.jsxs("div",{...C(),children:[e.jsxs("div",{...o(),children:[!j&&!g?n:null,a]}),p]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{...o(),children:[n,a]}),p]}),[L,p,m,n,a,s,r,C,o,i,l]);return e.jsxs(H,{...w(),children:[j||g?n:null,R]})});E.displayName="HeroUI.Input";var T=E;export{T as i}; +import{l as y,bo as D,j as e,r as t,am as N}from"./index-BTi2GGnV.js";var E=y((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:b,getInputWrapperProps:o,getMainWrapperProps:C,getHelperWrapperProps:I,getDescriptionProps:l,getErrorMessageProps:i,getClearButtonProps:f}=D({...B,ref:H}),n=u?e.jsx("label",{...F(),children:u}):null,M=t.useMemo(()=>d?e.jsx("button",{...f(),children:h||e.jsx(N,{})}):h,[d,f]),p=t.useMemo(()=>{const W=P&&s;return!x||!(W||r)?null:e.jsx("div",{...I(),children:W?e.jsx("div",{...i(),children:s}):e.jsx("div",{...l(),children:r})})},[x,P,s,r,I,i,l]),a=t.useMemo(()=>e.jsxs("div",{...b(),children:[c,e.jsx("input",{...v()}),M]}),[c,M,v,b]),R=t.useMemo(()=>m?e.jsxs("div",{...C(),children:[e.jsxs("div",{...o(),children:[!j&&!g?n:null,a]}),p]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{...o(),children:[n,a]}),p]}),[O,p,m,n,a,s,r,C,o,i,l]);return e.jsxs(L,{...w(),children:[j||g?n:null,R]})});E.displayName="HeroUI.Input";var U=E;export{U as i}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-3BSSmhVm.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-3BSSmhVm.js deleted file mode 100644 index 2f842ccd5..000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-3BSSmhVm.js +++ /dev/null @@ -1 +0,0 @@ -import{bA as a,bB as e,bC as t}from"./index-C75huGqt.js";const n={renderer:t,...e,...a};var o=n;export{o as default}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-B4da2YBv.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-B4da2YBv.js new file mode 100644 index 000000000..17e56c841 --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-B4da2YBv.js @@ -0,0 +1,4 @@ +import{j as E,r as x,bd as I}from"./index-BTi2GGnV.js";var L=({strokeWidth:o=1.5,...l})=>E.jsx("svg",{"aria-hidden":"true",fill:"none",focusable:"false",height:"1em",role:"presentation",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:o,viewBox:"0 0 24 24",width:"1em",...l,children:E.jsx("path",{d:"m6 9 6 6 6-6"})});function g(o,l,e){let s=e.initialDeps??[],t;return()=>{var n,i,r,h;let c;e.key&&((n=e.debug)!=null&&n.call(e))&&(c=Date.now());const a=o();if(!(a.length!==s.length||a.some((m,f)=>s[f]!==m)))return t;s=a;let d;if(e.key&&((i=e.debug)!=null&&i.call(e))&&(d=Date.now()),t=l(...a),e.key&&((r=e.debug)!=null&&r.call(e))){const m=Math.round((Date.now()-c)*100)/100,f=Math.round((Date.now()-d)*100)/100,v=f/16,b=(u,z)=>{for(u=String(u);u.lengthMath.abs(o-l)<1,C=(o,l,e)=>{let s;return function(...t){o.clearTimeout(s),s=o.setTimeout(()=>l.apply(this,t),e)}},T=o=>o,R=o=>{const l=Math.max(o.startIndex-o.overscan,0),e=Math.min(o.endIndex+o.overscan,o.count-1),s=[];for(let t=l;t<=e;t++)s.push(t);return s},_=(o,l)=>{const e=o.scrollElement;if(!e)return;const s=o.targetWindow;if(!s)return;const t=i=>{const{width:r,height:h}=i;l({width:Math.round(r),height:Math.round(h)})};if(t(e.getBoundingClientRect()),!s.ResizeObserver)return()=>{};const n=new s.ResizeObserver(i=>{const r=i[0];if(r?.borderBoxSize){const h=r.borderBoxSize[0];if(h){t({width:h.inlineSize,height:h.blockSize});return}}t(e.getBoundingClientRect())});return n.observe(e,{box:"border-box"}),()=>{n.unobserve(e)}},w={passive:!0},k=typeof window>"u"?!0:"onscrollend"in window,D=(o,l)=>{const e=o.scrollElement;if(!e)return;const s=o.targetWindow;if(!s)return;let t=0;const n=o.options.useScrollendEvent&&k?()=>{}:C(s,()=>{l(t,!1)},o.options.isScrollingResetDelay),i=c=>()=>{const{horizontal:a,isRtl:p}=o.options;t=a?e.scrollLeft*(p&&-1||1):e.scrollTop,n(),l(t,c)},r=i(!0),h=i(!1);return h(),e.addEventListener("scroll",r,w),e.addEventListener("scrollend",h,w),()=>{e.removeEventListener("scroll",r),e.removeEventListener("scrollend",h)}},F=(o,l,e)=>{if(l?.borderBoxSize){const s=l.borderBoxSize[0];if(s)return Math.round(s[e.options.horizontal?"inlineSize":"blockSize"])}return Math.round(o.getBoundingClientRect()[e.options.horizontal?"width":"height"])},j=(o,{adjustments:l=0,behavior:e},s)=>{var t,n;const i=o+l;(n=(t=s.scrollElement)==null?void 0:t.scrollTo)==null||n.call(t,{[s.options.horizontal?"left":"top"]:i,behavior:e})};class A{constructor(l){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const s=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(t=>{t.forEach(n=>{this._measureElement(n.target,n)})}));return{disconnect:()=>{var t;(t=s())==null||t.disconnect(),e=null},observe:t=>{var n;return(n=s())==null?void 0:n.observe(t,{box:"border-box"})},unobserve:t=>{var n;return(n=s())==null?void 0:n.unobserve(t)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([s,t])=>{typeof t>"u"&&delete e[s]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:T,rangeExtractor:R,onChange:()=>{},measureElement:F,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!0,...e}},this.notify=e=>{var s,t;(t=(s=this.options).onChange)==null||t.call(s,this,e)},this.maybeNotify=g(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(t=>{this.observer.observe(t)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,t=>{this.scrollRect=t,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(t,n)=>{this.scrollAdjustments=0,this.scrollDirection=n?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,s)=>{const t=new Map,n=new Map;for(let i=s-1;i>=0;i--){const r=e[i];if(t.has(r.lane))continue;const h=n.get(r.lane);if(h==null||r.end>h.end?n.set(r.lane,r):r.endi.end===r.end?i.index-r.index:i.end-r.end)[0]:void 0},this.getMeasurementOptions=g(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,s,t,n,i)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:s,scrollMargin:t,getItemKey:n,enabled:i}),{key:!1}),this.getMeasurements=g(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:s,scrollMargin:t,getItemKey:n,enabled:i},r)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(a=>{this.itemSizeCache.set(a.key,a.size)}));const h=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const c=this.measurementsCache.slice(0,h);for(let a=h;athis.options.debug}),this.calculateRange=g(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()],(e,s,t)=>this.range=e.length>0&&s>0?W({measurements:e,outerSize:s,scrollOffset:t}):null,{key:!1,debug:()=>this.options.debug}),this.getIndexes=g(()=>{let e=null,s=null;const t=this.calculateRange();return t&&(e=t.startIndex,s=t.endIndex),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,s]},(e,s,t,n,i)=>n===null||i===null?[]:e({startIndex:n,endIndex:i,overscan:s,count:t}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const s=this.options.indexAttribute,t=e.getAttribute(s);return t?parseInt(t,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this._measureElement=(e,s)=>{const t=this.indexFromElement(e),n=this.measurementsCache[t];if(!n)return;const i=n.key,r=this.elementsCache.get(i);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(i,e)),e.isConnected&&this.resizeItem(t,this.options.measureElement(e,s,this))},this.resizeItem=(e,s)=>{const t=this.measurementsCache[e];if(!t)return;const n=this.itemSizeCache.get(t.key)??t.size,i=s-n;i!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(t,i,this):t.start{if(!e){this.elementsCache.forEach((s,t)=>{s.isConnected||(this.observer.unobserve(s),this.elementsCache.delete(t))});return}this._measureElement(e,void 0)},this.getVirtualItems=g(()=>[this.getIndexes(),this.getMeasurements()],(e,s)=>{const t=[];for(let n=0,i=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{const s=this.getMeasurements();if(s.length!==0)return S(s[O(0,s.length-1,t=>S(s[t]).start,e)])},this.getOffsetForAlignment=(e,s)=>{const t=this.getSize(),n=this.getScrollOffset();s==="auto"&&e>=n+t&&(s="end"),s==="end"&&(e-=t);const i=this.options.horizontal?"scrollWidth":"scrollHeight",h=(this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[i]:this.scrollElement[i]:0)-t;return Math.max(Math.min(h,e),0)},this.getOffsetForIndex=(e,s="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const t=this.measurementsCache[e];if(!t)return;const n=this.getSize(),i=this.getScrollOffset();if(s==="auto")if(t.end>=i+n-this.options.scrollPaddingEnd)s="end";else if(t.start<=i+this.options.scrollPaddingStart)s="start";else return[i,s];const r=t.start-this.options.scrollPaddingStart+(t.size-n)/2;switch(s){case"center":return[this.getOffsetForAlignment(r,s),s];case"end":return[this.getOffsetForAlignment(t.end+this.options.scrollPaddingEnd,s),s];default:return[this.getOffsetForAlignment(t.start-this.options.scrollPaddingStart,s),s]}},this.isDynamicMode=()=>this.elementsCache.size>0,this.cancelScrollToIndex=()=>{this.scrollToIndexTimeoutId!==null&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(e,{align:s="start",behavior:t}={})=>{this.cancelScrollToIndex(),t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,s),{adjustments:void 0,behavior:t})},this.scrollToIndex=(e,{align:s="auto",behavior:t}={})=>{e=Math.max(0,Math.min(e,this.options.count-1)),this.cancelScrollToIndex(),t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const n=this.getOffsetForIndex(e,s);if(!n)return;const[i,r]=n;this._scrollToOffset(i,{adjustments:void 0,behavior:t}),t!=="smooth"&&this.isDynamicMode()&&this.targetWindow&&(this.scrollToIndexTimeoutId=this.targetWindow.setTimeout(()=>{if(this.scrollToIndexTimeoutId=null,this.elementsCache.has(this.options.getItemKey(e))){const[c]=S(this.getOffsetForIndex(e,r));y(c,this.getScrollOffset())||this.scrollToIndex(e,{align:r,behavior:t})}else this.scrollToIndex(e,{align:r,behavior:t})}))},this.scrollBy=(e,{behavior:s}={})=>{this.cancelScrollToIndex(),s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:s})},this.getTotalSize=()=>{var e;const s=this.getMeasurements();let t;return s.length===0?t=this.options.paddingStart:t=this.options.lanes===1?((e=s[s.length-1])==null?void 0:e.end)??0:Math.max(...s.slice(-this.options.lanes).map(n=>n.end)),Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:s,behavior:t})=>{this.options.scrollToFn(e,{behavior:t,adjustments:s},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(l)}}const O=(o,l,e,s)=>{for(;o<=l;){const t=(o+l)/2|0,n=e(t);if(ns)l=t-1;else return t}return o>0?o-1:0};function W({measurements:o,outerSize:l,scrollOffset:e}){const s=o.length-1,n=O(0,s,r=>o[r].start,e);let i=n;for(;i({}),{})[1],e={...o,onChange:(t,n)=>{var i;n?I.flushSync(l):l(),(i=o.onChange)==null||i.call(o,t,n)}},[s]=x.useState(()=>new A(e));return s.setOptions(e),M(()=>s._didMount(),[]),M(()=>s._willUpdate()),s}function N(o){return B({observeElementRect:_,observeElementOffset:D,scrollToFn:j,...o})}export{L as C,N as u}; diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-BTHsSiyo.css b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-BTHsSiyo.css deleted file mode 100644 index 988f13912..000000000 --- a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-BTHsSiyo.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-scroll-snap-strictness:proximity;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-yellow-600:oklch(68.1% .162 75.834);--color-green-600:oklch(62.7% .194 149.214);--color-purple-500:oklch(62.7% .265 303.9);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-extralight:200;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--animate-pop-in:pop-in .2s ease-out forwards;--color-primary:#1b54ff}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root,[data-theme]{color:hsl(var(--heroui-foreground));background-color:hsl(var(--heroui-background))}:root,[data-theme=light]{color-scheme:light;--heroui-background:0 0% 100%;--heroui-foreground-50:0 0% 98.04%;--heroui-foreground-100:240 4.76% 95.88%;--heroui-foreground-200:240 5.88% 90%;--heroui-foreground-300:240 4.88% 83.92%;--heroui-foreground-400:240 5.03% 64.9%;--heroui-foreground-500:240 3.83% 46.08%;--heroui-foreground-600:240 5.2% 33.92%;--heroui-foreground-700:240 5.26% 26.08%;--heroui-foreground-800:240 3.7% 15.88%;--heroui-foreground-900:240 5.88% 10%;--heroui-foreground:201.82 24.44% 8.82%;--heroui-divider:0 0% 6.67%;--heroui-focus:212.02 100% 46.67%;--heroui-overlay:0 0% 0%;--heroui-content1:0 0% 100%;--heroui-content1-foreground:201.82 24.44% 8.82%;--heroui-content2:240 4.76% 95.88%;--heroui-content2-foreground:240 3.7% 15.88%;--heroui-content3:240 5.88% 90%;--heroui-content3-foreground:240 5.26% 26.08%;--heroui-content4:240 4.88% 83.92%;--heroui-content4-foreground:240 5.2% 33.92%;--heroui-default-50:0 0% 98.04%;--heroui-default-100:240 4.76% 95.88%;--heroui-default-200:240 5.88% 90%;--heroui-default-300:240 4.88% 83.92%;--heroui-default-400:240 5.03% 64.9%;--heroui-default-500:240 3.83% 46.08%;--heroui-default-600:240 5.2% 33.92%;--heroui-default-700:240 5.26% 26.08%;--heroui-default-800:240 3.7% 15.88%;--heroui-default-900:240 5.88% 10%;--heroui-default-foreground:0 0% 0%;--heroui-default:240 4.88% 83.92%;--heroui-primary-50:212.5 92.31% 94.9%;--heroui-primary-100:211.84 92.45% 89.61%;--heroui-primary-200:211.84 92.45% 79.22%;--heroui-primary-300:212.24 92.45% 68.82%;--heroui-primary-400:212.14 92.45% 58.43%;--heroui-primary-500:212.02 100% 46.67%;--heroui-primary-600:212.14 100% 38.43%;--heroui-primary-700:212.24 100% 28.82%;--heroui-primary-800:211.84 100% 19.22%;--heroui-primary-900:211.84 100% 9.61%;--heroui-primary-foreground:0 0% 100%;--heroui-primary:212.02 100% 46.67%;--heroui-secondary-50:270 61.54% 94.9%;--heroui-secondary-100:270 59.26% 89.41%;--heroui-secondary-200:270 59.26% 78.82%;--heroui-secondary-300:270 59.26% 68.24%;--heroui-secondary-400:270 59.26% 57.65%;--heroui-secondary-500:270 66.67% 47.06%;--heroui-secondary-600:270 66.67% 37.65%;--heroui-secondary-700:270 66.67% 28.24%;--heroui-secondary-800:270 66.67% 18.82%;--heroui-secondary-900:270 66.67% 9.41%;--heroui-secondary-foreground:0 0% 100%;--heroui-secondary:270 66.67% 47.06%;--heroui-success-50:146.67 64.29% 94.51%;--heroui-success-100:145.71 61.4% 88.82%;--heroui-success-200:146.2 61.74% 77.45%;--heroui-success-300:145.79 62.57% 66.47%;--heroui-success-400:146.01 62.45% 55.1%;--heroui-success-500:145.96 79.46% 43.92%;--heroui-success-600:146.01 79.89% 35.1%;--heroui-success-700:145.79 79.26% 26.47%;--heroui-success-800:146.2 79.78% 17.45%;--heroui-success-900:145.71 77.78% 8.82%;--heroui-success-foreground:0 0% 0%;--heroui-success:145.96 79.46% 43.92%;--heroui-warning-50:54.55 91.67% 95.29%;--heroui-warning-100:37.14 91.3% 90.98%;--heroui-warning-200:37.14 91.3% 81.96%;--heroui-warning-300:36.96 91.24% 73.14%;--heroui-warning-400:37.01 91.26% 64.12%;--heroui-warning-500:37.03 91.27% 55.1%;--heroui-warning-600:37.01 74.22% 44.12%;--heroui-warning-700:36.96 73.96% 33.14%;--heroui-warning-800:37.14 75% 21.96%;--heroui-warning-900:37.14 75% 10.98%;--heroui-warning-foreground:0 0% 0%;--heroui-warning:37.03 91.27% 55.1%;--heroui-danger-50:339.13 92% 95.1%;--heroui-danger-100:340 91.84% 90.39%;--heroui-danger-200:339.33 90% 80.39%;--heroui-danger-300:339.11 90.6% 70.78%;--heroui-danger-400:339 90% 60.78%;--heroui-danger-500:339.2 90.36% 51.18%;--heroui-danger-600:339 86.54% 40.78%;--heroui-danger-700:339.11 85.99% 30.78%;--heroui-danger-800:339.33 86.54% 20.39%;--heroui-danger-900:340 84.91% 10.39%;--heroui-danger-foreground:0 0% 100%;--heroui-danger:339.2 90.36% 51.18%;--heroui-divider-weight:1px;--heroui-disabled-opacity:.5;--heroui-font-size-tiny:.75rem;--heroui-font-size-small:.875rem;--heroui-font-size-medium:1rem;--heroui-font-size-large:1.125rem;--heroui-line-height-tiny:1rem;--heroui-line-height-small:1.25rem;--heroui-line-height-medium:1.5rem;--heroui-line-height-large:1.75rem;--heroui-radius-small:8px;--heroui-radius-medium:12px;--heroui-radius-large:14px;--heroui-border-width-small:1px;--heroui-border-width-medium:2px;--heroui-border-width-large:3px;--heroui-box-shadow-small:0px 0px 5px 0px #00000005,0px 2px 10px 0px #0000000f,0px 0px 1px 0px #0000004d;--heroui-box-shadow-medium:0px 0px 15px 0px #00000008,0px 2px 30px 0px #00000014,0px 0px 1px 0px #0000004d;--heroui-box-shadow-large:0px 0px 30px 0px #0000000a,0px 30px 60px 0px #0000001f,0px 0px 1px 0px #0000004d;--heroui-hover-opacity:.8}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.start-0{inset-inline-start:calc(var(--spacing)*0)}.start-1\.5{inset-inline-start:calc(var(--spacing)*1.5)}.start-2{inset-inline-start:calc(var(--spacing)*2)}.start-3{inset-inline-start:calc(var(--spacing)*3)}.start-auto{inset-inline-start:auto}.end-1{inset-inline-end:calc(var(--spacing)*1)}.end-1\.5{inset-inline-end:calc(var(--spacing)*1.5)}.end-3{inset-inline-end:calc(var(--spacing)*3)}.end-18{inset-inline-end:calc(var(--spacing)*18)}.end-auto{inset-inline-end:auto}.-top-2{top:calc(var(--spacing)*-2)}.-top-16{top:calc(var(--spacing)*-16)}.-top-px{top:-1px}.top-0{top:calc(var(--spacing)*0)}.top-1{top:calc(var(--spacing)*1)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\[5\%\]{top:5%}.top-\[10\%\]{top:10%}.top-\[calc\(46\%\)\]{top:46%}.top-\[calc\(100\%_\+_2px\)\]{top:calc(100% + 2px)}.top-\[var\(--navbar-height\)\]{top:var(--navbar-height)}.-right-2{right:calc(var(--spacing)*-2)}.-right-px{right:-1px}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.right-\[5\%\]{right:5%}.right-\[10\%\]{right:10%}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-16{bottom:calc(var(--spacing)*16)}.bottom-\[5\%\]{bottom:5%}.bottom-\[10\%\]{bottom:10%}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing)*4)}.left-\[5\%\]{left:5%}.left-\[10\%\]{left:10%}.left-\[calc\(37\.5\%\)\]{left:37.5%}.-z-30{z-index:-30}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.order-3{order:3}.container{width:100%}@media (min-width:28rem){.container{max-width:28rem}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-2{margin:calc(var(--spacing)*-2)}.-m-2\.5{margin:calc(var(--spacing)*-2.5)}.m-0{margin:calc(var(--spacing)*0)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-\[calc\(\(theme\(spacing\.5\)-theme\(spacing\.1\)\)\/2\)\]{margin-inline:.5rem}.mx-\[calc\(\(theme\(spacing\.6\)-theme\(spacing\.3\)\)\/2\)\]{margin-inline:.375rem}.mx-\[calc\(\(theme\(spacing\.7\)-theme\(spacing\.5\)\)\/2\)\]{margin-inline:.25rem}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing)*0)}.my-1{margin-block:calc(var(--spacing)*1)}.my-16{margin-block:calc(var(--spacing)*16)}.my-\[calc\(\(theme\(spacing\.5\)-theme\(spacing\.1\)\)\/2\)\]{margin-block:.5rem}.my-\[calc\(\(theme\(spacing\.6\)-theme\(spacing\.3\)\)\/2\)\]{margin-block:.375rem}.my-\[calc\(\(theme\(spacing\.7\)-theme\(spacing\.5\)\)\/2\)\]{margin-block:.25rem}.my-auto{margin-block:auto}.-ms-2{margin-inline-start:calc(var(--spacing)*-2)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.ms-3{margin-inline-start:calc(var(--spacing)*3)}.me-2{margin-inline-end:calc(var(--spacing)*2)}.me-4{margin-inline-end:calc(var(--spacing)*4)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px rgb(var(--tw-prose-kbd-shadows)/10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-auto{margin-top:auto}.-mr-2{margin-right:calc(var(--spacing)*-2)}.mr-4{margin-right:calc(var(--spacing)*4)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-px{margin-bottom:1px}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.scrollbar-default{-ms-overflow-style:auto;scrollbar-width:auto}.scrollbar-default::-webkit-scrollbar{display:block}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-square{aspect-ratio:1}.size-1{width:calc(var(--spacing)*1);height:calc(var(--spacing)*1)}.size-1\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.\!h-auto{height:auto!important}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-40{height:calc(var(--spacing)*40)}.h-\[--visual-viewport-height\]{height:--visual-viewport-height}.h-\[2px\]{height:2px}.h-\[8\%\]{height:8%}.h-\[50\%\]{height:50%}.h-\[100dvh\]{height:100dvh}.h-\[calc\(100dvh_-_var\(--navbar-height\)\)\]{height:calc(100dvh - var(--navbar-height))}.h-\[var\(--navbar-height\)\]{height:var(--navbar-height)}.h-\[var\(--picker-height\)\]{height:var(--picker-height)}.h-auto{height:auto}.h-divider{height:var(--heroui-divider-weight)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[20rem\]{max-height:20rem}.max-h-\[24rem\]{max-height:24rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[32rem\]{max-height:32rem}.max-h-\[36rem\]{max-height:36rem}.max-h-\[42rem\]{max-height:42rem}.max-h-\[48rem\]{max-height:48rem}.max-h-\[56rem\]{max-height:56rem}.max-h-\[64rem\]{max-height:64rem}.max-h-\[90vh\]{max-height:90vh}.max-h-\[664px\]{max-height:664px}.max-h-\[calc\(100\%_-_8rem\)\]{max-height:calc(100% - 8rem)}.max-h-\[none\]{max-height:none}.max-h-full{max-height:100%}.min-h-3{min-height:calc(var(--spacing)*3)}.min-h-3\.5{min-height:calc(var(--spacing)*3.5)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-5{min-height:calc(var(--spacing)*5)}.min-h-6{min-height:calc(var(--spacing)*6)}.min-h-7{min-height:calc(var(--spacing)*7)}.min-h-8{min-height:calc(var(--spacing)*8)}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-12{min-height:calc(var(--spacing)*12)}.min-h-14{min-height:calc(var(--spacing)*14)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[32px\]{min-height:32px}.min-h-\[48rem\]{min-height:48rem}.min-h-\[50px\]{min-height:50px}.min-h-\[100dvh\]{min-height:100dvh}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-\[25\%\]{width:25%}.w-\[80\%\]{width:80%}.w-\[calc\(100\%_-_16px\)\]{width:calc(100% - 16px)}.w-\[calc\(100\%_-theme\(spacing\.6\)\)\]{width:calc(100% - 1.5rem)}.w-\[calc\(var\(--visible-months\)_\*_var\(--calendar-width\)\)\]{width:calc(var(--visible-months)*var(--calendar-width))}.w-auto{width:auto}.w-divider{width:var(--heroui-divider-weight)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[33\%\]{max-width:33%}.max-w-\[75\%\]{max-width:75%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[270px\]{max-width:270px}.max-w-\[600px\]{max-width:600px}.max-w-\[640px\]{max-width:640px}.max-w-\[768px\]{max-width:768px}.max-w-\[1024px\]{max-width:1024px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[1536px\]{max-width:1536px}.max-w-\[none\]{max-width:none}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-3{min-width:calc(var(--spacing)*3)}.min-w-3\.5{min-width:calc(var(--spacing)*3.5)}.min-w-4{min-width:calc(var(--spacing)*4)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-6{min-width:calc(var(--spacing)*6)}.min-w-7{min-width:calc(var(--spacing)*7)}.min-w-8{min-width:calc(var(--spacing)*8)}.min-w-9{min-width:calc(var(--spacing)*9)}.min-w-10{min-width:calc(var(--spacing)*10)}.min-w-12{min-width:calc(var(--spacing)*12)}.min-w-16{min-width:calc(var(--spacing)*16)}.min-w-20{min-width:calc(var(--spacing)*20)}.min-w-24{min-width:calc(var(--spacing)*24)}.min-w-40{min-width:calc(var(--spacing)*40)}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[120px\]{min-width:120px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.min-w-min{min-width:min-content}.flex-1{flex:1}.flex-auto{flex:auto}.flex-initial{flex:0 auto}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-0{flex-basis:calc(var(--spacing)*0)}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.origin-center{transform-origin:50%}.origin-left{transform-origin:0}.origin-right{transform-origin:100%}.origin-top{transform-origin:top}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2,.translate-y-2\/4{--tw-translate-y: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-3\/4{--tw-translate-y: 75% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-50{--tw-scale-x:50%;--tw-scale-y:50%;--tw-scale-z:50%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-90{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-45{rotate:-45deg}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.spinner-bar-animation{animation-delay:calc(-1.2s + (.1s*var(--bar-index)));transform:rotate(calc(30deg*var(--bar-index)))translate(140%)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform-gpu{transform:translateZ(0)var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\[appearance-in_1s_infinite\]{animation:1s infinite appearance-in}.animate-blink{animation:1.4s infinite both blink}.animate-drip-expand{animation:.42s linear drip-expand}.animate-fade-out{animation:1.2s linear infinite fade-out}.animate-indeterminate-bar{animation:1.5s cubic-bezier(.65,.815,.735,.395) infinite indeterminate-bar}.animate-none{animation:none}.animate-spin{animation:var(--animate-spin)}.animate-spinner-ease-spin{animation:.8s infinite spinner-spin}.animate-spinner-linear-spin{animation:.8s linear infinite spinner-spin}.animate-sway{animation:.75s infinite sway}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize-none{resize:none}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.scroll-py-6{scroll-padding-block:calc(var(--spacing)*6)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.\!gap-0{gap:calc(var(--spacing)*0)!important}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-0{column-gap:calc(var(--spacing)*0)}.gap-x-0\.5{column-gap:calc(var(--spacing)*.5)}.gap-x-1{column-gap:calc(var(--spacing)*1)}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-6{column-gap:calc(var(--spacing)*6)}:where(.space-x-0\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*.5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0{row-gap:calc(var(--spacing)*0)}.gap-y-1\.5{row-gap:calc(var(--spacing)*1.5)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-\[calc\(var\(--heroui-radius-large\)\/1\.5\)\]{border-radius:calc(var(--heroui-radius-large)/1.5)}.rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.5\)\]{border-radius:calc(var(--heroui-radius-medium)*.5)}.rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.6\)\]{border-radius:calc(var(--heroui-radius-medium)*.6)}.rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.7\)\]{border-radius:calc(var(--heroui-radius-medium)*.7)}.rounded-\[calc\(var\(--heroui-radius-medium\)\/2\)\]{border-radius:calc(var(--heroui-radius-medium)/2)}.rounded-\[calc\(var\(--heroui-radius-small\)\/2\)\]{border-radius:calc(var(--heroui-radius-small)/2)}.rounded-full{border-radius:3.40282e38px}.rounded-large{border-radius:var(--heroui-radius-large)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-medium{border-radius:var(--heroui-radius-medium)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-small{border-radius:var(--heroui-radius-small)}.\!rounded-s-none{border-start-start-radius:0!important;border-end-start-radius:0!important}.\!rounded-e-none{border-start-end-radius:0!important;border-end-end-radius:0!important}.rounded-t-large{border-top-left-radius:var(--heroui-radius-large);border-top-right-radius:var(--heroui-radius-large)}.rounded-t-medium{border-top-left-radius:var(--heroui-radius-medium);border-top-right-radius:var(--heroui-radius-medium)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-t-small{border-top-left-radius:var(--heroui-radius-small);border-top-right-radius:var(--heroui-radius-small)}.rounded-l-medium{border-top-left-radius:var(--heroui-radius-medium);border-bottom-left-radius:var(--heroui-radius-medium)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr-medium{border-top-right-radius:var(--heroui-radius-medium)}.rounded-b-large{border-bottom-right-radius:var(--heroui-radius-large);border-bottom-left-radius:var(--heroui-radius-large)}.rounded-b-medium{border-bottom-right-radius:var(--heroui-radius-medium);border-bottom-left-radius:var(--heroui-radius-medium)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-b-small{border-bottom-right-radius:var(--heroui-radius-small);border-bottom-left-radius:var(--heroui-radius-small)}.rounded-br-medium{border-bottom-right-radius:var(--heroui-radius-medium)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-medium{border-style:var(--tw-border-style);border-width:var(--heroui-border-width-medium)}.border-small{border-style:var(--tw-border-style);border-width:var(--heroui-border-width-small)}.border-x-\[calc\(theme\(spacing\.5\)\/2\)\]{border-inline-style:var(--tw-border-style);border-inline-width:.625rem}.border-x-\[calc\(theme\(spacing\.6\)\/2\)\]{border-inline-style:var(--tw-border-style);border-inline-width:.75rem}.border-x-\[calc\(theme\(spacing\.7\)\/2\)\]{border-inline-style:var(--tw-border-style);border-inline-width:.875rem}.border-y-\[calc\(theme\(spacing\.5\)\/2\)\]{border-block-style:var(--tw-border-style);border-block-width:.625rem}.border-y-\[calc\(theme\(spacing\.6\)\/2\)\]{border-block-style:var(--tw-border-style);border-block-width:.75rem}.border-y-\[calc\(theme\(spacing\.7\)\/2\)\]{border-block-style:var(--tw-border-style);border-block-width:.875rem}.border-t-1{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-medium{border-bottom-style:var(--tw-border-style);border-bottom-width:var(--heroui-border-width-medium)}.border-b-small{border-bottom-style:var(--tw-border-style);border-bottom-width:var(--heroui-border-width-small)}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.\!border-none{--tw-border-style:none!important;border-style:none!important}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.\!border-danger{border-color:hsl(var(--heroui-danger)/1)!important}.border-background{border-color:hsl(var(--heroui-background)/1)}.border-danger{border-color:hsl(var(--heroui-danger)/1)}.border-danger-100{border-color:hsl(var(--heroui-danger-100)/1)}.border-danger-200{border-color:hsl(var(--heroui-danger-200)/1)}.border-danger-400{border-color:hsl(var(--heroui-danger-400)/1)}.border-default{border-color:hsl(var(--heroui-default)/1)}.border-default-100{border-color:hsl(var(--heroui-default-100)/1)}.border-default-200{border-color:hsl(var(--heroui-default-200)/1)}.border-default-300{border-color:hsl(var(--heroui-default-300)/1)}.border-default-400{border-color:hsl(var(--heroui-default-400)/1)}.border-divider{border-color:hsl(var(--heroui-divider)/.15)}.border-foreground{border-color:hsl(var(--heroui-foreground)/1)}.border-foreground-400{border-color:hsl(var(--heroui-foreground-400)/1)}.border-primary{border-color:var(--color-primary)}.border-primary-100{border-color:hsl(var(--heroui-primary-100)/1)}.border-primary-200{border-color:hsl(var(--heroui-primary-200)/1)}.border-primary-400{border-color:hsl(var(--heroui-primary-400)/1)}.border-secondary{border-color:hsl(var(--heroui-secondary)/1)}.border-secondary-100{border-color:hsl(var(--heroui-secondary-100)/1)}.border-secondary-200{border-color:hsl(var(--heroui-secondary-200)/1)}.border-secondary-400{border-color:hsl(var(--heroui-secondary-400)/1)}.border-success{border-color:hsl(var(--heroui-success)/1)}.border-success-100{border-color:hsl(var(--heroui-success-100)/1)}.border-success-200{border-color:hsl(var(--heroui-success-200)/1)}.border-success-300{border-color:hsl(var(--heroui-success-300)/1)}.border-success-400{border-color:hsl(var(--heroui-success-400)/1)}.border-transparent{border-color:#0000}.border-warning{border-color:hsl(var(--heroui-warning)/1)}.border-warning-100{border-color:hsl(var(--heroui-warning-100)/1)}.border-warning-200{border-color:hsl(var(--heroui-warning-200)/1)}.border-warning-300{border-color:hsl(var(--heroui-warning-300)/1)}.border-warning-400{border-color:hsl(var(--heroui-warning-400)/1)}.border-x-transparent{border-inline-color:#0000}.border-y-transparent{border-block-color:#0000}.border-t-transparent{border-top-color:#0000}.border-r-transparent{border-right-color:#0000}.border-b-current{border-bottom-color:currentColor}.border-b-danger{border-bottom-color:hsl(var(--heroui-danger)/1)}.border-b-default{border-bottom-color:hsl(var(--heroui-default)/1)}.border-b-primary{border-bottom-color:var(--color-primary)}.border-b-secondary{border-bottom-color:hsl(var(--heroui-secondary)/1)}.border-b-success{border-bottom-color:hsl(var(--heroui-success)/1)}.border-b-warning{border-bottom-color:hsl(var(--heroui-warning)/1)}.border-b-white{border-bottom-color:var(--color-white)}.border-l-transparent{border-left-color:#0000}.\!bg-danger-50{background-color:hsl(var(--heroui-danger-50)/1)!important}.\!bg-transparent{background-color:#0000!important}.bg-background,.bg-background\/10{background-color:hsl(var(--heroui-background)/1)}@supports (color:color-mix(in lab,red,red)){.bg-background\/10{background-color:color-mix(in oklab,hsl(var(--heroui-background)/1)10%,transparent)}}.bg-background\/70{background-color:hsl(var(--heroui-background)/1)}@supports (color:color-mix(in lab,red,red)){.bg-background\/70{background-color:color-mix(in oklab,hsl(var(--heroui-background)/1)70%,transparent)}}.bg-background\/80{background-color:hsl(var(--heroui-background)/1)}@supports (color:color-mix(in lab,red,red)){.bg-background\/80{background-color:color-mix(in oklab,hsl(var(--heroui-background)/1)80%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab,red,red)){.bg-black\/90{background-color:color-mix(in oklab,var(--color-black)90%,transparent)}}.bg-content1{background-color:hsl(var(--heroui-content1)/1)}.bg-content3{background-color:hsl(var(--heroui-content3)/1)}.bg-current{background-color:currentColor}.bg-danger{background-color:hsl(var(--heroui-danger)/1)}.bg-danger-50{background-color:hsl(var(--heroui-danger-50)/1)}.bg-danger-100{background-color:hsl(var(--heroui-danger-100)/1)}.bg-danger-400{background-color:hsl(var(--heroui-danger-400)/1)}.bg-danger\/20{background-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.bg-danger\/20{background-color:color-mix(in oklab,hsl(var(--heroui-danger)/1)20%,transparent)}}.bg-default{background-color:hsl(var(--heroui-default)/1)}.bg-default-50{background-color:hsl(var(--heroui-default-50)/1)}.bg-default-100{background-color:hsl(var(--heroui-default-100)/1)}.bg-default-200{background-color:hsl(var(--heroui-default-200)/1)}.bg-default-300\/50{background-color:hsl(var(--heroui-default-300)/1)}@supports (color:color-mix(in lab,red,red)){.bg-default-300\/50{background-color:color-mix(in oklab,hsl(var(--heroui-default-300)/1)50%,transparent)}}.bg-default-400{background-color:hsl(var(--heroui-default-400)/1)}.bg-default-500{background-color:hsl(var(--heroui-default-500)/1)}.bg-default-800{background-color:hsl(var(--heroui-default-800)/1)}.bg-default\/40{background-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.bg-default\/40{background-color:color-mix(in oklab,hsl(var(--heroui-default)/1)40%,transparent)}}.bg-divider{background-color:hsl(var(--heroui-divider)/.15)}.bg-foreground{background-color:hsl(var(--heroui-foreground)/1)}.bg-foreground-100{background-color:hsl(var(--heroui-foreground-100)/1)}.bg-foreground-400{background-color:hsl(var(--heroui-foreground-400)/1)}.bg-foreground\/10{background-color:hsl(var(--heroui-foreground)/1)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/10{background-color:color-mix(in oklab,hsl(var(--heroui-foreground)/1)10%,transparent)}}.bg-overlay\/30{background-color:hsl(var(--heroui-overlay)/1)}@supports (color:color-mix(in lab,red,red)){.bg-overlay\/30{background-color:color-mix(in oklab,hsl(var(--heroui-overlay)/1)30%,transparent)}}.bg-overlay\/50{background-color:hsl(var(--heroui-overlay)/1)}@supports (color:color-mix(in lab,red,red)){.bg-overlay\/50{background-color:color-mix(in oklab,hsl(var(--heroui-overlay)/1)50%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary-50{background-color:hsl(var(--heroui-primary-50)/1)}.bg-primary-100{background-color:hsl(var(--heroui-primary-100)/1)}.bg-primary-400{background-color:hsl(var(--heroui-primary-400)/1)}.bg-primary\/20{background-color:#1b54ff33}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.bg-secondary{background-color:hsl(var(--heroui-secondary)/1)}.bg-secondary-50{background-color:hsl(var(--heroui-secondary-50)/1)}.bg-secondary-100{background-color:hsl(var(--heroui-secondary-100)/1)}.bg-secondary-400{background-color:hsl(var(--heroui-secondary-400)/1)}.bg-secondary\/20{background-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.bg-secondary\/20{background-color:color-mix(in oklab,hsl(var(--heroui-secondary)/1)20%,transparent)}}.bg-success{background-color:hsl(var(--heroui-success)/1)}.bg-success-50{background-color:hsl(var(--heroui-success-50)/1)}.bg-success-100{background-color:hsl(var(--heroui-success-100)/1)}.bg-success-400{background-color:hsl(var(--heroui-success-400)/1)}.bg-success\/20{background-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.bg-success\/20{background-color:color-mix(in oklab,hsl(var(--heroui-success)/1)20%,transparent)}}.bg-transparent{background-color:#0000}.bg-warning{background-color:hsl(var(--heroui-warning)/1)}.bg-warning-50{background-color:hsl(var(--heroui-warning-50)/1)}.bg-warning-100{background-color:hsl(var(--heroui-warning-100)/1)}.bg-warning-400{background-color:hsl(var(--heroui-warning-400)/1)}.bg-warning\/20{background-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,hsl(var(--heroui-warning)/1)20%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-img-inherit{background-image:inherit}.bg-stripe-gradient-danger{background-image:linear-gradient(45deg,hsl(var(--heroui-danger-200))25%,hsl(var(--heroui-danger))25%50%,hsl(var(--heroui-danger-200))50%75%,hsl(var(--heroui-danger))75%,hsl(var(--heroui-danger)))}.bg-stripe-gradient-default{background-image:linear-gradient(45deg,hsl(var(--heroui-default-200))25%,hsl(var(--heroui-default-400))25%50%,hsl(var(--heroui-default-200))50%75%,hsl(var(--heroui-default-400))75%,hsl(var(--heroui-default-400)))}.bg-stripe-gradient-primary{background-image:linear-gradient(45deg,hsl(var(--heroui-primary-200))25%,hsl(var(--heroui-primary))25%50%,hsl(var(--heroui-primary-200))50%75%,hsl(var(--heroui-primary))75%,hsl(var(--heroui-primary)))}.bg-stripe-gradient-secondary{background-image:linear-gradient(45deg,hsl(var(--heroui-secondary-200))25%,hsl(var(--heroui-secondary))25%50%,hsl(var(--heroui-secondary-200))50%75%,hsl(var(--heroui-secondary))75%,hsl(var(--heroui-secondary)))}.bg-stripe-gradient-success{background-image:linear-gradient(45deg,hsl(var(--heroui-success-200))25%,hsl(var(--heroui-success))25%50%,hsl(var(--heroui-success-200))50%75%,hsl(var(--heroui-success))75%,hsl(var(--heroui-success)))}.bg-stripe-gradient-warning{background-image:linear-gradient(45deg,hsl(var(--heroui-warning-200))25%,hsl(var(--heroui-warning))25%50%,hsl(var(--heroui-warning-200))50%75%,hsl(var(--heroui-warning))75%,hsl(var(--heroui-warning)))}.from-default-600{--tw-gradient-from:hsl(var(--heroui-default-600)/1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-default-200{--tw-gradient-via:hsl(var(--heroui-default-200)/1);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-current{--tw-gradient-to:currentcolor;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-danger{--tw-gradient-to:hsl(var(--heroui-danger)/1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-default{--tw-gradient-to:hsl(var(--heroui-default)/1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-default-600{--tw-gradient-to:hsl(var(--heroui-default-600)/1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary{--tw-gradient-to:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-secondary{--tw-gradient-to:hsl(var(--heroui-secondary)/1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-success{--tw-gradient-to:hsl(var(--heroui-success)/1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-warning{--tw-gradient-to:hsl(var(--heroui-warning)/1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.\[mask-image\:linear-gradient\(\#000\,\#000\,transparent_0\,\#000_var\(--scroll-shadow-size\)\,\#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000,#000,transparent 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),transparent);mask-image:linear-gradient(#000,#000,transparent 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),transparent)}.bg-clip-inherit{background-clip:inherit}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.stroke-default-300\/50{stroke:hsl(var(--heroui-default-300)/1)}@supports (color:color-mix(in lab,red,red)){.stroke-default-300\/50{stroke:color-mix(in oklab,hsl(var(--heroui-default-300)/1)50%,transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.\!px-1{padding-inline:calc(var(--spacing)*1)!important}.px-0{padding-inline:calc(var(--spacing)*0)}.px-0\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.ps-1{padding-inline-start:calc(var(--spacing)*1)}.ps-2{padding-inline-start:calc(var(--spacing)*2)}.pe-2{padding-inline-end:calc(var(--spacing)*2)}.pe-6{padding-inline-end:calc(var(--spacing)*6)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-0\.5{padding-right:calc(var(--spacing)*.5)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.\!pb-0{padding-bottom:calc(var(--spacing)*0)!important}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-0\.5{padding-bottom:calc(var(--spacing)*.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-1\.5{padding-bottom:calc(var(--spacing)*1.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-0{padding-left:calc(var(--spacing)*0)}.pl-0\.5{padding-left:calc(var(--spacing)*.5)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-\[1px\]{padding-left:1px}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-large{font-size:var(--heroui-font-size-large);line-height:var(--heroui-line-height-large)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-medium{font-size:var(--heroui-font-size-medium);line-height:var(--heroui-line-height-medium)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-small{font-size:var(--heroui-font-size-small);line-height:var(--heroui-line-height-small)}.text-tiny{font-size:var(--heroui-font-size-tiny);line-height:var(--heroui-line-height-tiny)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.5rem\]{font-size:.5rem}.text-\[0\.6rem\]{font-size:.6rem}.text-\[0\.55rem\]{font-size:.55rem}.text-\[85\%\]{font-size:85%}.text-\[90\%\]{font-size:90%}.text-\[100\%\]{font-size:100%}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.leading-\[32px\]{--tw-leading:32px;line-height:32px}.leading-inherit{line-height:inherit}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.\!text-danger{color:hsl(var(--heroui-danger)/1)!important}.\!text-default-900{color:hsl(var(--heroui-default-900)/1)!important}.\!text-green-600{color:var(--color-green-600)!important}.\!text-purple-500{color:var(--color-purple-500)!important}.\!text-yellow-600{color:var(--color-yellow-600)!important}.text-background{color:hsl(var(--heroui-background)/1)}.text-black{color:var(--color-black)}.text-current{color:currentColor}.text-danger{color:hsl(var(--heroui-danger)/1)}.text-danger-300{color:hsl(var(--heroui-danger-300)/1)}.text-danger-400{color:hsl(var(--heroui-danger-400)/1)}.text-danger-500{color:hsl(var(--heroui-danger-500)/1)}.text-danger-600{color:hsl(var(--heroui-danger-600)/1)}.text-danger-foreground{color:hsl(var(--heroui-danger-foreground)/1)}.text-danger\/80{color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.text-danger\/80{color:color-mix(in oklab,hsl(var(--heroui-danger)/1)80%,transparent)}}.text-default{color:hsl(var(--heroui-default)/1)}.text-default-400{color:hsl(var(--heroui-default-400)/1)}.text-default-500{color:hsl(var(--heroui-default-500)/1)}.text-default-600{color:hsl(var(--heroui-default-600)/1)}.text-default-700{color:hsl(var(--heroui-default-700)/1)}.text-default-900{color:hsl(var(--heroui-default-900)/1)}.text-default-foreground{color:hsl(var(--heroui-default-foreground)/1)}.text-foreground{color:hsl(var(--heroui-foreground)/1)}.text-foreground-400{color:hsl(var(--heroui-foreground-400)/1)}.text-foreground-500{color:hsl(var(--heroui-foreground-500)/1)}.text-foreground-600{color:hsl(var(--heroui-foreground-600)/1)}.text-foreground\/50{color:hsl(var(--heroui-foreground)/1)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,hsl(var(--heroui-foreground)/1)50%,transparent)}}.text-inherit{color:inherit}.text-primary{color:var(--color-primary)}.text-primary-300{color:hsl(var(--heroui-primary-300)/1)}.text-primary-400{color:hsl(var(--heroui-primary-400)/1)}.text-primary-500{color:hsl(var(--heroui-primary-500)/1)}.text-primary-600{color:hsl(var(--heroui-primary-600)/1)}.text-primary-foreground{color:hsl(var(--heroui-primary-foreground)/1)}.text-primary\/80{color:#1b54ffcc}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.text-secondary{color:hsl(var(--heroui-secondary)/1)}.text-secondary-300{color:hsl(var(--heroui-secondary-300)/1)}.text-secondary-400{color:hsl(var(--heroui-secondary-400)/1)}.text-secondary-500{color:hsl(var(--heroui-secondary-500)/1)}.text-secondary-600{color:hsl(var(--heroui-secondary-600)/1)}.text-secondary-foreground{color:hsl(var(--heroui-secondary-foreground)/1)}.text-secondary\/80{color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.text-secondary\/80{color:color-mix(in oklab,hsl(var(--heroui-secondary)/1)80%,transparent)}}.text-success{color:hsl(var(--heroui-success)/1)}.text-success-400{color:hsl(var(--heroui-success-400)/1)}.text-success-500{color:hsl(var(--heroui-success-500)/1)}.text-success-600{color:hsl(var(--heroui-success-600)/1)}.text-success-700{color:hsl(var(--heroui-success-700)/1)}.text-success-foreground{color:hsl(var(--heroui-success-foreground)/1)}.text-success\/80{color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.text-success\/80{color:color-mix(in oklab,hsl(var(--heroui-success)/1)80%,transparent)}}.text-transparent{color:#0000}.text-warning{color:hsl(var(--heroui-warning)/1)}.text-warning-400{color:hsl(var(--heroui-warning-400)/1)}.text-warning-500{color:hsl(var(--heroui-warning-500)/1)}.text-warning-600{color:hsl(var(--heroui-warning-600)/1)}.text-warning-700{color:hsl(var(--heroui-warning-700)/1)}.text-warning-foreground{color:hsl(var(--heroui-warning-foreground)/1)}.text-warning\/80{color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.text-warning\/80{color:color-mix(in oklab,hsl(var(--heroui-warning)/1)80%,transparent)}}.text-white{color:var(--color-white)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.dark{color-scheme:dark;--heroui-background:0 0% 0%;--heroui-foreground-50:240 5.88% 10%;--heroui-foreground-100:240 3.7% 15.88%;--heroui-foreground-200:240 5.26% 26.08%;--heroui-foreground-300:240 5.2% 33.92%;--heroui-foreground-400:240 3.83% 46.08%;--heroui-foreground-500:240 5.03% 64.9%;--heroui-foreground-600:240 4.88% 83.92%;--heroui-foreground-700:240 5.88% 90%;--heroui-foreground-800:240 4.76% 95.88%;--heroui-foreground-900:0 0% 98.04%;--heroui-foreground:210 5.56% 92.94%;--heroui-focus:212.02 100% 46.67%;--heroui-overlay:0 0% 0%;--heroui-divider:0 0% 100%;--heroui-content1:240 5.88% 10%;--heroui-content1-foreground:0 0% 98.04%;--heroui-content2:240 3.7% 15.88%;--heroui-content2-foreground:240 4.76% 95.88%;--heroui-content3:240 5.26% 26.08%;--heroui-content3-foreground:240 5.88% 90%;--heroui-content4:240 5.2% 33.92%;--heroui-content4-foreground:240 4.88% 83.92%;--heroui-default-50:240 5.88% 10%;--heroui-default-100:240 3.7% 15.88%;--heroui-default-200:240 5.26% 26.08%;--heroui-default-300:240 5.2% 33.92%;--heroui-default-400:240 3.83% 46.08%;--heroui-default-500:240 5.03% 64.9%;--heroui-default-600:240 4.88% 83.92%;--heroui-default-700:240 5.88% 90%;--heroui-default-800:240 4.76% 95.88%;--heroui-default-900:0 0% 98.04%;--heroui-default-foreground:0 0% 100%;--heroui-default:240 5.26% 26.08%;--heroui-primary-50:211.84 100% 9.61%;--heroui-primary-100:211.84 100% 19.22%;--heroui-primary-200:212.24 100% 28.82%;--heroui-primary-300:212.14 100% 38.43%;--heroui-primary-400:212.02 100% 46.67%;--heroui-primary-500:212.14 92.45% 58.43%;--heroui-primary-600:212.24 92.45% 68.82%;--heroui-primary-700:211.84 92.45% 79.22%;--heroui-primary-800:211.84 92.45% 89.61%;--heroui-primary-900:212.5 92.31% 94.9%;--heroui-primary-foreground:0 0% 100%;--heroui-primary:212.02 100% 46.67%;--heroui-secondary-50:270 66.67% 9.41%;--heroui-secondary-100:270 66.67% 18.82%;--heroui-secondary-200:270 66.67% 28.24%;--heroui-secondary-300:270 66.67% 37.65%;--heroui-secondary-400:270 66.67% 47.06%;--heroui-secondary-500:270 59.26% 57.65%;--heroui-secondary-600:270 59.26% 68.24%;--heroui-secondary-700:270 59.26% 78.82%;--heroui-secondary-800:270 59.26% 89.41%;--heroui-secondary-900:270 61.54% 94.9%;--heroui-secondary-foreground:0 0% 100%;--heroui-secondary:270 59.26% 57.65%;--heroui-success-50:145.71 77.78% 8.82%;--heroui-success-100:146.2 79.78% 17.45%;--heroui-success-200:145.79 79.26% 26.47%;--heroui-success-300:146.01 79.89% 35.1%;--heroui-success-400:145.96 79.46% 43.92%;--heroui-success-500:146.01 62.45% 55.1%;--heroui-success-600:145.79 62.57% 66.47%;--heroui-success-700:146.2 61.74% 77.45%;--heroui-success-800:145.71 61.4% 88.82%;--heroui-success-900:146.67 64.29% 94.51%;--heroui-success-foreground:0 0% 0%;--heroui-success:145.96 79.46% 43.92%;--heroui-warning-50:37.14 75% 10.98%;--heroui-warning-100:37.14 75% 21.96%;--heroui-warning-200:36.96 73.96% 33.14%;--heroui-warning-300:37.01 74.22% 44.12%;--heroui-warning-400:37.03 91.27% 55.1%;--heroui-warning-500:37.01 91.26% 64.12%;--heroui-warning-600:36.96 91.24% 73.14%;--heroui-warning-700:37.14 91.3% 81.96%;--heroui-warning-800:37.14 91.3% 90.98%;--heroui-warning-900:54.55 91.67% 95.29%;--heroui-warning-foreground:0 0% 0%;--heroui-warning:37.03 91.27% 55.1%;--heroui-danger-50:340 84.91% 10.39%;--heroui-danger-100:339.33 86.54% 20.39%;--heroui-danger-200:339.11 85.99% 30.78%;--heroui-danger-300:339 86.54% 40.78%;--heroui-danger-400:339.2 90.36% 51.18%;--heroui-danger-500:339 90% 60.78%;--heroui-danger-600:339.11 90.6% 70.78%;--heroui-danger-700:339.33 90% 80.39%;--heroui-danger-800:340 91.84% 90.39%;--heroui-danger-900:339.13 92% 95.1%;--heroui-danger-foreground:0 0% 100%;--heroui-danger:339.2 90.36% 51.18%;--heroui-divider-weight:1px;--heroui-disabled-opacity:.5;--heroui-font-size-tiny:.75rem;--heroui-font-size-small:.875rem;--heroui-font-size-medium:1rem;--heroui-font-size-large:1.125rem;--heroui-line-height-tiny:1rem;--heroui-line-height-small:1.25rem;--heroui-line-height-medium:1.5rem;--heroui-line-height-large:1.75rem;--heroui-radius-small:8px;--heroui-radius-medium:12px;--heroui-radius-large:14px;--heroui-border-width-small:1px;--heroui-border-width-medium:2px;--heroui-border-width-large:3px;--heroui-box-shadow-small:0px 0px 5px 0px #0000000d,0px 2px 10px 0px #0003,inset 0px 0px 1px 0px #ffffff26;--heroui-box-shadow-medium:0px 0px 15px 0px #0000000f,0px 2px 30px 0px #00000038,inset 0px 0px 1px 0px #ffffff26;--heroui-box-shadow-large:0px 0px 30px 0px #00000012,0px 30px 60px 0px #00000042,inset 0px 0px 1px 0px #ffffff26;--heroui-hover-opacity:.9}.light{color-scheme:light;--heroui-background:0 0% 100%;--heroui-foreground-50:0 0% 98.04%;--heroui-foreground-100:240 4.76% 95.88%;--heroui-foreground-200:240 5.88% 90%;--heroui-foreground-300:240 4.88% 83.92%;--heroui-foreground-400:240 5.03% 64.9%;--heroui-foreground-500:240 3.83% 46.08%;--heroui-foreground-600:240 5.2% 33.92%;--heroui-foreground-700:240 5.26% 26.08%;--heroui-foreground-800:240 3.7% 15.88%;--heroui-foreground-900:240 5.88% 10%;--heroui-foreground:201.82 24.44% 8.82%;--heroui-divider:0 0% 6.67%;--heroui-focus:212.02 100% 46.67%;--heroui-overlay:0 0% 0%;--heroui-content1:0 0% 100%;--heroui-content1-foreground:201.82 24.44% 8.82%;--heroui-content2:240 4.76% 95.88%;--heroui-content2-foreground:240 3.7% 15.88%;--heroui-content3:240 5.88% 90%;--heroui-content3-foreground:240 5.26% 26.08%;--heroui-content4:240 4.88% 83.92%;--heroui-content4-foreground:240 5.2% 33.92%;--heroui-default-50:0 0% 98.04%;--heroui-default-100:240 4.76% 95.88%;--heroui-default-200:240 5.88% 90%;--heroui-default-300:240 4.88% 83.92%;--heroui-default-400:240 5.03% 64.9%;--heroui-default-500:240 3.83% 46.08%;--heroui-default-600:240 5.2% 33.92%;--heroui-default-700:240 5.26% 26.08%;--heroui-default-800:240 3.7% 15.88%;--heroui-default-900:240 5.88% 10%;--heroui-default-foreground:0 0% 0%;--heroui-default:240 4.88% 83.92%;--heroui-primary-50:212.5 92.31% 94.9%;--heroui-primary-100:211.84 92.45% 89.61%;--heroui-primary-200:211.84 92.45% 79.22%;--heroui-primary-300:212.24 92.45% 68.82%;--heroui-primary-400:212.14 92.45% 58.43%;--heroui-primary-500:212.02 100% 46.67%;--heroui-primary-600:212.14 100% 38.43%;--heroui-primary-700:212.24 100% 28.82%;--heroui-primary-800:211.84 100% 19.22%;--heroui-primary-900:211.84 100% 9.61%;--heroui-primary-foreground:0 0% 100%;--heroui-primary:212.02 100% 46.67%;--heroui-secondary-50:270 61.54% 94.9%;--heroui-secondary-100:270 59.26% 89.41%;--heroui-secondary-200:270 59.26% 78.82%;--heroui-secondary-300:270 59.26% 68.24%;--heroui-secondary-400:270 59.26% 57.65%;--heroui-secondary-500:270 66.67% 47.06%;--heroui-secondary-600:270 66.67% 37.65%;--heroui-secondary-700:270 66.67% 28.24%;--heroui-secondary-800:270 66.67% 18.82%;--heroui-secondary-900:270 66.67% 9.41%;--heroui-secondary-foreground:0 0% 100%;--heroui-secondary:270 66.67% 47.06%;--heroui-success-50:146.67 64.29% 94.51%;--heroui-success-100:145.71 61.4% 88.82%;--heroui-success-200:146.2 61.74% 77.45%;--heroui-success-300:145.79 62.57% 66.47%;--heroui-success-400:146.01 62.45% 55.1%;--heroui-success-500:145.96 79.46% 43.92%;--heroui-success-600:146.01 79.89% 35.1%;--heroui-success-700:145.79 79.26% 26.47%;--heroui-success-800:146.2 79.78% 17.45%;--heroui-success-900:145.71 77.78% 8.82%;--heroui-success-foreground:0 0% 0%;--heroui-success:145.96 79.46% 43.92%;--heroui-warning-50:54.55 91.67% 95.29%;--heroui-warning-100:37.14 91.3% 90.98%;--heroui-warning-200:37.14 91.3% 81.96%;--heroui-warning-300:36.96 91.24% 73.14%;--heroui-warning-400:37.01 91.26% 64.12%;--heroui-warning-500:37.03 91.27% 55.1%;--heroui-warning-600:37.01 74.22% 44.12%;--heroui-warning-700:36.96 73.96% 33.14%;--heroui-warning-800:37.14 75% 21.96%;--heroui-warning-900:37.14 75% 10.98%;--heroui-warning-foreground:0 0% 0%;--heroui-warning:37.03 91.27% 55.1%;--heroui-danger-50:339.13 92% 95.1%;--heroui-danger-100:340 91.84% 90.39%;--heroui-danger-200:339.33 90% 80.39%;--heroui-danger-300:339.11 90.6% 70.78%;--heroui-danger-400:339 90% 60.78%;--heroui-danger-500:339.2 90.36% 51.18%;--heroui-danger-600:339 86.54% 40.78%;--heroui-danger-700:339.11 85.99% 30.78%;--heroui-danger-800:339.33 86.54% 20.39%;--heroui-danger-900:340 84.91% 10.39%;--heroui-danger-foreground:0 0% 100%;--heroui-danger:339.2 90.36% 51.18%;--heroui-divider-weight:1px;--heroui-disabled-opacity:.5;--heroui-font-size-tiny:.75rem;--heroui-font-size-small:.875rem;--heroui-font-size-medium:1rem;--heroui-font-size-large:1.125rem;--heroui-line-height-tiny:1rem;--heroui-line-height-small:1.25rem;--heroui-line-height-medium:1.5rem;--heroui-line-height-large:1.75rem;--heroui-radius-small:8px;--heroui-radius-medium:12px;--heroui-radius-large:14px;--heroui-border-width-small:1px;--heroui-border-width-medium:2px;--heroui-border-width-large:3px;--heroui-box-shadow-small:0px 0px 5px 0px #00000005,0px 2px 10px 0px #0000000f,0px 0px 1px 0px #0000004d;--heroui-box-shadow-medium:0px 0px 15px 0px #00000008,0px 2px 30px 0px #00000014,0px 0px 1px 0px #0000004d;--heroui-box-shadow-large:0px 0px 30px 0px #0000000a,0px 30px 60px 0px #0000001f,0px 0px 1px 0px #0000004d;--heroui-hover-opacity:.8}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-100{opacity:1}.opacity-\[0\.0001\]{opacity:.0001}.opacity-\[value\]{opacity:value}.opacity-disabled{opacity:var(--heroui-disabled-opacity)}.\!shadow-none{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_1px_0px_0_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:0 1px 0px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0px_20px_20px_0px_rgb\(0_0_0\/0\.05\)\]{--tw-shadow:0px 20px 20px 0px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-large{--tw-shadow:var(--heroui-box-shadow-large);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-medium{--tw-shadow:var(--heroui-box-shadow-medium);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-small{--tw-shadow:var(--heroui-box-shadow-small);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)5%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-danger\/40{--tw-shadow-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.shadow-danger\/40{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-danger)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-default\/50{--tw-shadow-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.shadow-default\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-default)/1)50%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-foreground\/40{--tw-shadow-color:hsl(var(--heroui-foreground)/1)}@supports (color:color-mix(in lab,red,red)){.shadow-foreground\/40{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-foreground)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-primary\/40{--tw-shadow-color:#1b54ff66}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/40{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)40%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-secondary\/40{--tw-shadow-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.shadow-secondary\/40{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-secondary)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-success\/40{--tw-shadow-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.shadow-success\/40{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-success)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-warning\/40{--tw-shadow-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.shadow-warning\/40{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-warning)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-background{--tw-ring-color:hsl(var(--heroui-background)/1)}.ring-danger{--tw-ring-color:hsl(var(--heroui-danger)/1)}.ring-default{--tw-ring-color:hsl(var(--heroui-default)/1)}.ring-focus{--tw-ring-color:hsl(var(--heroui-focus)/1)}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-secondary{--tw-ring-color:hsl(var(--heroui-secondary)/1)}.ring-success{--tw-ring-color:hsl(var(--heroui-success)/1)}.ring-transparent{--tw-ring-color:transparent}.ring-warning{--tw-ring-color:hsl(var(--heroui-warning)/1)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--heroui-background)/1)}.\!outline-hidden{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.\!outline-hidden{outline-offset:2px!important;outline:2px solid #0000!important}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-lg{--tw-blur:blur(var(--blur-lg));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.saturate-150{--tw-saturate:saturate(150%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-opacity-disabled{--tw-backdrop-opacity:opacity(var(--heroui-disabled-opacity));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,opacity\]{transition-property:color,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,transform\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,background-color\,color\]{transition-property:transform,background-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,color\,left\,opacity\,translate\,scale\]{transition-property:transform,color,left,opacity,translate,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-background{transition-property:background;transition-duration:.25s;transition-timing-function:ease}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors-opacity{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity;transition-duration:.25s;transition-timing-function:ease}.transition-height{transition-property:height;transition-duration:.25s;transition-timing-function:ease}.transition-left{transition-property:left;transition-duration:.25s;transition-timing-function:ease}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-size{transition-property:width,height;transition-duration:.25s;transition-timing-function:ease}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform-background{transition-property:transform,scale,background;transition-duration:.25s;transition-timing-function:ease}.transition-transform-colors{transition-property:transform,scale,color,background,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.25s;transition-timing-function:ease}.transition-transform-colors-opacity{transition-property:transform,scale,color,background,background-color,border-color,text-decoration-color,fill,stroke,opacity;transition-duration:.25s;transition-timing-function:ease}.transition-transform-opacity{transition-property:transform,scale,opacity rotate;transition-duration:.25s;transition-timing-function:ease}.transition-width{transition-property:width;transition-duration:.25s;transition-timing-function:ease}.\!transition-none{transition-property:none!important}.transition-none{transition-property:none}.\!duration-100{--tw-duration:.1s!important;transition-duration:.1s!important}.\!duration-150{--tw-duration:.15s!important;transition-duration:.15s!important}.\!duration-200{--tw-duration:.2s!important;transition-duration:.2s!important}.\!duration-250{--tw-duration:.25s!important;transition-duration:.25s!important}.\!duration-300{--tw-duration:.3s!important;transition-duration:.3s!important}.\!duration-500{--tw-duration:.5s!important;transition-duration:.5s!important}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.\!ease-out{--tw-ease:var(--ease-out)!important;transition-timing-function:var(--ease-out)!important}.\!ease-soft-spring{--tw-ease:cubic-bezier(.155,1.105,.295,1.12)!important;transition-timing-function:cubic-bezier(.155,1.105,.295,1.12)!important}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-auto{will-change:auto}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--picker-height\:224px\]{--picker-height:224px}.\[--scale-enter\:100\%\]{--scale-enter:100%}.\[--scale-exit\:100\%\]{--scale-exit:100%}.\[--scroll-shadow-size\:100px\]{--scroll-shadow-size:100px}.\[--slide-enter\:0px\]{--slide-enter:0px}.\[--slide-exit\:80px\]{--slide-exit:80px}.\[-webkit-mask\:radial-gradient\(closest-side\,rgba\(0\,0\,0\,0\.0\)calc\(100\%-3px\)\,rgba\(0\,0\,0\,1\)calc\(100\%-3px\)\)\]{-webkit-mask:radial-gradient(closest-side,#0000 calc(100% - 3px),#000 calc(100% - 3px))}.\[animation-duration\:1s\]{animation-duration:1s}.input-search-cancel-button-none::-webkit-search-cancel-button{-webkit-appearance:none}.spinner-dot-animation{animation-delay:calc(.25s*var(--dot-index))}.spinner-dot-blink-animation{animation-delay:calc(.2s*var(--dot-index))}.tap-highlight-transparent{-webkit-tap-highlight-color:transparent}.text-fill-inherit{-webkit-text-fill-color:inherit}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:hidden:is(:where(.group):hover *){display:none}.group-hover\:border-current:is(:where(.group):hover *){border-color:currentColor}.group-hover\:text-current:is(:where(.group):hover *){color:currentColor}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[copied\=true\]\:scale-50:is(:where(.group)[data-copied=true] *){--tw-scale-x:50%;--tw-scale-y:50%;--tw-scale-z:50%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[copied\=true\]\:scale-100:is(:where(.group)[data-copied=true] *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[copied\=true\]\:opacity-0:is(:where(.group)[data-copied=true] *){opacity:0}.group-data-\[copied\=true\]\:opacity-100:is(:where(.group)[data-copied=true] *){opacity:1}.group-data-\[disabled\=true\]\/tr\:cursor-not-allowed:is(:where(.group\/tr)[data-disabled=true] *){cursor:not-allowed}.group-data-\[disabled\=true\]\/tr\:text-foreground-300:is(:where(.group\/tr)[data-disabled=true] *){color:hsl(var(--heroui-foreground-300)/1)}.group-data-\[filled-within\=true\]\:pointer-events-auto:is(:where(.group)[data-filled-within=true] *){pointer-events:auto}.group-data-\[filled-within\=true\]\:start-0:is(:where(.group)[data-filled-within=true] *){inset-inline-start:calc(var(--spacing)*0)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_3\.5px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 3.5px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_4px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 4px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_6px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 6px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_6px_-_var\(--heroui-border-width-medium\)\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 6px - var(--heroui-border-width-medium))*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_8px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 8px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_8px_-_var\(--heroui-border-width-medium\)\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 8px - var(--heroui-border-width-medium))*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-tiny\)\/2_-_5px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-tiny)/2 - 5px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-tiny\)\/2_-_8px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-tiny)/2 - 8px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-tiny\)\/2_-_8px_-_var\(--heroui-border-width-medium\)\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-tiny)/2 - 8px - var(--heroui-border-width-medium))*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-small\)\/2_\+_20px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-small)/2 + 20px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-small\)\/2_\+_24px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-small)/2 + 24px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-tiny\)\/2_\+_16px\)\]:is(:where(.group)[data-filled-within=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-tiny)/2 + 16px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled-within\=true\]\:scale-85:is(:where(.group)[data-filled-within=true] *){--tw-scale-x:.85;--tw-scale-y:.85;--tw-scale-z:.85;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[filled-within\=true\]\:text-default-600:is(:where(.group)[data-filled-within=true] *){color:hsl(var(--heroui-default-600)/1)}.group-data-\[filled-within\=true\]\:text-foreground:is(:where(.group)[data-filled-within=true] *){color:hsl(var(--heroui-foreground)/1)}.group-data-\[filled\=true\]\:start-0:is(:where(.group)[data-filled=true] *){inset-inline-start:calc(var(--spacing)*0)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_3\.5px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 3.5px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_4px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 4px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_6px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 6px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_6px_-_var\(--heroui-border-width-medium\)\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 6px - var(--heroui-border-width-medium))*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_8px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 8px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-small\)\/2_-_8px_-_var\(--heroui-border-width-medium\)\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-small)/2 - 8px - var(--heroui-border-width-medium))*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-tiny\)\/2_-_5px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-tiny)/2 - 5px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-tiny\)\/2_-_8px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-tiny)/2 - 8px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_var\(--heroui-font-size-tiny\)\/2_-_8px_-_var\(--heroui-border-width-medium\)\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(50% + var(--heroui-font-size-tiny)/2 - 8px - var(--heroui-border-width-medium))*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-small\)\/2_\+_20px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-small)/2 + 20px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-small\)\/2_\+_24px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-small)/2 + 24px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+var\(--heroui-font-size-tiny\)\/2_\+_16px\)\]:is(:where(.group)[data-filled=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-tiny)/2 + 16px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[filled\=true\]\:scale-85:is(:where(.group)[data-filled=true] *){--tw-scale-x:.85;--tw-scale-y:.85;--tw-scale-z:.85;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[filled\=true\]\:text-default-600:is(:where(.group)[data-filled=true] *){color:hsl(var(--heroui-default-600)/1)}.group-data-\[filled\=true\]\:text-foreground:is(:where(.group)[data-filled=true] *){color:hsl(var(--heroui-foreground)/1)}.group-data-\[focus-visible\=true\]\:z-10:is(:where(.group)[data-focus-visible=true] *){z-index:10}.group-data-\[focus-visible\=true\]\:block:is(:where(.group)[data-focus-visible=true] *){display:block}.group-data-\[focus-visible\=true\]\:hidden:is(:where(.group)[data-focus-visible=true] *){display:none}.group-data-\[focus-visible\=true\]\:ring-0:is(:where(.group)[data-focus-visible=true] *){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[focus-visible\=true\]\:ring-2:is(:where(.group)[data-focus-visible=true] *){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[focus-visible\=true\]\:ring-focus:is(:where(.group)[data-focus-visible=true] *){--tw-ring-color:hsl(var(--heroui-focus)/1)}.group-data-\[focus-visible\=true\]\:ring-offset-0:is(:where(.group)[data-focus-visible=true] *){--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.group-data-\[focus-visible\=true\]\:ring-offset-2:is(:where(.group)[data-focus-visible=true] *){--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.group-data-\[focus-visible\=true\]\:ring-offset-background:is(:where(.group)[data-focus-visible=true] *){--tw-ring-offset-color:hsl(var(--heroui-background)/1)}.group-data-\[focus\=true\]\:\!border-danger:is(:where(.group)[data-focus=true] *){border-color:hsl(var(--heroui-danger)/1)!important}.group-data-\[focus\=true\]\:border-danger:is(:where(.group)[data-focus=true] *){border-color:hsl(var(--heroui-danger)/1)}.group-data-\[focus\=true\]\:border-default-foreground:is(:where(.group)[data-focus=true] *){border-color:hsl(var(--heroui-default-foreground)/1)}.group-data-\[focus\=true\]\:border-primary:is(:where(.group)[data-focus=true] *){border-color:var(--color-primary)}.group-data-\[focus\=true\]\:border-secondary:is(:where(.group)[data-focus=true] *){border-color:hsl(var(--heroui-secondary)/1)}.group-data-\[focus\=true\]\:border-success:is(:where(.group)[data-focus=true] *){border-color:hsl(var(--heroui-success)/1)}.group-data-\[focus\=true\]\:border-warning:is(:where(.group)[data-focus=true] *){border-color:hsl(var(--heroui-warning)/1)}.group-data-\[focus\=true\]\:\!bg-danger-50:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-danger-50)/1)!important}.group-data-\[focus\=true\]\:bg-danger-50:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-danger-50)/1)}.group-data-\[focus\=true\]\:bg-default-100:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-default-100)/1)}.group-data-\[focus\=true\]\:bg-default-200:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-default-200)/1)}.group-data-\[focus\=true\]\:bg-primary-50:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-primary-50)/1)}.group-data-\[focus\=true\]\:bg-secondary-50:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-secondary-50)/1)}.group-data-\[focus\=true\]\:bg-success-50:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-success-50)/1)}.group-data-\[focus\=true\]\:bg-warning-50:is(:where(.group)[data-focus=true] *){background-color:hsl(var(--heroui-warning-50)/1)}.group-data-\[has-end-content\=true\]\:left-2:is(:where(.group)[data-has-end-content=true] *){left:calc(var(--spacing)*2)}.group-data-\[has-end-content\=true\]\:mt-4:is(:where(.group)[data-has-end-content=true] *){margin-top:calc(var(--spacing)*4)}.group-data-\[has-helper\=true\]\:flex:is(:where(.group)[data-has-helper=true] *){display:flex}.group-data-\[has-helper\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-small\)\/2_\+_26px\)\]:is(:where(.group)[data-has-helper=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-small)/2 + 26px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[has-helper\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-small\)\/2_\+_30px\)\]:is(:where(.group)[data-has-helper=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-small)/2 + 30px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[has-helper\=true\]\:-translate-y-\[calc\(100\%_\+_var\(--heroui-font-size-small\)\/2_\+_34px\)\]:is(:where(.group)[data-has-helper=true] *){--tw-translate-y:calc(calc(100% + var(--heroui-font-size-small)/2 + 34px)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[has-helper\=true\]\:pt-2:is(:where(.group)[data-has-helper=true] *){padding-top:calc(var(--spacing)*2)}.group-data-\[has-helper\=true\]\:pt-3:is(:where(.group)[data-has-helper=true] *){padding-top:calc(var(--spacing)*3)}.group-data-\[has-helper\=true\]\:pt-4:is(:where(.group)[data-has-helper=true] *){padding-top:calc(var(--spacing)*4)}.group-data-\[has-label-outside\=true\]\:pointer-events-auto:is(:where(.group)[data-has-label-outside=true] *){pointer-events:auto}.group-data-\[has-label\=true\]\:items-end:is(:where(.group)[data-has-label=true] *){align-items:flex-end}.group-data-\[has-label\=true\]\:items-start:is(:where(.group)[data-has-label=true] *){align-items:flex-start}.group-data-\[has-label\=true\]\:pt-4:is(:where(.group)[data-has-label=true] *){padding-top:calc(var(--spacing)*4)}.group-data-\[has-label\=true\]\:pt-5:is(:where(.group)[data-has-label=true] *){padding-top:calc(var(--spacing)*5)}.group-data-\[has-multiple-months\=true\]\:flex-row:is(:where(.group)[data-has-multiple-months=true] *){flex-direction:row}.group-data-\[has-value\=true\]\:pointer-events-auto:is(:where(.group)[data-has-value=true] *){pointer-events:auto}.group-data-\[has-value\=true\]\:block:is(:where(.group)[data-has-value=true] *){display:block}.group-data-\[has-value\=true\]\:scale-100:is(:where(.group)[data-has-value=true] *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[has-value\=true\]\:text-default-foreground:is(:where(.group)[data-has-value=true] *){color:hsl(var(--heroui-default-foreground)/1)}.group-data-\[has-value\=true\]\:text-foreground:is(:where(.group)[data-has-value=true] *){color:hsl(var(--heroui-foreground)/1)}.group-data-\[has-value\=true\]\:opacity-70:is(:where(.group)[data-has-value=true] *){opacity:.7}.group-data-\[hover-unselected\=true\]\:bg-default-100:is(:where(.group)[data-hover-unselected=true] *){background-color:hsl(var(--heroui-default-100)/1)}.group-data-\[hover\=true\]\/th\:opacity-100:is(:where(.group\/th)[data-hover=true] *){opacity:1}.group-data-\[invalid\=true\]\:border-danger:is(:where(.group)[data-invalid=true] *){border-color:hsl(var(--heroui-danger)/1)}.group-data-\[invalid\=true\]\:bg-danger-50:is(:where(.group)[data-invalid=true] *){background-color:hsl(var(--heroui-danger-50)/1)}.group-data-\[invalid\=true\]\:text-danger:is(:where(.group)[data-invalid=true] *){color:hsl(var(--heroui-danger)/1)}.group-data-\[loaded\=true\]\:opacity-100:is(:where(.group)[data-loaded=true] *){opacity:1}.group-data-\[pressed\=true\]\:w-5:is(:where(.group)[data-pressed=true] *){width:calc(var(--spacing)*5)}.group-data-\[pressed\=true\]\:w-6:is(:where(.group)[data-pressed=true] *){width:calc(var(--spacing)*6)}.group-data-\[pressed\=true\]\:w-7:is(:where(.group)[data-pressed=true] *){width:calc(var(--spacing)*7)}.group-data-\[pressed\=true\]\:scale-95:is(:where(.group)[data-pressed=true] *){--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[pressed\=true\]\:opacity-70:is(:where(.group)[data-pressed=true] *){opacity:.7}.group-data-\[selected\]\:group-data-\[pressed\]\:ml-3:is(:where(.group)[data-selected] *):is(:where(.group)[data-pressed] *){margin-left:calc(var(--spacing)*3)}.group-data-\[selected\]\:group-data-\[pressed\]\:ml-4:is(:where(.group)[data-selected] *):is(:where(.group)[data-pressed] *){margin-left:calc(var(--spacing)*4)}.group-data-\[selected\]\:group-data-\[pressed\]\:ml-5:is(:where(.group)[data-selected] *):is(:where(.group)[data-pressed] *){margin-left:calc(var(--spacing)*5)}.group-data-\[selected\=true\]\:ms-4:is(:where(.group)[data-selected=true] *){margin-inline-start:calc(var(--spacing)*4)}.group-data-\[selected\=true\]\:ms-5:is(:where(.group)[data-selected=true] *){margin-inline-start:calc(var(--spacing)*5)}.group-data-\[selected\=true\]\:ms-6:is(:where(.group)[data-selected=true] *){margin-inline-start:calc(var(--spacing)*6)}.group-data-\[selected\=true\]\:translate-x-3:is(:where(.group)[data-selected=true] *){--tw-translate-x:calc(var(--spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[selected\=true\]\:scale-100:is(:where(.group)[data-selected=true] *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[selected\=true\]\:border-danger:is(:where(.group)[data-selected=true] *){border-color:hsl(var(--heroui-danger)/1)}.group-data-\[selected\=true\]\:border-default-500:is(:where(.group)[data-selected=true] *){border-color:hsl(var(--heroui-default-500)/1)}.group-data-\[selected\=true\]\:border-primary:is(:where(.group)[data-selected=true] *){border-color:var(--color-primary)}.group-data-\[selected\=true\]\:border-secondary:is(:where(.group)[data-selected=true] *){border-color:hsl(var(--heroui-secondary)/1)}.group-data-\[selected\=true\]\:border-success:is(:where(.group)[data-selected=true] *){border-color:hsl(var(--heroui-success)/1)}.group-data-\[selected\=true\]\:border-warning:is(:where(.group)[data-selected=true] *){border-color:hsl(var(--heroui-warning)/1)}.group-data-\[selected\=true\]\:bg-danger:is(:where(.group)[data-selected=true] *){background-color:hsl(var(--heroui-danger)/1)}.group-data-\[selected\=true\]\:bg-default-400:is(:where(.group)[data-selected=true] *){background-color:hsl(var(--heroui-default-400)/1)}.group-data-\[selected\=true\]\:bg-primary:is(:where(.group)[data-selected=true] *){background-color:var(--color-primary)}.group-data-\[selected\=true\]\:bg-secondary:is(:where(.group)[data-selected=true] *){background-color:hsl(var(--heroui-secondary)/1)}.group-data-\[selected\=true\]\:bg-success:is(:where(.group)[data-selected=true] *){background-color:hsl(var(--heroui-success)/1)}.group-data-\[selected\=true\]\:bg-warning:is(:where(.group)[data-selected=true] *){background-color:hsl(var(--heroui-warning)/1)}.group-data-\[selected\=true\]\:text-danger:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-danger)/1)}.group-data-\[selected\=true\]\:text-danger-foreground:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-danger-foreground)/1)}.group-data-\[selected\=true\]\:text-default-foreground:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-default-foreground)/1)}.group-data-\[selected\=true\]\:text-foreground:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-foreground)/1)}.group-data-\[selected\=true\]\:text-primary:is(:where(.group)[data-selected=true] *){color:var(--color-primary)}.group-data-\[selected\=true\]\:text-primary-foreground:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-primary-foreground)/1)}.group-data-\[selected\=true\]\:text-secondary:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-secondary)/1)}.group-data-\[selected\=true\]\:text-secondary-foreground:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-secondary-foreground)/1)}.group-data-\[selected\=true\]\:text-success:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-success)/1)}.group-data-\[selected\=true\]\:text-success-foreground:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-success-foreground)/1)}.group-data-\[selected\=true\]\:text-warning:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-warning)/1)}.group-data-\[selected\=true\]\:text-warning-foreground:is(:where(.group)[data-selected=true] *){color:hsl(var(--heroui-warning-foreground)/1)}.group-data-\[selected\=true\]\:opacity-0:is(:where(.group)[data-selected=true] *){opacity:0}.group-data-\[selected\=true\]\:opacity-60:is(:where(.group)[data-selected=true] *){opacity:.6}.group-data-\[selected\=true\]\:opacity-100:is(:where(.group)[data-selected=true] *){opacity:1}.peer-data-\[filled\=true\]\:pointer-events-auto:is(:where(.peer)[data-filled=true]~*){pointer-events:auto}.peer-data-\[filled\=true\]\:block:is(:where(.peer)[data-filled=true]~*){display:block}.peer-data-\[filled\=true\]\:scale-100:is(:where(.peer)[data-filled=true]~*){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.peer-data-\[filled\=true\]\:opacity-70:is(:where(.peer)[data-filled=true]~*){opacity:.7}.file\:cursor-pointer::file-selector-button{cursor:pointer}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.placeholder\:text-danger::placeholder{color:hsl(var(--heroui-danger)/1)}.placeholder\:text-foreground-500::placeholder{color:hsl(var(--heroui-foreground-500)/1)}.placeholder\:text-primary::placeholder{color:var(--color-primary)}.placeholder\:text-secondary::placeholder{color:hsl(var(--heroui-secondary)/1)}.placeholder\:text-success-600::placeholder{color:hsl(var(--heroui-success-600)/1)}.placeholder\:text-warning-600::placeholder{color:hsl(var(--heroui-warning-600)/1)}.before\:pointer-events-auto:before{content:var(--tw-content);pointer-events:auto}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-0:before{content:var(--tw-content);inset:calc(var(--spacing)*0)}.before\:right-0:before{content:var(--tw-content);right:calc(var(--spacing)*0)}.before\:left-0:before{content:var(--tw-content);left:calc(var(--spacing)*0)}.before\:z-0:before{content:var(--tw-content);z-index:0}.before\:z-\[-1\]:before{content:var(--tw-content);z-index:-1}.before\:box-border:before{content:var(--tw-content);box-sizing:border-box}.before\:block:before{content:var(--tw-content);display:block}.before\:hidden:before{content:var(--tw-content);display:none}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing)*.5)}.before\:h-2\.5:before{content:var(--tw-content);height:calc(var(--spacing)*2.5)}.before\:h-4:before{content:var(--tw-content);height:calc(var(--spacing)*4)}.before\:h-6:before{content:var(--tw-content);height:calc(var(--spacing)*6)}.before\:h-8:before{content:var(--tw-content);height:calc(var(--spacing)*8)}.before\:h-11:before{content:var(--tw-content);height:calc(var(--spacing)*11)}.before\:h-px:before{content:var(--tw-content);height:1px}.before\:w-0:before{content:var(--tw-content);width:calc(var(--spacing)*0)}.before\:w-2\.5:before{content:var(--tw-content);width:calc(var(--spacing)*2.5)}.before\:w-6:before{content:var(--tw-content);width:calc(var(--spacing)*6)}.before\:w-8:before{content:var(--tw-content);width:calc(var(--spacing)*8)}.before\:w-11:before{content:var(--tw-content);width:calc(var(--spacing)*11)}.before\:-translate-x-full:before{content:var(--tw-content);--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:-translate-y-1:before{content:var(--tw-content);--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:rotate-0:before{content:var(--tw-content);rotate:none}.before\:rotate-45:before{content:var(--tw-content);rotate:45deg}.before\:animate-none:before{content:var(--tw-content);animation:none}.before\:animate-shimmer:before{content:var(--tw-content);animation:2s infinite shimmer}.before\:rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.5\)\]:before{content:var(--tw-content);border-radius:calc(var(--heroui-radius-medium)*.5)}.before\:rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.6\)\]:before{content:var(--tw-content);border-radius:calc(var(--heroui-radius-medium)*.6)}.before\:rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.7\)\]:before{content:var(--tw-content);border-radius:calc(var(--heroui-radius-medium)*.7)}.before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\:rounded-none:before{content:var(--tw-content);border-radius:0}.before\:rounded-sm:before{content:var(--tw-content);border-radius:var(--radius-sm)}.before\:border-2:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.before\:border-t:before{content:var(--tw-content);border-top-style:var(--tw-border-style);border-top-width:1px}.before\:border-solid:before{content:var(--tw-content);--tw-border-style:solid;border-style:solid}.before\:border-content4\/30:before{content:var(--tw-content);border-color:hsl(var(--heroui-content4)/1)}@supports (color:color-mix(in lab,red,red)){.before\:border-content4\/30:before{border-color:color-mix(in oklab,hsl(var(--heroui-content4)/1)30%,transparent)}}.before\:border-danger:before{content:var(--tw-content);border-color:hsl(var(--heroui-danger)/1)}.before\:border-default:before{content:var(--tw-content);border-color:hsl(var(--heroui-default)/1)}.before\:bg-content1:before{content:var(--tw-content);background-color:hsl(var(--heroui-content1)/1)}.before\:bg-current:before{content:var(--tw-content);background-color:currentColor}.before\:bg-danger:before,.before\:bg-danger\/20:before{content:var(--tw-content);background-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.before\:bg-danger\/20:before{background-color:color-mix(in oklab,hsl(var(--heroui-danger)/1)20%,transparent)}}.before\:bg-default\/60:before{content:var(--tw-content);background-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.before\:bg-default\/60:before{background-color:color-mix(in oklab,hsl(var(--heroui-default)/1)60%,transparent)}}.before\:bg-foreground:before{content:var(--tw-content);background-color:hsl(var(--heroui-foreground)/1)}.before\:bg-primary:before{content:var(--tw-content);background-color:var(--color-primary)}.before\:bg-primary\/20:before{content:var(--tw-content);background-color:#1b54ff33}@supports (color:color-mix(in lab,red,red)){.before\:bg-primary\/20:before{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.before\:bg-secondary:before,.before\:bg-secondary\/20:before{content:var(--tw-content);background-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.before\:bg-secondary\/20:before{background-color:color-mix(in oklab,hsl(var(--heroui-secondary)/1)20%,transparent)}}.before\:bg-success:before,.before\:bg-success\/20:before{content:var(--tw-content);background-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.before\:bg-success\/20:before{background-color:color-mix(in oklab,hsl(var(--heroui-success)/1)20%,transparent)}}.before\:bg-transparent:before{content:var(--tw-content);background-color:#0000}.before\:bg-warning:before,.before\:bg-warning\/20:before{content:var(--tw-content);background-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.before\:bg-warning\/20:before{background-color:color-mix(in oklab,hsl(var(--heroui-warning)/1)20%,transparent)}}.before\:bg-gradient-to-r:before{content:var(--tw-content);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.before\:from-transparent:before{content:var(--tw-content);--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.before\:via-content4:before{content:var(--tw-content);--tw-gradient-via:hsl(var(--heroui-content4)/1);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.before\:to-transparent:before{content:var(--tw-content);--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.before\:opacity-0:before{content:var(--tw-content);opacity:0}.before\:opacity-100:before{content:var(--tw-content);opacity:1}.before\:shadow-small:before{content:var(--tw-content);--tw-shadow:var(--heroui-box-shadow-small);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.before\:transition-colors:before{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.before\:transition-transform:before{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.before\:transition-width:before{content:var(--tw-content);transition-property:width;transition-duration:.25s;transition-timing-function:ease}.before\:transition-none:before{content:var(--tw-content);transition-property:none}.before\:duration-150:before{content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.group-data-\[hover\=true\]\:before\:bg-default-100:is(:where(.group)[data-hover=true] *):before,.group-aria-\[selected\=false\]\/tr\:group-data-\[hover\=true\]\/tr\:before\:bg-default-100:is(:where(.group\/tr)[aria-selected=false] *):is(:where(.group\/tr)[data-hover=true] *):before{content:var(--tw-content);background-color:hsl(var(--heroui-default-100)/1)}.group-aria-\[selected\=false\]\/tr\:group-data-\[hover\=true\]\/tr\:before\:opacity-70:is(:where(.group\/tr)[aria-selected=false] *):is(:where(.group\/tr)[data-hover=true] *):before{content:var(--tw-content);opacity:.7}.group-data-\[middle\=true\]\/tr\:before\:rounded-none:is(:where(.group\/tr)[data-middle=true] *):before{content:var(--tw-content);border-radius:0}.group-data-\[odd\=true\]\/tr\:before\:-z-10:is(:where(.group\/tr)[data-odd=true] *):before{content:var(--tw-content);z-index:-10}.group-data-\[odd\=true\]\/tr\:before\:bg-default-100:is(:where(.group\/tr)[data-odd=true] *):before{content:var(--tw-content);background-color:hsl(var(--heroui-default-100)/1)}.group-data-\[odd\=true\]\/tr\:before\:opacity-100:is(:where(.group\/tr)[data-odd=true] *):before{content:var(--tw-content);opacity:1}.group-data-\[open\=true\]\:before\:translate-y-px:is(:where(.group)[data-open=true] *):before{content:var(--tw-content);--tw-translate-y:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[open\=true\]\:before\:rotate-45:is(:where(.group)[data-open=true] *):before{content:var(--tw-content);rotate:45deg}.group-data-\[selected\=true\]\:before\:w-full:is(:where(.group)[data-selected=true] *):before{content:var(--tw-content);width:100%}.after\:pointer-events-auto:after{content:var(--tw-content);pointer-events:auto}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:calc(var(--spacing)*0)}.after\:top-0:after{content:var(--tw-content);top:calc(var(--spacing)*0)}.after\:right-0:after{content:var(--tw-content);right:calc(var(--spacing)*0)}.after\:-bottom-1:after{content:var(--tw-content);bottom:calc(var(--spacing)*-1)}.after\:-bottom-\[2px\]:after{content:var(--tw-content);bottom:-2px}.after\:bottom-0:after{content:var(--tw-content);bottom:calc(var(--spacing)*0)}.after\:left-0:after{content:var(--tw-content);left:calc(var(--spacing)*0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:-z-10:after{content:var(--tw-content);z-index:-10}.after\:z-0:after{content:var(--tw-content);z-index:0}.after\:z-\[-1\]:after{content:var(--tw-content);z-index:-1}.after\:ms-0\.5:after{content:var(--tw-content);margin-inline-start:calc(var(--spacing)*.5)}.after\:ml-0\.5:after{content:var(--tw-content);margin-left:calc(var(--spacing)*.5)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-0:after{content:var(--tw-content);height:calc(var(--spacing)*0)}.after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing)*4)}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing)*5)}.after\:h-\[2px\]:after{content:var(--tw-content);height:2px}.after\:h-divider:after{content:var(--tw-content);height:var(--heroui-divider-weight)}.after\:h-full:after{content:var(--tw-content);height:100%}.after\:h-px:after{content:var(--tw-content);height:1px}.after\:w-0:after{content:var(--tw-content);width:calc(var(--spacing)*0)}.after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing)*4)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing)*5)}.after\:w-6:after{content:var(--tw-content);width:calc(var(--spacing)*6)}.after\:w-\[80\%\]:after{content:var(--tw-content);width:80%}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:origin-center:after{content:var(--tw-content);transform-origin:50%}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.after\:translate-y-1:after{content:var(--tw-content);--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.after\:scale-50:after{content:var(--tw-content);--tw-scale-x:50%;--tw-scale-y:50%;--tw-scale-z:50%;scale:var(--tw-scale-x)var(--tw-scale-y)}.after\:rotate-0:after{content:var(--tw-content);rotate:none}.after\:rounded-\[calc\(var\(--heroui-radius-large\)\/2\)\]:after{content:var(--tw-content);border-radius:calc(var(--heroui-radius-large)/2)}.after\:rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.5\)\]:after{content:var(--tw-content);border-radius:calc(var(--heroui-radius-medium)*.5)}.after\:rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.6\)\]:after{content:var(--tw-content);border-radius:calc(var(--heroui-radius-medium)*.6)}.after\:rounded-\[calc\(var\(--heroui-radius-medium\)\*0\.7\)\]:after{content:var(--tw-content);border-radius:calc(var(--heroui-radius-medium)*.7)}.after\:rounded-\[calc\(var\(--heroui-radius-medium\)\/3\)\]:after{content:var(--tw-content);border-radius:calc(var(--heroui-radius-medium)/3)}.after\:rounded-\[calc\(var\(--heroui-radius-small\)\/3\)\]:after{content:var(--tw-content);border-radius:calc(var(--heroui-radius-small)/3)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:rounded-none:after{content:var(--tw-content);border-radius:0}.after\:rounded-xl:after{content:var(--tw-content);border-radius:var(--radius-xl)}.after\:\!bg-danger:after{content:var(--tw-content);background-color:hsl(var(--heroui-danger)/1)!important}.after\:bg-background:after{content:var(--tw-content);background-color:hsl(var(--heroui-background)/1)}.after\:bg-content1:after{content:var(--tw-content);background-color:hsl(var(--heroui-content1)/1)}.after\:bg-content3:after{content:var(--tw-content);background-color:hsl(var(--heroui-content3)/1)}.after\:bg-current:after{content:var(--tw-content);background-color:currentColor}.after\:bg-danger:after{content:var(--tw-content);background-color:hsl(var(--heroui-danger)/1)}.after\:bg-default:after{content:var(--tw-content);background-color:hsl(var(--heroui-default)/1)}.after\:bg-default-foreground:after{content:var(--tw-content);background-color:hsl(var(--heroui-default-foreground)/1)}.after\:bg-divider:after{content:var(--tw-content);background-color:hsl(var(--heroui-divider)/.15)}.after\:bg-foreground:after{content:var(--tw-content);background-color:hsl(var(--heroui-foreground)/1)}.after\:bg-primary:after{content:var(--tw-content);background-color:var(--color-primary)}.after\:bg-secondary:after{content:var(--tw-content);background-color:hsl(var(--heroui-secondary)/1)}.after\:bg-success:after{content:var(--tw-content);background-color:hsl(var(--heroui-success)/1)}.after\:bg-transparent:after{content:var(--tw-content);background-color:#0000}.after\:bg-warning:after{content:var(--tw-content);background-color:hsl(var(--heroui-warning)/1)}.after\:text-danger:after{content:var(--tw-content);color:hsl(var(--heroui-danger)/1)}.after\:text-danger-foreground:after{content:var(--tw-content);color:hsl(var(--heroui-danger-foreground)/1)}.after\:text-default-foreground:after{content:var(--tw-content);color:hsl(var(--heroui-default-foreground)/1)}.after\:text-primary-foreground:after{content:var(--tw-content);color:hsl(var(--heroui-primary-foreground)/1)}.after\:text-secondary-foreground:after{content:var(--tw-content);color:hsl(var(--heroui-secondary-foreground)/1)}.after\:text-success-foreground:after{content:var(--tw-content);color:hsl(var(--heroui-success-foreground)/1)}.after\:text-warning-foreground:after{content:var(--tw-content);color:hsl(var(--heroui-warning-foreground)/1)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:opacity-100:after{content:var(--tw-content);opacity:1}.after\:shadow-\[0_1px_0px_0_rgba\(0\,0\,0\,0\.05\)\]:after{content:var(--tw-content);--tw-shadow:0 1px 0px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:shadow-small:after{content:var(--tw-content);--tw-shadow:var(--heroui-box-shadow-small);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:transition-background:after{content:var(--tw-content);transition-property:background;transition-duration:.25s;transition-timing-function:ease}.after\:transition-height:after{content:var(--tw-content);transition-property:height;transition-duration:.25s;transition-timing-function:ease}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:transition-transform-opacity:after{content:var(--tw-content);transition-property:transform,scale,opacity rotate;transition-duration:.25s;transition-timing-function:ease}.after\:transition-width:after{content:var(--tw-content);transition-property:width;transition-duration:.25s;transition-timing-function:ease}.after\:transition-none:after{content:var(--tw-content);transition-property:none}.after\:\!duration-200:after{content:var(--tw-content);--tw-duration:.2s!important;transition-duration:.2s!important}.after\:duration-150:after{content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s}.after\:\!ease-linear:after{content:var(--tw-content);--tw-ease:linear!important;transition-timing-function:linear!important}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.after\:content-\[\'\*\'\]:after{--tw-content:"*";content:var(--tw-content)}.group-data-\[focus\=true\]\:after\:w-full:is(:where(.group)[data-focus=true] *):after{content:var(--tw-content);width:100%}.group-data-\[invalid\=true\]\:after\:bg-danger:is(:where(.group)[data-invalid=true] *):after{content:var(--tw-content);background-color:hsl(var(--heroui-danger)/1)}.group-data-\[open\=true\]\:after\:translate-y-0:is(:where(.group)[data-open=true] *):after{content:var(--tw-content);--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[open\=true\]\:after\:-rotate-45:is(:where(.group)[data-open=true] *):after{content:var(--tw-content);rotate:-45deg}.group-data-\[required\=true\]\:after\:ml-0\.5:is(:where(.group)[data-required=true] *):after{content:var(--tw-content);margin-left:calc(var(--spacing)*.5)}.group-data-\[required\=true\]\:after\:text-danger:is(:where(.group)[data-required=true] *):after{content:var(--tw-content);color:hsl(var(--heroui-danger)/1)}.group-data-\[required\=true\]\:after\:content-\[\'\*\'\]:is(:where(.group)[data-required=true] *):after{--tw-content:"*";content:var(--tw-content)}.group-data-\[selected\=true\]\:after\:scale-100:is(:where(.group)[data-selected=true] *):after{content:var(--tw-content);--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-data-\[selected\=true\]\:after\:opacity-100:is(:where(.group)[data-selected=true] *):after{content:var(--tw-content);opacity:1}.first\:mt-2:first-child{margin-top:calc(var(--spacing)*2)}.first\:-ml-0\.5:first-child{margin-left:calc(var(--spacing)*-.5)}.first\:rounded-s-full:first-child{border-start-start-radius:3.40282e38px;border-end-start-radius:3.40282e38px}.first\:rounded-s-large:first-child{border-start-start-radius:var(--heroui-radius-large);border-end-start-radius:var(--heroui-radius-large)}.first\:rounded-s-lg:first-child{border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg)}.first\:rounded-s-medium:first-child{border-start-start-radius:var(--heroui-radius-medium);border-end-start-radius:var(--heroui-radius-medium)}.first\:rounded-s-none:first-child{border-start-start-radius:0;border-end-start-radius:0}.first\:rounded-s-small:first-child{border-start-start-radius:var(--heroui-radius-small);border-end-start-radius:var(--heroui-radius-small)}.first\:before\:rounded-s-lg:first-child:before{content:var(--tw-content);border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg)}.first\:before\:rounded-s-none:first-child:before{content:var(--tw-content);border-start-start-radius:0;border-end-start-radius:0}.group-data-\[first\=true\]\/tr\:first\:before\:rounded-ss-lg:is(:where(.group\/tr)[data-first=true] *):first-child:before{content:var(--tw-content);border-start-start-radius:var(--radius-lg)}.group-data-\[first\=true\]\/tr\:first\:before\:rounded-ss-none:is(:where(.group\/tr)[data-first=true] *):first-child:before{content:var(--tw-content);border-start-start-radius:0}.group-data-\[last\=true\]\/tr\:first\:before\:rounded-es-lg:is(:where(.group\/tr)[data-last=true] *):first-child:before{content:var(--tw-content);border-end-start-radius:var(--radius-lg)}.group-data-\[last\=true\]\/tr\:first\:before\:rounded-es-none:is(:where(.group\/tr)[data-last=true] *):first-child:before{content:var(--tw-content);border-end-start-radius:0}.last\:rounded-e-full:last-child{border-start-end-radius:3.40282e38px;border-end-end-radius:3.40282e38px}.last\:rounded-e-large:last-child{border-start-end-radius:var(--heroui-radius-large);border-end-end-radius:var(--heroui-radius-large)}.last\:rounded-e-lg:last-child{border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}.last\:rounded-e-medium:last-child{border-start-end-radius:var(--heroui-radius-medium);border-end-end-radius:var(--heroui-radius-medium)}.last\:rounded-e-none:last-child{border-start-end-radius:0;border-end-end-radius:0}.last\:rounded-e-small:last-child{border-start-end-radius:var(--heroui-radius-small);border-end-end-radius:var(--heroui-radius-small)}.last\:before\:rounded-e-lg:last-child:before{content:var(--tw-content);border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}.last\:before\:rounded-e-none:last-child:before{content:var(--tw-content);border-start-end-radius:0;border-end-end-radius:0}.group-data-\[first\=true\]\/tr\:last\:before\:rounded-se-lg:is(:where(.group\/tr)[data-first=true] *):last-child:before{content:var(--tw-content);border-start-end-radius:var(--radius-lg)}.group-data-\[first\=true\]\/tr\:last\:before\:rounded-se-none:is(:where(.group\/tr)[data-first=true] *):last-child:before{content:var(--tw-content);border-start-end-radius:0}.group-data-\[last\=true\]\/tr\:last\:before\:rounded-ee-lg:is(:where(.group\/tr)[data-last=true] *):last-child:before{content:var(--tw-content);border-end-end-radius:var(--radius-lg)}.group-data-\[last\=true\]\/tr\:last\:before\:rounded-ee-none:is(:where(.group\/tr)[data-last=true] *):last-child:before{content:var(--tw-content);border-end-end-radius:0}.first-of-type\:rounded-e-none:first-of-type{border-start-end-radius:0;border-end-end-radius:0}.last-of-type\:rounded-s-none:last-of-type{border-start-start-radius:0;border-end-start-radius:0}.autofill\:bg-transparent:autofill{background-color:#0000}.focus-within\:border-danger:focus-within{border-color:hsl(var(--heroui-danger)/1)}.focus-within\:border-default-400:focus-within{border-color:hsl(var(--heroui-default-400)/1)}.focus-within\:border-default-foreground:focus-within{border-color:hsl(var(--heroui-default-foreground)/1)}.focus-within\:border-primary:focus-within{border-color:var(--color-primary)}.focus-within\:border-secondary:focus-within{border-color:hsl(var(--heroui-secondary)/1)}.focus-within\:border-success:focus-within{border-color:hsl(var(--heroui-success)/1)}.focus-within\:border-warning:focus-within{border-color:hsl(var(--heroui-warning)/1)}.focus-within\:bg-danger-50:focus-within{background-color:hsl(var(--heroui-danger-50)/1)}.focus-within\:bg-primary-50:focus-within{background-color:hsl(var(--heroui-primary-50)/1)}.focus-within\:bg-secondary-50:focus-within{background-color:hsl(var(--heroui-secondary-50)/1)}.focus-within\:bg-success-50:focus-within{background-color:hsl(var(--heroui-success-50)/1)}.focus-within\:bg-warning-50:focus-within{background-color:hsl(var(--heroui-warning-50)/1)}.focus-within\:after\:w-full:focus-within:after{content:var(--tw-content);width:100%}@media (hover:hover){.hover\:-translate-x-0:hover{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-danger:hover{border-color:hsl(var(--heroui-danger)/1)}.hover\:border-default:hover{border-color:hsl(var(--heroui-default)/1)}.hover\:border-default-300:hover{border-color:hsl(var(--heroui-default-300)/1)}.hover\:border-default-400:hover{border-color:hsl(var(--heroui-default-400)/1)}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:border-secondary:hover{border-color:hsl(var(--heroui-secondary)/1)}.hover\:border-success:hover{border-color:hsl(var(--heroui-success)/1)}.hover\:border-warning:hover{border-color:hsl(var(--heroui-warning)/1)}.hover\:\!bg-foreground:hover{background-color:hsl(var(--heroui-foreground)/1)!important}.hover\:bg-danger:hover{background-color:hsl(var(--heroui-danger)/1)}.hover\:bg-danger-50:hover{background-color:hsl(var(--heroui-danger-50)/1)}.hover\:bg-default-100:hover{background-color:hsl(var(--heroui-default-100)/1)}.hover\:bg-default-200:hover{background-color:hsl(var(--heroui-default-200)/1)}.hover\:bg-primary-50:hover{background-color:hsl(var(--heroui-primary-50)/1)}.hover\:bg-secondary-50:hover{background-color:hsl(var(--heroui-secondary-50)/1)}.hover\:bg-success-50:hover{background-color:hsl(var(--heroui-success-50)/1)}.hover\:bg-warning-50:hover{background-color:hsl(var(--heroui-warning-50)/1)}.hover\:text-danger-600:hover{color:hsl(var(--heroui-danger-600)/1)}.hover\:text-default-600:hover{color:hsl(var(--heroui-default-600)/1)}.hover\:text-foreground-600:hover{color:hsl(var(--heroui-foreground-600)/1)}.hover\:text-primary-600:hover{color:hsl(var(--heroui-primary-600)/1)}.hover\:text-secondary-600:hover{color:hsl(var(--heroui-secondary-600)/1)}.hover\:text-success-600:hover{color:hsl(var(--heroui-success-600)/1)}.hover\:text-warning-600:hover{color:hsl(var(--heroui-warning-600)/1)}.hover\:underline:hover{text-decoration-line:underline}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-hover:hover{opacity:var(--heroui-hover-opacity)}.group-data-\[invalid\=true\]\:hover\:border-danger:is(:where(.group)[data-invalid=true] *):hover{border-color:hsl(var(--heroui-danger)/1)}.group-data-\[invalid\=true\]\:hover\:bg-danger-100:is(:where(.group)[data-invalid=true] *):hover{background-color:hsl(var(--heroui-danger-100)/1)}.hover\:after\:bg-danger\/20:hover:after{content:var(--tw-content);background-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-danger\/20:hover:after{background-color:color-mix(in oklab,hsl(var(--heroui-danger)/1)20%,transparent)}}.hover\:after\:bg-foreground\/10:hover:after{content:var(--tw-content);background-color:hsl(var(--heroui-foreground)/1)}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-foreground\/10:hover:after{background-color:color-mix(in oklab,hsl(var(--heroui-foreground)/1)10%,transparent)}}.hover\:after\:bg-primary\/20:hover:after{content:var(--tw-content);background-color:#1b54ff33}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-primary\/20:hover:after{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.hover\:after\:bg-secondary\/20:hover:after{content:var(--tw-content);background-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-secondary\/20:hover:after{background-color:color-mix(in oklab,hsl(var(--heroui-secondary)/1)20%,transparent)}}.hover\:after\:bg-success\/20:hover:after{content:var(--tw-content);background-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-success\/20:hover:after{background-color:color-mix(in oklab,hsl(var(--heroui-success)/1)20%,transparent)}}.hover\:after\:bg-warning\/20:hover:after{content:var(--tw-content);background-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-warning\/20:hover:after{background-color:color-mix(in oklab,hsl(var(--heroui-warning)/1)20%,transparent)}}.hover\:after\:opacity-100:hover:after{content:var(--tw-content);opacity:1}.focus-within\:hover\:border-danger:focus-within:hover{border-color:hsl(var(--heroui-danger)/1)}.focus-within\:hover\:border-default-foreground:focus-within:hover{border-color:hsl(var(--heroui-default-foreground)/1)}.focus-within\:hover\:border-primary:focus-within:hover{border-color:var(--color-primary)}.focus-within\:hover\:border-secondary:focus-within:hover{border-color:hsl(var(--heroui-secondary)/1)}.focus-within\:hover\:border-success:focus-within:hover{border-color:hsl(var(--heroui-success)/1)}.focus-within\:hover\:border-warning:focus-within:hover{border-color:hsl(var(--heroui-warning)/1)}.focus-within\:hover\:bg-default-100:focus-within:hover{background-color:hsl(var(--heroui-default-100)/1)}.group-data-\[invalid\=true\]\:focus-within\:hover\:border-danger:is(:where(.group)[data-invalid=true] *):focus-within:hover{border-color:hsl(var(--heroui-danger)/1)}.group-data-\[invalid\=true\]\:focus-within\:hover\:bg-danger-50:is(:where(.group)[data-invalid=true] *):focus-within:hover{background-color:hsl(var(--heroui-danger-50)/1)}}.focus\:bg-danger-400\/50:focus{background-color:hsl(var(--heroui-danger-400)/1)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-danger-400\/50:focus{background-color:color-mix(in oklab,hsl(var(--heroui-danger-400)/1)50%,transparent)}}.focus\:bg-default-400\/50:focus{background-color:hsl(var(--heroui-default-400)/1)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-default-400\/50:focus{background-color:color-mix(in oklab,hsl(var(--heroui-default-400)/1)50%,transparent)}}.focus\:bg-primary-400\/50:focus{background-color:hsl(var(--heroui-primary-400)/1)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-primary-400\/50:focus{background-color:color-mix(in oklab,hsl(var(--heroui-primary-400)/1)50%,transparent)}}.focus\:bg-secondary-400\/50:focus{background-color:hsl(var(--heroui-secondary-400)/1)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-secondary-400\/50:focus{background-color:color-mix(in oklab,hsl(var(--heroui-secondary-400)/1)50%,transparent)}}.focus\:bg-success-400\/50:focus{background-color:hsl(var(--heroui-success-400)/1)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-success-400\/50:focus{background-color:color-mix(in oklab,hsl(var(--heroui-success-400)/1)50%,transparent)}}.focus\:bg-warning-400\/50:focus{background-color:hsl(var(--heroui-warning-400)/1)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-warning-400\/50:focus{background-color:color-mix(in oklab,hsl(var(--heroui-warning-400)/1)50%,transparent)}}.focus\:underline:focus{text-decoration-line:underline}.focus\:shadow-xs:focus{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-focus:focus-visible{outline-color:hsl(var(--heroui-focus)/1)}.active\:bg-default-200:active{background-color:hsl(var(--heroui-default-200)/1)}.active\:bg-default-300:active{background-color:hsl(var(--heroui-default-300)/1)}.active\:underline:active{text-decoration-line:underline}.active\:\!opacity-70:active{opacity:.7!important}.active\:opacity-disabled:active{opacity:var(--heroui-disabled-opacity)}.disabled\:cursor-default:disabled{cursor:default}.has-\[\:disabled\]\:opacity-60:has(:disabled){opacity:.6}.aria-expanded\:scale-\[0\.97\][aria-expanded=true]{scale:.97}.aria-expanded\:opacity-70[aria-expanded=true]{opacity:.7}.data-\[active\=true\]\:scale-100[data-active=true]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[active\=true\]\:scale-110[data-active=true]{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[active\=true\]\:border-danger[data-active=true]{border-color:hsl(var(--heroui-danger)/1)}.data-\[active\=true\]\:border-danger-400[data-active=true]{border-color:hsl(var(--heroui-danger-400)/1)}.data-\[active\=true\]\:border-default-300[data-active=true]{border-color:hsl(var(--heroui-default-300)/1)}.data-\[active\=true\]\:border-default-400[data-active=true]{border-color:hsl(var(--heroui-default-400)/1)}.data-\[active\=true\]\:border-foreground[data-active=true]{border-color:hsl(var(--heroui-foreground)/1)}.data-\[active\=true\]\:border-primary[data-active=true]{border-color:var(--color-primary)}.data-\[active\=true\]\:border-secondary[data-active=true]{border-color:hsl(var(--heroui-secondary)/1)}.data-\[active\=true\]\:border-success[data-active=true]{border-color:hsl(var(--heroui-success)/1)}.data-\[active\=true\]\:border-warning[data-active=true]{border-color:hsl(var(--heroui-warning)/1)}.data-\[active\=true\]\:bg-danger[data-active=true]{background-color:hsl(var(--heroui-danger)/1)}.data-\[active\=true\]\:bg-danger-100[data-active=true]{background-color:hsl(var(--heroui-danger-100)/1)}.data-\[active\=true\]\:bg-danger-200[data-active=true]{background-color:hsl(var(--heroui-danger-200)/1)}.data-\[active\=true\]\:bg-default-200[data-active=true]{background-color:hsl(var(--heroui-default-200)/1)}.data-\[active\=true\]\:bg-default-400[data-active=true]{background-color:hsl(var(--heroui-default-400)/1)}.data-\[active\=true\]\:bg-primary[data-active=true]{background-color:var(--color-primary)}.data-\[active\=true\]\:bg-primary-200[data-active=true]{background-color:hsl(var(--heroui-primary-200)/1)}.data-\[active\=true\]\:bg-secondary[data-active=true]{background-color:hsl(var(--heroui-secondary)/1)}.data-\[active\=true\]\:bg-secondary-200[data-active=true]{background-color:hsl(var(--heroui-secondary-200)/1)}.data-\[active\=true\]\:bg-success[data-active=true]{background-color:hsl(var(--heroui-success)/1)}.data-\[active\=true\]\:bg-success-200[data-active=true]{background-color:hsl(var(--heroui-success-200)/1)}.data-\[active\=true\]\:bg-warning[data-active=true]{background-color:hsl(var(--heroui-warning)/1)}.data-\[active\=true\]\:bg-warning-200[data-active=true]{background-color:hsl(var(--heroui-warning-200)/1)}.data-\[active\=true\]\:font-semibold[data-active=true]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[active\=true\]\:text-danger-foreground[data-active=true]{color:hsl(var(--heroui-danger-foreground)/1)}.data-\[active\=true\]\:text-default-foreground[data-active=true]{color:hsl(var(--heroui-default-foreground)/1)}.data-\[active\=true\]\:text-primary-foreground[data-active=true]{color:hsl(var(--heroui-primary-foreground)/1)}.data-\[active\=true\]\:text-secondary-foreground[data-active=true]{color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[active\=true\]\:text-success-foreground[data-active=true]{color:hsl(var(--heroui-success-foreground)/1)}.data-\[active\=true\]\:text-warning-foreground[data-active=true]{color:hsl(var(--heroui-warning-foreground)/1)}.data-\[active\=true\]\:shadow-md[data-active=true]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[active\=true\]\:shadow-danger\/40[data-active=true]{--tw-shadow-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:shadow-danger\/40[data-active=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-danger)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[active\=true\]\:shadow-default\/50[data-active=true]{--tw-shadow-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:shadow-default\/50[data-active=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-default)/1)50%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[active\=true\]\:shadow-primary\/40[data-active=true]{--tw-shadow-color:#1b54ff66}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:shadow-primary\/40[data-active=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[active\=true\]\:shadow-secondary\/40[data-active=true]{--tw-shadow-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:shadow-secondary\/40[data-active=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-secondary)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[active\=true\]\:shadow-success\/40[data-active=true]{--tw-shadow-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:shadow-success\/40[data-active=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-success)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[active\=true\]\:shadow-warning\/40[data-active=true]{--tw-shadow-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:shadow-warning\/40[data-active=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-warning)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[active\=true\]\:after\:w-full[data-active=true]:after{content:var(--tw-content);width:100%}.data-\[active\=true\]\:after\:bg-danger-400[data-active=true]:after{content:var(--tw-content);background-color:hsl(var(--heroui-danger-400)/1)}.data-\[animation\=exiting\]\:opacity-0[data-animation=exiting]{opacity:0}.data-\[arrow\=true\]\:before\:block[data-arrow=true]:before{content:var(--tw-content);display:block}.data-\[before\=true\]\:rotate-180[data-before=true]{rotate:180deg}.data-\[bottom-scroll\=true\]\:\[mask-image\:linear-gradient\(180deg\,\#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\,transparent\)\][data-bottom-scroll=true]{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - var(--scroll-shadow-size)),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - var(--scroll-shadow-size)),transparent)}.data-\[direction\=ascending\]\:rotate-180[data-direction=ascending]{rotate:180deg}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:cursor-default[data-disabled=true]{cursor:default}.data-\[disabled\=true\]\:cursor-not-allowed[data-disabled=true]{cursor:not-allowed}.data-\[disabled\=true\]\:text-default-300[data-disabled=true]{color:hsl(var(--heroui-default-300)/1)}.data-\[disabled\=true\]\:opacity-30[data-disabled=true]{opacity:.3}.data-\[disabled\=true\]\:transition-none[data-disabled=true]{transition-property:none}.data-\[dragging\=true\]\:cursor-grabbing[data-dragging=true]{cursor:grabbing}.data-\[dragging\=true\]\:after\:scale-80[data-dragging=true]:after{content:var(--tw-content);--tw-scale-x:.8;--tw-scale-y:.8;--tw-scale-z:.8;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[dragging\=true\]\:after\:scale-100[data-dragging=true]:after{content:var(--tw-content);--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[editable\=true\]\:text-danger[data-editable=true]{color:hsl(var(--heroui-danger)/1)}.data-\[editable\=true\]\:text-foreground[data-editable=true]{color:hsl(var(--heroui-foreground)/1)}.data-\[editable\=true\]\:text-primary[data-editable=true]{color:var(--color-primary)}.data-\[editable\=true\]\:text-secondary[data-editable=true]{color:hsl(var(--heroui-secondary)/1)}.data-\[editable\=true\]\:text-success-600[data-editable=true]{color:hsl(var(--heroui-success-600)/1)}.data-\[editable\=true\]\:text-warning-600[data-editable=true]{color:hsl(var(--heroui-warning-600)/1)}.data-\[editable\=true\]\:focus\:text-danger[data-editable=true]:focus{color:hsl(var(--heroui-danger)/1)}.data-\[editable\=true\]\:focus\:text-default-foreground[data-editable=true]:focus{color:hsl(var(--heroui-default-foreground)/1)}.data-\[editable\=true\]\:focus\:text-primary[data-editable=true]:focus{color:var(--color-primary)}.data-\[editable\=true\]\:focus\:text-secondary[data-editable=true]:focus{color:hsl(var(--heroui-secondary)/1)}.data-\[editable\=true\]\:focus\:text-success[data-editable=true]:focus{color:hsl(var(--heroui-success)/1)}.data-\[editable\=true\]\:focus\:text-success-600[data-editable=true]:focus{color:hsl(var(--heroui-success-600)/1)}.data-\[editable\=true\]\:focus\:text-warning[data-editable=true]:focus{color:hsl(var(--heroui-warning)/1)}.data-\[editable\=true\]\:focus\:text-warning-600[data-editable=true]:focus{color:hsl(var(--heroui-warning-600)/1)}.data-\[fill-end\=true\]\:border-e-danger[data-fill-end=true]{border-inline-end-color:hsl(var(--heroui-danger)/1)}.data-\[fill-end\=true\]\:border-e-foreground[data-fill-end=true]{border-inline-end-color:hsl(var(--heroui-foreground)/1)}.data-\[fill-end\=true\]\:border-e-primary[data-fill-end=true]{border-inline-end-color:var(--color-primary)}.data-\[fill-end\=true\]\:border-e-secondary[data-fill-end=true]{border-inline-end-color:hsl(var(--heroui-secondary)/1)}.data-\[fill-end\=true\]\:border-e-success[data-fill-end=true]{border-inline-end-color:hsl(var(--heroui-success)/1)}.data-\[fill-end\=true\]\:border-e-warning[data-fill-end=true]{border-inline-end-color:hsl(var(--heroui-warning)/1)}.data-\[fill-end\=true\]\:border-t-danger[data-fill-end=true]{border-top-color:hsl(var(--heroui-danger)/1)}.data-\[fill-end\=true\]\:border-t-foreground[data-fill-end=true]{border-top-color:hsl(var(--heroui-foreground)/1)}.data-\[fill-end\=true\]\:border-t-primary[data-fill-end=true]{border-top-color:var(--color-primary)}.data-\[fill-end\=true\]\:border-t-secondary[data-fill-end=true]{border-top-color:hsl(var(--heroui-secondary)/1)}.data-\[fill-end\=true\]\:border-t-success[data-fill-end=true]{border-top-color:hsl(var(--heroui-success)/1)}.data-\[fill-end\=true\]\:border-t-warning[data-fill-end=true]{border-top-color:hsl(var(--heroui-warning)/1)}.data-\[fill-start\=true\]\:border-s-danger[data-fill-start=true]{border-inline-start-color:hsl(var(--heroui-danger)/1)}.data-\[fill-start\=true\]\:border-s-foreground[data-fill-start=true]{border-inline-start-color:hsl(var(--heroui-foreground)/1)}.data-\[fill-start\=true\]\:border-s-primary[data-fill-start=true]{border-inline-start-color:var(--color-primary)}.data-\[fill-start\=true\]\:border-s-secondary[data-fill-start=true]{border-inline-start-color:hsl(var(--heroui-secondary)/1)}.data-\[fill-start\=true\]\:border-s-success[data-fill-start=true]{border-inline-start-color:hsl(var(--heroui-success)/1)}.data-\[fill-start\=true\]\:border-s-warning[data-fill-start=true]{border-inline-start-color:hsl(var(--heroui-warning)/1)}.data-\[fill-start\=true\]\:border-b-danger[data-fill-start=true]{border-bottom-color:hsl(var(--heroui-danger)/1)}.data-\[fill-start\=true\]\:border-b-foreground[data-fill-start=true]{border-bottom-color:hsl(var(--heroui-foreground)/1)}.data-\[fill-start\=true\]\:border-b-primary[data-fill-start=true]{border-bottom-color:var(--color-primary)}.data-\[fill-start\=true\]\:border-b-secondary[data-fill-start=true]{border-bottom-color:hsl(var(--heroui-secondary)/1)}.data-\[fill-start\=true\]\:border-b-success[data-fill-start=true]{border-bottom-color:hsl(var(--heroui-success)/1)}.data-\[fill-start\=true\]\:border-b-warning[data-fill-start=true]{border-bottom-color:hsl(var(--heroui-warning)/1)}.data-\[focus-visible\]\:outline-danger-foreground[data-focus-visible]{outline-color:hsl(var(--heroui-danger-foreground)/1)}.data-\[focus-visible\]\:outline-default-foreground[data-focus-visible]{outline-color:hsl(var(--heroui-default-foreground)/1)}.data-\[focus-visible\]\:outline-primary-foreground[data-focus-visible]{outline-color:hsl(var(--heroui-primary-foreground)/1)}.data-\[focus-visible\]\:outline-secondary-foreground[data-focus-visible]{outline-color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[focus-visible\]\:outline-success-foreground[data-focus-visible]{outline-color:hsl(var(--heroui-success-foreground)/1)}.data-\[focus-visible\]\:outline-warning-foreground[data-focus-visible]{outline-color:hsl(var(--heroui-warning-foreground)/1)}.data-\[focus-visible\=true\]\:z-10[data-focus-visible=true]{z-index:10}.data-\[focus-visible\=true\]\:-translate-x-3[data-focus-visible=true]{--tw-translate-x:calc(var(--spacing)*-3);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[focus-visible\=true\]\:outline-2[data-focus-visible=true]{outline-style:var(--tw-outline-style);outline-width:2px}.data-\[focus-visible\=true\]\:outline-offset-2[data-focus-visible=true]{outline-offset:2px}.data-\[focus-visible\=true\]\:outline-focus[data-focus-visible=true]{outline-color:hsl(var(--heroui-focus)/1)}.data-\[focus\=true\]\:border-danger[data-focus=true]{border-color:hsl(var(--heroui-danger)/1)}.data-\[focus\=true\]\:border-default-400[data-focus=true]{border-color:hsl(var(--heroui-default-400)/1)}.data-\[focus\=true\]\:border-default-foreground[data-focus=true]{border-color:hsl(var(--heroui-default-foreground)/1)}.data-\[focus\=true\]\:border-primary[data-focus=true]{border-color:var(--color-primary)}.data-\[focus\=true\]\:border-secondary[data-focus=true]{border-color:hsl(var(--heroui-secondary)/1)}.data-\[focus\=true\]\:border-success[data-focus=true]{border-color:hsl(var(--heroui-success)/1)}.data-\[focus\=true\]\:border-warning[data-focus=true]{border-color:hsl(var(--heroui-warning)/1)}.data-\[focus\=true\]\:after\:w-full[data-focus=true]:after{content:var(--tw-content);width:100%}.data-\[focused\=true\]\:z-10[data-focused=true]{z-index:10}.data-\[has-end-content\=true\]\:pe-1\.5[data-has-end-content=true]{padding-inline-end:calc(var(--spacing)*1.5)}.data-\[has-helper\=true\]\:items-start[data-has-helper=true]{align-items:flex-start}.data-\[has-helper\=true\]\:pb-\[calc\(var\(--heroui-font-size-tiny\)_\+8px\)\][data-has-helper=true],.data-\[has-helper\=true\]\:pb-\[calc\(var\(--heroui-font-size-tiny\)_\+_8px\)\][data-has-helper=true]{padding-bottom:calc(var(--heroui-font-size-tiny) + 8px)}.data-\[has-label\=true\]\:mt-\[calc\(var\(--heroui-font-size-small\)_\+_8px\)\][data-has-label=true]{margin-top:calc(var(--heroui-font-size-small) + 8px)}.data-\[has-label\=true\]\:mt-\[calc\(var\(--heroui-font-size-small\)_\+_10px\)\][data-has-label=true]{margin-top:calc(var(--heroui-font-size-small) + 10px)}.data-\[has-label\=true\]\:mt-\[calc\(var\(--heroui-font-size-small\)_\+_12px\)\][data-has-label=true]{margin-top:calc(var(--heroui-font-size-small) + 12px)}.data-\[has-multiple-rows\=true\]\:rounded-large[data-has-multiple-rows=true]{border-radius:var(--heroui-radius-large)}.data-\[has-start-content\=true\]\:ps-1\.5[data-has-start-content=true]{padding-inline-start:calc(var(--spacing)*1.5)}.data-\[has-title\=true\]\:pt-1[data-has-title=true]{padding-top:calc(var(--spacing)*1)}.data-\[has-value\=true\]\:text-default-foreground[data-has-value=true]{color:hsl(var(--heroui-default-foreground)/1)}.data-\[hidden\=true\]\:hidden[data-hidden=true]{display:none}.data-\[hide-scroll\=true\]\:scrollbar-hide[data-hide-scroll=true]{-ms-overflow-style:none;scrollbar-width:none}.data-\[hide-scroll\=true\]\:scrollbar-hide[data-hide-scroll=true]::-webkit-scrollbar{display:none}.data-\[hover\]\:bg-danger-50[data-hover]{background-color:hsl(var(--heroui-danger-50)/1)}.data-\[hover\]\:bg-danger-200[data-hover]{background-color:hsl(var(--heroui-danger-200)/1)}.data-\[hover\]\:bg-default-100[data-hover]{background-color:hsl(var(--heroui-default-100)/1)}.data-\[hover\]\:bg-primary-50[data-hover]{background-color:hsl(var(--heroui-primary-50)/1)}.data-\[hover\]\:bg-primary-200[data-hover]{background-color:hsl(var(--heroui-primary-200)/1)}.data-\[hover\]\:bg-secondary-50[data-hover]{background-color:hsl(var(--heroui-secondary-50)/1)}.data-\[hover\]\:bg-secondary-200[data-hover]{background-color:hsl(var(--heroui-secondary-200)/1)}.data-\[hover\]\:bg-success-50[data-hover]{background-color:hsl(var(--heroui-success-50)/1)}.data-\[hover\]\:bg-success-200[data-hover]{background-color:hsl(var(--heroui-success-200)/1)}.data-\[hover\]\:bg-warning-100[data-hover]{background-color:hsl(var(--heroui-warning-100)/1)}.data-\[hover\]\:bg-warning-200[data-hover]{background-color:hsl(var(--heroui-warning-200)/1)}.data-\[hover-unselected\=true\]\:opacity-disabled[data-hover-unselected=true]{opacity:var(--heroui-disabled-opacity)}.data-\[hover\=true\]\:-translate-x-3[data-hover=true]{--tw-translate-x:calc(var(--spacing)*-3);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[hover\=true\]\:translate-x-0[data-hover=true]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[hover\=true\]\:border-danger[data-hover=true]{border-color:hsl(var(--heroui-danger)/1)}.data-\[hover\=true\]\:border-default[data-hover=true]{border-color:hsl(var(--heroui-default)/1)}.data-\[hover\=true\]\:border-default-400[data-hover=true]{border-color:hsl(var(--heroui-default-400)/1)}.data-\[hover\=true\]\:border-primary[data-hover=true]{border-color:var(--color-primary)}.data-\[hover\=true\]\:border-secondary[data-hover=true]{border-color:hsl(var(--heroui-secondary)/1)}.data-\[hover\=true\]\:border-success[data-hover=true]{border-color:hsl(var(--heroui-success)/1)}.data-\[hover\=true\]\:border-warning[data-hover=true]{border-color:hsl(var(--heroui-warning)/1)}.data-\[hover\=true\]\:\!bg-danger[data-hover=true]{background-color:hsl(var(--heroui-danger)/1)!important}.data-\[hover\=true\]\:\!bg-danger-100[data-hover=true]{background-color:hsl(var(--heroui-danger-100)/1)!important}.data-\[hover\=true\]\:\!bg-default[data-hover=true]{background-color:hsl(var(--heroui-default)/1)!important}.data-\[hover\=true\]\:\!bg-primary[data-hover=true]{background-color:var(--color-primary)!important}.data-\[hover\=true\]\:\!bg-secondary[data-hover=true]{background-color:hsl(var(--heroui-secondary)/1)!important}.data-\[hover\=true\]\:\!bg-success[data-hover=true]{background-color:hsl(var(--heroui-success)/1)!important}.data-\[hover\=true\]\:\!bg-warning[data-hover=true]{background-color:hsl(var(--heroui-warning)/1)!important}.data-\[hover\=true\]\:bg-content2[data-hover=true]{background-color:hsl(var(--heroui-content2)/1)}.data-\[hover\=true\]\:bg-danger[data-hover=true]{background-color:hsl(var(--heroui-danger)/1)}.data-\[hover\=true\]\:bg-danger-50[data-hover=true]{background-color:hsl(var(--heroui-danger-50)/1)}.data-\[hover\=true\]\:bg-danger-100[data-hover=true]{background-color:hsl(var(--heroui-danger-100)/1)}.data-\[hover\=true\]\:bg-danger\/20[data-hover=true]{background-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:bg-danger\/20[data-hover=true]{background-color:color-mix(in oklab,hsl(var(--heroui-danger)/1)20%,transparent)}}.data-\[hover\=true\]\:bg-default[data-hover=true]{background-color:hsl(var(--heroui-default)/1)}.data-\[hover\=true\]\:bg-default-100[data-hover=true]{background-color:hsl(var(--heroui-default-100)/1)}.data-\[hover\=true\]\:bg-default-200[data-hover=true]{background-color:hsl(var(--heroui-default-200)/1)}.data-\[hover\=true\]\:bg-default\/40[data-hover=true]{background-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:bg-default\/40[data-hover=true]{background-color:color-mix(in oklab,hsl(var(--heroui-default)/1)40%,transparent)}}.data-\[hover\=true\]\:bg-foreground-200[data-hover=true]{background-color:hsl(var(--heroui-foreground-200)/1)}.data-\[hover\=true\]\:bg-primary[data-hover=true]{background-color:var(--color-primary)}.data-\[hover\=true\]\:bg-primary-50[data-hover=true]{background-color:hsl(var(--heroui-primary-50)/1)}.data-\[hover\=true\]\:bg-primary\/20[data-hover=true]{background-color:#1b54ff33}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:bg-primary\/20[data-hover=true]{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.data-\[hover\=true\]\:bg-secondary[data-hover=true]{background-color:hsl(var(--heroui-secondary)/1)}.data-\[hover\=true\]\:bg-secondary-50[data-hover=true]{background-color:hsl(var(--heroui-secondary-50)/1)}.data-\[hover\=true\]\:bg-secondary\/20[data-hover=true]{background-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:bg-secondary\/20[data-hover=true]{background-color:color-mix(in oklab,hsl(var(--heroui-secondary)/1)20%,transparent)}}.data-\[hover\=true\]\:bg-success[data-hover=true]{background-color:hsl(var(--heroui-success)/1)}.data-\[hover\=true\]\:bg-success-50[data-hover=true]{background-color:hsl(var(--heroui-success-50)/1)}.data-\[hover\=true\]\:bg-success-100[data-hover=true]{background-color:hsl(var(--heroui-success-100)/1)}.data-\[hover\=true\]\:bg-success\/20[data-hover=true]{background-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:bg-success\/20[data-hover=true]{background-color:color-mix(in oklab,hsl(var(--heroui-success)/1)20%,transparent)}}.data-\[hover\=true\]\:bg-transparent[data-hover=true]{background-color:#0000}.data-\[hover\=true\]\:bg-warning[data-hover=true]{background-color:hsl(var(--heroui-warning)/1)}.data-\[hover\=true\]\:bg-warning-50[data-hover=true]{background-color:hsl(var(--heroui-warning-50)/1)}.data-\[hover\=true\]\:bg-warning-100[data-hover=true]{background-color:hsl(var(--heroui-warning-100)/1)}.data-\[hover\=true\]\:bg-warning\/20[data-hover=true]{background-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:bg-warning\/20[data-hover=true]{background-color:color-mix(in oklab,hsl(var(--heroui-warning)/1)20%,transparent)}}.data-\[hover\=true\]\:\!text-danger-foreground[data-hover=true]{color:hsl(var(--heroui-danger-foreground)/1)!important}.data-\[hover\=true\]\:\!text-primary-foreground[data-hover=true]{color:hsl(var(--heroui-primary-foreground)/1)!important}.data-\[hover\=true\]\:\!text-secondary-foreground[data-hover=true]{color:hsl(var(--heroui-secondary-foreground)/1)!important}.data-\[hover\=true\]\:\!text-success-foreground[data-hover=true]{color:hsl(var(--heroui-success-foreground)/1)!important}.data-\[hover\=true\]\:\!text-warning-foreground[data-hover=true]{color:hsl(var(--heroui-warning-foreground)/1)!important}.data-\[hover\=true\]\:text-danger[data-hover=true]{color:hsl(var(--heroui-danger)/1)}.data-\[hover\=true\]\:text-danger-500[data-hover=true]{color:hsl(var(--heroui-danger-500)/1)}.data-\[hover\=true\]\:text-danger-foreground[data-hover=true]{color:hsl(var(--heroui-danger-foreground)/1)}.data-\[hover\=true\]\:text-default-500[data-hover=true]{color:hsl(var(--heroui-default-500)/1)}.data-\[hover\=true\]\:text-default-foreground[data-hover=true]{color:hsl(var(--heroui-default-foreground)/1)}.data-\[hover\=true\]\:text-foreground-400[data-hover=true]{color:hsl(var(--heroui-foreground-400)/1)}.data-\[hover\=true\]\:text-foreground-600[data-hover=true]{color:hsl(var(--heroui-foreground-600)/1)}.data-\[hover\=true\]\:text-primary[data-hover=true]{color:var(--color-primary)}.data-\[hover\=true\]\:text-primary-400[data-hover=true]{color:hsl(var(--heroui-primary-400)/1)}.data-\[hover\=true\]\:text-primary-foreground[data-hover=true]{color:hsl(var(--heroui-primary-foreground)/1)}.data-\[hover\=true\]\:text-secondary[data-hover=true]{color:hsl(var(--heroui-secondary)/1)}.data-\[hover\=true\]\:text-secondary-400[data-hover=true]{color:hsl(var(--heroui-secondary-400)/1)}.data-\[hover\=true\]\:text-secondary-foreground[data-hover=true]{color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[hover\=true\]\:text-success[data-hover=true]{color:hsl(var(--heroui-success)/1)}.data-\[hover\=true\]\:text-success-600[data-hover=true]{color:hsl(var(--heroui-success-600)/1)}.data-\[hover\=true\]\:text-success-foreground[data-hover=true]{color:hsl(var(--heroui-success-foreground)/1)}.data-\[hover\=true\]\:text-warning[data-hover=true]{color:hsl(var(--heroui-warning)/1)}.data-\[hover\=true\]\:text-warning-600[data-hover=true]{color:hsl(var(--heroui-warning-600)/1)}.data-\[hover\=true\]\:text-warning-foreground[data-hover=true]{color:hsl(var(--heroui-warning-foreground)/1)}.data-\[hover\=true\]\:opacity-70[data-hover=true]{opacity:.7}.data-\[hover\=true\]\:opacity-hover[data-hover=true]{opacity:var(--heroui-hover-opacity)}.data-\[hover\=true\]\:shadow-lg[data-hover=true]{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[hover\=true\]\:shadow-danger\/30[data-hover=true]{--tw-shadow-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:shadow-danger\/30[data-hover=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-danger)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[hover\=true\]\:shadow-default\/50[data-hover=true]{--tw-shadow-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:shadow-default\/50[data-hover=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-default)/1)50%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[hover\=true\]\:shadow-primary\/30[data-hover=true]{--tw-shadow-color:#1b54ff4d}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:shadow-primary\/30[data-hover=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[hover\=true\]\:shadow-secondary\/30[data-hover=true]{--tw-shadow-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:shadow-secondary\/30[data-hover=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-secondary)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[hover\=true\]\:shadow-success\/30[data-hover=true]{--tw-shadow-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:shadow-success\/30[data-hover=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-success)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[hover\=true\]\:shadow-warning\/30[data-hover=true]{--tw-shadow-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[hover\=true\]\:shadow-warning\/30[data-hover=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-warning)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[hover\=true\]\:transition-colors[data-hover=true]{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.data-\[in-range\=false\]\:bg-default-200[data-in-range=false]{background-color:hsl(var(--heroui-default-200)/1)}.data-\[in-range\=true\]\:bg-background\/50[data-in-range=true]{background-color:hsl(var(--heroui-background)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[in-range\=true\]\:bg-background\/50[data-in-range=true]{background-color:color-mix(in oklab,hsl(var(--heroui-background)/1)50%,transparent)}}.data-\[in-range\=true\]\:bg-danger[data-in-range=true]{background-color:hsl(var(--heroui-danger)/1)}.data-\[in-range\=true\]\:bg-foreground[data-in-range=true]{background-color:hsl(var(--heroui-foreground)/1)}.data-\[in-range\=true\]\:bg-primary[data-in-range=true]{background-color:var(--color-primary)}.data-\[in-range\=true\]\:bg-secondary[data-in-range=true]{background-color:hsl(var(--heroui-secondary)/1)}.data-\[in-range\=true\]\:bg-success[data-in-range=true]{background-color:hsl(var(--heroui-success)/1)}.data-\[in-range\=true\]\:bg-warning[data-in-range=true]{background-color:hsl(var(--heroui-warning)/1)}.data-\[in-range\=true\]\:opacity-100[data-in-range=true]{opacity:1}.data-\[inert\=true\]\:hidden[data-inert=true]{display:none}.data-\[invalid\=true\]\:text-danger-300[data-invalid=true]{color:hsl(var(--heroui-danger-300)/1)}.data-\[invalid\=true\]\:focus\:bg-danger-400\/50[data-invalid=true]:focus{background-color:hsl(var(--heroui-danger-400)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[invalid\=true\]\:focus\:bg-danger-400\/50[data-invalid=true]:focus{background-color:color-mix(in oklab,hsl(var(--heroui-danger-400)/1)50%,transparent)}}.data-\[invalid\=true\]\:data-\[editable\=true\]\:text-danger[data-invalid=true][data-editable=true],.data-\[invalid\=true\]\:data-\[editable\=true\]\:focus\:text-danger[data-invalid=true][data-editable=true]:focus{color:hsl(var(--heroui-danger)/1)}.data-\[invisible\=true\]\:scale-0[data-invisible=true]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[invisible\=true\]\:opacity-0[data-invisible=true]{opacity:0}.data-\[justify\=center\]\:justify-center[data-justify=center]{justify-content:center}.data-\[justify\=end\]\:flex-grow[data-justify=end]{flex-grow:1}.data-\[justify\=end\]\:basis-0[data-justify=end]{flex-basis:calc(var(--spacing)*0)}.data-\[justify\=end\]\:justify-end[data-justify=end]{justify-content:flex-end}.data-\[justify\=start\]\:flex-grow[data-justify=start]{flex-grow:1}.data-\[justify\=start\]\:basis-0[data-justify=start]{flex-basis:calc(var(--spacing)*0)}.data-\[justify\=start\]\:justify-start[data-justify=start]{justify-content:flex-start}.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\)\][data-left-right-scroll=true]{-webkit-mask-image:linear-gradient(to right,#000,#000,transparent 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),transparent);mask-image:linear-gradient(to right,#000,#000,transparent 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),transparent)}.data-\[left-scroll\=true\]\:\[mask-image\:linear-gradient\(270deg\,\#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\,transparent\)\][data-left-scroll=true]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - var(--scroll-shadow-size)),transparent);mask-image:linear-gradient(270deg,#000 calc(100% - var(--scroll-shadow-size)),transparent)}.data-\[loaded\=true\]\:pointer-events-auto[data-loaded=true]{pointer-events:auto}.data-\[loaded\=true\]\:overflow-visible[data-loaded=true]{overflow:visible}.data-\[loaded\=true\]\:\!bg-transparent[data-loaded=true]{background-color:#0000!important}.data-\[loaded\=true\]\:opacity-100[data-loaded=true]{opacity:1}.data-\[loaded\=true\]\:before\:-z-10[data-loaded=true]:before{content:var(--tw-content);z-index:-10}.data-\[loaded\=true\]\:before\:animate-none[data-loaded=true]:before{content:var(--tw-content);animation:none}.data-\[loaded\=true\]\:before\:opacity-0[data-loaded=true]:before,.data-\[loaded\=true\]\:after\:opacity-0[data-loaded=true]:after{content:var(--tw-content);opacity:0}.data-\[menu-open\=true\]\:border-none[data-menu-open=true]{--tw-border-style:none;border-style:none}.data-\[menu-open\=true\]\:backdrop-blur-xl[data-menu-open=true]{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.data-\[moving\]\:opacity-100[data-moving]{opacity:1}.data-\[moving\=true\]\:transition-transform[data-moving=true]{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.data-\[open\=true\]\:block[data-open=true]{display:block}.data-\[open\=true\]\:flex[data-open=true]{display:flex}.data-\[open\=true\]\:-rotate-90[data-open=true]{rotate:-90deg}.data-\[open\=true\]\:rotate-180[data-open=true]{rotate:180deg}.data-\[open\=true\]\:border-danger[data-open=true]{border-color:hsl(var(--heroui-danger)/1)}.data-\[open\=true\]\:border-default-400[data-open=true]{border-color:hsl(var(--heroui-default-400)/1)}.data-\[open\=true\]\:border-default-foreground[data-open=true]{border-color:hsl(var(--heroui-default-foreground)/1)}.data-\[open\=true\]\:border-primary[data-open=true]{border-color:var(--color-primary)}.data-\[open\=true\]\:border-secondary[data-open=true]{border-color:hsl(var(--heroui-secondary)/1)}.data-\[open\=true\]\:border-success[data-open=true]{border-color:hsl(var(--heroui-success)/1)}.data-\[open\=true\]\:border-warning[data-open=true]{border-color:hsl(var(--heroui-warning)/1)}.data-\[open\=true\]\:after\:w-full[data-open=true]:after{content:var(--tw-content);width:100%}.data-\[orientation\=horizontal\]\:flex-row[data-orientation=horizontal]{flex-direction:row}.data-\[outside-month\=true\]\:before\:hidden[data-outside-month=true]:before{content:var(--tw-content);display:none}.data-\[disabled\=true\]\:data-\[outside-month\=true\]\:opacity-0[data-disabled=true][data-outside-month=true]{opacity:0}.data-\[editable\=true\]\:data-\[placeholder\=true\]\:text-danger-300[data-editable=true][data-placeholder=true]{color:hsl(var(--heroui-danger-300)/1)}.data-\[editable\=true\]\:data-\[placeholder\=true\]\:text-foreground-500[data-editable=true][data-placeholder=true]{color:hsl(var(--heroui-foreground-500)/1)}.data-\[editable\=true\]\:data-\[placeholder\=true\]\:text-primary-300[data-editable=true][data-placeholder=true]{color:hsl(var(--heroui-primary-300)/1)}.data-\[editable\=true\]\:data-\[placeholder\=true\]\:text-secondary-300[data-editable=true][data-placeholder=true]{color:hsl(var(--heroui-secondary-300)/1)}.data-\[editable\=true\]\:data-\[placeholder\=true\]\:text-success-400[data-editable=true][data-placeholder=true]{color:hsl(var(--heroui-success-400)/1)}.data-\[editable\=true\]\:data-\[placeholder\=true\]\:text-warning-400[data-editable=true][data-placeholder=true]{color:hsl(var(--heroui-warning-400)/1)}.data-\[placement\=bottom\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom]:before{content:var(--tw-content);top:calc(1.5px - .3125rem)}.data-\[placement\=bottom\]\:before\:left-1\/2[data-placement=bottom]:before{content:var(--tw-content);left:50%}.data-\[placement\=bottom\]\:before\:-translate-x-1\/2[data-placement=bottom]:before{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placement\=bottom-center\]\:fixed[data-placement=bottom-center]{position:fixed}.data-\[placement\=bottom-center\]\:right-0[data-placement=bottom-center]{right:calc(var(--spacing)*0)}.data-\[placement\=bottom-center\]\:bottom-0[data-placement=bottom-center]{bottom:calc(var(--spacing)*0)}.data-\[placement\=bottom-center\]\:left-0[data-placement=bottom-center]{left:calc(var(--spacing)*0)}.data-\[placement\=bottom-center\]\:left-1\/2[data-placement=bottom-center]{left:50%}.data-\[placement\=bottom-center\]\:flex[data-placement=bottom-center]{display:flex}.data-\[placement\=bottom-center\]\:-translate-x-1\/2[data-placement=bottom-center]{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placement\=bottom-center\]\:flex-col[data-placement=bottom-center]{flex-direction:column}.data-\[placement\=bottom-center\]\:before\:top-\[calc\(-1\*var\(--top-extension\,16px\)\)\][data-placement=bottom-center]:before{content:var(--tw-content);top:calc(-1*var(--top-extension,16px))}.data-\[placement\=bottom-center\]\:before\:h-\[var\(--top-extension\,16px\)\][data-placement=bottom-center]:before{content:var(--tw-content);height:var(--top-extension,16px)}.data-\[placement\=bottom-center\]\:after\:bottom-\[calc\(-1\*var\(--bottom-extension\,16px\)\)\][data-placement=bottom-center]:after{content:var(--tw-content);bottom:calc(-1*var(--bottom-extension,16px))}.data-\[placement\=bottom-center\]\:after\:h-\[var\(--bottom-extension\,16px\)\][data-placement=bottom-center]:after{content:var(--tw-content);height:var(--bottom-extension,16px)}.data-\[placement\=bottom-end\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom-end]:before{content:var(--tw-content);top:calc(1.5px - .3125rem)}.data-\[placement\=bottom-end\]\:before\:right-3[data-placement=bottom-end]:before{content:var(--tw-content);right:calc(var(--spacing)*3)}.data-\[placement\=bottom-left\]\:fixed[data-placement=bottom-left]{position:fixed}.data-\[placement\=bottom-left\]\:bottom-0[data-placement=bottom-left]{bottom:calc(var(--spacing)*0)}.data-\[placement\=bottom-left\]\:left-0[data-placement=bottom-left]{left:calc(var(--spacing)*0)}.data-\[placement\=bottom-left\]\:mx-auto[data-placement=bottom-left]{margin-inline:auto}.data-\[placement\=bottom-left\]\:flex[data-placement=bottom-left]{display:flex}.data-\[placement\=bottom-left\]\:flex-col[data-placement=bottom-left]{flex-direction:column}.data-\[placement\=bottom-left\]\:before\:top-\[calc\(-1\*var\(--top-extension\,16px\)\)\][data-placement=bottom-left]:before{content:var(--tw-content);top:calc(-1*var(--top-extension,16px))}.data-\[placement\=bottom-left\]\:before\:h-\[var\(--top-extension\,16px\)\][data-placement=bottom-left]:before{content:var(--tw-content);height:var(--top-extension,16px)}.data-\[placement\=bottom-left\]\:after\:bottom-\[calc\(-1\*var\(--bottom-extension\,16px\)\)\][data-placement=bottom-left]:after{content:var(--tw-content);bottom:calc(-1*var(--bottom-extension,16px))}.data-\[placement\=bottom-left\]\:after\:h-\[var\(--bottom-extension\,16px\)\][data-placement=bottom-left]:after{content:var(--tw-content);height:var(--bottom-extension,16px)}.data-\[placement\=bottom-right\]\:fixed[data-placement=bottom-right]{position:fixed}.data-\[placement\=bottom-right\]\:right-0[data-placement=bottom-right]{right:calc(var(--spacing)*0)}.data-\[placement\=bottom-right\]\:bottom-0[data-placement=bottom-right]{bottom:calc(var(--spacing)*0)}.data-\[placement\=bottom-right\]\:mx-auto[data-placement=bottom-right]{margin-inline:auto}.data-\[placement\=bottom-right\]\:flex[data-placement=bottom-right]{display:flex}.data-\[placement\=bottom-right\]\:flex-col[data-placement=bottom-right]{flex-direction:column}.data-\[placement\=bottom-right\]\:before\:top-\[calc\(-1\*var\(--top-extension\,16px\)\)\][data-placement=bottom-right]:before{content:var(--tw-content);top:calc(-1*var(--top-extension,16px))}.data-\[placement\=bottom-right\]\:before\:h-\[var\(--top-extension\,16px\)\][data-placement=bottom-right]:before{content:var(--tw-content);height:var(--top-extension,16px)}.data-\[placement\=bottom-right\]\:after\:bottom-\[calc\(-1\*var\(--bottom-extension\,16px\)\)\][data-placement=bottom-right]:after{content:var(--tw-content);bottom:calc(-1*var(--bottom-extension,16px))}.data-\[placement\=bottom-right\]\:after\:h-\[var\(--bottom-extension\,16px\)\][data-placement=bottom-right]:after{content:var(--tw-content);height:var(--bottom-extension,16px)}.data-\[placement\=bottom-start\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom-start]:before{content:var(--tw-content);top:calc(1.5px - .3125rem)}.data-\[placement\=bottom-start\]\:before\:left-3[data-placement=bottom-start]:before{content:var(--tw-content);left:calc(var(--spacing)*3)}.data-\[placement\=left\]\:before\:top-1\/2[data-placement=left]:before{content:var(--tw-content);top:50%}.data-\[placement\=left\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_2px\)\][data-placement=left]:before{content:var(--tw-content);right:calc(2px - .3125rem)}.data-\[placement\=left\]\:before\:-translate-y-1\/2[data-placement=left]:before{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placement\=left-end\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=left-end]:before{content:var(--tw-content);right:calc(3px - .3125rem)}.data-\[placement\=left-end\]\:before\:bottom-1\/4[data-placement=left-end]:before{content:var(--tw-content);bottom:25%}.data-\[placement\=left-start\]\:before\:top-1\/4[data-placement=left-start]:before{content:var(--tw-content);top:25%}.data-\[placement\=left-start\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=left-start]:before{content:var(--tw-content);right:calc(3px - .3125rem)}.data-\[placement\=right\]\:before\:top-1\/2[data-placement=right]:before{content:var(--tw-content);top:50%}.data-\[placement\=right\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_2px\)\][data-placement=right]:before{content:var(--tw-content);left:calc(2px - .3125rem)}.data-\[placement\=right\]\:before\:-translate-y-1\/2[data-placement=right]:before{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placement\=right-end\]\:before\:bottom-1\/4[data-placement=right-end]:before{content:var(--tw-content);bottom:25%}.data-\[placement\=right-end\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=right-end]:before{content:var(--tw-content);left:calc(3px - .3125rem)}.data-\[placement\=right-start\]\:before\:top-1\/4[data-placement=right-start]:before{content:var(--tw-content);top:25%}.data-\[placement\=right-start\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=right-start]:before{content:var(--tw-content);left:calc(3px - .3125rem)}.data-\[placement\=top\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top]:before{content:var(--tw-content);bottom:calc(1.5px - .3125rem)}.data-\[placement\=top\]\:before\:left-1\/2[data-placement=top]:before{content:var(--tw-content);left:50%}.data-\[placement\=top\]\:before\:-translate-x-1\/2[data-placement=top]:before{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placement\=top-center\]\:fixed[data-placement=top-center]{position:fixed}.data-\[placement\=top-center\]\:top-0[data-placement=top-center]{top:calc(var(--spacing)*0)}.data-\[placement\=top-center\]\:right-0[data-placement=top-center]{right:calc(var(--spacing)*0)}.data-\[placement\=top-center\]\:left-0[data-placement=top-center]{left:calc(var(--spacing)*0)}.data-\[placement\=top-center\]\:left-1\/2[data-placement=top-center]{left:50%}.data-\[placement\=top-center\]\:flex[data-placement=top-center]{display:flex}.data-\[placement\=top-center\]\:-translate-x-1\/2[data-placement=top-center]{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[placement\=top-center\]\:flex-col[data-placement=top-center]{flex-direction:column}.data-\[placement\=top-end\]\:before\:right-3[data-placement=top-end]:before{content:var(--tw-content);right:calc(var(--spacing)*3)}.data-\[placement\=top-end\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top-end]:before{content:var(--tw-content);bottom:calc(1.5px - .3125rem)}.data-\[placement\=top-left\]\:fixed[data-placement=top-left]{position:fixed}.data-\[placement\=top-left\]\:top-0[data-placement=top-left]{top:calc(var(--spacing)*0)}.data-\[placement\=top-left\]\:left-0[data-placement=top-left]{left:calc(var(--spacing)*0)}.data-\[placement\=top-left\]\:mx-auto[data-placement=top-left]{margin-inline:auto}.data-\[placement\=top-left\]\:flex[data-placement=top-left]{display:flex}.data-\[placement\=top-left\]\:flex-col[data-placement=top-left]{flex-direction:column}.data-\[placement\=top-right\]\:fixed[data-placement=top-right]{position:fixed}.data-\[placement\=top-right\]\:top-0[data-placement=top-right]{top:calc(var(--spacing)*0)}.data-\[placement\=top-right\]\:right-0[data-placement=top-right]{right:calc(var(--spacing)*0)}.data-\[placement\=top-right\]\:mx-auto[data-placement=top-right]{margin-inline:auto}.data-\[placement\=top-right\]\:flex[data-placement=top-right]{display:flex}.data-\[placement\=top-right\]\:flex-col[data-placement=top-right]{flex-direction:column}.data-\[placement\=top-start\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top-start]:before{content:var(--tw-content);bottom:calc(1.5px - .3125rem)}.data-\[placement\=top-start\]\:before\:left-3[data-placement=top-start]:before{content:var(--tw-content);left:calc(var(--spacing)*3)}.data-\[pressed\=true\]\:scale-100[data-pressed=true]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[pressed\=true\]\:scale-\[0\.97\][data-pressed=true]{scale:.97}.data-\[pressed\=true\]\:opacity-50[data-pressed=true]{opacity:.5}.data-\[pressed\=true\]\:opacity-70[data-pressed=true]{opacity:.7}.data-\[pressed\=true\]\:opacity-disabled[data-pressed=true]{opacity:var(--heroui-disabled-opacity)}.data-\[range-end\=true\]\:before\:rounded-e-full[data-range-end=true]:before{content:var(--tw-content);border-start-end-radius:3.40282e38px;border-end-end-radius:3.40282e38px}.data-\[range-start\=true\]\:before\:rounded-s-full[data-range-start=true]:before{content:var(--tw-content);border-start-start-radius:3.40282e38px;border-end-start-radius:3.40282e38px}.data-\[readonly\=true\]\:cursor-default[data-readonly=true]{cursor:default}.data-\[right-scroll\=true\]\:\[mask-image\:linear-gradient\(90deg\,\#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\,transparent\)\][data-right-scroll=true]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--scroll-shadow-size)),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - var(--scroll-shadow-size)),transparent)}.data-\[selectable\=true\]\:focus\:border-danger[data-selectable=true]:focus{border-color:hsl(var(--heroui-danger)/1)}.data-\[selectable\=true\]\:focus\:border-default[data-selectable=true]:focus{border-color:hsl(var(--heroui-default)/1)}.data-\[selectable\=true\]\:focus\:border-primary[data-selectable=true]:focus{border-color:var(--color-primary)}.data-\[selectable\=true\]\:focus\:border-secondary[data-selectable=true]:focus{border-color:hsl(var(--heroui-secondary)/1)}.data-\[selectable\=true\]\:focus\:border-success[data-selectable=true]:focus{border-color:hsl(var(--heroui-success)/1)}.data-\[selectable\=true\]\:focus\:border-warning[data-selectable=true]:focus{border-color:hsl(var(--heroui-warning)/1)}.data-\[selectable\=true\]\:focus\:bg-danger[data-selectable=true]:focus,.data-\[selectable\=true\]\:focus\:bg-danger\/20[data-selectable=true]:focus{background-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:bg-danger\/20[data-selectable=true]:focus{background-color:color-mix(in oklab,hsl(var(--heroui-danger)/1)20%,transparent)}}.data-\[selectable\=true\]\:focus\:bg-default[data-selectable=true]:focus{background-color:hsl(var(--heroui-default)/1)}.data-\[selectable\=true\]\:focus\:bg-default-100[data-selectable=true]:focus{background-color:hsl(var(--heroui-default-100)/1)}.data-\[selectable\=true\]\:focus\:bg-default\/40[data-selectable=true]:focus{background-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:bg-default\/40[data-selectable=true]:focus{background-color:color-mix(in oklab,hsl(var(--heroui-default)/1)40%,transparent)}}.data-\[selectable\=true\]\:focus\:bg-primary[data-selectable=true]:focus{background-color:var(--color-primary)}.data-\[selectable\=true\]\:focus\:bg-primary\/20[data-selectable=true]:focus{background-color:#1b54ff33}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:bg-primary\/20[data-selectable=true]:focus{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.data-\[selectable\=true\]\:focus\:bg-secondary[data-selectable=true]:focus,.data-\[selectable\=true\]\:focus\:bg-secondary\/20[data-selectable=true]:focus{background-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:bg-secondary\/20[data-selectable=true]:focus{background-color:color-mix(in oklab,hsl(var(--heroui-secondary)/1)20%,transparent)}}.data-\[selectable\=true\]\:focus\:bg-success[data-selectable=true]:focus,.data-\[selectable\=true\]\:focus\:bg-success\/20[data-selectable=true]:focus{background-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:bg-success\/20[data-selectable=true]:focus{background-color:color-mix(in oklab,hsl(var(--heroui-success)/1)20%,transparent)}}.data-\[selectable\=true\]\:focus\:bg-warning[data-selectable=true]:focus,.data-\[selectable\=true\]\:focus\:bg-warning\/20[data-selectable=true]:focus{background-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:bg-warning\/20[data-selectable=true]:focus{background-color:color-mix(in oklab,hsl(var(--heroui-warning)/1)20%,transparent)}}.data-\[selectable\=true\]\:focus\:text-danger[data-selectable=true]:focus{color:hsl(var(--heroui-danger)/1)}.data-\[selectable\=true\]\:focus\:text-danger-foreground[data-selectable=true]:focus{color:hsl(var(--heroui-danger-foreground)/1)}.data-\[selectable\=true\]\:focus\:text-default-500[data-selectable=true]:focus{color:hsl(var(--heroui-default-500)/1)}.data-\[selectable\=true\]\:focus\:text-default-foreground[data-selectable=true]:focus{color:hsl(var(--heroui-default-foreground)/1)}.data-\[selectable\=true\]\:focus\:text-primary[data-selectable=true]:focus{color:var(--color-primary)}.data-\[selectable\=true\]\:focus\:text-primary-foreground[data-selectable=true]:focus{color:hsl(var(--heroui-primary-foreground)/1)}.data-\[selectable\=true\]\:focus\:text-secondary[data-selectable=true]:focus{color:hsl(var(--heroui-secondary)/1)}.data-\[selectable\=true\]\:focus\:text-secondary-foreground[data-selectable=true]:focus{color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[selectable\=true\]\:focus\:text-success[data-selectable=true]:focus{color:hsl(var(--heroui-success)/1)}.data-\[selectable\=true\]\:focus\:text-success-foreground[data-selectable=true]:focus{color:hsl(var(--heroui-success-foreground)/1)}.data-\[selectable\=true\]\:focus\:text-warning[data-selectable=true]:focus{color:hsl(var(--heroui-warning)/1)}.data-\[selectable\=true\]\:focus\:text-warning-foreground[data-selectable=true]:focus{color:hsl(var(--heroui-warning-foreground)/1)}.data-\[selectable\=true\]\:focus\:shadow-danger\/30[data-selectable=true]:focus{--tw-shadow-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:shadow-danger\/30[data-selectable=true]:focus{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-danger)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selectable\=true\]\:focus\:shadow-default\/50[data-selectable=true]:focus{--tw-shadow-color:hsl(var(--heroui-default)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:shadow-default\/50[data-selectable=true]:focus{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-default)/1)50%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selectable\=true\]\:focus\:shadow-primary\/30[data-selectable=true]:focus{--tw-shadow-color:#1b54ff4d}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:shadow-primary\/30[data-selectable=true]:focus{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selectable\=true\]\:focus\:shadow-secondary\/30[data-selectable=true]:focus{--tw-shadow-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:shadow-secondary\/30[data-selectable=true]:focus{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-secondary)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selectable\=true\]\:focus\:shadow-success\/30[data-selectable=true]:focus{--tw-shadow-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:shadow-success\/30[data-selectable=true]:focus{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-success)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selectable\=true\]\:focus\:shadow-warning\/30[data-selectable=true]:focus{--tw-shadow-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selectable\=true\]\:focus\:shadow-warning\/30[data-selectable=true]:focus{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-warning)/1)30%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selected\=true\]\:bg-danger[data-selected=true]{background-color:hsl(var(--heroui-danger)/1)}.data-\[selected\=true\]\:bg-default[data-selected=true]{background-color:hsl(var(--heroui-default)/1)}.data-\[selected\=true\]\:bg-foreground[data-selected=true]{background-color:hsl(var(--heroui-foreground)/1)}.data-\[selected\=true\]\:bg-primary[data-selected=true]{background-color:var(--color-primary)}.data-\[selected\=true\]\:bg-secondary[data-selected=true]{background-color:hsl(var(--heroui-secondary)/1)}.data-\[selected\=true\]\:bg-success[data-selected=true]{background-color:hsl(var(--heroui-success)/1)}.data-\[selected\=true\]\:bg-warning[data-selected=true]{background-color:hsl(var(--heroui-warning)/1)}.data-\[selected\=true\]\:text-background[data-selected=true]{color:hsl(var(--heroui-background)/1)}.data-\[selected\=true\]\:text-danger[data-selected=true]{color:hsl(var(--heroui-danger)/1)}.data-\[selected\=true\]\:text-danger-foreground[data-selected=true]{color:hsl(var(--heroui-danger-foreground)/1)}.data-\[selected\=true\]\:text-default-foreground[data-selected=true]{color:hsl(var(--heroui-default-foreground)/1)}.data-\[selected\=true\]\:text-primary[data-selected=true]{color:var(--color-primary)}.data-\[selected\=true\]\:text-primary-foreground[data-selected=true]{color:hsl(var(--heroui-primary-foreground)/1)}.data-\[selected\=true\]\:text-secondary[data-selected=true]{color:hsl(var(--heroui-secondary)/1)}.data-\[selected\=true\]\:text-secondary-foreground[data-selected=true]{color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[selected\=true\]\:text-success-600[data-selected=true]{color:hsl(var(--heroui-success-600)/1)}.data-\[selected\=true\]\:text-success-foreground[data-selected=true]{color:hsl(var(--heroui-success-foreground)/1)}.data-\[selected\=true\]\:text-warning-600[data-selected=true]{color:hsl(var(--heroui-warning-600)/1)}.data-\[selected\=true\]\:text-warning-foreground[data-selected=true]{color:hsl(var(--heroui-warning-foreground)/1)}.data-\[selected\=true\]\:shadow-md[data-selected=true]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[selected\=true\]\:shadow-none[data-selected=true]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[selected\=true\]\:shadow-danger\/40[data-selected=true]{--tw-shadow-color:hsl(var(--heroui-danger)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:shadow-danger\/40[data-selected=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-danger)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selected\=true\]\:shadow-foreground\/40[data-selected=true]{--tw-shadow-color:hsl(var(--heroui-foreground)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:shadow-foreground\/40[data-selected=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-foreground)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selected\=true\]\:shadow-primary\/40[data-selected=true]{--tw-shadow-color:#1b54ff66}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:shadow-primary\/40[data-selected=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selected\=true\]\:shadow-secondary\/40[data-selected=true]{--tw-shadow-color:hsl(var(--heroui-secondary)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:shadow-secondary\/40[data-selected=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-secondary)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selected\=true\]\:shadow-success\/40[data-selected=true]{--tw-shadow-color:hsl(var(--heroui-success)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:shadow-success\/40[data-selected=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-success)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selected\=true\]\:shadow-warning\/40[data-selected=true]{--tw-shadow-color:hsl(var(--heroui-warning)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:shadow-warning\/40[data-selected=true]{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,hsl(var(--heroui-warning)/1)40%,transparent)var(--tw-shadow-alpha),transparent)}}.data-\[selected\=true\]\:before\:opacity-100[data-selected=true]:before{content:var(--tw-content);opacity:1}.data-\[selected\=true\]\:after\:bg-danger[data-selected=true]:after{content:var(--tw-content);background-color:hsl(var(--heroui-danger)/1)}.data-\[selected\=true\]\:after\:bg-foreground[data-selected=true]:after{content:var(--tw-content);background-color:hsl(var(--heroui-foreground)/1)}.data-\[selected\=true\]\:after\:bg-primary[data-selected=true]:after{content:var(--tw-content);background-color:var(--color-primary)}.data-\[selected\=true\]\:after\:bg-secondary[data-selected=true]:after{content:var(--tw-content);background-color:hsl(var(--heroui-secondary)/1)}.data-\[selected\=true\]\:after\:bg-success[data-selected=true]:after{content:var(--tw-content);background-color:hsl(var(--heroui-success)/1)}.data-\[selected\=true\]\:after\:bg-warning[data-selected=true]:after{content:var(--tw-content);background-color:hsl(var(--heroui-warning)/1)}.data-\[selected\=true\]\:after\:opacity-100[data-selected=true]:after{content:var(--tw-content);opacity:1}.data-\[selected\=true\]\:data-\[hover\=true\]\:bg-danger[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-danger)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:bg-foreground[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-foreground)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:bg-primary[data-selected=true][data-hover=true]{background-color:var(--color-primary)}.data-\[selected\=true\]\:data-\[hover\=true\]\:bg-secondary[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-secondary)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:bg-success[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-success)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:bg-warning[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-warning)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:text-background[data-selected=true][data-hover=true]{color:hsl(var(--heroui-background)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:text-danger-foreground[data-selected=true][data-hover=true]{color:hsl(var(--heroui-danger-foreground)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:text-primary-foreground[data-selected=true][data-hover=true]{color:hsl(var(--heroui-primary-foreground)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:text-secondary-foreground[data-selected=true][data-hover=true]{color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:text-success-foreground[data-selected=true][data-hover=true]{color:hsl(var(--heroui-success-foreground)/1)}.data-\[selected\=true\]\:data-\[hover\=true\]\:text-warning-foreground[data-selected=true][data-hover=true]{color:hsl(var(--heroui-warning-foreground)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:bg-transparent[data-selected=true][data-range-selection=true]{background-color:#0000}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:text-danger-500[data-selected=true][data-range-selection=true]{color:hsl(var(--heroui-danger-500)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:text-foreground[data-selected=true][data-range-selection=true]{color:hsl(var(--heroui-foreground)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:text-primary[data-selected=true][data-range-selection=true]{color:var(--color-primary)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:text-secondary[data-selected=true][data-range-selection=true]{color:hsl(var(--heroui-secondary)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:text-success-600[data-selected=true][data-range-selection=true]{color:hsl(var(--heroui-success-600)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:text-warning-500[data-selected=true][data-range-selection=true]{color:hsl(var(--heroui-warning-500)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-danger-50[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-danger-50)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-foreground\/10[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-foreground)/1)}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-foreground\/10[data-selected=true][data-range-selection=true]:before{background-color:color-mix(in oklab,hsl(var(--heroui-foreground)/1)10%,transparent)}}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-primary-50[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-primary-50)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-secondary-50[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-secondary-50)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-success-100[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-success-100)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-warning-100[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-warning-100)/1)}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:data-\[outside-month\=true\]\:bg-transparent[data-selected=true][data-range-selection=true][data-outside-month=true]{background-color:#0000}.data-\[selected\=true\]\:data-\[range-selection\=true\]\:data-\[outside-month\=true\]\:text-default-300[data-selected=true][data-range-selection=true][data-outside-month=true]{color:hsl(var(--heroui-default-300)/1)}.data-\[selection-end\=true\]\:before\:rounded-e-full[data-selection-end=true]:before{content:var(--tw-content);border-start-end-radius:3.40282e38px;border-end-end-radius:3.40282e38px}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:shadow-md[data-selected=true][data-selection-end=true]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:rounded-full[data-selected=true][data-selection-end=true][data-range-selection=true]{border-radius:3.40282e38px}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:bg-danger[data-selected=true][data-selection-end=true][data-range-selection=true]{background-color:hsl(var(--heroui-danger)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:bg-foreground[data-selected=true][data-selection-end=true][data-range-selection=true]{background-color:hsl(var(--heroui-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:bg-primary[data-selected=true][data-selection-end=true][data-range-selection=true]{background-color:var(--color-primary)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:bg-secondary[data-selected=true][data-selection-end=true][data-range-selection=true]{background-color:hsl(var(--heroui-secondary)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:bg-success[data-selected=true][data-selection-end=true][data-range-selection=true]{background-color:hsl(var(--heroui-success)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:bg-warning[data-selected=true][data-selection-end=true][data-range-selection=true]{background-color:hsl(var(--heroui-warning)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:text-background[data-selected=true][data-selection-end=true][data-range-selection=true]{color:hsl(var(--heroui-background)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:text-danger-foreground[data-selected=true][data-selection-end=true][data-range-selection=true]{color:hsl(var(--heroui-danger-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:text-primary-foreground[data-selected=true][data-selection-end=true][data-range-selection=true]{color:hsl(var(--heroui-primary-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:text-secondary-foreground[data-selected=true][data-selection-end=true][data-range-selection=true]{color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:text-success-foreground[data-selected=true][data-selection-end=true][data-range-selection=true]{color:hsl(var(--heroui-success-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:text-warning-foreground[data-selected=true][data-selection-end=true][data-range-selection=true]{color:hsl(var(--heroui-warning-foreground)/1)}.data-\[selection-start\=true\]\:before\:rounded-s-full[data-selection-start=true]:before{content:var(--tw-content);border-start-start-radius:3.40282e38px;border-end-start-radius:3.40282e38px}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:shadow-md[data-selected=true][data-selection-start=true]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:rounded-full[data-selected=true][data-selection-start=true][data-range-selection=true]{border-radius:3.40282e38px}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:bg-danger[data-selected=true][data-selection-start=true][data-range-selection=true]{background-color:hsl(var(--heroui-danger)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:bg-foreground[data-selected=true][data-selection-start=true][data-range-selection=true]{background-color:hsl(var(--heroui-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:bg-primary[data-selected=true][data-selection-start=true][data-range-selection=true]{background-color:var(--color-primary)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:bg-secondary[data-selected=true][data-selection-start=true][data-range-selection=true]{background-color:hsl(var(--heroui-secondary)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:bg-success[data-selected=true][data-selection-start=true][data-range-selection=true]{background-color:hsl(var(--heroui-success)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:bg-warning[data-selected=true][data-selection-start=true][data-range-selection=true]{background-color:hsl(var(--heroui-warning)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:text-background[data-selected=true][data-selection-start=true][data-range-selection=true]{color:hsl(var(--heroui-background)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:text-danger-foreground[data-selected=true][data-selection-start=true][data-range-selection=true]{color:hsl(var(--heroui-danger-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:text-primary-foreground[data-selected=true][data-selection-start=true][data-range-selection=true]{color:hsl(var(--heroui-primary-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:text-secondary-foreground[data-selected=true][data-selection-start=true][data-range-selection=true]{color:hsl(var(--heroui-secondary-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:text-success-foreground[data-selected=true][data-selection-start=true][data-range-selection=true]{color:hsl(var(--heroui-success-foreground)/1)}.data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:text-warning-foreground[data-selected=true][data-selection-start=true][data-range-selection=true]{color:hsl(var(--heroui-warning-foreground)/1)}.data-\[sortable\=true\]\:cursor-pointer[data-sortable=true]{cursor:pointer}.data-\[toast-exiting\=true\]\:transform-gpu[data-toast-exiting=true]{transform:translateZ(0)var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.data-\[toast-exiting\=true\]\:opacity-0[data-toast-exiting=true]{opacity:0}.data-\[toast-exiting\=true\]\:transition-all[data-toast-exiting=true]{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.data-\[toast-exiting\=true\]\:duration-300[data-toast-exiting=true]{--tw-duration:.3s;transition-duration:.3s}.data-\[toast-exiting\=true\]\:ease-out[data-toast-exiting=true]{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.data-\[toast-exiting\=true\]\:will-change-transform[data-toast-exiting=true]{will-change:transform}.data-\[toast-exiting\=true\]\:data-\[placement\=bottom-center\]\:translate-y-full[data-toast-exiting=true][data-placement=bottom-center]{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[toast-exiting\=true\]\:data-\[placement\=bottom-left\]\:-translate-x-full[data-toast-exiting=true][data-placement=bottom-left]{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[toast-exiting\=true\]\:data-\[placement\=bottom-right\]\:translate-x-full[data-toast-exiting=true][data-placement=bottom-right]{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[toast-exiting\=true\]\:data-\[placement\=top-center\]\:-translate-y-full[data-toast-exiting=true][data-placement=top-center]{--tw-translate-y:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[toast-exiting\=true\]\:data-\[placement\=top-left\]\:-translate-x-full[data-toast-exiting=true][data-placement=top-left]{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[toast-exiting\=true\]\:data-\[placement\=top-right\]\:translate-x-full[data-toast-exiting=true][data-placement=top-right]{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.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\)\][data-top-bottom-scroll=true]{-webkit-mask-image:linear-gradient(#000,#000,transparent 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),transparent);mask-image:linear-gradient(#000,#000,transparent 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),transparent)}.data-\[top-scroll\=true\]\:\[mask-image\:linear-gradient\(0deg\,\#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\,transparent\)\][data-top-scroll=true]{-webkit-mask-image:linear-gradient(0deg,#000 calc(100% - var(--scroll-shadow-size)),transparent);mask-image:linear-gradient(0deg,#000 calc(100% - var(--scroll-shadow-size)),transparent)}.data-\[type\=color\]\:rounded-none[data-type=color]{border-radius:0}.data-\[unavailable\=true\]\:cursor-default[data-unavailable=true]{cursor:default}.data-\[unavailable\=true\]\:text-default-300[data-unavailable=true]{color:hsl(var(--heroui-default-300)/1)}.data-\[unavailable\=true\]\:line-through[data-unavailable=true]{text-decoration-line:line-through}.data-\[visible\=true\]\:pointer-events-auto[data-visible=true]{pointer-events:auto}.data-\[visible\=true\]\:cursor-pointer[data-visible=true]{cursor:pointer}.data-\[visible\=true\]\:opacity-100[data-visible=true]{opacity:1}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pop-in{animation:var(--animate-pop-in)}}@media (prefers-reduced-motion:reduce){.motion-reduce\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.motion-reduce\:transition-none{transition-property:none}.motion-reduce\:after\:transition-none:after{content:var(--tw-content);transition-property:none}}@media (min-width:28rem){.xs\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:40rem){.sm\:m-0{margin:calc(var(--spacing)*0)}.sm\:mx-0{margin-inline:calc(var(--spacing)*0)}.sm\:mx-1{margin-inline:calc(var(--spacing)*1)}.sm\:mx-6{margin-inline:calc(var(--spacing)*6)}.sm\:my-0{margin-block:calc(var(--spacing)*0)}.sm\:my-16{margin-block:calc(var(--spacing)*16)}.sm\:w-\[356px\]{width:356px}.sm\:w-auto{width:auto}.sm\:max-w-\[1200px\]{max-width:1200px}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:items-start{align-items:flex-start}.sm\:px-0{padding-inline:calc(var(--spacing)*0)}.sm\:\[--scale-enter\:100\%\]{--scale-enter:100%}.sm\:\[--scale-exit\:103\%\]{--scale-exit:103%}.sm\:\[--slide-enter\:0px\]{--slide-enter:0px}.sm\:\[--slide-exit\:0px\]{--slide-exit:0px}.sm\:data-\[placement\=bottom-center\]\:mx-auto[data-placement=bottom-center]{margin-inline:auto}.sm\:data-\[placement\=bottom-center\]\:w-max[data-placement=bottom-center]{width:max-content}.sm\:data-\[placement\=bottom-left\]\:ml-2[data-placement=bottom-left]{margin-left:calc(var(--spacing)*2)}.sm\:data-\[placement\=bottom-left\]\:w-max[data-placement=bottom-left]{width:max-content}.sm\:data-\[placement\=bottom-right\]\:mr-2[data-placement=bottom-right]{margin-right:calc(var(--spacing)*2)}.sm\:data-\[placement\=bottom-right\]\:w-max[data-placement=bottom-right]{width:max-content}.sm\:data-\[placement\=top-center\]\:mx-auto[data-placement=top-center]{margin-inline:auto}.sm\:data-\[placement\=top-center\]\:w-max[data-placement=top-center]{width:max-content}.sm\:data-\[placement\=top-left\]\:ml-2[data-placement=top-left]{margin-left:calc(var(--spacing)*2)}.sm\:data-\[placement\=top-left\]\:w-max[data-placement=top-left]{width:max-content}.sm\:data-\[placement\=top-right\]\:mr-2[data-placement=top-right]{margin-right:calc(var(--spacing)*2)}.sm\:data-\[placement\=top-right\]\:w-max[data-placement=top-right]{width:max-content}.sm\:data-\[visible\=true\]\:pointer-events-none[data-visible=true]{pointer-events:none}.sm\:data-\[visible\=true\]\:opacity-0[data-visible=true]{opacity:0}.sm\:group-data-\[hover\=true\]\:data-\[visible\=true\]\:pointer-events-auto:is(:where(.group)[data-hover=true] *)[data-visible=true]{pointer-events:auto}.sm\:group-data-\[hover\=true\]\:data-\[visible\=true\]\:opacity-100:is(:where(.group)[data-hover=true] *)[data-visible=true]{opacity:1}}@media (min-width:48rem){.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (min-width:64rem){.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.rtl\:right-auto:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:auto}.rtl\:left-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:calc(var(--spacing)*2)}.rtl\:origin-top-right:where(:dir(rtl),[dir=rtl],[dir=rtl] *){transform-origin:100% 0}.rtl\:-rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:-180deg}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:flex-row-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}:where(.rtl\:space-x-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *)>:not(:last-child)){--tw-space-x-reverse:1}.rtl\:data-\[focus-visible\=true\]\:translate-x-3:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[data-focus-visible=true],.rtl\:data-\[hover\=true\]\:translate-x-3:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[data-hover=true]{--tw-translate-x:calc(var(--spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.rtl\:data-\[open\=true\]\:-rotate-90:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[data-open=true]{rotate:-90deg}.dark\:border-danger-100:is(.dark *){border-color:hsl(var(--heroui-danger-100)/1)}.dark\:border-default-200:is(.dark *){border-color:hsl(var(--heroui-default-200)/1)}.dark\:border-primary-100:is(.dark *){border-color:hsl(var(--heroui-primary-100)/1)}.dark\:border-success-100:is(.dark *){border-color:hsl(var(--heroui-success-100)/1)}.dark\:border-warning-100:is(.dark *){border-color:hsl(var(--heroui-warning-100)/1)}.dark\:bg-background:is(.dark *),.dark\:bg-background\/20:is(.dark *){background-color:hsl(var(--heroui-background)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-background\/20:is(.dark *){background-color:color-mix(in oklab,hsl(var(--heroui-background)/1)20%,transparent)}}.dark\:bg-content2:is(.dark *){background-color:hsl(var(--heroui-content2)/1)}.dark\:bg-danger-50:is(.dark *),.dark\:bg-danger-50\/50:is(.dark *){background-color:hsl(var(--heroui-danger-50)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-danger-50\/50:is(.dark *){background-color:color-mix(in oklab,hsl(var(--heroui-danger-50)/1)50%,transparent)}}.dark\:bg-danger-100:is(.dark *){background-color:hsl(var(--heroui-danger-100)/1)}.dark\:bg-default:is(.dark *){background-color:hsl(var(--heroui-default)/1)}.dark\:bg-default-50\/50:is(.dark *){background-color:hsl(var(--heroui-default-50)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-default-50\/50:is(.dark *){background-color:color-mix(in oklab,hsl(var(--heroui-default-50)/1)50%,transparent)}}.dark\:bg-default-100:is(.dark *){background-color:hsl(var(--heroui-default-100)/1)}.dark\:bg-primary-50:is(.dark *),.dark\:bg-primary-50\/50:is(.dark *){background-color:hsl(var(--heroui-primary-50)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-50\/50:is(.dark *){background-color:color-mix(in oklab,hsl(var(--heroui-primary-50)/1)50%,transparent)}}.dark\:bg-primary-100:is(.dark *){background-color:hsl(var(--heroui-primary-100)/1)}.dark\:bg-secondary-50:is(.dark *),.dark\:bg-secondary-50\/50:is(.dark *){background-color:hsl(var(--heroui-secondary-50)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-secondary-50\/50:is(.dark *){background-color:color-mix(in oklab,hsl(var(--heroui-secondary-50)/1)50%,transparent)}}.dark\:bg-secondary-100:is(.dark *){background-color:hsl(var(--heroui-secondary-100)/1)}.dark\:bg-success-50:is(.dark *),.dark\:bg-success-50\/50:is(.dark *){background-color:hsl(var(--heroui-success-50)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-success-50\/50:is(.dark *){background-color:color-mix(in oklab,hsl(var(--heroui-success-50)/1)50%,transparent)}}.dark\:bg-success-100:is(.dark *){background-color:hsl(var(--heroui-success-100)/1)}.dark\:bg-transparent:is(.dark *){background-color:#0000}.dark\:bg-warning-50:is(.dark *),.dark\:bg-warning-50\/50:is(.dark *){background-color:hsl(var(--heroui-warning-50)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-warning-50\/50:is(.dark *){background-color:color-mix(in oklab,hsl(var(--heroui-warning-50)/1)50%,transparent)}}.dark\:bg-warning-100:is(.dark *){background-color:hsl(var(--heroui-warning-100)/1)}.dark\:text-danger-500:is(.dark *){color:hsl(var(--heroui-danger-500)/1)}.dark\:text-success:is(.dark *){color:hsl(var(--heroui-success)/1)}.dark\:text-warning:is(.dark *){color:hsl(var(--heroui-warning)/1)}.dark\:prose-invert:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.dark\:placeholder\:text-danger-500:is(.dark *)::placeholder{color:hsl(var(--heroui-danger-500)/1)}.dark\:placeholder\:text-success:is(.dark *)::placeholder{color:hsl(var(--heroui-success)/1)}.dark\:placeholder\:text-warning:is(.dark *)::placeholder{color:hsl(var(--heroui-warning)/1)}.dark\:before\:via-default-700\/10:is(.dark *):before{content:var(--tw-content);--tw-gradient-via:hsl(var(--heroui-default-700)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:before\:via-default-700\/10:is(.dark *):before{--tw-gradient-via:color-mix(in oklab,hsl(var(--heroui-default-700)/1)10%,transparent)}}.dark\:before\:via-default-700\/10:is(.dark *):before{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:after\:bg-content2:is(.dark *):after{content:var(--tw-content);background-color:hsl(var(--heroui-content2)/1)}.dark\:focus\:bg-danger-400\/20:is(.dark *):focus{background-color:hsl(var(--heroui-danger-400)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:focus\:bg-danger-400\/20:is(.dark *):focus{background-color:color-mix(in oklab,hsl(var(--heroui-danger-400)/1)20%,transparent)}}.dark\:focus\:bg-success-400\/20:is(.dark *):focus{background-color:hsl(var(--heroui-success-400)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:focus\:bg-success-400\/20:is(.dark *):focus{background-color:color-mix(in oklab,hsl(var(--heroui-success-400)/1)20%,transparent)}}.dark\:focus\:bg-warning-400\/20:is(.dark *):focus{background-color:hsl(var(--heroui-warning-400)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:focus\:bg-warning-400\/20:is(.dark *):focus{background-color:color-mix(in oklab,hsl(var(--heroui-warning-400)/1)20%,transparent)}}.dark\:data-\[hover\=true\]\:bg-content2:is(.dark *)[data-hover=true]{background-color:hsl(var(--heroui-content2)/1)}.dark\:data-\[hover\=true\]\:bg-danger-50:is(.dark *)[data-hover=true]{background-color:hsl(var(--heroui-danger-50)/1)}.dark\:data-\[hover\=true\]\:bg-success-50:is(.dark *)[data-hover=true]{background-color:hsl(var(--heroui-success-50)/1)}.dark\:data-\[hover\=true\]\:bg-warning-50:is(.dark *)[data-hover=true]{background-color:hsl(var(--heroui-warning-50)/1)}.dark\:data-\[hover\=true\]\:text-danger-500:is(.dark *)[data-hover=true]{color:hsl(var(--heroui-danger-500)/1)}.dark\:data-\[hover\=true\]\:text-success-500:is(.dark *)[data-hover=true]{color:hsl(var(--heroui-success-500)/1)}.dark\:data-\[hover\=true\]\:text-warning-500:is(.dark *)[data-hover=true]{color:hsl(var(--heroui-warning-500)/1)}.dark\:data-\[invalid\=true\]\:focus\:bg-danger-400\/20:is(.dark *)[data-invalid=true]:focus{background-color:hsl(var(--heroui-danger-400)/1)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[invalid\=true\]\:focus\:bg-danger-400\/20:is(.dark *)[data-invalid=true]:focus{background-color:color-mix(in oklab,hsl(var(--heroui-danger-400)/1)20%,transparent)}}.dark\:data-\[selected\=true\]\:text-danger-500:is(.dark *)[data-selected=true]{color:hsl(var(--heroui-danger-500)/1)}.dark\:data-\[selected\=true\]\:text-success:is(.dark *)[data-selected=true]{color:hsl(var(--heroui-success)/1)}.dark\:data-\[selected\=true\]\:text-warning:is(.dark *)[data-selected=true]{color:hsl(var(--heroui-warning)/1)}.dark\:data-\[selected\=true\]\:data-\[hover\=true\]\:bg-danger:is(.dark *)[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-danger)/1)}.dark\:data-\[selected\=true\]\:data-\[hover\=true\]\:bg-success:is(.dark *)[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-success)/1)}.dark\:data-\[selected\=true\]\:data-\[hover\=true\]\:bg-warning:is(.dark *)[data-selected=true][data-hover=true]{background-color:hsl(var(--heroui-warning)/1)}.dark\:data-\[selected\=true\]\:data-\[hover\=true\]\:text-danger-foreground:is(.dark *)[data-selected=true][data-hover=true]{color:hsl(var(--heroui-danger-foreground)/1)}.dark\:data-\[selected\=true\]\:data-\[hover\=true\]\:text-success-foreground:is(.dark *)[data-selected=true][data-hover=true]{color:hsl(var(--heroui-success-foreground)/1)}.dark\:data-\[selected\=true\]\:data-\[hover\=true\]\:text-warning-foreground:is(.dark *)[data-selected=true][data-hover=true]{color:hsl(var(--heroui-warning-foreground)/1)}.dark\:data-\[selected\=true\]\:data-\[range-selection\=true\]\:text-success-500:is(.dark *)[data-selected=true][data-range-selection=true]{color:hsl(var(--heroui-success-500)/1)}.dark\:data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-success-50:is(.dark *)[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-success-50)/1)}.dark\:data-\[selected\=true\]\:data-\[range-selection\=true\]\:before\:bg-warning-50:is(.dark *)[data-selected=true][data-range-selection=true]:before{content:var(--tw-content);background-color:hsl(var(--heroui-warning-50)/1)}.dark\:data-\[selected\=true\]\:data-\[selection-end\=true\]\:data-\[range-selection\=true\]\:text-success-foreground:is(.dark *)[data-selected=true][data-selection-end=true][data-range-selection=true],.dark\:data-\[selected\=true\]\:data-\[selection-start\=true\]\:data-\[range-selection\=true\]\:text-success-foreground:is(.dark *)[data-selected=true][data-selection-start=true][data-range-selection=true]{color:hsl(var(--heroui-success-foreground)/1)}.\[\&_\.chevron-icon\]\:flex-none .chevron-icon{flex:none}.\[\&_\.chevron-icon\]\:rotate-180 .chevron-icon{rotate:180deg}.\[\&_\.chevron-icon\]\:transition-transform .chevron-icon{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[\&\+\.border-medium\.border-danger\]\:ms-\[calc\(var\(--heroui-border-width-medium\)\*-1\)\]+.border-medium.border-danger,.\[\&\+\.border-medium\.border-default\]\:ms-\[calc\(var\(--heroui-border-width-medium\)\*-1\)\]+.border-medium.border-default,.\[\&\+\.border-medium\.border-primary\]\:ms-\[calc\(var\(--heroui-border-width-medium\)\*-1\)\]+.border-medium.border-primary,.\[\&\+\.border-medium\.border-secondary\]\:ms-\[calc\(var\(--heroui-border-width-medium\)\*-1\)\]+.border-medium.border-secondary,.\[\&\+\.border-medium\.border-success\]\:ms-\[calc\(var\(--heroui-border-width-medium\)\*-1\)\]+.border-medium.border-success,.\[\&\+\.border-medium\.border-warning\]\:ms-\[calc\(var\(--heroui-border-width-medium\)\*-1\)\]+.border-medium.border-warning{margin-inline-start:calc(var(--heroui-border-width-medium)*-1)}.\[\&\:not\(\:first-child\)\]\:-ml-1:not(:first-child){margin-left:calc(var(--spacing)*-1)}.\[\&\:not\(\:first-child\)\:not\(\:last-child\)\]\:rounded-none:not(:first-child):not(:last-child){border-radius:0}.\[\&\:not\(\:first-of-type\)\]\:ms-\[calc\(theme\(borderWidth\.2\)\*-1\)\]:not(:first-of-type){margin-inline-start:-2px}.\[\&\:not\(\:first-of-type\)\:not\(\:last-of-type\)\]\:rounded-none:not(:first-of-type):not(:last-of-type){border-radius:0}.\[\&\>\*\]\:relative>*{position:relative}.\[\&\>\*\]\:z-1>*{z-index:1}.\[\&\>svg\]\:max-w-\[theme\(spacing\.8\)\]>svg{max-width:2rem}.\[\&\>tr\]\:first\:rounded-lg>tr:first-child{border-radius:var(--radius-lg)}.\[\&\>tr\]\:first\:shadow-small>tr:first-child{--tw-shadow:var(--heroui-box-shadow-small);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\[\&\[data-hover\=true\]\:not\(\[data-active\=true\]\)\]\:bg-default-100[data-hover=true]:not([data-active=true]){background-color:hsl(var(--heroui-default-100)/1)}.\[\&\[data-hover\=true\]\:not\(\[data-active\=true\]\)\]\:bg-default-200[data-hover=true]:not([data-active=true]){background-color:hsl(var(--heroui-default-200)/1)}}.markdown-container code:before,.markdown-container code:after{content:none}.prose{overflow-wrap:break-word}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{to{transform:translate(200%)}}@keyframes spinner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes drip-expand{0%{opacity:.2;transform:scale(0)}to{opacity:0;transform:scale(2)}}@keyframes appearance-in{0%{opacity:0;transform:translateZ(0)scale(.95)}60%{opacity:.75;backface-visibility:hidden;webkit-font-smoothing:antialiased;transform:translateZ(0)scale(1.05)}to{opacity:1;transform:translateZ(0)scale(1)}}@keyframes indeterminate-bar{0%{transform:translate(-50%)scaleX(.2)}to{transform:translate(100%)scaleX(1)}}@keyframes sway{0%{transform:translate(0)}50%{transform:translateY(-150%)}to{transform:translate(0)}}@keyframes blink{0%{opacity:.2}20%{opacity:1}to{opacity:.2}}@keyframes fade-out{0%{opacity:1}to{opacity:.15}}._GzYRV{line-height:1.2;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}._3eOF8{margin-right:5px;font-weight:700}._3eOF8+._3eOF8{margin-left:-5px}._1MFti{cursor:pointer}._f10Tu{font-size:1.2em;margin-right:5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}._1UmXx:after{content:"▸"}._1LId0:after{content:"▾"}._1pNG9{margin-right:5px}._1pNG9:after{content:"...";font-size:.8em}._2IvMF{background:#eee}._2bkNM{margin:0;padding:0 10px}._1BXBN{margin:0;padding:0}._1MGIk{font-weight:600;margin-right:5px;color:#000}._3uHL6{color:#000}._2T6PJ,._1Gho6{color:#df113a}._vGjyY{color:#2a3f3c}._1bQdo{color:#0b75f5}._3zQKs{color:#469038}._1xvuR{color:#43413d}._oLqym,._2AXVT,._2KJWg{color:#000}._11RoI{background:#002b36}._17H2C,._3QHg2,._3fDAz{color:#fdf6e3}._2bSDX{font-weight:bolder;margin-right:5px;color:#fdf6e3}._gsbQL{color:#fdf6e3}._LaAZe,._GTKgm{color:#81b5ac}._Chy1W{color:#cb4b16}._2bveF{color:#d33682}._2vRm-{color:#ae81ff}._1prJR{color:#268bd2} diff --git a/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-BTi2GGnV.js b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-BTi2GGnV.js new file mode 100644 index 000000000..6c5e8704f --- /dev/null +++ b/packages/ragbits-chat/src/ragbits/chat/ui-build/assets/index-BTi2GGnV.js @@ -0,0 +1,127 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FeedbackForm-UCmFF8zf.js","assets/index-BWl2IJFv.js","assets/chunk-SSA7SXE4-4ESFtvtR.js","assets/useMenuTriggerState-GcYmjJio.js","assets/useSelectableItem-Cd2eAf2I.js","assets/index-B4da2YBv.js","assets/chunk-IGSAU2ZA-BGelxbrz.js","assets/ChatOptionsForm-CWUB2vvd.js","assets/ShareButton-C-29ZlnC.js","assets/UsageButton-o644g8HB.js","assets/ChatHistory-BCtc0BUi.js","assets/Login-CUehgF7-.js","assets/authStore-DeDSU5YK.js","assets/AuthGuard-D7uykMTl.js","assets/LogoutButton-B-0gbx_k.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 l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).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 og=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function dv(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var zy={exports:{}},hp={},jy={exports:{}},ht={};/** + * @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 n1;function JR(){if(n1)return ht;n1=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"),l=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(U){return U===null||typeof U!="object"?null:(U=g&&U[g]||U["@@iterator"],typeof U=="function"?U:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,P={};function _(U,ie,O){this.props=U,this.context=ie,this.refs=P,this.updater=O||x}_.prototype.isReactComponent={},_.prototype.setState=function(U,ie){if(typeof U!="object"&&typeof U!="function"&&U!=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,U,ie,"setState")},_.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function T(){}T.prototype=_.prototype;function $(U,ie,O){this.props=U,this.context=ie,this.refs=P,this.updater=O||x}var L=$.prototype=new T;L.constructor=$,k(L,_.prototype),L.isPureReactComponent=!0;var z=Array.isArray,K=Object.prototype.hasOwnProperty,M={current:null},J={key:!0,ref:!0,__self:!0,__source:!0};function re(U,ie,O){var me,Ce={},ye=null,Fe=null;if(ie!=null)for(me in ie.ref!==void 0&&(Fe=ie.ref),ie.key!==void 0&&(ye=""+ie.key),ie)K.call(ie,me)&&!J.hasOwnProperty(me)&&(Ce[me]=ie[me]);var De=arguments.length-2;if(De===1)Ce.children=O;else if(1>>1,ie=V[U];if(0>>1;Ui(Ce,R))yei(Fe,Ce)?(V[U]=Fe,V[ye]=R,U=ye):(V[U]=Ce,V[me]=R,U=me);else if(yei(Fe,R))V[U]=Fe,V[ye]=R,U=ye;else break e}}return se}function i(V,se){var R=V.sortIndex-se.sortIndex;return R!==0?R:V.id-se.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,c=l.now();e.unstable_now=function(){return l.now()-c}}var d=[],h=[],m=1,g=null,b=3,x=!1,k=!1,P=!1,_=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,$=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function L(V){for(var se=n(h);se!==null;){if(se.callback===null)r(h);else if(se.startTime<=V)r(h),se.sortIndex=se.expirationTime,t(d,se);else break;se=n(h)}}function z(V){if(P=!1,L(V),!k)if(n(d)!==null)k=!0,Z(K);else{var se=n(h);se!==null&&q(z,se.startTime-V)}}function K(V,se){k=!1,P&&(P=!1,T(re),re=-1),x=!0;var R=b;try{for(L(se),g=n(d);g!==null&&(!(g.expirationTime>se)||V&&!B());){var U=g.callback;if(typeof U=="function"){g.callback=null,b=g.priorityLevel;var ie=U(g.expirationTime<=se);se=e.unstable_now(),typeof ie=="function"?g.callback=ie:g===n(d)&&r(d),L(se)}else r(d);g=n(d)}if(g!==null)var O=!0;else{var me=n(h);me!==null&&q(z,me.startTime-se),O=!1}return O}finally{g=null,b=R,x=!1}}var M=!1,J=null,re=-1,ae=5,j=-1;function B(){return!(e.unstable_now()-jV||125U?(V.sortIndex=R,t(h,V),n(d)===null&&V===n(h)&&(P?(T(re),re=-1):P=!0,q(z,R-U))):(V.sortIndex=ie,t(d,V),k||x||(k=!0,Z(K))),V},e.unstable_shouldYield=B,e.unstable_wrapCallback=function(V){var se=b;return function(){var R=b;b=se;try{return V.apply(this,arguments)}finally{b=R}}}}(Uy)),Uy}var l1;function nL(){return l1||(l1=1,Vy.exports=tL()),Vy.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 a1;function rL(){if(a1)return ni;a1=1;var e=ix(),t=nL();function n(o){for(var a="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,a,p,v){if(p!==null&&p.type===0)return!1;switch(typeof a){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 k(o,a,p,v){if(a===null||typeof a>"u"||x(o,a,p,v))return!0;if(v)return!1;if(p!==null)switch(p.type){case 3:return!a;case 4:return a===!1;case 5:return isNaN(a);case 6:return isNaN(a)||1>a}return!1}function P(o,a,p,v,w,C,A){this.acceptsBooleans=a===2||a===3||a===4,this.attributeName=v,this.attributeNamespace=w,this.mustUseProperty=p,this.propertyName=o,this.type=a,this.sanitizeURL=C,this.removeEmptyString=A}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 a=o[0];_[a]=new P(a,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 $(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 a=o.replace(T,$);_[a]=new P(a,1,!1,o,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(o){var a=o.replace(T,$);_[a]=new P(a,1,!1,o,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(o){var a=o.replace(T,$);_[a]=new P(a,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 L(o,a,p,v){var w=_.hasOwnProperty(a)?_[a]:null;(w!==null?w.type!==0:v||!(2W||w[A]!==C[W]){var X=` +`+w[A].replace(" at new "," at ");return o.displayName&&X.includes("")&&(X=X.replace("",o.displayName)),X}while(1<=A&&0<=W);break}}}finally{O=!1,Error.prepareStackTrace=p}return(o=o?o.displayName||o.name:"")?ie(o):""}function Ce(o){switch(o.tag){case 5:return ie(o.type);case 16:return ie("Lazy");case 13:return ie("Suspense");case 19:return ie("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 ye(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 J:return"Fragment";case M:return"Portal";case ae:return"Profiler";case re:return"StrictMode";case te:return"Suspense";case G:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case B:return(o.displayName||"Context")+".Consumer";case j:return(o._context.displayName||"Context")+".Provider";case Y:var a=o.render;return o=o.displayName,o||(o=a.displayName||a.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case ce:return a=o.displayName||null,a!==null?a:ye(o.type)||"Memo";case Z:a=o._payload,o=o._init;try{return ye(o(a))}catch{}}return null}function Fe(o){var a=o.type;switch(o.tag){case 24:return"Cache";case 9:return(a.displayName||"Context")+".Consumer";case 10:return(a._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return o=a.render,o=o.displayName||o.name||"",a.displayName||(o!==""?"ForwardRef("+o+")":"ForwardRef");case 7:return"Fragment";case 5:return a;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ye(a);case 8:return a===re?"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 a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a}return null}function De(o){switch(typeof o){case"boolean":case"number":case"string":case"undefined":return o;case"object":return o;default:return""}}function Te(o){var a=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function Xe(o){var a=Te(o)?"checked":"value",p=Object.getOwnPropertyDescriptor(o.constructor.prototype,a),v=""+o[a];if(!o.hasOwnProperty(a)&&typeof p<"u"&&typeof p.get=="function"&&typeof p.set=="function"){var w=p.get,C=p.set;return Object.defineProperty(o,a,{configurable:!0,get:function(){return w.call(this)},set:function(A){v=""+A,C.call(this,A)}}),Object.defineProperty(o,a,{enumerable:p.enumerable}),{getValue:function(){return v},setValue:function(A){v=""+A},stopTracking:function(){o._valueTracker=null,delete o[a]}}}}function lt(o){o._valueTracker||(o._valueTracker=Xe(o))}function _e(o){if(!o)return!1;var a=o._valueTracker;if(!a)return!0;var p=a.getValue(),v="";return o&&(v=Te(o)?o.checked?"true":"false":o.value),o=v,o!==p?(a.setValue(o),!0):!1}function mt(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 pt(o,a){var p=a.checked;return R({},a,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:p??o._wrapperState.initialChecked})}function Vt(o,a){var p=a.defaultValue==null?"":a.defaultValue,v=a.checked!=null?a.checked:a.defaultChecked;p=De(a.value!=null?a.value:p),o._wrapperState={initialChecked:v,initialValue:p,controlled:a.type==="checkbox"||a.type==="radio"?a.checked!=null:a.value!=null}}function Ve(o,a){a=a.checked,a!=null&&L(o,"checked",a,!1)}function it(o,a){Ve(o,a);var p=De(a.value),v=a.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}a.hasOwnProperty("value")?Zn(o,a.type,p):a.hasOwnProperty("defaultValue")&&Zn(o,a.type,De(a.defaultValue)),a.checked==null&&a.defaultChecked!=null&&(o.defaultChecked=!!a.defaultChecked)}function Ut(o,a,p){if(a.hasOwnProperty("value")||a.hasOwnProperty("defaultValue")){var v=a.type;if(!(v!=="submit"&&v!=="reset"||a.value!==void 0&&a.value!==null))return;a=""+o._wrapperState.initialValue,p||a===o.value||(o.value=a),o.defaultValue=a}p=o.name,p!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,p!==""&&(o.name=p)}function Zn(o,a,p){(a!=="number"||mt(o.ownerDocument)!==o)&&(p==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+p&&(o.defaultValue=""+p))}var ln=Array.isArray;function _t(o,a,p,v){if(o=o.options,a){a={};for(var w=0;w"+a.valueOf().toString()+"",a=Oe.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;a.firstChild;)o.appendChild(a.firstChild)}});function at(o,a){if(a){var p=o.firstChild;if(p&&p===o.lastChild&&p.nodeType===3){p.nodeValue=a;return}}o.textContent=a}var Kt={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},Bn=["Webkit","ms","Moz","O"];Object.keys(Kt).forEach(function(o){Bn.forEach(function(a){a=a+o.charAt(0).toUpperCase()+o.substring(1),Kt[a]=Kt[o]})});function Qt(o,a,p){return a==null||typeof a=="boolean"||a===""?"":p||typeof a!="number"||a===0||Kt.hasOwnProperty(o)&&Kt[o]?(""+a).trim():a+"px"}function Pt(o,a){o=o.style;for(var p in a)if(a.hasOwnProperty(p)){var v=p.indexOf("--")===0,w=Qt(p,a[p],v);p==="float"&&(p="cssFloat"),v?o.setProperty(p,w):o[p]=w}}var Pr=R({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 Ft(o,a){if(a){if(Pr[o]&&(a.children!=null||a.dangerouslySetInnerHTML!=null))throw Error(n(137,o));if(a.dangerouslySetInnerHTML!=null){if(a.children!=null)throw Error(n(60));if(typeof a.dangerouslySetInnerHTML!="object"||!("__html"in a.dangerouslySetInnerHTML))throw Error(n(61))}if(a.style!=null&&typeof a.style!="object")throw Error(n(62))}}function er(o,a){if(o.indexOf("-")===-1)return typeof a.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 an=null;function ol(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var hs=null,ci=null,fi=null;function la(o){if(o=Kn(o)){if(typeof hs!="function")throw Error(n(280));var a=o.stateNode;a&&(a=uc(a),hs(o.stateNode,o.type,a))}}function Mu(o){ci?fi?fi.push(o):fi=[o]:ci=o}function ms(){if(ci){var o=ci,a=fi;if(fi=ci=null,la(o),a)for(o=0;o>>=0,o===0?32:31-(Oh(o)/zh|0)|0}var al=64,Fu=4194304;function ul(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 bs(o,a){var p=o.pendingLanes;if(p===0)return 0;var v=0,w=o.suspendedLanes,C=o.pingedLanes,A=p&268435455;if(A!==0){var W=A&~w;W!==0?v=ul(W):(C&=A,C!==0&&(v=ul(C)))}else A=p&~w,A!==0?v=ul(A):C!==0&&(v=ul(C));if(v===0)return 0;if(a!==0&&a!==v&&(a&w)===0&&(w=v&-v,C=a&-a,w>=C||w===16&&(C&4194240)!==0))return a;if((v&4)!==0&&(v|=p&16),a=o.entangledLanes,a!==0)for(o=o.entanglements,a&=v;0p;p++)a.push(o);return a}function ha(o,a,p){o.pendingLanes|=a,a!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,a=31-di(a),o[a]=p}function Vh(o,a){var p=o.pendingLanes&~a;o.pendingLanes=a,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=a,o.mutableReadLanes&=a,o.entangledLanes&=a,a=o.entanglements;var v=o.eventTimes;for(o=o.expirationTimes;0=so),nm=" ",rm=!1;function im(o,a){switch(o){case"keyup":return Tr.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function om(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var ml=!1;function gl(o,a){switch(o){case"compositionend":return om(a);case"keypress":return a.which!==32?null:(rm=!0,nm);case"textInput":return o=a.data,o===nm&&rm?null:o;default:return null}}function Zv(o,a){if(ml)return o==="compositionend"||!ba&&im(o,a)?(o=td(),Ri=ya=Ht=null,ml=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1=a)return{node:p,offset:a-o};o=v}e:{for(;p;){if(p.nextSibling){p=p.nextSibling;break e}p=p.parentNode}p=void 0}p=rt(p)}}function pn(o,a){return o&&a?o===a?!0:o&&o.nodeType===3?!1:a&&a.nodeType===3?pn(o,a.parentNode):"contains"in o?o.contains(a):o.compareDocumentPosition?!!(o.compareDocumentPosition(a)&16):!1:!1}function $t(){for(var o=window,a=mt();a instanceof o.HTMLIFrameElement;){try{var p=typeof a.contentWindow.location.href=="string"}catch{p=!1}if(p)o=a.contentWindow;else break;a=mt(o.document)}return a}function xa(o){var a=o&&o.nodeName&&o.nodeName.toLowerCase();return a&&(a==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||a==="textarea"||o.contentEditable==="true")}function oy(o){var a=$t(),p=o.focusedElem,v=o.selectionRange;if(a!==p&&p&&p.ownerDocument&&pn(p.ownerDocument.documentElement,p)){if(v!==null&&xa(p)){if(a=v.start,o=v.end,o===void 0&&(o=a),"selectionStart"in p)p.selectionStart=a,p.selectionEnd=Math.min(o,p.value.length);else if(o=(a=p.ownerDocument||document)&&a.defaultView||window,o.getSelection){o=o.getSelection();var w=p.textContent.length,C=Math.min(v.start,w);v=v.end===void 0?C:Math.min(v.end,w),!o.extend&&C>v&&(w=v,v=C,C=w),w=wt(p,C);var A=wt(p,v);w&&A&&(o.rangeCount!==1||o.anchorNode!==w.node||o.anchorOffset!==w.offset||o.focusNode!==A.node||o.focusOffset!==A.offset)&&(a=a.createRange(),a.setStart(w.node,w.offset),o.removeAllRanges(),C>v?(o.addRange(a),o.extend(A.node,A.offset)):(a.setEnd(A.node,A.offset),o.addRange(a)))}}for(a=[],o=p;o=o.parentNode;)o.nodeType===1&&a.push({element:o,left:o.scrollLeft,top:o.scrollTop});for(typeof p.focus=="function"&&p.focus(),p=0;p=document.documentMode,lo=null,hd=null,Li=null,yl=!1;function wa(o,a,p){var v=p.window===p?p.document:p.nodeType===9?p:p.ownerDocument;yl||lo==null||lo!==mt(v)||(v=lo,"selectionStart"in v&&xa(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}),Li&&Ae(Li,v)||(Li=v,v=oc(hd,"onSelect"),0Pl||(o.current=bd[Pl],bd[Pl]=null,Pl--)}function Mt(o,a){Pl++,bd[Pl]=o.current,o.current=a}var Ko={},Wn=pr(Ko),hr=pr(!1),rr=Ko;function Tl(o,a){var p=o.type.contextTypes;if(!p)return Ko;var v=o.stateNode;if(v&&v.__reactInternalMemoizedUnmaskedChildContext===a)return v.__reactInternalMemoizedMaskedChildContext;var w={},C;for(C in p)w[C]=a[C];return v&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=a,o.__reactInternalMemoizedMaskedChildContext=w),w}function mr(o){return o=o.childContextTypes,o!=null}function cc(){zt(hr),zt(Wn)}function mm(o,a,p){if(Wn.current!==Ko)throw Error(n(168));Mt(Wn,a),Mt(hr,p)}function gm(o,a,p){var v=o.stateNode;if(a=a.childContextTypes,typeof v.getChildContext!="function")return p;v=v.getChildContext();for(var w in v)if(!(w in a))throw Error(n(108,Fe(o)||"Unknown",w));return R({},p,v)}function Ur(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||Ko,rr=Wn.current,Mt(Wn,o),Mt(hr,hr.current),!0}function vm(o,a,p){var v=o.stateNode;if(!v)throw Error(n(169));p?(o=gm(o,a,rr),v.__reactInternalMemoizedMergedChildContext=o,zt(hr),zt(Wn),Mt(Wn,o)):zt(hr),Mt(hr,p)}var co=null,fc=!1,xd=!1;function ym(o){co===null?co=[o]:co.push(o)}function Ts(o){fc=!0,ym(o)}function Wo(){if(!xd&&co!==null){xd=!0;var o=0,a=Et;try{var p=co;for(Et=1;o>=A,w-=A,Ni=1<<32-di(a)+w|p<Qe?($n=Ke,Ke=null):$n=Ke.sibling;var kt=be(le,Ke,ue[Qe],Ee);if(kt===null){Ke===null&&(Ke=$n);break}o&&Ke&&kt.alternate===null&&a(le,Ke),ee=C(kt,ee,Qe),He===null?Be=kt:He.sibling=kt,He=kt,Ke=$n}if(Qe===ue.length)return p(le,Ke),jt&&Is(le,Qe),Be;if(Ke===null){for(;QeQe?($n=Ke,Ke=null):$n=Ke.sibling;var rs=be(le,Ke,kt.value,Ee);if(rs===null){Ke===null&&(Ke=$n);break}o&&Ke&&rs.alternate===null&&a(le,Ke),ee=C(rs,ee,Qe),He===null?Be=rs:He.sibling=rs,He=rs,Ke=$n}if(kt.done)return p(le,Ke),jt&&Is(le,Qe),Be;if(Ke===null){for(;!kt.done;Qe++,kt=ue.next())kt=ke(le,kt.value,Ee),kt!==null&&(ee=C(kt,ee,Qe),He===null?Be=kt:He.sibling=kt,He=kt);return jt&&Is(le,Qe),Be}for(Ke=v(le,Ke);!kt.done;Qe++,kt=ue.next())kt=Re(Ke,le,Qe,kt.value,Ee),kt!==null&&(o&&kt.alternate!==null&&Ke.delete(kt.key===null?Qe:kt.key),ee=C(kt,ee,Qe),He===null?Be=kt:He.sibling=kt,He=kt);return o&&Ke.forEach(function(Ty){return a(le,Ty)}),jt&&Is(le,Qe),Be}function cn(le,ee,ue,Ee){if(typeof ue=="object"&&ue!==null&&ue.type===J&&ue.key===null&&(ue=ue.props.children),typeof ue=="object"&&ue!==null){switch(ue.$$typeof){case K:e:{for(var Be=ue.key,He=ee;He!==null;){if(He.key===Be){if(Be=ue.type,Be===J){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===Be||typeof Be=="object"&&Be!==null&&Be.$$typeof===Z&&Sm(Be)===He.type){p(le,He.sibling),ee=w(He,ue.props),ee.ref=Ra(le,He,ue),ee.return=le,le=ee;break e}p(le,He);break}else a(le,He);He=He.sibling}ue.type===J?(ee=Vs(ue.props.children,le.mode,Ee,ue.key),ee.return=le,le=ee):(Ee=Yc(ue.type,ue.key,ue.props,null,le.mode,Ee),Ee.ref=Ra(le,ee,ue),Ee.return=le,le=Ee)}return A(le);case M: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 a(le,ee);ee=ee.sibling}ee=up(ue,le.mode,Ee),ee.return=le,le=ee}return A(le);case Z:return He=ue._init,cn(le,ee,He(ue._payload),Ee)}if(ln(ue))return Me(le,ee,ue,Ee);if(se(ue))return Ne(le,ee,ue,Ee);As(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=ap(ue,le.mode,Ee),ee.return=le,le=ee),A(le)):p(le,ee)}return cn}var rn=Sd(!0),mc=Sd(!1),La=pr(null),Ar=null,Ho=null,Il=null;function po(){Il=Ho=Ar=null}function gc(o){var a=La.current;zt(La),o._currentValue=a}function Dn(o,a,p){for(;o!==null;){var v=o.alternate;if((o.childLanes&a)!==a?(o.childLanes|=a,v!==null&&(v.childLanes|=a)):v!==null&&(v.childLanes&a)!==a&&(v.childLanes|=a),o===p)break;o=o.return}}function Go(o,a){Ar=o,Il=Ho=null,o=o.dependencies,o!==null&&o.firstContext!==null&&((o.lanes&a)!==0&&(or=!0),o.firstContext=null)}function Hr(o){var a=o._currentValue;if(Il!==o)if(o={context:o,memoizedValue:a,next:null},Ho===null){if(Ar===null)throw Error(n(308));Ho=o,Ar.dependencies={lanes:0,firstContext:o}}else Ho=Ho.next=o;return a}var Rs=null;function kd(o){Rs===null?Rs=[o]:Rs.push(o)}function vc(o,a,p,v){var w=a.interleaved;return w===null?(p.next=p,kd(a)):(p.next=w.next,w.next=p),a.interleaved=p,ho(o,v)}function ho(o,a){o.lanes|=a;var p=o.alternate;for(p!==null&&(p.lanes|=a),p=o,o=o.return;o!==null;)o.childLanes|=a,p=o.alternate,p!==null&&(p.childLanes|=a),p=o,o=o.return;return p.tag===3?p.stateNode:null}var Gr=!1;function yc(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function km(o,a){o=o.updateQueue,a.updateQueue===o&&(a.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,effects:o.effects})}function mo(o,a){return{eventTime:o,lane:a,tag:0,payload:null,callback:null,next:null}}function qr(o,a,p){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(bt&2)!==0){var w=v.pending;return w===null?a.next=a:(a.next=w.next,w.next=a),v.pending=a,ho(o,p)}return w=v.interleaved,w===null?(a.next=a,kd(v)):(a.next=w.next,w.next=a),v.interleaved=a,ho(o,p)}function bc(o,a,p){if(a=a.updateQueue,a!==null&&(a=a.shared,(p&4194240)!==0)){var v=a.lanes;v&=o.pendingLanes,p|=v,a.lanes=p,ma(o,p)}}function Cm(o,a){var p=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,p===v)){var w=null,C=null;if(p=p.firstBaseUpdate,p!==null){do{var A={eventTime:p.eventTime,lane:p.lane,tag:p.tag,payload:p.payload,callback:p.callback,next:null};C===null?w=C=A:C=C.next=A,p=p.next}while(p!==null);C===null?w=C=a:C=C.next=a}else w=C=a;p={baseState:v.baseState,firstBaseUpdate:w,lastBaseUpdate:C,shared:v.shared,effects:v.effects},o.updateQueue=p;return}o=p.lastBaseUpdate,o===null?p.firstBaseUpdate=a:o.next=a,p.lastBaseUpdate=a}function $l(o,a,p,v){var w=o.updateQueue;Gr=!1;var C=w.firstBaseUpdate,A=w.lastBaseUpdate,W=w.shared.pending;if(W!==null){w.shared.pending=null;var X=W,de=X.next;X.next=null,A===null?C=de:A.next=de,A=X;var xe=o.alternate;xe!==null&&(xe=xe.updateQueue,W=xe.lastBaseUpdate,W!==A&&(W===null?xe.firstBaseUpdate=de:W.next=de,xe.lastBaseUpdate=X))}if(C!==null){var ke=w.baseState;A=0,xe=de=X=null,W=C;do{var be=W.lane,Re=W.eventTime;if((v&be)===be){xe!==null&&(xe=xe.next={eventTime:Re,lane:0,tag:W.tag,payload:W.payload,callback:W.callback,next:null});e:{var Me=o,Ne=W;switch(be=a,Re=p,Ne.tag){case 1:if(Me=Ne.payload,typeof Me=="function"){ke=Me.call(Re,ke,be);break e}ke=Me;break e;case 3:Me.flags=Me.flags&-65537|128;case 0:if(Me=Ne.payload,be=typeof Me=="function"?Me.call(Re,ke,be):Me,be==null)break e;ke=R({},ke,be);break e;case 2:Gr=!0}}W.callback!==null&&W.lane!==0&&(o.flags|=64,be=w.effects,be===null?w.effects=[W]:be.push(W))}else Re={eventTime:Re,lane:be,tag:W.tag,payload:W.payload,callback:W.callback,next:null},xe===null?(de=xe=Re,X=ke):xe=xe.next=Re,A|=be;if(W=W.next,W===null){if(W=w.shared.pending,W===null)break;be=W,W=be.next,be.next=null,w.lastBaseUpdate=be,w.shared.pending=null}}while(!0);if(xe===null&&(X=ke),w.baseState=X,w.firstBaseUpdate=de,w.lastBaseUpdate=xe,a=w.shared.interleaved,a!==null){w=a;do A|=w.lane,w=w.next;while(w!==a)}else C===null&&(w.shared.lanes=0);Jo|=A,o.lanes=A,o.memoizedState=ke}}function Cd(o,a,p){if(o=a.effects,a.effects=null,o!==null)for(a=0;ap?p:4,o(!0);var v=_d.transition;_d.transition={};try{o(!1),a()}finally{Et=p,_d.transition=v}}function Nd(){return Yr().memoizedState}function ly(o,a,p){var v=ts(o);if(p={lane:v,action:p,hasEagerState:!1,eagerState:null,next:null},Fd(o))ir(a,p);else if(p=vc(o,a,p,v),p!==null){var w=ar();xi(p,o,v,w),mi(p,a,v)}}function $m(o,a,p){var v=ts(o),w={lane:v,action:p,hasEagerState:!1,eagerState:null,next:null};if(Fd(o))ir(a,w);else{var C=o.alternate;if(o.lanes===0&&(C===null||C.lanes===0)&&(C=a.lastRenderedReducer,C!==null))try{var A=a.lastRenderedState,W=C(A,p);if(w.hasEagerState=!0,w.eagerState=W,fe(W,A)){var X=a.interleaved;X===null?(w.next=w,kd(a)):(w.next=X.next,X.next=w),a.interleaved=w;return}}catch{}finally{}p=vc(o,a,w,v),p!==null&&(w=ar(),xi(p,o,v,w),mi(p,a,v))}}function Fd(o){var a=o.alternate;return o===Zt||a!==null&&a===Zt}function ir(o,a){Fa=Rl=!0;var p=o.pending;p===null?a.next=a:(a.next=p.next,p.next=a),o.pending=a}function mi(o,a,p){if((p&4194240)!==0){var v=a.lanes;v&=o.pendingLanes,p|=v,a.lanes=p,ma(o,p)}}var Tc={readContext:Hr,useCallback:qn,useContext:qn,useEffect:qn,useImperativeHandle:qn,useInsertionEffect:qn,useLayoutEffect:qn,useMemo:qn,useReducer:qn,useRef:qn,useState:qn,useDebugValue:qn,useDeferredValue:qn,useTransition:qn,useMutableSource:qn,useSyncExternalStore:qn,useId:qn,unstable_isNewReconciler:!1},ay={readContext:Hr,useCallback:function(o,a){return Vi().memoizedState=[o,a===void 0?null:a],o},useContext:Hr,useEffect:Pc,useImperativeHandle:function(o,a,p){return p=p!=null?p.concat([o]):null,za(4194308,4,Md.bind(null,a,o),p)},useLayoutEffect:function(o,a){return za(4194308,4,o,a)},useInsertionEffect:function(o,a){return za(4,2,o,a)},useMemo:function(o,a){var p=Vi();return a=a===void 0?null:a,o=o(),p.memoizedState=[o,a],o},useReducer:function(o,a,p){var v=Vi();return a=p!==void 0?p(a):a,v.memoizedState=v.baseState=a,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:a},v.queue=o,o=o.dispatch=ly.bind(null,Zt,o),[v.memoizedState,o]},useRef:function(o){var a=Vi();return o={current:o},a.memoizedState=o},useState:Oa,useDebugValue:ja,useDeferredValue:function(o){return Vi().memoizedState=o},useTransition:function(){var o=Oa(!1),a=o[0];return o=Im.bind(null,o[1]),Vi().memoizedState=o,[a,o]},useMutableSource:function(){},useSyncExternalStore:function(o,a,p){var v=Zt,w=Vi();if(jt){if(p===void 0)throw Error(n(407));p=p()}else{if(p=a(),In===null)throw Error(n(349));(Yo&30)!==0||Rd(v,a,p)}w.memoizedState=p;var C={value:p,getSnapshot:a};return w.queue=C,Pc(vo.bind(null,v,C,o),[o]),v.flags|=2048,Ml(9,vr.bind(null,v,C,p,a),void 0,null),p},useId:function(){var o=Vi(),a=In.identifierPrefix;if(jt){var p=Fi,v=Ni;p=(v&~(1<<32-di(v)-1)).toString(32)+p,a=":"+a+"R"+p,p=Ms++,0<\/script>",o=o.removeChild(o.firstChild)):typeof v.is=="string"?o=A.createElement(p,{is:v.is}):(o=A.createElement(p),p==="select"&&(A=o,v.multiple?A.multiple=!0:v.size&&(A.size=v.size))):o=A.createElementNS(o,p),o[Mi]=a,o[Uo]=v,Fn(o,a,!1,!1),a.stateNode=o;e:{switch(A=er(p,v),p){case"dialog":Ot("cancel",o),Ot("close",o),w=v;break;case"iframe":case"object":case"embed":Ot("load",o),w=v;break;case"video":case"audio":for(w=0;wOs&&(a.flags|=128,v=!0,Ga(C,!1),a.lanes=4194304)}else{if(!v)if(o=Ls(A),o!==null){if(a.flags|=128,v=!0,p=o.updateQueue,p!==null&&(a.updateQueue=p,a.flags|=4),Ga(C,!0),C.tail===null&&C.tailMode==="hidden"&&!A.alternate&&!jt)return On(a),null}else 2*Wt()-C.renderingStartTime>Os&&p!==1073741824&&(a.flags|=128,v=!0,Ga(C,!1),a.lanes=4194304);C.isBackwards?(A.sibling=a.child,a.child=A):(p=C.last,p!==null?p.sibling=A:a.child=A,C.last=A)}return C.tail!==null?(a=C.tail,C.rendering=a,C.tail=a.sibling,C.renderingStartTime=Wt(),a.sibling=null,p=Gt.current,Mt(Gt,v?p&1|2:p&1),a):(On(a),null);case 22:case 23:return sp(),v=a.memoizedState!==null,o!==null&&o.memoizedState!==null!==v&&(a.flags|=8192),v&&(a.mode&1)!==0?(Lr&1073741824)!==0&&(On(a),a.subtreeFlags&6&&(a.flags|=8192)):On(a),null;case 24:return null;case 25:return null}throw Error(n(156,a.tag))}function cy(o,a){switch($s(a),a.tag){case 1:return mr(a.type)&&cc(),o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 3:return qo(),zt(hr),zt(Wn),wc(),o=a.flags,(o&65536)!==0&&(o&128)===0?(a.flags=o&-65537|128,a):null;case 5:return xc(a),null;case 13:if(zt(Gt),o=a.memoizedState,o!==null&&o.dehydrated!==null){if(a.alternate===null)throw Error(n(340));zi()}return o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 19:return zt(Gt),null;case 4:return qo(),null;case 10:return gc(a.type._context),null;case 22:case 23:return sp(),null;case 24:return null;default:return null}}var Nc=!1,qt=!1,sr=typeof WeakSet=="function"?WeakSet:Set,Le=null;function jl(o,a){var p=o.ref;if(p!==null)if(typeof p=="function")try{p(null)}catch(v){en(o,a,v)}else p.current=null}function qa(o,a,p){try{p()}catch(v){en(o,a,v)}}var Fm=!1;function fy(o,a){if(Ta=Vu,o=$t(),xa(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,C=v.focusNode;v=v.focusOffset;try{p.nodeType,C.nodeType}catch{p=null;break e}var A=0,W=-1,X=-1,de=0,xe=0,ke=o,be=null;t:for(;;){for(var Re;ke!==p||w!==0&&ke.nodeType!==3||(W=A+w),ke!==C||v!==0&&ke.nodeType!==3||(X=A+v),ke.nodeType===3&&(A+=ke.nodeValue.length),(Re=ke.firstChild)!==null;)be=ke,ke=Re;for(;;){if(ke===o)break t;if(be===p&&++de===w&&(W=A),be===C&&++xe===v&&(X=A),(Re=ke.nextSibling)!==null)break;ke=be,be=ke.parentNode}ke=Re}p=W===-1||X===-1?null:{start:W,end:X}}else p=null}p=p||{start:0,end:0}}else p=null;for(Ps={focusedElem:o,selectionRange:p},Vu=!1,Le=a;Le!==null;)if(a=Le,o=a.child,(a.subtreeFlags&1028)!==0&&o!==null)o.return=a,Le=o;else for(;Le!==null;){a=Le;try{var Me=a.alternate;if((a.flags&1024)!==0)switch(a.tag){case 0:case 11:case 15:break;case 1:if(Me!==null){var Ne=Me.memoizedProps,cn=Me.memoizedState,le=a.stateNode,ee=le.getSnapshotBeforeUpdate(a.elementType===a.type?Ne:Xr(a.type,Ne),cn);le.__reactInternalSnapshotBeforeUpdate=ee}break;case 3:var ue=a.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(Ee){en(a,a.return,Ee)}if(o=a.sibling,o!==null){o.return=a.return,Le=o;break}Le=a.return}return Me=Fm,Fm=!1,Me}function xo(o,a,p){var v=a.updateQueue;if(v=v!==null?v.lastEffect:null,v!==null){var w=v=v.next;do{if((w.tag&o)===o){var C=w.destroy;w.destroy=void 0,C!==void 0&&qa(a,p,C)}w=w.next}while(w!==v)}}function Ya(o,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var p=a=a.next;do{if((p.tag&o)===o){var v=p.create;p.destroy=v()}p=p.next}while(p!==a)}}function Fc(o){var a=o.ref;if(a!==null){var p=o.stateNode;switch(o.tag){case 5:o=p;break;default:o=p}typeof a=="function"?a(o):a.current=o}}function Om(o){var a=o.alternate;a!==null&&(o.alternate=null,Om(a)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(a=o.stateNode,a!==null&&(delete a[Mi],delete a[Uo],delete a[ac],delete a[N],delete a[El])),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 zm(o){return o.tag===5||o.tag===3||o.tag===4}function jm(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||zm(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 Yd(o,a,p){var v=o.tag;if(v===5||v===6)o=o.stateNode,a?p.nodeType===8?p.parentNode.insertBefore(o,a):p.insertBefore(o,a):(p.nodeType===8?(a=p.parentNode,a.insertBefore(o,p)):(a=p,a.appendChild(o)),p=p._reactRootContainer,p!=null||a.onclick!==null||(a.onclick=sc));else if(v!==4&&(o=o.child,o!==null))for(Yd(o,a,p),o=o.sibling;o!==null;)Yd(o,a,p),o=o.sibling}function Oc(o,a,p){var v=o.tag;if(v===5||v===6)o=o.stateNode,a?p.insertBefore(o,a):p.appendChild(o);else if(v!==4&&(o=o.child,o!==null))for(Oc(o,a,p),o=o.sibling;o!==null;)Oc(o,a,p),o=o.sibling}var _n=null,vi=!1;function Hi(o,a,p){for(p=p.child;p!==null;)Xd(o,a,p),p=p.sibling}function Xd(o,a,p){if(Ai&&typeof Ai.onCommitFiberUnmount=="function")try{Ai.onCommitFiberUnmount(Nu,p)}catch{}switch(p.tag){case 5:qt||jl(p,a);case 6:var v=_n,w=vi;_n=null,Hi(o,a,p),_n=v,vi=w,_n!==null&&(vi?(o=_n,p=p.stateNode,o.nodeType===8?o.parentNode.removeChild(p):o.removeChild(p)):_n.removeChild(p.stateNode));break;case 18:_n!==null&&(vi?(o=_n,p=p.stateNode,o.nodeType===8?yd(o.parentNode,p):o.nodeType===1&&yd(o,p),Tt(o)):yd(_n,p.stateNode));break;case 4:v=_n,w=vi,_n=p.stateNode.containerInfo,vi=!0,Hi(o,a,p),_n=v,vi=w;break;case 0:case 11:case 14:case 15:if(!qt&&(v=p.updateQueue,v!==null&&(v=v.lastEffect,v!==null))){w=v=v.next;do{var C=w,A=C.destroy;C=C.tag,A!==void 0&&((C&2)!==0||(C&4)!==0)&&qa(p,a,A),w=w.next}while(w!==v)}Hi(o,a,p);break;case 1:if(!qt&&(jl(p,a),v=p.stateNode,typeof v.componentWillUnmount=="function"))try{v.props=p.memoizedProps,v.state=p.memoizedState,v.componentWillUnmount()}catch(W){en(p,a,W)}Hi(o,a,p);break;case 21:Hi(o,a,p);break;case 22:p.mode&1?(qt=(v=qt)||p.memoizedState!==null,Hi(o,a,p),qt=v):Hi(o,a,p);break;default:Hi(o,a,p)}}function Bl(o){var a=o.updateQueue;if(a!==null){o.updateQueue=null;var p=o.stateNode;p===null&&(p=o.stateNode=new sr),a.forEach(function(v){var w=yy.bind(null,o,v);p.has(v)||(p.add(v),v.then(w,w))})}}function Rr(o,a){var p=a.deletions;if(p!==null)for(var v=0;vw&&(w=A),v&=~C}if(v=w,v=Wt()-v,v=(120>v?120:480>v?480:1080>v?1080:1920>v?1920:3e3>v?3e3:4320>v?4320:1960*Vm(v/1960))-v,10o?16:o,es===null)var v=!1;else{if(o=es,es=null,lr=0,(bt&6)!==0)throw Error(n(331));var w=bt;for(bt|=4,Le=o.current;Le!==null;){var C=Le,A=C.child;if((Le.flags&16)!==0){var W=C.deletions;if(W!==null){for(var X=0;XWt()-ep?js(o,0):Bc|=p),br(o,a)}function qm(o,a){a===0&&((o.mode&1)===0?a=1:(a=Fu,Fu<<=1,(Fu&130023424)===0&&(Fu=4194304)));var p=ar();o=ho(o,a),o!==null&&(ha(o,a,p),br(o,p))}function vy(o){var a=o.memoizedState,p=0;a!==null&&(p=a.retryLane),qm(o,p)}function yy(o,a){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(a),qm(o,p)}var Ym;Ym=function(o,a,p){if(o!==null)if(o.memoizedProps!==a.pendingProps||hr.current)or=!0;else{if((o.lanes&p)===0&&(a.flags&128)===0)return or=!1,Dm(o,a,p);or=(o.flags&131072)!==0}else or=!1,jt&&(a.flags&1048576)!==0&&bm(a,pc,a.index);switch(a.lanes=0,a.tag){case 2:var v=a.type;Dc(o,a),o=a.pendingProps;var w=Tl(a,Wn.current);Go(a,p),w=Ds(null,a,v,o,w,p);var C=Sc();return a.flags|=1,typeof w=="object"&&w!==null&&typeof w.render=="function"&&w.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,mr(v)?(C=!0,Ur(a)):C=!1,a.memoizedState=w.state!==null&&w.state!==void 0?w.state:null,yc(a),w.updater=$c,a.stateNode=w,w._reactInternals=a,zd(a,v,o,p),a=Hd(null,a,v,!0,C,p)):(a.tag=0,jt&&C&&$a(a),Nn(null,a,w,p),a=a.child),a;case 16:v=a.elementType;e:{switch(Dc(o,a),o=a.pendingProps,w=v._init,v=w(v._payload),a.type=v,w=a.tag=xy(v),o=Xr(v,o),w){case 0:a=Kd(null,a,v,o,p);break e;case 1:a=Wd(null,a,v,o,p);break e;case 11:a=Lm(null,a,v,o,p);break e;case 14:a=Bd(null,a,v,Xr(v.type,o),p);break e}throw Error(n(306,v,""))}return a;case 0:return v=a.type,w=a.pendingProps,w=a.elementType===v?w:Xr(v,w),Kd(o,a,v,w,p);case 1:return v=a.type,w=a.pendingProps,w=a.elementType===v?w:Xr(v,w),Wd(o,a,v,w,p);case 3:e:{if(Mm(a),o===null)throw Error(n(387));v=a.pendingProps,C=a.memoizedState,w=C.element,km(o,a),$l(a,v,null,p);var A=a.memoizedState;if(v=A.element,C.isDehydrated)if(C={element:v,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},a.updateQueue.baseState=C,a.memoizedState=C,a.flags&256){w=Fs(Error(n(423)),a),a=Wi(o,a,v,p,w);break e}else if(v!==w){w=Fs(Error(n(424)),a),a=Wi(o,a,v,p,w);break e}else for($r=Vo(a.stateNode.containerInfo.firstChild),Gn=a,jt=!0,hi=null,p=mc(a,null,v,p),a.child=p;p;)p.flags=p.flags&-3|4096,p=p.sibling;else{if(zi(),v===w){a=gi(o,a,p);break e}Nn(o,a,v,p)}a=a.child}return a;case 5:return Pd(a),o===null&&gr(a),v=a.type,w=a.pendingProps,C=o!==null?o.memoizedProps:null,A=w.children,_a(v,w)?A=null:C!==null&&_a(v,C)&&(a.flags|=32),Ud(o,a),Nn(o,a,A,p),a.child;case 6:return o===null&&gr(a),null;case 13:return Mc(o,a,p);case 4:return Ed(a,a.stateNode.containerInfo),v=a.pendingProps,o===null?a.child=rn(a,null,v,p):Nn(o,a,v,p),a.child;case 11:return v=a.type,w=a.pendingProps,w=a.elementType===v?w:Xr(v,w),Lm(o,a,v,w,p);case 7:return Nn(o,a,a.pendingProps,p),a.child;case 8:return Nn(o,a,a.pendingProps.children,p),a.child;case 12:return Nn(o,a,a.pendingProps.children,p),a.child;case 10:e:{if(v=a.type._context,w=a.pendingProps,C=a.memoizedProps,A=w.value,Mt(La,v._currentValue),v._currentValue=A,C!==null)if(fe(C.value,A)){if(C.children===w.children&&!hr.current){a=gi(o,a,p);break e}}else for(C=a.child,C!==null&&(C.return=a);C!==null;){var W=C.dependencies;if(W!==null){A=C.child;for(var X=W.firstContext;X!==null;){if(X.context===v){if(C.tag===1){X=mo(-1,p&-p),X.tag=2;var de=C.updateQueue;if(de!==null){de=de.shared;var xe=de.pending;xe===null?X.next=X:(X.next=xe.next,xe.next=X),de.pending=X}}C.lanes|=p,X=C.alternate,X!==null&&(X.lanes|=p),Dn(C.return,p,a),W.lanes|=p;break}X=X.next}}else if(C.tag===10)A=C.type===a.type?null:C.child;else if(C.tag===18){if(A=C.return,A===null)throw Error(n(341));A.lanes|=p,W=A.alternate,W!==null&&(W.lanes|=p),Dn(A,p,a),A=C.sibling}else A=C.child;if(A!==null)A.return=C;else for(A=C;A!==null;){if(A===a){A=null;break}if(C=A.sibling,C!==null){C.return=A.return,A=C;break}A=A.return}C=A}Nn(o,a,w.children,p),a=a.child}return a;case 9:return w=a.type,v=a.pendingProps.children,Go(a,p),w=Hr(w),v=v(w),a.flags|=1,Nn(o,a,v,p),a.child;case 14:return v=a.type,w=Xr(v,a.pendingProps),w=Xr(v.type,w),Bd(o,a,v,w,p);case 15:return Ki(o,a,a.type,a.pendingProps,p);case 17:return v=a.type,w=a.pendingProps,w=a.elementType===v?w:Xr(v,w),Dc(o,a),a.tag=1,mr(v)?(o=!0,Ur(a)):o=!1,Go(a,p),Ns(a,v,w),zd(a,v,w,p),Hd(null,a,v,!0,o,p);case 19:return Xo(o,a,p);case 22:return Vd(o,a,p)}throw Error(n(156,a.tag))};function Xm(o,a){return Mh(o,a)}function by(o,a,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=a,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 Jr(o,a,p,v){return new by(o,a,p,v)}function qc(o){return o=o.prototype,!(!o||!o.isReactComponent)}function xy(o){if(typeof o=="function")return qc(o)?1:0;if(o!=null){if(o=o.$$typeof,o===Y)return 11;if(o===ce)return 14}return 2}function wi(o,a){var p=o.alternate;return p===null?(p=Jr(o.tag,a,o.key,o.mode),p.elementType=o.elementType,p.type=o.type,p.stateNode=o.stateNode,p.alternate=o,o.alternate=p):(p.pendingProps=a,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,a=o.dependencies,p.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},p.sibling=o.sibling,p.index=o.index,p.ref=o.ref,p}function Yc(o,a,p,v,w,C){var A=2;if(v=o,typeof o=="function")qc(o)&&(A=1);else if(typeof o=="string")A=5;else e:switch(o){case J:return Vs(p.children,w,C,a);case re:A=8,w|=8;break;case ae:return o=Jr(12,p,a,w|2),o.elementType=ae,o.lanes=C,o;case te:return o=Jr(13,p,a,w),o.elementType=te,o.lanes=C,o;case G:return o=Jr(19,p,a,w),o.elementType=G,o.lanes=C,o;case q:return Xc(p,w,C,a);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case j:A=10;break e;case B:A=9;break e;case Y:A=11;break e;case ce:A=14;break e;case Z:A=16,v=null;break e}throw Error(n(130,o==null?o:typeof o,""))}return a=Jr(A,p,a,w),a.elementType=o,a.type=v,a.lanes=C,a}function Vs(o,a,p,v){return o=Jr(7,o,v,a),o.lanes=p,o}function Xc(o,a,p,v){return o=Jr(22,o,v,a),o.elementType=q,o.lanes=p,o.stateNode={isHidden:!1},o}function ap(o,a,p){return o=Jr(6,o,null,a),o.lanes=p,o}function up(o,a,p){return a=Jr(4,o.children!==null?o.children:[],o.key,a),a.lanes=p,a.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},a}function wy(o,a,p,v,w){this.tag=a,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=pa(0),this.expirationTimes=pa(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=pa(0),this.identifierPrefix=v,this.onRecoverableError=w,this.mutableSourceEagerHydrationData=null}function cp(o,a,p,v,w,C,A,W,X){return o=new wy(o,a,p,W,X),a===1?(a=1,C===!0&&(a|=8)):a=0,C=Jr(3,null,null,a),o.current=C,C.stateNode=o,C.memoizedState={element:v,isDehydrated:p,cache:null,transitions:null,pendingSuspenseBoundaries:null},yc(C),o}function Sy(o,a,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(),By.exports=rL(),By.exports}var c1;function iL(){if(c1)return sg;c1=1;var e=cE();return sg.createRoot=e.createRoot,sg.hydrateRoot=e.hydrateRoot,sg}var oL=iL();function pv(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 l;const c=S.useContext(i);if(!c&&t){const d=new Error(n);throw d.name="ContextError",(l=Error.captureStackTrace)==null||l.call(Error,d,s),d}return c}return[i.Provider,s,i]}function sL(e){return{UNSAFE_getDOMNode(){return e.current}}}function Zi(e){const t=S.useRef(null);return S.useImperativeHandle(e,()=>t.current),t}function ox(e){return Array.isArray(e)}function lL(e){return ox(e)&&e.length===0}function sx(e){const t=typeof e;return e!=null&&(t==="object"||t==="function")&&!ox(e)}function aL(e){return sx(e)&&Object.keys(e).length===0}function uL(e){return ox(e)?lL(e):sx(e)?aL(e):e==null||e===""}function cL(e){return typeof e=="function"}var $e=e=>e?"true":void 0;function fE(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;tsx(e)?e instanceof Array?[...e]:e[t]:e,dE=(...e)=>{let t=" ";for(const n of e)if(typeof n=="string"&&n.length>0){t=n;break}return t},fL=e=>e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"";function f1(...e){return function(n){e.some(r=>(r?.(n),n?.defaultPrevented))}}function dL(e){return`${e}-${Math.floor(Math.random()*1e6)}`}function LG(e){for(const t in e)t.startsWith("on")&&delete e[t];return e}function nl(e){if(!e||typeof e!="object")return"";try{return JSON.stringify(e)}catch{return""}}function pL(e,t,n){return Math.min(Math.max(e,t),n)}function hL(e,t=100){return Math.min(Math.max(e,0),t)}var d1={};function mL(e,t,...n){const i=`[Hero UI] : ${e}`;typeof console>"u"||d1[i]||(d1[i]=!0)}function Jl(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}var p1=new Map;function gL(e,t){if(e===t)return e;let n=p1.get(e);if(n)return n.forEach(i=>i.current=t),t;let r=p1.get(t);return r?(r.forEach(i=>i.current=e),e):t}function on(...e){let t={...e[0]};for(let n=1;n=65&&i.charCodeAt(2)<=90?t[i]=Jl(s,l):(i==="className"||i==="UNSAFE_className")&&typeof s=="string"&&typeof l=="string"?t[i]=tn(s,l):i==="id"&&s&&l?t.id=gL(s,l):t[i]=l!==void 0?l:s}}return t}function pE(...e){return e.length===1&&e[0]?e[0]:t=>{let n=!1;const r=e.map(i=>{const s=h1(i,t);return n||(n=typeof s=="function"),s});if(n)return()=>{r.forEach((i,s)=>{typeof i=="function"?i?.():h1(e[s],null)})}}}function h1(e,t){if(typeof e=="function")return()=>e(t);e!=null&&"current"in e&&(e.current=t)}function vL(e,t){if(e!=null){if(cL(e)){e(t);return}try{e.current=t}catch{throw new Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function hE(...e){return t=>{e.forEach(n=>vL(n,t))}}function yL(){const e=()=>()=>{};return S.useSyncExternalStore(e,()=>!0,()=>!1)}var bL=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"]),xL=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"]),m1=/^(data-.*)$/,wL=/^(aria-.*)$/,lg=/^(on[A-Z].*)$/;function Ef(e,t={}){let{labelable:n=!0,enabled:r=!0,propNames:i,omitPropNames:s,omitEventNames:l,omitDataProps:c,omitEventProps:d}=t,h={};if(!r)return e;for(const m in e)s?.has(m)||l?.has(m)&&lg.test(m)||lg.test(m)&&!xL.has(m)||c&&m1.test(m)||d&&lg.test(m)||(Object.prototype.hasOwnProperty.call(e,m)&&(bL.has(m)||n&&wL.test(m)||i?.has(m)||m1.test(m))||lg.test(m))&&(h[m]=e[m]);return h}var[SL,li]=pv({name:"ProviderContext",strict:!1});const kL=new Set(["Arab","Syrc","Samr","Mand","Thaa","Mend","Nkoo","Adlm","Rohg","Hebr"]),CL=new Set(["ae","ar","arc","bcc","bqi","ckb","dv","fa","glk","he","ku","mzn","nqo","pnb","ps","sd","ug","ur","yi"]);function mE(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 kL.has(n.script)}let t=e.split("-")[0];return CL.has(t)}const gE={prefix:String(Math.round(Math.random()*1e10)),current:0},vE=We.createContext(gE),EL=We.createContext(!1);let Ky=new WeakMap;function PL(e=!1){let t=S.useContext(vE),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 l=Ky.get(s);l==null?Ky.set(s,{id:t.current,state:s.memoizedState}):s.memoizedState!==l.state&&(t.current=l.id,Ky.delete(s))}n.current=++t.current}return n.current}function TL(e){let t=S.useContext(vE),n=PL(!!e),r=`react-aria${t.prefix}`;return e||`${r}-${n}`}function _L(e){let t=We.useId(),[n]=S.useState(hh()),r=n?"react-aria":`react-aria${gE.prefix}`;return e||`${r}-${t}`}const IL=typeof We.useId=="function"?_L:TL;function $L(){return!1}function AL(){return!0}function RL(e){return()=>{}}function hh(){return typeof We.useSyncExternalStore=="function"?We.useSyncExternalStore(RL,$L,AL):S.useContext(EL)}const LL=Symbol.for("react-aria.i18n.locale");function yE(){let e=typeof window<"u"&&window[LL]||typeof navigator<"u"&&(navigator.language||navigator.userLanguage)||"en-US";try{Intl.DateTimeFormat.supportedLocalesOf([e])}catch{e="en-US"}return{locale:e,direction:mE(e)?"rtl":"ltr"}}let K0=yE(),Ip=new Set;function g1(){K0=yE();for(let e of Ip)e(K0)}function bE(){let e=hh(),[t,n]=S.useState(K0);return S.useEffect(()=>(Ip.size===0&&window.addEventListener("languagechange",g1),Ip.add(n),()=>{Ip.delete(n),Ip.size===0&&window.removeEventListener("languagechange",g1)}),[]),e?{locale:"en-US",direction:"ltr"}:t}const xE=We.createContext(null);function ML(e){let{locale:t,children:n}=e,r=bE(),i=We.useMemo(()=>t?{locale:t,direction:mE(t)?"rtl":"ltr"}:r,[r,t]);return We.createElement(xE.Provider,{value:i},n)}function mh(){let e=bE();return S.useContext(xE)||e}const DL=Symbol.for("react-aria.i18n.locale"),NL=Symbol.for("react-aria.i18n.strings");let of;class hv{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=FL(t,this.strings,this.defaultLocale),this.strings[t]=n),n}static getGlobalDictionaryForPackage(t){if(typeof window>"u")return null;let n=window[DL];if(of===void 0){let i=window[NL];if(!i)return null;of={};for(let s in i)of[s]=new hv({[n]:i[s]},n)}let r=of?.[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 FL(e,t,n="en-US"){if(t[e])return t[e];let r=OL(e);if(t[r])return t[r];for(let i in t)if(i.startsWith(r+"-"))return t[i];return t[n]}function OL(e){return Intl.Locale?new Intl.Locale(e).language:e.split("-")[0]}const v1=new Map,y1=new Map;class zL{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,l=v1.get(s);l||(l=new Intl.PluralRules(this.locale,{type:r}),v1.set(s,l));let c=l.select(t);return i=n[c]||n.other,typeof i=="function"?i():i}number(t){let n=y1.get(this.locale);return n||(n=new Intl.NumberFormat(this.locale),y1.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 b1=new WeakMap;function jL(e){let t=b1.get(e);return t||(t=new hv(e),b1.set(e,t)),t}function BL(e,t){return t&&hv.getGlobalDictionaryForPackage(t)||jL(e)}function VL(e,t){let{locale:n}=mh(),r=BL(e,t);return S.useMemo(()=>new zL(n,r),[n,r])}function UL(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function KL(e,t,n){UL(e,t),t.set(e,n)}const sn=typeof document<"u"?We.useLayoutEffect:()=>{};function jn(e){const t=S.useRef(null);return sn(()=>{t.current=e},[e]),S.useCallback((...n)=>{const r=t.current;return r?.(...n)},[])}function WL(e){let[t,n]=S.useState(e),r=S.useRef(null),i=jn(()=>{if(!r.current)return;let l=r.current.next();if(l.done){r.current=null;return}t===l.value?i():n(l.value)});sn(()=>{r.current&&i()});let s=jn(l=>{r.current=l(t),i()});return[t,s]}let HL=!!(typeof window<"u"&&window.document&&window.document.createElement),bf=new Map,$p;typeof FinalizationRegistry<"u"&&($p=new FinalizationRegistry(e=>{bf.delete(e)}));function Pf(e){let[t,n]=S.useState(e),r=S.useRef(null),i=IL(t),s=S.useRef(null);if($p&&$p.register(s,i),HL){const l=bf.get(i);l&&!l.includes(r)?l.push(r):bf.set(i,[r])}return sn(()=>{let l=i;return()=>{$p&&$p.unregister(s),bf.delete(l)}},[i]),S.useEffect(()=>{let l=r.current;return l&&n(l),()=>{l&&(r.current=null)}}),i}function GL(e,t){if(e===t)return e;let n=bf.get(e);if(n)return n.forEach(i=>i.current=t),t;let r=bf.get(t);return r?(r.forEach(i=>i.current=e),e):t}function W0(e=[]){let t=Pf(),[n,r]=WL(t),i=S.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return sn(i,[t,i,...e]),n}function Tf(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const Dt=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},eo=e=>e&&"window"in e&&e.window===e?e:Dt(e).defaultView||window;function qL(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&typeof e.nodeType=="number"}function YL(e){return qL(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}let XL=!1,QL=!1;function MG(){return XL}function mv(){return QL}function oi(e,t){if(!mv())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:YL(n)?n=n.host:n=n.parentNode}return!1}const zr=(e=document)=>{var t;if(!mv())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 En(e){return mv()&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}class JL{get currentNode(){return this._currentNode}set currentNode(t){if(!oi(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 l=r,c=this._doc.createTreeWalker(l,this.whatToShow,{acceptNode:this._acceptNode});n.push(c),c.currentNode=i,this._currentSetFor.add(c),r=i=l.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 oi(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 l=this.lastChild();return l&&(this.currentNode=l),l}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=l=>{if(l.nodeType===Node.ELEMENT_NODE){const d=l.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(l);if(!((c=this.filter)===null||c===void 0)&&c.acceptNode)return this.filter.acceptNode(l);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 l=this._doc.createTreeWalker(s,this.whatToShow,{acceptNode:this._acceptNode});this._walkerStack.unshift(l)}}}function ZL(e,t,n,r){return mv()?new JL(e,t,n,r):e.createTreeWalker(t,n,r)}function wE(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]=Tf(s,l):(i==="className"||i==="UNSAFE_className")&&typeof s=="string"&&typeof l=="string"?t[i]=eM(s,l):i==="id"&&s&&l?t.id=GL(s,l):t[i]=l!==void 0?l:s}}return t}const tM=new Set(["id"]),nM=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),rM=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),iM=/^(data-.*)$/;function Iu(e,t={}){let{labelable:n,isLink:r,propNames:i}=t,s={};for(const l in e)Object.prototype.hasOwnProperty.call(e,l)&&(tM.has(l)||n&&nM.has(l)||r&&rM.has(l)||i?.has(l)||iM.test(l))&&(s[l]=e[l]);return s}function Zl(e){if(oM())e.focus({preventScroll:!0});else{let t=sM(e);e.focus(),lM(t)}}let ag=null;function oM(){if(ag==null){ag=!1;try{document.createElement("div").focus({get preventScroll(){return ag=!0,!0}})}catch{}}return ag}function sM(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 lx(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 rl(e){let t=null;return()=>(t==null&&(t=e()),t)}const xu=rl(function(){return lx(/^Mac/i)}),aM=rl(function(){return lx(/^iPhone/i)}),SE=rl(function(){return lx(/^iPad/i)||xu()&&navigator.maxTouchPoints>1}),vv=rl(function(){return aM()||SE()}),uM=rl(function(){return xu()||vv()}),kE=rl(function(){return gv(/AppleWebKit/i)&&!CE()}),CE=rl(function(){return gv(/Chrome/i)}),ax=rl(function(){return gv(/Android/i)}),cM=rl(function(){return gv(/Firefox/i)}),EE=S.createContext({isNative:!0,open:pM,useHref:e=>e});function fM(e){let{children:t,navigate:n,useHref:r}=e,i=S.useMemo(()=>({isNative:!1,open:(s,l,c,d)=>{PE(s,h=>{dM(h,l)?n(c,d):wu(h,l)})},useHref:r||(s=>s)}),[n,r]);return We.createElement(EE.Provider,{value:i},t)}function ux(){return S.useContext(EE)}function dM(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 wu(e,t,n=!0){var r,i;let{metaKey:s,ctrlKey:l,altKey:c,shiftKey:d}=t;cM()&&(!((i=window.event)===null||i===void 0||(r=i.type)===null||r===void 0)&&r.startsWith("key"))&&e.target==="_blank"&&(xu()?s=!0:l=!0);let h=kE()&&xu()&&!SE()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:s,ctrlKey:l,altKey:c,shiftKey:d}):new MouseEvent("click",{metaKey:s,ctrlKey:l,altKey:c,shiftKey:d,bubbles:!0,cancelable:!0});wu.isOpening=n,Zl(e),e.dispatchEvent(h),wu.isOpening=!1}wu.isOpening=!1;function PE(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 pM(e,t){PE(e,n=>wu(n,t))}function DG(e){let t=ux();var n;const r=t.useHref((n=e.href)!==null&&n!==void 0?n:"");return{"data-href":e.href?r:void 0,"data-target":e.target,"data-rel":e.rel,"data-download":e.download,"data-ping":e.ping,"data-referrer-policy":e.referrerPolicy}}function NG(e){let t=ux();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 ql=new Map,H0=new Set;function x1(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let i=ql.get(r.target);i||(i=new Set,ql.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=ql.get(r.target);if(i&&(i.delete(r.propertyName),i.size===0&&(r.target.removeEventListener("transitioncancel",n),ql.delete(r.target)),ql.size===0)){for(let s of H0)s();H0.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?x1():document.addEventListener("DOMContentLoaded",x1));function hM(){for(const[e]of ql)"isConnected"in e&&!e.isConnected&&ql.delete(e)}function TE(e){requestAnimationFrame(()=>{hM(),ql.size===0?e():H0.add(e)})}function cx(){let e=S.useRef(new Map),t=S.useCallback((i,s,l,c)=>{let d=c?.once?(...h)=>{e.current.delete(l),l(...h)}:l;e.current.set(l,{type:s,eventTarget:i,fn:d,options:c}),i.addEventListener(s,d,c)},[]),n=S.useCallback((i,s,l,c)=>{var d;let h=((d=e.current.get(l))===null||d===void 0?void 0:d.fn)||l;i.removeEventListener(s,h,c),e.current.delete(l)},[]),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 _E(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=Pf(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 w1(e,t){const n=S.useRef(!0),r=S.useRef(null);sn(()=>(n.current=!0,()=>{n.current=!1}),[]),sn(()=>{n.current?n.current=!1:(!r.current||t.some((i,s)=>!Object.is(i,r[s])))&&e(),r.current=t},t)}function mM(){return typeof window.ResizeObserver<"u"}function S1(e){const{ref:t,box:n,onResize:r}=e;S.useEffect(()=>{let i=t?.current;if(i)if(mM()){const s=new window.ResizeObserver(l=>{l.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 IE(e,t){sn(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function Yp(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 $E(e,t){let n=e;for(Yp(n,t)&&(n=n.parentElement);n&&!Yp(n,t);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}function gM(e,t){const n=[];for(;e&&e!==document.documentElement;)Yp(e,t)&&n.push(e),e=e.parentElement;return n}function ug(e,t,n,r){let i=jn(n),s=n==null;S.useEffect(()=>{if(s||!e.current)return;let l=e.current;return l.addEventListener(t,i,r),()=>{l.removeEventListener(t,i,r)}},[e,t,r,s,i])}function AE(e,t){let n=k1(e,t,"left"),r=k1(e,t,"top"),i=t.offsetWidth,s=t.offsetHeight,l=e.scrollLeft,c=e.scrollTop,{borderTopWidth:d,borderLeftWidth:h,scrollPaddingTop:m,scrollPaddingRight:g,scrollPaddingBottom:b,scrollPaddingLeft:x}=getComputedStyle(e),k=l+parseInt(h,10),P=c+parseInt(d,10),_=k+e.clientWidth,T=P+e.clientHeight,$=parseInt(m,10)||0,L=parseInt(b,10)||0,z=parseInt(g,10)||0,K=parseInt(x,10)||0;n<=l+K?l=n-parseInt(h,10)-K:n+i>_-z&&(l+=n+i-_+z),r<=P+$?c=r-parseInt(d,10)-$:r+s>T-L&&(c+=r+s-T+L),e.scrollLeft=l,e.scrollTop=c}function k1(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 C1(e,t){if(e&&document.contains(e)){let l=document.scrollingElement||document.documentElement;if(window.getComputedStyle(l).overflow==="hidden"){let d=gM(e);for(let h of d)AE(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 RE(e){return e.mozInputSource===0&&e.isTrusted?!0:ax()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function vM(e){return!ax()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}function LE(e,t,n){let r=S.useRef(t),i=jn(()=>{n&&n(r.current)});S.useEffect(()=>{var s;let l=e==null||(s=e.current)===null||s===void 0?void 0:s.form;return l?.addEventListener("reset",i),()=>{l?.removeEventListener("reset",i)}},[e,i])}const yM="react-aria-clear-focus",bM="react-aria-focus";function mp(e){return xu()?e.metaKey:e.ctrlKey}var ME=cE();const DE=dv(ME),fx=["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"])'],xM=fx.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";fx.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const wM=fx.join(':not([hidden]):not([tabindex="-1"]),');function NE(e){return e.matches(xM)}function SM(e){return e.matches(wM)}function $u(e,t,n){let[r,i]=S.useState(e||t),s=S.useRef(e!==void 0),l=e!==void 0;S.useEffect(()=>{s.current,s.current=l},[l]);let c=l?e:r,d=S.useCallback((h,...m)=>{let g=(b,...x)=>{n&&(Object.is(c,b)||n(b,...x)),l||(c=b)};typeof h=="function"?i((x,...k)=>{let P=h(l?c:x,...k);return g(P,...m),l?x:P}):(l||i(h),g(h,...m))},[l,c,n]);return[c,d]}function Bg(e,t=-1/0,n=1/0){return Math.min(Math.max(e,t),n)}let Wy=new Map,G0=!1;try{G0=new Intl.NumberFormat("de-DE",{signDisplay:"exceptZero"}).resolvedOptions().signDisplay==="exceptZero"}catch{}let Vg=!1;try{Vg=new Intl.NumberFormat("de-DE",{style:"unit",unit:"degree"}).resolvedOptions().style==="unit"}catch{}const FE={degree:{narrow:{default:"°","ja-JP":" 度","zh-TW":"度","sl-SI":" °"}}};class kM{format(t){let n="";if(!G0&&this.options.signDisplay!=null?n=EM(this.numberFormatter,this.options.signDisplay,t):n=this.numberFormatter.format(t),this.options.style==="unit"&&!Vg){var r;let{unit:i,unitDisplay:s="short",locale:l}=this.resolvedOptions();if(!i)return n;let c=(r=FE[i])===null||r===void 0?void 0:r[s];n+=c[l]||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!G0&&this.options.signDisplay!=null&&(t={...t,signDisplay:this.options.signDisplay}),!Vg&&this.options.style==="unit"&&(t={...t,style:"unit",unit:this.options.unit,unitDisplay:this.options.unitDisplay}),t}constructor(t,n={}){this.numberFormatter=CM(t,n),this.options=n}}function CM(e,t={}){let{numberingSystem:n}=t;if(n&&e.includes("-nu-")&&(e.includes("-u-")||(e+="-u-"),e+=`-nu-${n}`),t.style==="unit"&&!Vg){var r;let{unit:l,unitDisplay:c="short"}=t;if(!l)throw new Error('unit option must be provided with style: "unit"');if(!(!((r=FE[l])===null||r===void 0)&&r[c]))throw new Error(`Unsupported unit ${l} with unitDisplay = ${c}`);t={...t,style:"decimal"}}let i=e+(t?Object.entries(t).sort((l,c)=>l[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),l=i.replace(s,"").replace(/\u200e|\u061C/,"");return[...l].length!==1&&console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"),i.replace(s,"!!!").replace(l,"+").replace("!!!",s)}else return e.format(n)}}function PM(e={}){let{locale:t}=mh();return S.useMemo(()=>new kM(t,e),[t,e])}let Hy=new Map;function TM(e){let{locale:t}=mh(),n=t+(e?Object.entries(e).sort((i,s)=>i[0]-1&&e.splice(n,1)}const Zs=(e,t,n)=>n>t?t:n{};const ds={},OE=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function zE(e){return typeof e=="object"&&e!==null}const jE=e=>/^0[^.\s]+$/u.test(e);function vx(e){let t;return()=>(t===void 0&&(t=e()),t)}const to=e=>e,_M=(e,t)=>n=>t(e(n)),vh=(...e)=>e.reduce(_M),Qp=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r};class yx{constructor(){this.subscriptions=[]}add(t){return hx(this.subscriptions,t),()=>mx(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,cs=e=>e/1e3;function BE(e,t){return t?e*(1e3/t):0}const VE=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,IM=1e-7,$M=12;function AM(e,t,n,r,i){let s,l,c=0;do l=t+(n-t)/2,s=VE(l,r,i)-e,s>0?n=l:t=l;while(Math.abs(s)>IM&&++c<$M);return l}function yh(e,t,n,r){if(e===t&&n===r)return to;const i=s=>AM(s,0,1,e,n);return s=>s===0||s===1?s:VE(i(s),t,r)}const UE=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,KE=e=>t=>1-e(1-t),WE=yh(.33,1.53,.69,.99),bx=KE(WE),HE=UE(bx),GE=e=>(e*=2)<1?.5*bx(e):.5*(2-Math.pow(2,-10*(e-1))),xx=e=>1-Math.sin(Math.acos(e)),qE=KE(xx),YE=UE(xx),RM=yh(.42,0,1,1),LM=yh(0,0,.58,1),XE=yh(.42,0,.58,1),MM=e=>Array.isArray(e)&&typeof e[0]!="number",QE=e=>Array.isArray(e)&&typeof e[0]=="number",DM={linear:to,easeIn:RM,easeInOut:XE,easeOut:LM,circIn:xx,circInOut:YE,circOut:qE,backIn:bx,backInOut:HE,backOut:WE,anticipate:GE},NM=e=>typeof e=="string",E1=e=>{if(QE(e)){gx(e.length===4);const[t,n,r,i]=e;return yh(t,n,r,i)}else if(NM(e))return DM[e];return e},cg=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function FM(e,t){let n=new Set,r=new Set,i=!1,s=!1;const l=new WeakSet;let c={delta:0,timestamp:0,isProcessing:!1};function d(m){l.has(m)&&(h.schedule(m),e()),m(c)}const h={schedule:(m,g=!1,b=!1)=>{const k=b&&i?n:r;return g&&l.add(m),k.has(m)||k.add(m),m},cancel:m=>{r.delete(m),l.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 OM=40;function JE(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,l=cg.reduce((L,z)=>(L[z]=FM(s),L),{}),{setup:c,read:d,resolveKeyframes:h,preUpdate:m,update:g,preRender:b,render:x,postRender:k}=l,P=()=>{const L=ds.useManualTiming?i.timestamp:performance.now();n=!1,ds.useManualTiming||(i.delta=r?1e3/60:Math.max(Math.min(L-i.timestamp,OM),1)),i.timestamp=L,i.isProcessing=!0,c.process(i),d.process(i),h.process(i),m.process(i),g.process(i),b.process(i),x.process(i),k.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(P))},_=()=>{n=!0,r=!0,i.isProcessing||e(P)};return{schedule:cg.reduce((L,z)=>{const K=l[z];return L[z]=(M,J=!1,re=!1)=>(n||_(),K.schedule(M,J,re)),L},{}),cancel:L=>{for(let z=0;z(Ig===void 0&&si.set(cr.isProcessing||ds.useManualTiming?cr.timestamp:performance.now()),Ig),set:e=>{Ig=e,queueMicrotask(zM)}},ZE=e=>t=>typeof t=="string"&&t.startsWith(e),wx=ZE("--"),jM=ZE("var(--"),Sx=e=>jM(e)?BM.test(e.split("/*")[0].trim()):!1,BM=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Ff={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Jp={...Ff,transform:e=>Zs(0,1,e)},fg={...Ff,default:1},Np=e=>Math.round(e*1e5)/1e5,kx=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function VM(e){return e==null}const UM=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Cx=(e,t)=>n=>!!(typeof n=="string"&&UM.test(n)&&n.startsWith(e)||t&&!VM(n)&&Object.prototype.hasOwnProperty.call(n,t)),eP=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,l,c]=r.match(kx);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(l),alpha:c!==void 0?parseFloat(c):1}},KM=e=>Zs(0,255,e),qy={...Ff,transform:e=>Math.round(KM(e))},pu={test:Cx("rgb","red"),parse:eP("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+qy.transform(e)+", "+qy.transform(t)+", "+qy.transform(n)+", "+Np(Jp.transform(r))+")"};function WM(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 q0={test:Cx("#"),parse:WM,transform:pu.transform},bh=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Gl=bh("deg"),fs=bh("%"),tt=bh("px"),HM=bh("vh"),GM=bh("vw"),P1={...fs,parse:e=>fs.parse(e)/100,transform:e=>fs.transform(e*100)},pf={test:Cx("hsl","hue"),parse:eP("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+fs.transform(Np(t))+", "+fs.transform(Np(n))+", "+Np(Jp.transform(r))+")"},Rn={test:e=>pu.test(e)||q0.test(e)||pf.test(e),parse:e=>pu.test(e)?pu.parse(e):pf.test(e)?pf.parse(e):q0.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?pu.transform(e):pf.transform(e),getAnimatableNone:e=>{const t=Rn.parse(e);return t.alpha=0,Rn.transform(t)}},qM=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YM(e){return isNaN(e)&&typeof e=="string"&&(e.match(kx)?.length||0)+(e.match(qM)?.length||0)>0}const tP="number",nP="color",XM="var",QM="var(",T1="${}",JM=/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 Zp(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const c=t.replace(JM,d=>(Rn.test(d)?(r.color.push(s),i.push(nP),n.push(Rn.parse(d))):d.startsWith(QM)?(r.var.push(s),i.push(XM),n.push(d)):(r.number.push(s),i.push(tP),n.push(parseFloat(d))),++s,T1)).split(T1);return{values:n,split:c,indexes:r,types:i}}function rP(e){return Zp(e).values}function iP(e){const{split:t,types:n}=Zp(e),r=t.length;return i=>{let s="";for(let l=0;ltypeof e=="number"?0:Rn.test(e)?Rn.getAnimatableNone(e):e;function eD(e){const t=rP(e);return iP(e)(t.map(ZM))}const ta={test:YM,parse:rP,createTransformer:iP,getAnimatableNone:eD};function Yy(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 tD({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,l=0;if(!t)i=s=l=n;else{const c=n<.5?n*(1+t):n+t-n*t,d=2*n-c;i=Yy(d,c,e+1/3),s=Yy(d,c,e),l=Yy(d,c,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(l*255),alpha:r}}function Ug(e,t){return n=>n>0?t:e}const dn=(e,t,n)=>e+(t-e)*n,Xy=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},nD=[q0,pu,pf],rD=e=>nD.find(t=>t.test(e));function _1(e){const t=rD(e);if(!t)return!1;let n=t.parse(e);return t===pf&&(n=tD(n)),n}const I1=(e,t)=>{const n=_1(e),r=_1(t);if(!n||!r)return Ug(e,t);const i={...n};return s=>(i.red=Xy(n.red,r.red,s),i.green=Xy(n.green,r.green,s),i.blue=Xy(n.blue,r.blue,s),i.alpha=dn(n.alpha,r.alpha,s),pu.transform(i))},Y0=new Set(["none","hidden"]);function iD(e,t){return Y0.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function oD(e,t){return n=>dn(e,t,n)}function Ex(e){return typeof e=="number"?oD:typeof e=="string"?Sx(e)?Ug:Rn.test(e)?I1:aD:Array.isArray(e)?oP:typeof e=="object"?Rn.test(e)?I1:sD:Ug}function oP(e,t){const n=[...e],r=n.length,i=e.map((s,l)=>Ex(s)(s,t[l]));return s=>{for(let l=0;l{for(const s in r)n[s]=r[s](i);return n}}function lD(e,t){const n=[],r={color:0,var:0,number:0};for(let i=0;i{const n=ta.createTransformer(t),r=Zp(e),i=Zp(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?Y0.has(e)&&!i.values.length||Y0.has(t)&&!r.values.length?iD(e,t):vh(oP(lD(r,i),i.values),n):Ug(e,t)};function sP(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?dn(e,t,n):Ex(e)(e,t)}const uD=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>nn.update(t,n),stop:()=>ea(t),now:()=>cr.isProcessing?cr.timestamp:si.now()}},lP=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s=Kg?1/0:t}function cD(e,t=100,n){const r=n({...e,keyframes:[0,t]}),i=Math.min(Px(r),Kg);return{type:"keyframes",ease:s=>r.next(i*s).value/t,duration:cs(i)}}const fD=5;function aP(e,t,n){const r=Math.max(t-fD,0);return BE(n-e(r),t-r)}const vn={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},Qy=.001;function dD({duration:e=vn.duration,bounce:t=vn.bounce,velocity:n=vn.velocity,mass:r=vn.mass}){let i,s,l=1-t;l=Zs(vn.minDamping,vn.maxDamping,l),e=Zs(vn.minDuration,vn.maxDuration,cs(e)),l<1?(i=h=>{const m=h*l,g=m*e,b=m-n,x=X0(h,l),k=Math.exp(-g);return Qy-b/x*k},s=h=>{const g=h*l*e,b=g*n+n,x=Math.pow(l,2)*Math.pow(h,2)*e,k=Math.exp(-g),P=X0(Math.pow(h,2),l);return(-i(h)+Qy>0?-1:1)*((b-x)*k)/P}):(i=h=>{const m=Math.exp(-h*e),g=(h-n)*e+1;return-Qy+m*g},s=h=>{const m=Math.exp(-h*e),g=(n-h)*(e*e);return m*g});const c=5/e,d=hD(i,s,c);if(e=us(e),isNaN(d))return{stiffness:vn.stiffness,damping:vn.damping,duration:e};{const h=Math.pow(d,2)*r;return{stiffness:h,damping:l*2*Math.sqrt(r*h),duration:e}}}const pD=12;function hD(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function vD(e){let t={velocity:vn.velocity,stiffness:vn.stiffness,damping:vn.damping,mass:vn.mass,isResolvedFromDuration:!1,...e};if(!$1(e,gD)&&$1(e,mD))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Zs(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:vn.mass,stiffness:i,damping:s}}else{const n=dD(e);t={...t,...n,mass:vn.mass},t.isResolvedFromDuration=!0}return t}function Wg(e=vn.visualDuration,t=vn.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],l=n.keyframes[n.keyframes.length-1],c={done:!1,value:s},{stiffness:d,damping:h,mass:m,duration:g,velocity:b,isResolvedFromDuration:x}=vD({...n,velocity:-cs(n.velocity||0)}),k=b||0,P=h/(2*Math.sqrt(d*m)),_=l-s,T=cs(Math.sqrt(d/m)),$=Math.abs(_)<5;r||(r=$?vn.restSpeed.granular:vn.restSpeed.default),i||(i=$?vn.restDelta.granular:vn.restDelta.default);let L;if(P<1){const K=X0(T,P);L=M=>{const J=Math.exp(-P*T*M);return l-J*((k+P*T*_)/K*Math.sin(K*M)+_*Math.cos(K*M))}}else if(P===1)L=K=>l-Math.exp(-T*K)*(_+(k+T*_)*K);else{const K=T*Math.sqrt(P*P-1);L=M=>{const J=Math.exp(-P*T*M),re=Math.min(K*M,300);return l-J*((k+P*T*_)*Math.sinh(re)+K*_*Math.cosh(re))/K}}const z={calculatedDuration:x&&g||null,next:K=>{const M=L(K);if(x)c.done=K>=g;else{let J=K===0?k:0;P<1&&(J=K===0?us(k):aP(L,K,M));const re=Math.abs(J)<=r,ae=Math.abs(l-M)<=i;c.done=re&&ae}return c.value=c.done?l:M,c},toString:()=>{const K=Math.min(Px(z),Kg),M=lP(J=>z.next(K*J).value,K,30);return K+"ms "+M},toTransition:()=>{}};return z}Wg.applyToOptions=e=>{const t=cD(e,100,Wg);return e.ease=t.ease,e.duration=us(t.duration),e.type="keyframes",e};function Q0({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:l,min:c,max:d,restDelta:h=.5,restSpeed:m}){const g=e[0],b={done:!1,value:g},x=re=>c!==void 0&&red,k=re=>c===void 0?d:d===void 0||Math.abs(c-re)-P*Math.exp(-re/r),L=re=>T+$(re),z=re=>{const ae=$(re),j=L(re);b.done=Math.abs(ae)<=h,b.value=b.done?T:j};let K,M;const J=re=>{x(b.value)&&(K=re,M=Wg({keyframes:[b.value,k(b.value)],velocity:aP(L,re,b.value),damping:i,stiffness:s,restDelta:h,restSpeed:m}))};return J(0),{calculatedDuration:null,next:re=>{let ae=!1;return!M&&K===void 0&&(ae=!0,z(re),J(re)),K!==void 0&&re>=K?M.next(re-K):(!ae&&z(re),b)}}}function yD(e,t,n){const r=[],i=n||ds.mix||sP,s=e.length-1;for(let l=0;lt[0];if(s===2&&t[0]===t[1])return()=>t[1];const l=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const c=yD(t,r,i),d=c.length,h=m=>{if(l&&m1)for(;gh(Zs(e[0],e[s-1],m)):h}function xD(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=Qp(0,t,r);e.push(dn(n,1,i))}}function wD(e){const t=[0];return xD(t,e.length-1),t}function SD(e,t){return e.map(n=>n*t)}function kD(e,t){return e.map(()=>t||XE).splice(0,e.length-1)}function Fp({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=MM(r)?r.map(E1):E1(r),s={done:!1,value:t[0]},l=SD(n&&n.length===t.length?n:wD(t),e),c=bD(l,t,{ease:Array.isArray(i)?i:kD(t,i)});return{calculatedDuration:e,next:d=>(s.value=c(d),s.done=d>=e,s)}}const CD=e=>e!==null;function Tx(e,{repeat:t,repeatType:n="loop"},r,i=1){const s=e.filter(CD),c=i<0||t&&n!=="loop"&&t%2===1?0:s.length-1;return!c||r===void 0?s[c]:r}const ED={decay:Q0,inertia:Q0,tween:Fp,keyframes:Fp,spring:Wg};function uP(e){typeof e.type=="string"&&(e.type=ED[e.type])}class _x{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 PD=e=>e/100;class Ix extends _x{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!==si.now()&&this.tick(si.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;uP(t);const{type:n=Fp,repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:l=0}=t;let{keyframes:c}=t;const d=n||Fp;d!==Fp&&typeof c[0]!="number"&&(this.mixKeyframes=vh(PD,sP(c[0],c[1])),c=[0,100]);const h=d({...t,keyframes:c});s==="mirror"&&(this.mirroredGenerator=d({...t,keyframes:[...c].reverse(),velocity:-l})),h.calculatedDuration===null&&(h.calculatedDuration=Px(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:l,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:k,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),$=this.playbackSpeed>=0?T<0:T>i;this.currentTime=Math.max(T,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let L=this.currentTime,z=r;if(g){const re=Math.min(this.currentTime,i)/c;let ae=Math.floor(re),j=re%1;!j&&re>=1&&(j=1),j===1&&ae--,ae=Math.min(ae,g+1),!!(ae%2)&&(b==="reverse"?(j=1-j,x&&(j-=x/c)):b==="mirror"&&(z=l)),L=Zs(0,1,j)*c}const K=$?{done:!1,value:m[0]}:z.next(L);s&&(K.value=s(K.value));let{done:M}=K;!$&&d!==null&&(M=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const J=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&M);return J&&k!==Q0&&(K.value=Tx(m,this.options,_,this.speed)),P&&P(K.value),J&&this.finish(),K}then(t,n){return this.finished.then(t,n)}get duration(){return cs(this.calculatedDuration)}get time(){return cs(this.currentTime)}set time(t){t=us(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(si.now());const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=cs(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=uD,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(si.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 TD(e){for(let t=1;te*180/Math.PI,J0=e=>{const t=hu(Math.atan2(e[1],e[0]));return Z0(t)},_D={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:J0,rotateZ:J0,skewX:e=>hu(Math.atan(e[1])),skewY:e=>hu(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Z0=e=>(e=e%360,e<0&&(e+=360),e),A1=J0,R1=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),L1=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),ID={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:R1,scaleY:L1,scale:e=>(R1(e)+L1(e))/2,rotateX:e=>Z0(hu(Math.atan2(e[6],e[5]))),rotateY:e=>Z0(hu(Math.atan2(-e[2],e[0]))),rotateZ:A1,rotate:A1,skewX:e=>hu(Math.atan(e[4])),skewY:e=>hu(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function eb(e){return e.includes("scale")?1:0}function tb(e,t){if(!e||e==="none")return eb(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,i;if(n)r=ID,i=n;else{const c=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=_D,i=c}if(!i)return eb(t);const s=r[t],l=i[1].split(",").map(AD);return typeof s=="function"?s(l):l[s]}const $D=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return tb(n,t)};function AD(e){return parseFloat(e.trim())}const Of=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Au=new Set(Of),M1=e=>e===Ff||e===tt,RD=new Set(["x","y","z"]),LD=Of.filter(e=>!RD.has(e));function MD(e){const t=[];return LD.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const vu={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})=>tb(t,"x"),y:(e,{transform:t})=>tb(t,"y")};vu.translateX=vu.x;vu.translateY=vu.y;const yu=new Set;let nb=!1,rb=!1,ib=!1;function cP(){if(rb){const e=Array.from(yu).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=MD(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,l])=>{r.getValue(s)?.set(l)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}rb=!1,nb=!1,yu.forEach(e=>e.complete(ib)),yu.clear()}function fP(){yu.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(rb=!0)})}function DD(){ib=!0,fP(),cP(),ib=!1}class $x{constructor(t,n,r,i,s,l=!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=l}scheduleResolve(){this.state="scheduled",this.isAsync?(yu.add(this),nb||(nb=!0,nn.read(fP),nn.resolveKeyframes(cP))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;if(t[0]===null){const s=i?.get(),l=t[t.length-1];if(s!==void 0)t[0]=s;else if(r&&n){const c=r.readValue(n,l);c!=null&&(t[0]=c)}t[0]===void 0&&(t[0]=l),i&&s===void 0&&i.set(t[0])}TD(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),yu.delete(this)}cancel(){this.state==="scheduled"&&(yu.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const ND=e=>e.startsWith("--");function FD(e,t,n){ND(t)?e.style.setProperty(t,n):e.style[t]=n}const OD=vx(()=>window.ScrollTimeline!==void 0),zD={};function jD(e,t){const n=vx(e);return()=>zD[t]??n()}const dP=jD(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Ap=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,D1={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Ap([0,.65,.55,1]),circOut:Ap([.55,0,1,.45]),backIn:Ap([.31,.01,.66,-.59]),backOut:Ap([.33,1.53,.69,.99])};function pP(e,t){if(e)return typeof e=="function"?dP()?lP(e,t):"ease-out":QE(e)?Ap(e):Array.isArray(e)?e.map(n=>pP(n,t)||D1.easeOut):D1[e]}function BD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:l="loop",ease:c="easeOut",times:d}={},h=void 0){const m={[t]:n};d&&(m.offset=d);const g=pP(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:l==="reverse"?"alternate":"normal"};return h&&(b.pseudoElement=h),e.animate(m,b)}function hP(e){return typeof e=="function"&&"applyToOptions"in e}function VD({type:e,...t}){return hP(e)&&dP()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class UD extends _x{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,!t)return;const{element:n,name:r,keyframes:i,pseudoElement:s,allowFlatten:l=!1,finalKeyframe:c,onComplete:d}=t;this.isPseudoElement=!!s,this.allowFlatten=l,this.options=t,gx(typeof t.type!="string");const h=VD(t);this.animation=BD(n,r,i,h,s),h.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!s){const m=Tx(i,this.options,c,this.speed);this.updateMotionValue?this.updateMotionValue(m):FD(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 cs(Number(t))}get time(){return cs(Number(this.animation.currentTime)||0)}set time(t){this.finishedTime=null,this.animation.currentTime=us(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&&OD()?(this.animation.timeline=t,to):n(this)}}const mP={anticipate:GE,backInOut:HE,circInOut:YE};function KD(e){return e in mP}function WD(e){typeof e.ease=="string"&&KD(e.ease)&&(e.ease=mP[e.ease])}const N1=10;class HD extends UD{constructor(t){WD(t),uP(t),super(t),t.startTime&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:r,onComplete:i,element:s,...l}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const c=new Ix({...l,autoplay:!1}),d=us(this.finishedTime??this.time);n.setWithVelocity(c.sample(d-N1).value,c.sample(d).value,N1),c.stop()}}const F1=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ta.test(e)||e==="0")&&!e.startsWith("url("));function GD(e){const t=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function QD(e){const{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:s,type:l}=e;if(!(t?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:d,transformTemplate:h}=t.owner.getProps();return XD()&&n&&YD.has(n)&&(n!=="transform"||!h)&&!d&&!r&&i!=="mirror"&&s!==0&&l!=="inertia"}const JD=40;class ZD extends _x{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:l="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=si.now();const b={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:l,name:d,motionValue:h,element:m,...g},x=m?.KeyframeResolver||$x;this.keyframeResolver=new x(c,(k,P,_)=>this.onKeyframesResolved(k,P,b,!_),d,h,m),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,n,r,i){this.keyframeResolver=void 0;const{name:s,type:l,velocity:c,delay:d,isHandoff:h,onUpdate:m}=r;this.resolvedAt=si.now(),qD(t,s,l,c)||((ds.instantAnimations||!d)&&m?.(Tx(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>JD?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...r,keyframes:t},x=!h&&QD(b)?new HD({...b,element:b.motionValue.owner.current}):new Ix(b);x.finished.then(()=>this.notifyFinished()).catch(to),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(),DD()),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 e3=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function t3(e){const t=e3.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function gP(e,t,n=1){const[r,i]=t3(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const l=s.trim();return OE(l)?parseFloat(l):l}return Sx(i)?gP(i,t,n+1):i}function Ax(e,t){return e?.[t]??e?.default??e}const vP=new Set(["width","height","top","left","right","bottom",...Of]),n3={test:e=>e==="auto",parse:e=>e},yP=e=>t=>t.test(e),bP=[Ff,tt,fs,Gl,GM,HM,n3],O1=e=>bP.find(yP(e));function r3(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||jE(e):!0}const i3=new Set(["brightness","contrast","saturate","opacity"]);function o3(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(kx)||[];if(!r)return e;const i=n.replace(r,"");let s=i3.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const s3=/\b([a-z-]*)\(.*?\)/gu,ob={...ta,getAnimatableNone:e=>{const t=e.match(s3);return t?t.map(o3).join(" "):e}},z1={...Ff,transform:Math.round},l3={rotate:Gl,rotateX:Gl,rotateY:Gl,rotateZ:Gl,scale:fg,scaleX:fg,scaleY:fg,scaleZ:fg,skew:Gl,skewX:Gl,skewY:Gl,distance:tt,translateX:tt,translateY:tt,translateZ:tt,x:tt,y:tt,z:tt,perspective:tt,transformPerspective:tt,opacity:Jp,originX:P1,originY:P1,originZ:tt},Rx={borderWidth:tt,borderTopWidth:tt,borderRightWidth:tt,borderBottomWidth:tt,borderLeftWidth:tt,borderRadius:tt,radius:tt,borderTopLeftRadius:tt,borderTopRightRadius:tt,borderBottomRightRadius:tt,borderBottomLeftRadius:tt,width:tt,maxWidth:tt,height:tt,maxHeight:tt,top:tt,right:tt,bottom:tt,left:tt,padding:tt,paddingTop:tt,paddingRight:tt,paddingBottom:tt,paddingLeft:tt,margin:tt,marginTop:tt,marginRight:tt,marginBottom:tt,marginLeft:tt,backgroundPositionX:tt,backgroundPositionY:tt,...l3,zIndex:z1,fillOpacity:Jp,strokeOpacity:Jp,numOctaves:z1},a3={...Rx,color:Rn,backgroundColor:Rn,outlineColor:Rn,fill:Rn,stroke:Rn,borderColor:Rn,borderTopColor:Rn,borderRightColor:Rn,borderBottomColor:Rn,borderLeftColor:Rn,filter:ob,WebkitFilter:ob},xP=e=>a3[e];function wP(e,t){let n=xP(e);return n!==ob&&(n=ta),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const u3=new Set(["auto","none","0"]);function c3(e,t,n){let r=0,i;for(;r{t.getValue(c).set(d)}),this.resolveNoneKeyframes()}}const d3=new Set(["opacity","clipPath","filter","transform"]);function p3(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 SP=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function kP(e){return zE(e)&&"offsetHeight"in e}const j1=30,h3=e=>!isNaN(parseFloat(e));class CP{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=si.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 l of this.dependents)l.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=si.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=h3(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 yx);const r=this.events[t].add(n);return t==="change"?()=>{r(),nn.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=si.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>j1)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,j1);return BE(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 _f(e,t){return new CP(e,t)}const{schedule:Lx}=JE(queueMicrotask,!1),Co={x:!1,y:!1};function EP(){return Co.x||Co.y}function m3(e){return e==="x"||e==="y"?Co[e]?null:(Co[e]=!0,()=>{Co[e]=!1}):Co.x||Co.y?null:(Co.x=Co.y=!0,()=>{Co.x=Co.y=!1})}function PP(e,t){const n=p3(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function B1(e){return!(e.pointerType==="touch"||EP())}function g3(e,t,n={}){const[r,i,s]=PP(e,n),l=c=>{if(!B1(c))return;const{target:d}=c,h=t(d,c);if(typeof h!="function"||!d)return;const m=g=>{B1(g)&&(h(g),d.removeEventListener("pointerleave",m))};d.addEventListener("pointerleave",m,i)};return r.forEach(c=>{c.addEventListener("pointerenter",l,i)}),s}const TP=(e,t)=>t?e===t?!0:TP(e,t.parentElement):!1,Mx=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,v3=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function y3(e){return v3.has(e.tagName)||e.tabIndex!==-1}const $g=new WeakSet;function V1(e){return t=>{t.key==="Enter"&&e(t)}}function Jy(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const b3=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=V1(()=>{if($g.has(n))return;Jy(n,"down");const i=V1(()=>{Jy(n,"up")}),s=()=>Jy(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 U1(e){return Mx(e)&&!EP()}function x3(e,t,n={}){const[r,i,s]=PP(e,n),l=c=>{const d=c.currentTarget;if(!U1(c))return;$g.add(d);const h=t(d,c),m=(x,k)=>{window.removeEventListener("pointerup",g),window.removeEventListener("pointercancel",b),$g.has(d)&&$g.delete(d),U1(x)&&typeof h=="function"&&h(x,{success:k})},g=x=>{m(x,d===window||d===document||n.useGlobalTarget||TP(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",l,i),kP(c)&&(c.addEventListener("focus",h=>b3(h,i)),!y3(c)&&!c.hasAttribute("tabindex")&&(c.tabIndex=0))}),s}function _P(e){return zE(e)&&"ownerSVGElement"in e}function w3(e){return _P(e)&&e.tagName==="svg"}const wr=e=>!!(e&&e.getVelocity),S3=[...bP,Rn,ta],k3=e=>S3.find(yP(e)),eh=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class C3 extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=n.offsetParent,i=kP(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 E3({children:e,isPresent:t,anchorX:n,root:r}){const i=S.useId(),s=S.useRef(null),l=S.useRef({width:0,height:0,top:0,left:0,right:0}),{nonce:c}=S.useContext(eh);return S.useInsertionEffect(()=>{const{width:d,height:h,top:m,left:g,right:b}=l.current;if(t||!s.current||!d||!h)return;const x=n==="left"?`left: ${g}`:`right: ${b}`;s.current.dataset.motionPopId=i;const k=document.createElement("style");c&&(k.nonce=c);const P=r??document.head;return P.appendChild(k),k.sheet&&k.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(k),P.contains(k)&&P.removeChild(k)}},[t]),D.jsx(C3,{isPresent:t,childRef:s,sizeRef:l,children:S.cloneElement(e,{ref:s})})}const P3=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:l,anchorX:c,root:d})=>{const h=gh(T3),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 k of h.values())if(!k)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,k)=>h.set(k,!1))},[n]),S.useEffect(()=>{!n&&!h.size&&r&&r()},[n]),l==="popLayout"&&(e=D.jsx(E3,{isPresent:n,anchorX:c,root:d,children:e})),D.jsx(yv.Provider,{value:b,children:e})};function T3(){return new Map}function IP(e=!0){const t=S.useContext(yv);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 l=S.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,l]:[!0]}const dg=e=>e.key||"";function K1(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const Ru=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:l=!1,anchorX:c="left",root:d})=>{const[h,m]=IP(l),g=S.useMemo(()=>K1(e),[e]),b=l&&!h?[]:g.map(dg),x=S.useRef(!0),k=S.useRef(g),P=gh(()=>new Map),[_,T]=S.useState(g),[$,L]=S.useState(g);px(()=>{x.current=!1,k.current=g;for(let M=0;M<$.length;M++){const J=dg($[M]);b.includes(J)?P.delete(J):P.get(J)!==!0&&P.set(J,!1)}},[$,b.length,b.join("-")]);const z=[];if(g!==_){let M=[...g];for(let J=0;J<$.length;J++){const re=$[J],ae=dg(re);b.includes(ae)||(M.splice(J,0,re),z.push(re))}return s==="wait"&&z.length&&(M=z),L(K1(M)),T(g),null}const{forceRender:K}=S.useContext(Xp);return D.jsx(D.Fragment,{children:$.map(M=>{const J=dg(M),re=l&&!h?!1:g===$||b.includes(J),ae=()=>{if(P.has(J))P.set(J,!0);else return;let j=!0;P.forEach(B=>{B||(j=!1)}),j&&(K?.(),L(k.current),l&&m?.(),r&&r())};return D.jsx(P3,{isPresent:re,initial:!x.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:s,root:d,onExitComplete:re?void 0:ae,anchorX:c,children:M},J)})})},_3=S.createContext(null);function I3(){const e=S.useRef(!1);return px(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function $3(){const e=I3(),[t,n]=S.useState(0),r=S.useCallback(()=>{e.current&&n(t+1)},[t]);return[S.useCallback(()=>nn.postRender(r),[r]),t]}const A3=e=>!e.isLayoutDirty&&e.willUpdate(!1);function W1(){const e=new Set,t=new WeakMap,n=()=>e.forEach(A3);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 $P=e=>e===!0,R3=e=>$P(e===!0)||e==="id",L3=({children:e,id:t,inherit:n=!0})=>{const r=S.useContext(Xp),i=S.useContext(_3),[s,l]=$3(),c=S.useRef(null),d=r.id||i;c.current===null&&(R3(n)&&d&&(t=t?d+"-"+t:d),c.current={id:t,group:$P(n)&&r.group||W1()});const h=S.useMemo(()=>({...c.current,forceRender:s}),[l]);return D.jsx(Xp.Provider,{value:h,children:e})},Dx=S.createContext({strict:!1}),H1={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"]},If={};for(const e in H1)If[e]={isEnabled:t=>H1[e].some(n=>!!t[n])};function sb(e){for(const t in e)If[t]={...If[t],...e[t]}}function $f({children:e,features:t,strict:n=!1}){const[,r]=S.useState(!Zy(t)),i=S.useRef(void 0);if(!Zy(t)){const{renderer:s,...l}=t;i.current=s,sb(l)}return S.useEffect(()=>{Zy(t)&&t().then(({renderer:s,...l})=>{sb(l),i.current=s,r(!0)})},[]),D.jsx(Dx.Provider,{value:{renderer:i.current,strict:n},children:e})}function Zy(e){return typeof e=="function"}const M3=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 Hg(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||M3.has(e)}let AP=e=>!Hg(e);function RP(e){typeof e=="function"&&(AP=t=>t.startsWith("on")?!Hg(t):e(t))}try{RP(require("@emotion/is-prop-valid").default)}catch{}function D3(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(AP(i)||n===!0&&Hg(i)||!t&&!Hg(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function N3({children:e,isValidProp:t,...n}){t&&RP(t),n={...S.useContext(eh),...n},n.isStatic=gh(()=>n.isStatic);const r=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return D.jsx(eh.Provider,{value:r,children:e})}const bv=S.createContext({});function xv(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function th(e){return typeof e=="string"||Array.isArray(e)}const Nx=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Fx=["initial",...Nx];function wv(e){return xv(e.animate)||Fx.some(t=>th(e[t]))}function LP(e){return!!(wv(e)||e.variants)}function F3(e,t){if(wv(e)){const{initial:n,animate:r}=e;return{initial:n===!1||th(n)?n:void 0,animate:th(r)?r:void 0}}return e.inherit!==!1?t:{}}function O3(e){const{initial:t,animate:n}=F3(e,S.useContext(bv));return S.useMemo(()=>({initial:t,animate:n}),[G1(t),G1(n)])}function G1(e){return Array.isArray(e)?e.join(" "):e}const nh={};function z3(e){for(const t in e)nh[t]=e[t],wx(t)&&(nh[t].isCSSVariable=!0)}function MP(e,{layout:t,layoutId:n}){return Au.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!nh[e]||e==="opacity")}const j3={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},B3=Of.length;function V3(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}});function DP(e,t,n){for(const r in t)!wr(t[r])&&!MP(r,n)&&(e[r]=t[r])}function U3({transformTemplate:e},t){return S.useMemo(()=>{const n=zx();return Ox(n,t,e),Object.assign({},n.vars,n.style)},[t])}function K3(e,t){const n=e.style||{},r={};return DP(r,n,e),Object.assign(r,U3(e,t)),r}function W3(e,t){const n={},r=K3(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 H3={offset:"stroke-dashoffset",array:"stroke-dasharray"},G3={offset:"strokeDashoffset",array:"strokeDasharray"};function q3(e,t,n=1,r=0,i=!0){e.pathLength=1;const s=i?H3:G3;e[s.offset]=tt.transform(-r);const l=tt.transform(t),c=tt.transform(n);e[s.array]=`${l} ${c}`}function NP(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:s=1,pathOffset:l=0,...c},d,h,m){if(Ox(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&&q3(g,i,s,l,!1)}const FP=()=>({...zx(),attrs:{}}),OP=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Y3(e,t,n,r){const i=S.useMemo(()=>{const s=FP();return NP(s,t,OP(r),e.transformTemplate,e.style),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};DP(s,e.style,e),i.style={...s,...i.style}}return i}const X3=["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 jx(e){return typeof e!="string"||e.includes("-")?!1:!!(X3.indexOf(e)>-1||/[A-Z]/u.test(e))}function Q3(e,t,n,{latestValues:r},i,s=!1){const c=(jx(e)?Y3:W3)(t,r,i,e),d=D3(t,typeof e=="string",s),h=e!==S.Fragment?{...d,...c,ref:n}:{},{children:m}=t,g=S.useMemo(()=>wr(m)?m.get():m,[m]);return S.createElement(e,{...h,children:g})}function q1(e){const t=[{},{}];return e?.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function Bx(e,t,n,r){if(typeof t=="function"){const[i,s]=q1(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]=q1(r);t=t(n!==void 0?n:e.custom,i,s)}return t}function Ag(e){return wr(e)?e.get():e}function J3({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:Z3(n,r,i,e),renderState:t()}}function Z3(e,t,n,r){const i={},s=r(e,{});for(const b in s)i[b]=Ag(s[b]);let{initial:l,animate:c}=e;const d=wv(e),h=LP(e);t&&h&&!d&&e.inherit!==!1&&(l===void 0&&(l=t.initial),c===void 0&&(c=t.animate));let m=n?n.initial===!1:!1;m=m||l===!1;const g=m?c:l;if(g&&typeof g!="boolean"&&!xv(g)){const b=Array.isArray(g)?g:[g];for(let x=0;x(t,n)=>{const r=S.useContext(bv),i=S.useContext(yv),s=()=>J3(e,t,r,i);return n?s():gh(s)};function Vx(e,t,n){const{style:r}=e,i={};for(const s in r)(wr(r[s])||t.style&&wr(t.style[s])||MP(s,e)||n?.getValue(s)?.liveStyle!==void 0)&&(i[s]=r[s]);return i}const e4=zP({scrapeMotionValuesFromProps:Vx,createRenderState:zx});function jP(e,t,n){const r=Vx(e,t,n);for(const i in e)if(wr(e[i])||wr(t[i])){const s=Of.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}const t4=zP({scrapeMotionValuesFromProps:jP,createRenderState:FP}),n4=Symbol.for("motionComponentSymbol");function hf(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function r4(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):hf(n)&&(n.current=r))},[t])}const Ux=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),i4="framerAppearId",BP="data-"+Ux(i4),VP=S.createContext({});function o4(e,t,n,r,i){const{visualElement:s}=S.useContext(bv),l=S.useContext(Dx),c=S.useContext(yv),d=S.useContext(eh).reducedMotion,h=S.useRef(null);r=r||l.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(VP);m&&!m.projection&&i&&(m.type==="html"||m.type==="svg")&&s4(h.current,n,i,g);const b=S.useRef(!1);S.useInsertionEffect(()=>{m&&b.current&&m.update(n,c)});const x=n[BP],k=S.useRef(!!x&&!window.MotionHandoffIsComplete?.(x)&&window.MotionHasOptimisedAnimation?.(x));return px(()=>{m&&(b.current=!0,window.MotionIsMounted=!0,m.updateFeatures(),m.scheduleRenderMicrotask(),k.current&&m.animationState&&m.animationState.animateChanges())}),S.useEffect(()=>{m&&(!k.current&&m.animationState&&m.animationState.animateChanges(),k.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(x)}),k.current=!1))}),m}function s4(e,t,n,r){const{layoutId:i,layout:s,drag:l,dragConstraints:c,layoutScroll:d,layoutRoot:h,layoutCrossfade:m}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:UP(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!l||c&&hf(c),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,crossfade:m,layoutScroll:d,layoutRoot:h})}function UP(e){if(e)return e.options.allowProjection!==!1?e.projection:UP(e.parent)}function e0(e,{forwardMotionProps:t=!1}={},n,r){n&&sb(n);const i=jx(e)?t4:e4;function s(c,d){let h;const m={...S.useContext(eh),...c,layoutId:l4(c)},{isStatic:g}=m,b=O3(c),x=i(c,g);if(!g&&dx){a4();const k=u4(m);h=k.MeasureLayout,b.visualElement=o4(e,x,m,r,k.ProjectionNode)}return D.jsxs(bv.Provider,{value:b,children:[h&&b.visualElement?D.jsx(h,{visualElement:b.visualElement,...m}):null,Q3(e,c,r4(x,b.visualElement,d),x,g,t)]})}s.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const l=S.forwardRef(s);return l[n4]=e,l}function l4({layoutId:e}){const t=S.useContext(Xp).id;return t&&e!==void 0?t+"-"+e:e}function a4(e,t){S.useContext(Dx).strict}function u4(e){const{drag:t,layout:n}=If;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function KP(e,t){if(typeof Proxy>"u")return e0;const n=new Map,r=(s,l)=>e0(s,l,e,t),i=(s,l)=>r(s,l);return new Proxy(i,{get:(s,l)=>l==="create"?r:(n.has(l)||n.set(l,e0(l,void 0,e,t)),n.get(l))})}const Af=KP();function WP({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function c4({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function f4(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 t0(e){return e===void 0||e===1}function lb({scale:e,scaleX:t,scaleY:n}){return!t0(e)||!t0(t)||!t0(n)}function fu(e){return lb(e)||HP(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function HP(e){return Y1(e.x)||Y1(e.y)}function Y1(e){return e&&e!=="0%"}function Gg(e,t,n){const r=e-n,i=t*r;return n+i}function X1(e,t,n,r,i){return i!==void 0&&(e=Gg(e,i,r)),Gg(e,n,r)+t}function ab(e,t=0,n=1,r,i){e.min=X1(e.min,t,n,r,i),e.max=X1(e.max,t,n,r,i)}function GP(e,{x:t,y:n}){ab(e.x,t.translate,t.scale,t.originPoint),ab(e.y,n.translate,n.scale,n.originPoint)}const Q1=.999999999999,J1=1.0000000000001;function d4(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,l;for(let c=0;cQ1&&(t.x=1),t.yQ1&&(t.y=1)}function mf(e,t){e.min=e.min+t,e.max=e.max+t}function Z1(e,t,n,r,i=.5){const s=dn(e.min,e.max,i);ab(e,t,n,s,r)}function gf(e,t){Z1(e.x,t.x,t.scaleX,t.scale,t.originX),Z1(e.y,t.y,t.scaleY,t.scale,t.originY)}function qP(e,t){return WP(f4(e.getBoundingClientRect(),t))}function p4(e,t,n){const r=qP(e,n),{scroll:i}=t;return i&&(mf(r.x,i.offset.x),mf(r.y,i.offset.y)),r}const eS=()=>({translate:0,scale:1,origin:0,originPoint:0}),vf=()=>({x:eS(),y:eS()}),tS=()=>({min:0,max:0}),Cn=()=>({x:tS(),y:tS()}),ub={current:null},YP={current:!1};function h4(){if(YP.current=!0,!!dx)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ub.current=e.matches;e.addEventListener("change",t),t()}else ub.current=!1}const m4=new WeakMap;function g4(e,t,n){for(const r in t){const i=t[r],s=n[r];if(wr(i))e.addValue(r,i);else if(wr(s))e.addValue(r,_f(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const l=e.getValue(r);l.liveStyle===!0?l.jump(i):l.hasAnimated||l.set(i)}else{const l=e.getStaticValue(r);e.addValue(r,_f(l!==void 0?l:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const nS=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class v4{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:l},c={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=$x,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=si.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),YP.current||h4(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:ub.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),ea(this.notifyUpdate),ea(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=Au.has(t);r&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",c=>{this.latestValues[t]=c,this.props.onUpdate&&nn.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let l;window.MotionCheckAppearSync&&(l=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),l&&l(),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 If){const n=If[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):Cn()}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=_f(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"&&(OE(r)||jE(r))?r=parseFloat(r):!k3(r)&&ta.test(n)&&(r=wP(t,n)),this.setBaseTarget(t,wr(r)?r.get():r)),wr(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=Bx(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&&!wr(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 yx),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){Lx.render(this.render)}}class XP extends v4{constructor(){super(...arguments),this.KeyframeResolver=f3}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;wr(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function QP(e,{style:t,vars:n},r,i){const s=e.style;let l;for(l in t)s[l]=t[l];i?.applyProjectionStyles(s,r);for(l in n)s.setProperty(l,n[l])}function y4(e){return window.getComputedStyle(e)}class b4 extends XP{constructor(){super(...arguments),this.type="html",this.renderInstance=QP}readValueFromInstance(t,n){if(Au.has(n))return this.projection?.isProjecting?eb(n):$D(t,n);{const r=y4(t),i=(wx(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return qP(t,n)}build(t,n,r){Ox(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Vx(t,n,r)}}const JP=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 x4(e,t,n,r){QP(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(JP.has(i)?i:Ux(i),t.attrs[i])}class w4 extends XP{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Cn}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Au.has(n)){const r=xP(n);return r&&r.default||0}return n=JP.has(n)?n:Ux(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return jP(t,n,r)}build(t,n,r){NP(t,n,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(t,n,r,i){x4(t,n,r,i)}mount(t){this.isSVGTag=OP(t.tagName),super.mount(t)}}const S4=(e,t)=>jx(e)?new w4(t):new b4(t,{allowProjection:e!==S.Fragment});function rh(e,t,n){const r=e.getProps();return Bx(r,t,n!==void 0?n:r.custom,e)}const cb=e=>Array.isArray(e);function k4(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,_f(n))}function C4(e){return cb(e)?e[e.length-1]||0:e}function E4(e,t){const n=rh(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const l in s){const c=C4(s[l]);k4(e,l,c)}}function P4(e){return!!(wr(e)&&e.add)}function fb(e,t){const n=e.getValue("willChange");if(P4(n))return n.add(t);if(!n&&ds.WillChange){const r=new ds.WillChange("auto");e.addValue("willChange",r),r.add(t)}}function ZP(e){return e.props[BP]}const T4=e=>e!==null;function _4(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(T4),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return i[s]}const I4={type:"spring",stiffness:500,damping:25,restSpeed:10},$4=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),A4={type:"keyframes",duration:.8},R4={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},L4=(e,{keyframes:t})=>t.length>2?A4:Au.has(e)?e.startsWith("scale")?$4(t[1]):I4:R4;function M4({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:l,repeatDelay:c,from:d,elapsed:h,...m}){return!!Object.keys(m).length}const Kx=(e,t,n,r={},i,s)=>l=>{const c=Ax(r,e)||{},d=c.delay||r.delay||0;let{elapsed:h=0}=r;h=h-us(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:()=>{l(),c.onComplete&&c.onComplete()},name:e,motionValue:t,element:s?void 0:i};M4(c)||Object.assign(m,L4(e,m)),m.duration&&(m.duration=us(m.duration)),m.repeatDelay&&(m.repeatDelay=us(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)),(ds.instantAnimations||ds.skipAnimations)&&(g=!0,m.duration=0,m.delay=0),m.allowFlatten=!c.type&&!c.ease,g&&!s&&t.get()!==void 0){const b=_4(m.keyframes,c);if(b!==void 0){nn.update(()=>{m.onUpdate(b),m.onComplete()});return}}return c.isSync?new Ix(m):new ZD(m)};function D4({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function eT(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:s=e.getDefaultTransition(),transitionEnd:l,...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&&D4(h,m))continue;const x={delay:n,...Ax(s||{},m)},k=g.get();if(k!==void 0&&!g.isAnimating&&!Array.isArray(b)&&b===k&&!x.velocity)continue;let P=!1;if(window.MotionHandoffAnimation){const T=ZP(e);if(T){const $=window.MotionHandoffAnimation(T,m,nn);$!==null&&(x.startTime=$,P=!0)}}fb(e,m),g.start(Kx(m,g,b,e.shouldReduceMotion&&vP.has(m)?{type:!1}:x,e,P));const _=g.animation;_&&d.push(_)}return l&&Promise.all(d).then(()=>{nn.update(()=>{l&&E4(e,l)})}),d}function db(e,t,n={}){const r=rh(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(eT(e,r,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(d=0)=>{const{delayChildren:h=0,staggerChildren:m,staggerDirection:g}=i;return N4(e,t,d,h,m,g,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[d,h]=c==="beforeChildren"?[s,l]:[l,s];return d().then(()=>h())}else return Promise.all([s(),l(n.delay)])}function N4(e,t,n=0,r=0,i=0,s=1,l){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(F4).forEach((b,x)=>{b.notify("AnimationStart",t),c.push(db(b,t,{...l,delay:n+(m?0:r)+g(x)}).then(()=>b.notify("AnimationComplete",t)))}),Promise.all(c)}function F4(e,t){return e.sortNodePosition(t)}function O4(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>db(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=db(e,t,n);else{const i=typeof t=="function"?rh(e,t,n.custom):t;r=Promise.all(eT(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}function tT(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})=>O4(e,n,r)))}function U4(e){let t=V4(e),n=rS(),r=!0;const i=d=>(h,m)=>{const g=rh(e,m,d==="exit"?e.presenceContext?.custom:void 0);if(g){const{transition:b,transitionEnd:x,...k}=g;h={...h,...k,...x}}return h};function s(d){t=d(e)}function l(d){const{props:h}=e,m=nT(e.parent)||{},g=[],b=new Set;let x={},k=1/0;for(let _=0;_k&&z,ae=!1;const j=Array.isArray(L)?L:[L];let B=j.reduce(i(T),{});K===!1&&(B={});const{prevResolvedValues:Y={}}=$,te={...Y,...B},G=q=>{re=!0,b.has(q)&&(ae=!0,b.delete(q)),$.needsAnimating[q]=!0;const V=e.getValue(q);V&&(V.liveStyle=!1)};for(const q in te){const V=B[q],se=Y[q];if(x.hasOwnProperty(q))continue;let R=!1;cb(V)&&cb(se)?R=!tT(V,se):R=V!==se,R?V!=null?G(q):b.add(q):V!==void 0&&b.has(q)?G(q):$.protectedKeys[q]=!0}$.prevProp=L,$.prevResolvedValues=B,$.isActive&&(x={...x,...B}),r&&e.blockInitialAnimation&&(re=!1),re&&(!(M&&J)||ae)&&g.push(...j.map(q=>({animation:q,options:{type:T}})))}if(b.size){const _={};if(typeof h.initial!="boolean"){const T=rh(e,Array.isArray(h.initial)?h.initial[0]:h.initial);T&&T.transition&&(_.transition=T.transition)}b.forEach(T=>{const $=e.getBaseTarget(T),L=e.getValue(T);L&&(L.liveStyle=!0),_[T]=$??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=l(d);for(const g in n)n[g].protectedKeys={};return m}return{animateChanges:l,setActive:c,setAnimateFunction:s,getState:()=>n,reset:()=>{n=rS(),r=!0}}}function K4(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!tT(t,e):!1}function iu(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function rS(){return{animate:iu(!0),whileInView:iu(),whileHover:iu(),whileTap:iu(),whileDrag:iu(),whileFocus:iu(),exit:iu()}}class na{constructor(t){this.isMounted=!1,this.node=t}update(){}}class W4 extends na{constructor(t){super(t),t.animationState||(t.animationState=U4(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();xv(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 H4=0;class G4 extends na{constructor(){super(...arguments),this.id=H4++}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 q4={animation:{Feature:W4},exit:{Feature:G4}};function ih(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function xh(e){return{point:{x:e.pageX,y:e.pageY}}}const Y4=e=>t=>Mx(t)&&e(t,xh(t));function Op(e,t,n,r){return ih(e,t,Y4(n),r)}const rT=1e-4,X4=1-rT,Q4=1+rT,iT=.01,J4=0-iT,Z4=0+iT;function Or(e){return e.max-e.min}function eN(e,t,n){return Math.abs(e-t)<=n}function iS(e,t,n,r=.5){e.origin=r,e.originPoint=dn(t.min,t.max,e.origin),e.scale=Or(n)/Or(t),e.translate=dn(n.min,n.max,e.origin)-e.originPoint,(e.scale>=X4&&e.scale<=Q4||isNaN(e.scale))&&(e.scale=1),(e.translate>=J4&&e.translate<=Z4||isNaN(e.translate))&&(e.translate=0)}function zp(e,t,n,r){iS(e.x,t.x,n.x,r?r.originX:void 0),iS(e.y,t.y,n.y,r?r.originY:void 0)}function oS(e,t,n){e.min=n.min+t.min,e.max=e.min+Or(t)}function tN(e,t,n){oS(e.x,t.x,n.x),oS(e.y,t.y,n.y)}function sS(e,t,n){e.min=t.min-n.min,e.max=e.min+Or(t)}function jp(e,t,n){sS(e.x,t.x,n.x),sS(e.y,t.y,n.y)}function Xi(e){return[e("x"),e("y")]}const oT=({current:e})=>e?e.ownerDocument.defaultView:null,lS=(e,t)=>Math.abs(e-t);function nN(e,t){const n=lS(e.x,t.x),r=lS(e.y,t.y);return Math.sqrt(n**2+r**2)}class sT{constructor(t,n,{transformPagePoint:r,contextWindow:i=window,dragSnapToOrigin:s=!1,distanceThreshold:l=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=r0(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,k=nN(b.offset,{x:0,y:0})>=this.distanceThreshold;if(!x&&!k)return;const{point:P}=b,{timestamp:_}=cr;this.history.push({...P,timestamp:_});const{onStart:T,onMove:$}=this.handlers;x||(T&&T(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),$&&$(this.lastMoveEvent,b)},this.handlePointerMove=(b,x)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=n0(x,this.transformPagePoint),nn.update(this.updatePoint,!0)},this.handlePointerUp=(b,x)=>{this.end();const{onEnd:k,onSessionEnd:P,resumeAnimation:_}=this.handlers;if(this.dragSnapToOrigin&&_&&_(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const T=r0(b.type==="pointercancel"?this.lastMoveEventInfo:n0(x,this.transformPagePoint),this.history);this.startEvent&&k&&k(b,T),P&&P(b,T)},!Mx(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=l,this.contextWindow=i||window;const c=xh(t),d=n0(c,this.transformPagePoint),{point:h}=d,{timestamp:m}=cr;this.history=[{...h,timestamp:m}];const{onSessionStart:g}=n;g&&g(t,r0(d,this.history)),this.removeListeners=vh(Op(this.contextWindow,"pointermove",this.handlePointerMove),Op(this.contextWindow,"pointerup",this.handlePointerUp),Op(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ea(this.updatePoint)}}function n0(e,t){return t?{point:t(e.point)}:e}function aS(e,t){return{x:e.x-t.x,y:e.y-t.y}}function r0({point:e},t){return{point:e,delta:aS(e,lT(t)),offset:aS(e,rN(t)),velocity:iN(t,.1)}}function rN(e){return e[0]}function lT(e){return e[e.length-1]}function iN(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=lT(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>us(t)));)n--;if(!r)return{x:0,y:0};const s=cs(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const l={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}function oN(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?dn(n,e,r.max):Math.min(e,n)),e}function uS(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 sN(e,{top:t,left:n,bottom:r,right:i}){return{x:uS(e.x,n,i),y:uS(e.y,t,r)}}function cS(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)),Zs(0,1,n)}function uN(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 pb=.35;function cN(e=pb){return e===!1?e=0:e===!0&&(e=pb),{x:fS(e,"left","right"),y:fS(e,"top","bottom")}}function fS(e,t,n){return{min:dS(e,t),max:dS(e,n)}}function dS(e,t){return typeof e=="number"?e:e[t]||0}const fN=new WeakMap;class dN{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=Cn(),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(xh(g).point)},l=(g,b)=>{const{drag:x,dragPropagation:k,onDragStart:P}=this.getProps();if(x&&!k&&(this.openDragLock&&this.openDragLock(),this.openDragLock=m3(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),Xi(T=>{let $=this.getAxisMotionValue(T).get()||0;if(fs.test($)){const{projection:L}=this.visualElement;if(L&&L.layout){const z=L.layout.layoutBox[T];z&&($=Or(z)*(parseFloat($)/100))}}this.originPoint[T]=$}),P&&nn.postRender(()=>P(g,b)),fb(this.visualElement,"transform");const{animationState:_}=this.visualElement;_&&_.setActive("whileDrag",!0)},c=(g,b)=>{this.latestPointerEvent=g,this.latestPanInfo=b;const{dragPropagation:x,dragDirectionLock:k,onDirectionLock:P,onDrag:_}=this.getProps();if(!x&&!this.openDragLock)return;const{offset:T}=b;if(k&&this.currentDirection===null){this.currentDirection=pN(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=()=>Xi(g=>this.getAnimationState(g)==="paused"&&this.getAxisMotionValue(g).animation?.play()),{dragSnapToOrigin:m}=this.getProps();this.panSession=new sT(t,{onSessionStart:s,onStart:l,onMove:c,onSessionEnd:d,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:m,distanceThreshold:r,contextWindow:oT(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:l}=i;this.startAnimation(l);const{onDragEnd:c}=this.getProps();c&&nn.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||!pg(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let l=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(l=oN(l,this.constraints[t],this.elastic[t])),s.set(l)}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&&hf(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=sN(r.layoutBox,t):this.constraints=!1,this.elastic=cN(n),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Xi(s=>{this.constraints!==!1&&this.getAxisMotionValue(s)&&(this.constraints[s]=uN(r.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!hf(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=p4(r,i.root,this.visualElement.getTransformPagePoint());let l=lN(i.layout.layoutBox,s);if(n){const c=n(c4(l));this.hasMutatedConstraints=!!c,c&&(l=WP(c))}return l}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:l,onDragTransitionEnd:c}=this.getProps(),d=this.constraints||{},h=Xi(m=>{if(!pg(m,n,this.currentDirection))return;let g=d&&d[m]||{};l&&(g={min:0,max:0});const b=i?200:1e6,x=i?40:1e7,k={type:"inertia",velocity:r?t[m]:0,bounceStiffness:b,bounceDamping:x,timeConstant:750,restDelta:1,restSpeed:10,...s,...g};return this.startAxisValueAnimation(m,k)});return Promise.all(h).then(c)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return fb(this.visualElement,t),r.start(Kx(t,r,0,n,this.visualElement,!1))}stopAnimation(){Xi(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){Xi(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){Xi(n=>{const{drag:r}=this.getProps();if(!pg(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:l,max:c}=i.layout.layoutBox[n];s.set(t[n]-dn(l,c,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!hf(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Xi(l=>{const c=this.getAxisMotionValue(l);if(c&&this.constraints!==!1){const d=c.get();i[l]=aN({min:d,max:d},this.constraints[l])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),Xi(l=>{if(!pg(l,t,null))return;const c=this.getAxisMotionValue(l),{min:d,max:h}=this.constraints[l];c.set(dn(d,h,i[l]))})}addListeners(){if(!this.visualElement.current)return;fN.set(this.visualElement,this);const t=this.visualElement.current,n=Op(t,"pointerdown",d=>{const{drag:h,dragListener:m=!0}=this.getProps();h&&m&&this.start(d)}),r=()=>{const{dragConstraints:d}=this.getProps();hf(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()),nn.read(r);const l=ih(window,"resize",()=>this.scalePositionWithinConstraints()),c=i.addEventListener("didUpdate",({delta:d,hasLayoutChanged:h})=>{this.isDragging&&h&&(Xi(m=>{const g=this.getAxisMotionValue(m);g&&(this.originPoint[m]+=d[m].translate,g.set(g.get()+d[m].translate))}),this.visualElement.render())});return()=>{l(),n(),s(),c&&c()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:l=pb,dragMomentum:c=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:l,dragMomentum:c}}}function pg(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function pN(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class hN extends na{constructor(t){super(t),this.removeGroupControls=to,this.removeListeners=to,this.controls=new dN(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||to}unmount(){this.removeGroupControls(),this.removeListeners()}}const pS=e=>(t,n)=>{e&&nn.postRender(()=>e(t,n))};class mN extends na{constructor(){super(...arguments),this.removePointerDownListener=to}onPointerDown(t){this.session=new sT(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:oT(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:pS(t),onStart:pS(n),onMove:r,onEnd:(s,l)=>{delete this.session,i&&nn.postRender(()=>i(s,l))}}}mount(){this.removePointerDownListener=Op(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 Rg={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function hS(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const gp={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(tt.test(e))e=parseFloat(e);else return e;const n=hS(e,t.target.x),r=hS(e,t.target.y);return`${n}% ${r}%`}},gN={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=ta.parse(e);if(i.length>5)return r;const s=ta.createTransformer(e),l=typeof i[0]!="number"?1:0,c=n.x.scale*t.x,d=n.y.scale*t.y;i[0+l]/=c,i[1+l]/=d;const h=dn(c,d,.5);return typeof i[2+l]=="number"&&(i[2+l]/=h),typeof i[3+l]=="number"&&(i[3+l]/=h),s(i)}};let mS=!1;class vN extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;z3(yN),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),mS&&s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),Rg.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,{projection:l}=r;return l&&(l.isPresent=s,mS=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==s?l.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?l.promote():l.relegate()||nn.postRender(()=>{const c=l.getStack();(!c||!c.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),Lx.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 aT(e){const[t,n]=IP(),r=S.useContext(Xp);return D.jsx(vN,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(VP),isPresent:t,safeToRemove:n})}const yN={borderRadius:{...gp,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:gp,borderTopRightRadius:gp,borderBottomLeftRadius:gp,borderBottomRightRadius:gp,boxShadow:gN};function bN(e,t,n){const r=wr(e)?e:_f(e);return r.start(Kx("",r,t,n)),r.animation}const xN=(e,t)=>e.depth-t.depth;class wN{constructor(){this.children=[],this.isDirty=!1}add(t){hx(this.children,t),this.isDirty=!0}remove(t){mx(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(xN),this.isDirty=!1,this.children.forEach(t)}}function SN(e,t){const n=si.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(ea(r),e(s-t))};return nn.setup(r,!0),()=>ea(r)}const uT=["TopLeft","TopRight","BottomLeft","BottomRight"],kN=uT.length,gS=e=>typeof e=="string"?parseFloat(e):e,vS=e=>typeof e=="number"||tt.test(e);function CN(e,t,n,r,i,s){i?(e.opacity=dn(0,n.opacity??1,EN(r)),e.opacityExit=dn(t.opacity??1,0,PN(r))):s&&(e.opacity=dn(t.opacity??1,n.opacity??1,r));for(let l=0;lrt?1:n(Qp(e,t,r))}function bS(e,t){e.min=t.min,e.max=t.max}function qi(e,t){bS(e.x,t.x),bS(e.y,t.y)}function xS(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function wS(e,t,n,r,i){return e-=t,e=Gg(e,1/n,r),i!==void 0&&(e=Gg(e,1/i,r)),e}function TN(e,t=0,n=1,r=.5,i,s=e,l=e){if(fs.test(t)&&(t=parseFloat(t),t=dn(l.min,l.max,t/100)-l.min),typeof t!="number")return;let c=dn(s.min,s.max,r);e===s&&(c-=t),e.min=wS(e.min,t,n,c,i),e.max=wS(e.max,t,n,c,i)}function SS(e,t,[n,r,i],s,l){TN(e,t[n],t[r],t[i],t.scale,s,l)}const _N=["x","scaleX","originX"],IN=["y","scaleY","originY"];function kS(e,t,n,r){SS(e.x,t,_N,n?n.x:void 0,r?r.x:void 0),SS(e.y,t,IN,n?n.y:void 0,r?r.y:void 0)}function CS(e){return e.translate===0&&e.scale===1}function fT(e){return CS(e.x)&&CS(e.y)}function ES(e,t){return e.min===t.min&&e.max===t.max}function $N(e,t){return ES(e.x,t.x)&&ES(e.y,t.y)}function PS(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function dT(e,t){return PS(e.x,t.x)&&PS(e.y,t.y)}function TS(e){return Or(e.x)/Or(e.y)}function _S(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class AN{constructor(){this.members=[]}add(t){hx(this.members,t),t.scheduleRender()}remove(t){if(mx(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 RN(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,l=n?.z||0;if((i||s||l)&&(r=`translate3d(${i}px, ${s}px, ${l}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:k}=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) `),k&&(r+=`skewY(${k}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 i0=["","X","Y","Z"],LN=1e3;let MN=0;function o0(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function pT(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ZP(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",nn,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&pT(r)}function hT({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(l={},c=t?.()){this.id=MN++,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(FN),this.nodes.forEach(BN),this.nodes.forEach(VN),this.nodes.forEach(ON)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=l,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;nn.read(()=>{g=window.innerWidth}),e(l,()=>{const x=window.innerWidth;x!==g&&(g=x,this.root.updateBlockedByResize=!0,m&&m(),m=SN(b,250),Rg.hasAnimatedSinceResize&&(Rg.hasAnimatedSinceResize=!1,this.nodes.forEach(AS)))})}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 k=this.options.transition||h.getDefaultTransition()||GN,{onLayoutAnimationStart:P,onLayoutAnimationComplete:_}=h.getProps(),T=!this.targetLayout||!dT(this.targetLayout,x),$=!g&&b;if(this.options.layoutRoot||this.resumeFrom||$||g&&(T||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const L={...Ax(k,"layout"),onPlay:P,onComplete:_};(h.shouldReduceMotion||this.options.layoutRoot)&&(L.delay=0,L.type=!1),this.startAnimation(L),this.setAnimationOrigin(m,$)}else g||AS(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=x})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const l=this.getStack();l&&l.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),ea(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(UN),this.animationId++)}getTransformTemplate(){const{visualElement:l}=this.options;return l&&l.getProps().transformTemplate}willUpdate(l=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&pT(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&&!Or(this.snapshot.measuredBox.x)&&!Or(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 K=z/1e3;RS(g.x,l.x,K),RS(g.y,l.y,K),this.setTargetDelta(g),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(jp(b,this.layout.layoutBox,this.relativeParent.layout.layoutBox),WN(this.relativeTarget,this.relativeTargetOrigin,b,K),L&&$N(this.relativeTarget,L)&&(this.isProjectionDirty=!1),L||(L=Cn()),qi(L,this.relativeTarget)),P&&(this.animationValues=m,CN(m,h,this.latestValues,K,$,T)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=K},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(l){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(ea(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=nn.update(()=>{Rg.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=_f(0)),this.currentAnimation=bN(this.motionValue,[0,1e3],{...l,velocity:0,isSync:!0,onUpdate:c=>{this.mixTargetDelta(c),l.onUpdate&&l.onUpdate(c)},onStop:()=>{},onComplete:()=>{l.onComplete&&l.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 l=this.getStack();l&&l.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(LN),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const l=this.getLead();let{targetWithTransforms:c,target:d,layout:h,latestValues:m}=l;if(!(!c||!d||!h)){if(this!==l&&this.layout&&h&&mT(this.options.animationType,this.layout.layoutBox,h.layoutBox)){d=this.target||Cn();const g=Or(this.layout.layoutBox.x);d.x.min=l.target.x.min,d.x.max=d.x.min+g;const b=Or(this.layout.layoutBox.y);d.y.min=l.target.y.min,d.y.max=d.y.min+b}qi(c,d),gf(c,m),zp(this.projectionDeltaWithTransform,this.layoutCorrected,c,m)}}registerSharedNode(l,c){this.sharedNodes.has(l)||this.sharedNodes.set(l,new AN),this.sharedNodes.get(l).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 l=this.getStack();return l?l.lead===this:!0}getLead(){const{layoutId:l}=this.options;return l?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:l}=this.options;return l?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:l}=this.options;if(l)return this.root.sharedNodes.get(l)}promote({needsReset:l,transition:c,preserveFollowOpacity:d}={}){const h=this.getStack();h&&h.promote(this,d),l&&(this.projectionDelta=void 0,this.needsReset=!0),c&&this.setOptions({transition:c})}relegate(){const l=this.getStack();return l?l.relegate(this):!1}resetSkewAndRotation(){const{visualElement:l}=this.options;if(!l)return;let c=!1;const{latestValues:d}=l;if((d.z||d.rotate||d.rotateX||d.rotateY||d.rotateZ||d.skewX||d.skewY)&&(c=!0),!c)return;const h={};d.z&&o0("z",l,h,this.animationValues);for(let m=0;ml.currentAnimation?.stop()),this.root.nodes.forEach(IS),this.root.sharedNodes.clear()}}}function DN(e){e.updateLayout()}function NN(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"?Xi(m=>{const g=s?t.measuredBox[m]:t.layoutBox[m],b=Or(g);g.min=n[m].min,g.max=g.min+b}):mT(i,t.layoutBox,n)&&Xi(m=>{const g=s?t.measuredBox[m]:t.layoutBox[m],b=Or(n[m]);g.max=g.min+b,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[m].max=e.relativeTarget[m].min+b)});const l=vf();zp(l,n,t.layoutBox);const c=vf();s?zp(c,e.applyTransform(r,!0),t.measuredBox):zp(c,n,t.layoutBox);const d=!fT(l);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=Cn();jp(x,t.layoutBox,g.layoutBox);const k=Cn();jp(k,n,b.layoutBox),dT(x,k)||(h=!0),m.options.layoutRoot&&(e.relativeTarget=k,e.relativeTargetOrigin=x,e.relativeParent=m)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:t,delta:c,layoutDelta:l,hasLayoutChanged:d,hasRelativeLayoutChanged:h})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function FN(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 ON(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function zN(e){e.clearSnapshot()}function IS(e){e.clearMeasurements()}function $S(e){e.isLayoutDirty=!1}function jN(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function AS(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function BN(e){e.resolveTargetDelta()}function VN(e){e.calcProjection()}function UN(e){e.resetSkewAndRotation()}function KN(e){e.removeLeadSnapshot()}function RS(e,t,n){e.translate=dn(t.translate,0,n),e.scale=dn(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function LS(e,t,n,r){e.min=dn(t.min,n.min,r),e.max=dn(t.max,n.max,r)}function WN(e,t,n,r){LS(e.x,t.x,n.x,r),LS(e.y,t.y,n.y,r)}function HN(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const GN={duration:.45,ease:[.4,0,.1,1]},MS=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),DS=MS("applewebkit/")&&!MS("chrome/")?Math.round:to;function NS(e){e.min=DS(e.min),e.max=DS(e.max)}function qN(e){NS(e.x),NS(e.y)}function mT(e,t,n){return e==="position"||e==="preserve-aspect"&&!eN(TS(t),TS(n),.2)}function YN(e){return e!==e.root&&e.scroll?.wasRoot}const XN=hT({attachResizeListener:(e,t)=>ih(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),s0={current:void 0},gT=hT({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!s0.current){const e=new XN({});e.mount(window),e.setOptions({layoutScroll:!0}),s0.current=e}return s0.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),QN={pan:{Feature:mN},drag:{Feature:hN,ProjectionNode:gT,MeasureLayout:aT}};function FS(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&&nn.postRender(()=>s(t,xh(t)))}class JN extends na{mount(){const{current:t}=this.node;t&&(this.unmount=g3(t,(n,r)=>(FS(this.node,r,"Start"),i=>FS(this.node,i,"End"))))}unmount(){}}class ZN extends na{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=vh(ih(this.node.current,"focus",()=>this.onFocus()),ih(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function OS(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&&nn.postRender(()=>s(t,xh(t)))}class e5 extends na{mount(){const{current:t}=this.node;t&&(this.unmount=x3(t,(n,r)=>(OS(this.node,r,"Start"),(i,{success:s})=>OS(this.node,i,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const hb=new WeakMap,l0=new WeakMap,t5=e=>{const t=hb.get(e.target);t&&t(e)},n5=e=>{e.forEach(t5)};function r5({root:e,...t}){const n=e||document;l0.has(n)||l0.set(n,{});const r=l0.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(n5,{root:e,...t})),r[i]}function i5(e,t,n){const r=r5(t);return hb.set(e,n),r.observe(e),()=>{hb.delete(e),r.unobserve(e)}}const o5={some:0,all:1};class s5 extends na{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,l={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:o5[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 i5(this.node.current,l,c)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(l5(t,n))&&this.startObserver()}unmount(){}}function l5({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const a5={inView:{Feature:s5},tap:{Feature:e5},focus:{Feature:ZN},hover:{Feature:JN}},u5={layout:{ProjectionNode:gT,MeasureLayout:aT}},c5={...q4,...a5,...QN,...u5},bu=KP(c5,S4);class f5 extends CP{constructor(){super(...arguments),this.isEnabled=!1}add(t){(Au.has(t)||d3.has(t))&&(this.isEnabled=!0,this.update())}update(){this.set(this.isEnabled?"transform":"auto")}}function d5(){return gh(()=>new f5("auto"))}const as={top:"top",bottom:"top",left:"left",right:"left"},qg={top:"bottom",bottom:"top",left:"right",right:"left"},p5={top:"left",left:"top"},mb={top:"height",left:"width"},vT={width:"totalWidth",height:"totalHeight"},hg={};let Qn=typeof document<"u"?window.visualViewport:null;function zS(e){let t=0,n=0,r=0,i=0,s=0,l=0,c={};var d;let h=((d=Qn?.scale)!==null&&d!==void 0?d:1)>1;if(e.tagName==="BODY"){let k=document.documentElement;r=k.clientWidth,i=k.clientHeight;var m;t=(m=Qn?.width)!==null&&m!==void 0?m:r;var g;n=(g=Qn?.height)!==null&&g!==void 0?g:i,c.top=k.scrollTop||e.scrollTop,c.left=k.scrollLeft||e.scrollLeft,Qn&&(s=Qn.offsetTop,l=Qn.offsetLeft)}else({width:t,height:n,top:s,left:l}=xf(e)),c.top=e.scrollTop,c.left=e.scrollLeft,r=t,i=n;if(kE()&&(e.tagName==="BODY"||e.tagName==="HTML")&&h){c.top=0,c.left=0;var b;s=(b=Qn?.pageTop)!==null&&b!==void 0?b:0;var x;l=(x=Qn?.pageLeft)!==null&&x!==void 0?x:0}return{width:t,height:n,totalWidth:r,totalHeight:i,scroll:c,top:s,left:l}}function h5(e){return{top:e.scrollTop,left:e.scrollLeft,width:e.scrollWidth,height:e.scrollHeight}}function jS(e,t,n,r,i,s,l){var c;let d=(c=i.scroll[e])!==null&&c!==void 0?c:0,h=r[mb[e]],m=r.scroll[as[e]]+s,g=h+r.scroll[as[e]]-s,b=t-d+l[e]-r[as[e]],x=t-d+n+l[e]-r[as[e]];return bg?Math.max(g-x,m-b):0}function m5(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 BS(e){if(hg[e])return hg[e];let[t,n]=e.split(" "),r=as[t]||"right",i=p5[r];as[n]||(n="center");let s=mb[r],l=mb[i];return hg[e]={placement:t,crossPlacement:n,axis:r,crossAxis:i,size:s,crossSize:l},hg[e]}function a0(e,t,n,r,i,s,l,c,d,h){let{placement:m,crossPlacement:g,axis:b,crossAxis:x,size:k,crossSize:P}=r,_={};var T;_[x]=(T=e[x])!==null&&T!==void 0?T:0;var $,L,z,K;g==="center"?_[x]+=((($=e[P])!==null&&$!==void 0?$:0)-((L=n[P])!==null&&L!==void 0?L:0))/2:g!==x&&(_[x]+=((z=e[P])!==null&&z!==void 0?z:0)-((K=n[P])!==null&&K!==void 0?K:0)),_[x]+=s;const M=e[x]-n[P]+d+h,J=e[x]+e[P]-d-h;if(_[x]=Bg(_[x],M,J),m===b){const re=c?l[k]:t[vT[k]];_[qg[b]]=Math.floor(re-e[b]+i)}else _[b]=Math.floor(e[b]+e[k]+i);return _}function g5(e,t,n,r,i,s,l,c){const d=r?n.height:t[vT.height];var h;let m=e.top!=null?n.top+e.top:n.top+(d-((h=e.bottom)!==null&&h!==void 0?h:0)-l);var g,b,x,k,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+l-(t.top+((k=t.scroll.top)!==null&&k!==void 0?k: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 VS(e,t,n,r,i,s){let{placement:l,axis:c,size:d}=s;var h,m;if(l===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[qg[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[qg[c]]-i)}function v5(e,t,n,r,i,s,l,c,d,h,m,g,b,x,k,P){let _=BS(e),{size:T,crossAxis:$,crossSize:L,placement:z,crossPlacement:K}=_,M=a0(t,c,n,_,m,g,h,b,k,P),J=m,re=VS(c,h,t,i,s+m,_);if(l&&r[T]>re){let me=BS(`${qg[z]} ${K}`),Ce=a0(t,c,n,me,m,g,h,b,k,P);VS(c,h,t,i,s+m,me)>re&&(_=me,M=Ce,J=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 j=jS($,M[$],n[L],c,d,s,h);M[$]+=j;let B=g5(M,c,h,b,i,s,n.height,ae);x&&x{if(!n||r===null)return;let i=s=>{let l=s.target;if(!t.current||l instanceof Node&&!l.contains(t.current)||s.target instanceof HTMLInputElement||s.target instanceof HTMLTextAreaElement)return;let c=r||x5.get(t.current);c&&c()};return window.addEventListener("scroll",i,!0),()=>{window.removeEventListener("scroll",i,!0)}},[n,r,t])}let kn=typeof document<"u"?window.visualViewport:null;function S5(e){let{direction:t}=mh(),{arrowSize:n=0,targetRef:r,overlayRef:i,scrollRef:s=i,placement:l="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:k,maxHeight:P,arrowBoundaryOffset:_=0}=e,[T,$]=S.useState(null),L=[b,l,i.current,r.current,s.current,c,d,h,m,g,x,t,P,_,n],z=S.useRef(kn?.scale);S.useEffect(()=>{x&&(z.current=kn?.scale)},[x]);let K=S.useCallback(()=>{if(b===!1||!x||!i.current||!r.current||!h||kn?.scale!==z.current)return;let j=null;if(s.current&&s.current.contains(document.activeElement)){var B;let V=(B=document.activeElement)===null||B===void 0?void 0:B.getBoundingClientRect(),se=s.current.getBoundingClientRect();var Y;if(j={type:"top",offset:((Y=V?.top)!==null&&Y!==void 0?Y:0)-se.top},j.offset>se.height/2){j.type="bottom";var te;j.offset=((te=V?.bottom)!==null&&te!==void 0?te:0)-se.bottom}}let G=i.current;if(!P&&i.current){var ce;G.style.top="0px",G.style.bottom="";var Z;G.style.maxHeight=((Z=(ce=window.visualViewport)===null||ce===void 0?void 0:ce.height)!==null&&Z!==void 0?Z:window.innerHeight)+"px"}let q=y5({placement:C5(l,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(V=>G.style[V]=q.position[V]+"px"),G.style.maxHeight=q.maxHeight!=null?q.maxHeight+"px":"",j&&document.activeElement&&s.current){let V=document.activeElement.getBoundingClientRect(),se=s.current.getBoundingClientRect(),R=V[j.type]-se[j.type];s.current.scrollTop+=R-j.offset}$(q)}},L);sn(K,L),k5(K),S1({ref:i,onResize:K}),S1({ref:r,onResize:K});let M=S.useRef(!1);sn(()=>{let j,B=()=>{M.current=!0,clearTimeout(j),j=setTimeout(()=>{M.current=!1},500),K()},Y=()=>{M.current&&B()};return kn?.addEventListener("resize",B),kn?.addEventListener("scroll",Y),()=>{kn?.removeEventListener("resize",B),kn?.removeEventListener("scroll",Y)}},[K]);let J=S.useCallback(()=>{M.current||k?.()},[k,M]);w5({triggerRef:r,isOpen:x,onClose:k&&J});var re,ae;return{overlayProps:{style:{position:"absolute",zIndex:1e5,...T?.position,maxHeight:(re=T?.maxHeight)!==null&&re!==void 0?re:"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:K}}function k5(e){sn(()=>(window.addEventListener("resize",e,!1),()=>{window.removeEventListener("resize",e,!1)}),[e])}function C5(e,t){return t==="rtl"?e.replace("start","right").replace("end","left"):e.replace("start","left").replace("end","right")}function E5(e){const t=eo(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:l,visibility:c}=s(e);i=l!=="none"&&c!=="hidden"&&c!=="collapse"}return i}function P5(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 yT(e,t){return e.nodeName!=="#comment"&&E5(e)&&P5(e,t)&&(!e.parentElement||yT(e.parentElement,e))}function Wx(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function bT(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function xT(e){let t=S.useRef({isFocused:!1,observer:null});sn(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=jn(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=l=>{if(t.current.isFocused=!1,i.disabled){let c=Wx(l);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 l;(l=t.current.observer)===null||l===void 0||l.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 Yg=!1;function T5(e){for(;e&&!NE(e);)e=e.parentElement;let t=eo(e),n=t.document.activeElement;if(!n||n===e)return;Yg=!0;let r=!1,i=m=>{(m.target===n||r)&&m.stopImmediatePropagation()},s=m=>{(m.target===n||r)&&(m.stopImmediatePropagation(),!e&&!r&&(r=!0,Zl(n),d()))},l=m=>{(m.target===e||r)&&m.stopImmediatePropagation()},c=m=>{(m.target===e||r)&&(m.stopImmediatePropagation(),r||(r=!0,Zl(n),d()))};t.addEventListener("blur",i,!0),t.addEventListener("focusout",s,!0),t.addEventListener("focusin",c,!0),t.addEventListener("focus",l,!0);let d=()=>{cancelAnimationFrame(h),t.removeEventListener("blur",i,!0),t.removeEventListener("focusout",s,!0),t.removeEventListener("focusin",c,!0),t.removeEventListener("focus",l,!0),Yg=!1,r=!1},h=requestAnimationFrame(d);return d}let yf="default",gb="",Lg=new WeakMap;function _5(e){if(vv()){if(yf==="default"){const t=Dt(e);gb=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}yf="disabled"}else if(e instanceof HTMLElement||e instanceof SVGElement){let t="userSelect"in e.style?"userSelect":"webkitUserSelect";Lg.set(e,e.style[t]),e.style[t]="none"}}function WS(e){if(vv()){if(yf!=="disabled")return;yf="restoring",setTimeout(()=>{TE(()=>{if(yf==="restoring"){const t=Dt(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=gb||""),gb="",yf="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&Lg.has(e)){let t=Lg.get(e),n="userSelect"in e.style?"userSelect":"webkitUserSelect";e.style[n]==="none"&&(e.style[n]=t),e.getAttribute("style")===""&&e.removeAttribute("style"),Lg.delete(e)}}const Hx=We.createContext({register:()=>{}});Hx.displayName="PressResponderContext";function I5(e,t){return t.get?t.get.call(e):t.value}function wT(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}function $5(e,t){var n=wT(e,t,"get");return I5(e,n)}function A5(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 HS(e,t,n){var r=wT(e,t,"set");return A5(e,r,n),n}function R5(e){let t=S.useContext(Hx);if(t){let{register:n,...r}=t;e=Pn(r,e),n()}return IE(t,e.ref),e}var mg=new WeakMap;class gg{continuePropagation(){HS(this,mg,!1)}get shouldStopPropagation(){return $5(this,mg)}constructor(t,n,r,i){KL(this,mg,{writable:!0,value:void 0}),HS(this,mg,!0);var s;let l=(s=i?.target)!==null&&s!==void 0?s:r.currentTarget;const c=l?.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 GS=Symbol("linkClicked"),qS="react-aria-pressable-style",YS="data-react-aria-pressable";function Su(e){let{onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:s,onClick:l,isDisabled:c,isPressed:d,preventFocusOnPress:h,shouldCancelOnPointerExit:m,allowTextSelectionOnPress:g,ref:b,...x}=R5(e),[k,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:$}=cx(),L=jn((B,Y)=>{let te=_.current;if(c||te.didFirePressStart)return!1;let G=!0;if(te.isTriggeringEvent=!0,r){let ce=new gg("pressstart",Y,B);r(ce),G=ce.shouldStopPropagation}return n&&n(!0),te.isTriggeringEvent=!1,te.didFirePressStart=!0,P(!0),G}),z=jn((B,Y,te=!0)=>{let G=_.current;if(!G.didFirePressStart)return!1;G.didFirePressStart=!1,G.isTriggeringEvent=!0;let ce=!0;if(i){let Z=new gg("pressend",Y,B);i(Z),ce=Z.shouldStopPropagation}if(n&&n(!1),P(!1),t&&te&&!c){let Z=new gg("press",Y,B);t(Z),ce&&(ce=Z.shouldStopPropagation)}return G.isTriggeringEvent=!1,ce}),K=jn((B,Y)=>{let te=_.current;if(c)return!1;if(s){te.isTriggeringEvent=!0;let G=new gg("pressup",Y,B);return s(G),te.isTriggeringEvent=!1,G.shouldStopPropagation}return!0}),M=jn(B=>{let Y=_.current;if(Y.isPressed&&Y.target){Y.didFirePressStart&&Y.pointerType!=null&&z(ou(Y.target,B),Y.pointerType,!1),Y.isPressed=!1,Y.isOverTarget=!1,Y.activePointerId=null,Y.pointerType=null,$(),g||WS(Y.target);for(let te of Y.disposables)te();Y.disposables=[]}}),J=jn(B=>{m&&M(B)}),re=jn(B=>{l?.(B)}),ae=jn((B,Y)=>{if(l){let te=new MouseEvent("click",B);bT(te,Y),l(Wx(te))}}),j=S.useMemo(()=>{let B=_.current,Y={onKeyDown(G){if(u0(G.nativeEvent,G.currentTarget)&&oi(G.currentTarget,En(G.nativeEvent))){var ce;XS(En(G.nativeEvent),G.key)&&G.preventDefault();let Z=!0;if(!B.isPressed&&!G.repeat){B.target=G.currentTarget,B.isPressed=!0,B.pointerType="keyboard",Z=L(G,"keyboard");let q=G.currentTarget,V=se=>{u0(se,q)&&!se.repeat&&oi(q,En(se))&&B.target&&K(ou(B.target,se),"keyboard")};T(Dt(G.currentTarget),"keyup",Tf(V,te),!0)}Z&&G.stopPropagation(),G.metaKey&&xu()&&((ce=B.metaKeyEvents)===null||ce===void 0||ce.set(G.key,G.nativeEvent))}else G.key==="Meta"&&(B.metaKeyEvents=new Map)},onClick(G){if(!(G&&!oi(G.currentTarget,En(G.nativeEvent)))&&G&&G.button===0&&!B.isTriggeringEvent&&!wu.isOpening){let ce=!0;if(c&&G.preventDefault(),!B.ignoreEmulatedMouseEvents&&!B.isPressed&&(B.pointerType==="virtual"||RE(G.nativeEvent))){let Z=L(G,"virtual"),q=K(G,"virtual"),V=z(G,"virtual");re(G),ce=Z&&q&&V}else if(B.isPressed&&B.pointerType!=="keyboard"){let Z=B.pointerType||G.nativeEvent.pointerType||"virtual",q=K(ou(G.currentTarget,G),Z),V=z(ou(G.currentTarget,G),Z,!0);ce=q&&V,B.isOverTarget=!1,re(G),M(G)}B.ignoreEmulatedMouseEvents=!1,ce&&G.stopPropagation()}}},te=G=>{var ce;if(B.isPressed&&B.target&&u0(G,B.target)){var Z;XS(En(G),G.key)&&G.preventDefault();let V=En(G),se=oi(B.target,En(G));z(ou(B.target,G),"keyboard",se),se&&ae(G,B.target),$(),G.key!=="Enter"&&Gx(B.target)&&oi(B.target,V)&&!G[GS]&&(G[GS]=!0,wu(B.target,G,!1)),B.isPressed=!1,(Z=B.metaKeyEvents)===null||Z===void 0||Z.delete(G.key)}else if(G.key==="Meta"&&(!((ce=B.metaKeyEvents)===null||ce===void 0)&&ce.size)){var q;let V=B.metaKeyEvents;B.metaKeyEvents=void 0;for(let se of V.values())(q=B.target)===null||q===void 0||q.dispatchEvent(new KeyboardEvent("keyup",se))}};if(typeof PointerEvent<"u"){Y.onPointerDown=Z=>{if(Z.button!==0||!oi(Z.currentTarget,En(Z.nativeEvent)))return;if(vM(Z.nativeEvent)){B.pointerType="virtual";return}B.pointerType=Z.pointerType;let q=!0;if(!B.isPressed){B.isPressed=!0,B.isOverTarget=!0,B.activePointerId=Z.pointerId,B.target=Z.currentTarget,g||_5(B.target),q=L(Z,B.pointerType);let V=En(Z.nativeEvent);"releasePointerCapture"in V&&V.releasePointerCapture(Z.pointerId),T(Dt(Z.currentTarget),"pointerup",G,!1),T(Dt(Z.currentTarget),"pointercancel",ce,!1)}q&&Z.stopPropagation()},Y.onMouseDown=Z=>{if(oi(Z.currentTarget,En(Z.nativeEvent))&&Z.button===0){if(h){let q=T5(Z.target);q&&B.disposables.push(q)}Z.stopPropagation()}},Y.onPointerUp=Z=>{!oi(Z.currentTarget,En(Z.nativeEvent))||B.pointerType==="virtual"||Z.button===0&&!B.isPressed&&K(Z,B.pointerType||Z.pointerType)},Y.onPointerEnter=Z=>{Z.pointerId===B.activePointerId&&B.target&&!B.isOverTarget&&B.pointerType!=null&&(B.isOverTarget=!0,L(ou(B.target,Z),B.pointerType))},Y.onPointerLeave=Z=>{Z.pointerId===B.activePointerId&&B.target&&B.isOverTarget&&B.pointerType!=null&&(B.isOverTarget=!1,z(ou(B.target,Z),B.pointerType,!1),J(Z))};let G=Z=>{if(Z.pointerId===B.activePointerId&&B.isPressed&&Z.button===0&&B.target){if(oi(B.target,En(Z))&&B.pointerType!=null){let q=!1,V=setTimeout(()=>{B.isPressed&&B.target instanceof HTMLElement&&(q?M(Z):(Zl(B.target),B.target.click()))},80);T(Z.currentTarget,"click",()=>q=!0,!0),B.disposables.push(()=>clearTimeout(V))}else M(Z);B.isOverTarget=!1}},ce=Z=>{M(Z)};Y.onDragStart=Z=>{oi(Z.currentTarget,En(Z.nativeEvent))&&M(Z)}}return Y},[T,c,h,$,g,M,J,z,L,K,re,ae]);return S.useEffect(()=>{if(!b)return;const B=Dt(b.current);if(!B||!B.head||B.getElementById(qS))return;const Y=B.createElement("style");Y.id=qS,Y.textContent=` +@layer { + [${YS}] { + touch-action: pan-x pan-y pinch-zoom; + } +} + `.trim(),B.head.prepend(Y)},[b]),S.useEffect(()=>{let B=_.current;return()=>{var Y;g||WS((Y=B.target)!==null&&Y!==void 0?Y:void 0);for(let te of B.disposables)te();B.disposables=[]}},[g]),{isPressed:d||k,pressProps:Pn(x,j,{[YS]:!0})}}function Gx(e){return e.tagName==="A"&&e.hasAttribute("href")}function u0(e,t){const{key:n,code:r}=e,i=t,s=i.getAttribute("role");return(n==="Enter"||n===" "||n==="Spacebar"||r==="Space")&&!(i instanceof eo(i).HTMLInputElement&&!ST(i,n)||i instanceof eo(i).HTMLTextAreaElement||i.isContentEditable)&&!((s==="link"||!s&&Gx(i))&&n!=="Enter")}function ou(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 L5(e){return e instanceof HTMLInputElement?!1:e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!Gx(e)}function XS(e,t){return e instanceof HTMLInputElement?!ST(e,t):L5(e)}const M5=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function ST(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":M5.has(e.type)}let el=null,oh=new Set,Bp=new Map,ku=!1,vb=!1;const D5={Tab:!0,Escape:!0};function Sv(e,t){for(let n of oh)n(e,t)}function N5(e){return!(e.metaKey||!xu()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function Xg(e){ku=!0,N5(e)&&(el="keyboard",Sv("keyboard",e))}function wf(e){el="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(ku=!0,Sv("pointer",e))}function kT(e){RE(e)&&(ku=!0,el="virtual")}function CT(e){e.target===window||e.target===document||Yg||!e.isTrusted||(!ku&&!vb&&(el="virtual",Sv("virtual",e)),ku=!1,vb=!1)}function ET(){Yg||(ku=!1,vb=!0)}function Qg(e){if(typeof window>"u"||typeof document>"u"||Bp.get(eo(e)))return;const t=eo(e),n=Dt(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){ku=!0,r.apply(this,arguments)},n.addEventListener("keydown",Xg,!0),n.addEventListener("keyup",Xg,!0),n.addEventListener("click",kT,!0),t.addEventListener("focus",CT,!0),t.addEventListener("blur",ET,!1),typeof PointerEvent<"u"&&(n.addEventListener("pointerdown",wf,!0),n.addEventListener("pointermove",wf,!0),n.addEventListener("pointerup",wf,!0)),t.addEventListener("beforeunload",()=>{PT(e)},{once:!0}),Bp.set(t,{focus:r})}const PT=(e,t)=>{const n=eo(e),r=Dt(e);t&&r.removeEventListener("DOMContentLoaded",t),Bp.has(n)&&(n.HTMLElement.prototype.focus=Bp.get(n).focus,r.removeEventListener("keydown",Xg,!0),r.removeEventListener("keyup",Xg,!0),r.removeEventListener("click",kT,!0),n.removeEventListener("focus",CT,!0),n.removeEventListener("blur",ET,!1),typeof PointerEvent<"u"&&(r.removeEventListener("pointerdown",wf,!0),r.removeEventListener("pointermove",wf,!0),r.removeEventListener("pointerup",wf,!0)),Bp.delete(n))};function F5(e){const t=Dt(e);let n;return t.readyState!=="loading"?Qg(e):(n=()=>{Qg(e)},t.addEventListener("DOMContentLoaded",n)),()=>PT(e,n)}typeof document<"u"&&F5();function qx(){return el!=="pointer"}function sh(){return el}function O5(e){el=e,Sv(e,null)}function OG(){Qg();let[e,t]=S.useState(el);return S.useEffect(()=>{let n=()=>{t(el)};return oh.add(n),()=>{oh.delete(n)}},[]),hh()?null:e}const z5=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function j5(e,t,n){let r=Dt(n?.target);const i=typeof window<"u"?eo(n?.target).HTMLInputElement:HTMLInputElement,s=typeof window<"u"?eo(n?.target).HTMLTextAreaElement:HTMLTextAreaElement,l=typeof window<"u"?eo(n?.target).HTMLElement:HTMLElement,c=typeof window<"u"?eo(n?.target).KeyboardEvent:KeyboardEvent;return e=e||r.activeElement instanceof i&&!z5.has(r.activeElement.type)||r.activeElement instanceof s||r.activeElement instanceof l&&r.activeElement.isContentEditable,!(e&&t==="keyboard"&&n instanceof c&&!D5[n.key])}function B5(e,t,n){Qg(),S.useEffect(()=>{let r=(i,s)=>{j5(!!n?.isTextInput,i,s)&&e(qx())};return oh.add(r),()=>{oh.delete(r)}},t)}function Cu(e){const t=Dt(e),n=zr(t);if(sh()==="virtual"){let r=n;TE(()=>{zr(t)===r&&e.isConnected&&Zl(e)})}else Zl(e)}function TT(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]),l=xT(s),c=S.useCallback(d=>{const h=Dt(d.target),m=h?zr(h):zr();d.target===d.currentTarget&&m===En(d.nativeEvent)&&(n&&n(d),i&&i(!0),l(d))},[i,n,l]);return{focusProps:{onFocus:!t&&(n||i||r)?c:void 0,onBlur:!t&&(r||i)?s:void 0}}}function QS(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 V5(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:QS(e.onKeyDown),onKeyUp:QS(e.onKeyUp)}}}let U5=We.createContext(null);function K5(e){let t=S.useContext(U5)||{};IE(t,e);let{ref:n,...r}=t;return r}function wh(e,t){let{focusProps:n}=TT(e),{keyboardProps:r}=V5(e),i=Pn(n,r),s=K5(t),l=e.isDisabled?{}:s,c=S.useRef(e.autoFocus);S.useEffect(()=>{c.current&&t.current&&Cu(t.current),c.current=!1},[t]);let d=e.excludeFromTabOrder?-1:0;return e.isDisabled&&(d=void 0),{focusableProps:Pn({...i,tabIndex:d},l)}}function W5({children:e}){let t=S.useMemo(()=>({register:()=>{}}),[]);return We.createElement(Hx.Provider,{value:t},e)}function kv(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:i}=e,s=S.useRef({isFocusWithin:!1}),{addGlobalListener:l,removeAllGlobalListeners:c}=cx(),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=xT(d),m=S.useCallback(g=>{if(!g.currentTarget.contains(g.target))return;const b=Dt(g.target),x=zr(b);if(!s.current.isFocusWithin&&x===En(g.nativeEvent)){r&&r(g),i&&i(!0),s.current.isFocusWithin=!0,h(g);let k=g.currentTarget;l(b,"focus",P=>{if(s.current.isFocusWithin&&!oi(k,P.target)){let _=new b.defaultView.FocusEvent("blur",{relatedTarget:P.target});bT(_,k);let T=Wx(_);d(T)}},{capture:!0})}},[r,i,h,l,d]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:m,onBlur:d}}}let yb=!1,c0=0;function H5(){yb=!0,setTimeout(()=>{yb=!1},50)}function JS(e){e.pointerType==="touch"&&H5()}function G5(){if(!(typeof document>"u"))return typeof PointerEvent<"u"&&document.addEventListener("pointerup",JS),c0++,()=>{c0--,!(c0>0)&&typeof PointerEvent<"u"&&document.removeEventListener("pointerup",JS)}}function Eu(e){let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,isDisabled:i}=e,[s,l]=S.useState(!1),c=S.useRef({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;S.useEffect(G5,[]);let{addGlobalListener:d,removeAllGlobalListeners:h}=cx(),{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(Dt(P.target),"pointerover",$=>{c.isHovered&&c.target&&!oi(c.target,$.target)&&x($,$.pointerType)},{capture:!0}),t&&t({type:"hoverstart",target:T,pointerType:_}),n&&n(!0),l(!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),l(!1))},k={};return typeof PointerEvent<"u"&&(k.onPointerEnter=P=>{yb&&P.pointerType==="mouse"||b(P,P.pointerType)},k.onPointerLeave=P=>{!i&&P.currentTarget.contains(P.target)&&x(P,P.pointerType)}),{hoverProps:k,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 q5(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:i}=e,s=S.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),l=jn(d=>{n&&ZS(d,t)&&(i&&i(d),s.current.isPointerDown=!0)}),c=jn(d=>{n&&n(d)});S.useEffect(()=>{let d=s.current;if(r)return;const h=t.current,m=Dt(h);if(typeof PointerEvent<"u"){let g=b=>{d.isPointerDown&&ZS(b,t)&&c(b),d.isPointerDown=!1};return m.addEventListener("pointerdown",l,!0),m.addEventListener("click",g,!0),()=>{m.removeEventListener("pointerdown",l,!0),m.removeEventListener("click",g,!0)}}},[t,r,l,c])}function ZS(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 ek=We.createContext(null),bb="react-aria-focus-scope-restore";let Xt=null;function Y5(e){let{children:t,contain:n,restoreFocus:r,autoFocus:i}=e,s=S.useRef(null),l=S.useRef(null),c=S.useRef([]),{parentNode:d}=S.useContext(ek)||{},h=S.useMemo(()=>new wb({scopeRef:c}),[c]);sn(()=>{let b=d||Ln.root;if(Ln.getTreeNode(b.scopeRef)&&Xt&&!Jg(Xt,b.scopeRef)){let x=Ln.getTreeNode(Xt);x&&(b=x)}b.addChild(h),Ln.addNode(h)},[h,d]),sn(()=>{let b=Ln.getTreeNode(c);b&&(b.contain=!!n)},[n]),sn(()=>{var b;let x=(b=s.current)===null||b===void 0?void 0:b.nextSibling,k=[],P=_=>_.stopPropagation();for(;x&&x!==l.current;)k.push(x),x.addEventListener(bb,P),x=x.nextSibling;return c.current=k,()=>{for(let _ of k)_.removeEventListener(bb,P)}},[t]),eF(c,r,n),Q5(c,n),tF(c,r,n),Z5(c,i),S.useEffect(()=>{const b=zr(Dt(c.current?c.current[0]:void 0));let x=null;if(no(b,c.current)){for(let k of Ln.traverse())k.scopeRef&&no(b,k.scopeRef.current)&&(x=k);x===Ln.getTreeNode(c)&&(Xt=x.scopeRef)}},[c]),sn(()=>()=>{var b,x,k;let P=(k=(x=Ln.getTreeNode(c))===null||x===void 0||(b=x.parent)===null||b===void 0?void 0:b.scopeRef)!==null&&k!==void 0?k:null;(c===Xt||Jg(c,Xt))&&(!P||Ln.getTreeNode(P))&&(Xt=P),Ln.removeTreeNode(c)},[c]);let m=S.useMemo(()=>X5(c),[]),g=S.useMemo(()=>({focusManager:m,parentNode:h}),[h,m]);return We.createElement(ek.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:l}))}function X5(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:i,wrap:s,accept:l}=t;var c;let d=r||zr(Dt((c=n[0])!==null&&c!==void 0?c:void 0)),h=n[0].previousElementSibling,m=mu(n),g=Qs(m,{tabbable:i,accept:l},n);g.currentNode=no(d,n)?d:h;let b=g.nextNode();return!b&&s&&(g.currentNode=h,b=g.nextNode()),b&&Xs(b,!0),b},focusPrevious(t={}){let n=e.current,{from:r,tabbable:i,wrap:s,accept:l}=t;var c;let d=r||zr(Dt((c=n[0])!==null&&c!==void 0?c:void 0)),h=n[n.length-1].nextElementSibling,m=mu(n),g=Qs(m,{tabbable:i,accept:l},n);g.currentNode=no(d,n)?d:h;let b=g.previousNode();return!b&&s&&(g.currentNode=h,b=g.previousNode()),b&&Xs(b,!0),b},focusFirst(t={}){let n=e.current,{tabbable:r,accept:i}=t,s=mu(n),l=Qs(s,{tabbable:r,accept:i},n);l.currentNode=n[0].previousElementSibling;let c=l.nextNode();return c&&Xs(c,!0),c},focusLast(t={}){let n=e.current,{tabbable:r,accept:i}=t,s=mu(n),l=Qs(s,{tabbable:r,accept:i},n);l.currentNode=n[n.length-1].nextElementSibling;let c=l.previousNode();return c&&Xs(c,!0),c}}}function mu(e){return e[0].parentElement}function Rp(e){let t=Ln.getTreeNode(Xt);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function Q5(e,t){let n=S.useRef(void 0),r=S.useRef(void 0);sn(()=>{let i=e.current;if(!t){r.current&&(cancelAnimationFrame(r.current),r.current=void 0);return}const s=Dt(i?i[0]:void 0);let l=h=>{if(h.key!=="Tab"||h.altKey||h.ctrlKey||h.metaKey||!Rp(e)||h.isComposing)return;let m=zr(s),g=e.current;if(!g||!no(m,g))return;let b=mu(g),x=Qs(b,{tabbable:!0},g);if(!m)return;x.currentNode=m;let k=h.shiftKey?x.previousNode():x.nextNode();k||(x.currentNode=h.shiftKey?g[g.length-1].nextElementSibling:g[0].previousElementSibling,k=h.shiftKey?x.previousNode():x.nextNode()),h.preventDefault(),k&&Xs(k,!0)},c=h=>{(!Xt||Jg(Xt,e))&&no(En(h),e.current)?(Xt=e,n.current=En(h)):Rp(e)&&!Yl(En(h),e)?n.current?n.current.focus():Xt&&Xt.current&&xb(Xt.current):Rp(e)&&(n.current=En(h))},d=h=>{r.current&&cancelAnimationFrame(r.current),r.current=requestAnimationFrame(()=>{let m=sh(),g=(m==="virtual"||m===null)&&ax()&&CE(),b=zr(s);if(!g&&b&&Rp(e)&&!Yl(b,e)){Xt=e;let k=En(h);if(k&&k.isConnected){var x;n.current=k,(x=n.current)===null||x===void 0||x.focus()}else Xt.current&&xb(Xt.current)}})};return s.addEventListener("keydown",l,!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",l,!1),s.removeEventListener("focusin",c,!1),i?.forEach(h=>h.removeEventListener("focusin",c,!1)),i?.forEach(h=>h.removeEventListener("focusout",d,!1))}},[e,t]),sn(()=>()=>{r.current&&cancelAnimationFrame(r.current)},[r])}function _T(e){return Yl(e)}function no(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}function Yl(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:n}of Ln.traverse(Ln.getTreeNode(t)))if(n&&no(e,n.current))return!0;return!1}function J5(e){return Yl(e,Xt)}function Jg(e,t){var n;let r=(n=Ln.getTreeNode(t))===null||n===void 0?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function Xs(e,t=!1){if(e!=null&&!t)try{Cu(e)}catch{}else if(e!=null)try{e.focus()}catch{}}function IT(e,t=!0){let n=e[0].previousElementSibling,r=mu(e),i=Qs(r,{tabbable:t},e);i.currentNode=n;let s=i.nextNode();return t&&!s&&(r=mu(e),i=Qs(r,{tabbable:!1},e),i.currentNode=n,s=i.nextNode()),s}function xb(e,t=!0){Xs(IT(e,t))}function Z5(e,t){const n=We.useRef(t);S.useEffect(()=>{if(n.current){Xt=e;const r=Dt(e.current?e.current[0]:void 0);!no(zr(r),Xt.current)&&e.current&&xb(e.current)}n.current=!1},[e])}function eF(e,t,n){sn(()=>{if(t||n)return;let r=e.current;const i=Dt(r?r[0]:void 0);let s=l=>{let c=En(l);no(c,e.current)?Xt=e:_T(c)||(Xt=null)};return i.addEventListener("focusin",s,!1),r?.forEach(l=>l.addEventListener("focusin",s,!1)),()=>{i.removeEventListener("focusin",s,!1),r?.forEach(l=>l.removeEventListener("focusin",s,!1))}},[e,t,n])}function tk(e){let t=Ln.getTreeNode(Xt);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return t?.scopeRef===e}function tF(e,t,n){const r=S.useRef(typeof document<"u"?zr(Dt(e.current?e.current[0]:void 0)):null);sn(()=>{let i=e.current;const s=Dt(i?i[0]:void 0);if(!t||n)return;let l=()=>{(!Xt||Jg(Xt,e))&&no(zr(s),e.current)&&(Xt=e)};return s.addEventListener("focusin",l,!1),i?.forEach(c=>c.addEventListener("focusin",l,!1)),()=>{s.removeEventListener("focusin",l,!1),i?.forEach(c=>c.removeEventListener("focusin",l,!1))}},[e,n]),sn(()=>{const i=Dt(e.current?e.current[0]:void 0);if(!t)return;let s=l=>{if(l.key!=="Tab"||l.altKey||l.ctrlKey||l.metaKey||!Rp(e)||l.isComposing)return;let c=i.activeElement;if(!Yl(c,e)||!tk(e))return;let d=Ln.getTreeNode(e);if(!d)return;let h=d.nodeToRestore,m=Qs(i.body,{tabbable:!0});m.currentNode=c;let g=l.shiftKey?m.previousNode():m.nextNode();if((!h||!h.isConnected||h===i.body)&&(h=void 0,d.nodeToRestore=void 0),(!g||!Yl(g,e))&&h){m.currentNode=h;do g=l.shiftKey?m.previousNode():m.nextNode();while(Yl(g,e));l.preventDefault(),l.stopPropagation(),g?Xs(g,!0):_T(h)?Xs(h,!0):c.blur()}};return n||i.addEventListener("keydown",s,!0),()=>{n||i.removeEventListener("keydown",s,!0)}},[e,t,n]),sn(()=>{const i=Dt(e.current?e.current[0]:void 0);if(!t)return;let s=Ln.getTreeNode(e);if(s){var l;return s.nodeToRestore=(l=r.current)!==null&&l!==void 0?l:void 0,()=>{let c=Ln.getTreeNode(e);if(!c)return;let d=c.nodeToRestore,h=zr(i);if(t&&d&&(h&&Yl(h,e)||h===i.body&&tk(e))){let m=Ln.clone();requestAnimationFrame(()=>{if(i.activeElement===i.body){let g=m.getTreeNode(e);for(;g;){if(g.nodeToRestore&&g.nodeToRestore.isConnected){nk(g.nodeToRestore);return}g=g.parent}for(g=m.getTreeNode(e);g;){if(g.scopeRef&&g.scopeRef.current&&Ln.getTreeNode(g.scopeRef)){let b=IT(g.scopeRef.current,!0);nk(b);return}g=g.parent}}})}}}},[e,t])}function nk(e){e.dispatchEvent(new CustomEvent(bb,{bubbles:!0,cancelable:!0}))&&Xs(e)}function Qs(e,t,n){let r=t?.tabbable?SM:NE,i=e?.nodeType===Node.ELEMENT_NODE?e:null,s=Dt(i),l=ZL(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)&&yT(c)&&(!n||no(c,n))&&(!t?.accept||t.accept(c))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});return t?.from&&(l.currentNode=t.from),l}class Yx{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 wb({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&&no(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 Yx;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 wb({scopeRef:null}),this.fastMap.set(null,this.root)}}class wb{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 Ln=new Yx;function Rf(e={}){let{autoFocus:t=!1,isTextInput:n,within:r}=e,i=S.useRef({isFocused:!1,isFocusVisible:t||qx()}),[s,l]=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,l(x),h()},[h]);B5(x=>{i.current.isFocusVisible=x,h()},[],{isTextInput:n});let{focusProps:g}=TT({isDisabled:r,onFocusChange:m}),{focusWithinProps:b}=kv({isDisabled:!r,onFocusWithinChange:m});return{isFocused:s,isFocusVisible:c,focusProps:r?b:g}}function nF(e){let t=oF(Dt(e));t!==e&&(t&&rF(t,e),e&&iF(e,t))}function rF(e,t){e.dispatchEvent(new FocusEvent("blur",{relatedTarget:t})),e.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:t}))}function iF(e,t){e.dispatchEvent(new FocusEvent("focus",{relatedTarget:t})),e.dispatchEvent(new FocusEvent("focusin",{bubbles:!0,relatedTarget:t}))}function oF(e){let t=zr(e),n=t?.getAttribute("aria-activedescendant");return n&&e.getElementById(n)||t}const f0=typeof document<"u"&&window.visualViewport,sF=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let vg=0,d0;function lF(e={}){let{isDisabled:t}=e;sn(()=>{if(!t)return vg++,vg===1&&(vv()?d0=uF():d0=aF()),()=>{vg--,vg===0&&d0()}},[t])}function aF(){let e=window.innerWidth-document.documentElement.clientWidth;return Tf(e>0&&("scrollbarGutter"in document.documentElement.style?gu(document.documentElement,"scrollbarGutter","stable"):gu(document.documentElement,"paddingRight",`${e}px`)),gu(document.documentElement,"overflow","hidden"))}function uF(){let e,t,n=h=>{e=$E(h.target,!0),!(e===document.documentElement&&e===document.body)&&e instanceof HTMLElement&&window.getComputedStyle(e).overscrollBehavior==="auto"&&(t=gu(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;cF(m)&&(c(),m.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{m.style.transform="",f0&&(f0.height{rk(m)}):f0.addEventListener("resize",()=>rk(m),{once:!0}))}))},l=null,c=()=>{if(l)return;let h=()=>{window.scrollTo(0,0)},m=window.pageXOffset,g=window.pageYOffset;l=Tf(vp(window,"scroll",h),gu(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),gu(document.documentElement,"overflow","hidden"),gu(document.body,"marginTop",`-${g}px`),()=>{window.scrollTo(m,g)}),window.scrollTo(0,0)},d=Tf(vp(document,"touchstart",n,{passive:!1,capture:!0}),vp(document,"touchmove",r,{passive:!1,capture:!0}),vp(document,"touchend",i,{passive:!1,capture:!0}),vp(document,"focus",s,!0));return()=>{t?.(),l?.(),d()}}function gu(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function vp(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function rk(e){let t=document.scrollingElement||document.documentElement,n=e;for(;n&&n!==t;){let r=$E(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 cF(e){return e instanceof HTMLInputElement&&!sF.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}const fF=S.createContext({});function $T(){var e;return(e=S.useContext(fF))!==null&&e!==void 0?e:{}}const Sb=We.createContext(null);function dF(e){let{children:t}=e,n=S.useContext(Sb),[r,i]=S.useState(0),s=S.useMemo(()=>({parent:n,modalCount:r,addModal(){i(l=>l+1),n&&n.addModal()},removeModal(){i(l=>l-1),n&&n.removeModal()}}),[n,r]);return We.createElement(Sb.Provider,{value:s},t)}function pF(){let e=S.useContext(Sb);return{modalProviderProps:{"aria-hidden":e&&e.modalCount>0?!0:void 0}}}function hF(e){let{modalProviderProps:t}=pF();return We.createElement("div",{"data-overlay-container":!0,...e,...t})}function AT(e){return We.createElement(dF,null,We.createElement(hF,e))}function ik(e){let t=hh(),{portalContainer:n=t?null:document.body,...r}=e,{getContainer:i}=$T();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(AT,r);return DE.createPortal(s,n)}var RT={};RT={dismiss:"تجاهل"};var LT={};LT={dismiss:"Отхвърляне"};var MT={};MT={dismiss:"Odstranit"};var DT={};DT={dismiss:"Luk"};var NT={};NT={dismiss:"Schließen"};var FT={};FT={dismiss:"Απόρριψη"};var OT={};OT={dismiss:"Dismiss"};var zT={};zT={dismiss:"Descartar"};var jT={};jT={dismiss:"Lõpeta"};var BT={};BT={dismiss:"Hylkää"};var VT={};VT={dismiss:"Rejeter"};var UT={};UT={dismiss:"התעלם"};var KT={};KT={dismiss:"Odbaci"};var WT={};WT={dismiss:"Elutasítás"};var HT={};HT={dismiss:"Ignora"};var GT={};GT={dismiss:"閉じる"};var qT={};qT={dismiss:"무시"};var YT={};YT={dismiss:"Atmesti"};var XT={};XT={dismiss:"Nerādīt"};var QT={};QT={dismiss:"Lukk"};var JT={};JT={dismiss:"Negeren"};var ZT={};ZT={dismiss:"Zignoruj"};var e_={};e_={dismiss:"Descartar"};var t_={};t_={dismiss:"Dispensar"};var n_={};n_={dismiss:"Revocare"};var r_={};r_={dismiss:"Пропустить"};var i_={};i_={dismiss:"Zrušiť"};var o_={};o_={dismiss:"Opusti"};var s_={};s_={dismiss:"Odbaci"};var l_={};l_={dismiss:"Avvisa"};var a_={};a_={dismiss:"Kapat"};var u_={};u_={dismiss:"Скасувати"};var c_={};c_={dismiss:"取消"};var f_={};f_={dismiss:"關閉"};var d_={};d_={"ar-AE":RT,"bg-BG":LT,"cs-CZ":MT,"da-DK":DT,"de-DE":NT,"el-GR":FT,"en-US":OT,"es-ES":zT,"et-EE":jT,"fi-FI":BT,"fr-FR":VT,"he-IL":UT,"hr-HR":KT,"hu-HU":WT,"it-IT":HT,"ja-JP":GT,"ko-KR":qT,"lt-LT":YT,"lv-LV":XT,"nb-NO":QT,"nl-NL":JT,"pl-PL":ZT,"pt-BR":e_,"pt-PT":t_,"ro-RO":n_,"ru-RU":r_,"sk-SK":i_,"sl-SI":o_,"sr-SP":s_,"sv-SE":l_,"tr-TR":a_,"uk-UA":u_,"zh-CN":c_,"zh-TW":f_};const ok={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 mF(e={}){let{style:t,isFocusable:n}=e,[r,i]=S.useState(!1),{focusWithinProps:s}=kv({isDisabled:!n,onFocusWithinChange:c=>i(c)}),l=S.useMemo(()=>r?t:t?{...ok,...t}:ok,[r]);return{visuallyHiddenProps:{...s,style:l}}}function gF(e){let{children:t,elementType:n="div",isFocusable:r,style:i,...s}=e,{visuallyHiddenProps:l}=mF(e);return We.createElement(n,Pn(s,l),t)}function vF(e){return e&&e.__esModule?e.default:e}function sk(e){let{onDismiss:t,...n}=e,r=VL(vF(d_),"@react-aria/overlays"),i=_E(n,r.format("dismiss")),s=()=>{t&&t()};return We.createElement(gF,null,We.createElement("button",{...i,tabIndex:-1,onClick:s,style:{width:1,height:1}}))}let yp=new WeakMap,Yi=[];function yF(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=yp.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),yp.set(d,m+1))};Yi.length&&Yi[Yi.length-1].disconnect(),i(t);let l=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)}});l.observe(t,{childList:!0,subtree:!0});let c={visibleNodes:n,hiddenNodes:r,observe(){l.observe(t,{childList:!0,subtree:!0})},disconnect(){l.disconnect()}};return Yi.push(c),()=>{l.disconnect();for(let d of r){let h=yp.get(d);h!=null&&(h===1?(d.removeAttribute("aria-hidden"),yp.delete(d)):yp.set(d,h-1))}c===Yi[Yi.length-1]?(Yi.pop(),Yi.length&&Yi[Yi.length-1].observe()):Yi.splice(Yi.indexOf(c),1)}}const p_=We.createContext(null);function bF(e){let t=hh(),{portalContainer:n=t?null:document.body,isExiting:r}=e,[i,s]=S.useState(!1),l=S.useMemo(()=>({contain:i,setContain:s}),[i,s]),{getContainer:c}=$T();if(!e.portalContainer&&c&&(n=c()),!n)return null;let d=e.children;return e.disableFocusManagement||(d=We.createElement(Y5,{restoreFocus:!0,contain:(e.shouldContainFocus||i)&&!r},d)),d=We.createElement(p_.Provider,{value:l},We.createElement(W5,null,d)),DE.createPortal(d,n)}function h_(){let e=S.useContext(p_),t=e?.setContain;sn(()=>{t?.(!0)},[t])}var xF=({children:e,navigate:t,disableAnimation:n,useHref:r,disableRipple:i=!1,skipFramerMotionAnimations:s=n,reducedMotion:l="never",validationBehavior:c,locale:d="en-US",labelPlacement:h,defaultDates:m,createCalendar:g,spinnerVariant:b,...x})=>{let k=e;t&&(k=D.jsx(fM,{navigate:t,useHref:r,children:k}));const P=S.useMemo(()=>(n&&s&&(ds.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 D.jsx(SL,{value:P,children:D.jsx(ML,{locale:d,children:D.jsx(N3,{reducedMotion:l,children:D.jsx(AT,{...x,children:k})})})})};function zG(e){const t=li(),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 wF(e){const t=li(),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 ai(e){return S.forwardRef(e)}var ra=(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,l)=>({...s,[l]:e[l]}),{}),r]:[e,r]},SF={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"},kF={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"},CF={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"},EF={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"},PF={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"},TF={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"},_F={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"},et={solid:SF,shadow:kF,bordered:CF,flat:EF,faded:PF,light:TF,ghost:_F},IF={".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))"}},$F={".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"}}},AF={".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"}}},RF={".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",LF={".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}},MF={...$F,...LF,...AF,...RF,...IF},yg=["small","medium","large"],kb={theme:{spacing:["divider"],radius:yg},classGroups:{shadow:[{shadow:yg}],opacity:[{opacity:["disabled"]}],"font-size":[{text:["tiny",...yg]}],"border-w":[{border:yg}],"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(MF).filter(e=>e.includes(".transition")).map(e=>e.replace(".",""))}},lk=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,ri=e=>!e||typeof e!="object"||Object.keys(e).length===0,DF=(e,t)=>JSON.stringify(e)===JSON.stringify(t);function m_(e,t){e.forEach(function(n){Array.isArray(n)?m_(n,t):t.push(n)})}function g_(e){let t=[];return m_(e,t),t}var v_=(...e)=>g_(e).filter(Boolean),y_=(e,t)=>{let n={},r=Object.keys(e),i=Object.keys(t);for(let s of r)if(i.includes(s)){let l=e[s],c=t[s];Array.isArray(l)||Array.isArray(c)?n[s]=v_(c,l):typeof l=="object"&&typeof c=="object"?n[s]=y_(l,c):n[s]=c+" "+l}else n[s]=e[s];for(let s of i)r.includes(s)||(n[s]=t[s]);return n},ak=e=>!e||typeof e!="string"?e:e.replace(/\s+/g," ").trim();const Xx="-",NF=e=>{const t=OF(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{const c=l.split(Xx);return c[0]===""&&c.length!==1&&c.shift(),b_(c,t)||FF(l)},getConflictingClassGroupIds:(l,c)=>{const d=n[l]||[];return c&&r[l]?[...d,...r[l]]:d}}},b_=(e,t)=>{if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),i=r?b_(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;const s=e.join(Xx);return t.validators.find(({validator:l})=>l(s))?.classGroupId},uk=/^\[(.+)\]$/,FF=e=>{if(uk.test(e)){const t=uk.exec(e)[1],n=t?.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},OF=e=>{const{theme:t,classGroups:n}=e,r={nextPart:new Map,validators:[]};for(const i in n)Cb(n[i],r,i,t);return r},Cb=(e,t,n,r)=>{e.forEach(i=>{if(typeof i=="string"){const s=i===""?t:ck(t,i);s.classGroupId=n;return}if(typeof i=="function"){if(zF(i)){Cb(i(r),t,n,r);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([s,l])=>{Cb(l,ck(t,s),n,r)})})},ck=(e,t)=>{let n=e;return t.split(Xx).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},zF=e=>e.isThemeGetter,jF=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const i=(s,l)=>{n.set(s,l),t++,t>e&&(t=0,r=n,n=new Map)};return{get(s){let l=n.get(s);if(l!==void 0)return l;if((l=r.get(s))!==void 0)return i(s,l),l},set(s,l){n.has(s)?n.set(s,l):i(s,l)}}},Eb="!",Pb=":",BF=Pb.length,VF=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=i=>{const s=[];let l=0,c=0,d=0,h;for(let k=0;kd?h-d:void 0;return{modifiers:s,hasImportantModifier:b,baseClassName:g,maybePostfixModifierPosition:x}};if(t){const i=t+Pb,s=r;r=l=>l.startsWith(i)?s(l.substring(i.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:l,maybePostfixModifierPosition:void 0}}if(n){const i=r;r=s=>n({className:s,parseClassName:i})}return r},UF=e=>e.endsWith(Eb)?e.substring(0,e.length-1):e.startsWith(Eb)?e.substring(1):e,KF=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(l=>{l[0]==="["||t[l]?(i.push(...s.sort(),l),s=[]):s.push(l)}),i.push(...s.sort()),i}},WF=e=>({cache:jF(e.cacheSize),parseClassName:VF(e),sortModifiers:KF(e),...NF(e)}),HF=/\s+/,GF=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:s}=t,l=[],c=e.trim().split(HF);let d="";for(let h=c.length-1;h>=0;h-=1){const m=c[h],{isExternal:g,modifiers:b,hasImportantModifier:x,baseClassName:k,maybePostfixModifierPosition:P}=n(m);if(g){d=m+(d.length>0?" "+d:d);continue}let _=!!P,T=r(_?k.substring(0,P):k);if(!T){if(!_){d=m+(d.length>0?" "+d:d);continue}if(T=r(k),!T){d=m+(d.length>0?" "+d:d);continue}_=!1}const $=s(b).join(":"),L=x?$+Eb:$,z=L+T;if(l.includes(z))continue;l.push(z);const K=i(T,_);for(let M=0;M0?" "+d:d)}return d};function qF(){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=WF(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=GF(d,n);return i(d,m),m}return function(){return s(qF.apply(null,arguments))}}const Jn=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},w_=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,S_=/^\((?:(\w[\w-]*):)?(.+)\)$/i,YF=/^\d+\/\d+$/,XF=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,QF=/\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$/,JF=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,ZF=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,eO=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,sf=e=>YF.test(e),yt=e=>!!e&&!Number.isNaN(Number(e)),su=e=>!!e&&Number.isInteger(Number(e)),fk=e=>e.endsWith("%")&&yt(e.slice(0,-1)),Wl=e=>XF.test(e),tO=()=>!0,nO=e=>QF.test(e)&&!JF.test(e),Qx=()=>!1,rO=e=>ZF.test(e),iO=e=>eO.test(e),oO=e=>!ze(e)&&!je(e),sO=e=>zf(e,E_,Qx),ze=e=>w_.test(e),lu=e=>zf(e,P_,nO),p0=e=>zf(e,vO,yt),lO=e=>zf(e,k_,Qx),aO=e=>zf(e,C_,iO),uO=e=>zf(e,Qx,rO),je=e=>S_.test(e),bg=e=>jf(e,P_),cO=e=>jf(e,yO),fO=e=>jf(e,k_),dO=e=>jf(e,E_),pO=e=>jf(e,C_),hO=e=>jf(e,bO,!0),zf=(e,t,n)=>{const r=w_.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},jf=(e,t,n=!1)=>{const r=S_.exec(e);return r?r[1]?t(r[1]):n:!1},k_=e=>e==="position",mO=new Set(["image","url"]),C_=e=>mO.has(e),gO=new Set(["length","size","percentage"]),E_=e=>gO.has(e),P_=e=>e==="length",vO=e=>e==="number",yO=e=>e==="family-name",bO=e=>e==="shadow",_b=()=>{const e=Jn("color"),t=Jn("font"),n=Jn("text"),r=Jn("font-weight"),i=Jn("tracking"),s=Jn("leading"),l=Jn("breakpoint"),c=Jn("container"),d=Jn("spacing"),h=Jn("radius"),m=Jn("shadow"),g=Jn("inset-shadow"),b=Jn("drop-shadow"),x=Jn("blur"),k=Jn("perspective"),P=Jn("aspect"),_=Jn("ease"),T=Jn("animate"),$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],L=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],z=()=>["auto","hidden","clip","visible","scroll"],K=()=>["auto","contain","none"],M=()=>[je,ze,d],J=()=>[sf,"full","auto",...M()],re=()=>[su,"none","subgrid",je,ze],ae=()=>["auto",{span:["full",su,je,ze]},je,ze],j=()=>[su,"auto",je,ze],B=()=>["auto","min","max","fr",je,ze],Y=()=>["start","end","center","between","around","evenly","stretch","baseline"],te=()=>["start","end","center","stretch"],G=()=>["auto",...M()],ce=()=>[sf,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],Z=()=>[e,je,ze],q=()=>[fk,lu],V=()=>["","none","full",h,je,ze],se=()=>["",yt,bg,lu],R=()=>["solid","dashed","dotted","double"],U=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ie=()=>["","none",x,je,ze],O=()=>["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",je,ze],me=()=>["none",yt,je,ze],Ce=()=>["none",yt,je,ze],ye=()=>[yt,je,ze],Fe=()=>[sf,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Wl],breakpoint:[Wl],color:[tO],container:[Wl],"drop-shadow":[Wl],ease:["in","out","in-out"],font:[oO],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Wl],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Wl],shadow:[Wl],spacing:["px",yt],text:[Wl],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",sf,ze,je,P]}],container:["container"],columns:[{columns:[yt,ze,je,c]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"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:[...L(),ze,je]}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:K()}],"overscroll-x":[{"overscroll-x":K()}],"overscroll-y":[{"overscroll-y":K()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:J()}],"inset-x":[{"inset-x":J()}],"inset-y":[{"inset-y":J()}],start:[{start:J()}],end:[{end:J()}],top:[{top:J()}],right:[{right:J()}],bottom:[{bottom:J()}],left:[{left:J()}],visibility:["visible","invisible","collapse"],z:[{z:[su,"auto",je,ze]}],basis:[{basis:[sf,"full","auto",c,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[yt,sf,"auto","initial","none",ze]}],grow:[{grow:["",yt,je,ze]}],shrink:[{shrink:["",yt,je,ze]}],order:[{order:[su,"first","last","none",je,ze]}],"grid-cols":[{"grid-cols":re()}],"col-start-end":[{col:ae()}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":re()}],"row-start-end":[{row:ae()}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":B()}],"auto-rows":[{"auto-rows":B()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...Y(),"normal"]}],"justify-items":[{"justify-items":[...te(),"normal"]}],"justify-self":[{"justify-self":["auto",...te()]}],"align-content":[{content:["normal",...Y()]}],"align-items":[{items:[...te(),"baseline"]}],"align-self":[{self:["auto",...te(),"baseline"]}],"place-content":[{"place-content":Y()}],"place-items":[{"place-items":[...te(),"baseline"]}],"place-self":[{"place-self":["auto",...te()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],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":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:ce()}],w:[{w:[c,"screen",...ce()]}],"min-w":[{"min-w":[c,"screen","none",...ce()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[l]},...ce()]}],h:[{h:["screen",...ce()]}],"min-h":[{"min-h":["screen","none",...ce()]}],"max-h":[{"max-h":["screen",...ce()]}],"font-size":[{text:["base",n,bg,lu]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,je,p0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",fk,ze]}],"font-family":[{font:[cO,ze,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,je,ze]}],"line-clamp":[{"line-clamp":[yt,"none",je,p0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",je,ze]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",je,ze]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:Z()}],"text-color":[{text:Z()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...R(),"wavy"]}],"text-decoration-thickness":[{decoration:[yt,"from-font","auto",je,lu]}],"text-decoration-color":[{decoration:Z()}],"underline-offset":[{"underline-offset":[yt,"auto",je,ze]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",je,ze]}],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",je,ze]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...L(),fO,lO]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","space","round"]}]}],"bg-size":[{bg:["auto","cover","contain",dO,sO]}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},su,je,ze],radial:["",je,ze],conic:[su,je,ze]},pO,aO]}],"bg-color":[{bg:Z()}],"gradient-from-pos":[{from:q()}],"gradient-via-pos":[{via:q()}],"gradient-to-pos":[{to:q()}],"gradient-from":[{from:Z()}],"gradient-via":[{via:Z()}],"gradient-to":[{to:Z()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"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:[...R(),"hidden","none"]}],"divide-style":[{divide:[...R(),"hidden","none"]}],"border-color":[{border:Z()}],"border-color-x":[{"border-x":Z()}],"border-color-y":[{"border-y":Z()}],"border-color-s":[{"border-s":Z()}],"border-color-e":[{"border-e":Z()}],"border-color-t":[{"border-t":Z()}],"border-color-r":[{"border-r":Z()}],"border-color-b":[{"border-b":Z()}],"border-color-l":[{"border-l":Z()}],"divide-color":[{divide:Z()}],"outline-style":[{outline:[...R(),"none","hidden"]}],"outline-offset":[{"outline-offset":[yt,je,ze]}],"outline-w":[{outline:["",yt,bg,lu]}],"outline-color":[{outline:[e]}],shadow:[{shadow:["","none",m,hO,uO]}],"shadow-color":[{shadow:Z()}],"inset-shadow":[{"inset-shadow":["none",je,ze,g]}],"inset-shadow-color":[{"inset-shadow":Z()}],"ring-w":[{ring:se()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:Z()}],"ring-offset-w":[{"ring-offset":[yt,lu]}],"ring-offset-color":[{"ring-offset":Z()}],"inset-ring-w":[{"inset-ring":se()}],"inset-ring-color":[{"inset-ring":Z()}],opacity:[{opacity:[yt,je,ze]}],"mix-blend":[{"mix-blend":[...U(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":U()}],filter:[{filter:["","none",je,ze]}],blur:[{blur:ie()}],brightness:[{brightness:[yt,je,ze]}],contrast:[{contrast:[yt,je,ze]}],"drop-shadow":[{"drop-shadow":["","none",b,je,ze]}],grayscale:[{grayscale:["",yt,je,ze]}],"hue-rotate":[{"hue-rotate":[yt,je,ze]}],invert:[{invert:["",yt,je,ze]}],saturate:[{saturate:[yt,je,ze]}],sepia:[{sepia:["",yt,je,ze]}],"backdrop-filter":[{"backdrop-filter":["","none",je,ze]}],"backdrop-blur":[{"backdrop-blur":ie()}],"backdrop-brightness":[{"backdrop-brightness":[yt,je,ze]}],"backdrop-contrast":[{"backdrop-contrast":[yt,je,ze]}],"backdrop-grayscale":[{"backdrop-grayscale":["",yt,je,ze]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[yt,je,ze]}],"backdrop-invert":[{"backdrop-invert":["",yt,je,ze]}],"backdrop-opacity":[{"backdrop-opacity":[yt,je,ze]}],"backdrop-saturate":[{"backdrop-saturate":[yt,je,ze]}],"backdrop-sepia":[{"backdrop-sepia":["",yt,je,ze]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",je,ze]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[yt,"initial",je,ze]}],ease:[{ease:["linear","initial",_,je,ze]}],delay:[{delay:[yt,je,ze]}],animate:[{animate:["none",T,je,ze]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,je,ze]}],"perspective-origin":[{"perspective-origin":O()}],rotate:[{rotate:me()}],"rotate-x":[{"rotate-x":me()}],"rotate-y":[{"rotate-y":me()}],"rotate-z":[{"rotate-z":me()}],scale:[{scale:Ce()}],"scale-x":[{"scale-x":Ce()}],"scale-y":[{"scale-y":Ce()}],"scale-z":[{"scale-z":Ce()}],"scale-3d":["scale-3d"],skew:[{skew:ye()}],"skew-x":[{"skew-x":ye()}],"skew-y":[{"skew-y":ye()}],transform:[{transform:[je,ze,"","none","gpu","cpu"]}],"transform-origin":[{origin:O()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Fe()}],"translate-x":[{"translate-x":Fe()}],"translate-y":[{"translate-y":Fe()}],"translate-z":[{"translate-z":Fe()}],"translate-none":["translate-none"],accent:[{accent:Z()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:Z()}],"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",je,ze]}],"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":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"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",je,ze]}],fill:[{fill:["none",...Z()]}],"stroke-w":[{stroke:[yt,bg,lu,p0]}],stroke:[{stroke:["none",...Z()]}],"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","*","**"]}},xO=(e,{cacheSize:t,prefix:n,experimentalParseClassName:r,extend:i={},override:s={}})=>(Lp(e,"cacheSize",t),Lp(e,"prefix",n),Lp(e,"experimentalParseClassName",r),xg(e.theme,s.theme),xg(e.classGroups,s.classGroups),xg(e.conflictingClassGroups,s.conflictingClassGroups),xg(e.conflictingClassGroupModifiers,s.conflictingClassGroupModifiers),Lp(e,"orderSensitiveModifiers",s.orderSensitiveModifiers),wg(e.theme,i.theme),wg(e.classGroups,i.classGroups),wg(e.conflictingClassGroups,i.conflictingClassGroups),wg(e.conflictingClassGroupModifiers,i.conflictingClassGroupModifiers),T_(e,i,"orderSensitiveModifiers"),e),Lp=(e,t,n)=>{n!==void 0&&(e[t]=n)},xg=(e,t)=>{if(t)for(const n in t)Lp(e,n,t[n])},wg=(e,t)=>{if(t)for(const n in t)T_(e,t,n)},T_=(e,t,n)=>{const r=t[n];r!==void 0&&(e[n]=e[n]?e[n].concat(r):r)},__=(e,...t)=>typeof e=="function"?Tb(_b,e,...t):Tb(()=>xO(_b(),e),...t),wO=Tb(_b);var SO={twMerge:!0,twMergeConfig:{},responsiveVariants:!1},I_=e=>e||void 0,lh=(...e)=>I_(g_(e).filter(Boolean).join(" ")),h0=null,Ys={},Ib=!1,bp=(...e)=>t=>t.twMerge?((!h0||Ib)&&(Ib=!1,h0=ri(Ys)?wO:__({...Ys,extend:{theme:Ys.theme,classGroups:Ys.classGroups,conflictingClassGroupModifiers:Ys.conflictingClassGroupModifiers,conflictingClassGroups:Ys.conflictingClassGroups,...Ys.extend}})),I_(h0(lh(e)))):lh(e),dk=(e,t)=>{for(let n in t)e.hasOwnProperty(n)?e[n]=lh(e[n],t[n]):e[n]=t[n];return e},kO=(e,t)=>{let{extend:n=null,slots:r={},variants:i={},compoundVariants:s=[],compoundSlots:l=[],defaultVariants:c={}}=e,d={...SO,...t},h=n!=null&&n.base?lh(n.base,e?.base):e?.base,m=n!=null&&n.variants&&!ri(n.variants)?y_(i,n.variants):i,g=n!=null&&n.defaultVariants&&!ri(n.defaultVariants)?{...n.defaultVariants,...c}:c;!ri(d.twMergeConfig)&&!DF(d.twMergeConfig,Ys)&&(Ib=!0,Ys=d.twMergeConfig);let b=ri(n?.slots),x=ri(r)?{}:{base:lh(e?.base,b&&n?.base),...r},k=b?x:dk({...n?.slots},ri(x)?{base:e?.base}:x),P=ri(n?.compoundVariants)?s:v_(n?.compoundVariants,s),_=$=>{if(ri(m)&&ri(r)&&b)return bp(h,$?.class,$?.className)(d);if(P&&!Array.isArray(P))throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof P}`);if(l&&!Array.isArray(l))throw new TypeError(`The "compoundSlots" prop must be an array. Received: ${typeof l}`);let L=(Y,te,G=[],ce)=>{let Z=G;if(typeof te=="string")Z=Z.concat(ak(te).split(" ").map(q=>`${Y}:${q}`));else if(Array.isArray(te))Z=Z.concat(te.reduce((q,V)=>q.concat(`${Y}:${V}`),[]));else if(typeof te=="object"&&typeof ce=="string"){for(let q in te)if(te.hasOwnProperty(q)&&q===ce){let V=te[q];if(V&&typeof V=="string"){let se=ak(V);Z[ce]?Z[ce]=Z[ce].concat(se.split(" ").map(R=>`${Y}:${R}`)):Z[ce]=se.split(" ").map(R=>`${Y}:${R}`)}else Array.isArray(V)&&V.length>0&&(Z[ce]=V.reduce((se,R)=>se.concat(`${Y}:${R}`),[]))}}return Z},z=(Y,te=m,G=null,ce=null)=>{var Z;let q=te[Y];if(!q||ri(q))return null;let V=(Z=ce?.[Y])!=null?Z:$?.[Y];if(V===null)return null;let se=lk(V),R=Array.isArray(d.responsiveVariants)&&d.responsiveVariants.length>0||d.responsiveVariants===!0,U=g?.[Y],ie=[];if(typeof se=="object"&&R)for(let[Ce,ye]of Object.entries(se)){let Fe=q[ye];if(Ce==="initial"){U=ye;continue}Array.isArray(d.responsiveVariants)&&!d.responsiveVariants.includes(Ce)||(ie=L(Ce,Fe,ie,G))}let O=se!=null&&typeof se!="object"?se:lk(U),me=q[O||"false"];return typeof ie=="object"&&typeof G=="string"&&ie[G]?dk(ie,me):ie.length>0?(ie.push(me),G==="base"?ie.join(" "):ie):me},K=()=>m?Object.keys(m).map(Y=>z(Y,m)):null,M=(Y,te)=>{if(!m||typeof m!="object")return null;let G=new Array;for(let ce in m){let Z=z(ce,m,Y,te),q=Y==="base"&&typeof Z=="string"?Z:Z&&Z[Y];q&&(G[G.length]=q)}return G},J={};for(let Y in $)$[Y]!==void 0&&(J[Y]=$[Y]);let re=(Y,te)=>{var G;let ce=typeof $?.[Y]=="object"?{[Y]:(G=$[Y])==null?void 0:G.initial}:{};return{...g,...J,...ce,...te}},ae=(Y=[],te)=>{let G=[];for(let{class:ce,className:Z,...q}of Y){let V=!0;for(let[se,R]of Object.entries(q)){let U=re(se,te)[se];if(Array.isArray(R)){if(!R.includes(U)){V=!1;break}}else{let ie=O=>O==null||O===!1;if(ie(R)&&ie(U))continue;if(U!==R){V=!1;break}}}V&&(ce&&G.push(ce),Z&&G.push(Z))}return G},j=Y=>{let te=ae(P,Y);if(!Array.isArray(te))return te;let G={};for(let ce of te)if(typeof ce=="string"&&(G.base=bp(G.base,ce)(d)),typeof ce=="object")for(let[Z,q]of Object.entries(ce))G[Z]=bp(G[Z],q)(d);return G},B=Y=>{if(l.length<1)return null;let te={};for(let{slots:G=[],class:ce,className:Z,...q}of l){if(!ri(q)){let V=!0;for(let se of Object.keys(q)){let R=re(se,Y)[se];if(R===void 0||(Array.isArray(q[se])?!q[se].includes(R):q[se]!==R)){V=!1;break}}if(!V)continue}for(let V of G)te[V]=te[V]||[],te[V].push([ce,Z])}return te};if(!ri(r)||!b){let Y={};if(typeof k=="object"&&!ri(k))for(let te of Object.keys(k))Y[te]=G=>{var ce,Z;return bp(k[te],M(te,G),((ce=j(G))!=null?ce:[])[te],((Z=B(G))!=null?Z:[])[te],G?.class,G?.className)(d)};return Y}return bp(h,K(),ae(P),$?.class,$?.className)(d)},T=()=>{if(!(!m||typeof m!="object"))return Object.keys(m)};return _.variantKeys=T(),_.extend=n,_.base=h,_.slots=k,_.variants=m,_.defaultVariants=g,_.compoundSlots=l,_.compoundVariants=P,_},fr=(e,t)=>{var n,r,i;return kO(e,{...t,twMerge:(n=t?.twMerge)!=null?n:!0,twMergeConfig:{...t?.twMergeConfig,theme:{...(r=t?.twMergeConfig)==null?void 0:r.theme,...kb.theme},classGroups:{...(i=t?.twMergeConfig)==null?void 0:i.classGroups,...kb.classGroups}}})},pk=fr({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"}}]}),Sh=["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"],$_=["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"],lf={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)]"]},CO=["font-inherit","text-[100%]","leading-[1.15]","m-0","p-0","overflow-visible","box-border","absolute","top-0","w-full","h-full","opacity-[0.0001]","z-[1]","cursor-pointer","disabled:cursor-default"],hk=fr({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",...Sh],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:et.solid.foreground},primary:{base:"before:bg-primary",content:et.solid.primary},secondary:{base:"before:bg-secondary",content:et.solid.secondary},success:{base:"before:bg-success",content:et.solid.success},warning:{base:"before:bg-warning",content:et.solid.warning},danger:{base:"before:bg-danger",content:et.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"}}]});fr({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 mk=fr({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"}}]}),EO=["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)]"],PO=["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)]"],gk=fr({base:[],variants:{orientation:{vertical:["overflow-y-auto",...EO],horizontal:["overflow-x-auto",...PO]},hideScrollBar:{true:"scrollbar-hide",false:""}},defaultVariants:{orientation:"vertical",hideScrollBar:!1}}),vk=fr({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:{}}),yk=fr({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",...Sh],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:[...$_]}},{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"]}}]}),bk=fr({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",...Sh]},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"}}]}),TO=fr({base:"shrink-0 bg-divider border-none",variants:{orientation:{horizontal:"w-full h-divider",vertical:"h-full w-divider"}},defaultVariants:{orientation:"horizontal"}}),_O=fr({base:"flex flex-col gap-2 items-start"}),xk=fr({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"}]}),IO=fr({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",...Sh],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:et.solid.default},{variant:"solid",color:"primary",class:et.solid.primary},{variant:"solid",color:"secondary",class:et.solid.secondary},{variant:"solid",color:"success",class:et.solid.success},{variant:"solid",color:"warning",class:et.solid.warning},{variant:"solid",color:"danger",class:et.solid.danger},{variant:"shadow",color:"default",class:et.shadow.default},{variant:"shadow",color:"primary",class:et.shadow.primary},{variant:"shadow",color:"secondary",class:et.shadow.secondary},{variant:"shadow",color:"success",class:et.shadow.success},{variant:"shadow",color:"warning",class:et.shadow.warning},{variant:"shadow",color:"danger",class:et.shadow.danger},{variant:"bordered",color:"default",class:et.bordered.default},{variant:"bordered",color:"primary",class:et.bordered.primary},{variant:"bordered",color:"secondary",class:et.bordered.secondary},{variant:"bordered",color:"success",class:et.bordered.success},{variant:"bordered",color:"warning",class:et.bordered.warning},{variant:"bordered",color:"danger",class:et.bordered.danger},{variant:"flat",color:"default",class:et.flat.default},{variant:"flat",color:"primary",class:et.flat.primary},{variant:"flat",color:"secondary",class:et.flat.secondary},{variant:"flat",color:"success",class:et.flat.success},{variant:"flat",color:"warning",class:et.flat.warning},{variant:"flat",color:"danger",class:et.flat.danger},{variant:"faded",color:"default",class:et.faded.default},{variant:"faded",color:"primary",class:et.faded.primary},{variant:"faded",color:"secondary",class:et.faded.secondary},{variant:"faded",color:"success",class:et.faded.success},{variant:"faded",color:"warning",class:et.faded.warning},{variant:"faded",color:"danger",class:et.faded.danger},{variant:"light",color:"default",class:[et.light.default,"data-[hover=true]:bg-default/40"]},{variant:"light",color:"primary",class:[et.light.primary,"data-[hover=true]:bg-primary/20"]},{variant:"light",color:"secondary",class:[et.light.secondary,"data-[hover=true]:bg-secondary/20"]},{variant:"light",color:"success",class:[et.light.success,"data-[hover=true]:bg-success/20"]},{variant:"light",color:"warning",class:[et.light.warning,"data-[hover=true]:bg-warning/20"]},{variant:"light",color:"danger",class:[et.light.danger,"data-[hover=true]:bg-danger/20"]},{variant:"ghost",color:"default",class:[et.ghost.default,"data-[hover=true]:!bg-default"]},{variant:"ghost",color:"primary",class:[et.ghost.primary,"data-[hover=true]:!bg-primary data-[hover=true]:!text-primary-foreground"]},{variant:"ghost",color:"secondary",class:[et.ghost.secondary,"data-[hover=true]:!bg-secondary data-[hover=true]:!text-secondary-foreground"]},{variant:"ghost",color:"success",class:[et.ghost.success,"data-[hover=true]:!bg-success data-[hover=true]:!text-success-foreground"]},{variant:"ghost",color:"warning",class:[et.ghost.warning,"data-[hover=true]:!bg-warning data-[hover=true]:!text-warning-foreground"]},{variant:"ghost",color:"danger",class:[et.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:lf.default},{isInGroup:!0,variant:["ghost","bordered"],color:"primary",className:lf.primary},{isInGroup:!0,variant:["ghost","bordered"],color:"secondary",className:lf.secondary},{isInGroup:!0,variant:["ghost","bordered"],color:"success",className:lf.success},{isInGroup:!0,variant:["ghost","bordered"],color:"warning",className:lf.warning},{isInGroup:!0,variant:["ghost","bordered"],color:"danger",className:lf.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"}]});fr({base:"inline-flex items-center justify-center h-auto",variants:{fullWidth:{true:"w-full"}},defaultVariants:{fullWidth:!1}});var $O=fr({slots:{base:"group relative max-w-fit inline-flex items-center justify-start cursor-pointer tap-highlight-transparent p-2 -m-2 select-none",wrapper:["relative","inline-flex","items-center","justify-center","shrink-0","overflow-hidden","before:content-['']","before:absolute","before:inset-0","before:border-solid","before:border-2","before:box-border","before:border-default","after:content-['']","after:absolute","after:inset-0","after:scale-50","after:opacity-0","after:origin-center","group-data-[selected=true]:after:scale-100","group-data-[selected=true]:after:opacity-100","group-data-[hover=true]:before:bg-default-100",...$_],hiddenInput:CO,icon:"z-10 w-4 h-3 opacity-0 group-data-[selected=true]:opacity-100 pointer-events-none",label:"relative text-foreground select-none"},variants:{color:{default:{wrapper:"after:bg-default after:text-default-foreground text-default-foreground"},primary:{wrapper:"after:bg-primary after:text-primary-foreground text-primary-foreground"},secondary:{wrapper:"after:bg-secondary after:text-secondary-foreground text-secondary-foreground"},success:{wrapper:"after:bg-success after:text-success-foreground text-success-foreground"},warning:{wrapper:"after:bg-warning after:text-warning-foreground text-warning-foreground"},danger:{wrapper:"after:bg-danger after:text-danger-foreground text-danger-foreground"}},size:{sm:{wrapper:["w-4 h-4 me-2","rounded-[calc(var(--heroui-radius-medium)*0.5)]","before:rounded-[calc(var(--heroui-radius-medium)*0.5)]","after:rounded-[calc(var(--heroui-radius-medium)*0.5)]"],label:"text-small",icon:"w-3 h-2"},md:{wrapper:["w-5 h-5 me-2","rounded-[calc(var(--heroui-radius-medium)*0.6)]","before:rounded-[calc(var(--heroui-radius-medium)*0.6)]","after:rounded-[calc(var(--heroui-radius-medium)*0.6)]"],label:"text-medium",icon:"w-4 h-3"},lg:{wrapper:["w-6 h-6 me-2","rounded-[calc(var(--heroui-radius-medium)*0.7)]","before:rounded-[calc(var(--heroui-radius-medium)*0.7)]","after:rounded-[calc(var(--heroui-radius-medium)*0.7)]"],label:"text-large",icon:"w-5 h-4"}},radius:{none:{wrapper:"rounded-none before:rounded-none after:rounded-none"},sm:{wrapper:["rounded-[calc(var(--heroui-radius-medium)*0.5)]","before:rounded-[calc(var(--heroui-radius-medium)*0.5)]","after:rounded-[calc(var(--heroui-radius-medium)*0.5)]"]},md:{wrapper:["rounded-[calc(var(--heroui-radius-medium)*0.6)]","before:rounded-[calc(var(--heroui-radius-medium)*0.6)]","after:rounded-[calc(var(--heroui-radius-medium)*0.6)]"]},lg:{wrapper:["rounded-[calc(var(--heroui-radius-medium)*0.7)]","before:rounded-[calc(var(--heroui-radius-medium)*0.7)]","after:rounded-[calc(var(--heroui-radius-medium)*0.7)]"]},full:{wrapper:"rounded-full before:rounded-full after:rounded-full"}},lineThrough:{true:{label:["inline-flex","items-center","justify-center","before:content-['']","before:absolute","before:bg-foreground","before:w-0","before:h-0.5","group-data-[selected=true]:opacity-60","group-data-[selected=true]:before:w-full"]}},isDisabled:{true:{base:"opacity-disabled pointer-events-none"}},isInvalid:{true:{wrapper:"before:border-danger",label:"text-danger"}},disableAnimation:{true:{wrapper:"transition-none",icon:"transition-none",label:"transition-none"},false:{wrapper:["before:transition-colors","group-data-[pressed=true]:scale-95","transition-transform","after:transition-transform-opacity","after:!ease-linear","after:!duration-200","motion-reduce:transition-none"],icon:"transition-opacity motion-reduce:transition-none",label:"transition-colors-opacity before:transition-width motion-reduce:transition-none"}}},defaultVariants:{color:"primary",size:"md",isDisabled:!1,lineThrough:!1}});fr({slots:{base:"relative flex flex-col gap-2",label:"relative text-medium text-foreground-500",wrapper:"flex flex-col flex-wrap gap-2 data-[orientation=horizontal]:flex-row",description:"text-small text-foreground-400",errorMessage:"text-small text-danger"},variants:{isRequired:{true:{label:"after:content-['*'] after:text-danger after:ml-0.5"}},isInvalid:{true:{description:"text-danger"}},disableAnimation:{true:{},false:{description:"transition-colors !duration-150 motion-reduce:transition-none"}}},defaultVariants:{isInvalid:!1,isRequired:!1}});var AO=fr({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}}),RO=fr({slots:{base:"",heading:"",trigger:["flex py-4 w-full h-full gap-3 outline-hidden items-center tap-highlight-transparent",...Sh],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 A_(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 l=document.querySelector("meta[property=csp-nonce]"),c=l?.nonce||l?.getAttribute("nonce");i=d(n.map(h=>{if(h=NO(h),h in wk)return;wk[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":DO,m||(b.as="script"),b.crossOrigin="",b.href=h,c&&b.setAttribute("nonce",c),document.head.appendChild(b),m)return new Promise((x,k)=>{b.addEventListener("load",x),b.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${h}`)))})}))}function s(l){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=l,window.dispatchEvent(c),!c.defaultPrevented)throw l}return i.then(l=>{for(const c of l||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})};function FO(e,t){let{elementType:n="button",isDisabled:r,onPress:i,onPressStart:s,onPressEnd:l,onPressUp:c,onPressChange:d,preventFocusOnPress:h,allowFocusWhenDisabled:m,onClick:g,href:b,target:x,rel:k,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"?k:void 0};let{pressProps:T,isPressed:$}=Su({onPressStart:s,onPressEnd:l,onPressChange:d,onPress:i,onPressUp:c,onClick:g,isDisabled:r,preventFocusOnPress:h,ref:t}),{focusableProps:L}=wh(e,t);m&&(L.tabIndex=r?-1:L.tabIndex);let z=Pn(L,T,Iu(e,{labelable:!0}));return{isPressed:$,buttonProps:Pn(_,z,{"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 OO(e,t,n){let{item:r,isDisabled:i}=e,s=r.key,l=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&&Cu(n.current)},[n,s,t.focusedKey]);let m=S.useCallback(P=>{l.canSelectItem(s)&&(l.select(s,P),t.toggleKey(s))},[s,l]);const g=S.useCallback(P=>{l.selectionBehavior==="replace"&&l.extendSelection(P),l.setFocusedKey(P)},[l]),b=S.useCallback(P=>{const T={ArrowDown:()=>{const $=t.collection.getKeyAfter(s);if($&&t.disabledKeys.has($)){const L=t.collection.getKeyAfter($);L&&g(L)}else $&&g($)},ArrowUp:()=>{const $=t.collection.getKeyBefore(s);if($&&t.disabledKeys.has($)){const L=t.collection.getKeyBefore($);L&&g(L)}else $&&g($)},Home:()=>{const $=t.collection.getFirstKey();$&&g($)},End:()=>{const $=t.collection.getLastKey();$&&g($)}}[P.key];T&&(P.preventDefault(),l.canSelectItem(s)&&T(P))},[s,l]);let{buttonProps:x}=FO({id:c,elementType:"button",isDisabled:h,onKeyDown:b,onPress:m},n),k=t.selectionManager.isSelected(r.key);return{buttonProps:{...x,"aria-expanded":k,"aria-controls":k?d:void 0},regionProps:{id:d,role:"region","aria-labelledby":c}}}function Sk(e){return uM()?e.altKey:e.ctrlKey}function Mg(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 R_=new WeakMap;function zO(e){let t=Pf();return R_.set(e,t),t}function jG(e){return R_.get(e)}const jO=1e3;function BO(e){let{keyboardDelegate:t,selectionManager:n,onTypeSelect:r}=e,i=S.useRef({search:"",timeout:void 0}).current,s=l=>{let c=VO(l.key);if(!(!c||l.ctrlKey||l.metaKey||!l.currentTarget.contains(l.target))){if(c===" "&&i.search.trim().length>0&&(l.preventDefault(),"continuePropagation"in l||l.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=""},jO)}};return{typeSelectProps:{onKeyDownCapture:t.getKeyForSearch?s:void 0}}}function VO(e){return e.length===1||!/^[A-Z]/i.test(e)?e:""}function UO(e){let{selectionManager:t,keyboardDelegate:n,ref:r,autoFocus:i=!1,shouldFocusWrap:s=!1,disallowEmptySelection:l=!1,disallowSelectAll:c=!1,escapeKeyBehavior:d="clearSelection",selectOnFocus:h=t.selectionBehavior==="replace",disallowTypeAhead:m=!1,shouldUseVirtualFocus:g,allowsTabNavigation:b=!1,isVirtualized:x,scrollRef:k=r,linkBehavior:P="action"}=e,{direction:_}=mh(),T=ux(),$=q=>{var V;if(q.altKey&&q.key==="Tab"&&q.preventDefault(),!(!((V=r.current)===null||V===void 0)&&V.contains(q.target)))return;const se=(_e,mt)=>{if(_e!=null){if(t.isLink(_e)&&P==="selection"&&h&&!Sk(q)){ME.flushSync(()=>{t.setFocusedKey(_e,mt)});let pt=Mg(r,_e),Vt=t.getItemProps(_e);pt&&T.open(pt,q,Vt.href,Vt.routerOptions);return}if(t.setFocusedKey(_e,mt),t.isLink(_e)&&P==="override")return;q.shiftKey&&t.selectionMode==="multiple"?t.extendSelection(_e):h&&!Sk(q)&&t.replaceSelection(_e)}};switch(q.key){case"ArrowDown":if(n.getKeyBelow){var R,U,ie;let _e=t.focusedKey!=null?(R=n.getKeyBelow)===null||R===void 0?void 0:R.call(n,t.focusedKey):(U=n.getFirstKey)===null||U===void 0?void 0:U.call(n);_e==null&&s&&(_e=(ie=n.getFirstKey)===null||ie===void 0?void 0:ie.call(n,t.focusedKey)),_e!=null&&(q.preventDefault(),se(_e))}break;case"ArrowUp":if(n.getKeyAbove){var O,me,Ce;let _e=t.focusedKey!=null?(O=n.getKeyAbove)===null||O===void 0?void 0:O.call(n,t.focusedKey):(me=n.getLastKey)===null||me===void 0?void 0:me.call(n);_e==null&&s&&(_e=(Ce=n.getLastKey)===null||Ce===void 0?void 0:Ce.call(n,t.focusedKey)),_e!=null&&(q.preventDefault(),se(_e))}break;case"ArrowLeft":if(n.getKeyLeftOf){var ye,Fe,De;let _e=t.focusedKey!=null?(ye=n.getKeyLeftOf)===null||ye===void 0?void 0:ye.call(n,t.focusedKey):null;_e==null&&s&&(_e=_==="rtl"?(Fe=n.getFirstKey)===null||Fe===void 0?void 0:Fe.call(n,t.focusedKey):(De=n.getLastKey)===null||De===void 0?void 0:De.call(n,t.focusedKey)),_e!=null&&(q.preventDefault(),se(_e,_==="rtl"?"first":"last"))}break;case"ArrowRight":if(n.getKeyRightOf){var Te,Xe,lt;let _e=t.focusedKey!=null?(Te=n.getKeyRightOf)===null||Te===void 0?void 0:Te.call(n,t.focusedKey):null;_e==null&&s&&(_e=_==="rtl"?(Xe=n.getLastKey)===null||Xe===void 0?void 0:Xe.call(n,t.focusedKey):(lt=n.getFirstKey)===null||lt===void 0?void 0:lt.call(n,t.focusedKey)),_e!=null&&(q.preventDefault(),se(_e,_==="rtl"?"last":"first"))}break;case"Home":if(n.getFirstKey){if(t.focusedKey===null&&q.shiftKey)return;q.preventDefault();let _e=n.getFirstKey(t.focusedKey,mp(q));t.setFocusedKey(_e),_e!=null&&(mp(q)&&q.shiftKey&&t.selectionMode==="multiple"?t.extendSelection(_e):h&&t.replaceSelection(_e))}break;case"End":if(n.getLastKey){if(t.focusedKey===null&&q.shiftKey)return;q.preventDefault();let _e=n.getLastKey(t.focusedKey,mp(q));t.setFocusedKey(_e),_e!=null&&(mp(q)&&q.shiftKey&&t.selectionMode==="multiple"?t.extendSelection(_e):h&&t.replaceSelection(_e))}break;case"PageDown":if(n.getKeyPageBelow&&t.focusedKey!=null){let _e=n.getKeyPageBelow(t.focusedKey);_e!=null&&(q.preventDefault(),se(_e))}break;case"PageUp":if(n.getKeyPageAbove&&t.focusedKey!=null){let _e=n.getKeyPageAbove(t.focusedKey);_e!=null&&(q.preventDefault(),se(_e))}break;case"a":mp(q)&&t.selectionMode==="multiple"&&c!==!0&&(q.preventDefault(),t.selectAll());break;case"Escape":d==="clearSelection"&&!l&&t.selectedKeys.size!==0&&(q.stopPropagation(),q.preventDefault(),t.clearSelection());break;case"Tab":if(!b){if(q.shiftKey)r.current.focus();else{let _e=Qs(r.current,{tabbable:!0}),mt,pt;do pt=_e.lastChild(),pt&&(mt=pt);while(pt);mt&&!mt.contains(document.activeElement)&&Zl(mt)}break}}},L=S.useRef({top:0,left:0});ug(k,"scroll",x?void 0:()=>{var q,V,se,R;L.current={top:(se=(q=k.current)===null||q===void 0?void 0:q.scrollTop)!==null&&se!==void 0?se:0,left:(R=(V=k.current)===null||V===void 0?void 0:V.scrollLeft)!==null&&R!==void 0?R:0}});let z=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 V,se;let ie=me=>{me!=null&&(t.setFocusedKey(me),h&&!t.isSelected(me)&&t.replaceSelection(me))},O=q.relatedTarget;var R,U;O&&q.currentTarget.compareDocumentPosition(O)&Node.DOCUMENT_POSITION_FOLLOWING?ie((R=t.lastSelectedKey)!==null&&R!==void 0?R:(V=n.getLastKey)===null||V===void 0?void 0:V.call(n)):ie((U=t.firstSelectedKey)!==null&&U!==void 0?U:(se=n.getFirstKey)===null||se===void 0?void 0:se.call(n))}else!x&&k.current&&(k.current.scrollTop=L.current.top,k.current.scrollLeft=L.current.left);if(t.focusedKey!=null&&k.current){let ie=Mg(r,t.focusedKey);ie instanceof HTMLElement&&(!ie.contains(document.activeElement)&&!g&&Zl(ie),sh()==="keyboard"&&C1(ie,{containingElement:r.current}))}}},K=q=>{q.currentTarget.contains(q.relatedTarget)||t.setFocused(!1)},M=S.useRef(!1);ug(r,bM,g?q=>{let{detail:V}=q;q.stopPropagation(),t.setFocused(!0),V?.focusStrategy==="first"&&(M.current=!0)}:void 0);let J=jn(()=>{var q,V;let se=(V=(q=n.getFirstKey)===null||q===void 0?void 0:q.call(n))!==null&&V!==void 0?V:null;se==null?(nF(r.current),t.collection.size>0&&(M.current=!1)):(t.setFocusedKey(se),M.current=!1)});w1(()=>{M.current&&J()},[t.collection,J]);let re=jn(()=>{t.collection.size>0&&(M.current=!1)});w1(()=>{re()},[t.focusedKey,re]),ug(r,yM,g?q=>{var V;q.stopPropagation(),t.setFocused(!1),!((V=q.detail)===null||V===void 0)&&V.clearFocusKey&&t.setFocusedKey(null)}:void 0);const ae=S.useRef(i),j=S.useRef(!1);S.useEffect(()=>{if(ae.current){var q,V;let U=null;var se;i==="first"&&(U=(se=(q=n.getFirstKey)===null||q===void 0?void 0:q.call(n))!==null&&se!==void 0?se:null);var R;i==="last"&&(U=(R=(V=n.getLastKey)===null||V===void 0?void 0:V.call(n))!==null&&R!==void 0?R:null);let ie=t.selectedKeys;if(ie.size){for(let O of ie)if(t.canSelectItem(O)){U=O;break}}t.setFocused(!0),t.setFocusedKey(U),U==null&&!g&&r.current&&Cu(r.current),t.collection.size>0&&(ae.current=!1,j.current=!0)}});let B=S.useRef(t.focusedKey),Y=S.useRef(null);S.useEffect(()=>{if(t.isFocused&&t.focusedKey!=null&&(t.focusedKey!==B.current||j.current)&&k.current&&r.current){let q=sh(),V=Mg(r,t.focusedKey);if(!(V instanceof HTMLElement))return;(q==="keyboard"||j.current)&&(Y.current&&cancelAnimationFrame(Y.current),Y.current=requestAnimationFrame(()=>{k.current&&(AE(k.current,V),q!=="virtual"&&C1(V,{containingElement:r.current}))}))}!g&&t.isFocused&&t.focusedKey==null&&B.current!=null&&r.current&&Cu(r.current),B.current=t.focusedKey,j.current=!1}),S.useEffect(()=>()=>{Y.current&&cancelAnimationFrame(Y.current)},[]),ug(r,"react-aria-focus-scope-restore",q=>{q.preventDefault(),t.setFocused(!0)});let te={onKeyDown:$,onFocus:z,onBlur:K,onMouseDown(q){k.current===q.target&&q.preventDefault()}},{typeSelectProps:G}=BO({keyboardDelegate:n,selectionManager:t});m||(te=Pn(G,te));let ce;g||(ce=t.focusedKey==null?0:-1);let Z=zO(t.collection);return{collectionProps:Pn(te,{tabIndex:ce,"data-collection":Z})}}class kk{getItemRect(t){let n=this.ref.current;if(!n)return null;let r=t!=null?Mg(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 KO{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 l=s;do{if(i=n(i),i==null)break;s=this.layoutDelegate.getItemRect(i)}while(s&&r(l,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&&!Yp(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&&!Yp(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 KO({collection:n,disabledKeys:r,disabledBehavior:d,ref:i,collator:c,layoutDelegate:l}),[s,l,n,r,i,c,d]),{collectionProps:m}=UO({...e,ref:i,selectionManager:t,keyboardDelegate:h});return{listProps:m}}function HO(e,t,n){let{listProps:r}=WO({...e,...t,allowsTabNavigation:!0,disallowSelectAll:!0,ref:n});return delete r.onKeyDownCapture,{accordionProps:{...r,tabIndex:void 0}}}function GO(e){var t,n;const r=li(),{ref:i,as:s,item:l,onFocusChange:c}=e,{state:d,className:h,indicator:m,children:g,title:b,subtitle:x,startContent:k,motionProps:P,focusedKey:_,variant:T,isCompact:$=!1,classNames:L={},isDisabled:z=!1,hideIndicator:K=!1,disableAnimation:M=(t=r?.disableAnimation)!=null?t:!1,keepContentMounted:J=!1,disableIndicatorAnimation:re=!1,HeadingComponent:ae=s||"h2",onPress:j,onPressStart:B,onPressEnd:Y,onPressChange:te,onPressUp:G,onClick:ce,...Z}=e,q=s||"div",V=typeof q=="string",se=Zi(i),R=d.disabledKeys.has(l.key)||z,U=d.selectionManager.isSelected(l.key),{buttonProps:ie,regionProps:O}=OO({item:l,isDisabled:R},{...d,focusedKey:_},se),{onFocus:me,onBlur:Ce,...ye}=ie,{isFocused:Fe,isFocusVisible:De,focusProps:Te}=Rf({autoFocus:(n=l.props)==null?void 0:n.autoFocus}),{isHovered:Xe,hoverProps:lt}=Eu({isDisabled:R}),{pressProps:_e,isPressed:mt}=Su({ref:se,isDisabled:R,onPress:j,onPressStart:B,onPressEnd:Y,onPressChange:te,onPressUp:G}),pt=S.useCallback(()=>{c?.(!0,l.key)},[]),Vt=S.useCallback(()=>{c?.(!1,l.key)},[]),Ve=S.useMemo(()=>({...L}),[nl(L)]),it=S.useMemo(()=>RO({isCompact:$,isDisabled:R,hideIndicator:K,disableAnimation:M,disableIndicatorAnimation:re,variant:T}),[$,R,K,M,re,T]),Ut=tn(Ve?.base,h),Zn=S.useCallback((pe={})=>({"data-open":$e(U),"data-disabled":$e(R),"data-slot":"base",className:it.base({class:Ut}),...on(Ef(Z,{enabled:V}),pe)}),[Ut,V,Z,it,l.props,U,R]),ln=(pe={})=>{var Se,Oe;return{ref:se,"data-open":$e(U),"data-focus":$e(Fe),"data-focus-visible":$e(De),"data-disabled":$e(R),"data-hover":$e(Xe),"data-pressed":$e(mt),"data-slot":"trigger",className:it.trigger({class:Ve?.trigger}),onFocus:f1(pt,me,Te.onFocus,Z.onFocus,(Se=l.props)==null?void 0:Se.onFocus),onBlur:f1(Vt,Ce,Te.onBlur,Z.onBlur,(Oe=l.props)==null?void 0:Oe.onBlur),...on(ye,lt,_e,pe,{onClick:Jl(_e.onClick,ce)})}},_t=S.useCallback((pe={})=>({"data-open":$e(U),"data-disabled":$e(R),"data-slot":"content",className:it.content({class:Ve?.content}),...on(O,pe)}),[it,Ve,O,U,R,Ve?.content]),Rt=S.useCallback((pe={})=>({"aria-hidden":$e(!0),"data-open":$e(U),"data-disabled":$e(R),"data-slot":"indicator",className:it.indicator({class:Ve?.indicator}),...pe}),[it,Ve?.indicator,U,R,Ve?.indicator]),Tn=S.useCallback((pe={})=>({"data-open":$e(U),"data-disabled":$e(R),"data-slot":"heading",className:it.heading({class:Ve?.heading}),...pe}),[it,Ve?.heading,U,R,Ve?.heading]),Er=S.useCallback((pe={})=>({"data-open":$e(U),"data-disabled":$e(R),"data-slot":"title",className:it.title({class:Ve?.title}),...pe}),[it,Ve?.title,U,R,Ve?.title]),Nt=S.useCallback((pe={})=>({"data-open":$e(U),"data-disabled":$e(R),"data-slot":"subtitle",className:it.subtitle({class:Ve?.subtitle}),...pe}),[it,Ve,U,R,Ve?.subtitle]);return{Component:q,HeadingComponent:ae,item:l,slots:it,classNames:Ve,domRef:se,indicator:m,children:g,title:b,subtitle:x,startContent:k,isOpen:U,isDisabled:R,hideIndicator:K,keepContentMounted:J,disableAnimation:M,motionProps:P,getBaseProps:Zn,getHeadingProps:Tn,getButtonProps:ln,getContentProps:_t,getIndicatorProps:Rt,getTitleProps:Er,getSubtitleProps:Nt}}var Ck=e=>D.jsx("svg",{"aria-hidden":"true",fill:"none",focusable:"false",height:"1em",role:"presentation",viewBox:"0 0 24 24",width:"1em",...e,children:D.jsx("path",{d:"M15.5 19l-7-7 7-7",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})}),qO=e=>D.jsx("svg",{"aria-hidden":"true",focusable:"false",height:"1em",role:"presentation",viewBox:"0 0 24 24",width:"1em",...e,children:D.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"})}),YO=e=>{const{isSelected:t,isIndeterminate:n,disableAnimation:r,...i}=e;return D.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:D.jsx("path",{d:"M18 6L6 18M6 6l12 12"})})},Vp={ease:[.36,.66,.4,1]},Zg={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:Vp.ease}},exit:{opacity:0,transition:{duration:.3,ease:Vp.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}}}},Ek=()=>ro(()=>import("./index-d6pKlm-a.js"),[]).then(e=>e.default),L_=ai((e,t)=>{const{Component:n,HeadingComponent:r,classNames:i,slots:s,indicator:l,children:c,title:d,subtitle:h,startContent:m,isOpen:g,isDisabled:b,hideIndicator:x,keepContentMounted:k,disableAnimation:P,motionProps:_,getBaseProps:T,getHeadingProps:$,getButtonProps:L,getTitleProps:z,getSubtitleProps:K,getContentProps:M,getIndicatorProps:J}=GO({...e,ref:t}),re=d5(),j=S.useMemo(()=>typeof l=="function"?l({indicator:D.jsx(Ck,{}),isOpen:g,isDisabled:b}):l||null,[l,g,b])||D.jsx(Ck,{}),B=S.useMemo(()=>{if(P)return k?D.jsx("div",{...M(),children:c}):g&&D.jsx("div",{...M(),children:c});const Y={exit:{...Zg.collapse.exit,overflowY:"hidden"},enter:{...Zg.collapse.enter,overflowY:"unset"}};return k?D.jsx($f,{features:Ek,children:D.jsx(Af.section,{animate:g?"enter":"exit",exit:"exit",initial:"exit",style:{willChange:re},variants:Y,onKeyDown:te=>{te.stopPropagation()},..._,children:D.jsx("div",{...M(),children:c})},"accordion-content")}):D.jsx(Ru,{initial:!1,children:g&&D.jsx($f,{features:Ek,children:D.jsx(Af.section,{animate:"enter",exit:"exit",initial:"exit",style:{willChange:re},variants:Y,onKeyDown:te=>{te.stopPropagation()},..._,children:D.jsx("div",{...M(),children:c})},"accordion-content")})})},[g,P,k,c,_]);return D.jsxs(n,{...T(),children:[D.jsx(r,{...$(),children:D.jsxs("button",{...L(),children:[m&&D.jsx("div",{className:s.startContent({class:i?.startContent}),children:m}),D.jsxs("div",{className:s.titleWrapper({class:i?.titleWrapper}),children:[d&&D.jsx("span",{...z(),children:d}),h&&D.jsx("span",{...K(),children:h})]}),!x&&j&&D.jsx("span",{...J(),children:j})]})}),B]})});L_.displayName="HeroUI.AccordionItem";var XO=L_;class QO{*[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 l;this.lastKey=(l=i?.key)!==null&&l!==void 0?l:null}}class Eo extends Set{constructor(t,n,r){super(t),t instanceof Eo?(this.anchorKey=n??t.anchorKey,this.currentKey=r??t.currentKey):(this.anchorKey=n??null,this.currentKey=r??null)}}function JO(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function ZO(e){let{selectionMode:t="none",disallowEmptySelection:n=!1,allowDuplicateSelectionEvents:r,selectionBehavior:i="toggle",disabledBehavior:s="all"}=e,l=S.useRef(!1),[,c]=S.useState(!1),d=S.useRef(null),h=S.useRef(null),[,m]=S.useState(null),g=S.useMemo(()=>Pk(e.selectedKeys),[e.selectedKeys]),b=S.useMemo(()=>Pk(e.defaultSelectedKeys,new Eo),[e.defaultSelectedKeys]),[x,k]=$u(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 $=S.useRef(i);return S.useEffect(()=>{i!==$.current&&(T(i),$.current=i)},[i]),{selectionMode:t,disallowEmptySelection:n,selectionBehavior:_,setSelectionBehavior:T,get isFocused(){return l.current},setFocused(L){l.current=L,c(L)},get focusedKey(){return d.current},get childFocusStrategy(){return h.current},setFocusedKey(L,z="first"){d.current=L,h.current=z,m(L)},selectedKeys:x,setSelectedKeys(L){(r||!JO(L,x))&&k(L)},disabledKeys:P,disabledBehavior:s}}function Pk(e,t){return e?e==="all"?"all":new Eo(e):t}function M_(e){return null}M_.getCollectionNode=function*(t,n){let{childItems:r,title:i,children:s}=t,l=t.title||t.children,c=t.textValue||(typeof l=="string"?l:"")||t["aria-label"]||"";!c&&n?.suppressTextValueWarning,yield{type:"item",props:t,rendered:l,textValue:c,"aria-label":t["aria-label"],hasChildNodes:e6(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 e6(e){return e.hasChildItems!=null?e.hasChildItems:!!(e.childItems||e.title&&We.Children.count(e.children)>0)}let t6=M_;class n6{build(t,n){return this.context=n,Tk(()=>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,l=>{l&&i.push(l)});let s=0;for(let l of i){let c=this.getFullNode({element:l,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 l;let c=(l=s.key)!==null&&l!==void 0?l: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,$=>{_.push($)});var s;let T=(s=t.index)!==null&&s!==void 0?s:0;for(const $ of _)yield*this.getFullNode({element:$,index:T++},n,r,i);return}let l=t.element;if(!l&&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}l=n.renderer(t.value)}if(We.isValidElement(l)){let _=l.type;if(typeof _!="function"&&typeof _.getCollectionNode!="function"){let z=l.type;throw new Error(`Unknown element <${z}> in collection.`)}let T=_.getCollectionNode(l.props,this.context);var c;let $=(c=t.index)!==null&&c!==void 0?c:0,L=T.next();for(;!L.done&&L.value;){let z=L.value;t.index=$;var d;let K=(d=z.key)!==null&&d!==void 0?d:null;K==null&&(K=z.element?null:this.getKey(l,t,n,r));let J=[...this.getFullNode({...z,key:K,index:$,wrapper:r6(t.wrapper,z.wrapper)},this.getChildState(n,z),r?`${r}${l.key}`:l.key,i)];for(let re of J){var h,m;re.value=(m=(h=z.value)!==null&&h!==void 0?h:t.value)!==null&&m!==void 0?m:null,re.value&&this.cache.set(re.value,re);var g;if(t.type&&re.type!==t.type)throw new Error(`Unsupported type <${m0(re.type)}> in <${m0((g=i?.type)!==null&&g!==void 0?g:"unknown parent type")}>. Only <${m0(t.type)}> is supported.`);$++,yield re}L=T.next(J)}return}if(t.key==null||t.type==null)return;let b=this;var x,k;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:(k=t.textValue)!==null&&k!==void 0?k:"","aria-label":t["aria-label"],wrapper:t.wrapper,shouldInvalidate:t.shouldInvalidate,hasChildNodes:t.hasChildNodes||!1,childNodes:Tk(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 $=b.getFullNode({...T,index:_},b.getChildState(n,T),P.key,P);for(let L of $)_++,yield L}})};yield P}constructor(){this.cache=new WeakMap}}function Tk(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 r6(e,t){if(e&&t)return n=>e(t(n));if(e)return e;if(t)return t}function m0(e){return e[0].toUpperCase()+e.slice(1)}function i6(e,t,n){let r=S.useMemo(()=>new n6,[]),{children:i,items:s,collection:l}=e;return S.useMemo(()=>{if(l)return l;let d=r.build({children:i,items:s},n);return t(d)},[r,i,s,l,n,t])}function o6(e,t){return typeof t.getChildren=="function"?t.getChildren(e.key):e.childNodes}function s6(e){return l6(e,0)}function l6(e,t){if(t<0)return;let n=0;for(let r of e){if(n===t)return r;n++}}function BG(e){let t;for(let n of e)t=n;return t}function g0(e,t,n){if(t.parentKey===n.parentKey)return t.index-n.index;let r=[..._k(e,t),t],i=[..._k(e,n),n],s=r.slice(0,i.length).findIndex((l,c)=>l!==i[c]);return s!==-1?(t=r[s],n=i[s],t.index-n.index):r.findIndex(l=>l===n)>=0?1:(i.findIndex(l=>l===t)>=0,-1)}function _k(e,t){let n=[],r=t;for(;r?.parentKey!=null;)r=e.getItem(r.parentKey),r&&n.unshift(r);return n}class Jx{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&&g0(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&&g0(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 Eo([n],n,n);else{let l=this.state.selectedKeys;var i;let c=(i=l.anchorKey)!==null&&i!==void 0?i:n;r=new Eo(l,c,n);var s;for(let d of this.getKeyRange(c,(s=l.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?g0(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 l=this.collection.getItem(s);if(l&&(l.type==="item"||l.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 Eo(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 Eo([n],n,n):new Eo;this.state.setSelectedKeys(r)}setSelectedKeys(t){if(this.selectionMode==="none")return;let n=new Eo;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 l=this.collection.getItem(r);l?.type==="item"&&t.push(r);var s;l?.hasChildNodes&&(this.allowsCellSelection||l.type!=="item")&&n((s=(i=s6(o6(l,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 Eo)}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 Jx(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 a6(e){let{onExpandedChange:t}=e,[n,r]=$u(e.expandedKeys?new Set(e.expandedKeys):void 0,e.defaultExpandedKeys?new Set(e.defaultExpandedKeys):new Set,t),i=ZO(e),s=S.useMemo(()=>e.disabledKeys?new Set(e.disabledKeys):new Set,[e.disabledKeys]),l=i6(e,S.useCallback(d=>new QO(d,{expandedKeys:n}),[n]),null);return S.useEffect(()=>{i.focusedKey!=null&&!l.getItem(i.focusedKey)&&i.setFocusedKey(null)},[l,i.focusedKey]),{collection:l,expandedKeys:n,disabledKeys:s,toggleKey:d=>{r(u6(n,d))},setExpandedKeys:r,selectionManager:new Jx(l,i)}}function u6(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function c6(e){var t;const n=li(),{ref:r,as:i,className:s,items:l,variant:c,motionProps:d,expandedKeys:h,disabledKeys:m,selectedKeys:g,children:b,defaultExpandedKeys:x,selectionMode:k="single",selectionBehavior:P="toggle",keepContentMounted:_=!1,disallowEmptySelection:T,defaultSelectedKeys:$,onExpandedChange:L,onSelectionChange:z,dividerProps:K={},isCompact:M=!1,isDisabled:J=!1,showDivider:re=!0,hideIndicator:ae=!1,disableAnimation:j=(t=n?.disableAnimation)!=null?t:!1,disableIndicatorAnimation:B=!1,itemClasses:Y,...te}=e,[G,ce]=S.useState(null),Z=i||"div",q=typeof Z=="string",V=Zi(r),se=S.useMemo(()=>AO({variant:c,className:s}),[c,s]),U={children:S.useMemo(()=>{let Te=[];return We.Children.map(b,Xe=>{var lt;if(We.isValidElement(Xe)&&typeof((lt=Xe.props)==null?void 0:lt.children)!="string"){const _e=We.cloneElement(Xe,{hasChildItems:!1});Te.push(_e)}else Te.push(Xe)}),Te},[b]),items:l},ie={expandedKeys:h,defaultExpandedKeys:x,onExpandedChange:L},O={disabledKeys:m,selectedKeys:g,selectionMode:k,selectionBehavior:P,disallowEmptySelection:T,defaultSelectedKeys:$??x,onSelectionChange:z,...U,...ie},me=a6(O);me.selectionManager.setFocusedKey=Te=>{ce(Te)};const{accordionProps:Ce}=HO({...U,...ie},me,V),ye=S.useMemo(()=>({state:me,focusedKey:G,motionProps:d,isCompact:M,isDisabled:J,hideIndicator:ae,disableAnimation:j,keepContentMounted:_,disableIndicatorAnimation:B}),[G,M,J,ae,g,j,_,me?.expandedKeys.values,B,me.expandedKeys.size,me.disabledKeys.size,d]),Fe=S.useCallback((Te={})=>({ref:V,className:se,"data-orientation":"vertical",...on(Ce,Ef(te,{enabled:q}),Te)}),[]),De=S.useCallback((Te,Xe)=>{Te&&ce(Xe)},[]);return{Component:Z,values:ye,state:me,focusedKey:G,getBaseProps:Fe,isSplitted:c==="splitted",classNames:se,showDivider:re,dividerProps:K,disableAnimation:j,handleFocusChanged:De,itemClasses:Y}}function f6(e){let t=Ef(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 d6(e){const{as:t,className:n,orientation:r,...i}=e;let s=t||"hr";s==="hr"&&r==="vertical"&&(s="div");const{separatorProps:l}=f6({elementType:typeof s=="string"?s:"hr",orientation:r}),c=S.useMemo(()=>TO({orientation:r,className:n}),[r,n]),d=S.useCallback((h={})=>({className:c,role:"separator","data-orientation":r,...l,...i,...h}),[c,r,l,i]);return{Component:s,getDividerProps:d}}var D_=ai((e,t)=>{const{Component:n,getDividerProps:r}=d6({...e});return D.jsx(n,{ref:t,...r()})});D_.displayName="HeroUI.Divider";var p6=D_,N_=ai((e,t)=>{const{Component:n,values:r,state:i,isSplitted:s,showDivider:l,getBaseProps:c,disableAnimation:d,handleFocusChanged:h,itemClasses:m,dividerProps:g}=c6({...e,ref:t}),b=S.useCallback((k,P)=>h(k,P),[h]),x=S.useMemo(()=>[...i.collection].map((k,P)=>{const _={...m,...k.props.classNames||{}};return D.jsxs(S.Fragment,{children:[D.jsx(XO,{item:k,variant:e.variant,onFocusChange:b,...r,...k.props,classNames:_}),!k.props.hidden&&!s&&l&&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]||{}},m6=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],VG=(e,t)=>{if(t.includes("-")){const[n]=t.split("-");if(n.includes(e))return!1}return!0},$k=(e,t)=>{if(t.includes("-")){const[,n]=t.split("-");return`${e}-${n}`}return e},g6=t6,xp=g6,kh=globalThis?.document?S.useLayoutEffect:S.useEffect;function v6(e={}){const{onLoad:t,onError:n,ignoreFallback:r,src:i,crossOrigin:s,srcSet:l,sizes:c,loading:d,shouldBypassImageLoad:h=!1}=e,m=yL(),g=S.useRef(m?new Image:null),[b,x]=S.useState("pending");S.useEffect(()=>{g.current&&(g.current.onload=_=>{k(),x("loaded"),t?.(_)},g.current.onerror=_=>{k(),x("failed"),n?.(_)})},[g.current]);const k=()=>{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),l&&(_.srcset=l),c&&(_.sizes=c),d&&(_.loading=d),g.current=_,_.complete&&_.naturalWidth?"loaded":"loading"},[i,s,l,c,t,n,d,h]);return kh(()=>{m&&x(P())},[m,P]),r?"loaded":b}var[UG,y6]=pv({name:"ButtonGroupContext",strict:!1});function F_(e,t){let{elementType:n="button",isDisabled:r,onPress:i,onPressStart:s,onPressEnd:l,onPressUp:c,onPressChange:d,preventFocusOnPress:h,allowFocusWhenDisabled:m,onClick:g,href:b,target:x,rel:k,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"?k:void 0};let{pressProps:$,isPressed:L}=Su({onClick:g,onPressStart:s,onPressEnd:l,onPressUp:c,onPressChange:d,onPress:i,isDisabled:r,preventFocusOnPress:h,allowTextSelectionOnPress:_,ref:t}),{focusableProps:z}=wh(e,t);m&&(z.tabIndex=r?-1:z.tabIndex);let K=Pn(z,$,Iu(e,{labelable:!0}));return{isPressed:L,buttonProps:Pn(T,K,{"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 b6=()=>ro(()=>import("./index-d6pKlm-a.js"),[]).then(e=>e.default),O_=e=>{const{ripples:t=[],motionProps:n,color:r="currentColor",style:i,onClear:s}=e;return D.jsx(D.Fragment,{children:t.map(l=>{const c=pL(.01*l.size,.2,l.size>100?.75:.5);return D.jsx($f,{features:b6,children:D.jsx(Ru,{mode:"popLayout",children:D.jsx(Af.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:l.y,left:l.x,width:`${l.size}px`,height:`${l.size}px`,...i},transition:{duration:c},onAnimationComplete:()=>{s(l.key)},...n})})},l.key)})})};O_.displayName="HeroUI.Ripple";var x6=O_;function w6(e={}){const[t,n]=S.useState([]),r=S.useCallback(s=>{const l=s.target,c=Math.max(l.clientWidth,l.clientHeight);n(d=>[...d,{key:dL(d.length.toString()),size:c,x:s.x-c/2,y:s.y-c/2}])},[]),i=S.useCallback(s=>{n(l=>l.filter(c=>c.key!==s))},[]);return{ripples:t,onClear:i,onPress:r,...e}}function S6(e){var t,n,r,i,s,l,c,d,h;const m=y6(),g=li(),b=!!m,{ref:x,as:k,children:P,startContent:_,endContent:T,autoFocus:$,className:L,spinner:z,isLoading:K=!1,disableRipple:M=!1,fullWidth:J=(t=m?.fullWidth)!=null?t:!1,radius:re=m?.radius,size:ae=(n=m?.size)!=null?n:"md",color:j=(r=m?.color)!=null?r:"default",variant:B=(i=m?.variant)!=null?i:"solid",disableAnimation:Y=(l=(s=m?.disableAnimation)!=null?s:g?.disableAnimation)!=null?l:!1,isDisabled:te=(c=m?.isDisabled)!=null?c:!1,isIconOnly:G=(d=m?.isIconOnly)!=null?d:!1,spinnerPlacement:ce="start",onPress:Z,onClick:q,...V}=e,se=k||"button",R=typeof se=="string",U=Zi(x),ie=(h=M||g?.disableRipple)!=null?h:Y,{isFocusVisible:O,isFocused:me,focusProps:Ce}=Rf({autoFocus:$}),ye=te||K,Fe=S.useMemo(()=>IO({size:ae,color:j,variant:B,radius:re,fullWidth:J,isDisabled:ye,isInGroup:b,disableAnimation:Y,isIconOnly:G,className:L}),[ae,j,B,re,J,ye,b,G,Y,L]),{onPress:De,onClear:Te,ripples:Xe}=w6(),lt=S.useCallback(Rt=>{ie||ye||Y||U.current&&De(Rt)},[ie,ye,Y,U,De]),{buttonProps:_e,isPressed:mt}=F_({elementType:k,isDisabled:ye,onPress:Jl(Z,lt),onClick:q,...V},U),{isHovered:pt,hoverProps:Vt}=Eu({isDisabled:ye}),Ve=S.useCallback((Rt={})=>({"data-disabled":$e(ye),"data-focus":$e(me),"data-pressed":$e(mt),"data-focus-visible":$e(O),"data-hover":$e(pt),"data-loading":$e(K),...on(_e,Ce,Vt,Ef(V,{enabled:R}),Ef(Rt)),className:Fe}),[K,ye,me,mt,R,O,pt,_e,Ce,Vt,V,Fe]),it=Rt=>S.isValidElement(Rt)?S.cloneElement(Rt,{"aria-hidden":!0,focusable:!1}):null,Ut=it(_),Zn=it(T),ln=S.useMemo(()=>({sm:"sm",md:"sm",lg:"md"})[ae],[ae]),_t=S.useCallback(()=>({ripples:Xe,onClear:Te}),[Xe,Te]);return{Component:se,children:P,domRef:U,spinner:z,styles:Fe,startContent:Ut,endContent:Zn,isLoading:K,spinnerPlacement:ce,spinnerSize:ln,disableRipple:ie,getButtonProps:Ve,getRippleProps:_t,isIconOnly:G}}function k6(e){var t,n;const[r,i]=ra(e,pk.variantKeys),s=li(),l=(n=(t=e?.variant)!=null?t:s?.spinnerVariant)!=null?n:"default",{children:c,className:d,classNames:h,label:m,...g}=r,b=S.useMemo(()=>pk({...i}),[nl(i)]),x=tn(h?.base,d),k=m||c,P=S.useMemo(()=>k&&typeof k=="string"?k:g["aria-label"]?"":"Loading",[c,k,g["aria-label"]]),_=S.useCallback(()=>({"aria-label":P,className:b.base({class:x}),...g}),[P,b,x,g]);return{label:k,slots:b,classNames:h,variant:l,getSpinnerProps:_}}var z_=ai((e,t)=>{const{slots:n,classNames:r,label:i,variant:s,getSpinnerProps:l}=k6({...e});return s==="wave"||s==="dots"?D.jsxs("div",{ref:t,...l(),children:[D.jsx("div",{className:n.wrapper({class:r?.wrapper}),children:[...new Array(3)].map((c,d)=>D.jsx("i",{className:n.dots({class:r?.dots}),style:{"--dot-index":d}},`dot-${d}`))}),i&&D.jsx("span",{className:n.label({class:r?.label}),children:i})]}):s==="simple"?D.jsxs("div",{ref:t,...l(),children:[D.jsxs("svg",{className:n.wrapper({class:r?.wrapper}),fill:"none",viewBox:"0 0 24 24",children:[D.jsx("circle",{className:n.circle1({class:r?.circle1}),cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),D.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&&D.jsx("span",{className:n.label({class:r?.label}),children:i})]}):s==="spinner"?D.jsxs("div",{ref:t,...l(),children:[D.jsx("div",{className:n.wrapper({class:r?.wrapper}),children:[...new Array(12)].map((c,d)=>D.jsx("i",{className:n.spinnerBars({class:r?.spinnerBars}),style:{"--bar-index":d}},`star-${d}`))}),i&&D.jsx("span",{className:n.label({class:r?.label}),children:i})]}):D.jsxs("div",{ref:t,...l(),children:[D.jsxs("div",{className:n.wrapper({class:r?.wrapper}),children:[D.jsx("i",{className:n.circle1({class:r?.circle1})}),D.jsx("i",{className:n.circle2({class:r?.circle2})})]}),i&&D.jsx("span",{className:n.label({class:r?.label}),children:i})]})});z_.displayName="HeroUI.Spinner";var C6=z_,j_=ai((e,t)=>{const{Component:n,domRef:r,children:i,spinnerSize:s,spinner:l=D.jsx(C6,{color:"current",size:s}),spinnerPlacement:c,startContent:d,endContent:h,isLoading:m,disableRipple:g,getButtonProps:b,getRippleProps:x,isIconOnly:k}=S6({...e,ref:t});return D.jsxs(n,{ref:r,...b(),children:[d,m&&c==="start"&&l,m&&k?null:i,m&&c==="end"&&l,h,!g&&D.jsx(x6,{...x()})]})});j_.displayName="HeroUI.Button";var _o=j_;const B_={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},V_={...B_,customError:!0,valid:!1},ff={isInvalid:!1,validationDetails:B_,validationErrors:[]},U_=S.createContext({}),ev="__formValidationState"+Date.now();function Zx(e){if(e[ev]){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:s}=e[ev];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:s}}return E6(e)}function E6(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:s,validate:l,validationBehavior:c="aria"}=e;n&&(t||(t=n==="invalid"));let d=t!==void 0?{isInvalid:t,validationErrors:[],validationDetails:V_}:null,h=S.useMemo(()=>{if(!l||i==null)return null;let j=P6(l,i);return Ak(j)},[l,i]);s?.validationDetails.valid&&(s=void 0);let m=S.useContext(U_),g=S.useMemo(()=>r?Array.isArray(r)?r.flatMap(j=>$b(m[j])):$b(m[r]):[],[m,r]),[b,x]=S.useState(m),[k,P]=S.useState(!1);m!==b&&(x(m),P(!1));let _=S.useMemo(()=>Ak(k?[]:g),[k,g]),T=S.useRef(ff),[$,L]=S.useState(ff),z=S.useRef(ff),K=()=>{if(!M)return;J(!1);let j=h||s||T.current;v0(j,z.current)||(z.current=j,L(j))},[M,J]=S.useState(!1);return S.useEffect(K),{realtimeValidation:d||_||h||s||ff,displayValidation:c==="native"?d||_||$:d||_||h||s||$,updateValidation(j){c==="aria"&&!v0($,j)?L(j):T.current=j},resetValidation(){let j=ff;v0(j,z.current)||(z.current=j,L(j)),c==="native"&&J(!1),P(!0)},commitValidation(){c==="native"&&J(!0),P(!0)}}}function $b(e){return e?Array.isArray(e)?e:[e]:[]}function P6(e,t){if(typeof e=="function"){let n=e(t);if(n&&typeof n!="boolean")return $b(n)}return[]}function Ak(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:V_}:null}function v0(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 K_(e,t,n){let{validationBehavior:r,focus:i}=e;sn(()=>{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(_6(n.current))}});let s=jn(()=>{t.resetValidation()}),l=jn(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&&I6(m)===n.current){var g;i?i():(g=n.current)===null||g===void 0||g.focus(),O5("keyboard")}d.preventDefault()}),c=jn(()=>{t.commitValidation()});S.useEffect(()=>{let d=n?.current;if(!d)return;let h=d.form;return d.addEventListener("invalid",l),d.addEventListener("change",c),h?.addEventListener("reset",s),()=>{d.removeEventListener("invalid",l),d.removeEventListener("change",c),h?.removeEventListener("reset",s)}},[n,l,c,s,r])}function T6(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 _6(e){return{isInvalid:!e.validity.valid,validationDetails:T6(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function I6(e){for(let t=0;t{z.stopPropagation(),t.setSelected(z.target.checked)},{pressProps:x,isPressed:k}=Su({isDisabled:r}),{pressProps:P,isPressed:_}=Su({onPress(){var z;t.toggle(),(z=n.current)===null||z===void 0||z.focus()},isDisabled:r||i}),{focusableProps:T}=wh(e,n),$=Pn(x,T),L=Iu(e,{labelable:!0});return LE(n,t.isSelected,t.setSelected),{labelProps:Pn(P,{onClick:z=>z.preventDefault()}),inputProps:Pn(L,{"aria-invalid":g||m==="invalid"||void 0,"aria-errormessage":e["aria-errormessage"],"aria-controls":e["aria-controls"],"aria-readonly":i||void 0,onChange:b,disabled:r,...s==null?{}:{value:s},name:l,type:"checkbox",...$}),isSelected:t.isSelected,isPressed:k||_,isDisabled:r,isReadOnly:i,isInvalid:g||m==="invalid"}}function W_(e,t,n){let r=Zx({...e,value:t.isSelected}),{isInvalid:i,validationErrors:s,validationDetails:l}=r.displayValidation,{labelProps:c,inputProps:d,isSelected:h,isPressed:m,isDisabled:g,isReadOnly:b}=$6({...e,isInvalid:i},t,n);K_(e,r,n);let{isIndeterminate:x,isRequired:k,validationBehavior:P="aria"}=e;S.useEffect(()=>{n.current&&(n.current.indeterminate=!!x)});let{pressProps:_}=Su({isDisabled:g||b,onPress(){let{[ev]:T}=e,{commitValidation:$}=T||r;$()}});return{labelProps:Pn(c,_),inputProps:{...d,checked:h,"aria-required":k&&P==="aria"||void 0,required:k&&P==="native"},isSelected:h,isPressed:m,isDisabled:g,isReadOnly:b,isInvalid:i,validationErrors:s,validationDetails:l}}const A6=new WeakMap;function H_(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:s="label"}=e;t=Pf(t);let l=Pf(),c={};n&&(r=r?`${l} ${r}`:l,c={id:l,htmlFor:s==="label"?t:void 0});let d=_E({id:t,"aria-label":i,"aria-labelledby":r});return{labelProps:c,fieldProps:d}}function R6(e){let{description:t,errorMessage:n,isInvalid:r,validationState:i}=e,{labelProps:s,fieldProps:l}=H_(e),c=W0([!!t,!!n,r,i]),d=W0([!!t,!!n,r,i]);return l=Pn(l,{"aria-describedby":[c,d,e["aria-describedby"]].filter(Boolean).join(" ")||void 0}),{labelProps:s,fieldProps:l,descriptionProps:{id:c},errorMessageProps:{id:d}}}function G_(e={}){let{isReadOnly:t}=e,[n,r]=$u(e.isSelected,e.defaultSelected||!1,e.onChange);function i(l){t||r(l)}function s(){t||r(!n)}return{isSelected:n,setSelected:i,toggle:s}}function L6(e,t,n){const r=G_({isReadOnly:e.isReadOnly||t.isReadOnly,isSelected:t.isSelected(e.value),onChange(_){_?t.addValue(e.value):t.removeValue(e.value),e.onChange&&e.onChange(_)}});let{name:i,descriptionId:s,errorMessageId:l,validationBehavior:c}=A6.get(t);var d;c=(d=e.validationBehavior)!==null&&d!==void 0?d:c;let{realtimeValidation:h}=Zx({...e,value:r.isSelected,name:void 0,validationBehavior:"aria"}),m=S.useRef(ff),g=()=>{t.setInvalid(e.value,h.isInvalid?h:m.current)};S.useEffect(g);let b=t.realtimeValidation.isInvalid?t.realtimeValidation:h,x=c==="native"?t.displayValidation:b;var k;let P=W_({...e,isReadOnly:e.isReadOnly||t.isReadOnly,isDisabled:e.isDisabled||t.isDisabled,name:e.name||i,isRequired:(k=e.isRequired)!==null&&k!==void 0?k:t.isRequired,validationBehavior:c,[ev]:{realtimeValidation:b,displayValidation:x,resetValidation:t.resetValidation,commitValidation:t.commitValidation,updateValidation(_){m.current=_,g()}}},r,n);return{...P,inputProps:{...P.inputProps,"aria-describedby":[e["aria-describedby"],t.isInvalid?l:null,s].filter(Boolean).join(" ")||void 0}}}var Rk=Symbol("default");function M6(e){const t=S.useRef(null),n=S.useRef(void 0),r=S.useCallback(i=>{if(typeof e=="function"){const s=e,l=s(i);return()=>{typeof l=="function"?l():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 ew(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[Rk])throw new Error(`A slot prop is required. Valid slot names are ${r}.`);let i=t||Rk;if(!n.slots[i])throw new Error(`Invalid slot "${t}". Valid slot names are ${r}.`);return n.slots[i]}return n}function D6(e,t,n){let r=ew(n,e.slot)||{},{ref:i,...s}=r,l=M6(S.useMemo(()=>pE(t,i),[t,i])),c=on(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,l]}var tv=S.createContext(null),N6=S.forwardRef(function(t,n){[t,n]=D6(t,n,tv);let{validationErrors:r,validationBehavior:i="native",children:s,className:l,...c}=t;const d=S.useMemo(()=>_O({className:l}),[l]);return D.jsx("form",{noValidate:i!=="native",...c,ref:n,className:d,children:D.jsx(tv.Provider,{value:{...t,validationBehavior:i},children:D.jsx(U_.Provider,{value:r??{},children:s})})})}),F6=S.forwardRef(function(t,n){var r,i;const s=li(),l=(i=(r=t.validationBehavior)!=null?r:s?.validationBehavior)!=null?i:"native";return D.jsx(N6,{...t,ref:n,validationBehavior:l})}),[KG,O6]=pv({name:"CheckboxGroupContext",strict:!1});function z6(e){const{isSelected:t,disableAnimation:n,...r}=e;return D.jsx("svg",{"aria-hidden":"true",fill:"none",role:"presentation",stroke:"currentColor",strokeDasharray:22,strokeDashoffset:t?44:66,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,style:!n&&t?{transition:"stroke-dashoffset 250ms linear 0.2s"}:{},viewBox:"0 0 17 18",...r,children:D.jsx("polyline",{points:"1 9 7 14 15 4"})})}function j6(e){const{isSelected:t,disableAnimation:n,...r}=e;return D.jsx("svg",{stroke:"currentColor",strokeWidth:3,viewBox:"0 0 24 24",...r,children:D.jsx("line",{x1:"21",x2:"3",y1:"12",y2:"12"})})}function B6(e){const{isIndeterminate:t,...n}=e,r=t?j6:z6;return D.jsx(r,{...n})}function Ab(e,t=[]){const n=S.useRef(e);return kh(()=>{n.current=e}),S.useCallback((...r)=>{var i;return(i=n.current)==null?void 0:i.call(n,...r)},t)}function V6(e={}){var t,n,r,i,s,l,c,d;const h=li(),m=O6(),{validationBehavior:g}=ew(tv)||{},b=!!m,{as:x,ref:k,value:P="",children:_,icon:T,name:$,isRequired:L,isReadOnly:z=!1,autoFocus:K=!1,isSelected:M,size:J=(t=m?.size)!=null?t:"md",color:re=(n=m?.color)!=null?n:"primary",radius:ae=m?.radius,lineThrough:j=(r=m?.lineThrough)!=null?r:!1,isDisabled:B=(i=m?.isDisabled)!=null?i:!1,disableAnimation:Y=(l=(s=m?.disableAnimation)!=null?s:h?.disableAnimation)!=null?l:!1,validationState:te,isInvalid:G=te?te==="invalid":(c=m?.isInvalid)!=null?c:!1,isIndeterminate:ce=!1,validationBehavior:Z=b?m.validationBehavior:(d=g??h?.validationBehavior)!=null?d:"native",defaultSelected:q,classNames:V,className:se,onValueChange:R,validate:U,...ie}=e,O=x||"label",me=S.useRef(null),Ce=S.useRef(null);let ye=e.onChange;b&&(ye=Jl(()=>{m.groupState.resetValidation()},ye));const Fe=S.useId(),De=S.useMemo(()=>({name:$,value:P,children:_,autoFocus:K,defaultSelected:q,isIndeterminate:ce,isRequired:L,isInvalid:G,isSelected:M,isDisabled:B,isReadOnly:z,"aria-label":dE(ie["aria-label"],_),"aria-labelledby":ie["aria-labelledby"]||Fe,onChange:R}),[$,P,_,K,q,ce,L,G,M,B,z,ie["aria-label"],ie["aria-labelledby"],Fe,R]),Te=G_(De),Xe={isInvalid:G,isRequired:L,validate:U,validationState:te,validationBehavior:Z},{inputProps:lt,isSelected:_e,isDisabled:mt,isReadOnly:pt,isPressed:Vt,isInvalid:Ve}=b?L6({...De,...Xe},m.groupState,Ce):W_({...De,...Xe},Te,Ce),it=mt||pt,Ut=te==="invalid"||G||Ve,Zn=it?!1:Vt,{hoverProps:ln,isHovered:_t}=Eu({isDisabled:lt.disabled}),{focusProps:Rt,isFocused:Tn,isFocusVisible:Er}=Rf({autoFocus:lt.autoFocus}),Nt=S.useMemo(()=>$O({color:re,size:J,radius:ae,isInvalid:Ut,lineThrough:j,isDisabled:mt,disableAnimation:Y}),[re,J,ae,Ut,j,mt,Y]);kh(()=>{if(!Ce.current)return;const Pt=!!Ce.current.checked;Te.setSelected(Pt)},[Ce.current]);const pe=Ab(ye),Se=S.useCallback(Pt=>{if(pt||mt){Pt.preventDefault();return}pe?.(Pt)},[pt,mt,pe]),Oe=tn(V?.base,se),nt=S.useCallback(()=>({ref:me,className:Nt.base({class:Oe}),"data-disabled":$e(mt),"data-selected":$e(_e||ce),"data-invalid":$e(Ut),"data-hover":$e(_t),"data-focus":$e(Tn),"data-pressed":$e(Zn),"data-readonly":$e(lt.readOnly),"data-focus-visible":$e(Er),"data-indeterminate":$e(ce),...on(ln,ie)}),[Nt,Oe,mt,_e,ce,Ut,_t,Tn,Zn,lt.readOnly,Er,ln,ie]),at=S.useCallback((Pt={})=>({...Pt,"aria-hidden":!0,className:tn(Nt.wrapper({class:tn(V?.wrapper,Pt?.className)}))}),[Nt,V?.wrapper]),Kt=S.useCallback(()=>({ref:hE(Ce,k),...on(lt,Rt),className:Nt.hiddenInput({class:V?.hiddenInput}),onChange:Jl(lt.onChange,Se)}),[lt,Rt,Se,V?.hiddenInput]),Bn=S.useCallback(()=>({id:Fe,className:Nt.label({class:V?.label})}),[Nt,V?.label,mt,_e,Ut]),Qt=S.useCallback(()=>({isSelected:_e,isIndeterminate:ce,disableAnimation:Y,className:Nt.icon({class:V?.icon})}),[Nt,V?.icon,_e,ce,Y]);return{Component:O,icon:T,children:_,isSelected:_e,isDisabled:mt,isInvalid:Ut,isFocused:Tn,isHovered:_t,isFocusVisible:Er,getBaseProps:nt,getWrapperProps:at,getInputProps:Kt,getLabelProps:Bn,getIconProps:Qt}}var q_=ai((e,t)=>{const{Component:n,children:r,icon:i=D.jsx(B6,{}),getBaseProps:s,getWrapperProps:l,getInputProps:c,getIconProps:d,getLabelProps:h}=V6({...e,ref:t}),m=typeof i=="function"?i(d()):S.cloneElement(i,d());return D.jsxs(n,{...s(),children:[D.jsx("input",{...c()}),D.jsx("span",{...l(),children:m}),r&&D.jsx("span",{...h(),children:r})]})});q_.displayName="HeroUI.Checkbox";var U6=q_;function Y_(e){let[t,n]=$u(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 K6=1500,Lk=500;let au={},W6=0,wp=!1,Gs=null,uu=null;function H6(e={}){let{delay:t=K6,closeDelay:n=Lk}=e,{isOpen:r,open:i,close:s}=Y_(e),l=S.useMemo(()=>`${++W6}`,[]),c=S.useRef(null),d=S.useRef(s),h=()=>{au[l]=b},m=()=>{for(let k in au)k!==l&&(au[k](!0),delete au[k])},g=()=>{c.current&&clearTimeout(c.current),c.current=null,m(),h(),wp=!0,i(),Gs&&(clearTimeout(Gs),Gs=null),uu&&(clearTimeout(uu),uu=null)},b=k=>{k||n<=0?(c.current&&clearTimeout(c.current),c.current=null,d.current()):c.current||(c.current=setTimeout(()=>{c.current=null,d.current()},n)),Gs&&(clearTimeout(Gs),Gs=null),wp&&(uu&&clearTimeout(uu),uu=setTimeout(()=>{delete au[l],uu=null,wp=!1},Math.max(Lk,n)))},x=()=>{m(),h(),!r&&!Gs&&!wp?Gs=setTimeout(()=>{Gs=null,wp=!0,g()},t):r||g()};return S.useEffect(()=>{d.current=s},[s]),S.useEffect(()=>()=>{c.current&&clearTimeout(c.current),au[l]&&delete au[l]},[l]),{isOpen:r,open:k=>{!k&&t>0&&!c.current?x():g()},close:b}}function G6(e,t){let n=Iu(e,{labelable:!0}),{hoverProps:r}=Eu({onHoverStart:()=>t?.open(!0),onHoverEnd:()=>t?.close()});return{tooltipProps:Pn(n,r,{role:"tooltip"})}}function q6(e,t,n){let{isDisabled:r,trigger:i}=e,s=Pf(),l=S.useRef(!1),c=S.useRef(!1),d=()=>{(l.current||c.current)&&t.open(c.current)},h=T=>{!l.current&&!c.current&&t.close(T)};S.useEffect(()=>{let T=$=>{n&&n.current&&$.key==="Escape"&&($.stopPropagation(),t.close(!0))};if(t.isOpen)return document.addEventListener("keydown",T,!0),()=>{document.removeEventListener("keydown",T,!0)}},[n,t]);let m=()=>{i!=="focus"&&(sh()==="pointer"?l.current=!0:l.current=!1,d())},g=()=>{i!=="focus"&&(c.current=!1,l.current=!1,h())},b=()=>{c.current=!1,l.current=!1,h(!0)},x=()=>{qx()&&(c.current=!0,d())},k=()=>{c.current=!1,l.current=!1,h(!0)},{hoverProps:P}=Eu({isDisabled:r,onHoverStart:m,onHoverEnd:g}),{focusableProps:_}=wh({isDisabled:r,onFocus:x,onBlur:k},n);return{triggerProps:{"aria-describedby":t.isOpen?s:void 0,...Pn(_,P,{onPointerDown:b,onKeyDown:b,tabIndex:void 0})},tooltipProps:{id:s}}}var qs=[];function X_(e,t){const{disableOutsideEvents:n=!0,isDismissable:r=!1,isKeyboardDismissDisabled:i=!1,isOpen:s,onClose:l,shouldCloseOnBlur:c,shouldCloseOnInteractOutside:d}=e;S.useEffect(()=>(s&&qs.push(t),()=>{const P=qs.indexOf(t);P>=0&&qs.splice(P,1)}),[s,t]);const h=()=>{qs[qs.length-1]===t&&l&&l()},m=P=>{(!d||d(P.target))&&(qs[qs.length-1]===t&&n&&(P.stopPropagation(),P.preventDefault()),P.pointerType!=="touch"&&h())},g=P=>{P.pointerType==="touch"&&(!d||d(P.target))&&(qs[qs.length-1]===t&&n&&(P.stopPropagation(),P.preventDefault()),h())},b=P=>{P.key==="Escape"&&!i&&!P.nativeEvent.isComposing&&(P.stopPropagation(),P.preventDefault(),h())};q5({isDisabled:!(r&&s),onInteractOutside:r&&s?g:void 0,onInteractOutsideStart:m,ref:t});const{focusWithinProps:x}=kv({isDisabled:!c,onBlurWithin:P=>{!P.relatedTarget||J5(P.relatedTarget)||(!d||d(P.relatedTarget))&&h()}}),k=P=>{P.target===P.currentTarget&&P.preventDefault()};return{overlayProps:{onKeyDown:b,...x},underlayProps:{onPointerDown:k}}}function Y6(e){var t,n;const r=li(),[i,s]=ra(e,hk.variantKeys),{ref:l,as:c,isOpen:d,content:h,children:m,defaultOpen:g,onOpenChange:b,isDisabled:x,trigger:k,shouldFlip:P=!0,containerPadding:_=12,placement:T="top",delay:$=0,closeDelay:L=500,showArrow:z=!1,offset:K=7,crossOffset:M=0,isDismissable:J,shouldCloseOnBlur:re=!0,portalContainer:ae,isKeyboardDismissDisabled:j=!1,updatePositionDeps:B=[],shouldCloseOnInteractOutside:Y,className:te,onClose:G,motionProps:ce,classNames:Z,...q}=i,V=c||"div",se=(n=(t=e?.disableAnimation)!=null?t:r?.disableAnimation)!=null?n:!1,R=H6({delay:$,closeDelay:L,isDisabled:x,defaultOpen:g,isOpen:d,onOpenChange:Ve=>{b?.(Ve),Ve||G?.()}}),U=S.useRef(null),ie=S.useRef(null),O=S.useId(),me=R.isOpen&&!x;S.useImperativeHandle(l,()=>sL(ie));const{triggerProps:Ce,tooltipProps:ye}=q6({isDisabled:x,trigger:k},R,U),{tooltipProps:Fe}=G6({isOpen:me,...on(i,ye)},R),{overlayProps:De,placement:Te,updatePosition:Xe}=S5({isOpen:me,targetRef:U,placement:m6(T),overlayRef:ie,offset:z?K+3:K,crossOffset:M,shouldFlip:P,containerPadding:_});kh(()=>{B.length&&Xe()},B);const{overlayProps:lt}=X_({isOpen:me,onClose:R.close,isDismissable:J,shouldCloseOnBlur:re,isKeyboardDismissDisabled:j,shouldCloseOnInteractOutside:Y},ie),_e=S.useMemo(()=>{var Ve,it,Ut;return hk({...s,disableAnimation:se,radius:(Ve=e?.radius)!=null?Ve:"md",size:(it=e?.size)!=null?it:"md",shadow:(Ut=e?.shadow)!=null?Ut:"sm"})},[nl(s),se,e?.radius,e?.size,e?.shadow]),mt=S.useCallback((Ve={},it=null)=>({...on(Ce,Ve),ref:hE(it,U),"aria-describedby":me?O:void 0}),[Ce,me,O,R]),pt=S.useCallback(()=>({ref:ie,"data-slot":"base","data-open":$e(me),"data-arrow":$e(z),"data-disabled":$e(x),"data-placement":$k(Te||"top",T),...on(Fe,lt,q),style:on(De.style,q.style,i.style),className:_e.base({class:Z?.base}),id:O}),[_e,me,z,x,Te,T,Fe,lt,q,De,i,O]),Vt=S.useCallback(()=>({"data-slot":"content","data-open":$e(me),"data-arrow":$e(z),"data-disabled":$e(x),"data-placement":$k(Te||"top",T),className:_e.content({class:tn(Z?.content,te)})}),[_e,me,z,x,Te,T,Z]);return{Component:V,content:h,children:m,isOpen:me,triggerRef:U,showArrow:z,portalContainer:ae,placement:T,disableAnimation:se,isDisabled:x,motionProps:ce,getTooltipContentProps:Vt,getTriggerProps:mt,getTooltipProps:pt}}var X6=()=>ro(()=>import("./index-d6pKlm-a.js"),[]).then(e=>e.default),Q_=ai((e,t)=>{var n;const{Component:r,children:i,content:s,isOpen:l,portalContainer:c,placement:d,disableAnimation:h,motionProps:m,getTriggerProps:g,getTooltipProps:b,getTooltipContentProps:x}=Y6({...e,ref:t});let k;try{if(S.Children.count(i)!==1)throw new Error;if(!S.isValidElement(i))k=D.jsx("p",{...g(),children:i});else{const K=i,M=(n=K.props.ref)!=null?n:K.ref;k=S.cloneElement(K,g(K.props,M))}}catch{k=D.jsx("span",{}),mL("Tooltip must have only one child node. Please, check your code.")}const{ref:P,id:_,style:T,...$}=b(),L=D.jsx("div",{ref:P,id:_,style:T,children:D.jsx(Af.div,{animate:"enter",exit:"exit",initial:"exit",variants:Zg.scaleSpring,...on(m,$),style:{...h6(d)},children:D.jsx(r,{...x(),children:s})},`${_}-tooltip-inner`)},`${_}-tooltip-content`);return D.jsxs(D.Fragment,{children:[k,h?l&&D.jsx(ik,{portalContainer:c,children:D.jsx("div",{ref:P,id:_,style:T,...$,children:D.jsx(r,{...x(),children:s})})}):D.jsx($f,{features:X6,children:D.jsx(Ru,{children:l&&D.jsx(ik,{portalContainer:c,children:L})})})]})});Q_.displayName="HeroUI.Tooltip";var Q6=Q_;function J6(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 l=null;return t&&(n>0?l=setTimeout(()=>{s(!0)},n):s(!0)),()=>{r.current=!1,t&&s(!1),l&&clearTimeout(l)}},[t]),[S.useCallback(()=>r.current,[]),i]}function Z6(e){let{value:t=0,minValue:n=0,maxValue:r=100,valueLabel:i,isIndeterminate:s,formatOptions:l={style:"percent"}}=e,c=Iu(e,{labelable:!0}),{labelProps:d,fieldProps:h}=H_({...e,labelElementType:"span"});t=Bg(t,n,r);let m=(t-n)/(r-n),g=PM(l);if(!s&&!i){let b=l.style==="percent"?m:t;i=g.format(b)}return{progressBarProps:Pn(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 ez(e){var t,n,r;const i=li(),[s,l]=ra(e,mk.variantKeys),{ref:c,as:d,id:h,className:m,classNames:g,label:b,valueLabel:x,value:k=void 0,minValue:P=0,maxValue:_=100,strokeWidth:T,showValueLabel:$=!1,formatOptions:L={style:"percent"},...z}=s,K=d||"div",M=Zi(c),J=tn(g?.base,m),[,re]=J6({rerender:!0,delay:100}),ae=((t=e.isIndeterminate)!=null?t:!0)&&k===void 0,j=(r=(n=e.disableAnimation)!=null?n:i?.disableAnimation)!=null?r:!1,{progressBarProps:B,labelProps:Y}=Z6({id:h,label:b,value:k,minValue:P,maxValue:_,valueLabel:x,formatOptions:L,isIndeterminate:ae,"aria-labelledby":e["aria-labelledby"],"aria-label":e["aria-label"]}),te=S.useMemo(()=>mk({...l,disableAnimation:j,isIndeterminate:ae}),[nl(l),j,ae]),G=j?!0:re,ce=16,Z=T||(e.size==="sm"?2:3),q=16-Z,V=2*q*Math.PI,se=S.useMemo(()=>G?ae?.25:k?hL((k-P)/(_-P),1):0:0,[G,k,P,_,ae]),R=V-se*V,U=S.useCallback((ye={})=>({ref:M,"data-indeterminate":$e(ae),"data-disabled":$e(e.isDisabled),className:te.base({class:J}),...on(B,z,ye)}),[M,te,ae,e.isDisabled,J,B,z]),ie=S.useCallback((ye={})=>({className:te.label({class:g?.label}),...on(Y,ye)}),[te,g,Y]),O=S.useCallback((ye={})=>({viewBox:"0 0 32 32",fill:"none",strokeWidth:Z,className:te.svg({class:g?.svg}),...ye}),[Z,te,g]),me=S.useCallback((ye={})=>({cx:ce,cy:ce,r:q,role:"presentation",strokeDasharray:`${V} ${V}`,strokeDashoffset:R,transform:"rotate(-90 16 16)",strokeLinecap:"round",className:te.indicator({class:g?.indicator}),...ye}),[te,g,R,V,q]),Ce=S.useCallback((ye={})=>({cx:ce,cy:ce,r:q,role:"presentation",strokeDasharray:`${V} ${V}`,strokeDashoffset:0,transform:"rotate(-90 16 16)",strokeLinecap:"round",className:te.track({class:g?.track}),...ye}),[te,g,V,q]);return{Component:K,domRef:M,slots:te,classNames:g,label:b,showValueLabel:$,getProgressBarProps:U,getLabelProps:ie,getSvgProps:O,getIndicatorProps:me,getTrackProps:Ce}}var J_=ai((e,t)=>{const{Component:n,slots:r,classNames:i,label:s,showValueLabel:l,getProgressBarProps:c,getLabelProps:d,getSvgProps:h,getIndicatorProps:m,getTrackProps:g}=ez({ref:t,...e}),b=c();return D.jsxs(n,{...b,children:[D.jsxs("div",{className:r.svgWrapper({class:i?.svgWrapper}),children:[D.jsxs("svg",{...h(),children:[D.jsx("circle",{...g()}),D.jsx("circle",{...m()})]}),l&&D.jsx("span",{className:r.value({class:i?.value}),children:b["aria-valuetext"]})]}),s&&D.jsx("span",{...d(),children:s})]})});J_.displayName="HeroUI.CircularProgress";var Z_=J_;function tz(e,t){let{inputElementType:n="input",isDisabled:r=!1,isRequired:i=!1,isReadOnly:s=!1,type:l="text",validationBehavior:c="aria"}=e,[d,h]=$u(e.value,e.defaultValue||"",e.onChange),{focusableProps:m}=wh(e,t),g=Zx({...e,value:d}),{isInvalid:b,validationErrors:x,validationDetails:k}=g.displayValidation,{labelProps:P,fieldProps:_,descriptionProps:T,errorMessageProps:$}=R6({...e,isInvalid:b,errorMessage:e.errorMessage||x}),L=Iu(e,{labelable:!0});const z={type:l,pattern:e.pattern};return LE(t,d,h),K_(e,g,t),S.useEffect(()=>{if(t.current instanceof eo(t.current).HTMLTextAreaElement){let K=t.current;Object.defineProperty(K,"defaultValue",{get:()=>K.value,set:()=>{},configurable:!0})}},[t]),{labelProps:P,inputProps:Pn(L,n==="input"?z: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:K=>h(K.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:$,isInvalid:b,validationErrors:x,validationDetails:k}}function nz(e){var t,n,r,i,s,l,c;const d=li(),{validationBehavior:h}=ew(tv)||{},[m,g]=ra(e,yk.variantKeys),{ref:b,as:x,type:k,label:P,baseRef:_,wrapperRef:T,description:$,className:L,classNames:z,autoFocus:K,startContent:M,endContent:J,onClear:re,onChange:ae,validationState:j,validationBehavior:B=(t=h??d?.validationBehavior)!=null?t:"native",innerWrapperRef:Y,onValueChange:te=()=>{},...G}=m,ce=S.useCallback(Ye=>{te(Ye??"")},[te]),[Z,q]=S.useState(!1),V=x||"div",se=(r=(n=e.disableAnimation)!=null?n:d?.disableAnimation)!=null?r:!1,R=Zi(b),U=Zi(_),ie=Zi(T),O=Zi(Y),[me,Ce]=$u(m.value,(i=m.defaultValue)!=null?i:"",ce),ye=k==="file",Fe=((c=(l=(s=R?.current)==null?void 0:s.files)==null?void 0:l.length)!=null?c:0)>0,De=["date","time","month","week","range"].includes(k),Te=!uL(me)||De||Fe,Xe=Te||Z,lt=k==="hidden",_e=e.isMultiline,mt=tn(z?.base,L,Te?"is-filled":""),pt=S.useCallback(()=>{var Ye;ye?R.current.value="":Ce(""),re?.(),(Ye=R.current)==null||Ye.focus()},[Ce,re,ye]);kh(()=>{R.current&&Ce(R.current.value)},[R.current]);const{labelProps:Vt,inputProps:Ve,isInvalid:it,validationErrors:Ut,validationDetails:Zn,descriptionProps:ln,errorMessageProps:_t}=tz({...e,validationBehavior:B,autoCapitalize:e.autoCapitalize,value:me,"aria-label":e.label?e["aria-label"]:dE(e["aria-label"],e.placeholder),inputElementType:_e?"textarea":"input",onChange:Ce},R);ye&&(delete Ve.value,delete Ve.onChange);const{isFocusVisible:Rt,isFocused:Tn,focusProps:Er}=Rf({autoFocus:K,isTextInput:!0}),{isHovered:Nt,hoverProps:pe}=Eu({isDisabled:!!e?.isDisabled}),{isHovered:Se,hoverProps:Oe}=Eu({isDisabled:!!e?.isDisabled}),{focusProps:nt,isFocusVisible:at}=Rf(),{focusWithinProps:Kt}=kv({onFocusWithinChange:q}),{pressProps:Bn}=Su({isDisabled:!!e?.isDisabled||!!e?.isReadOnly,onPress:pt}),Qt=j==="invalid"||it,Pt=wF({labelPlacement:e.labelPlacement,label:P}),Pr=typeof m.errorMessage=="function"?m.errorMessage({isInvalid:Qt,validationErrors:Ut,validationDetails:Zn}):m.errorMessage||Ut?.join(" "),Ft=!!re||e.isClearable,er=!!P||!!$||!!Pr,an=!!m.placeholder,ol=!!P,hs=!!$||!!Pr,ci=Pt==="outside-left",fi=Pt==="outside-top",la=Pt==="outside"||ci||fi,Mu=Pt==="inside",ms=R.current?(!R.current.value||R.current.value===""||!me||me==="")&&an:!1,jr=!!M,aa=la?ci||fi||an||Pt==="outside"&&jr:!1,ua=Pt==="outside"&&!an&&!jr,Jt=S.useMemo(()=>yk({...g,isInvalid:Qt,labelPlacement:Pt,isClearable:Ft,disableAnimation:se}),[nl(g),Qt,Pt,Ft,jr,se]),gs=S.useCallback((Ye={})=>({ref:U,className:Jt.base({class:mt}),"data-slot":"base","data-filled":$e(Te||an||jr||ms||ye),"data-filled-within":$e(Xe||an||jr||ms||ye),"data-focus-within":$e(Z),"data-focus-visible":$e(Rt),"data-readonly":$e(e.isReadOnly),"data-focus":$e(Tn),"data-hover":$e(Nt||Se),"data-required":$e(e.isRequired),"data-invalid":$e(Qt),"data-disabled":$e(e.isDisabled),"data-has-elements":$e(er),"data-has-helper":$e(hs),"data-has-label":$e(ol),"data-has-value":$e(!ms),"data-hidden":$e(lt),...Kt,...Ye}),[Jt,mt,Te,Tn,Nt,Se,Qt,hs,ol,er,ms,jr,Z,Rt,Xe,an,Kt,lt,e.isReadOnly,e.isRequired,e.isDisabled]),vs=S.useCallback((Ye={})=>({"data-slot":"label",className:Jt.label({class:z?.label}),...on(Vt,Oe,Ye)}),[Jt,Se,Vt,z?.label]),Ro=S.useCallback(Ye=>{Ye.key==="Escape"&&me&&(Ft||re)&&!e.isReadOnly&&(Ce(""),re?.())},[me,Ce,re,Ft,e.isReadOnly]),ca=S.useCallback((Ye={})=>({"data-slot":"input","data-filled":$e(Te),"data-filled-within":$e(Xe),"data-has-start-content":$e(jr),"data-has-end-content":$e(!!J),"data-type":k,className:Jt.input({class:tn(z?.input,Te?"is-filled":"",_e?"pe-0":"",k==="password"?"[&::-ms-reveal]:hidden":"")}),...on(Er,Ve,Ef(G,{enabled:!0,labelable:!0,omitEventNames:new Set(Object.keys(Ve))}),Ye),"aria-readonly":$e(e.isReadOnly),onChange:Jl(Ve.onChange,ae),onKeyDown:Jl(Ve.onKeyDown,Ye.onKeyDown,Ro),ref:R}),[Jt,me,Er,Ve,G,Te,Xe,jr,J,z?.input,e.isReadOnly,e.isRequired,ae,Ro]),ys=S.useCallback((Ye={})=>({ref:ie,"data-slot":"input-wrapper","data-hover":$e(Nt||Se),"data-focus-visible":$e(Rt),"data-focus":$e(Tn),className:Jt.inputWrapper({class:tn(z?.inputWrapper,Te?"is-filled":"")}),...on(Ye,pe),onClick:oo=>{R.current&&oo.currentTarget===oo.target&&R.current.focus()},style:{cursor:"text",...Ye.style}}),[Jt,Nt,Se,Rt,Tn,me,z?.inputWrapper]),sl=S.useCallback((Ye={})=>({...Ye,ref:O,"data-slot":"inner-wrapper",onClick:oo=>{R.current&&oo.currentTarget===oo.target&&R.current.focus()},className:Jt.innerWrapper({class:tn(z?.innerWrapper,Ye?.className)})}),[Jt,z?.innerWrapper]),ll=S.useCallback((Ye={})=>({...Ye,"data-slot":"main-wrapper",className:Jt.mainWrapper({class:tn(z?.mainWrapper,Ye?.className)})}),[Jt,z?.mainWrapper]),fa=S.useCallback((Ye={})=>({...Ye,"data-slot":"helper-wrapper",className:Jt.helperWrapper({class:tn(z?.helperWrapper,Ye?.className)})}),[Jt,z?.helperWrapper]),Wf=S.useCallback((Ye={})=>({...Ye,...ln,"data-slot":"description",className:Jt.description({class:tn(z?.description,Ye?.className)})}),[Jt,z?.description]),Hf=S.useCallback((Ye={})=>({...Ye,..._t,"data-slot":"error-message",className:Jt.errorMessage({class:tn(z?.errorMessage,Ye?.className)})}),[Jt,_t,z?.errorMessage]),Gf=S.useCallback((Ye={})=>({...Ye,type:"button",tabIndex:-1,disabled:e.isDisabled,"aria-label":"clear input","data-slot":"clear-button","data-focus-visible":$e(at),className:Jt.clearButton({class:tn(z?.clearButton,Ye?.className)}),...on(Bn,nt)}),[Jt,at,Bn,nt,z?.clearButton]);return{Component:V,classNames:z,domRef:R,label:P,description:$,startContent:M,endContent:J,labelPlacement:Pt,isClearable:Ft,hasHelper:hs,hasStartContent:jr,isLabelOutside:aa,isOutsideLeft:ci,isOutsideTop:fi,isLabelOutsideAsPlaceholder:ua,shouldLabelBeOutside:la,shouldLabelBeInside:Mu,hasPlaceholder:an,isInvalid:Qt,errorMessage:Pr,getBaseProps:gs,getLabelProps:vs,getInputProps:ca,getMainWrapperProps:ll,getInputWrapperProps:ys,getInnerWrapperProps:sl,getHelperWrapperProps:fa,getDescriptionProps:Wf,getErrorMessageProps:Hf,getClearButtonProps:Gf}}function Rb(){return Rb=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:k,shouldLabelBeInside:P,isInvalid:_,errorMessage:T,getBaseProps:$,getLabelProps:L,getInputProps:z,getInnerWrapperProps:K,getInputWrapperProps:M,getHelperWrapperProps:J,getDescriptionProps:re,getErrorMessageProps:ae,isClearable:j,getClearButtonProps:B}=nz({...l,ref:c,isMultiline:!0}),[Y,te]=S.useState(t>1),[G,ce]=S.useState(!1),Z=h?D.jsx("label",{...L(),children:h}):null,q=z(),V=(me,Ce)=>{if(t===1&&te(me>=Ce.rowHeight*2),n>t){const ye=me>=n*Ce.rowHeight;ce(ye)}s?.(me,Ce)},se=i?D.jsx("textarea",{...q,style:on(q.style,e??{})}):D.jsx(bz,{...q,cacheMeasurements:r,"data-hide-scroll":$e(!G),maxRows:n,minRows:t,style:on(q.style,e??{}),onHeightChange:V}),R=S.useMemo(()=>j?D.jsx("button",{...B(),children:D.jsx(qO,{})}):null,[j,B]),U=S.useMemo(()=>g||b?D.jsxs("div",{...K(),children:[g,se,b]}):D.jsx("div",{...K(),children:se}),[g,q,b,K]),ie=_&&T,O=ie||m;return D.jsxs(d,{...$(),children:[k?Z:null,D.jsxs("div",{...M(),"data-has-multiple-rows":$e(Y),children:[P?Z:null,U,R]}),x&&O?D.jsx("div",{...J(),children:ie?D.jsx("div",{...ae(),children:T}):D.jsx("div",{...re(),children:m})}):null]})});e2.displayName="HeroUI.Textarea";var xz=e2;function wz(e,t){let{role:n="dialog"}=e,r=W0();r=e["aria-label"]?void 0:r;let i=S.useRef(!1);return S.useEffect(()=>{if(t.current&&!t.current.contains(document.activeElement)){Cu(t.current);let s=setTimeout(()=>{document.activeElement===t.current&&(i.current=!0,t.current&&(t.current.blur(),Cu(t.current)),i.current=!1)},500);return()=>{clearTimeout(s)}}},[t]),h_(),{dialogProps:{...Iu(e,{labelable:!0}),role:n,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||r,onBlur:s=>{i.current&&s.stopPropagation()}},titleProps:{id:r}}}function Sz(e){var t,n;const r=li(),[i,s]=ra(e,xk.variantKeys),{ref:l,as:c,src:d,className:h,classNames:m,loading:g,isBlurred:b,fallbackSrc:x,isLoading:k,disableSkeleton:P=!!x,removeWrapper:_=!1,onError:T,onLoad:$,srcSet:L,sizes:z,crossOrigin:K,...M}=i,J=v6({src:d,loading:g,onError:T,onLoad:$,ignoreFallback:!1,srcSet:L,sizes:z,crossOrigin:K,shouldBypassImageLoad:c!==void 0}),re=(n=(t=e.disableAnimation)!=null?t:r?.disableAnimation)!=null?n:!1,ae=J==="loaded"&&!k,j=J==="loading"||k,B=e.isZoomed,Y=c||"img",te=Zi(l),{w:G,h:ce}=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]),Z=(!d||!ae)&&!!x,q=j&&!P,V=S.useMemo(()=>xk({...s,disableAnimation:re,showSkeleton:q}),[nl(s),re,q]),se=tn(h,m?.img),R=(O={})=>{const me=tn(se,O?.className);return{src:d,ref:te,"data-loaded":$e(ae),className:V.img({class:me}),loading:g,srcSet:L,sizes:z,crossOrigin:K,...M,style:{...M?.height&&{height:ce},...O.style,...M.style}}},U=S.useCallback(()=>{const O=Z?{backgroundImage:`url(${x})`}:{};return{className:V.wrapper({class:m?.wrapper}),style:{...O,maxWidth:G}}},[V,Z,x,m?.wrapper,G]),ie=S.useCallback(()=>({src:d,"aria-hidden":$e(!0),className:V.blurredImg({class:m?.blurredImg})}),[V,d,m?.blurredImg]);return{Component:Y,domRef:te,slots:V,classNames:m,isBlurred:b,disableSkeleton:P,fallbackSrc:x,removeWrapper:_,isZoomed:B,isLoading:j,getImgProps:R,getWrapperProps:U,getBlurredImgProps:ie}}var t2=ai((e,t)=>{const{Component:n,domRef:r,slots:i,classNames:s,isBlurred:l,isZoomed:c,fallbackSrc:d,removeWrapper:h,disableSkeleton:m,getImgProps:g,getWrapperProps:b,getBlurredImgProps:x}=Sz({...e,ref:t}),k=D.jsx(n,{ref:r,...g()});if(h)return k;const P=D.jsx("div",{className:i.zoomedWrapper({class:s?.zoomedWrapper}),children:k});return l?D.jsxs("div",{...b(),children:[c?P:k,S.cloneElement(k,x())]}):c||!m||d?D.jsxs("div",{...b(),children:[" ",c?P:k]}):k});t2.displayName="HeroUI.Image";var y0=t2,[kz,n2]=pv({name:"ModalContext",errorMessage:"useModalContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),r2=ai((e,t)=>{const{as:n,children:r,className:i,...s}=e,{slots:l,classNames:c,bodyId:d,setBodyMounted:h}=n2(),m=Zi(t),g=n||"div";return S.useEffect(()=>(h(!0),()=>h(!1)),[h]),D.jsx(g,{ref:m,className:l.body({class:tn(c?.body,i)}),id:d,...s,children:r})});r2.displayName="HeroUI.ModalBody";var Cz=r2,Ez={enter:{scale:"var(--scale-enter)",y:"var(--slide-enter)",opacity:1,willChange:"auto",transition:{scale:{duration:.4,ease:Vp.ease},opacity:{duration:.4,ease:Vp.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:Vp.ease}}},ls=typeof document<"u"&&window.visualViewport,Pz=We.createContext(!1);function Tz(){return!1}function _z(){return!0}function Iz(e){return()=>{}}function $z(){return typeof We.useSyncExternalStore=="function"?We.useSyncExternalStore(Iz,Tz,_z):S.useContext(Pz)}function Az(){let e=$z(),[t,n]=S.useState(()=>e?{width:0,height:0}:zk());return S.useEffect(()=>{let r=()=>{n(i=>{let s=zk();return s.width===i.width&&s.height===i.height?i:s})};return ls?ls.addEventListener("resize",r):window.addEventListener("resize",r),()=>{ls?ls.removeEventListener("resize",r):window.removeEventListener("resize",r)}},[]),t}function zk(){return{width:ls&&ls?.width||window.innerWidth,height:ls&&ls?.height||window.innerHeight}}var jk=()=>ro(()=>import("./index-d6pKlm-a.js"),[]).then(e=>e.default),i2=e=>{const{as:t,children:n,role:r="dialog",...i}=e,{Component:s,domRef:l,slots:c,classNames:d,motionProps:h,backdrop:m,closeButton:g,hideCloseButton:b,disableAnimation:x,getDialogProps:k,getBackdropProps:P,getCloseButtonProps:_,onClose:T}=n2(),$=t||s||"div",L=Az(),{dialogProps:z}=wz({role:r},l),K=S.isValidElement(g)?S.cloneElement(g,_()):D.jsx("button",{..._(),children:D.jsx(YO,{})}),M=S.useCallback(Y=>{Y.key==="Tab"&&Y.nativeEvent.isComposing&&(Y.stopPropagation(),Y.preventDefault())},[]),J=k(on(z,i)),re=D.jsxs($,{...J,onKeyDown:Jl(J.onKeyDown,M),children:[D.jsx(sk,{onDismiss:T}),!b&&K,typeof n=="function"?n(T):n,D.jsx(sk,{onDismiss:T})]}),ae=S.useMemo(()=>m==="transparent"?null:x?D.jsx("div",{...P()}):D.jsx($f,{features:jk,children:D.jsx(Af.div,{animate:"enter",exit:"exit",initial:"exit",variants:Zg.fade,...P()})}),[m,x,P]),j={"--visual-viewport-height":L.height+"px"},B=x?D.jsx("div",{className:c.wrapper({class:d?.wrapper}),"data-slot":"wrapper",style:j,children:re}):D.jsx($f,{features:jk,children:D.jsx(Af.div,{animate:"enter",className:c.wrapper({class:d?.wrapper}),"data-slot":"wrapper",exit:"exit",initial:"exit",variants:Ez,...h,style:j,children:re})});return D.jsxs("div",{tabIndex:-1,children:[ae,B]})};i2.displayName="HeroUI.ModalContent";var Rz=i2;function Lz(e={shouldBlockScroll:!0},t,n){let{overlayProps:r,underlayProps:i}=X_({...e,isOpen:t.isOpen,onClose:t.close},n);return lF({isDisabled:!t.isOpen||!e.shouldBlockScroll}),h_(),S.useEffect(()=>{if(t.isOpen&&n.current)return yF([n.current])},[t.isOpen,n]),{modalProps:Pn(r),underlayProps:i}}function Mz(e){var t,n,r;const i=li(),[s,l]=ra(e,bk.variantKeys),{ref:c,as:d,className:h,classNames:m,isOpen:g,defaultOpen:b,onOpenChange:x,motionProps:k,closeButton:P,isDismissable:_=!0,hideCloseButton:T=!1,shouldBlockScroll:$=!0,portalContainer:L,isKeyboardDismissDisabled:z=!1,onClose:K,...M}=s,J=d||"section",re=Zi(c),ae=S.useRef(null),[j,B]=S.useState(!1),[Y,te]=S.useState(!1),G=(n=(t=e.disableAnimation)!=null?t:i?.disableAnimation)!=null?n:!1,ce=S.useId(),Z=S.useId(),q=S.useId(),V=Y_({isOpen:g,defaultOpen:b,onOpenChange:Te=>{x?.(Te),Te||K?.()}}),{modalProps:se,underlayProps:R}=Lz({isDismissable:_,shouldBlockScroll:$,isKeyboardDismissDisabled:z},V,re),{buttonProps:U}=F_({onPress:V.close},ae),{isFocusVisible:ie,focusProps:O}=Rf(),me=tn(m?.base,h),Ce=S.useMemo(()=>bk({...l,disableAnimation:G}),[nl(l),G]),ye=(Te={},Xe=null)=>{var lt;return{ref:pE(Xe,re),...on(se,M,Te),className:Ce.base({class:tn(me,Te.className)}),id:ce,"data-open":$e(V.isOpen),"data-dismissable":$e(_),"aria-modal":$e(!0),"data-placement":(lt=e?.placement)!=null?lt:"right","aria-labelledby":j?Z:void 0,"aria-describedby":Y?q:void 0}},Fe=S.useCallback((Te={})=>({className:Ce.backdrop({class:m?.backdrop}),...R,...Te}),[Ce,m,R]),De=()=>({role:"button",tabIndex:0,"aria-label":"Close","data-focus-visible":$e(ie),className:Ce.closeButton({class:m?.closeButton}),...on(U,O)});return{Component:J,slots:Ce,domRef:re,headerId:Z,bodyId:q,motionProps:k,classNames:m,isDismissable:_,closeButton:P,hideCloseButton:T,portalContainer:L,shouldBlockScroll:$,backdrop:(r=e.backdrop)!=null?r:"opaque",isOpen:V.isOpen,onClose:V.close,disableAnimation:G,setBodyMounted:te,setHeaderMounted:B,getDialogProps:ye,getBackdropProps:Fe,getCloseButtonProps:De}}var o2=ai((e,t)=>{const{children:n,...r}=e,i=Mz({...r,ref:t}),s=D.jsx(bF,{portalContainer:i.portalContainer,children:n});return D.jsx(kz,{value:i,children:i.disableAnimation&&i.isOpen?s:D.jsx(Ru,{children:i.isOpen?s:null})})});o2.displayName="HeroUI.Modal";var Dz=o2;function Nz(e={}){const{id:t,defaultOpen:n,isOpen:r,onClose:i,onOpen:s,onChange:l=()=>{}}=e,c=Ab(s),d=Ab(i),[h,m]=$u(r,n||!1,l),g=S.useId(),b=t||g,x=r!==void 0,k=S.useCallback(()=>{x||m(!1),d?.()},[x,d]),P=S.useCallback(()=>{x||m(!0),c?.()},[x,c]),_=S.useCallback(()=>{(h?k:P)()},[h,P,k]);return{isOpen:!!h,onOpen:P,onClose:k,onOpenChange:_,isControlled:x,getButtonProps:(T={})=>({...T,"aria-expanded":h,"aria-controls":b,onClick:Tf(T.onClick,_)}),getDisclosureProps:(T={})=>({...T,hidden:!h,id:b})}}function Fz(e){var t,n;const r=li(),[i,s]=ra(e,vk.variantKeys),{as:l,children:c,isLoaded:d=!1,className:h,classNames:m,...g}=i,b=l||"div",x=(n=(t=e.disableAnimation)!=null?t:r?.disableAnimation)!=null?n:!1,k=S.useMemo(()=>vk({...s,disableAnimation:x}),[nl(s),x,c]),P=tn(m?.base,h);return{Component:b,children:c,slots:k,classNames:m,getSkeletonProps:($={})=>({"data-loaded":$e(d),className:k.base({class:tn(P,$?.className)}),...g}),getContentProps:($={})=>({className:k.content({class:tn(m?.content,$?.className)})})}}var s2=ai((e,t)=>{const{Component:n,children:r,getSkeletonProps:i,getContentProps:s}=Fz({...e});return D.jsx(n,{ref:t,...i(),children:D.jsx("div",{...s(),children:r})})});s2.displayName="HeroUI.Skeleton";var Oz=s2;function zz(e={}){const{domRef:t,isEnabled:n=!0,overflowCheck:r="vertical",visibility:i="auto",offset:s=0,onVisibilityChange:l,updateDeps:c=[]}=e,d=S.useRef(i);S.useEffect(()=>{const h=t?.current;if(!h||!n)return;const m=(x,k,P,_,T)=>{if(i==="auto"){const $=`${_}${fL(T)}Scroll`;k&&P?(h.dataset[$]="true",h.removeAttribute(`data-${_}-scroll`),h.removeAttribute(`data-${T}-scroll`)):(h.dataset[`${_}Scroll`]=k.toString(),h.dataset[`${T}Scroll`]=P.toString(),h.removeAttribute(`data-${_}-${T}-scroll`))}else{const $=k&&P?"both":k?_:P?T:"none";$!==d.current&&(l?.($),d.current=$)}},g=()=>{var x,k;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),$=+((k=_?.getAttribute("data-virtual-scroll-top"))!=null?k:h.scrollTop);for(const{type:L,prefix:z,suffix:K}of P)if(r===L||r==="both"){const M=L==="vertical"?$>s:h.scrollLeft>s,J=L==="vertical"?$+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,l,t])}function jz(e){var t;const[n,r]=ra(e,gk.variantKeys),{ref:i,as:s,children:l,className:c,style:d,size:h=40,offset:m=0,visibility:g="auto",isEnabled:b=!0,onVisibilityChange:x,...k}=n,P=s||"div",_=Zi(i);zz({domRef:_,offset:m,visibility:g,isEnabled:b,onVisibilityChange:x,updateDeps:[l],overflowCheck:(t=e.orientation)!=null?t:"vertical"});const T=S.useMemo(()=>gk({...r,className:c}),[nl(r),c]);return{Component:P,styles:T,domRef:_,children:l,getBaseProps:(L={})=>{var z;return{ref:_,className:T,"data-orientation":(z=e.orientation)!=null?z:"vertical",style:{"--scroll-shadow-size":`${h}px`,...d,...L.style},...k,...L}}}}var l2=ai((e,t)=>{const{Component:n,children:r,getBaseProps:i}=jz({...e,ref:t});return D.jsx(n,{...i(),children:r})});l2.displayName="HeroUI.ScrollShadow";var a2=l2;const kr={Text:"text",Reference:"reference",StateUpdate:"state_update",MessageId:"message_id",ConversationId:"conversation_id",ConversationSummary:"conversation_summary",LiveUpdate:"live_update",FollowupMessages:"followup_messages",Image:"image",ChunkedContent:"chunked_content",ClearMessage:"clear_message",Usage:"usage",TodoItem:"todo_item"},WG={Like:"like",Dislike:"dislike"},Bz={Start:"START"},Sf={User:"user",Assistant:"assistant"},af={Pending:"pending",InProgress:"in_progress",Completed:"completed"};class u2{constructor(t={}){if(this.chunkQueue=new Map,this.baseUrl=t.baseUrl??"",this.auth=t.auth,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={...{"Content-Type":"application/json"},...this.normalizeHeaders(n.headers)};this.auth?.getToken&&(i.Authorization=`Bearer ${this.auth.getToken()}`);const s=await fetch(t,{...n,headers:i});if(s.status===401&&this.auth?.onUnauthorized?.(),!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return s}async makeRequest(t,n){const{method:r="GET",body:i,headers:s={},...l}=n||{},c={method:r,headers:s,...l};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 l=!1;const c=async h=>{const m=h.body?.pipeThrough(new TextDecoderStream).getReader();if(!m)throw new Error("Response body is null");let g="";for(;!l&&!i?.aborted;)try{const{value:b,done:x}=await m.read();if(x){r.onClose?.();break}g+=b;const k=g.split(` +`);g=k.pop()??"";for(const P of k)if(P.startsWith("data: "))try{const _=P.replace("data: ","").trim(),T=JSON.parse(_);if(T.type===kr.ChunkedContent){this.handleChunkedContent(T,r);continue}await r.onMessage(T),await new Promise($=>setTimeout($,0))}catch(_){console.error("Error parsing JSON:",_),await r.onError(new Error("Error processing server response"))}}catch(b){if(i?.aborted)return;console.error("Stream error:",b),await r.onError(new Error("Error reading stream"));break}},d=async()=>{try{const m={...{"Content-Type":"application/json",Accept:"text/event-stream"},...s};this.auth?.getToken&&(m.Authorization=`Bearer ${this.auth.getToken()}`);const g=await fetch(this._buildApiUrl(t.toString()),{method:"POST",headers:m,body:JSON.stringify(n),signal:i});if(g.status===401&&this.auth?.onUnauthorized?.(),!g.ok)throw new Error(`HTTP error! status: ${g.status}`);await c(g)}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()=>{l=!0}}normalizeHeaders(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):t:{}}async handleChunkedContent(t,n){const i=t.content,{content_type:s,id:l,chunk_index:c,total_chunks:d,mime_type:h,data:m}=i;this.chunkQueue.has(l)||this.chunkQueue.set(l,{chunks:new Map,totalChunks:d,mimeType:h});const g=this.chunkQueue.get(l);if(g.chunks.set(c,m),g.chunks.size!==d)return;const x=Array.from({length:d},(k,P)=>g.chunks.get(P)).join("");try{atob(x)}catch(k){this.chunkQueue.delete(l),console.error("❌ Invalid base64 data: ",k),await n.onError(new Error("Error reading stream"))}if(s===kr.Image){const k={type:kr.Image,content:{id:l,url:`${g.mimeType},${x}`}};await n.onMessage(k)}this.chunkQueue.delete(l)}}const c2=S.createContext(null);function Vz({children:e,...t}){const n=S.useMemo(()=>new u2(t),[t]),r=S.useMemo(()=>({client:n}),[n]);return D.jsx(c2.Provider,{value:r,children:e})}function f2(){const e=S.useContext(c2);if(!e)throw new Error("useRagbitsContext must be used within a RagbitsProvider");return e}function Uz(e,t){const{client:n}=f2(),[r,i]=S.useState(null),[s,l]=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 k=new AbortController;h.current=k,d(!0),l(null);try{const _={...{...t,...x,headers:{...t?.headers,...x.headers}},signal:k.signal},T=await n.makeRequest(e,_);return k.signal.aborted||(i(T),h.current=null),T}catch(P){if(!k.signal.aborted){const _=P instanceof Error?P:new Error("API call failed");throw l(_),h.current=null,_}throw P}finally{k.signal.aborted||d(!1)}},[n,e,t,c]),b=S.useCallback(()=>{m(),i(null),l(null),d(!1)},[m]);return{data:r,error:s,isLoading:c,call:g,reset:b,abort:m}}var Po=(e=>(e.LIGHT="light",e.DARK="dark",e))(Po||{});const d2=S.createContext(null),Kz="🐰",Wz="Ragbits Chat",Hz="by deepsense.ai",Gz="Loading...",p2="";function qz(){return window.matchMedia("(prefers-color-scheme: dark)").matches?Po.DARK:Po.LIGHT}function Bk(){const e=window.localStorage.getItem("theme");return e===Po.DARK||e===Po.LIGHT?e:qz()}function Yz(e){return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}const Xz=({children:e})=>{const t=S.useSyncExternalStore(Yz,Bk,Bk),n=S.useRef(!1),r=new u2({baseUrl:p2});S.useEffect(()=>{if(n.current)return;(async()=>{try{const c=r.getBaseUrl(),d=await fetch(`${c}/api/theme`);if(d.ok){const h=await d.text(),m=document.getElementById("heroui-custom-theme");m&&m.remove();const g=document.createElement("style");g.id="heroui-custom-theme",g.textContent=h,document.head.appendChild(g),console.log("Custom HeroUI theme loaded successfully"),n.current=!0}}catch(c){console.warn("No custom theme available:",c),n.current=!0}})()},[]),S.useEffect(()=>{document.documentElement.classList.toggle("dark",t===Po.DARK)},[t]);const i=S.useCallback(l=>{window.localStorage.setItem("theme",l),window.dispatchEvent(new Event("storage"))},[]),s=S.useMemo(()=>({theme:t,setTheme:i}),[t,i]);return D.jsx(d2.Provider,{value:s,children:e})},h2=Object.freeze({left:0,top:0,width:16,height:16}),nv=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),nw=Object.freeze({...h2,...nv}),Lb=Object.freeze({...nw,body:"",hidden:!1});function Qz(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 Vk(e,t){const n=Qz(e,t);for(const r in Lb)r in nv?r in e&&!(r in n)&&(n[r]=nv[r]):r in t?n[r]=t[r]:r in e&&(n[r]=e[r]);return n}function Jz(e,t){const n=e.icons,r=e.aliases||Object.create(null),i=Object.create(null);function s(l){if(n[l])return i[l]=[];if(!(l in i)){i[l]=null;const c=r[l]&&r[l].parent,d=c&&s(c);d&&(i[l]=[c].concat(d))}return i[l]}return Object.keys(n).concat(Object.keys(r)).forEach(s),i}function Zz(e,t,n){const r=e.icons,i=e.aliases||Object.create(null);let s={};function l(c){s=Vk(r[c]||i[c],s)}return l(t),n.forEach(l),Vk(e,s)}function m2(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=Jz(e);for(const i in r){const s=r[i];s&&(t(i,Zz(e,i,s)),n.push(i))}return n}const e8={provider:"",aliases:{},not_found:{},...h2};function b0(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function g2(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!b0(e,e8))return null;const n=t.icons;for(const i in n){const s=n[i];if(!i||typeof s.body!="string"||!b0(s,Lb))return null}const r=t.aliases||Object.create(null);for(const i in r){const s=r[i],l=s.parent;if(!i||typeof l!="string"||!n[l]&&!r[l]||!b0(s,Lb))return null}return t}const v2=/^[a-z0-9]+(-[a-z0-9]+)*$/,Cv=(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&&!Dg(h)?null:h}const s=i[0],l=s.split("-");if(l.length>1){const c={provider:r,prefix:l.shift(),name:l.join("-")};return t&&!Dg(c)?null:c}if(n&&r===""){const c={provider:r,prefix:"",name:s};return t&&!Dg(c,n)?null:c}return null},Dg=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1,Uk=Object.create(null);function t8(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function Lf(e,t){const n=Uk[e]||(Uk[e]=Object.create(null));return n[t]||(n[t]=t8(e,t))}function y2(e,t){return g2(t)?m2(t,(n,r)=>{r?e.icons[n]=r:e.missing.add(n)}):[]}function n8(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}let ah=!1;function b2(e){return typeof e=="boolean"&&(ah=e),ah}function Kk(e){const t=typeof e=="string"?Cv(e,!0,ah):e;if(t){const n=Lf(t.provider,t.prefix),r=t.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function r8(e,t){const n=Cv(e,!0,ah);if(!n)return!1;const r=Lf(n.provider,n.prefix);return t?n8(r,n.name,t):(r.missing.add(n.name),!0)}function i8(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),ah&&!t&&!e.prefix){let i=!1;return g2(e)&&(e.prefix="",m2(e,(s,l)=>{r8(s,l)&&(i=!0)})),i}const n=e.prefix;if(!Dg({prefix:n,name:"a"}))return!1;const r=Lf(t,n);return!!y2(r,e)}const x2=Object.freeze({width:null,height:null}),w2=Object.freeze({...x2,...nv}),o8=/(-?[0-9.]*[0-9]+[0-9.]*)/g,s8=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Wk(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(o8);if(r===null||!r.length)return e;const i=[];let s=r.shift(),l=s8.test(s);for(;;){if(l){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("");l=!l}}function l8(e,t="defs"){let n="";const r=e.indexOf("<"+t);for(;r>=0;){const i=e.indexOf(">",r),s=e.indexOf("",s);if(l===-1)break;n+=e.slice(i+1,s).trim(),e=e.slice(0,r).trim()+e.slice(l+1)}return{defs:n,content:e}}function a8(e,t){return e?""+e+""+t:t}function u8(e,t,n){const r=l8(e);return a8(r.defs,t+r.content+n)}const c8=e=>e==="unset"||e==="undefined"||e==="none";function f8(e,t){const n={...nw,...e},r={...w2,...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,$=P.vFlip;let L=P.rotate;T?$?L+=2:(_.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),_.push("scale(-1 1)"),i.top=i.left=0):$&&(_.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),_.push("scale(1 -1)"),i.top=i.left=0);let z;switch(L<0&&(L-=Math.floor(L/4)*4),L=L%4,L){case 1:z=i.height/2+i.top,_.unshift("rotate(90 "+z.toString()+" "+z.toString()+")");break;case 2:_.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:z=i.width/2+i.left,_.unshift("rotate(-90 "+z.toString()+" "+z.toString()+")");break}L%2===1&&(i.left!==i.top&&(z=i.left,i.left=i.top,i.top=z),i.width!==i.height&&(z=i.width,i.width=i.height,i.height=z)),_.length&&(s=u8(s,'',""))});const l=r.width,c=r.height,d=i.width,h=i.height;let m,g;l===null?(g=c===null?"1em":c==="auto"?h:c,m=Wk(g,d/h)):(m=l==="auto"?d:l,g=c===null?Wk(m,h/d):c==="auto"?h:c);const b={},x=(P,_)=>{c8(_)||(b[P]=_.toString())};x("width",m),x("height",g);const k=[i.left,i.top,d,h];return b.viewBox=k.join(" "),{attributes:b,viewBox:k,body:s}}const d8=/\sid="(\S+)"/g,p8="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let h8=0;function m8(e,t=p8){const n=[];let r;for(;r=d8.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 l=typeof t=="function"?t(s):t+(h8++).toString(),c=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+c+')([")]|\\.[a-z])',"g"),"$1"+l+i+"$3")}),e=e.replace(new RegExp(i,"g"),""),e}const Mb=Object.create(null);function g8(e,t){Mb[e]=t}function Db(e){return Mb[e]||Mb[""]}function rw(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 iw=Object.create(null),Sp=["https://api.simplesvg.com","https://api.unisvg.com"],Ng=[];for(;Sp.length>0;)Sp.length===1||Math.random()>.5?Ng.push(Sp.shift()):Ng.push(Sp.pop());iw[""]=rw({resources:["https://api.iconify.design"].concat(Ng)});function v8(e,t){const n=rw(t);return n===null?!1:(iw[e]=n,!0)}function ow(e){return iw[e]}const y8=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let Hk=y8();function b8(e,t){const n=ow(e);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let i=0;n.resources.forEach(l=>{i=Math.max(i,l.length)});const s=t+".json?icons=";r=n.maxURL-i-n.path.length-s.length}return r}function x8(e){return e===404}const w8=(e,t,n)=>{const r=[],i=b8(e,t),s="icons";let l={type:s,provider:e,prefix:t,icons:[]},c=0;return n.forEach((d,h)=>{c+=d.length+1,c>=i&&h>0&&(r.push(l),l={type:s,provider:e,prefix:t,icons:[]},c=d.length),l.icons.push(d)}),r.push(l),r};function S8(e){if(typeof e=="string"){const t=ow(e);if(t)return t.path}return"/"}const k8=(e,t,n)=>{if(!Hk){n("abort",424);return}let r=S8(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;Hk(e+r).then(s=>{const l=s.status;if(l!==200){setTimeout(()=>{n(x8(l)?"abort":"next",l)});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)})},C8={prepare:w8,send:k8};function E8(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,l=i.prefix,c=i.name,d=n[s]||(n[s]=Object.create(null)),h=d[l]||(d[l]=Lf(s,l));let m;c in h.icons?m=t.loaded:l===""||h.missing.has(c)?m=t.missing:m=t.pending;const g={provider:s,prefix:l,name:c};m.push(g)}),t}function S2(e,t){e.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(i=>i.id!==t))})}function P8(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 l=s.icons,c=l.pending.length;l.pending=l.pending.filter(d=>{if(d.prefix!==i)return!0;const h=d.name;if(e.icons[h])l.loaded.push({provider:r,prefix:i,name:h});else if(e.missing.has(h))l.missing.push({provider:r,prefix:i,name:h});else return n=!0,!0;return!1}),l.pending.length!==c&&(n||S2([e],s.id),s.callback(l.loaded.slice(0),l.missing.slice(0),l.pending.slice(0),s.abort))})}))}let T8=0;function _8(e,t,n){const r=T8++,i=S2.bind(null,n,r);if(!t.pending.length)return i;const s={id:r,icons:t,callback:e,abort:i};return n.forEach(l=>{(l.loaderCallbacks||(l.loaderCallbacks=[])).push(s)}),i}function I8(e,t=!0,n=!1){const r=[];return e.forEach(i=>{const s=typeof i=="string"?Cv(i,t,n):i;s&&r.push(s)}),r}var $8={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function A8(e,t,n,r){const i=e.resources.length,s=e.random?Math.floor(Math.random()*i):e.index;let l;if(e.random){let M=e.resources.slice(0);for(l=[];M.length>1;){const J=Math.floor(Math.random()*M.length);l.push(M[J]),M=M.slice(0,J).concat(M.slice(J+1))}l=l.concat(M)}else l=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 k(){g&&(clearTimeout(g),g=null)}function P(){d==="pending"&&(d="aborted"),k(),b.forEach(M=>{M.status==="pending"&&(M.status="aborted")}),b=[]}function _(M,J){J&&(x=[]),typeof M=="function"&&x.push(M)}function T(){return{startTime:c,payload:t,status:d,queriesSent:h,queriesPending:b.length,subscribe:_,abort:P}}function $(){d="failed",x.forEach(M=>{M(void 0,m)})}function L(){b.forEach(M=>{M.status==="pending"&&(M.status="aborted")}),b=[]}function z(M,J,re){const ae=J!=="success";switch(b=b.filter(j=>j!==M),d){case"pending":break;case"failed":if(ae||!e.dataAfterTimeout)return;break;default:return}if(J==="abort"){m=re,$();return}if(ae){m=re,b.length||(l.length?K():$());return}if(k(),L(),!e.random){const j=e.resources.indexOf(M.resource);j!==-1&&j!==e.index&&(e.index=j)}d="completed",x.forEach(j=>{j(re)})}function K(){if(d!=="pending")return;k();const M=l.shift();if(M===void 0){if(b.length){g=setTimeout(()=>{k(),d==="pending"&&(L(),$())},e.timeout);return}$();return}const J={status:"pending",resource:M,callback:(re,ae)=>{z(J,re,ae)}};b.push(J),h++,g=setTimeout(K,e.rotate),n(M,t,J.callback)}return setTimeout(K),T}function k2(e){const t={...$8,...e};let n=[];function r(){n=n.filter(c=>c().status==="pending")}function i(c,d,h){const m=A8(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 Gk(){}const x0=Object.create(null);function R8(e){if(!x0[e]){const t=ow(e);if(!t)return;const n=k2(t),r={config:t,redundancy:n};x0[e]=r}return x0[e]}function L8(e,t,n){let r,i;if(typeof e=="string"){const s=Db(e);if(!s)return n(void 0,424),Gk;i=s.send;const l=R8(e);l&&(r=l.redundancy)}else{const s=rw(e);if(s){r=k2(s);const l=e.resources?e.resources[0]:"",c=Db(l);c&&(i=c.send)}}return!r||!i?(n(void 0,424),Gk):r.query(t,i,n)().abort}function qk(){}function M8(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,P8(e)}))}function D8(e){const t=[],n=[];return e.forEach(r=>{(r.match(v2)?t:n).push(r)}),{valid:t,invalid:n}}function kp(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(!y2(e,n).length){r();return}}catch(i){console.error(i)}r(),M8(e)}function Yk(e,t){e instanceof Promise?e.then(n=>{t(n)}).catch(()=>{t(null)}):t(e)}function N8(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)){Yk(e.loadIcons(i,r,n),m=>{kp(e,i,m)});return}if(s){i.forEach(m=>{const g=s(m,r,n);Yk(g,b=>{const x=b?{prefix:r,icons:{[m]:b}}:null;kp(e,[m],x)})});return}const{valid:l,invalid:c}=D8(i);if(c.length&&kp(e,c,null),!l.length)return;const d=r.match(v2)?Db(n):null;if(!d){kp(e,l,null);return}d.prepare(n,r,l).forEach(m=>{L8(n,m,g=>{kp(e,m.icons,g)})})}))}const C2=(e,t)=>{const n=I8(e,!0,b2()),r=E8(n);if(!r.pending.length){let d=!0;return t&&setTimeout(()=>{d&&t(r.loaded,r.missing,r.pending,qk)}),()=>{d=!1}}const i=Object.create(null),s=[];let l,c;return r.pending.forEach(d=>{const{provider:h,prefix:m}=d;if(m===c&&h===l)return;l=h,c=m,s.push(Lf(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=Lf(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&&N8(d,h)}),t?_8(t,r,s):qk};function F8(e,t){const n={...e};for(const r in t){const i=t[r],s=typeof i;r in x2?(i===null||i&&(s==="string"||s==="number"))&&(n[r]=i):s===typeof n[r]&&(n[r]=r==="rotate"?i%4:i)}return n}const O8=/[\s,]+/;function z8(e,t){t.split(O8).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function j8(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 B8(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 V8(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function U8(e){return"data:image/svg+xml,"+V8(e)}function K8(e){return'url("'+U8(e)+'")'}let Up;function W8(){try{Up=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{Up=null}}function H8(e){return Up===void 0&&W8(),Up?Up.createHTML(e):e}const E2={...w2,inline:!1},G8={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},q8={display:"inline-block"},Nb={backgroundColor:"currentColor"},P2={backgroundColor:"transparent"},Xk={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Qk={WebkitMask:Nb,mask:Nb,background:P2};for(const e in Qk){const t=Qk[e];for(const n in Xk)t[e+n]=Xk[n]}const Y8={...E2,inline:!0};function Jk(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const X8=(e,t,n)=>{const r=t.inline?Y8:E2,i=F8(r,t),s=t.mode||"svg",l={},c=t.style||{},d={...s==="svg"?G8:{}};if(n){const _=Cv(n,!1,!0);if(_){const T=["iconify"],$=["provider","prefix"];for(const L of $)_[L]&&T.push("iconify--"+_[L]);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"&&z8(i,T);break;case"color":l.color=T;break;case"rotate":typeof T=="string"?i[_]=j8(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=f8(e,i),m=h.attributes;if(i.inline&&(l.verticalAlign="-0.125em"),s==="svg"){d.style={...l,...c},Object.assign(d,m);let _=0,T=t.id;return typeof T=="string"&&(T=T.replace(/-/g,"_")),d.dangerouslySetInnerHTML={__html:H8(m8(h.body,T?()=>T+"ID"+_++:"iconifyReact"))},S.createElement("svg",d)}const{body:g,width:b,height:x}=e,k=s==="mask"||(s==="bg"?!1:g.indexOf("currentColor")!==-1),P=B8(g,{...m,width:b+"",height:x+""});return d.style={...l,"--svg":K8(P),width:Jk(m.width),height:Jk(m.height),...q8,...k?Nb:P2,...c},S.createElement("span",d)};b2(!0);g8("",C8);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"||!i8(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;v8(n,i)||console.error(r)}catch{console.error(r)}}}}function T2(e){const[t,n]=S.useState(!!e.ssr),[r,i]=S.useState({});function s(x){if(x){const k=e.icon;if(typeof k=="object")return{name:"",data:k};const P=Kk(k);if(P)return{name:k,data:P}}return{name:""}}const[l,c]=S.useState(s(!!e.ssr));function d(){const x=r.callback;x&&(x(),i({}))}function h(x){if(JSON.stringify(l)!==JSON.stringify(x))return d(),c(x),!0}function m(){var x;const k=e.icon;if(typeof k=="object"){h({name:"",data:k});return}const P=Kk(k);if(h({name:k,data:P}))if(P===void 0){const _=C2([k],m);i({callback:_})}else P&&((x=e.onLoad)===null||x===void 0||x.call(e,k))}S.useEffect(()=>(n(!0),d),[]),S.useEffect(()=>{t&&m()},[e.icon,t]);const{name:g,data:b}=l;return b?X8({...nw,...b},e,g):e.children?e.children:e.fallback?e.fallback:S.createElement("span",{})}const Pi=S.forwardRef((e,t)=>T2({...e,_ref:t}));S.forwardRef((e,t)=>T2({inline:!0,...e,_ref:t}));var Mp={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 Q8=Mp.exports,Zk;function J8(){return Zk||(Zk=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.",l="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,k=1,P=2,_=1,T=2,$=4,L=8,z=16,K=32,M=64,J=128,re=256,ae=512,j=30,B="...",Y=800,te=16,G=1,ce=2,Z=3,q=1/0,V=9007199254740991,se=17976931348623157e292,R=NaN,U=4294967295,ie=U-1,O=U>>>1,me=[["ary",J],["bind",_],["bindKey",T],["curry",L],["curryRight",z],["flip",ae],["partial",K],["partialRight",M],["rearg",re]],Ce="[object Arguments]",ye="[object Array]",Fe="[object AsyncFunction]",De="[object Boolean]",Te="[object Date]",Xe="[object DOMException]",lt="[object Error]",_e="[object Function]",mt="[object GeneratorFunction]",pt="[object Map]",Vt="[object Number]",Ve="[object Null]",it="[object Object]",Ut="[object Promise]",Zn="[object Proxy]",ln="[object RegExp]",_t="[object Set]",Rt="[object String]",Tn="[object Symbol]",Er="[object Undefined]",Nt="[object WeakMap]",pe="[object WeakSet]",Se="[object ArrayBuffer]",Oe="[object DataView]",nt="[object Float32Array]",at="[object Float64Array]",Kt="[object Int8Array]",Bn="[object Int16Array]",Qt="[object Int32Array]",Pt="[object Uint8Array]",Pr="[object Uint8ClampedArray]",Ft="[object Uint16Array]",er="[object Uint32Array]",an=/\b__p \+= '';/g,ol=/\b(__p \+=) '' \+/g,hs=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ci=/&(?:amp|lt|gt|quot|#39);/g,fi=/[&<>"']/g,la=RegExp(ci.source),Mu=RegExp(fi.source),ms=/<%-([\s\S]+?)%>/g,jr=/<%([\s\S]+?)%>/g,aa=/<%=([\s\S]+?)%>/g,ua=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Jt=/^\w*$/,gs=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,vs=/[\\^$.*+?()[\]{}|]/g,Ro=RegExp(vs.source),ca=/^\s+/,ys=/\s/,sl=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ll=/\{\n\/\* \[wrapped with (.+)\] \*/,fa=/,? & /,Wf=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Hf=/[()=,{}\[\]\/\s]/,Gf=/\\(\\)?/g,Ye=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,oo=/\w*$/,Ah=/^[-+]0x[0-9a-f]+$/i,Ov=/^0b[01]+$/i,Rh=/^\[object .+?Constructor\]$/,Lh=/^0o[0-7]+$/i,Mh=/^(?:0|[1-9]\d*)$/,Dh=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Du=/($^)/,zv=/['\n\r\u2028\u2029\\]/g,Wt="\\ud800-\\udfff",jv="\\u0300-\\u036f",qf="\\ufe20-\\ufe2f",Nh="\\u20d0-\\u20ff",da=jv+qf+Nh,Fh="\\u2700-\\u27bf",Yf="a-z\\xdf-\\xf6\\xf8-\\xff",Nu="\\xac\\xb1\\xd7\\xf7",Ai="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Bv="\\u2000-\\u206f",di=" \\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",Oh="A-Z\\xc0-\\xd6\\xd8-\\xde",zh="\\ufe0e\\ufe0f",jh=Nu+Ai+Bv+di,al="['’]",Fu="["+Wt+"]",ul="["+jh+"]",bs="["+da+"]",Bh="\\d+",Vv="["+Fh+"]",Ou="["+Yf+"]",Xf="[^"+Wt+jh+Bh+Fh+Yf+Oh+"]",pa="\\ud83c[\\udffb-\\udfff]",ha="(?:"+bs+"|"+pa+")",Vh="[^"+Wt+"]",ma="(?:\\ud83c[\\udde6-\\uddff]){2}",Et="[\\ud800-\\udbff][\\udc00-\\udfff]",xs="["+Oh+"]",Qf="\\u200d",zu="(?:"+Ou+"|"+Xf+")",Uh="(?:"+xs+"|"+Xf+")",Jf="(?:"+al+"(?:d|ll|m|re|s|t|ve))?",Zf="(?:"+al+"(?:D|LL|M|RE|S|T|VE))?",ju=ha+"?",ga="["+zh+"]?",Lo="(?:"+Qf+"(?:"+[Vh,ma,Et].join("|")+")"+ga+ju+")*",Mo="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Do="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",cl=ga+ju+Lo,va="(?:"+[Vv,ma,Et].join("|")+")"+cl,No="(?:"+[Vh+bs+"?",bs,ma,Et,Fu].join("|")+")",Uv=RegExp(al,"g"),Kh=RegExp(bs,"g"),ws=RegExp(pa+"(?="+pa+")|"+No+cl,"g"),Kv=RegExp([xs+"?"+Ou+"+"+Jf+"(?="+[ul,xs,"$"].join("|")+")",Uh+"+"+Zf+"(?="+[ul,xs+zu,"$"].join("|")+")",xs+"?"+zu+"+"+Jf,xs+"+"+Zf,Do,Mo,Bh,va].join("|"),"g"),Wh=RegExp("["+Qf+Wt+da+zh+"]"),Bu=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Hh=["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"],Wv=-1,It={};It[nt]=It[at]=It[Kt]=It[Bn]=It[Qt]=It[Pt]=It[Pr]=It[Ft]=It[er]=!0,It[Ce]=It[ye]=It[Se]=It[De]=It[Oe]=It[Te]=It[lt]=It[_e]=It[pt]=It[Vt]=It[it]=It[ln]=It[_t]=It[Rt]=It[Nt]=!1;var Tt={};Tt[Ce]=Tt[ye]=Tt[Se]=Tt[Oe]=Tt[De]=Tt[Te]=Tt[nt]=Tt[at]=Tt[Kt]=Tt[Bn]=Tt[Qt]=Tt[pt]=Tt[Vt]=Tt[it]=Tt[ln]=Tt[_t]=Tt[Rt]=Tt[Tn]=Tt[Pt]=Tt[Pr]=Tt[Ft]=Tt[er]=!0,Tt[lt]=Tt[_e]=Tt[Nt]=!1;var fl={À:"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"},Vu={"&":"&","<":"<",">":">",'"':""","'":"'"},Hv={"&":"&","<":"<",">":">",""":'"',"'":"'"},Gv={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ed=parseFloat,Uu=parseInt,Ku=typeof og=="object"&&og&&og.Object===Object&&og,Gh=typeof self=="object"&&self&&self.Object===Object&&self,Ht=Ku||Gh||Function("return this")(),ya=t&&!t.nodeType&&t,Ri=ya&&!0&&e&&!e.nodeType&&e,td=Ri&&Ri.exports===ya,dl=td&&Ku.process,tr=function(){try{var ne=Ri&&Ri.require&&Ri.require("util").types;return ne||dl&&dl.binding&&dl.binding("util")}catch{}}(),nd=tr&&tr.isArrayBuffer,dr=tr&&tr.isDate,Ss=tr&&tr.isMap,Wu=tr&&tr.isRegExp,pl=tr&&tr.isSet,qh=tr&&tr.isTypedArray;function nr(ne,he,fe){switch(fe.length){case 0:return ne.call(he);case 1:return ne.call(he,fe[0]);case 2:return ne.call(he,fe[0],fe[1]);case 3:return ne.call(he,fe[0],fe[1],fe[2])}return ne.apply(he,fe)}function rd(ne,he,fe,Ae){for(var rt=-1,wt=ne==null?0:ne.length;++rt-1}function od(ne,he,fe){for(var Ae=-1,rt=ne==null?0:ne.length;++Ae-1;);return fe}function dd(ne,he){for(var fe=ne.length;fe--&&hl(he,ne[fe],0)>-1;);return fe}function nm(ne,he){for(var fe=ne.length,Ae=0;fe--;)ne[fe]===he&&++Ae;return Ae}var rm=Yu(fl),im=Yu(Vu);function om(ne){return"\\"+Gv[ne]}function ml(ne,he){return ne==null?n:ne[he]}function gl(ne){return Wh.test(ne)}function Zv(ne){return Bu.test(ne)}function ey(ne){for(var he,fe=[];!(he=ne.next()).done;)fe.push(he.value);return fe}function Xu(ne){var he=-1,fe=Array(ne.size);return ne.forEach(function(Ae,rt){fe[++he]=[rt,Ae]}),fe}function pd(ne,he){return function(fe){return ne(he(fe))}}function Br(ne,he){for(var fe=-1,Ae=ne.length,rt=0,wt=[];++fe-1}function gm(u,f){var y=this.__data__,E=Gn(y,u);return E<0?(++this.size,y.push([u,f])):y[E][1]=f,this}rr.prototype.clear=Tl,rr.prototype.delete=mr,rr.prototype.get=cc,rr.prototype.has=mm,rr.prototype.set=gm;function Ur(u){var f=-1,y=u==null?0:u.length;for(this.clear();++f=f?u:f)),u}function gr(u,f,y,E,I,F){var H,Q=f&g,oe=f&b,ge=f&x;if(y&&(H=I?y(u,E,I,F):y(u)),H!==n)return H;if(!fn(u))return u;var ve=st(u);if(ve){if(H=Ga(u),!Q)return ir(u,H)}else{var we=Fn(u),Ie=we==_e||we==mt;if(Kl(u))return Dd(u,Q);if(we==it||we==Ce||Ie&&!I){if(H=oe||Ie?{}:On(u),!Q)return oe?ay(u,hi(H,u)):Tc(u,jt(H,u))}else{if(!Tt[we])return I?u:{};H=uy(u,we,Q)}}F||(F=new Hn);var Ue=F.get(u);if(Ue)return Ue;F.set(u,H),Bw(u)?u.forEach(function(Ze){H.add(gr(Ze,f,y,Ze,u,F))}):zw(u)&&u.forEach(function(Ze,gt){H.set(gt,gr(Ze,f,y,gt,u,F))});var Je=ge?oe?Ka:Ua:oe?ei:Xn,dt=ve?n:Je(u);return Vn(dt||u,function(Ze,gt){dt&&(gt=Ze,Ze=u[gt]),$s(H,gt,gr(Ze,f,y,gt,u,F))}),H}function xm(u){var f=Xn(u);return function(y){return Aa(y,u,f)}}function Aa(u,f,y){var E=y.length;if(u==null)return!E;for(u=$t(u);E--;){var I=y[E],F=f[I],H=u[I];if(H===n&&!(I in u)||!F(H))return!1}return!0}function wd(u,f,y){if(typeof u!="function")throw new Vr(l);return Bl(function(){u.apply(n,y)},f)}function zi(u,f,y,E){var I=-1,F=Gu,H=!0,Q=u.length,oe=[],ge=f.length;if(!Q)return oe;y&&(f=Lt(f,Tr(y))),E?(F=od,H=!1):f.length>=i&&(F=so,H=!1,f=new Ts(f));e:for(;++II?0:I+y),E=E===n||E>I?I:ct(E),E<0&&(E+=I),E=y>E?0:Uw(E);y0&&y(Q)?f>1?rn(Q,f-1,y,E,I):Oo(I,Q):E||(I[I.length]=Q)}return I}var mc=Ic(),La=Ic(!0);function Ar(u,f){return u&&mc(u,f,Xn)}function Ho(u,f){return u&&La(u,f,Xn)}function Il(u,f){return Fo(f,function(y){return Ks(u[y])})}function po(u,f){f=Ui(f,u);for(var y=0,E=f.length;u!=null&&yf}function Hr(u,f){return u!=null&&St.call(u,f)}function Rs(u,f){return u!=null&&f in $t(u)}function kd(u,f,y){return u>=Un(f,y)&&u=120&&ve.length>=120)?new Ts(H&&ve):n}ve=u[0];var we=-1,Ie=Q[0];e:for(;++we-1;)Q!==u&&rc.call(Q,oe,1),rc.call(u,oe,1);return u}function bn(u,f){for(var y=u?f.length:0,E=y-1;y--;){var I=f[y];if(y==E||I!==F){var F=I;qt(I)?rc.call(u,I,1):Cc(u,I)}}return u}function Rl(u,f){return u+jo(Pa()*(f-u+1))}function Fa(u,f,y,E){for(var I=-1,F=hn(Es((f-u)/(y||1)),0),H=fe(F);F--;)H[E?F:++I]=u,u+=y;return H}function Ms(u,f){var y="";if(!u||f<1||f>V)return y;do f%2&&(y+=u),f=jo(f/2),f&&(u+=u);while(f);return y}function ut(u,f){return Rr(Oc(u,f,ti),u+"")}function qn(u){return Fi(rf(u))}function Id(u,f){var y=rf(u);return zc(y,fo(f,0,y.length))}function Ds(u,f,y,E){if(!fn(u))return u;f=Ui(f,u);for(var I=-1,F=f.length,H=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=fe(I);++E>>1,H=u[F];H!==null&&!Si(H)&&(y?H<=f:H=i){var ge=f?null:Lm(u);if(ge)return zo(ge);H=!1,I=so,oe=new Ts}else oe=f?[]:Q;e:for(;++E=E?u:Yn(u,f,y)}var Md=dm||function(u){return Ht.clearTimeout(u)};function Dd(u,f){if(f)return u.slice();var y=u.length,E=md?md(y):new u.constructor(y);return u.copy(E),E}function ja(u){var f=new u.constructor(u.byteLength);return new Ca(f).set(new Ca(u)),f}function Pm(u,f){var y=f?ja(u.buffer):u.buffer;return new u.constructor(y,u.byteOffset,u.byteLength)}function Tm(u){var f=new u.constructor(u.source,oo.exec(u));return f.lastIndex=u.lastIndex,f}function _m(u){return Ir?$t(Ir.call(u)):{}}function Im(u,f){var y=f?ja(u.buffer):u.buffer;return new u.constructor(y,u.byteOffset,u.length)}function Nd(u,f){if(u!==f){var y=u!==n,E=u===null,I=u===u,F=Si(u),H=f!==n,Q=f===null,oe=f===f,ge=Si(f);if(!Q&&!ge&&!F&&u>f||F&&H&&oe&&!Q&&!ge||E&&H&&oe||!y&&oe||!I)return 1;if(!E&&!F&&!ge&&u=Q)return oe;var ge=y[E];return oe*(ge=="desc"?-1:1)}}return u.index-f.index}function $m(u,f,y,E){for(var I=-1,F=u.length,H=y.length,Q=-1,oe=f.length,ge=hn(F-H,0),ve=fe(oe+ge),we=!E;++Q1?y[I-1]:n,H=I>2?y[2]:n;for(F=u.length>3&&typeof F=="function"?(I--,F):n,H&&sr(y[0],y[1],H)&&(F=I<3?n:F,I=1),f=$t(f);++E-1?I[F?f[H]:H]:n}}function Ac(u){return Wi(function(f){var y=f.length,E=y,I=Kn.prototype.thru;for(u&&f.reverse();E--;){var F=f[E];if(typeof F!="function")throw new Vr(l);if(I&&!H&&zl(F)=="wrapper")var H=new Kn([],!0)}for(E=H?E:y;++E1&&xt.reverse(),ve&&oeQ))return!1;var ge=F.get(u),ve=F.get(f);if(ge&&ve)return ge==f&&ve==u;var we=-1,Ie=!0,Ue=y&P?new Ts:n;for(F.set(u,f),F.set(f,u);++we1?"& ":"")+f[E],f=f.join(y>2?", ":" "),u.replace(sl,`{ +/* [wrapped with `+f+`] */ +`)}function Nc(u){return st(u)||ru(u)||!!(fm&&u&&u[fm])}function qt(u,f){var y=typeof u;return f=f??V,!!f&&(y=="number"||y!="symbol"&&Mh.test(u))&&u>-1&&u%1==0&&u0){if(++f>=Y)return arguments[0]}else f=0;return u.apply(n,arguments)}}function zc(u,f){var y=-1,E=u.length,I=E-1;for(f=f===n?E:f;++y1?u[f-1]:n;return y=typeof y=="function"?(u.pop(),y):n,en(u,y)});function qc(u){var f=N(u);return f.__chain__=!0,f}function xy(u,f){return f(u),u}function wi(u,f){return f(u)}var Yc=Wi(function(u){var f=u.length,y=f?u[0]:0,E=this.__wrapped__,I=function(F){return hc(F,u)};return f>1||this.__actions__.length||!(E instanceof ot)||!qt(y)?this.thru(I):(E=E.slice(y,+y+(f?1:0)),E.__actions__.push({func:wi,args:[I],thisArg:n}),new Kn(E,this.__chain__).thru(function(F){return f&&!F.length&&F.push(n),F}))});function Vs(){return qc(this)}function Xc(){return new Kn(this.value(),this.__chain__)}function ap(){this.__values__===n&&(this.__values__=Vw(this.value()));var u=this.__index__>=this.__values__.length,f=u?n:this.__values__[this.__index__++];return{done:u,value:f}}function up(){return this}function wy(u){for(var f,y=this;y instanceof Di;){var E=Vm(y);E.__index__=0,E.__values__=n,f?I.__wrapped__=E:f=E;var I=E;y=y.__wrapped__}return I.__wrapped__=u,f}function cp(){var u=this.__wrapped__;if(u instanceof ot){var f=u;return this.__actions__.length&&(f=new ot(this)),f=f.reverse(),f.__actions__.push({func:wi,args:[Wc],thisArg:n}),new Kn(f,this.__chain__)}return this.thru(Wc)}function Sy(){return Ml(this.__wrapped__,this.__actions__)}var Qm=_c(function(u,f,y){St.call(u,y)?++u[y]:Oi(u,y,1)});function Jm(u,f,y){var E=st(u)?id:Ra;return y&&sr(u,f,y)&&(f=n),E(u,Ge(f,3))}function Qc(u,f){var y=st(u)?Fo:Sd;return y(u,Ge(f,3))}var Jc=Fs(Jo),Zm=Fs(Qa);function fp(u,f){return rn(Us(u,f),1)}function ky(u,f){return rn(Us(u,f),q)}function eg(u,f,y){return y=y===n?1:ct(y),rn(Us(u,f),y)}function Zc(u,f){var y=st(u)?Vn:ji;return y(u,Ge(f,3))}function tu(u,f){var y=st(u)?Hu:wm;return y(u,Ge(f,3))}var dp=_c(function(u,f,y){St.call(u,y)?u[y].push(f):Oi(u,y,[f])});function ef(u,f,y,E){u=Zr(u)?u:rf(u),y=y&&!E?ct(y):0;var I=u.length;return y<0&&(y=hn(I+y,0)),rg(u)?y<=I&&u.indexOf(f,y)>-1:!!I&&hl(u,f,y)>-1}var tg=ut(function(u,f,y){var E=-1,I=typeof f=="function",F=Zr(u)?fe(u.length):[];return ji(u,function(H){F[++E]=I?nr(f,H,y):Gr(H,f,y)}),F}),Cy=_c(function(u,f,y){Oi(u,y,f)});function Us(u,f){var y=st(u)?Lt:Pd;return y(u,Ge(f,3))}function Ey(u,f,y,E){return u==null?[]:(st(f)||(f=f==null?[]:[f]),y=E?n:y,st(y)||(y=y==null?[]:[y]),Na(u,f,y))}var nu=_c(function(u,f,y){u[y?0:1].push(f)},function(){return[[],[]]});function Py(u,f,y){var E=st(u)?sd:Zh,I=arguments.length<3;return E(u,Ge(f,4),y,I,ji)}function tf(u,f,y){var E=st(u)?qv:Zh,I=arguments.length<3;return E(u,Ge(f,4),y,I,wm)}function o(u,f){var y=st(u)?Fo:Sd;return y(u,Ee(Ge(f,3)))}function a(u){var f=st(u)?Fi:qn;return f(u)}function p(u,f,y){(y?sr(u,f,y):f===n)?f=1:f=ct(f);var E=st(u)?Is:Id;return E(u,f)}function v(u){var f=st(u)?bm:Yr;return f(u)}function w(u){if(u==null)return 0;if(Zr(u))return rg(u)?ks(u):u.length;var f=Fn(u);return f==pt||f==_t?u.size:go(u).length}function C(u,f,y){var E=st(u)?ld:$d;return y&&sr(u,f,y)&&(f=n),E(u,Ge(f,3))}var A=ut(function(u,f){if(u==null)return[];var y=f.length;return y>1&&sr(u,f[0],f[1])?f=[]:y>2&&sr(f[0],f[1],f[2])&&(f=[f[0]]),Na(u,rn(f,1),[])}),W=Ot||function(){return Ht.Date.now()};function X(u,f){if(typeof f!="function")throw new Vr(l);return u=ct(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,Ki(u,J,n,n,n,n,f)}function xe(u,f){var y;if(typeof f!="function")throw new Vr(l);return u=ct(u),function(){return--u>0&&(y=f.apply(this,arguments)),u<=1&&(f=n),y}}var ke=ut(function(u,f,y){var E=_;if(y.length){var I=Br(y,bo(ke));E|=K}return Ki(u,E,f,y,I)}),be=ut(function(u,f,y){var E=_|T;if(y.length){var I=Br(y,bo(be));E|=K}return Ki(f,E,u,y,I)});function Re(u,f,y){f=y?n:f;var E=Ki(u,L,n,n,n,n,n,f);return E.placeholder=Re.placeholder,E}function Me(u,f,y){f=y?n:f;var E=Ki(u,z,n,n,n,n,n,f);return E.placeholder=Me.placeholder,E}function Ne(u,f,y){var E,I,F,H,Q,oe,ge=0,ve=!1,we=!1,Ie=!0;if(typeof u!="function")throw new Vr(l);f=Gi(f)||0,fn(y)&&(ve=!!y.leading,we="maxWait"in y,F=we?hn(Gi(y.maxWait)||0,f):F,Ie="trailing"in y?!!y.trailing:Ie);function Ue(Sn){var ko=E,Hs=I;return E=I=n,ge=Sn,H=u.apply(Hs,ko),H}function Je(Sn){return ge=Sn,Q=Bl(gt,f),ve?Ue(Sn):H}function dt(Sn){var ko=Sn-oe,Hs=Sn-ge,t1=f-ko;return we?Un(t1,F-Hs):t1}function Ze(Sn){var ko=Sn-oe,Hs=Sn-ge;return oe===n||ko>=f||ko<0||we&&Hs>=F}function gt(){var Sn=W();if(Ze(Sn))return xt(Sn);Q=Bl(gt,dt(Sn))}function xt(Sn){return Q=n,Ie&&E?Ue(Sn):(E=I=n,H)}function ki(){Q!==n&&Md(Q),ge=0,E=oe=I=Q=n}function Mr(){return Q===n?H:xt(W())}function Ci(){var Sn=W(),ko=Ze(Sn);if(E=arguments,I=this,oe=Sn,ko){if(Q===n)return Je(oe);if(we)return Md(Q),Q=Bl(gt,f),Ue(oe)}return Q===n&&(Q=Bl(gt,f)),H}return Ci.cancel=ki,Ci.flush=Mr,Ci}var cn=ut(function(u,f){return wd(u,1,f)}),le=ut(function(u,f,y){return wd(u,Gi(f)||0,y)});function ee(u){return Ki(u,ae)}function ue(u,f){if(typeof u!="function"||f!=null&&typeof f!="function")throw new Vr(l);var y=function(){var E=arguments,I=f?f.apply(this,E):E[0],F=y.cache;if(F.has(I))return F.get(I);var H=u.apply(this,E);return y.cache=F.set(I,H)||F,H};return y.cache=new(ue.Cache||Ur),y}ue.Cache=Ur;function Ee(u){if(typeof u!="function")throw new Vr(l);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 Be(u){return xe(2,u)}var He=Em(function(u,f){f=f.length==1&&st(f[0])?Lt(f[0],Tr(Ge())):Lt(rn(f,1),Tr(Ge()));var y=f.length;return ut(function(E){for(var I=-1,F=Un(E.length,y);++I=f}),ru=yc(function(){return arguments}())?yc:function(u){return gn(u)&&St.call(u,"callee")&&!nc.call(u,"callee")},st=fe.isArray,z$=nd?Tr(nd):km;function Zr(u){return u!=null&&ng(u.length)&&!Ks(u)}function wn(u){return gn(u)&&Zr(u)}function j$(u){return u===!0||u===!1||gn(u)&&Dn(u)==De}var Kl=vd||Oy,B$=dr?Tr(dr):mo;function V$(u){return gn(u)&&u.nodeType===1&&!pp(u)}function U$(u){if(u==null)return!0;if(Zr(u)&&(st(u)||typeof u=="string"||typeof u.splice=="function"||Kl(u)||nf(u)||ru(u)))return!u.length;var f=Fn(u);if(f==pt||f==_t)return!u.size;if(xo(u))return!go(u).length;for(var y in u)if(St.call(u,y))return!1;return!0}function K$(u,f){return qr(u,f)}function W$(u,f,y){y=typeof y=="function"?y:n;var E=y?y(u,f):n;return E===n?qr(u,f,n,y):!!E}function _y(u){if(!gn(u))return!1;var f=Dn(u);return f==lt||f==Xe||typeof u.message=="string"&&typeof u.name=="string"&&!pp(u)}function H$(u){return typeof u=="number"&&xl(u)}function Ks(u){if(!fn(u))return!1;var f=Dn(u);return f==_e||f==mt||f==Fe||f==Zn}function Ow(u){return typeof u=="number"&&u==ct(u)}function ng(u){return typeof u=="number"&&u>-1&&u%1==0&&u<=V}function fn(u){var f=typeof u;return u!=null&&(f=="object"||f=="function")}function gn(u){return u!=null&&typeof u=="object"}var zw=Ss?Tr(Ss):Cm;function G$(u,f){return u===f||$l(u,f,Ha(f))}function q$(u,f,y){return y=typeof y=="function"?y:n,$l(u,f,Ha(f),y)}function Y$(u){return jw(u)&&u!=+u}function X$(u){if(fy(u))throw new rt(s);return Cd(u)}function Q$(u){return u===null}function J$(u){return u==null}function jw(u){return typeof u=="number"||gn(u)&&Dn(u)==Vt}function pp(u){if(!gn(u)||Dn(u)!=it)return!1;var f=pi(u);if(f===null)return!0;var y=St.call(f,"constructor")&&f.constructor;return typeof y=="function"&&y instanceof y&&wa.call(y)==ec}var Iy=Wu?Tr(Wu):Ma;function Z$(u){return Ow(u)&&u>=-V&&u<=V}var Bw=pl?Tr(pl):Bi;function rg(u){return typeof u=="string"||!st(u)&&gn(u)&&Dn(u)==Rt}function Si(u){return typeof u=="symbol"||gn(u)&&Dn(u)==Tn}var nf=qh?Tr(qh):Da;function eA(u){return u===n}function tA(u){return gn(u)&&Fn(u)==Nt}function nA(u){return gn(u)&&Dn(u)==pe}var rA=Lc(qo),iA=Lc(function(u,f){return u<=f});function Vw(u){if(!u)return[];if(Zr(u))return rg(u)?_r(u):ir(u);if(uo&&u[uo])return ey(u[uo]());var f=Fn(u),y=f==pt?Xu:f==_t?zo:rf;return y(u)}function Ws(u){if(!u)return u===0?u:0;if(u=Gi(u),u===q||u===-q){var f=u<0?-1:1;return f*se}return u===u?u:0}function ct(u){var f=Ws(u),y=f%1;return f===f?y?f-y:f:0}function Uw(u){return u?fo(ct(u),0,U):0}function Gi(u){if(typeof u=="number")return u;if(Si(u))return R;if(fn(u)){var f=typeof u.valueOf=="function"?u.valueOf():u;u=fn(f)?f+"":f}if(typeof u!="string")return u===0?u:+u;u=em(u);var y=Ov.test(u);return y||Lh.test(u)?Uu(u.slice(2),y?2:8):Ah.test(u)?R:+u}function Kw(u){return mi(u,ei(u))}function oA(u){return u?fo(ct(u),-V,V):u===0?u:0}function At(u){return u==null?"":vr(u)}var sA=Nl(function(u,f){if(xo(f)||Zr(f)){mi(f,Xn(f),u);return}for(var y in f)St.call(f,y)&&$s(u,y,f[y])}),Ww=Nl(function(u,f){mi(f,ei(f),u)}),ig=Nl(function(u,f,y,E){mi(f,ei(f),u,E)}),lA=Nl(function(u,f,y,E){mi(f,Xn(f),u,E)}),aA=Wi(hc);function uA(u,f){var y=El(u);return f==null?y:jt(y,f)}var cA=ut(function(u,f){u=$t(u);var y=-1,E=f.length,I=E>2?f[2]:n;for(I&&sr(f[0],f[1],I)&&(E=1);++y1),F}),mi(u,Ka(u),y),E&&(y=gr(y,g|b|x,Kd));for(var I=f.length;I--;)Cc(y,f[I]);return y});function _A(u,f){return Gw(u,Ee(Ge(f)))}var IA=Wi(function(u,f){return u==null?{}:_d(u,f)});function Gw(u,f){if(u==null)return{};var y=Lt(Ka(u),function(E){return[E]});return f=Ge(f),Yo(u,y,function(E,I){return f(E,I[0])})}function $A(u,f,y){f=Ui(f,u);var E=-1,I=f.length;for(I||(I=1,u=n);++Ef){var E=u;u=f,f=E}if(y||u%1||f%1){var I=Pa();return Un(u+I*(f-u+ed("1e-"+((I+"").length-1))),f)}return Rl(u,f)}var BA=Ns(function(u,f,y){return f=f.toLowerCase(),u+(y?Xw(f):f)});function Xw(u){return Ry(At(u).toLowerCase())}function Qw(u){return u=At(u),u&&u.replace(Dh,rm).replace(Kh,"")}function VA(u,f,y){u=At(u),f=vr(f);var E=u.length;y=y===n?E:fo(ct(y),0,E);var I=y;return y-=f.length,y>=0&&u.slice(y,I)==f}function UA(u){return u=At(u),u&&Mu.test(u)?u.replace(fi,im):u}function KA(u){return u=At(u),u&&Ro.test(u)?u.replace(vs,"\\$&"):u}var WA=Ns(function(u,f,y){return u+(y?"-":"")+f.toLowerCase()}),HA=Ns(function(u,f,y){return u+(y?" ":"")+f.toLowerCase()}),GA=Od("toLowerCase");function qA(u,f,y){u=At(u),f=ct(f);var E=f?ks(u):0;if(!f||E>=f)return u;var I=(f-E)/2;return Va(jo(I),y)+u+Va(Es(I),y)}function YA(u,f,y){u=At(u),f=ct(f);var E=f?ks(u):0;return f&&E>>0,y?(u=At(u),u&&(typeof f=="string"||f!=null&&!Iy(f))&&(f=vr(f),!f&&gl(u))?yo(_r(u),0,y):u.split(f,y)):[]}var nR=Ns(function(u,f,y){return u+(y?" ":"")+Ry(f)});function rR(u,f,y){return u=At(u),y=y==null?0:fo(ct(y),0,u.length),f=vr(f),u.slice(y,y+f.length)==f}function iR(u,f,y){var E=N.templateSettings;y&&sr(u,f,y)&&(f=n),u=At(u),f=ig({},f,E,Vd);var I=ig({},f.imports,E.imports,Vd),F=Xn(I),H=ba(I,F),Q,oe,ge=0,ve=f.interpolate||Du,we="__p += '",Ie=xa((f.escape||Du).source+"|"+ve.source+"|"+(ve===aa?Ye:Du).source+"|"+(f.evaluate||Du).source+"|$","g"),Ue="//# sourceURL="+(St.call(f,"sourceURL")?(f.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Wv+"]")+` +`;u.replace(Ie,function(Ze,gt,xt,ki,Mr,Ci){return xt||(xt=ki),we+=u.slice(ge,Ci).replace(zv,om),gt&&(Q=!0,we+=`' + +__e(`+gt+`) + +'`),Mr&&(oe=!0,we+=`'; +`+Mr+`; +__p += '`),xt&&(we+=`' + +((__t = (`+xt+`)) == null ? '' : __t) + +'`),ge=Ci+Ze.length,Ze}),we+=`'; +`;var Je=St.call(f,"variable")&&f.variable;if(!Je)we=`with (obj) { +`+we+` +} +`;else if(Hf.test(Je))throw new rt(c);we=(oe?we.replace(an,""):we).replace(ol,"$1").replace(hs,"$1;"),we="function("+(Je||"obj")+`) { +`+(Je?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(Q?", __e = _.escape":"")+(oe?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+we+`return __p +}`;var dt=Zw(function(){return wt(F,Ue+"return "+we).apply(n,H)});if(dt.source=we,_y(dt))throw dt;return dt}function oR(u){return At(u).toLowerCase()}function sR(u){return At(u).toUpperCase()}function lR(u,f,y){if(u=At(u),u&&(y||f===n))return em(u);if(!u||!(f=vr(f)))return u;var E=_r(u),I=_r(f),F=tm(E,I),H=dd(E,I)+1;return yo(E,F,H).join("")}function aR(u,f,y){if(u=At(u),u&&(y||f===n))return u.slice(0,Ju(u)+1);if(!u||!(f=vr(f)))return u;var E=_r(u),I=dd(E,_r(f))+1;return yo(E,0,I).join("")}function uR(u,f,y){if(u=At(u),u&&(y||f===n))return u.replace(ca,"");if(!u||!(f=vr(f)))return u;var E=_r(u),I=tm(E,_r(f));return yo(E,I).join("")}function cR(u,f){var y=j,E=B;if(fn(f)){var I="separator"in f?f.separator:I;y="length"in f?ct(f.length):y,E="omission"in f?vr(f.omission):E}u=At(u);var F=u.length;if(gl(u)){var H=_r(u);F=H.length}if(y>=F)return u;var Q=y-ks(E);if(Q<1)return E;var oe=H?yo(H,0,Q).join(""):u.slice(0,Q);if(I===n)return oe+E;if(H&&(Q+=oe.length-Q),Iy(I)){if(u.slice(Q).search(I)){var ge,ve=oe;for(I.global||(I=xa(I.source,At(oo.exec(I))+"g")),I.lastIndex=0;ge=I.exec(ve);)var we=ge.index;oe=oe.slice(0,we===n?Q:we)}}else if(u.indexOf(vr(I),Q)!=Q){var Ie=oe.lastIndexOf(I);Ie>-1&&(oe=oe.slice(0,Ie))}return oe+E}function fR(u){return u=At(u),u&&la.test(u)?u.replace(ci,sm):u}var dR=Ns(function(u,f,y){return u+(y?" ":"")+f.toUpperCase()}),Ry=Od("toUpperCase");function Jw(u,f,y){return u=At(u),f=y?n:f,f===n?Zv(u)?ry(u):Xv(u):u.match(f)||[]}var Zw=ut(function(u,f){try{return nr(u,n,f)}catch(y){return _y(y)?y:new rt(y)}}),pR=Wi(function(u,f){return Vn(f,function(y){y=bi(y),Oi(u,y,ke(u[y],u))}),u});function hR(u){var f=u==null?0:u.length,y=Ge();return u=f?Lt(u,function(E){if(typeof E[1]!="function")throw new Vr(l);return[y(E[0]),E[1]]}):[],ut(function(E){for(var I=-1;++IV)return[];var y=U,E=Un(u,U);f=Ge(f),u-=U;for(var I=fd(E,f);++y0||f<0)?new ot(y):(u<0?y=y.takeRight(-u):u&&(y=y.drop(u)),f!==n&&(f=ct(f),y=f<0?y.dropRight(-f):y.take(f-u)),y)},ot.prototype.takeRightWhile=function(u){return this.reverse().takeWhile(u).reverse()},ot.prototype.toArray=function(){return this.take(U)},Ar(ot.prototype,function(u,f){var y=/^(?:filter|find|map|reject)|While$/.test(f),E=/^(?:head|last)$/.test(f),I=N[E?"take"+(f=="last"?"Right":""):f],F=E||/^find/.test(f);I&&(N.prototype[f]=function(){var H=this.__wrapped__,Q=E?[1]:arguments,oe=H instanceof ot,ge=Q[0],ve=oe||st(H),we=function(gt){var xt=I.apply(N,Oo([gt],Q));return E&&Ie?xt[0]:xt};ve&&y&&typeof ge=="function"&&ge.length!=1&&(oe=ve=!1);var Ie=this.__chain__,Ue=!!this.__actions__.length,Je=F&&!Ie,dt=oe&&!Ue;if(!F&&ve){H=dt?H:new ot(this);var Ze=u.apply(H,Q);return Ze.__actions__.push({func:wi,args:[we],thisArg:n}),new Kn(Ze,Ie)}return Je&&dt?u.apply(this,Q):(Ze=this.thru(we),Je?E?Ze.value()[0]:Ze.value():Ze)})}),Vn(["pop","push","shift","sort","splice","unshift"],function(u){var f=lo[u],y=/^(?:push|sort|unshift)$/.test(u)?"tap":"thru",E=/^(?:pop|shift)$/.test(u);N.prototype[u]=function(){var I=arguments;if(E&&!this.__chain__){var F=this.value();return f.apply(st(F)?F:[],I)}return this[y](function(H){return f.apply(st(H)?H:[],I)})}}),Ar(ot.prototype,function(u,f){var y=N[f];if(y){var E=y.name+"";St.call(kl,E)||(kl[E]=[]),kl[E].push({name:f,func:y})}}),kl[Ol(n,T).name]=[{name:"wrapper",func:n}],ot.prototype.clone=uc,ot.prototype.reverse=bd,ot.prototype.value=Pl,N.prototype.at=Yc,N.prototype.chain=Vs,N.prototype.commit=Xc,N.prototype.next=ap,N.prototype.plant=wy,N.prototype.reverse=cp,N.prototype.toJSON=N.prototype.valueOf=N.prototype.value=Sy,N.prototype.first=N.prototype.head,uo&&(N.prototype[uo]=up),N},vl=iy();Ri?((Ri.exports=vl)._=vl,ya._=vl):Ht._=vl}).call(Q8)}(Mp,Mp.exports)),Mp.exports}var _2=J8();class Z8{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=_2.transform(this.plugins,(t,n)=>{n.isActivated&&t.push(n.config)},[])}}const xr=new Z8;const I2="FeedbackFormPlugin",$2={name:I2,components:{FeedbackForm:S.lazy(()=>ro(()=>import("./FeedbackForm-UCmFF8zf.js"),__vite__mapDeps([0,1,2,3,4,5,6])))}},A2="ChatOptionsPlugin",R2={name:A2,components:{ChatOptionsForm:S.lazy(()=>ro(()=>import("./ChatOptionsForm-CWUB2vvd.js"),__vite__mapDeps([7,1,2,3,4,5,6])))}},L2=S.createContext(void 0),M2="SharePluginName",D2={name:M2,components:{ShareButton:S.lazy(()=>ro(()=>import("./ShareButton-C-29ZlnC.js"),__vite__mapDeps([8,6])))}},eC=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},tC=e=>e?eC(e):eC,e7=e=>e;function N2(e,t=e7){const n=We.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return We.useDebugValue(n),n}const ur=[];for(let e=0;e<256;++e)ur.push((e+256).toString(16).slice(1));function t7(e,t=0){return(ur[e[t+0]]+ur[e[t+1]]+ur[e[t+2]]+ur[e[t+3]]+"-"+ur[e[t+4]]+ur[e[t+5]]+"-"+ur[e[t+6]]+ur[e[t+7]]+"-"+ur[e[t+8]]+ur[e[t+9]]+"-"+ur[e[t+10]]+ur[e[t+11]]+ur[e[t+12]]+ur[e[t+13]]+ur[e[t+14]]+ur[e[t+15]]).toLowerCase()}let w0;const n7=new Uint8Array(16);function r7(){if(!w0){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");w0=crypto.getRandomValues.bind(crypto)}return w0(n7)}const i7=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),nC={randomUUID:i7};function F2(e,t,n){if(nC.randomUUID&&!e)return nC.randomUUID();e=e||{};const r=e.random??e.rng?.()??r7();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,t7(r)}function o7(e){return Object.values(e).map(t=>({role:t.role,content:t.content}))}var O2=Symbol.for("immer-nothing"),rC=Symbol.for("immer-draftable"),_i=Symbol.for("immer-state");function To(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Mf=Object.getPrototypeOf;function Df(e){return!!e&&!!e[_i]}function Pu(e){return e?z2(e)||Array.isArray(e)||!!e[rC]||!!e.constructor?.[rC]||Pv(e)||Tv(e):!1}var s7=Object.prototype.constructor.toString();function z2(e){if(!e||typeof e!="object")return!1;const t=Mf(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)===s7}function rv(e,t){Ev(e)===0?Reflect.ownKeys(e).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function Ev(e){const t=e[_i];return t?t.type_:Array.isArray(e)?1:Pv(e)?2:Tv(e)?3:0}function Fb(e,t){return Ev(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function j2(e,t,n){const r=Ev(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function l7(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Pv(e){return e instanceof Map}function Tv(e){return e instanceof Set}function du(e){return e.copy_||e.base_}function Ob(e,t){if(Pv(e))return new Map(e);if(Tv(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=z2(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[_i];let i=Reflect.ownKeys(r);for(let s=0;s1&&(e.set=e.add=e.clear=e.delete=a7),Object.freeze(e),t&&Object.entries(e).forEach(([n,r])=>sw(r,!0))),e}function a7(){To(2)}function _v(e){return Object.isFrozen(e)}var u7={};function Tu(e){const t=u7[e];return t||To(0,e),t}var uh;function B2(){return uh}function c7(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function iC(e,t){t&&(Tu("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function zb(e){jb(e),e.drafts_.forEach(f7),e.drafts_=null}function jb(e){e===uh&&(uh=e.parent_)}function oC(e){return uh=c7(uh,e)}function f7(e){const t=e[_i];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function sC(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[_i].modified_&&(zb(t),To(4)),Pu(e)&&(e=iv(t,e),t.parent_||ov(t,e)),t.patches_&&Tu("Patches").generateReplacementPatches_(n[_i].base_,e,t.patches_,t.inversePatches_)):e=iv(t,n,[]),zb(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==O2?e:void 0}function iv(e,t,n){if(_v(t))return t;const r=t[_i];if(!r)return rv(t,(i,s)=>lC(e,r,t,i,s,n)),t;if(r.scope_!==e)return t;if(!r.modified_)return ov(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const i=r.copy_;let s=i,l=!1;r.type_===3&&(s=new Set(i),i.clear(),l=!0),rv(s,(c,d)=>lC(e,r,i,c,d,n,l)),ov(e,i,!1),n&&e.patches_&&Tu("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function lC(e,t,n,r,i,s,l){if(Df(i)){const c=s&&t&&t.type_!==3&&!Fb(t.assigned_,r)?s.concat(r):void 0,d=iv(e,i,c);if(j2(n,r,d),Df(d))e.canAutoFreeze_=!1;else return}else l&&n.add(i);if(Pu(i)&&!_v(i)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;iv(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&Object.prototype.propertyIsEnumerable.call(n,r)&&ov(e,i)}}function ov(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&sw(t,n)}function d7(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:B2(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,s=lw;n&&(i=[r],s=ch);const{revoke:l,proxy:c}=Proxy.revocable(i,s);return r.draft_=c,r.revoke_=l,c}var lw={get(e,t){if(t===_i)return e;const n=du(e);if(!Fb(n,t))return p7(e,n,t);const r=n[t];return e.finalized_||!Pu(r)?r:r===S0(e.base_,t)?(k0(e),e.copy_[t]=Vb(r,e)):r},has(e,t){return t in du(e)},ownKeys(e){return Reflect.ownKeys(du(e))},set(e,t,n){const r=V2(du(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=S0(du(e),t),s=i?.[_i];if(s&&s.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(l7(n,i)&&(n!==void 0||Fb(e.base_,t)))return!0;k0(e),Bb(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 S0(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,k0(e),Bb(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=du(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){To(11)},getPrototypeOf(e){return Mf(e.base_)},setPrototypeOf(){To(12)}},ch={};rv(lw,(e,t)=>{ch[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});ch.deleteProperty=function(e,t){return ch.set.call(this,e,t,void 0)};ch.set=function(e,t,n){return lw.set.call(this,e[0],t,n,e[0])};function S0(e,t){const n=e[_i];return(n?du(n):e)[t]}function p7(e,t,n){const r=V2(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}function V2(e,t){if(!(t in e))return;let n=Mf(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Mf(n)}}function Bb(e){e.modified_||(e.modified_=!0,e.parent_&&Bb(e.parent_))}function k0(e){e.copy_||(e.copy_=Ob(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var h7=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 l=this;return function(d=s,...h){return l.produce(d,m=>n.call(this,m,...h))}}typeof n!="function"&&To(6),r!==void 0&&typeof r!="function"&&To(7);let i;if(Pu(t)){const s=oC(this),l=Vb(t,void 0);let c=!0;try{i=n(l),c=!1}finally{c?zb(s):jb(s)}return iC(s,r),sC(i,s)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===O2&&(i=void 0),this.autoFreeze_&&sw(i,!0),r){const s=[],l=[];Tu("Patches").generateReplacementPatches_(t,i,s,l),r(s,l)}return i}else To(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(l,...c)=>this.produceWithPatches(l,d=>t(d,...c));let r,i;return[this.produce(t,n,(l,c)=>{r=l,i=c}),r,i]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){Pu(e)||To(8),Df(e)&&(e=m7(e));const t=oC(this),n=Vb(e,void 0);return n[_i].isManual_=!0,jb(t),n}finishDraft(e,t){const n=e&&e[_i];(!n||!n.isManual_)&&To(9);const{scope_:r}=n;return iC(r,t),sC(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=Tu("Patches").applyPatches_;return Df(e)?r(e,t):this.produce(e,i=>r(i,t))}};function Vb(e,t){const n=Pv(e)?Tu("MapSet").proxyMap_(e,t):Tv(e)?Tu("MapSet").proxySet_(e,t):d7(e,t);return(t?t.scope_:B2()).drafts_.push(n),n}function m7(e){return Df(e)||To(10,e),U2(e)}function U2(e){if(!Pu(e)||_v(e))return e;const t=e[_i];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Ob(e,t.scope_.immer_.useStrictShallowCopy_)}else n=Ob(e,!0);return rv(n,(r,i)=>{j2(n,r,U2(i))}),t&&(t.finalized_=!1),n}var Ii=new h7,Ch=Ii.produce;Ii.produceWithPatches.bind(Ii);Ii.setAutoFreeze.bind(Ii);Ii.setUseStrictShallowCopy.bind(Ii);Ii.applyPatches.bind(Ii);Ii.createDraft.bind(Ii);Ii.finishDraft.bind(Ii);const g7=e=>(t,n,r)=>(r.setState=(i,s,...l)=>{const c=typeof i=="function"?Ch(i):i;return t(c,s,...l)},e(r.setState,n,r)),v7=g7,y7=({content:e},t)=>{t.serverState=e},b7=({content:e},t,n)=>{const r=n.conversationIdRef.current;return t.conversationId=e,n.conversationIdRef.current=e,{originalConversationId:r}},x7=(e,t,{originalConversationId:n,conversationIdRef:r})=>{const i=t.conversations[n];if(!i)throw new Error("Received events for non-existent conversation");t.conversations[r.current]=i,t.currentConversation===n&&(t.currentConversation=r.current),delete t.conversations[n]},w7=({content:e},t)=>{t.followupMessages=e},S7=({content:e},t)=>{t.summary=e},k7=(e,t,n)=>{const r=t.history[n.messageId];r.content+=e.content},C7=(e,t,n)=>{const r=t.history[n.messageId];r.references=[...r.references??[],e.content]},E7=(e,t,n)=>{const r=t.history[n.messageId];r.serverId=e.content},P7=(e,t,n)=>{const r=t.history[n.messageId],{update_id:i,content:s,type:l}=e.content,c=Ch(r.liveUpdates??{},d=>{l===Bz.Start&&i in d&&console.error(`Got duplicate start event for update_id: ${i}. Ignoring the event.`),d[i]=s});r.liveUpdates=c},T7=(e,t,n)=>{const r=t.history[n.messageId],i=e.content;r.images=Ch(r.images??{},s=>{s[i.id]&&console.error(`Got duplicate image event for image_id: ${i.id}. Ignoring the event.`),s[i.id]=i.url})},_7=(e,t,n)=>{const r=t.history[n.messageId];t.history[n.messageId]={id:r.id,role:r.role,content:""}},I7=(e,t,n)=>{const r=t.history[n.messageId];r.usage=e.content},$7=({content:e},t,n)=>{const r=t.history[n.messageId],i=r.tasks??[],s=Ch(i,l=>{const c=l.findIndex(d=>d.id===e.id);c===-1?l.push(e):l[c]=e});r.tasks=s};class A7{handlers=new Map;register(t,n){this.handlers.has(t)&&console.warn(`Handler for ${String(t)} already registered - overwriting.`),this.handlers.set(t,n)}get(t){const n=this.handlers.get(t);if(!n)throw new Error(`No handler registered for type: ${String(t)}`);return n}}const $i=new A7;$i.register(kr.StateUpdate,{handle:y7});$i.register(kr.ConversationId,{handle:b7,after:x7});$i.register(kr.FollowupMessages,{handle:w7});$i.register(kr.Text,{handle:k7});$i.register(kr.Reference,{handle:C7});$i.register(kr.MessageId,{handle:E7});$i.register(kr.LiveUpdate,{handle:P7});$i.register(kr.Image,{handle:T7});$i.register(kr.ClearMessage,{handle:_7});$i.register(kr.Usage,{handle:I7});$i.register(kr.TodoItem,{handle:$7});$i.register(kr.ConversationSummary,{handle:S7});const K2="temp-",W2=()=>`${K2}${F2()}`,Ub=()=>({history:{},followupMessages:null,serverState:null,conversationId:W2(),eventsLog:[],lastMessageId:null,context:void 0,chatOptions:void 0,isLoading:!1,abortController:null}),R7=()=>{const e=Ub();return{conversations:{[e.conversationId]:e},currentConversation:e.conversationId}},os=(e,t)=>n=>{const r=n.conversations[e];if(!r)throw new Error(`Conversation with ID '${e}' does not exist`);t(r)},aC=e=>e.startsWith(K2),uC=v7((e,t)=>({...R7(),computed:{getContext:()=>{const{primitives:{getCurrentConversation:n}}=t(),r=n(),{serverState:i,conversationId:s,chatOptions:l}=r;return{...i??{},...s&&!aC(r.conversationId)?{conversation_id:s}:{},...l?{user_settings:l}:{}}}},_internal:{_hasHydrated:!1,_setHasHydrated:n=>{e(r=>{r._internal._hasHydrated=n})},handleResponse:(n,r,i)=>{let s;const l=$i.get(i.type);e(os(n.current,c=>{if(!c.history[r])throw new Error(`Message ID ${r} not found in history`);s=l.handle(i,c,{conversationIdRef:n,messageId:r})})),e(c=>{l.after?.(i,c,{conversationIdRef:n,messageId:r,...s})}),e(os(n.current,c=>{c.eventsLog[c.eventsLog.length-1].push(i)}))}},primitives:{getCurrentConversation:()=>{const{currentConversation:n,conversations:r}=t(),i=r[n];if(!i)throw new Error("Tried to get conversation that doesn't exist.");return i},restore:(n,r,i,s)=>{const l=W2(),c={...Ub(),followupMessages:r,chatOptions:i,serverState:s,history:n,conversationId:l},d=Object.values(n).filter(h=>h.role!==Sf.User);c.eventsLog=d.map(()=>[]),e(h=>{h.conversations[l]=c,h.currentConversation=l})},addMessage:(n,r)=>{const i=F2(),s={...r,id:i};return e(os(n,l=>{l.followupMessages=null,l.lastMessageId=i,l.history[i]=s})),i},deleteMessage:(n,r)=>{e(os(n,i=>{const{history:s}=i,l=Object.keys(s);l.at(-1)===r&&(i.lastMessageId=l.at(-2)??null),delete i.history[r]}))},stopAnswering:n=>{const r=t().conversations[n];if(!r)throw new Error("Tried to stop answering for conversation that doesn't exist");r.abortController?.abort(),e(os(n,i=>{i.abortController=null,i.isLoading=!1}))}},actions:{selectConversation:n=>{e(r=>{if(!r.conversations[n])throw new Error(`Tried to select conversation that doesn't exist, id: ${n}`);r.currentConversation=n})},deleteConversation:n=>{const{actions:{newConversation:r},primitives:{stopAnswering:i},currentConversation:s}=t();if(i(n),e(l=>{delete l.conversations[n]}),n===s)return r()},mergeExtensions:(n,r)=>{const{currentConversation:i}=t();e(os(i,s=>{if(!(n in s.history))throw new Error("Attempted to set extensions for a message that does not exist.");const l=s.history[n];l.extensions={...l.extensions,...r},s.history[n]=l}))},initializeChatOptions:n=>{const{currentConversation:r}=t();e(os(r,i=>{const s=i.chatOptions??{};Object.keys(s).forEach(l=>{l in n||delete s[l]}),Object.keys(n).forEach(l=>{l in s||(s[l]=n[l])}),i.chatOptions=s}))},setConversationProperties:(n,r)=>{e(os(n,i=>{Object.assign(i,r)}))},stopAnswering:()=>{const{currentConversation:n,primitives:{stopAnswering:r}}=t();r(n)},newConversation:()=>{const n=Ub();return e(r=>{r.conversations[n.conversationId]=n,r.currentConversation=n.conversationId,r.conversations=_2.omitBy(r.conversations,i=>aC(i.conversationId)&&i.conversationId!==r.currentConversation)}),n.conversationId},sendMessage:(n,r)=>{const{_internal:{handleResponse:i},primitives:{addMessage:s,getCurrentConversation:l,stopAnswering:c},computed:{getContext:d}}=t(),{history:h,conversationId:m}=l();s(m,{role:Sf.User,content:n});const g=s(m,{role:Sf.Assistant,content:""}),b={message:n,history:o7(h),context:d()};e(os(m,P=>{P.eventsLog.push([])}));const x=new AbortController,k={current:m};e(os(m,P=>{P.abortController=x,P.isLoading=!0})),r.makeStreamRequest("/api/chat",b,{onMessage:P=>i(k,g,P),onError:P=>{i(k,g,{type:kr.Text,content:P.message}),c(k.current)},onClose:()=>{c(k.current)}},x.signal)}}}));function H2(e,t){let n;try{n=e()}catch{return}return{getItem:i=>{var s;const l=d=>d===null?null:JSON.parse(d,void 0),c=(s=n.getItem(i))!=null?s:null;return c instanceof Promise?c.then(l):l(c)},setItem:(i,s)=>n.setItem(i,JSON.stringify(s,void 0)),removeItem:i=>n.removeItem(i)}}const Kb=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return Kb(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return Kb(r)(n)}}}},L7=(e,t)=>(n,r,i)=>{let s={storage:H2(()=>localStorage),partialize:P=>P,version:0,merge:(P,_)=>({..._,...P}),...t},l=!1;const c=new Set,d=new Set;let h=s.storage;if(!h)return e((...P)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...P)},r,i);const m=()=>{const P=s.partialize({...r()});return h.setItem(s.name,{state:P,version:s.version})},g=i.setState;i.setState=(P,_)=>{g(P,_),m()};const b=e((...P)=>{n(...P),m()},r,i);i.getInitialState=()=>b;let x;const k=()=>{var P,_;if(!h)return;l=!1,c.forEach($=>{var L;return $((L=r())!=null?L:b)});const T=((_=s.onRehydrateStorage)==null?void 0:_.call(s,(P=r())!=null?P:b))||void 0;return Kb(h.getItem.bind(h))(s.name).then($=>{if($)if(typeof $.version=="number"&&$.version!==s.version){if(s.migrate){const L=s.migrate($.state,$.version);return L instanceof Promise?L.then(z=>[!0,z]):[!0,L]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,$.state];return[!1,void 0]}).then($=>{var L;const[z,K]=$;if(x=s.merge(K,(L=r())!=null?L:b),n(x,!0),z)return m()}).then(()=>{T?.(x,void 0),x=r(),l=!0,d.forEach($=>$(x))}).catch($=>{T?.(void 0,$)})};return i.persist={setOptions:P=>{s={...s,...P},P.storage&&(h=P.storage)},clearStorage:()=>{h?.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>k(),hasHydrated:()=>l,onHydrate:P=>(c.add(P),()=>{c.delete(P)}),onFinishHydration:P=>(d.add(P),()=>{d.delete(P)})},s.skipHydration||k(),x||b},M7=L7;function Iv(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function D7(e,t){let n;const r=()=>{if(n)return n;const i=indexedDB.open(e);return i.onupgradeneeded=()=>i.result.createObjectStore(t),n=Iv(i),n.then(s=>{s.onclose=()=>n=void 0},()=>{}),n};return(i,s)=>r().then(l=>s(l.transaction(t,i).objectStore(t)))}let C0;function aw(){return C0||(C0=D7("keyval-store","keyval")),C0}function N7(e,t=aw()){return t("readonly",n=>Iv(n.get(e)))}function F7(e,t,n=aw()){return n("readwrite",r=>(r.put(t,e),Iv(r.transaction)))}function O7(e,t=aw()){return t("readwrite",n=>(n.delete(e),Iv(n.transaction)))}const z7={getItem:async e=>await N7(e)||null,setItem:async(e,t)=>{await F7(e,t)},removeItem:async e=>{await O7(e)}},G2=S.createContext(null);function q2(){return D.jsx("div",{className:yn("bg-background flex h-screen w-screen items-start justify-center"),children:D.jsxs("div",{className:"text-default-900 m-auto flex flex-col items-center gap-4",children:[D.jsx(Z_,{size:"lg","aria-label":"Progress indicator"}),D.jsx("p",{children:"Initializing..."})]})})}const cC="ragbits-history-store";function j7(e,t){if(e)return tC(M7(uC,{name:t,partialize:r=>({conversations:r.conversations}),onRehydrateStorage:r=>()=>r._internal._setHasHydrated(!0),merge:(r,i)=>{const s=r?.conversations??{},{conversations:l,currentConversation:c}=i,d=Object.values(s).reduce((h,m)=>(m.conversationId===null||(h[m.conversationId]={...m,isLoading:!1,abortController:null}),h),{});return{...i,currentConversation:c,conversations:{...d,...l}}},storage:H2(()=>z7)}));const n=tC(uC);return n.getState()._internal._setHasHydrated(!0),n}function B7({children:e,shouldStoreHistory:t}){const[n,r]=S.useState(cC),i=S.useMemo(()=>j7(t,n),[t,n]),s=N2(i,d=>d._internal._hasHydrated),l=d=>{r(`${cC}-${d}`)},c=S.useMemo(()=>({store:i,initializeUserStore:l}),[i]);return t&&!s?D.jsx(q2,{}):D.jsx(G2.Provider,{value:c,children:e})}/** + * 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 fC="popstate";function V7(e={}){function t(r,i){let{pathname:s,search:l,hash:c}=r.location;return Wb("",{pathname:s,search:l,hash:c},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:fh(i)}return K7(t,n,null,e)}function Mn(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function $o(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function U7(){return Math.random().toString(36).substring(2,10)}function dC(e,t){return{usr:e.state,key:e.key,idx:t}}function Wb(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Eh(t):t,state:n,key:t&&t.key||r||U7()}}function fh({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 Eh(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 K7(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:s=!1}=r,l=i.history,c="POP",d=null,h=m();h==null&&(h=0,l.replaceState({...l.state,idx:h},""));function m(){return(l.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 $=Wb(P.location,_,T);h=m()+1;let L=dC($,h),z=P.createHref($);try{l.pushState(L,"",z)}catch(K){if(K instanceof DOMException&&K.name==="DataCloneError")throw K;i.location.assign(z)}s&&d&&d({action:c,location:P.location,delta:1})}function x(_,T){c="REPLACE";let $=Wb(P.location,_,T);h=m();let L=dC($,h),z=P.createHref($);l.replaceState(L,"",z),s&&d&&d({action:c,location:P.location,delta:0})}function k(_){return W7(_)}let P={get action(){return c},get location(){return e(i,l)},listen(_){if(d)throw new Error("A history only accepts one active listener");return i.addEventListener(fC,g),d=_,()=>{i.removeEventListener(fC,g),d=null}},createHref(_){return t(i,_)},createURL:k,encodeLocation(_){let T=k(_);return{pathname:T.pathname,search:T.search,hash:T.hash}},push:b,replace:x,go(_){return l.go(_)}};return P}function W7(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),Mn(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:fh(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function Y2(e,t,n="/"){return H7(e,t,n,!1)}function H7(e,t,n,r){let i=typeof t=="string"?Eh(t):t,s=tl(i.pathname||"/",n);if(s==null)return null;let l=X2(e);G7(l);let c=null;for(let d=0;c==null&&d{let d={relativePath:c===void 0?s.path||"":c,caseSensitive:s.caseSensitive===!0,childrenIndex:l,route:s};d.relativePath.startsWith("/")&&(Mn(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=Js([r,d.relativePath]),m=n.concat(d);s.children&&s.children.length>0&&(Mn(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${h}".`),X2(s.children,t,m,h)),!(s.path==null&&!s.index)&&t.push({path:h,score:ej(h,s.index),routesMeta:m})};return e.forEach((s,l)=>{if(s.path===""||!s.path?.includes("?"))i(s,l);else for(let c of Q2(s.path))i(s,l,c)}),t}function Q2(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 l=Q2(r.join("/")),c=[];return c.push(...l.map(d=>d===""?s:[s,d].join("/"))),i&&c.push(...l),c.map(d=>e.startsWith("/")&&d===""?"/":d)}function G7(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:tj(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var q7=/^:[\w-]+$/,Y7=3,X7=2,Q7=1,J7=10,Z7=-2,pC=e=>e==="*";function ej(e,t){let n=e.split("/"),r=n.length;return n.some(pC)&&(r+=Z7),t&&(r+=X7),n.filter(i=>!pC(i)).reduce((i,s)=>i+(q7.test(s)?Y7:s===""?Q7:J7),r)}function tj(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 nj(e,t,n=!1){let{routesMeta:r}=e,i={},s="/",l=[];for(let c=0;c{if(m==="*"){let k=c[b]||"";l=s.slice(0,s.length-k.length).replace(/(.)\/+$/,"$1")}const x=c[b];return g&&!x?h[m]=void 0:h[m]=(x||"").replace(/%2F/g,"/"),h},{}),pathname:s,pathnameBase:l,pattern:e}}function rj(e,t=!1,n=!0){$o(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,(l,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 ij(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return $o(!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 tl(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 oj(e,t="/"){let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Eh(e):e;return{pathname:n?n.startsWith("/")?n:sj(n,t):t,search:uj(r),hash:cj(i)}}function sj(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 E0(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 lj(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function uw(e){let t=lj(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function cw(e,t,n,r=!1){let i;typeof e=="string"?i=Eh(e):(i={...e},Mn(!i.pathname||!i.pathname.includes("?"),E0("?","pathname","search",i)),Mn(!i.pathname||!i.pathname.includes("#"),E0("#","pathname","hash",i)),Mn(!i.search||!i.search.includes("#"),E0("#","search","hash",i)));let s=e===""||i.pathname==="",l=s?"/":i.pathname,c;if(l==null)c=n;else{let g=t.length-1;if(!r&&l.startsWith("..")){let b=l.split("/");for(;b[0]==="..";)b.shift(),g-=1;i.pathname=b.join("/")}c=g>=0?t[g]:"/"}let d=oj(i,c),h=l&&l!=="/"&&l.endsWith("/"),m=(s||l===".")&&n.endsWith("/");return!d.pathname.endsWith("/")&&(h||m)&&(d.pathname+="/"),d}var Js=e=>e.join("/").replace(/\/\/+/g,"/"),aj=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),uj=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,cj=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function fj(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var J2=["POST","PUT","PATCH","DELETE"];new Set(J2);var dj=["GET",...J2];new Set(dj);var Bf=S.createContext(null);Bf.displayName="DataRouter";var $v=S.createContext(null);$v.displayName="DataRouterState";S.createContext(!1);var Z2=S.createContext({isTransitioning:!1});Z2.displayName="ViewTransition";var pj=S.createContext(new Map);pj.displayName="Fetchers";var hj=S.createContext(null);hj.displayName="Await";var Ao=S.createContext(null);Ao.displayName="Navigation";var Av=S.createContext(null);Av.displayName="Location";var io=S.createContext({outlet:null,matches:[],isDataRoute:!1});io.displayName="Route";var fw=S.createContext(null);fw.displayName="RouteError";function mj(e,{relative:t}={}){Mn(Vf(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=S.useContext(Ao),{hash:i,pathname:s,search:l}=Ph(e,{relative:t}),c=s;return n!=="/"&&(c=s==="/"?n:Js([n,s])),r.createHref({pathname:c,search:l,hash:i})}function Vf(){return S.useContext(Av)!=null}function ia(){return Mn(Vf(),"useLocation() may be used only in the context of a component."),S.useContext(Av).location}var eI="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function tI(e){S.useContext(Ao).static||S.useLayoutEffect(e)}function dw(){let{isDataRoute:e}=S.useContext(io);return e?$j():gj()}function gj(){Mn(Vf(),"useNavigate() may be used only in the context of a component.");let e=S.useContext(Bf),{basename:t,navigator:n}=S.useContext(Ao),{matches:r}=S.useContext(io),{pathname:i}=ia(),s=JSON.stringify(uw(r)),l=S.useRef(!1);return tI(()=>{l.current=!0}),S.useCallback((d,h={})=>{if($o(l.current,eI),!l.current)return;if(typeof d=="number"){n.go(d);return}let m=cw(d,JSON.parse(s),i,h.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:Js([t,m.pathname])),(h.replace?n.replace:n.push)(m,h.state,h)},[t,n,s,i,e])}var vj=S.createContext(null);function yj(e){let t=S.useContext(io).outlet;return t&&S.createElement(vj.Provider,{value:e},t)}function nI(){let{matches:e}=S.useContext(io),t=e[e.length-1];return t?t.params:{}}function Ph(e,{relative:t}={}){let{matches:n}=S.useContext(io),{pathname:r}=ia(),i=JSON.stringify(uw(n));return S.useMemo(()=>cw(e,JSON.parse(i),r,t==="path"),[e,i,r,t])}function bj(e,t){return rI(e)}function rI(e,t,n,r){Mn(Vf(),"useRoutes() may be used only in the context of a component.");let{navigator:i}=S.useContext(Ao),{matches:s}=S.useContext(io),l=s[s.length-1],c=l?l.params:{},d=l?l.pathname:"/",h=l?l.pathnameBase:"/",m=l&&l.route;{let T=m&&m.path||"";iI(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=ia(),b;b=g;let x=b.pathname||"/",k=x;if(h!=="/"){let T=h.replace(/^\//,"").split("/");k="/"+x.replace(/^\//,"").split("/").slice(T.length).join("/")}let P=Y2(e,{pathname:k});return $o(m||P!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),$o(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.`),Cj(P&&P.map(T=>Object.assign({},T,{params:Object.assign({},c,T.params),pathname:Js([h,i.encodeLocation?i.encodeLocation(T.pathname).pathname:T.pathname]),pathnameBase:T.pathnameBase==="/"?h:Js([h,i.encodeLocation?i.encodeLocation(T.pathnameBase).pathname:T.pathnameBase])})),s,n,r)}function xj(){let e=Ij(),t=fj(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},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=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,l)}var wj=S.createElement(xj,null),Sj=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(io.Provider,{value:this.props.routeContext},S.createElement(fw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function kj({routeContext:e,match:t,children:n}){let r=S.useContext(Bf);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),S.createElement(io.Provider,{value:e},n)}function Cj(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);Mn(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 l=!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,k=null;n&&(g=s&&h.route.id?s[h.route.id]:void 0,x=h.route.errorElement||wj,l&&(c<0&&m===0?(iI("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),b=!0,k=null):c===m&&(b=!0,k=h.route.hydrateFallbackElement||null)));let P=t.concat(i.slice(0,m+1)),_=()=>{let T;return g?T=x:b?T=k:h.route.Component?T=S.createElement(h.route.Component,null):h.route.element?T=h.route.element:T=d,S.createElement(kj,{match:h,routeContext:{outlet:d,matches:P,isDataRoute:n!=null},children:T})};return n&&(h.route.ErrorBoundary||h.route.errorElement||m===0)?S.createElement(Sj,{location:n.location,revalidation:n.revalidation,component:x,error:g,children:_(),routeContext:{outlet:null,matches:P,isDataRoute:!0}}):_()},null)}function pw(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ej(e){let t=S.useContext(Bf);return Mn(t,pw(e)),t}function Pj(e){let t=S.useContext($v);return Mn(t,pw(e)),t}function Tj(e){let t=S.useContext(io);return Mn(t,pw(e)),t}function hw(e){let t=Tj(e),n=t.matches[t.matches.length-1];return Mn(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function _j(){return hw("useRouteId")}function Ij(){let e=S.useContext(fw),t=Pj("useRouteError"),n=hw("useRouteError");return e!==void 0?e:t.errors?.[n]}function $j(){let{router:e}=Ej("useNavigate"),t=hw("useNavigate"),n=S.useRef(!1);return tI(()=>{n.current=!0}),S.useCallback(async(i,s={})=>{$o(n.current,eI),n.current&&(typeof i=="number"?e.navigate(i):await e.navigate(i,{fromRouteId:t,...s}))},[e,t])}var hC={};function iI(e,t,n){!t&&!hC[e]&&(hC[e]=!0,$o(!1,n))}S.memo(Aj);function Aj({routes:e,future:t,state:n}){return rI(e,void 0,n,t)}function HG({to:e,replace:t,state:n,relative:r}){Mn(Vf()," may be used only in the context of a component.");let{static:i}=S.useContext(Ao);$o(!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(io),{pathname:l}=ia(),c=dw(),d=cw(e,uw(s),l,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 Rj(e){return yj(e.context)}function Lj({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:i,static:s=!1}){Mn(!Vf(),"You cannot render a inside another . You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),c=S.useMemo(()=>({basename:l,navigator:i,static:s,future:{}}),[l,i,s]);typeof n=="string"&&(n=Eh(n));let{pathname:d="/",search:h="",hash:m="",state:g=null,key:b="default"}=n,x=S.useMemo(()=>{let k=tl(d,l);return k==null?null:{location:{pathname:k,search:h,hash:m,state:g,key:b},navigationType:r}},[l,d,h,m,g,b,r]);return $o(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(Av.Provider,{children:t,value:x}))}var Fg="get",Og="application/x-www-form-urlencoded";function Rv(e){return e!=null&&typeof e.tagName=="string"}function Mj(e){return Rv(e)&&e.tagName.toLowerCase()==="button"}function Dj(e){return Rv(e)&&e.tagName.toLowerCase()==="form"}function Nj(e){return Rv(e)&&e.tagName.toLowerCase()==="input"}function Fj(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Oj(e,t){return e.button===0&&(!t||t==="_self")&&!Fj(e)}var Sg=null;function zj(){if(Sg===null)try{new FormData(document.createElement("form"),0),Sg=!1}catch{Sg=!0}return Sg}var jj=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function P0(e){return e!=null&&!jj.has(e)?($o(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Og}"`),null):e}function Bj(e,t){let n,r,i,s,l;if(Dj(e)){let c=e.getAttribute("action");r=c?tl(c,t):null,n=e.getAttribute("method")||Fg,i=P0(e.getAttribute("enctype"))||Og,s=new FormData(e)}else if(Mj(e)||Nj(e)&&(e.type==="submit"||e.type==="image")){let c=e.form;if(c==null)throw new Error('Cannot submit a